diff --git a/404.html b/404.html index 5fb14106a..029978ed8 100644 --- a/404.html +++ b/404.html @@ -4,13 +4,13 @@ Page Not Found | Archethic - +
Skip to main content

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

- + \ No newline at end of file diff --git a/FAQ/aeweb/index.html b/FAQ/aeweb/index.html index 35dd679e2..dea26ddd9 100644 --- a/FAQ/aeweb/index.html +++ b/FAQ/aeweb/index.html @@ -4,13 +4,13 @@ aeHosting | Archethic - +
-
Skip to main content

aeHosting

General

How do I redirect my domain names to my websites deployed on the Archethic Blockchain?

All the information regarding DNS configuration is available in the dedicated section.

You will also find examples for Gandi, Cloudflare, and OVH services.

What is the purpose of a .gitignore file?

The .gitignore file serves to exclude specific files and directories from version control with Git. In the context of AEWeb, it's used to prevent the upload and synchronization of configuration and development files that are specific to the Git repository. This ensures that only the essential files of the website are transferred during the upload process.

Currently, the AEWeb CLI is not directly connected to the wallet. Therefore, it is necessary to provision the chain that will host the files in order to pay the transaction fees. However, you can still use the wallet's keychain by retrieving the passphrase and utilizing the wallet's service to send funds to the service hosting the image, just as if you were performing the action directly from the wallet.

Here's an example using the Testnet:

aeweb deploy --seed myseedphrase --endpoint https://testnet.archethic.net --path ./website --keychain-funding-service "archethic-wallet-ALICE" --keychain-website-service myImageAEWeb
- +
Skip to main content

aeHosting

General

How do I redirect my domain names to my websites deployed on the Archethic Blockchain?

All the information regarding DNS configuration is available in the dedicated section.

You will also find examples for Gandi, Cloudflare, and OVH services.

What is the purpose of a .gitignore file?

The .gitignore file serves to exclude specific files and directories from version control with Git. In the context of AEWeb, it's used to prevent the upload and synchronization of configuration and development files that are specific to the Git repository. This ensures that only the essential files of the website are transferred during the upload process.

Currently, the AEWeb CLI is not directly connected to the wallet. Therefore, it is necessary to provision the chain that will host the files in order to pay the transaction fees. However, you can still use the wallet's keychain by retrieving the passphrase and utilizing the wallet's service to send funds to the service hosting the image, just as if you were performing the action directly from the wallet.

Here's an example using the Testnet:

aeweb deploy --seed myseedphrase --endpoint https://testnet.archethic.net --path ./website --keychain-funding-service "archethic-wallet-ALICE" --keychain-website-service myImageAEWeb
+ \ No newline at end of file diff --git a/FAQ/bridge-2-ways/index.html b/FAQ/bridge-2-ways/index.html index 797dc5b74..1f9eaf856 100644 --- a/FAQ/bridge-2-ways/index.html +++ b/FAQ/bridge-2-ways/index.html @@ -4,33 +4,20 @@ aeBridge | Archethic - +
-
Skip to main content

aeBridge

General

What is Archethic Bridge?

The Archethic Bridge is a decentralized, peer-to-peer bridge that enables the seamless exchange of UCO ERC20 tokens and other major cryptocurrencies like ETH, MATIC, and BNB between the Archethic blockchain and various other blockchains, including Ethereum, Polygon, and BSC.

This functionality allows for the transfer of these assets into their equivalent forms on Archethic, such as aeETH, aeMATIC, and aeBNB, providing a secure and straightforward method for exchanging assets. The bridge utilizes atomic swap technology, specifically Hash Time Lock Contracts (HTLC), to facilitate secure and intermediary-free transactions.

Moreover, it incorporates Archethic's unique cross-chain verification technique, enhancing the security and decentralization of these exchanges.

This bridge significantly expands the interoperability between Archethic and other blockchain networks, allowing for greater flexibility and integration within the broader blockchain ecosystem.

How to access the Archethic Bridge ?

You can access the bridge at : https://bridge.archethic.net

Which blockchain is better to bridge my UCOs?

Using the 3 blockchains, the result will be the same, but fees are not the same between Ethereum, Polygon (PoS) and BSC. +

aeBridge

General

What is Archethic Bridge?

The Archethic Bridge is a decentralized, peer-to-peer bridge that enables the seamless exchange of UCO ERC20 tokens and other major cryptocurrencies like ETH, POL (ex MATIC), and BNB between the Archethic blockchain and various other blockchains, including Ethereum, Polygon (PoS), and BSC.

This functionality allows for the transfer of these assets into their equivalent forms on Archethic, such as aeETH, aeMATIC, and aeBNB, providing a secure and straightforward method for exchanging assets. The bridge utilizes atomic swap technology, specifically Hash Time Lock Contracts (HTLC), to facilitate secure and intermediary-free transactions.

Moreover, it incorporates Archethic's unique cross-chain verification technique, enhancing the security and decentralization of these exchanges.

This bridge significantly expands the interoperability between Archethic and other blockchain networks, allowing for greater flexibility and integration within the broader blockchain ecosystem.

How to access the Archethic Bridge ?

You can access the bridge at : https://bridge.archethic.net

Which blockchain is better to bridge my UCOs?

Using the 3 blockchains, the result will be the same, but fees are not the same between Ethereum, Polygon (PoS) and BSC. Polygon has the lowest fees.

bridge-blockchains

What blockchains does the Archethic Bridge support?

The Archethic Bridge currently supports bridging between the Archethic blockchain and various EVM (Ethereum Virtual Machine) compatible blockchains.

Is the Archethic Bridge available on mobile devices?

No, the Archethic Bridge application is designed exclusively for the moment for desktop use and is compatible with macOS, Linux, and Windows operating systems.

What is an EVM wallet?

An EVM (Ethereum Virtual Machine) wallet is a digital wallet designed to interact with blockchains that are compatible with the Ethereum Virtual Machine. EVM wallets can store, send, and receive Ether (ETH) and other EVM-compatible tokens, execute smart contracts, and interact with decentralized applications (dApps) on EVM-compatible networks.

How is the price of $UCO estimated?

The price of $UCO is determined using an Archethic Oracle that consolidates information from various sources, including Coingecko and CoinMarketCap.

How long is the predetermined time?

The timelock lasts 2 hours.

Is the bridge audited?

Yes, our EVM smart contracts have been audited by Hacken, a recognized leader in blockchain security. The full audit report is available here.

Key Concepts

What is an HTLC (Hash Time Lock Contract) in the context of Archethic's bridge?

HTLC stands for Hash Time Lock Contract. In Archethic's bridge, it is a type of contract used in atomic swaps to securely exchange assets in a peer-to-peer manner without intermediaries. These contracts lock funds until a secret is revealed or a specified time period elapses, ensuring a secure and reversible asset exchange.

How does Archethic's cross-chain verification work?

Archethic's cross-chain verification enhances atomic swaps by allowing data retrieval outside of the blockchain. This makes the process fully decentralized and strengthens the security model. Archethic's nodes can verify transaction status on other chains, like EVM blockchains, establishing a strong consensus on the status of a swap.

Specifics of Bridging

How does the process of bridging from EVM to Archethic work?

To bridge from EVM to Archethic, a user deploys an HTLC smart contract on both blockchains. The process involves locking funds using a secret and its hash, verifying the transaction across chains, minting new tokens on Archethic, and transferring funds to respective recipient wallets. The entire process is secured by atomic swaps and Archethic's cross-chain verification.

What is the process for bridging from Archethic to EVM?

Bridging from Archethic to EVM follows a similar pattern but in reverse. It introduces an additional step where EVM cannot directly request information from the blockchain. Instead, cryptography is used to assert actions through signatures, ensuring non-repudiation. This involves creating and funding HTLC contracts on both blockchains, revealing secrets, and transferring funds securely.

Wallet

I’m using the Mainnet network in the Wallet, how can I switch on the Testnet?

The switch is not possible because the seed is not shared between Mainnet and Testnet. Later, the wallet will be multiseeds, but not for the moment. The only way for the moment is to remove the Wallet (don’t forget the 24 words) and create/import a wallet on the Testnet network.

Why can't I connect to the Archethic wallet with my Brave browser?

Brave includes a shield feature that might block certain local connections. -To successfully connect to the Archethic wallet, you'll need to modify the Brave browser’s shield settings as per its documentation

Testnet

How do I set up Ethereum Sepolia, Binance Testnet and Polygon Mumbai in my EVM Wallet?

To configure these networks in your EVM Wallet, you'll need to go to the wallet's settings and manually add each network using the Chain ID and Explorer URL provided above.

Ethereum Sepolia Testnet:
-URL RPC: Choose a RPC server address: https://chainlist.org/chain/11155111
-Chain ID: 11155111
-Symbol: ETH
-Explorer URL: https://sepolia.etherscan.io/

Binance Smart Chain Testnet:
-URL RPC: Choose a RPC server address: https://chainlist.org/chain/97
-Chain ID: 97
-Symbol: tBNB
-Explorer URL: https://testnet.bscscan.com/

Polygon Mumbai Testnet no longer supported. Amoy will be later

How can I buy $UCO after receiving $ETH, $MATIC, or $BNB?

You will be able to buy some $UCO with $ETH / $MATIC or $BNB using the appropriate decentralized exchange (DEX) for your network. -Remember to set the slippage according to the amount's impact on liquidity. -Here's how you can do it for each network:

ETH : https://app.uniswap.org/
-ERC20 UCO contract address: 0x8a3d77e9d6968b780564936d15B09805827C21fa

Polygon: https://app.uniswap.org/
-ERC20 UCO contract address: 0x3c720206bfacb2d16fa3ac0ed87d2048dbc401fc

BSC: https://pancakeswap.finance/liquidity?chain=bscTestnet
-ERC20 UCO contract address: 0xb001f1e7c8bda414ac7cf7ecba5469fe8d24b6de

Ensure that you connect your wallet to the respective DEX platform and follow the instructions to make the swap.

Issues management

What happens if a problem occurs, or I refuse a transaction during the transfer?

During the delay of the acknowledgment, you should wait for the end of the duration, and you can tell the refund of your ERC20 Wallet with the "Refund" button available on your Archethic Bridge application.

If I sent the tokens to a wrong Mainnet address, what to do?

You lose the tokens if the Mainnet address is not your address. Same thing if you do an error in the address (for example a 0 instead of 1).

Can I help the developers analyze the problems?

You can help developers improve the application by submitting information that describes the state of the application. +To successfully connect to the Archethic wallet, you'll need to modify the Brave browser’s shield settings as per its documentation

Issues management

What happens if a problem occurs, or I refuse a transaction during the transfer?

During the delay of the acknowledgment, you should wait for the end of the duration, and you can tell the refund of your ERC20 Wallet with the "Refund" button available on your Archethic Bridge application.

If I sent the tokens to a wrong Mainnet address, what to do?

You lose the tokens if the Mainnet address is not your address. Same thing if you do an error in the address (for example a 0 instead of 1).

Can I help the developers analyze the problems?

You can help developers improve the application by submitting information that describes the state of the application. To do this, you can copy/paste your transaction from your local history in the application.

While a bridge from Archethic to EVM Blockchain, I have an error '1405'

First, rest assured that you will not lose your funds initiated in the bridging process. Note the address of the Archethic contract indicated under the error message (or available in your local history) and contact Archethic support via social media (Telegram or Discord) who will resolve the issue and help you complete your bridge.

The bridge does not recognize my EVM wallet. What should I do?

If your EVM wallet is not recognized by the bridge, follow these steps to resolve the issue:

1) Check your wallet version: Make sure you are using the latest version of your EVM wallet. Update if necessary.
2) Open your wallet: Ensure that your EVM wallet is open and that you have entered your password.
3) Wallet conflicts: Verify that you do not have multiple EVM wallets active at the same time. Having several wallets open can cause conflicts.
-4) Deactivate other wallets: Deactivate all open EVM wallets except the one you want to use. This ensures that only the desired wallet is active, avoiding any conflicts.

By following these steps, you should be able to resolve the issue of the bridge not recognizing your EVM wallet.


- +4) Deactivate other wallets: Deactivate all open EVM wallets except the one you want to use. This ensures that only the desired wallet is active, avoiding any conflicts.

By following these steps, you should be able to resolve the issue of the bridge not recognizing your EVM wallet.


+ \ No newline at end of file diff --git a/FAQ/dex/index.html b/FAQ/dex/index.html index 4bae07ec1..49aaf29ea 100644 --- a/FAQ/dex/index.html +++ b/FAQ/dex/index.html @@ -4,7 +4,7 @@ aeSwap | Archethic - + @@ -13,8 +13,8 @@ If you experience issues with other browsers, please inform our teams via social media platforms such as Discord or Telegram, or submit an issue on GitHub. All relevant links can be found on the Archethic website. Thank you for your assistance.

Why is a small quantity of liquidity pool shares removed when the first liquidity is added to a pool on Archethic?

During the initial creation of liquidity in a pool on Archethic, a small quantity of pool shares (exactly 10 shares on a scale of 100 million per share) is removed to prevent manipulations and rounding issues. This process involves the "burning" (destruction) of these shares by removing them from circulation. When a pool is created, we subtract 10 shares from what would normally be minted (created) for the user.

This prevents potential attacks where someone might try to manipulate the value of the pool shares with very small amounts of liquidity, thus making participation more secure and equitable for all future liquidity providers. This mechanism ensures that the shares remain accessible even if the value of the pool increases significantly.

What does APR (24h) mean in the pool information?

This is an estimation of the annual yield based on the fees generated by swaps over the last 24 hours. It provides an idea of the potential annual return based on recent performance.

The calculation is as follows: (Fees from the last 24 hours * 365 * 100 / TVL).

Wallet

I’m using the Mainnet network in the Wallet, how can I switch on the Testnet?

The switch is not possible because the seed is not shared between Mainnet and Testnet. Later, the wallet will be multiseeds, but not for the moment. The only way for the moment is to remove the Wallet (don’t forget the 24 words) and create/import a wallet on the Testnet network.

Why can't I connect to the Archethic wallet with my Brave browser?

Brave includes a shield feature that might block certain local connections. -To successfully connect to the Archethic wallet, you'll need to modify the Brave browser’s shield settings as per its documentation


- +To successfully connect to the Archethic wallet, you'll need to modify the Brave browser’s shield settings as per its documentation


+ \ No newline at end of file diff --git a/FAQ/migration-erc-token/index.html b/FAQ/migration-erc-token/index.html index ab05677c2..0a10e0b26 100644 --- a/FAQ/migration-erc-token/index.html +++ b/FAQ/migration-erc-token/index.html @@ -4,14 +4,14 @@ Migration of ERC-20 UCO Tokens | Archethic - +
Skip to main content

Migration of ERC-20 UCO Tokens

General

Why Archethic migrates his ERC20 UCO Token?

Project Background:

The Archethic project initially launched a token called UCO (Archethic Universal Coin), based on the ERC-20 standard, available on several blockchains: Ethereum, Polygon, and the BNB Chain. Since then, the project has made significant progress, including the launch of its own blockchain (mainnet) in December 2022, and the opening of a bridge and a decentralized exchange in May 2024.

Now that the UCO is natively available on the Archethic blockchain, it is time to update the ERC-20 token to reflect these changes.

Why a Migration?

The migration to a new ERC-20 UCO token is necessary for several reasons:

  • Updating Information: The current ERC-20 token is outdated. For example, the token's name and the total supply need to be modified to reflect the project's current status.

  • Harmonizing Functionality: The current versions of the UCO token on different blockchains (Ethereum, Polygon, BNB Chain) do not function in the same way. The new ERC-20 UCO token will be designed to operate uniformly across all blockchains, with functions such as mint (creation of new tokens) and burn (destruction of tokens), which are missing in some current versions.

What Does This Mean for users?

If you hold ERC-20 UCO tokens, you will need to migrate them to the new version (Version 2). This migration ensures that you will be using an up-to-date, secure token that functions across all compatible blockchains.

The migration will be facilitated by a specially designed smart contract to make this process as simple and secure as possible. You will also have access to tools to help you transition smoothly.

In Summary:

Migrating to the new ERC-20 UCO token is essential to ensure that users' tokens remain up-to-date with the latest developments in the Archethic project. This update will allow for better compatibility and security while harmonizing the token's functionality across all blockchains.

How do I migrate my V1 tokens to V2?

To migrate your tokens, simply go to the migration tool at https://migration-uco.archethic.net. This tool allows you to securely migrate your tokens on each blockchain (Ethereum, BSC, and Polygon).

If I have 3000 UCO in V1, how many UCO will I receive in V2?

The migration is done at a 1:1 ratio. This means that if you migrate 3000 UCO V1, you will receive 3000 UCO in V2.

How much does the migration cost the user?

There is no service fee for the migration. However, you will need to pay the transaction fees associated with the blockchains to execute the smart contract. These fees depend on the Ethereum, Polygon, and BSC blockchains.

I have UCO with more than 8 decimal places; does this have an impact?

The UCO on EVM blockchains (like Ethereum) has 18 decimal places, but on Archethic, it has only 8. During the migration, only the first 8 decimal places will be retained. -For example, if you have 100.123456789123456789 UCO, after migration, you will have 100.12345678 UCO.

- +For example, if you have 100.123456789123456789 UCO, after migration, you will have 100.12345678 UCO.

+ \ No newline at end of file diff --git a/FAQ/wallet/index.html b/FAQ/wallet/index.html index 6502e60e1..d0541c388 100644 --- a/FAQ/wallet/index.html +++ b/FAQ/wallet/index.html @@ -4,7 +4,7 @@ aeWallet | Archethic - + @@ -21,8 +21,8 @@ 10) After a few seconds of waiting, your keychain is created with your first account.

You can now enjoy the Archethic ecosystem. Enjoy!

How to retrieve the address of my Archethic wallet?

Firstly, you should be aware that your address changes with each transaction.

But don't worry. If you provide an old address to receive funds or tokens, it will still work, and you will receive what you are expecting.

tip

If you do not have an Archethic wallet or address yet, we invite you to refer to the section
"How to create a wallet on the Archethic blockchain?"

Once your wallet is created,

1) select the account on which you wish to receive your funds or tokens via the "Accounts" tab by clicking on the dropdown arrow at the top of the screen to the right of the current profile. A list will appear, showing your accounts and services contained in your decentralized keychain.
2) Once selected, you will be returned to the "Accounts" tab, where a "Receive" button will be visible.
3) Click on it, and you will obtain your address, either in the form of a QR Code or as text by clicking on the icon corresponding to the copy action.

wallet-address

Troubleshooting

The Archethic wallet won't start or opens to a black or white screen

To resolve a startup issue with the Archethic wallet, here are some corrective actions:

caution

Please note, steps 3 and 4 require you to reimport your wallet afterward by entering your mnemonic phrase.

1) Verify that the application is downloaded from an official source.

For this, please visit the website https://www.archethic.net/wallet.html. -For security and proper functionality, Archethic advises against using the application on jailbroken devices or in developer mode.

2) Uninstall and then reinstall the application.

3) If the issue persists, for desktop versions, please delete the wallet's local database.

To do this, manually delete at least the following files:

In the directories according to your platform:

- +For security and proper functionality, Archethic advises against using the application on jailbroken devices or in developer mode.

2) Uninstall and then reinstall the application.

3) If the issue persists, for desktop versions, please delete the wallet's local database.

To do this, manually delete at least the following files:

In the directories according to your platform:

+ \ No newline at end of file diff --git a/assets/js/009f927a.a3e72bb3.js b/assets/js/009f927a.b285cba8.js similarity index 99% rename from assets/js/009f927a.a3e72bb3.js rename to assets/js/009f927a.b285cba8.js index 06e044d68..486fc6b14 100644 --- a/assets/js/009f927a.a3e72bb3.js +++ b/assets/js/009f927a.b285cba8.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7265],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>f});var i=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function r(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=i.createContext({}),c=function(e){var t=i.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},d=function(e){var t=c(e.components);return i.createElement(l.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},h=i.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),p=c(n),h=a,f=p["".concat(l,".").concat(h)]||p[h]||u[h]||o;return n?i.createElement(f,r(r({ref:t},d),{},{components:n})):i.createElement(f,r({ref:t},d))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,r=new Array(o);r[0]=h;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[p]="string"==typeof e?e:a,r[1]=s;for(var c=2;c{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>u,frontMatter:()=>o,metadata:()=>s,toc:()=>c});var i=n(87462),a=(n(67294),n(3905));n(8209);const o={id:"replication-attestation",title:"Replication attestation"},r=void 0,s={unversionedId:"learn/sharding/replication-attestation",id:"learn/sharding/replication-attestation",title:"Replication attestation",description:"How to ensure a minimum of confirmation from the storage nodes to ensure the data availability of a given transaction.",source:"@site/docs/learn/sharding/replication-attestation.md",sourceDirName:"learn/sharding",slug:"/learn/sharding/replication-attestation",permalink:"/learn/sharding/replication-attestation",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"replication-attestation",title:"Replication attestation"},sidebar:"docs",previous:{title:"Beacon Explorer",permalink:"/learn/sharding/beacon-chain/explorer"},next:{title:"Tokens",permalink:"/learn/token"}},l={},c=[{value:"Heuristic solution",id:"heuristic-solution",level:2},{value:"Nested replications",id:"nested-replications",level:3},{value:"Client notifications",id:"client-notifications",level:3},{value:"Further improvements",id:"further-improvements",level:2}],d={toc:c},p="wrapper";function u(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,i.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"How to ensure a minimum of confirmation from the storage nodes to ensure the data availability of a given transaction.\nIf we are not providing this kind of mechanism, we can end up into a network split / mismatch where shards and beacon aren't cross linked.\nAlso we do not want to overload the beacon chain by broadcasting it with hundred of messages for a single transaction summary."),(0,a.kt)("h2",{id:"heuristic-solution"},"Heuristic solution"),(0,a.kt)("p",null,"Each validation node will notify the replications nodes in charge, and wait their confirmations to attest the validity\nand the availability of the transaction in the shard before notifying the beacon chain and the welcome node."),(0,a.kt)("p",null,"In 1st approx, a single notification from the validation nodes is sufficient to ensure the availability. This attestation will contain a list of signatures,\nfrom the replication nodes, to status about their commitment to store the transaction.\nHowever, further attestations and confirmations can be checked later during the time, to provide more security."),(0,a.kt)("p",null,"For example, a beacon chain receiving 1 attestation from a validation node including X storage confirmations\nwill be valid as 3 attestations with their respective confirmations."),(0,a.kt)("h3",{id:"nested-replications"},"Nested replications"),(0,a.kt)("p",null,"Moreover, when we are dealing with recipients for transfer or smart contract calls, we want to support the recipients shards will be notified\nonly when the main transaction is validated and stored.\nSo for example, the replication can be splitted by levels: ","[ Main Chain ]"," -> ","[ Recipient Chains]"),(0,a.kt)("p",null,"Then the welcome node will be notified by a validation node with a given number of replica confirmations."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"}," V1\n / | \\\nChain: S1 S2 S3\n / | \\\n Recipient Shards\n")),(0,a.kt)("h3",{id:"client-notifications"},"Client notifications"),(0,a.kt)("p",null,"When a transaction is submitted, the welcome node will transfer this transaction to the validation nodes and return a pending status to the client.\nThe client would have to subscribe to notifications about the completion of the transaction.\nOnce the transaction will be validated and the validation nodes by notifing the welcome will notify the clients asynchronously."),(0,a.kt)("h2",{id:"further-improvements"},"Further improvements"),(0,a.kt)("p",null,"To reduce the overall size of the attestations and confirmations we can support signature aggregation or cosigning to embed a single transaction with a bitfield\nto indicate which nodes signed the transaction replication, which will be signed over by a validation node."))}u.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7265],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>f});var i=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function r(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=i.createContext({}),c=function(e){var t=i.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},d=function(e){var t=c(e.components);return i.createElement(l.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},h=i.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),p=c(n),h=a,f=p["".concat(l,".").concat(h)]||p[h]||u[h]||o;return n?i.createElement(f,r(r({ref:t},d),{},{components:n})):i.createElement(f,r({ref:t},d))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,r=new Array(o);r[0]=h;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[p]="string"==typeof e?e:a,r[1]=s;for(var c=2;c{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>u,frontMatter:()=>o,metadata:()=>s,toc:()=>c});var i=n(87462),a=(n(67294),n(3905));n(8209);const o={id:"replication-attestation",title:"Replication attestation"},r=void 0,s={unversionedId:"learn/sharding/replication-attestation",id:"learn/sharding/replication-attestation",title:"Replication attestation",description:"How to ensure a minimum of confirmation from the storage nodes to ensure the data availability of a given transaction.",source:"@site/docs/learn/sharding/replication-attestation.md",sourceDirName:"learn/sharding",slug:"/learn/sharding/replication-attestation",permalink:"/learn/sharding/replication-attestation",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"replication-attestation",title:"Replication attestation"},sidebar:"docs",previous:{title:"Beacon Explorer",permalink:"/learn/sharding/beacon-chain/explorer"},next:{title:"Tokens",permalink:"/learn/token"}},l={},c=[{value:"Heuristic solution",id:"heuristic-solution",level:2},{value:"Nested replications",id:"nested-replications",level:3},{value:"Client notifications",id:"client-notifications",level:3},{value:"Further improvements",id:"further-improvements",level:2}],d={toc:c},p="wrapper";function u(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,i.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"How to ensure a minimum of confirmation from the storage nodes to ensure the data availability of a given transaction.\nIf we are not providing this kind of mechanism, we can end up into a network split / mismatch where shards and beacon aren't cross linked.\nAlso we do not want to overload the beacon chain by broadcasting it with hundred of messages for a single transaction summary."),(0,a.kt)("h2",{id:"heuristic-solution"},"Heuristic solution"),(0,a.kt)("p",null,"Each validation node will notify the replications nodes in charge, and wait their confirmations to attest the validity\nand the availability of the transaction in the shard before notifying the beacon chain and the welcome node."),(0,a.kt)("p",null,"In 1st approx, a single notification from the validation nodes is sufficient to ensure the availability. This attestation will contain a list of signatures,\nfrom the replication nodes, to status about their commitment to store the transaction.\nHowever, further attestations and confirmations can be checked later during the time, to provide more security."),(0,a.kt)("p",null,"For example, a beacon chain receiving 1 attestation from a validation node including X storage confirmations\nwill be valid as 3 attestations with their respective confirmations."),(0,a.kt)("h3",{id:"nested-replications"},"Nested replications"),(0,a.kt)("p",null,"Moreover, when we are dealing with recipients for transfer or smart contract calls, we want to support the recipients shards will be notified\nonly when the main transaction is validated and stored.\nSo for example, the replication can be splitted by levels: ","[ Main Chain ]"," -> ","[ Recipient Chains]"),(0,a.kt)("p",null,"Then the welcome node will be notified by a validation node with a given number of replica confirmations."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"}," V1\n / | \\\nChain: S1 S2 S3\n / | \\\n Recipient Shards\n")),(0,a.kt)("h3",{id:"client-notifications"},"Client notifications"),(0,a.kt)("p",null,"When a transaction is submitted, the welcome node will transfer this transaction to the validation nodes and return a pending status to the client.\nThe client would have to subscribe to notifications about the completion of the transaction.\nOnce the transaction will be validated and the validation nodes by notifing the welcome will notify the clients asynchronously."),(0,a.kt)("h2",{id:"further-improvements"},"Further improvements"),(0,a.kt)("p",null,"To reduce the overall size of the attestations and confirmations we can support signature aggregation or cosigning to embed a single transaction with a bitfield\nto indicate which nodes signed the transaction replication, which will be signed over by a validation node."))}u.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/0126df03.dc9b66fa.js b/assets/js/0126df03.6c107f9c.js similarity index 98% rename from assets/js/0126df03.dc9b66fa.js rename to assets/js/0126df03.6c107f9c.js index 9ea1d01da..fa6f19db6 100644 --- a/assets/js/0126df03.dc9b66fa.js +++ b/assets/js/0126df03.6c107f9c.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5295],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>b});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=r.createContext({}),i=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},d=function(e){var t=i(e.components);return r.createElement(s.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,l=e.originalType,s=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),p=i(a),u=n,b=p["".concat(s,".").concat(u)]||p[u]||m[u]||l;return a?r.createElement(b,o(o({ref:t},d),{},{components:a})):r.createElement(b,o({ref:t},d))}));function b(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=a.length,o=new Array(l);o[0]=u;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[p]="string"==typeof e?e:n,o[1]=c;for(var i=2;i{a.r(t),a.d(t,{Badge:()=>m,Bullet:()=>d,Details:()=>b,SpecifiedBy:()=>p,assets:()=>i,contentTitle:()=>c,default:()=>g,frontMatter:()=>o,metadata:()=>s,toc:()=>u});var r=a(87462),n=a(67294),l=a(3905);a(8209);const o={id:"oracle-data",title:"OracleData",hide_table_of_contents:!1},c=void 0,s={unversionedId:"build/api/schema/objects/oracle-data",id:"build/api/schema/objects/oracle-data",title:"OracleData",description:"[OracleData] represents an oracle data.",source:"@site/docs/build/api/schema/objects/oracle-data.mdx",sourceDirName:"build/api/schema/objects",slug:"/build/api/schema/objects/oracle-data",permalink:"/build/api/schema/objects/oracle-data",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"oracle-data",title:"OracleData",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"Node",permalink:"/build/api/schema/objects/node"},next:{title:"OracleServices",permalink:"/build/api/schema/objects/oracle-services"}},i={},d=()=>(0,l.kt)(n.Fragment,null,(0,l.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=e=>(0,l.kt)(n.Fragment,null,"Specification",(0,l.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),m=e=>(0,l.kt)(n.Fragment,null,(0,l.kt)("span",{className:e.class},e.text)),u=[{value:"Fields",id:"fields",level:3},{value:'OracleData.servicesOracleServices ',id:"code-style-fontweight-normal-oracledatabservicesbcodeoracleservices-",level:4},{value:'OracleData.timestampTimestamp ',id:"code-style-fontweight-normal-oracledatabtimestampbcodetimestamp-",level:4},{value:"Returned by",id:"returned-by",level:3}],b=e=>{let{dataOpen:t,dataClose:a,children:o,startOpen:c=!1}=e;const[s,i]=(0,n.useState)(c);return(0,l.kt)("details",(0,r.Z)({},s?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,l.kt)("summary",{onClick:e=>{e.preventDefault(),i((e=>!e))},style:{listStyle:"none"}},s?t:a),s&&o)},f={Bullet:d,SpecifiedBy:p,Badge:m,toc:u,Details:b},y="wrapper";function g(e){let{components:t,...a}=e;return(0,l.kt)(y,(0,r.Z)({},f,a,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("p",null,"[OracleData]"," represents an oracle data."),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-graphql"},"type OracleData {\n services: OracleServices\n timestamp: Timestamp\n}\n")),(0,l.kt)("h3",{id:"fields"},"Fields"),(0,l.kt)("h4",{id:"code-style-fontweight-normal-oracledatabservicesbcodeoracleservices-"},(0,l.kt)("a",{parentName:"h4",href:"#"},(0,l.kt)("code",{style:{fontWeight:"normal"}},"OracleData.",(0,l.kt)("b",null,"services"))),(0,l.kt)(d,{mdxType:"Bullet"}),(0,l.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/oracle-services"},(0,l.kt)("inlineCode",{parentName:"a"},"OracleServices"))," ",(0,l.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,l.kt)("blockquote",null),(0,l.kt)("h4",{id:"code-style-fontweight-normal-oracledatabtimestampbcodetimestamp-"},(0,l.kt)("a",{parentName:"h4",href:"#"},(0,l.kt)("code",{style:{fontWeight:"normal"}},"OracleData.",(0,l.kt)("b",null,"timestamp"))),(0,l.kt)(d,{mdxType:"Bullet"}),(0,l.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/timestamp"},(0,l.kt)("inlineCode",{parentName:"a"},"Timestamp"))," ",(0,l.kt)(m,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,l.kt)("blockquote",null),(0,l.kt)("h3",{id:"returned-by"},"Returned by"),(0,l.kt)("p",null,(0,l.kt)("a",{parentName:"p",href:"/build/api/schema/queries/oracle-data"},(0,l.kt)("inlineCode",{parentName:"a"},"oracleData"))," ",(0,l.kt)(m,{class:"badge badge--secondary",text:"query",mdxType:"Badge"}),(0,l.kt)(d,{mdxType:"Bullet"}),(0,l.kt)("a",{parentName:"p",href:"/build/api/schema/subscriptions/oracle-update"},(0,l.kt)("inlineCode",{parentName:"a"},"oracleUpdate"))," ",(0,l.kt)(m,{class:"badge badge--secondary",text:"subscription",mdxType:"Badge"})))}g.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5295],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>b});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=r.createContext({}),i=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},d=function(e){var t=i(e.components);return r.createElement(s.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,l=e.originalType,s=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),p=i(a),u=n,b=p["".concat(s,".").concat(u)]||p[u]||m[u]||l;return a?r.createElement(b,o(o({ref:t},d),{},{components:a})):r.createElement(b,o({ref:t},d))}));function b(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=a.length,o=new Array(l);o[0]=u;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[p]="string"==typeof e?e:n,o[1]=c;for(var i=2;i{a.r(t),a.d(t,{Badge:()=>m,Bullet:()=>d,Details:()=>b,SpecifiedBy:()=>p,assets:()=>i,contentTitle:()=>c,default:()=>g,frontMatter:()=>o,metadata:()=>s,toc:()=>u});var r=a(87462),n=a(67294),l=a(3905);a(8209);const o={id:"oracle-data",title:"OracleData",hide_table_of_contents:!1},c=void 0,s={unversionedId:"build/api/schema/objects/oracle-data",id:"build/api/schema/objects/oracle-data",title:"OracleData",description:"[OracleData] represents an oracle data.",source:"@site/docs/build/api/schema/objects/oracle-data.mdx",sourceDirName:"build/api/schema/objects",slug:"/build/api/schema/objects/oracle-data",permalink:"/build/api/schema/objects/oracle-data",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"oracle-data",title:"OracleData",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"Node",permalink:"/build/api/schema/objects/node"},next:{title:"OracleServices",permalink:"/build/api/schema/objects/oracle-services"}},i={},d=()=>(0,l.kt)(n.Fragment,null,(0,l.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=e=>(0,l.kt)(n.Fragment,null,"Specification",(0,l.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),m=e=>(0,l.kt)(n.Fragment,null,(0,l.kt)("span",{className:e.class},e.text)),u=[{value:"Fields",id:"fields",level:3},{value:'OracleData.servicesOracleServices ',id:"code-style-fontweight-normal-oracledatabservicesbcodeoracleservices-",level:4},{value:'OracleData.timestampTimestamp ',id:"code-style-fontweight-normal-oracledatabtimestampbcodetimestamp-",level:4},{value:"Returned by",id:"returned-by",level:3}],b=e=>{let{dataOpen:t,dataClose:a,children:o,startOpen:c=!1}=e;const[s,i]=(0,n.useState)(c);return(0,l.kt)("details",(0,r.Z)({},s?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,l.kt)("summary",{onClick:e=>{e.preventDefault(),i((e=>!e))},style:{listStyle:"none"}},s?t:a),s&&o)},f={Bullet:d,SpecifiedBy:p,Badge:m,toc:u,Details:b},y="wrapper";function g(e){let{components:t,...a}=e;return(0,l.kt)(y,(0,r.Z)({},f,a,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("p",null,"[OracleData]"," represents an oracle data."),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-graphql"},"type OracleData {\n services: OracleServices\n timestamp: Timestamp\n}\n")),(0,l.kt)("h3",{id:"fields"},"Fields"),(0,l.kt)("h4",{id:"code-style-fontweight-normal-oracledatabservicesbcodeoracleservices-"},(0,l.kt)("a",{parentName:"h4",href:"#"},(0,l.kt)("code",{style:{fontWeight:"normal"}},"OracleData.",(0,l.kt)("b",null,"services"))),(0,l.kt)(d,{mdxType:"Bullet"}),(0,l.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/oracle-services"},(0,l.kt)("inlineCode",{parentName:"a"},"OracleServices"))," ",(0,l.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,l.kt)("blockquote",null),(0,l.kt)("h4",{id:"code-style-fontweight-normal-oracledatabtimestampbcodetimestamp-"},(0,l.kt)("a",{parentName:"h4",href:"#"},(0,l.kt)("code",{style:{fontWeight:"normal"}},"OracleData.",(0,l.kt)("b",null,"timestamp"))),(0,l.kt)(d,{mdxType:"Bullet"}),(0,l.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/timestamp"},(0,l.kt)("inlineCode",{parentName:"a"},"Timestamp"))," ",(0,l.kt)(m,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,l.kt)("blockquote",null),(0,l.kt)("h3",{id:"returned-by"},"Returned by"),(0,l.kt)("p",null,(0,l.kt)("a",{parentName:"p",href:"/build/api/schema/queries/oracle-data"},(0,l.kt)("inlineCode",{parentName:"a"},"oracleData"))," ",(0,l.kt)(m,{class:"badge badge--secondary",text:"query",mdxType:"Badge"}),(0,l.kt)(d,{mdxType:"Bullet"}),(0,l.kt)("a",{parentName:"p",href:"/build/api/schema/subscriptions/oracle-update"},(0,l.kt)("inlineCode",{parentName:"a"},"oracleUpdate"))," ",(0,l.kt)(m,{class:"badge badge--secondary",text:"subscription",mdxType:"Badge"})))}g.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file diff --git a/assets/js/02486155.02606f94.js b/assets/js/02486155.447d404d.js similarity index 97% rename from assets/js/02486155.02606f94.js rename to assets/js/02486155.447d404d.js index eed4cf2f3..d5103ea06 100644 --- a/assets/js/02486155.02606f94.js +++ b/assets/js/02486155.447d404d.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6716],{3905:(e,t,a)=>{a.d(t,{Zo:()=>m,kt:()=>b});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var l=n.createContext({}),s=function(e){var t=n.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},m=function(e){var t=s(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,l=e.parentName,m=c(e,["components","mdxType","originalType","parentName"]),u=s(a),d=r,b=u["".concat(l,".").concat(d)]||u[d]||p[d]||o;return a?n.createElement(b,i(i({ref:t},m),{},{components:a})):n.createElement(b,i({ref:t},m))}));function b(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,i=new Array(o);i[0]=d;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[u]="string"==typeof e?e:r,i[1]=c;for(var s=2;s{a.r(t),a.d(t,{Badge:()=>p,Bullet:()=>m,Details:()=>b,SpecifiedBy:()=>u,assets:()=>s,contentTitle:()=>c,default:()=>f,frontMatter:()=>i,metadata:()=>l,toc:()=>d});var n=a(87462),r=a(67294),o=a(3905);a(8209);const i={id:"beacon-chain-summary",title:"beaconChainSummary",hide_table_of_contents:!1},c=void 0,l={unversionedId:"build/api/schema/queries/beacon-chain-summary",id:"build/api/schema/queries/beacon-chain-summary",title:"beaconChainSummary",description:"Query the network to get the value of the summary of beacon chain at a specific time or the last value",source:"@site/docs/build/api/schema/queries/beacon-chain-summary.mdx",sourceDirName:"build/api/schema/queries",slug:"/build/api/schema/queries/beacon-chain-summary",permalink:"/build/api/schema/queries/beacon-chain-summary",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"beacon-chain-summary",title:"beaconChainSummary",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"balance",permalink:"/build/api/schema/queries/balance"},next:{title:"chainUnspentOutputs",permalink:"/build/api/schema/queries/chain-unspent-outputs"}},s={},m=()=>(0,o.kt)(r.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),u=e=>(0,o.kt)(r.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),p=e=>(0,o.kt)(r.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),d=[{value:"Arguments",id:"arguments",level:3},{value:'beaconChainSummary.timestampTimestamp ',id:"code-style-fontweight-normal-beaconchainsummarybtimestampbcodetimestamp-",level:4},{value:"Type",id:"type",level:3},{value:'BeaconChainSummary ',id:"beaconchainsummary-",level:4}],b=e=>{let{dataOpen:t,dataClose:a,children:i,startOpen:c=!1}=e;const[l,s]=(0,r.useState)(c);return(0,o.kt)("details",(0,n.Z)({},l?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),s((e=>!e))},style:{listStyle:"none"}},l?t:a),l&&i)},y={Bullet:m,SpecifiedBy:u,Badge:p,toc:d,Details:b},h="wrapper";function f(e){let{components:t,...a}=e;return(0,o.kt)(h,(0,n.Z)({},y,a,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Query the network to get the value of the summary of beacon chain at a specific time or the last value"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"beaconChainSummary(\n timestamp: Timestamp\n): BeaconChainSummary\n")),(0,o.kt)("h3",{id:"arguments"},"Arguments"),(0,o.kt)("h4",{id:"code-style-fontweight-normal-beaconchainsummarybtimestampbcodetimestamp-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"beaconChainSummary.",(0,o.kt)("b",null,"timestamp"))),(0,o.kt)(m,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/timestamp"},(0,o.kt)("inlineCode",{parentName:"a"},"Timestamp"))," ",(0,o.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h3",{id:"type"},"Type"),(0,o.kt)("h4",{id:"beaconchainsummary-"},(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/beacon-chain-summary"},(0,o.kt)("inlineCode",{parentName:"a"},"BeaconChainSummary"))," ",(0,o.kt)(p,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,o.kt)("blockquote",null,(0,o.kt)("p",{parentName:"blockquote"},"[Beacon Chain Summary]"," represents the beacon chain aggregate for a certain date")))}f.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6716],{3905:(e,t,a)=>{a.d(t,{Zo:()=>m,kt:()=>b});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var l=n.createContext({}),s=function(e){var t=n.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},m=function(e){var t=s(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,l=e.parentName,m=c(e,["components","mdxType","originalType","parentName"]),u=s(a),d=r,b=u["".concat(l,".").concat(d)]||u[d]||p[d]||o;return a?n.createElement(b,i(i({ref:t},m),{},{components:a})):n.createElement(b,i({ref:t},m))}));function b(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,i=new Array(o);i[0]=d;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[u]="string"==typeof e?e:r,i[1]=c;for(var s=2;s{a.r(t),a.d(t,{Badge:()=>p,Bullet:()=>m,Details:()=>b,SpecifiedBy:()=>u,assets:()=>s,contentTitle:()=>c,default:()=>f,frontMatter:()=>i,metadata:()=>l,toc:()=>d});var n=a(87462),r=a(67294),o=a(3905);a(8209);const i={id:"beacon-chain-summary",title:"beaconChainSummary",hide_table_of_contents:!1},c=void 0,l={unversionedId:"build/api/schema/queries/beacon-chain-summary",id:"build/api/schema/queries/beacon-chain-summary",title:"beaconChainSummary",description:"Query the network to get the value of the summary of beacon chain at a specific time or the last value",source:"@site/docs/build/api/schema/queries/beacon-chain-summary.mdx",sourceDirName:"build/api/schema/queries",slug:"/build/api/schema/queries/beacon-chain-summary",permalink:"/build/api/schema/queries/beacon-chain-summary",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"beacon-chain-summary",title:"beaconChainSummary",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"balance",permalink:"/build/api/schema/queries/balance"},next:{title:"chainUnspentOutputs",permalink:"/build/api/schema/queries/chain-unspent-outputs"}},s={},m=()=>(0,o.kt)(r.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),u=e=>(0,o.kt)(r.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),p=e=>(0,o.kt)(r.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),d=[{value:"Arguments",id:"arguments",level:3},{value:'beaconChainSummary.timestampTimestamp ',id:"code-style-fontweight-normal-beaconchainsummarybtimestampbcodetimestamp-",level:4},{value:"Type",id:"type",level:3},{value:'BeaconChainSummary ',id:"beaconchainsummary-",level:4}],b=e=>{let{dataOpen:t,dataClose:a,children:i,startOpen:c=!1}=e;const[l,s]=(0,r.useState)(c);return(0,o.kt)("details",(0,n.Z)({},l?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),s((e=>!e))},style:{listStyle:"none"}},l?t:a),l&&i)},y={Bullet:m,SpecifiedBy:u,Badge:p,toc:d,Details:b},h="wrapper";function f(e){let{components:t,...a}=e;return(0,o.kt)(h,(0,n.Z)({},y,a,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Query the network to get the value of the summary of beacon chain at a specific time or the last value"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"beaconChainSummary(\n timestamp: Timestamp\n): BeaconChainSummary\n")),(0,o.kt)("h3",{id:"arguments"},"Arguments"),(0,o.kt)("h4",{id:"code-style-fontweight-normal-beaconchainsummarybtimestampbcodetimestamp-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"beaconChainSummary.",(0,o.kt)("b",null,"timestamp"))),(0,o.kt)(m,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/timestamp"},(0,o.kt)("inlineCode",{parentName:"a"},"Timestamp"))," ",(0,o.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h3",{id:"type"},"Type"),(0,o.kt)("h4",{id:"beaconchainsummary-"},(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/beacon-chain-summary"},(0,o.kt)("inlineCode",{parentName:"a"},"BeaconChainSummary"))," ",(0,o.kt)(p,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,o.kt)("blockquote",null,(0,o.kt)("p",{parentName:"blockquote"},"[Beacon Chain Summary]"," represents the beacon chain aggregate for a certain date")))}f.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file diff --git a/assets/js/05f2d199.186a9d06.js b/assets/js/05f2d199.ac76c698.js similarity index 99% rename from assets/js/05f2d199.186a9d06.js rename to assets/js/05f2d199.ac76c698.js index 4e251aec0..f0e0a653d 100644 --- a/assets/js/05f2d199.186a9d06.js +++ b/assets/js/05f2d199.ac76c698.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8011],{3905:(t,e,i)=>{i.d(e,{Zo:()=>u,kt:()=>m});var o=i(67294);function a(t,e,i){return e in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}function n(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e&&(o=o.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.push.apply(i,o)}return i}function l(t){for(var e=1;e=0||(a[i]=t[i]);return a}(t,e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(t,i)&&(a[i]=t[i])}return a}var s=o.createContext({}),d=function(t){var e=o.useContext(s),i=e;return t&&(i="function"==typeof t?t(e):l(l({},e),t)),i},u=function(t){var e=d(t.components);return o.createElement(s.Provider,{value:e},t.children)},c="mdxType",p={inlineCode:"code",wrapper:function(t){var e=t.children;return o.createElement(o.Fragment,{},e)}},h=o.forwardRef((function(t,e){var i=t.components,a=t.mdxType,n=t.originalType,s=t.parentName,u=r(t,["components","mdxType","originalType","parentName"]),c=d(i),h=a,m=c["".concat(s,".").concat(h)]||c[h]||p[h]||n;return i?o.createElement(m,l(l({ref:e},u),{},{components:i})):o.createElement(m,l({ref:e},u))}));function m(t,e){var i=arguments,a=e&&e.mdxType;if("string"==typeof t||a){var n=i.length,l=new Array(n);l[0]=h;var r={};for(var s in e)hasOwnProperty.call(e,s)&&(r[s]=e[s]);r.originalType=t,r[c]="string"==typeof t?t:a,l[1]=r;for(var d=2;d{i.r(e),i.d(e,{assets:()=>s,contentTitle:()=>l,default:()=>p,frontMatter:()=>n,metadata:()=>r,toc:()=>d});var o=i(87462),a=(i(67294),i(3905));i(8209);const n={title:"Liquidity Pool",id:"liquidity_pool",sidebar_label:"Liquidity Pool"},l=void 0,r={unversionedId:"participate/dex/Guide_Usage/liquidity_pool",id:"participate/dex/Guide_Usage/liquidity_pool",title:"Liquidity Pool",description:"Create a pool and add liquidity",source:"@site/docs/participate/dex/05-Guide_Usage/02-liquidity.md",sourceDirName:"participate/dex/05-Guide_Usage",slug:"/participate/dex/Guide_Usage/liquidity_pool",permalink:"/participate/dex/Guide_Usage/liquidity_pool",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",sidebarPosition:2,frontMatter:{title:"Liquidity Pool",id:"liquidity_pool",sidebar_label:"Liquidity Pool"},sidebar:"docs",previous:{title:"Swap",permalink:"/participate/dex/Guide_Usage/swap"},next:{title:"Farming",permalink:"/participate/dex/Guide_Usage/farming"}},s={},d=[{value:"Create a pool and add liquidity",id:"create-a-pool-and-add-liquidity",level:2},{value:"Step 1: Creating a Liquidity Pool: Essential Information",id:"step-1-creating-a-liquidity-pool-essential-information",level:3},{value:"Pre-creation Validations",id:"pre-creation-validations",level:4},{value:"Step 2: Finalizing Pool Creation: Confirmation and Validation Steps",id:"step-2-finalizing-pool-creation-confirmation-and-validation-steps",level:3},{value:"Wallet Validations for Liquidity Transactions",id:"wallet-validations-for-liquidity-transactions",level:4},{value:"Navigating Pool Information",id:"navigating-pool-information",level:2},{value:"Front View: Essential Pool Details",id:"front-view-essential-pool-details",level:3},{value:"Back View: Exploring Pool Details",id:"back-view-exploring-pool-details",level:3},{value:"Interacting with Pools: Available Actions",id:"interacting-with-pools-available-actions",level:3},{value:"Fees",id:"fees",level:3},{value:"Specificity of the aeETH / UCO pair",id:"specificity-of-the-aeeth--uco-pair",level:3},{value:"Add Liquidity",id:"add-liquidity",level:2},{value:"Step 1: Adding Liquidity: Essential Information",id:"step-1-adding-liquidity-essential-information",level:3},{value:"Pre-transaction Validations",id:"pre-transaction-validations",level:4},{value:"Step 2: Finalizing Liquidity Addition: Confirmation and Validation Steps",id:"step-2-finalizing-liquidity-addition-confirmation-and-validation-steps",level:3},{value:"Wallet Validations for Liquidity Transactions",id:"wallet-validations-for-liquidity-transactions-1",level:4},{value:"Remove Liquidity",id:"remove-liquidity",level:2},{value:"Step 1: Removing Liquidity: Essential Information",id:"step-1-removing-liquidity-essential-information",level:3},{value:"Pre-transaction Validations",id:"pre-transaction-validations-1",level:4},{value:"Step 2: Finalizing Liquidity Removal: Confirmation and Validation Steps",id:"step-2-finalizing-liquidity-removal-confirmation-and-validation-steps",level:3},{value:"Wallet Validations for Liquidity Transactions",id:"wallet-validations-for-liquidity-transactions-2",level:4}],u={toc:d},c="wrapper";function p(t){let{components:e,...n}=t;return(0,a.kt)(c,(0,o.Z)({},u,n,{components:e,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"create-a-pool-and-add-liquidity"},"Create a pool and add liquidity"),(0,a.kt)("p",null,'You can create a liquidity pool from the liquidity menu via the "Create a pool" button.'),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Add pool button",src:i(72047).Z,width:"729",height:"115"})),(0,a.kt)("h3",{id:"step-1-creating-a-liquidity-pool-essential-information"},"Step 1: Creating a Liquidity Pool: Essential Information"),(0,a.kt)("p",null,"To establish a liquidity pool on aeSwap, the following information is necessary:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Token Pair"),": Identify the two tokens that will constitute the pair within the pool."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Initial Investment"),": Specify the amount of each token you intend to contribute. This initial contribution determines the pool's initial price ratio.")),(0,a.kt)("h4",{id:"pre-creation-validations"},"Pre-creation Validations"),(0,a.kt)("p",null,"Before creating a liquidity pool, the system conducts several checks to ensure compliance and feasibility:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Unique Pair Check"),": Ensures that a pool with the selected token pair does not already exist."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Liquidity Requirements"),": Confirms that your Archethic wallet holds a sufficient quantity of the tokens intended for liquidity provision.")),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"When creating a pool involving UCO (the native token of the Archethic Public Blockchain), the system automatically calculates and reserves the necessary amount for transaction fees associated with pool creation and liquidity addition. As a result, the maximum amount of UCO that can be allocated is less than your total UCO balance to accommodate these costs.")),(0,a.kt)("hr",null),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Add pool form",src:i(27766).Z,width:"1370",height:"838"})),(0,a.kt)("h3",{id:"step-2-finalizing-pool-creation-confirmation-and-validation-steps"},"Step 2: Finalizing Pool Creation: Confirmation and Validation Steps"),(0,a.kt)("p",null,'After you submit the pool creation form by clicking the "Create a new pool" button, you will be directed to a confirmation screen. This screen serves a critical role in the pool creation process, enabling you to:'),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Review Token Ratio"),": Examine the initial ratio between the two tokens in your new pool to ensure it aligns with your expectations."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Balance Verification"),': Check your account balances before and after liquidity is added to understand the impact of your transaction.\nIf the details align with your intentions and you are content with the proposed setup, proceed by clicking on the "Confirm the creation" button to move forward in the process.')),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Add pool confirm",src:i(12827).Z,width:"1342",height:"1216"})),(0,a.kt)("h4",{id:"wallet-validations-for-liquidity-transactions"},"Wallet Validations for Liquidity Transactions"),(0,a.kt)("p",null,"The creation of the pool and addition of liquidity to the pool necessitate two separate validations within your Archethic wallet:"),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"Transaction Confirmation"),": You will need to approve two transactions \u2013 one for creating the pool and another for adding liquidity to it."),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"Transaction Addresses"),": Upon successful completion of these transactions, you will be provided with their addresses. These addresses allow you to verify the transactions on the blockchain, ensuring transparency and security in your operations."),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Add pool end",src:i(53854).Z,width:"1284",height:"898"})),(0,a.kt)("h2",{id:"navigating-pool-information"},"Navigating Pool Information"),(0,a.kt)("p",null,'aeSwap offers a unique and engaging way to access detailed information about each liquidity pool through an interactive card. You can easily explore this card by clicking on the turn icon to "rotate" the view, revealing comprehensive details about the pools in a visually intuitive manner.'),(0,a.kt)("h3",{id:"front-view-essential-pool-details"},"Front View: Essential Pool Details"),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Pool List Front",src:i(49123).Z,width:"697",height:"564"})),(0,a.kt)("p",null,"When viewing the front of the card, users are presented with a rich set of information designed to provide a quick and informative snapshot of each pool:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Token Pair and Logos"),": Each pool is represented by its pair of tokens, accompanied by their logos when available, for easy identification."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Verification Status"),": A green icon signifies that the pool has been officially verified by Archethic, indicating a layer of trust and security."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Personal Liquidity Contribution"),": If you have added liquidity to a pool, a yellow star icon will highlight your participation, making it easy to track your investments."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Total Value Locked (TVL)"),": The TVL is displayed in dollars, offering a clear view of the pool's size and the total capital invested."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Annual Percentage Rate (APR) Over 24 Hours"),": The APR is displayed to indicate the potential return on investment over a year, based on the pool\u2019s performance during the last 24 hours. This provides a quick snapshot of profitability to help users assess the attractiveness of investing in the pool. "),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Trading Dynamics"),": Detailed statistics on trading volume and fees collected over the last 24 hours and cumulatively are provided to give users insights into the pool's activity and profitability.")),(0,a.kt)("h3",{id:"back-view-exploring-pool-details"},"Back View: Exploring Pool Details"),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Pool List Back",src:i(17675).Z,width:"709",height:"562"})),(0,a.kt)("p",null,"You can find in this side of the card:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Pool Address"),": Displayed prominently for easy reference. Accompanying the address, an icon for quick copying allows users to easily share or save the address. - Additionally, a separate icon links directly to the blockchain explorer, where users can delve into full details and analytics of the pool."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Token Holdings"),": This section lists the exact number of tokens currently deposited within the pool, providing a clear view of the pool's liquidity depth."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Swap Fee Percentage"),": The fee charged for swap transactions within this particular pool is displayed as a percentage. This fee contributes to the rewards earned by liquidity providers, representing an essential metric for potential and current investors.")),(0,a.kt)("h3",{id:"interacting-with-pools-available-actions"},"Interacting with Pools: Available Actions"),(0,a.kt)("p",null,"On aeSwap, participants have the flexibility to engage with liquidity pools through a variety of actions, each designed to suit different strategies and needs. Here\u2019s a concise overview of the options available:"),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"Exchange Pool Tokens"),": Users can swap tokens within a pool, utilizing the liquidity available to exchange one token for another. This action is fundamental to the operation of a DEX, allowing users to seamlessly trade assets at current market rates determined by the pool's liquidity and token ratio."),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"Add Liquidity"),": If you're looking to contribute to a pool, this action enables you to deposit your tokens into the pool. Adding liquidity increases the pool's total value locked (TVL) and, in return, you receive liquidity provider (LP) tokens. These LP tokens represent your share of the pool and entitle you to a portion of the trading fees generated by the pool's activity."),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"Remove Liquidity"),": When you wish to retrieve your deposited tokens from a pool, this action allows you to do so. By returning your LP tokens, you can claim back your share of the pool, along with any accrued fees, based on the current ratio of tokens within the pool. This action is essential for managing your investments and realizing potential gains from fee accumulation."),(0,a.kt)("h3",{id:"fees"},"Fees"),(0,a.kt)("p",null,"For enhancing %APR, liquidity, and volume, all fees are returned to LP suppliers: 0.3% LP provider fee, 0% protocol fee."),(0,a.kt)("h3",{id:"specificity-of-the-aeeth--uco-pair"},"Specificity of the aeETH / UCO pair"),(0,a.kt)("p",null,"Archethic offers a specific aeETH/UCO pool featuring a new farming mechanism designed to reward long-term commitment. This update provides UCO holders with flexible levels and the potential for higher rewards through a tiered system, reinforcing our mission to support sustained engagement with our project. "),(0,a.kt)("p",null,"With our new Leveling System on the aeETH/UCO pool, we\u2019ve removed LP provider fees on this pool: 0.3% Protocol Fees, 0% LP Provider Fees on the aeETH/UCO pool."),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Pool aeETH/UCO",src:i(10071).Z,width:"704",height:"573"})),(0,a.kt)("p",null,"For the specific aeETH/UCO pool, the displayed information is unique:"),(0,a.kt)("p",null,"3-Year APR of the Associated Farm: Instead of showing the fees collected by the pool, we display the 3-year APR of the farm associated with the pool. A link is provided to allow users to access the farm directly."),(0,a.kt)("h2",{id:"add-liquidity"},"Add Liquidity"),(0,a.kt)("p",null,"Enhancing your portfolio by adding liquidity to a pool is a straightforward process designed for ease of use and efficiency. Here's how you can contribute to the liquidity of your chosen pool:"),(0,a.kt)("h3",{id:"step-1-adding-liquidity-essential-information"},"Step 1: Adding Liquidity: Essential Information"),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Add liquidity form",src:i(17258).Z,width:"675",height:"617"})),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"Entering Token Amounts"),": Begin by inputting the amount of one of the two tokens in the pool's pair. The system will automatically calculate the necessary amount of the second token based on the current pool ratio, ensuring your contribution maintains the pool's balance."),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"Slippage Tolerance Configuration"),': To manage the impact of price fluctuations during your transaction, click on the wheel icon next to "slippage tolerance." Slippage occurs when the price at which your transaction is executed differs from the price when you submitted it. Adjusting your slippage tolerance allows you to control the maximum price variation you\'re willing to accept.'),(0,a.kt)("p",null,"Transaction Details: Once you've set the amounts, the system will display information about your transaction:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Minimum Token Amounts"),": The least amount of each token that will be added to the pool, considering slippage and transaction timing."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Estimated LP Tokens"),": An estimation of how many liquidity provider (LP) tokens you'll receive in return. These tokens represent your share of the pool and your entitlement to a portion of the trading fees.")),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"Add Liquidity"),': Click the "Add liquidity" button to finalize your contribution. This action initiates the transaction and adds your tokens to the pool.'),(0,a.kt)("h4",{id:"pre-transaction-validations"},"Pre-transaction Validations"),(0,a.kt)("p",null,"Before adding liquidity, the system performs a vital check to ensure:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Token Availability"),": Verifies that the necessary tokens are available in your wallet for the liquidity addition.")),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"When adding liquidity involving UCO (the native token of the Archethic Public Blockchain), the system automatically calculates and reserves the necessary amount for transaction fees associated with liquidity addition. As a result, the maximum amount of UCO that can be allocated is less than your total UCO balance to accommodate these costs.")),(0,a.kt)("h3",{id:"step-2-finalizing-liquidity-addition-confirmation-and-validation-steps"},"Step 2: Finalizing Liquidity Addition: Confirmation and Validation Steps"),(0,a.kt)("p",null,'After you submit the liquidity addition form by clicking the "Add liquidity" button, you will be directed to a confirmation screen. This screen serves a critical role in the liquidity addition process, enabling you to:'),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Review Token Ratio"),": Examine the initial ratio between the two tokens in your new pool to ensure it aligns with your expectations."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Balance Verification"),': Check your account balances before and after liquidity is added to understand the impact of your transaction.\nIf the details align with your intentions and you are content with the proposed setup, proceed by clicking on the "Confirm the creation" button to move forward in the process.')),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Add liquidity confirm",src:i(36223).Z,width:"674",height:"596"})),(0,a.kt)("h4",{id:"wallet-validations-for-liquidity-transactions-1"},"Wallet Validations for Liquidity Transactions"),(0,a.kt)("p",null,"The addition of liquidity to the pool necessitates two separate validations within your Archethic wallet:"),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"Transaction Confirmation"),": You will need to approve 1 transaction."),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"Transaction Address"),": Upon successful completion of this transaction, you will be provided with the address. This address allows you to verify the transaction on the blockchain, ensuring transparency and security in your operation."),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Add liquidity end",src:i(33522).Z,width:"628",height:"445"})),(0,a.kt)("h2",{id:"remove-liquidity"},"Remove Liquidity"),(0,a.kt)("p",null,"Withdrawing your liquidity from a pool is a flexible process that can be initiated at any time, allowing you to reclaim all or a portion of your deposited tokens."),(0,a.kt)("h3",{id:"step-1-removing-liquidity-essential-information"},"Step 1: Removing Liquidity: Essential Information"),(0,a.kt)("p",null,"The process begins with the user entering the amount of LP (Liquidity Provider) tokens they wish to redeem. This action is facilitated through a user-friendly form designed to make the withdrawal process as straightforward as possible."),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Remove liquidity form",src:i(72640).Z,width:"670",height:"503"})),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"Entering LP Token Amounts"),": The amount of LP tokens you wish to use for the withdrawal. LP tokens represent your share of the pool's total liquidity."),(0,a.kt)("p",null,"Transaction Details: Once you've set the amount, the system will display information about your transaction:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Amounts of token to get back"),": This crucial piece of information tells you exactly how many of each token in the pool you will receive in return for the specified amount of LP tokens. This is calculated based on the current ratio of tokens within the pool and the total amount of liquidity you're choosing to withdraw.\nBy presenting these details, the system aims to provide users with a clear understanding of the outcome of their liquidity removal transaction, allowing for precise and confident decision-making.")),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"Remove Liquidity"),': Click the "Remove liquidity" button to finalize your withdrawal. This action initiates the transaction, removes (or "burns") your LP tokens from circulation, and the corresponding amount of the original tokens you provided as liquidity will be returned to you. The exact amounts are calculated according to the current liquidity ratio within the pool and the total number of LP tokens you are redeeming.'),(0,a.kt)("h4",{id:"pre-transaction-validations-1"},"Pre-transaction Validations"),(0,a.kt)("p",null,"Before removing liquidity, the system performs a vital check to ensure:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Token Availability"),": Verifies that the necessary LP tokens are available in your wallet for the liquidity removal.")),(0,a.kt)("h3",{id:"step-2-finalizing-liquidity-removal-confirmation-and-validation-steps"},"Step 2: Finalizing Liquidity Removal: Confirmation and Validation Steps"),(0,a.kt)("p",null,'After you submit the liquidity removal form by clicking the "Remove liquidity" button, you will be directed to a confirmation screen. This screen serves a critical role in the liquidity removal process, enabling you to:'),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Balance Verification"),': Check your account balances before and after liquidity is removed to understand the impact of your transaction.\nIf the details align with your intentions and you are content with the proposed setup, proceed by clicking on the "Confirm" button to move forward in the process.')),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Remove liquidity confirm",src:i(89776).Z,width:"674",height:"510"})),(0,a.kt)("h4",{id:"wallet-validations-for-liquidity-transactions-2"},"Wallet Validations for Liquidity Transactions"),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"Transaction Confirmation"),": You will need to approve 1 transaction."),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"Transaction Address"),": Upon successful completion of this transaction, you will be provided with the address. This address allows you to verify the transaction on the blockchain, ensuring transparency and security in your operation."),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Remove liquidity end",src:i(81835).Z,width:"633",height:"439"})))}p.isMDXComponent=!0},72047:(t,e,i)=>{i.d(e,{Z:()=>o});const o=i.p+"assets/images/aeSwap-AddPool-Btn-0825cdf712b77c78f07e9956b5ebc4e1.png"},12827:(t,e,i)=>{i.d(e,{Z:()=>o});const o=i.p+"assets/images/aeSwap-AddPool-Confirm-f92d0def12056134e4f26fd127fce387.png"},53854:(t,e,i)=>{i.d(e,{Z:()=>o});const o=i.p+"assets/images/aeSwap-AddPool-End-bb7eb8209c2aa84fda68843cd8f8269b.png"},27766:(t,e,i)=>{i.d(e,{Z:()=>o});const o=i.p+"assets/images/aeSwap-AddPool-Form-ae627fd0617eba2040579e45fa29cd95.png"},36223:(t,e,i)=>{i.d(e,{Z:()=>o});const o=i.p+"assets/images/aeSwap-LiquidityAdd-Confirm-2eb867f96757eee730d705de36c25897.png"},33522:(t,e,i)=>{i.d(e,{Z:()=>o});const o=i.p+"assets/images/aeSwap-LiquidityAdd-End-dae44e7067e0883cd4de115dd6477015.png"},17258:(t,e,i)=>{i.d(e,{Z:()=>o});const o=i.p+"assets/images/aeSwap-LiquidityAdd-Form-af387e7c00a71bb7588cbaec1a9913e4.png"},89776:(t,e,i)=>{i.d(e,{Z:()=>o});const o=i.p+"assets/images/aeSwap-LiquidityRemove-Confirm-17cf11c38fa06aa724064fc6727305bb.png"},81835:(t,e,i)=>{i.d(e,{Z:()=>o});const o=i.p+"assets/images/aeSwap-LiquidityRemove-End-ff344c4528c227f2ea0d2038440827d7.png"},72640:(t,e,i)=>{i.d(e,{Z:()=>o});const o=i.p+"assets/images/aeSwap-LiquidityRemove-Form-a6fa6ae3a33dedcc094ebdca216ba903.png"},10071:(t,e,i)=>{i.d(e,{Z:()=>o});const o=i.p+"assets/images/aeSwap-PoolAETHUCO-Front-59e79259272f84d7c68e66cebe2ad76d.png"},17675:(t,e,i)=>{i.d(e,{Z:()=>o});const o=i.p+"assets/images/aeSwap-PoolList-Back-a58b0959b60df54a45eb449eb4dd5845.png"},49123:(t,e,i)=>{i.d(e,{Z:()=>o});const o=i.p+"assets/images/aeSwap-PoolList-Front-10a02bf6deb41c5940f325ce783b67bd.png"},8209:(t,e,i)=>{i(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8011],{3905:(t,e,i)=>{i.d(e,{Zo:()=>u,kt:()=>m});var o=i(67294);function a(t,e,i){return e in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}function n(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e&&(o=o.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.push.apply(i,o)}return i}function l(t){for(var e=1;e=0||(a[i]=t[i]);return a}(t,e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(t,i)&&(a[i]=t[i])}return a}var s=o.createContext({}),d=function(t){var e=o.useContext(s),i=e;return t&&(i="function"==typeof t?t(e):l(l({},e),t)),i},u=function(t){var e=d(t.components);return o.createElement(s.Provider,{value:e},t.children)},c="mdxType",p={inlineCode:"code",wrapper:function(t){var e=t.children;return o.createElement(o.Fragment,{},e)}},h=o.forwardRef((function(t,e){var i=t.components,a=t.mdxType,n=t.originalType,s=t.parentName,u=r(t,["components","mdxType","originalType","parentName"]),c=d(i),h=a,m=c["".concat(s,".").concat(h)]||c[h]||p[h]||n;return i?o.createElement(m,l(l({ref:e},u),{},{components:i})):o.createElement(m,l({ref:e},u))}));function m(t,e){var i=arguments,a=e&&e.mdxType;if("string"==typeof t||a){var n=i.length,l=new Array(n);l[0]=h;var r={};for(var s in e)hasOwnProperty.call(e,s)&&(r[s]=e[s]);r.originalType=t,r[c]="string"==typeof t?t:a,l[1]=r;for(var d=2;d{i.r(e),i.d(e,{assets:()=>s,contentTitle:()=>l,default:()=>p,frontMatter:()=>n,metadata:()=>r,toc:()=>d});var o=i(87462),a=(i(67294),i(3905));i(8209);const n={title:"Liquidity Pool",id:"liquidity_pool",sidebar_label:"Liquidity Pool"},l=void 0,r={unversionedId:"participate/dex/Guide_Usage/liquidity_pool",id:"participate/dex/Guide_Usage/liquidity_pool",title:"Liquidity Pool",description:"Create a pool and add liquidity",source:"@site/docs/participate/dex/05-Guide_Usage/02-liquidity.md",sourceDirName:"participate/dex/05-Guide_Usage",slug:"/participate/dex/Guide_Usage/liquidity_pool",permalink:"/participate/dex/Guide_Usage/liquidity_pool",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",sidebarPosition:2,frontMatter:{title:"Liquidity Pool",id:"liquidity_pool",sidebar_label:"Liquidity Pool"},sidebar:"docs",previous:{title:"Swap",permalink:"/participate/dex/Guide_Usage/swap"},next:{title:"Farming",permalink:"/participate/dex/Guide_Usage/farming"}},s={},d=[{value:"Create a pool and add liquidity",id:"create-a-pool-and-add-liquidity",level:2},{value:"Step 1: Creating a Liquidity Pool: Essential Information",id:"step-1-creating-a-liquidity-pool-essential-information",level:3},{value:"Pre-creation Validations",id:"pre-creation-validations",level:4},{value:"Step 2: Finalizing Pool Creation: Confirmation and Validation Steps",id:"step-2-finalizing-pool-creation-confirmation-and-validation-steps",level:3},{value:"Wallet Validations for Liquidity Transactions",id:"wallet-validations-for-liquidity-transactions",level:4},{value:"Navigating Pool Information",id:"navigating-pool-information",level:2},{value:"Front View: Essential Pool Details",id:"front-view-essential-pool-details",level:3},{value:"Back View: Exploring Pool Details",id:"back-view-exploring-pool-details",level:3},{value:"Interacting with Pools: Available Actions",id:"interacting-with-pools-available-actions",level:3},{value:"Fees",id:"fees",level:3},{value:"Specificity of the aeETH / UCO pair",id:"specificity-of-the-aeeth--uco-pair",level:3},{value:"Add Liquidity",id:"add-liquidity",level:2},{value:"Step 1: Adding Liquidity: Essential Information",id:"step-1-adding-liquidity-essential-information",level:3},{value:"Pre-transaction Validations",id:"pre-transaction-validations",level:4},{value:"Step 2: Finalizing Liquidity Addition: Confirmation and Validation Steps",id:"step-2-finalizing-liquidity-addition-confirmation-and-validation-steps",level:3},{value:"Wallet Validations for Liquidity Transactions",id:"wallet-validations-for-liquidity-transactions-1",level:4},{value:"Remove Liquidity",id:"remove-liquidity",level:2},{value:"Step 1: Removing Liquidity: Essential Information",id:"step-1-removing-liquidity-essential-information",level:3},{value:"Pre-transaction Validations",id:"pre-transaction-validations-1",level:4},{value:"Step 2: Finalizing Liquidity Removal: Confirmation and Validation Steps",id:"step-2-finalizing-liquidity-removal-confirmation-and-validation-steps",level:3},{value:"Wallet Validations for Liquidity Transactions",id:"wallet-validations-for-liquidity-transactions-2",level:4}],u={toc:d},c="wrapper";function p(t){let{components:e,...n}=t;return(0,a.kt)(c,(0,o.Z)({},u,n,{components:e,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"create-a-pool-and-add-liquidity"},"Create a pool and add liquidity"),(0,a.kt)("p",null,'You can create a liquidity pool from the liquidity menu via the "Create a pool" button.'),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Add pool button",src:i(72047).Z,width:"729",height:"115"})),(0,a.kt)("h3",{id:"step-1-creating-a-liquidity-pool-essential-information"},"Step 1: Creating a Liquidity Pool: Essential Information"),(0,a.kt)("p",null,"To establish a liquidity pool on aeSwap, the following information is necessary:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Token Pair"),": Identify the two tokens that will constitute the pair within the pool."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Initial Investment"),": Specify the amount of each token you intend to contribute. This initial contribution determines the pool's initial price ratio.")),(0,a.kt)("h4",{id:"pre-creation-validations"},"Pre-creation Validations"),(0,a.kt)("p",null,"Before creating a liquidity pool, the system conducts several checks to ensure compliance and feasibility:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Unique Pair Check"),": Ensures that a pool with the selected token pair does not already exist."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Liquidity Requirements"),": Confirms that your Archethic wallet holds a sufficient quantity of the tokens intended for liquidity provision.")),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"When creating a pool involving UCO (the native token of the Archethic Public Blockchain), the system automatically calculates and reserves the necessary amount for transaction fees associated with pool creation and liquidity addition. As a result, the maximum amount of UCO that can be allocated is less than your total UCO balance to accommodate these costs.")),(0,a.kt)("hr",null),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Add pool form",src:i(27766).Z,width:"1370",height:"838"})),(0,a.kt)("h3",{id:"step-2-finalizing-pool-creation-confirmation-and-validation-steps"},"Step 2: Finalizing Pool Creation: Confirmation and Validation Steps"),(0,a.kt)("p",null,'After you submit the pool creation form by clicking the "Create a new pool" button, you will be directed to a confirmation screen. This screen serves a critical role in the pool creation process, enabling you to:'),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Review Token Ratio"),": Examine the initial ratio between the two tokens in your new pool to ensure it aligns with your expectations."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Balance Verification"),': Check your account balances before and after liquidity is added to understand the impact of your transaction.\nIf the details align with your intentions and you are content with the proposed setup, proceed by clicking on the "Confirm the creation" button to move forward in the process.')),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Add pool confirm",src:i(12827).Z,width:"1342",height:"1216"})),(0,a.kt)("h4",{id:"wallet-validations-for-liquidity-transactions"},"Wallet Validations for Liquidity Transactions"),(0,a.kt)("p",null,"The creation of the pool and addition of liquidity to the pool necessitate two separate validations within your Archethic wallet:"),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"Transaction Confirmation"),": You will need to approve two transactions \u2013 one for creating the pool and another for adding liquidity to it."),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"Transaction Addresses"),": Upon successful completion of these transactions, you will be provided with their addresses. These addresses allow you to verify the transactions on the blockchain, ensuring transparency and security in your operations."),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Add pool end",src:i(53854).Z,width:"1284",height:"898"})),(0,a.kt)("h2",{id:"navigating-pool-information"},"Navigating Pool Information"),(0,a.kt)("p",null,'aeSwap offers a unique and engaging way to access detailed information about each liquidity pool through an interactive card. You can easily explore this card by clicking on the turn icon to "rotate" the view, revealing comprehensive details about the pools in a visually intuitive manner.'),(0,a.kt)("h3",{id:"front-view-essential-pool-details"},"Front View: Essential Pool Details"),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Pool List Front",src:i(49123).Z,width:"697",height:"564"})),(0,a.kt)("p",null,"When viewing the front of the card, users are presented with a rich set of information designed to provide a quick and informative snapshot of each pool:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Token Pair and Logos"),": Each pool is represented by its pair of tokens, accompanied by their logos when available, for easy identification."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Verification Status"),": A green icon signifies that the pool has been officially verified by Archethic, indicating a layer of trust and security."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Personal Liquidity Contribution"),": If you have added liquidity to a pool, a yellow star icon will highlight your participation, making it easy to track your investments."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Total Value Locked (TVL)"),": The TVL is displayed in dollars, offering a clear view of the pool's size and the total capital invested."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Annual Percentage Rate (APR) Over 24 Hours"),": The APR is displayed to indicate the potential return on investment over a year, based on the pool\u2019s performance during the last 24 hours. This provides a quick snapshot of profitability to help users assess the attractiveness of investing in the pool. "),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Trading Dynamics"),": Detailed statistics on trading volume and fees collected over the last 24 hours and cumulatively are provided to give users insights into the pool's activity and profitability.")),(0,a.kt)("h3",{id:"back-view-exploring-pool-details"},"Back View: Exploring Pool Details"),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Pool List Back",src:i(17675).Z,width:"709",height:"562"})),(0,a.kt)("p",null,"You can find in this side of the card:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Pool Address"),": Displayed prominently for easy reference. Accompanying the address, an icon for quick copying allows users to easily share or save the address. - Additionally, a separate icon links directly to the blockchain explorer, where users can delve into full details and analytics of the pool."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Token Holdings"),": This section lists the exact number of tokens currently deposited within the pool, providing a clear view of the pool's liquidity depth."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Swap Fee Percentage"),": The fee charged for swap transactions within this particular pool is displayed as a percentage. This fee contributes to the rewards earned by liquidity providers, representing an essential metric for potential and current investors.")),(0,a.kt)("h3",{id:"interacting-with-pools-available-actions"},"Interacting with Pools: Available Actions"),(0,a.kt)("p",null,"On aeSwap, participants have the flexibility to engage with liquidity pools through a variety of actions, each designed to suit different strategies and needs. Here\u2019s a concise overview of the options available:"),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"Exchange Pool Tokens"),": Users can swap tokens within a pool, utilizing the liquidity available to exchange one token for another. This action is fundamental to the operation of a DEX, allowing users to seamlessly trade assets at current market rates determined by the pool's liquidity and token ratio."),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"Add Liquidity"),": If you're looking to contribute to a pool, this action enables you to deposit your tokens into the pool. Adding liquidity increases the pool's total value locked (TVL) and, in return, you receive liquidity provider (LP) tokens. These LP tokens represent your share of the pool and entitle you to a portion of the trading fees generated by the pool's activity."),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"Remove Liquidity"),": When you wish to retrieve your deposited tokens from a pool, this action allows you to do so. By returning your LP tokens, you can claim back your share of the pool, along with any accrued fees, based on the current ratio of tokens within the pool. This action is essential for managing your investments and realizing potential gains from fee accumulation."),(0,a.kt)("h3",{id:"fees"},"Fees"),(0,a.kt)("p",null,"For enhancing %APR, liquidity, and volume, all fees are returned to LP suppliers: 0.3% LP provider fee, 0% protocol fee."),(0,a.kt)("h3",{id:"specificity-of-the-aeeth--uco-pair"},"Specificity of the aeETH / UCO pair"),(0,a.kt)("p",null,"Archethic offers a specific aeETH/UCO pool featuring a new farming mechanism designed to reward long-term commitment. This update provides UCO holders with flexible levels and the potential for higher rewards through a tiered system, reinforcing our mission to support sustained engagement with our project. "),(0,a.kt)("p",null,"With our new Leveling System on the aeETH/UCO pool, we\u2019ve removed LP provider fees on this pool: 0.3% Protocol Fees, 0% LP Provider Fees on the aeETH/UCO pool."),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Pool aeETH/UCO",src:i(10071).Z,width:"704",height:"573"})),(0,a.kt)("p",null,"For the specific aeETH/UCO pool, the displayed information is unique:"),(0,a.kt)("p",null,"3-Year APR of the Associated Farm: Instead of showing the fees collected by the pool, we display the 3-year APR of the farm associated with the pool. A link is provided to allow users to access the farm directly."),(0,a.kt)("h2",{id:"add-liquidity"},"Add Liquidity"),(0,a.kt)("p",null,"Enhancing your portfolio by adding liquidity to a pool is a straightforward process designed for ease of use and efficiency. Here's how you can contribute to the liquidity of your chosen pool:"),(0,a.kt)("h3",{id:"step-1-adding-liquidity-essential-information"},"Step 1: Adding Liquidity: Essential Information"),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Add liquidity form",src:i(17258).Z,width:"675",height:"617"})),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"Entering Token Amounts"),": Begin by inputting the amount of one of the two tokens in the pool's pair. The system will automatically calculate the necessary amount of the second token based on the current pool ratio, ensuring your contribution maintains the pool's balance."),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"Slippage Tolerance Configuration"),': To manage the impact of price fluctuations during your transaction, click on the wheel icon next to "slippage tolerance." Slippage occurs when the price at which your transaction is executed differs from the price when you submitted it. Adjusting your slippage tolerance allows you to control the maximum price variation you\'re willing to accept.'),(0,a.kt)("p",null,"Transaction Details: Once you've set the amounts, the system will display information about your transaction:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Minimum Token Amounts"),": The least amount of each token that will be added to the pool, considering slippage and transaction timing."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Estimated LP Tokens"),": An estimation of how many liquidity provider (LP) tokens you'll receive in return. These tokens represent your share of the pool and your entitlement to a portion of the trading fees.")),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"Add Liquidity"),': Click the "Add liquidity" button to finalize your contribution. This action initiates the transaction and adds your tokens to the pool.'),(0,a.kt)("h4",{id:"pre-transaction-validations"},"Pre-transaction Validations"),(0,a.kt)("p",null,"Before adding liquidity, the system performs a vital check to ensure:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Token Availability"),": Verifies that the necessary tokens are available in your wallet for the liquidity addition.")),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"When adding liquidity involving UCO (the native token of the Archethic Public Blockchain), the system automatically calculates and reserves the necessary amount for transaction fees associated with liquidity addition. As a result, the maximum amount of UCO that can be allocated is less than your total UCO balance to accommodate these costs.")),(0,a.kt)("h3",{id:"step-2-finalizing-liquidity-addition-confirmation-and-validation-steps"},"Step 2: Finalizing Liquidity Addition: Confirmation and Validation Steps"),(0,a.kt)("p",null,'After you submit the liquidity addition form by clicking the "Add liquidity" button, you will be directed to a confirmation screen. This screen serves a critical role in the liquidity addition process, enabling you to:'),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Review Token Ratio"),": Examine the initial ratio between the two tokens in your new pool to ensure it aligns with your expectations."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Balance Verification"),': Check your account balances before and after liquidity is added to understand the impact of your transaction.\nIf the details align with your intentions and you are content with the proposed setup, proceed by clicking on the "Confirm the creation" button to move forward in the process.')),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Add liquidity confirm",src:i(36223).Z,width:"674",height:"596"})),(0,a.kt)("h4",{id:"wallet-validations-for-liquidity-transactions-1"},"Wallet Validations for Liquidity Transactions"),(0,a.kt)("p",null,"The addition of liquidity to the pool necessitates two separate validations within your Archethic wallet:"),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"Transaction Confirmation"),": You will need to approve 1 transaction."),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"Transaction Address"),": Upon successful completion of this transaction, you will be provided with the address. This address allows you to verify the transaction on the blockchain, ensuring transparency and security in your operation."),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Add liquidity end",src:i(33522).Z,width:"628",height:"445"})),(0,a.kt)("h2",{id:"remove-liquidity"},"Remove Liquidity"),(0,a.kt)("p",null,"Withdrawing your liquidity from a pool is a flexible process that can be initiated at any time, allowing you to reclaim all or a portion of your deposited tokens."),(0,a.kt)("h3",{id:"step-1-removing-liquidity-essential-information"},"Step 1: Removing Liquidity: Essential Information"),(0,a.kt)("p",null,"The process begins with the user entering the amount of LP (Liquidity Provider) tokens they wish to redeem. This action is facilitated through a user-friendly form designed to make the withdrawal process as straightforward as possible."),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Remove liquidity form",src:i(72640).Z,width:"670",height:"503"})),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"Entering LP Token Amounts"),": The amount of LP tokens you wish to use for the withdrawal. LP tokens represent your share of the pool's total liquidity."),(0,a.kt)("p",null,"Transaction Details: Once you've set the amount, the system will display information about your transaction:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Amounts of token to get back"),": This crucial piece of information tells you exactly how many of each token in the pool you will receive in return for the specified amount of LP tokens. This is calculated based on the current ratio of tokens within the pool and the total amount of liquidity you're choosing to withdraw.\nBy presenting these details, the system aims to provide users with a clear understanding of the outcome of their liquidity removal transaction, allowing for precise and confident decision-making.")),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"Remove Liquidity"),': Click the "Remove liquidity" button to finalize your withdrawal. This action initiates the transaction, removes (or "burns") your LP tokens from circulation, and the corresponding amount of the original tokens you provided as liquidity will be returned to you. The exact amounts are calculated according to the current liquidity ratio within the pool and the total number of LP tokens you are redeeming.'),(0,a.kt)("h4",{id:"pre-transaction-validations-1"},"Pre-transaction Validations"),(0,a.kt)("p",null,"Before removing liquidity, the system performs a vital check to ensure:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Token Availability"),": Verifies that the necessary LP tokens are available in your wallet for the liquidity removal.")),(0,a.kt)("h3",{id:"step-2-finalizing-liquidity-removal-confirmation-and-validation-steps"},"Step 2: Finalizing Liquidity Removal: Confirmation and Validation Steps"),(0,a.kt)("p",null,'After you submit the liquidity removal form by clicking the "Remove liquidity" button, you will be directed to a confirmation screen. This screen serves a critical role in the liquidity removal process, enabling you to:'),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Balance Verification"),': Check your account balances before and after liquidity is removed to understand the impact of your transaction.\nIf the details align with your intentions and you are content with the proposed setup, proceed by clicking on the "Confirm" button to move forward in the process.')),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Remove liquidity confirm",src:i(89776).Z,width:"674",height:"510"})),(0,a.kt)("h4",{id:"wallet-validations-for-liquidity-transactions-2"},"Wallet Validations for Liquidity Transactions"),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"Transaction Confirmation"),": You will need to approve 1 transaction."),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"Transaction Address"),": Upon successful completion of this transaction, you will be provided with the address. This address allows you to verify the transaction on the blockchain, ensuring transparency and security in your operation."),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Remove liquidity end",src:i(81835).Z,width:"633",height:"439"})))}p.isMDXComponent=!0},72047:(t,e,i)=>{i.d(e,{Z:()=>o});const o=i.p+"assets/images/aeSwap-AddPool-Btn-0825cdf712b77c78f07e9956b5ebc4e1.png"},12827:(t,e,i)=>{i.d(e,{Z:()=>o});const o=i.p+"assets/images/aeSwap-AddPool-Confirm-f92d0def12056134e4f26fd127fce387.png"},53854:(t,e,i)=>{i.d(e,{Z:()=>o});const o=i.p+"assets/images/aeSwap-AddPool-End-bb7eb8209c2aa84fda68843cd8f8269b.png"},27766:(t,e,i)=>{i.d(e,{Z:()=>o});const o=i.p+"assets/images/aeSwap-AddPool-Form-ae627fd0617eba2040579e45fa29cd95.png"},36223:(t,e,i)=>{i.d(e,{Z:()=>o});const o=i.p+"assets/images/aeSwap-LiquidityAdd-Confirm-2eb867f96757eee730d705de36c25897.png"},33522:(t,e,i)=>{i.d(e,{Z:()=>o});const o=i.p+"assets/images/aeSwap-LiquidityAdd-End-dae44e7067e0883cd4de115dd6477015.png"},17258:(t,e,i)=>{i.d(e,{Z:()=>o});const o=i.p+"assets/images/aeSwap-LiquidityAdd-Form-af387e7c00a71bb7588cbaec1a9913e4.png"},89776:(t,e,i)=>{i.d(e,{Z:()=>o});const o=i.p+"assets/images/aeSwap-LiquidityRemove-Confirm-17cf11c38fa06aa724064fc6727305bb.png"},81835:(t,e,i)=>{i.d(e,{Z:()=>o});const o=i.p+"assets/images/aeSwap-LiquidityRemove-End-ff344c4528c227f2ea0d2038440827d7.png"},72640:(t,e,i)=>{i.d(e,{Z:()=>o});const o=i.p+"assets/images/aeSwap-LiquidityRemove-Form-a6fa6ae3a33dedcc094ebdca216ba903.png"},10071:(t,e,i)=>{i.d(e,{Z:()=>o});const o=i.p+"assets/images/aeSwap-PoolAETHUCO-Front-59e79259272f84d7c68e66cebe2ad76d.png"},17675:(t,e,i)=>{i.d(e,{Z:()=>o});const o=i.p+"assets/images/aeSwap-PoolList-Back-a58b0959b60df54a45eb449eb4dd5845.png"},49123:(t,e,i)=>{i.d(e,{Z:()=>o});const o=i.p+"assets/images/aeSwap-PoolList-Front-10a02bf6deb41c5940f325ce783b67bd.png"},8209:(t,e,i)=>{i(67294)}}]); \ No newline at end of file diff --git a/assets/js/05fd4dd8.f3691616.js b/assets/js/05fd4dd8.a5a4f187.js similarity index 97% rename from assets/js/05fd4dd8.f3691616.js rename to assets/js/05fd4dd8.a5a4f187.js index 16df2835d..d0ea39110 100644 --- a/assets/js/05fd4dd8.f3691616.js +++ b/assets/js/05fd4dd8.a5a4f187.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9174],{3905:(t,e,n)=>{n.d(e,{Zo:()=>p,kt:()=>f});var o=n(67294);function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function i(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e&&(o=o.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,o)}return n}function a(t){for(var e=1;e=0||(r[n]=t[n]);return r}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}var l=o.createContext({}),c=function(t){var e=o.useContext(l),n=e;return t&&(n="function"==typeof t?t(e):a(a({},e),t)),n},p=function(t){var e=c(t.components);return o.createElement(l.Provider,{value:e},t.children)},d="mdxType",u={inlineCode:"code",wrapper:function(t){var e=t.children;return o.createElement(o.Fragment,{},e)}},b=o.forwardRef((function(t,e){var n=t.components,r=t.mdxType,i=t.originalType,l=t.parentName,p=s(t,["components","mdxType","originalType","parentName"]),d=c(n),b=r,f=d["".concat(l,".").concat(b)]||d[b]||u[b]||i;return n?o.createElement(f,a(a({ref:e},p),{},{components:n})):o.createElement(f,a({ref:e},p))}));function f(t,e){var n=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var i=n.length,a=new Array(i);a[0]=b;var s={};for(var l in e)hasOwnProperty.call(e,l)&&(s[l]=e[l]);s.originalType=t,s[d]="string"==typeof t?t:r,a[1]=s;for(var c=2;c{n.r(e),n.d(e,{assets:()=>l,contentTitle:()=>a,default:()=>u,frontMatter:()=>i,metadata:()=>s,toc:()=>c});var o=n(87462),r=(n(67294),n(3905));n(8209);const i={id:"bootstrap",title:"Bootstrap"},a=void 0,s={unversionedId:"build/core/bootstrap",id:"build/core/bootstrap",title:"Bootstrap",description:"When the Archethic node, a task is launched to perform the node bootstrapping to join the network.",source:"@site/docs/build/core/bootstrap.md",sourceDirName:"build/core",slug:"/build/core/bootstrap",permalink:"/build/core/bootstrap",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"bootstrap",title:"Bootstrap"},sidebar:"docs",previous:{title:"P2P availability sampling",permalink:"/build/core/beacon-chain/p2p-sampling"},next:{title:"Cryptography",permalink:"/build/core/cryptography/"}},l={},c=[{value:"Network initizialiation",id:"network-initizialiation",level:2},{value:"First node bootstrapping",id:"first-node-bootstrapping",level:2},{value:"Next time bootstraps",id:"next-time-bootstraps",level:2}],p={toc:c},d="wrapper";function u(t){let{components:e,...n}=t;return(0,r.kt)(d,(0,o.Z)({},p,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"When the Archethic node, a task is launched to perform the node bootstrapping to join the network."),(0,r.kt)("p",null,"To be able to bootstrap a node, we gather connectivity information (IP, Port, Transport, Reward address, Bootstrapping seeds) and also last synchronization date."),(0,r.kt)("p",null,"But a flow is determine to define what is the state of the bootstrap: network initialization, first bootstrap, next bootstrap"),(0,r.kt)("mermaid",{value:"graph TD\n A[Start] --\x3e B{Need to bootstrap ?}\n B --\x3e|Yes| Bootstrap \n B --\x3e|No| End\n Bootstrap --\x3e C{Need to initialize network?}\n C --\x3e|Yes| D(Initialize network)\n C --\x3e|No| E{New node public key ?}\n E --\x3e|Yes| F(New node transaction update)\n E --\x3e|Yes| G(First node transaction)"}),(0,r.kt)("h2",{id:"network-initizialiation"},"Network initizialiation"),(0,r.kt)("p",null,"The first node joining the network will be in charge to initialize the network by defining few transaction chains:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Create first node shared secrets transaction chain with initial dailly nonce"),(0,r.kt)("li",{parentName:"ul"},"Create genesis wallets according to the allocation from the UCO token distribution ")),(0,r.kt)("h2",{id:"first-node-bootstrapping"},"First node bootstrapping"),(0,r.kt)("p",null,"During the first initialization, a node will contact P2P bootstrapping seeds (anchor nodes) to be able to fetch existing nodes."),(0,r.kt)("p",null,"Next a node will create transaction to publish its connectivity and crypto information which will authorize or not new joining node."),(0,r.kt)("p",null,"Once a node is authorized, after the success of this transaction, it can decrypt/load the storage nonce (will be used for self-repair) and start the self-repair initial cycle to sync transactions."),(0,r.kt)("h2",{id:"next-time-bootstraps"},"Next time bootstraps"),(0,r.kt)("p",null,"For further bootstraps, the bootstrap tasks determine if an update is required based on connectivity/crypto information changes, then a transaction is emitted to the node chain."),(0,r.kt)("p",null,"Once validated, the self-repair is also triggered to resync missed transactions."))}u.isMDXComponent=!0},8209:(t,e,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9174],{3905:(t,e,n)=>{n.d(e,{Zo:()=>p,kt:()=>f});var o=n(67294);function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function i(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e&&(o=o.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,o)}return n}function a(t){for(var e=1;e=0||(r[n]=t[n]);return r}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}var l=o.createContext({}),c=function(t){var e=o.useContext(l),n=e;return t&&(n="function"==typeof t?t(e):a(a({},e),t)),n},p=function(t){var e=c(t.components);return o.createElement(l.Provider,{value:e},t.children)},d="mdxType",u={inlineCode:"code",wrapper:function(t){var e=t.children;return o.createElement(o.Fragment,{},e)}},b=o.forwardRef((function(t,e){var n=t.components,r=t.mdxType,i=t.originalType,l=t.parentName,p=s(t,["components","mdxType","originalType","parentName"]),d=c(n),b=r,f=d["".concat(l,".").concat(b)]||d[b]||u[b]||i;return n?o.createElement(f,a(a({ref:e},p),{},{components:n})):o.createElement(f,a({ref:e},p))}));function f(t,e){var n=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var i=n.length,a=new Array(i);a[0]=b;var s={};for(var l in e)hasOwnProperty.call(e,l)&&(s[l]=e[l]);s.originalType=t,s[d]="string"==typeof t?t:r,a[1]=s;for(var c=2;c{n.r(e),n.d(e,{assets:()=>l,contentTitle:()=>a,default:()=>u,frontMatter:()=>i,metadata:()=>s,toc:()=>c});var o=n(87462),r=(n(67294),n(3905));n(8209);const i={id:"bootstrap",title:"Bootstrap"},a=void 0,s={unversionedId:"build/core/bootstrap",id:"build/core/bootstrap",title:"Bootstrap",description:"When the Archethic node, a task is launched to perform the node bootstrapping to join the network.",source:"@site/docs/build/core/bootstrap.md",sourceDirName:"build/core",slug:"/build/core/bootstrap",permalink:"/build/core/bootstrap",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"bootstrap",title:"Bootstrap"},sidebar:"docs",previous:{title:"P2P availability sampling",permalink:"/build/core/beacon-chain/p2p-sampling"},next:{title:"Cryptography",permalink:"/build/core/cryptography/"}},l={},c=[{value:"Network initizialiation",id:"network-initizialiation",level:2},{value:"First node bootstrapping",id:"first-node-bootstrapping",level:2},{value:"Next time bootstraps",id:"next-time-bootstraps",level:2}],p={toc:c},d="wrapper";function u(t){let{components:e,...n}=t;return(0,r.kt)(d,(0,o.Z)({},p,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"When the Archethic node, a task is launched to perform the node bootstrapping to join the network."),(0,r.kt)("p",null,"To be able to bootstrap a node, we gather connectivity information (IP, Port, Transport, Reward address, Bootstrapping seeds) and also last synchronization date."),(0,r.kt)("p",null,"But a flow is determine to define what is the state of the bootstrap: network initialization, first bootstrap, next bootstrap"),(0,r.kt)("mermaid",{value:"graph TD\n A[Start] --\x3e B{Need to bootstrap ?}\n B --\x3e|Yes| Bootstrap \n B --\x3e|No| End\n Bootstrap --\x3e C{Need to initialize network?}\n C --\x3e|Yes| D(Initialize network)\n C --\x3e|No| E{New node public key ?}\n E --\x3e|Yes| F(New node transaction update)\n E --\x3e|Yes| G(First node transaction)"}),(0,r.kt)("h2",{id:"network-initizialiation"},"Network initizialiation"),(0,r.kt)("p",null,"The first node joining the network will be in charge to initialize the network by defining few transaction chains:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Create first node shared secrets transaction chain with initial dailly nonce"),(0,r.kt)("li",{parentName:"ul"},"Create genesis wallets according to the allocation from the UCO token distribution ")),(0,r.kt)("h2",{id:"first-node-bootstrapping"},"First node bootstrapping"),(0,r.kt)("p",null,"During the first initialization, a node will contact P2P bootstrapping seeds (anchor nodes) to be able to fetch existing nodes."),(0,r.kt)("p",null,"Next a node will create transaction to publish its connectivity and crypto information which will authorize or not new joining node."),(0,r.kt)("p",null,"Once a node is authorized, after the success of this transaction, it can decrypt/load the storage nonce (will be used for self-repair) and start the self-repair initial cycle to sync transactions."),(0,r.kt)("h2",{id:"next-time-bootstraps"},"Next time bootstraps"),(0,r.kt)("p",null,"For further bootstraps, the bootstrap tasks determine if an update is required based on connectivity/crypto information changes, then a transaction is emitted to the node chain."),(0,r.kt)("p",null,"Once validated, the self-repair is also triggered to resync missed transactions."))}u.isMDXComponent=!0},8209:(t,e,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/0607e0c5.9c3c382e.js b/assets/js/0607e0c5.5a768f7b.js similarity index 98% rename from assets/js/0607e0c5.9c3c382e.js rename to assets/js/0607e0c5.5a768f7b.js index ed9e6b9a3..8dc71b21c 100644 --- a/assets/js/0607e0c5.9c3c382e.js +++ b/assets/js/0607e0c5.5a768f7b.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6894],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>m});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),c=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},d=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},b=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),p=c(n),b=a,m=p["".concat(s,".").concat(b)]||p[b]||u[b]||o;return n?r.createElement(m,l(l({ref:t},d),{},{components:n})):r.createElement(m,l({ref:t},d))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=b;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:a,l[1]=i;for(var c=2;c{n.r(t),n.d(t,{Badge:()=>u,Bullet:()=>d,Details:()=>m,SpecifiedBy:()=>p,assets:()=>c,contentTitle:()=>i,default:()=>y,frontMatter:()=>l,metadata:()=>s,toc:()=>b});var r=n(87462),a=n(67294),o=n(3905);n(8209);const l={id:"version",title:"Version",hide_table_of_contents:!1},i=void 0,s={unversionedId:"build/api/schema/objects/version",id:"build/api/schema/objects/version",title:"Version",description:"[Version] represents code, transaction and protocol version",source:"@site/docs/build/api/schema/objects/version.mdx",sourceDirName:"build/api/schema/objects",slug:"/build/api/schema/objects/version",permalink:"/build/api/schema/objects/version",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"version",title:"Version",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"ValidationStamp",permalink:"/build/api/schema/objects/validation-stamp"},next:{title:"balance",permalink:"/build/api/schema/queries/balance"}},c={},d=()=>(0,o.kt)(a.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=e=>(0,o.kt)(a.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,o.kt)(a.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),b=[{value:"Fields",id:"fields",level:3},{value:'Version.codeString ',id:"code-style-fontweight-normal-versionbcodebcodestring-",level:4},{value:'Version.protocolString ',id:"code-style-fontweight-normal-versionbprotocolbcodestring-",level:4},{value:'Version.transactionString ',id:"code-style-fontweight-normal-versionbtransactionbcodestring-",level:4},{value:"Returned by",id:"returned-by",level:3}],m=e=>{let{dataOpen:t,dataClose:n,children:l,startOpen:i=!1}=e;const[s,c]=(0,a.useState)(i);return(0,o.kt)("details",(0,r.Z)({},s?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),c((e=>!e))},style:{listStyle:"none"}},s?t:n),s&&l)},g={Bullet:d,SpecifiedBy:p,Badge:u,toc:b,Details:m},f="wrapper";function y(e){let{components:t,...n}=e;return(0,o.kt)(f,(0,r.Z)({},g,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"[Version]"," represents code, transaction and protocol version"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"type Version {\n code: String\n protocol: String\n transaction: String\n}\n")),(0,o.kt)("h3",{id:"fields"},"Fields"),(0,o.kt)("h4",{id:"code-style-fontweight-normal-versionbcodebcodestring-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"Version.",(0,o.kt)("b",null,"code"))),(0,o.kt)(d,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/string"},(0,o.kt)("inlineCode",{parentName:"a"},"String"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h4",{id:"code-style-fontweight-normal-versionbprotocolbcodestring-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"Version.",(0,o.kt)("b",null,"protocol"))),(0,o.kt)(d,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/string"},(0,o.kt)("inlineCode",{parentName:"a"},"String"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h4",{id:"code-style-fontweight-normal-versionbtransactionbcodestring-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"Version.",(0,o.kt)("b",null,"transaction"))),(0,o.kt)(d,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/string"},(0,o.kt)("inlineCode",{parentName:"a"},"String"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h3",{id:"returned-by"},"Returned by"),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/queries/version"},(0,o.kt)("inlineCode",{parentName:"a"},"version"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"query",mdxType:"Badge"})))}y.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6894],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>m});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),c=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},d=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},b=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),p=c(n),b=a,m=p["".concat(s,".").concat(b)]||p[b]||u[b]||o;return n?r.createElement(m,l(l({ref:t},d),{},{components:n})):r.createElement(m,l({ref:t},d))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=b;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:a,l[1]=i;for(var c=2;c{n.r(t),n.d(t,{Badge:()=>u,Bullet:()=>d,Details:()=>m,SpecifiedBy:()=>p,assets:()=>c,contentTitle:()=>i,default:()=>y,frontMatter:()=>l,metadata:()=>s,toc:()=>b});var r=n(87462),a=n(67294),o=n(3905);n(8209);const l={id:"version",title:"Version",hide_table_of_contents:!1},i=void 0,s={unversionedId:"build/api/schema/objects/version",id:"build/api/schema/objects/version",title:"Version",description:"[Version] represents code, transaction and protocol version",source:"@site/docs/build/api/schema/objects/version.mdx",sourceDirName:"build/api/schema/objects",slug:"/build/api/schema/objects/version",permalink:"/build/api/schema/objects/version",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"version",title:"Version",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"ValidationStamp",permalink:"/build/api/schema/objects/validation-stamp"},next:{title:"balance",permalink:"/build/api/schema/queries/balance"}},c={},d=()=>(0,o.kt)(a.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=e=>(0,o.kt)(a.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,o.kt)(a.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),b=[{value:"Fields",id:"fields",level:3},{value:'Version.codeString ',id:"code-style-fontweight-normal-versionbcodebcodestring-",level:4},{value:'Version.protocolString ',id:"code-style-fontweight-normal-versionbprotocolbcodestring-",level:4},{value:'Version.transactionString ',id:"code-style-fontweight-normal-versionbtransactionbcodestring-",level:4},{value:"Returned by",id:"returned-by",level:3}],m=e=>{let{dataOpen:t,dataClose:n,children:l,startOpen:i=!1}=e;const[s,c]=(0,a.useState)(i);return(0,o.kt)("details",(0,r.Z)({},s?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),c((e=>!e))},style:{listStyle:"none"}},s?t:n),s&&l)},g={Bullet:d,SpecifiedBy:p,Badge:u,toc:b,Details:m},f="wrapper";function y(e){let{components:t,...n}=e;return(0,o.kt)(f,(0,r.Z)({},g,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"[Version]"," represents code, transaction and protocol version"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"type Version {\n code: String\n protocol: String\n transaction: String\n}\n")),(0,o.kt)("h3",{id:"fields"},"Fields"),(0,o.kt)("h4",{id:"code-style-fontweight-normal-versionbcodebcodestring-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"Version.",(0,o.kt)("b",null,"code"))),(0,o.kt)(d,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/string"},(0,o.kt)("inlineCode",{parentName:"a"},"String"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h4",{id:"code-style-fontweight-normal-versionbprotocolbcodestring-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"Version.",(0,o.kt)("b",null,"protocol"))),(0,o.kt)(d,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/string"},(0,o.kt)("inlineCode",{parentName:"a"},"String"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h4",{id:"code-style-fontweight-normal-versionbtransactionbcodestring-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"Version.",(0,o.kt)("b",null,"transaction"))),(0,o.kt)(d,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/string"},(0,o.kt)("inlineCode",{parentName:"a"},"String"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h3",{id:"returned-by"},"Returned by"),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/queries/version"},(0,o.kt)("inlineCode",{parentName:"a"},"version"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"query",mdxType:"Badge"})))}y.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/0666b85a.a31d67b0.js b/assets/js/0666b85a.1c477c4a.js similarity index 97% rename from assets/js/0666b85a.a31d67b0.js rename to assets/js/0666b85a.1c477c4a.js index bb289ff38..b0506ee6b 100644 --- a/assets/js/0666b85a.a31d67b0.js +++ b/assets/js/0666b85a.1c477c4a.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3633],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var p=r.createContext({}),s=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=s(e.components);return r.createElement(p.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,l=e.originalType,p=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),u=s(n),m=a,f=u["".concat(p,".").concat(m)]||u[m]||d[m]||l;return n?r.createElement(f,o(o({ref:t},c),{},{components:n})):r.createElement(f,o({ref:t},c))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=n.length,o=new Array(l);o[0]=m;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[u]="string"==typeof e?e:a,o[1]=i;for(var s=2;s{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>d,frontMatter:()=>l,metadata:()=>i,toc:()=>s});var r=n(87462),a=(n(67294),n(3905));n(8209);const l={id:"testnet",title:"Testnet"},o=void 0,i={unversionedId:"build/testnet",id:"build/testnet",title:"Testnet",description:"Local",source:"@site/docs/build/testnet.md",sourceDirName:"build",slug:"/build/testnet",permalink:"/build/testnet",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"testnet",title:"Testnet"},sidebar:"docs",previous:{title:"Mock form",permalink:"/build/smart-contracts/playground/mock-form"},next:{title:"FAQ",permalink:"/category/faq"}},p={},s=[{value:"Local",id:"local",level:2},{value:"Installation",id:"installation",level:3},{value:"Get some funds",id:"get-some-funds",level:3},{value:"Public",id:"public",level:2},{value:"Get some funds",id:"get-some-funds-1",level:3}],c={toc:s},u="wrapper";function d(e){let{components:t,...n}=e;return(0,a.kt)(u,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"local"},"Local"),(0,a.kt)("p",null,"To test and build on top of Archethic network, we encourage people to test with a local instance."),(0,a.kt)("h3",{id:"installation"},"Installation"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Clone the repository: ")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},"git clone https://github.com/archethic-foundation/archethic-node.git\n")),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Setup the dev environment:"),(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://elixir-lang.org/install.html"},"Install Elixir")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://nodejs.org/en/download/"},"Install NodeJS")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://gmplib.org"},"Install GMP")))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Fetch the dependencies"))),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},"mix deps.get\n")),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Build web assets")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},"cd assets ; npm install; cd -\n")),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Start instance")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},"iex -S mix\n")),(0,a.kt)("h3",{id:"get-some-funds"},"Get some funds"),(0,a.kt)("p",null,"To be able to fund some addresses, the development mode of the running enable the testnet faucet."),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("p",{parentName:"li"},"Funding"),(0,a.kt)("p",{parentName:"li"},"Browse to the http://localhost:4000/faucet and enter any address to send funds to. "),(0,a.kt)("p",{parentName:"li"},"It should transfer 100 UCO to the given address.")),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("p",{parentName:"li"},"Check the balance"),(0,a.kt)("p",{parentName:"li"},"Go to http://localhost:4000/explorer/transaction/{TYPE_YOUR_ADDRESS_IN_HEXADECIMAL}"),(0,a.kt)("p",{parentName:"li"},'It should display 100 unspent outputs (in the "Ledger inputs" section)'))),(0,a.kt)("h2",{id:"public"},"Public"),(0,a.kt)("p",null,"Public testnet is available at ",(0,a.kt)("a",{parentName:"p",href:"https://testnet.archethic.net"},"https://testnet.archethic.net")),(0,a.kt)("h3",{id:"get-some-funds-1"},"Get some funds"),(0,a.kt)("p",null,"You can then go the ",(0,a.kt)("a",{parentName:"p",href:"https://testnet.archethic.net/faucet"},"faucet")," to get free UCOs to experiment the Archethic network"))}d.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3633],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var p=r.createContext({}),s=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=s(e.components);return r.createElement(p.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,l=e.originalType,p=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),u=s(n),m=a,f=u["".concat(p,".").concat(m)]||u[m]||d[m]||l;return n?r.createElement(f,o(o({ref:t},c),{},{components:n})):r.createElement(f,o({ref:t},c))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=n.length,o=new Array(l);o[0]=m;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[u]="string"==typeof e?e:a,o[1]=i;for(var s=2;s{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>d,frontMatter:()=>l,metadata:()=>i,toc:()=>s});var r=n(87462),a=(n(67294),n(3905));n(8209);const l={id:"testnet",title:"Testnet"},o=void 0,i={unversionedId:"build/testnet",id:"build/testnet",title:"Testnet",description:"Local",source:"@site/docs/build/testnet.md",sourceDirName:"build",slug:"/build/testnet",permalink:"/build/testnet",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"testnet",title:"Testnet"},sidebar:"docs",previous:{title:"Mock form",permalink:"/build/smart-contracts/playground/mock-form"},next:{title:"FAQ",permalink:"/category/faq"}},p={},s=[{value:"Local",id:"local",level:2},{value:"Installation",id:"installation",level:3},{value:"Get some funds",id:"get-some-funds",level:3},{value:"Public",id:"public",level:2},{value:"Get some funds",id:"get-some-funds-1",level:3}],c={toc:s},u="wrapper";function d(e){let{components:t,...n}=e;return(0,a.kt)(u,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"local"},"Local"),(0,a.kt)("p",null,"To test and build on top of Archethic network, we encourage people to test with a local instance."),(0,a.kt)("h3",{id:"installation"},"Installation"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Clone the repository: ")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},"git clone https://github.com/archethic-foundation/archethic-node.git\n")),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Setup the dev environment:"),(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://elixir-lang.org/install.html"},"Install Elixir")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://nodejs.org/en/download/"},"Install NodeJS")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://gmplib.org"},"Install GMP")))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Fetch the dependencies"))),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},"mix deps.get\n")),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Build web assets")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},"cd assets ; npm install; cd -\n")),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Start instance")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},"iex -S mix\n")),(0,a.kt)("h3",{id:"get-some-funds"},"Get some funds"),(0,a.kt)("p",null,"To be able to fund some addresses, the development mode of the running enable the testnet faucet."),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("p",{parentName:"li"},"Funding"),(0,a.kt)("p",{parentName:"li"},"Browse to the http://localhost:4000/faucet and enter any address to send funds to. "),(0,a.kt)("p",{parentName:"li"},"It should transfer 100 UCO to the given address.")),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("p",{parentName:"li"},"Check the balance"),(0,a.kt)("p",{parentName:"li"},"Go to http://localhost:4000/explorer/transaction/{TYPE_YOUR_ADDRESS_IN_HEXADECIMAL}"),(0,a.kt)("p",{parentName:"li"},'It should display 100 unspent outputs (in the "Ledger inputs" section)'))),(0,a.kt)("h2",{id:"public"},"Public"),(0,a.kt)("p",null,"Public testnet is available at ",(0,a.kt)("a",{parentName:"p",href:"https://testnet.archethic.net"},"https://testnet.archethic.net")),(0,a.kt)("h3",{id:"get-some-funds-1"},"Get some funds"),(0,a.kt)("p",null,"You can then go the ",(0,a.kt)("a",{parentName:"p",href:"https://testnet.archethic.net/faucet"},"faucet")," to get free UCOs to experiment the Archethic network"))}d.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/07620fdf.209ac10b.js b/assets/js/07620fdf.859fd8c9.js similarity index 98% rename from assets/js/07620fdf.209ac10b.js rename to assets/js/07620fdf.859fd8c9.js index d9371a862..fc8deb66c 100644 --- a/assets/js/07620fdf.209ac10b.js +++ b/assets/js/07620fdf.859fd8c9.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3812],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>m});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var c=a.createContext({}),l=function(e){var t=a.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=l(e.components);return a.createElement(c.Provider,{value:t},e.children)},d="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,c=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=l(n),u=r,m=d["".concat(c,".").concat(u)]||d[u]||h[u]||i;return n?a.createElement(m,o(o({ref:t},p),{},{components:n})):a.createElement(m,o({ref:t},p))}));function m(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,o=new Array(i);o[0]=u;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[d]="string"==typeof e?e:r,o[1]=s;for(var l=2;l{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>s,toc:()=>l});var a=n(87462),r=(n(67294),n(3905));n(8209);const i={id:"cli",title:"AEWeb - CLI",sidebar_label:"CLI",sidebar_position:3},o="AEWeb CLI (Command-Line Interface)",s={unversionedId:"participate/aeweb/usage/cli",id:"participate/aeweb/usage/cli",title:"AEWeb - CLI",description:"Repository//github.com/archethic-foundation/aeweb-cli",source:"@site/docs/participate/aeweb/usage/cli.md",sourceDirName:"participate/aeweb/usage",slug:"/participate/aeweb/usage/cli",permalink:"/participate/aeweb/usage/cli",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",sidebarPosition:3,frontMatter:{id:"cli",title:"AEWeb - CLI",sidebar_label:"CLI",sidebar_position:3},sidebar:"docs",previous:{title:"Usage",permalink:"/category/usage"},next:{title:"AEWeb Front End",permalink:"/participate/aeweb/usage/aeweb-front"}},c={},l=[{value:"aeweb generate-address",id:"aeweb-generate-address",level:2},{value:"aeweb deploy",id:"aeweb-deploy",level:2}],p={toc:l},d="wrapper";function h(e){let{components:t,...n}=e;return(0,r.kt)(d,(0,a.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"aeweb-cli-command-line-interface"},"AEWeb CLI (Command-Line Interface)"),(0,r.kt)("p",null,"Repository: ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/aeweb-cli"},"https://github.com/archethic-foundation/aeweb-cli")),(0,r.kt)("p",null,"This tool, built with NodeJS, can be used to deploy files and websites to the Archethic blockchain.\nOnce installed, as instructed in the README, the ",(0,r.kt)("inlineCode",{parentName:"p"},"aeweb")," command is available."),(0,r.kt)("h2",{id:"aeweb-generate-address"},"aeweb generate-address"),(0,r.kt)("p",null,"This command is used to generate an address from a seed. "),(0,r.kt)("admonition",{title:"Use case",type:"info"},(0,r.kt)("p",{parentName:"admonition"},"You might use this on TestNet for example, to determine an address to use the ",(0,r.kt)("a",{parentName:"p",href:"https://testnet.archethic.net/faucet"},"faucet")," on.")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"$ aeweb generate-address --seed myseedphrase --index 0\n00005da88a4adaf5b40c958a20db981bd168008e03efbb7fc9d35e11be182a0d3065\n")),(0,r.kt)("h2",{id:"aeweb-deploy"},"aeweb deploy"),(0,r.kt)("p",null,"This command is used to deploy the content of a folder or a single file. It will create the ",(0,r.kt)("a",{parentName:"p",href:"/participate/aeweb/how-it-works"},"transactions"),", estimate the fees and, after confirmation, will write the transactions on the network."),(0,r.kt)("p",null,"Parameters: "),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"seed")," The keychain seed, used to prove you are the owner of the transaction chain used to pay the fees"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"endpoint")," ",(0,r.kt)("a",{parentName:"li",href:"https://testnet.archethic.net"},"https://testnet.archethic.net")," | ",(0,r.kt)("a",{parentName:"li",href:"https://mainnet.archethic.net"},"https://mainnet.archethic.net")," | ",(0,r.kt)("a",{parentName:"li",href:"http://127.0.0.1:4000"},"http://127.0.0.1:4000")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"path")," The path of the folder/file to upload ")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"$ aeweb deploy --seed myseedphrase --endpoint https://testnet.archethic.net --path ./website\nConnecting to https://testnet.archethic.net \nCreating file structure and compress content...\nCreating transactions ...\nEstimating fees ...\nTotal Fee Requirement would be : 2.58933391 UCO ( $ 0.23 | \u20ac 0.22), for 3 transactions.\nDo you want to continue. (yes/no) yes\nSending 3 transactions...\nTransaction 1...\nWaiting transaction validation...\nTransaction confirmed !\nSee transaction in explorer: https://testnet.archethic.net/explorer/transaction/000013c531...\n-----------\nTransaction 2...\nWaiting transaction validation...\nTransaction confirmed !\nSee transaction in explorer: https://testnet.archethic.net/explorer/transaction/0000a78a35...\n-----------\nTransaction 3...\nWaiting transaction validation...\nTransaction confirmed !\nSee transaction in explorer: https://testnet.archethic.net/explorer/transaction/0000f1126e...\n-----------\nWebsite is deployed at: https://testnet.archethic.net/api/web_hosting/00007d9167...\n")),(0,r.kt)("admonition",{title:"There Can Be Only One",type:"info"},(0,r.kt)("p",{parentName:"admonition"},(0,r.kt)("strong",{parentName:"p"},"There can only be a single deployment per seed.")," Which makes it possible to update it by running the exact same command. The endpoint of your deployment will not change. "),(0,r.kt)("p",{parentName:"admonition"},"If you need to deploy another website, use another seed (and transfer funds to it via the Wallet app).")))}h.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3812],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>m});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var c=a.createContext({}),l=function(e){var t=a.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=l(e.components);return a.createElement(c.Provider,{value:t},e.children)},d="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,c=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=l(n),u=r,m=d["".concat(c,".").concat(u)]||d[u]||h[u]||i;return n?a.createElement(m,o(o({ref:t},p),{},{components:n})):a.createElement(m,o({ref:t},p))}));function m(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,o=new Array(i);o[0]=u;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[d]="string"==typeof e?e:r,o[1]=s;for(var l=2;l{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>s,toc:()=>l});var a=n(87462),r=(n(67294),n(3905));n(8209);const i={id:"cli",title:"AEWeb - CLI",sidebar_label:"CLI",sidebar_position:3},o="AEWeb CLI (Command-Line Interface)",s={unversionedId:"participate/aeweb/usage/cli",id:"participate/aeweb/usage/cli",title:"AEWeb - CLI",description:"Repository//github.com/archethic-foundation/aeweb-cli",source:"@site/docs/participate/aeweb/usage/cli.md",sourceDirName:"participate/aeweb/usage",slug:"/participate/aeweb/usage/cli",permalink:"/participate/aeweb/usage/cli",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",sidebarPosition:3,frontMatter:{id:"cli",title:"AEWeb - CLI",sidebar_label:"CLI",sidebar_position:3},sidebar:"docs",previous:{title:"Usage",permalink:"/category/usage"},next:{title:"AEWeb Front End",permalink:"/participate/aeweb/usage/aeweb-front"}},c={},l=[{value:"aeweb generate-address",id:"aeweb-generate-address",level:2},{value:"aeweb deploy",id:"aeweb-deploy",level:2}],p={toc:l},d="wrapper";function h(e){let{components:t,...n}=e;return(0,r.kt)(d,(0,a.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"aeweb-cli-command-line-interface"},"AEWeb CLI (Command-Line Interface)"),(0,r.kt)("p",null,"Repository: ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/aeweb-cli"},"https://github.com/archethic-foundation/aeweb-cli")),(0,r.kt)("p",null,"This tool, built with NodeJS, can be used to deploy files and websites to the Archethic blockchain.\nOnce installed, as instructed in the README, the ",(0,r.kt)("inlineCode",{parentName:"p"},"aeweb")," command is available."),(0,r.kt)("h2",{id:"aeweb-generate-address"},"aeweb generate-address"),(0,r.kt)("p",null,"This command is used to generate an address from a seed. "),(0,r.kt)("admonition",{title:"Use case",type:"info"},(0,r.kt)("p",{parentName:"admonition"},"You might use this on TestNet for example, to determine an address to use the ",(0,r.kt)("a",{parentName:"p",href:"https://testnet.archethic.net/faucet"},"faucet")," on.")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"$ aeweb generate-address --seed myseedphrase --index 0\n00005da88a4adaf5b40c958a20db981bd168008e03efbb7fc9d35e11be182a0d3065\n")),(0,r.kt)("h2",{id:"aeweb-deploy"},"aeweb deploy"),(0,r.kt)("p",null,"This command is used to deploy the content of a folder or a single file. It will create the ",(0,r.kt)("a",{parentName:"p",href:"/participate/aeweb/how-it-works"},"transactions"),", estimate the fees and, after confirmation, will write the transactions on the network."),(0,r.kt)("p",null,"Parameters: "),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"seed")," The keychain seed, used to prove you are the owner of the transaction chain used to pay the fees"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"endpoint")," ",(0,r.kt)("a",{parentName:"li",href:"https://testnet.archethic.net"},"https://testnet.archethic.net")," | ",(0,r.kt)("a",{parentName:"li",href:"https://mainnet.archethic.net"},"https://mainnet.archethic.net")," | ",(0,r.kt)("a",{parentName:"li",href:"http://127.0.0.1:4000"},"http://127.0.0.1:4000")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"path")," The path of the folder/file to upload ")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"$ aeweb deploy --seed myseedphrase --endpoint https://testnet.archethic.net --path ./website\nConnecting to https://testnet.archethic.net \nCreating file structure and compress content...\nCreating transactions ...\nEstimating fees ...\nTotal Fee Requirement would be : 2.58933391 UCO ( $ 0.23 | \u20ac 0.22), for 3 transactions.\nDo you want to continue. (yes/no) yes\nSending 3 transactions...\nTransaction 1...\nWaiting transaction validation...\nTransaction confirmed !\nSee transaction in explorer: https://testnet.archethic.net/explorer/transaction/000013c531...\n-----------\nTransaction 2...\nWaiting transaction validation...\nTransaction confirmed !\nSee transaction in explorer: https://testnet.archethic.net/explorer/transaction/0000a78a35...\n-----------\nTransaction 3...\nWaiting transaction validation...\nTransaction confirmed !\nSee transaction in explorer: https://testnet.archethic.net/explorer/transaction/0000f1126e...\n-----------\nWebsite is deployed at: https://testnet.archethic.net/api/web_hosting/00007d9167...\n")),(0,r.kt)("admonition",{title:"There Can Be Only One",type:"info"},(0,r.kt)("p",{parentName:"admonition"},(0,r.kt)("strong",{parentName:"p"},"There can only be a single deployment per seed.")," Which makes it possible to update it by running the exact same command. The endpoint of your deployment will not change. "),(0,r.kt)("p",{parentName:"admonition"},"If you need to deploy another website, use another seed (and transfer funds to it via the Wallet app).")))}h.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/07f0fc78.6f8d3165.js b/assets/js/07f0fc78.e12ec0eb.js similarity index 98% rename from assets/js/07f0fc78.6f8d3165.js rename to assets/js/07f0fc78.e12ec0eb.js index 4f6286829..37e4b7664 100644 --- a/assets/js/07f0fc78.6f8d3165.js +++ b/assets/js/07f0fc78.e12ec0eb.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2491],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>b});var o=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,o)}return a}function l(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var d=o.createContext({}),s=function(e){var t=o.useContext(d),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},c=function(e){var t=s(e.components);return o.createElement(d.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},u=o.forwardRef((function(e,t){var a=e.components,n=e.mdxType,r=e.originalType,d=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),p=s(a),u=n,b=p["".concat(d,".").concat(u)]||p[u]||m[u]||r;return a?o.createElement(b,l(l({ref:t},c),{},{components:a})):o.createElement(b,l({ref:t},c))}));function b(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var r=a.length,l=new Array(r);l[0]=u;var i={};for(var d in t)hasOwnProperty.call(t,d)&&(i[d]=t[d]);i.originalType=e,i[p]="string"==typeof e?e:n,l[1]=i;for(var s=2;s{a.r(t),a.d(t,{Badge:()=>m,Bullet:()=>c,Details:()=>b,SpecifiedBy:()=>p,assets:()=>s,contentTitle:()=>i,default:()=>h,frontMatter:()=>l,metadata:()=>d,toc:()=>u});var o=a(87462),n=a(67294),r=a(3905);a(8209);const l={id:"validation-stamp",title:"ValidationStamp",hide_table_of_contents:!1},i=void 0,d={unversionedId:"build/api/schema/objects/validation-stamp",id:"build/api/schema/objects/validation-stamp",title:"ValidationStamp",description:"[ValidationStamp] represents the validation performs by the coordinator",source:"@site/docs/build/api/schema/objects/validation-stamp.mdx",sourceDirName:"build/api/schema/objects",slug:"/build/api/schema/objects/validation-stamp",permalink:"/build/api/schema/objects/validation-stamp",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"validation-stamp",title:"ValidationStamp",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"UnspentOutput",permalink:"/build/api/schema/objects/unspent-output"},next:{title:"Version",permalink:"/build/api/schema/objects/version"}},s={},c=()=>(0,r.kt)(n.Fragment,null,(0,r.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=e=>(0,r.kt)(n.Fragment,null,"Specification",(0,r.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),m=e=>(0,r.kt)(n.Fragment,null,(0,r.kt)("span",{className:e.class},e.text)),u=[{value:"Fields",id:"fields",level:3},{value:'ValidationStamp.ledgerOperationsLedgerOperations ',id:"code-style-fontweight-normal-validationstampbledgeroperationsbcodeledgeroperations-",level:4},{value:'ValidationStamp.proofOfIntegrityVersionedHash ',id:"code-style-fontweight-normal-validationstampbproofofintegritybcodeversionedhash-",level:4},{value:'ValidationStamp.proofOfWorkPublicKey ',id:"code-style-fontweight-normal-validationstampbproofofworkbcodepublickey-",level:4},{value:'ValidationStamp.protocolVersionInt ',id:"code-style-fontweight-normal-validationstampbprotocolversionbcodeint-",level:4},{value:'ValidationStamp.signatureHex ',id:"code-style-fontweight-normal-validationstampbsignaturebcodehex-",level:4},{value:'ValidationStamp.timestampTimestamp ',id:"code-style-fontweight-normal-validationstampbtimestampbcodetimestamp-",level:4},{value:"Member of",id:"member-of",level:3}],b=e=>{let{dataOpen:t,dataClose:a,children:l,startOpen:i=!1}=e;const[d,s]=(0,n.useState)(i);return(0,r.kt)("details",(0,o.Z)({},d?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,r.kt)("summary",{onClick:e=>{e.preventDefault(),s((e=>!e))},style:{listStyle:"none"}},d?t:a),d&&l)},f={Bullet:c,SpecifiedBy:p,Badge:m,toc:u,Details:b},g="wrapper";function h(e){let{components:t,...a}=e;return(0,r.kt)(g,(0,o.Z)({},f,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"[ValidationStamp]"," represents the validation performs by the coordinator\nIt includes:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Proof of work: Public key matching the origin signature"),(0,r.kt)("li",{parentName:"ul"},"Proof of integrity: Hash of the previous proof of integrity and the transaction"),(0,r.kt)("li",{parentName:"ul"},"Ledger operations: All the operations performed by the transaction"),(0,r.kt)("li",{parentName:"ul"},"Signature: Coordinator signature of the stamp"),(0,r.kt)("li",{parentName:"ul"},"Protocol version: Version of the transaction validation protocol")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-graphql"},"type ValidationStamp {\n ledgerOperations: LedgerOperations\n proofOfIntegrity: VersionedHash\n proofOfWork: PublicKey\n protocolVersion: Int\n signature: Hex\n timestamp: Timestamp\n}\n")),(0,r.kt)("h3",{id:"fields"},"Fields"),(0,r.kt)("h4",{id:"code-style-fontweight-normal-validationstampbledgeroperationsbcodeledgeroperations-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"ValidationStamp.",(0,r.kt)("b",null,"ledgerOperations"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/ledger-operations"},(0,r.kt)("inlineCode",{parentName:"a"},"LedgerOperations"))," ",(0,r.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-validationstampbproofofintegritybcodeversionedhash-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"ValidationStamp.",(0,r.kt)("b",null,"proofOfIntegrity"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/versioned-hash"},(0,r.kt)("inlineCode",{parentName:"a"},"VersionedHash"))," ",(0,r.kt)(m,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-validationstampbproofofworkbcodepublickey-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"ValidationStamp.",(0,r.kt)("b",null,"proofOfWork"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/public-key"},(0,r.kt)("inlineCode",{parentName:"a"},"PublicKey"))," ",(0,r.kt)(m,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-validationstampbprotocolversionbcodeint-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"ValidationStamp.",(0,r.kt)("b",null,"protocolVersion"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/int"},(0,r.kt)("inlineCode",{parentName:"a"},"Int"))," ",(0,r.kt)(m,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-validationstampbsignaturebcodehex-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"ValidationStamp.",(0,r.kt)("b",null,"signature"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/hex"},(0,r.kt)("inlineCode",{parentName:"a"},"Hex"))," ",(0,r.kt)(m,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-validationstampbtimestampbcodetimestamp-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"ValidationStamp.",(0,r.kt)("b",null,"timestamp"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/timestamp"},(0,r.kt)("inlineCode",{parentName:"a"},"Timestamp"))," ",(0,r.kt)(m,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h3",{id:"member-of"},"Member of"),(0,r.kt)("p",null,(0,r.kt)("a",{parentName:"p",href:"/build/api/schema/objects/transaction"},(0,r.kt)("inlineCode",{parentName:"a"},"Transaction"))," ",(0,r.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}h.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2491],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>b});var o=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,o)}return a}function l(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var d=o.createContext({}),s=function(e){var t=o.useContext(d),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},c=function(e){var t=s(e.components);return o.createElement(d.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},u=o.forwardRef((function(e,t){var a=e.components,n=e.mdxType,r=e.originalType,d=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),p=s(a),u=n,b=p["".concat(d,".").concat(u)]||p[u]||m[u]||r;return a?o.createElement(b,l(l({ref:t},c),{},{components:a})):o.createElement(b,l({ref:t},c))}));function b(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var r=a.length,l=new Array(r);l[0]=u;var i={};for(var d in t)hasOwnProperty.call(t,d)&&(i[d]=t[d]);i.originalType=e,i[p]="string"==typeof e?e:n,l[1]=i;for(var s=2;s{a.r(t),a.d(t,{Badge:()=>m,Bullet:()=>c,Details:()=>b,SpecifiedBy:()=>p,assets:()=>s,contentTitle:()=>i,default:()=>h,frontMatter:()=>l,metadata:()=>d,toc:()=>u});var o=a(87462),n=a(67294),r=a(3905);a(8209);const l={id:"validation-stamp",title:"ValidationStamp",hide_table_of_contents:!1},i=void 0,d={unversionedId:"build/api/schema/objects/validation-stamp",id:"build/api/schema/objects/validation-stamp",title:"ValidationStamp",description:"[ValidationStamp] represents the validation performs by the coordinator",source:"@site/docs/build/api/schema/objects/validation-stamp.mdx",sourceDirName:"build/api/schema/objects",slug:"/build/api/schema/objects/validation-stamp",permalink:"/build/api/schema/objects/validation-stamp",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"validation-stamp",title:"ValidationStamp",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"UnspentOutput",permalink:"/build/api/schema/objects/unspent-output"},next:{title:"Version",permalink:"/build/api/schema/objects/version"}},s={},c=()=>(0,r.kt)(n.Fragment,null,(0,r.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=e=>(0,r.kt)(n.Fragment,null,"Specification",(0,r.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),m=e=>(0,r.kt)(n.Fragment,null,(0,r.kt)("span",{className:e.class},e.text)),u=[{value:"Fields",id:"fields",level:3},{value:'ValidationStamp.ledgerOperationsLedgerOperations ',id:"code-style-fontweight-normal-validationstampbledgeroperationsbcodeledgeroperations-",level:4},{value:'ValidationStamp.proofOfIntegrityVersionedHash ',id:"code-style-fontweight-normal-validationstampbproofofintegritybcodeversionedhash-",level:4},{value:'ValidationStamp.proofOfWorkPublicKey ',id:"code-style-fontweight-normal-validationstampbproofofworkbcodepublickey-",level:4},{value:'ValidationStamp.protocolVersionInt ',id:"code-style-fontweight-normal-validationstampbprotocolversionbcodeint-",level:4},{value:'ValidationStamp.signatureHex ',id:"code-style-fontweight-normal-validationstampbsignaturebcodehex-",level:4},{value:'ValidationStamp.timestampTimestamp ',id:"code-style-fontweight-normal-validationstampbtimestampbcodetimestamp-",level:4},{value:"Member of",id:"member-of",level:3}],b=e=>{let{dataOpen:t,dataClose:a,children:l,startOpen:i=!1}=e;const[d,s]=(0,n.useState)(i);return(0,r.kt)("details",(0,o.Z)({},d?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,r.kt)("summary",{onClick:e=>{e.preventDefault(),s((e=>!e))},style:{listStyle:"none"}},d?t:a),d&&l)},f={Bullet:c,SpecifiedBy:p,Badge:m,toc:u,Details:b},g="wrapper";function h(e){let{components:t,...a}=e;return(0,r.kt)(g,(0,o.Z)({},f,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"[ValidationStamp]"," represents the validation performs by the coordinator\nIt includes:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Proof of work: Public key matching the origin signature"),(0,r.kt)("li",{parentName:"ul"},"Proof of integrity: Hash of the previous proof of integrity and the transaction"),(0,r.kt)("li",{parentName:"ul"},"Ledger operations: All the operations performed by the transaction"),(0,r.kt)("li",{parentName:"ul"},"Signature: Coordinator signature of the stamp"),(0,r.kt)("li",{parentName:"ul"},"Protocol version: Version of the transaction validation protocol")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-graphql"},"type ValidationStamp {\n ledgerOperations: LedgerOperations\n proofOfIntegrity: VersionedHash\n proofOfWork: PublicKey\n protocolVersion: Int\n signature: Hex\n timestamp: Timestamp\n}\n")),(0,r.kt)("h3",{id:"fields"},"Fields"),(0,r.kt)("h4",{id:"code-style-fontweight-normal-validationstampbledgeroperationsbcodeledgeroperations-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"ValidationStamp.",(0,r.kt)("b",null,"ledgerOperations"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/ledger-operations"},(0,r.kt)("inlineCode",{parentName:"a"},"LedgerOperations"))," ",(0,r.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-validationstampbproofofintegritybcodeversionedhash-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"ValidationStamp.",(0,r.kt)("b",null,"proofOfIntegrity"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/versioned-hash"},(0,r.kt)("inlineCode",{parentName:"a"},"VersionedHash"))," ",(0,r.kt)(m,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-validationstampbproofofworkbcodepublickey-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"ValidationStamp.",(0,r.kt)("b",null,"proofOfWork"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/public-key"},(0,r.kt)("inlineCode",{parentName:"a"},"PublicKey"))," ",(0,r.kt)(m,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-validationstampbprotocolversionbcodeint-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"ValidationStamp.",(0,r.kt)("b",null,"protocolVersion"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/int"},(0,r.kt)("inlineCode",{parentName:"a"},"Int"))," ",(0,r.kt)(m,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-validationstampbsignaturebcodehex-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"ValidationStamp.",(0,r.kt)("b",null,"signature"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/hex"},(0,r.kt)("inlineCode",{parentName:"a"},"Hex"))," ",(0,r.kt)(m,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-validationstampbtimestampbcodetimestamp-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"ValidationStamp.",(0,r.kt)("b",null,"timestamp"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/timestamp"},(0,r.kt)("inlineCode",{parentName:"a"},"Timestamp"))," ",(0,r.kt)(m,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h3",{id:"member-of"},"Member of"),(0,r.kt)("p",null,(0,r.kt)("a",{parentName:"p",href:"/build/api/schema/objects/transaction"},(0,r.kt)("inlineCode",{parentName:"a"},"Transaction"))," ",(0,r.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}h.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file diff --git a/assets/js/08912224.ff41bbb9.js b/assets/js/08912224.c2f9a4e1.js similarity index 98% rename from assets/js/08912224.ff41bbb9.js rename to assets/js/08912224.c2f9a4e1.js index d1d84da3f..19e27e4a4 100644 --- a/assets/js/08912224.ff41bbb9.js +++ b/assets/js/08912224.c2f9a4e1.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8610],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>f});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},c=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),u=p(r),m=a,f=u["".concat(l,".").concat(m)]||u[m]||d[m]||o;return r?n.createElement(f,i(i({ref:t},c),{},{components:r})):n.createElement(f,i({ref:t},c))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=m;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[u]="string"==typeof e?e:a,i[1]=s;for(var p=2;p{r.r(t),r.d(t,{Badge:()=>d,Bullet:()=>c,Details:()=>f,SpecifiedBy:()=>u,assets:()=>p,contentTitle:()=>s,default:()=>y,frontMatter:()=>i,metadata:()=>l,toc:()=>m});var n=r(87462),a=r(67294),o=r(3905);r(8209);const i={id:"token-properties",title:"TokenProperties",hide_table_of_contents:!1},s=void 0,l={unversionedId:"build/api/schema/scalars/token-properties",id:"build/api/schema/scalars/token-properties",title:"TokenProperties",description:"[tokenProperties] represents a token's properties",source:"@site/docs/build/api/schema/scalars/token-properties.mdx",sourceDirName:"build/api/schema/scalars",slug:"/build/api/schema/scalars/token-properties",permalink:"/build/api/schema/scalars/token-properties",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"token-properties",title:"TokenProperties",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"Timestamp",permalink:"/build/api/schema/scalars/timestamp"},next:{title:"TransactionType",permalink:"/build/api/schema/scalars/transaction-type"}},p={},c=()=>(0,o.kt)(a.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),u=e=>(0,o.kt)(a.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),d=e=>(0,o.kt)(a.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),m=[{value:"Member of",id:"member-of",level:3}],f=e=>{let{dataOpen:t,dataClose:r,children:i,startOpen:s=!1}=e;const[l,p]=(0,a.useState)(s);return(0,o.kt)("details",(0,n.Z)({},l?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),p((e=>!e))},style:{listStyle:"none"}},l?t:r),l&&i)},b={Bullet:c,SpecifiedBy:u,Badge:d,toc:m,Details:f},k="wrapper";function y(e){let{components:t,...r}=e;return(0,o.kt)(k,(0,n.Z)({},b,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"[tokenProperties]"," represents a token's properties"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"scalar TokenProperties\n")),(0,o.kt)("h3",{id:"member-of"},"Member of"),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/token"},(0,o.kt)("inlineCode",{parentName:"a"},"Token"))," ",(0,o.kt)(d,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}y.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8610],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>f});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},c=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),u=p(r),m=a,f=u["".concat(l,".").concat(m)]||u[m]||d[m]||o;return r?n.createElement(f,i(i({ref:t},c),{},{components:r})):n.createElement(f,i({ref:t},c))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=m;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[u]="string"==typeof e?e:a,i[1]=s;for(var p=2;p{r.r(t),r.d(t,{Badge:()=>d,Bullet:()=>c,Details:()=>f,SpecifiedBy:()=>u,assets:()=>p,contentTitle:()=>s,default:()=>y,frontMatter:()=>i,metadata:()=>l,toc:()=>m});var n=r(87462),a=r(67294),o=r(3905);r(8209);const i={id:"token-properties",title:"TokenProperties",hide_table_of_contents:!1},s=void 0,l={unversionedId:"build/api/schema/scalars/token-properties",id:"build/api/schema/scalars/token-properties",title:"TokenProperties",description:"[tokenProperties] represents a token's properties",source:"@site/docs/build/api/schema/scalars/token-properties.mdx",sourceDirName:"build/api/schema/scalars",slug:"/build/api/schema/scalars/token-properties",permalink:"/build/api/schema/scalars/token-properties",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"token-properties",title:"TokenProperties",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"Timestamp",permalink:"/build/api/schema/scalars/timestamp"},next:{title:"TransactionType",permalink:"/build/api/schema/scalars/transaction-type"}},p={},c=()=>(0,o.kt)(a.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),u=e=>(0,o.kt)(a.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),d=e=>(0,o.kt)(a.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),m=[{value:"Member of",id:"member-of",level:3}],f=e=>{let{dataOpen:t,dataClose:r,children:i,startOpen:s=!1}=e;const[l,p]=(0,a.useState)(s);return(0,o.kt)("details",(0,n.Z)({},l?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),p((e=>!e))},style:{listStyle:"none"}},l?t:r),l&&i)},b={Bullet:c,SpecifiedBy:u,Badge:d,toc:m,Details:f},k="wrapper";function y(e){let{components:t,...r}=e;return(0,o.kt)(k,(0,n.Z)({},b,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"[tokenProperties]"," represents a token's properties"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"scalar TokenProperties\n")),(0,o.kt)("h3",{id:"member-of"},"Member of"),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/token"},(0,o.kt)("inlineCode",{parentName:"a"},"Token"))," ",(0,o.kt)(d,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}y.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file diff --git a/assets/js/0945e04b.7eb53a89.js b/assets/js/0945e04b.a05c4618.js similarity index 99% rename from assets/js/0945e04b.7eb53a89.js rename to assets/js/0945e04b.a05c4618.js index 28ebe698f..4ff8ba85e 100644 --- a/assets/js/0945e04b.7eb53a89.js +++ b/assets/js/0945e04b.a05c4618.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7611],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>m});var a=n(67294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var p=a.createContext({}),s=function(e){var t=a.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},d=function(e){var t=s(e.components);return a.createElement(p.Provider,{value:t},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var n=e.components,i=e.mdxType,r=e.originalType,p=e.parentName,d=o(e,["components","mdxType","originalType","parentName"]),u=s(n),h=i,m=u["".concat(p,".").concat(h)]||u[h]||c[h]||r;return n?a.createElement(m,l(l({ref:t},d),{},{components:n})):a.createElement(m,l({ref:t},d))}));function m(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=n.length,l=new Array(r);l[0]=h;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[u]="string"==typeof e?e:i,l[1]=o;for(var s=2;s{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>c,frontMatter:()=>r,metadata:()=>o,toc:()=>s});var a=n(87462),i=(n(67294),n(3905));n(8209);const r={id:"api",title:"Ledger Application API"},l=void 0,o={unversionedId:"build/clients/ledger-wallet/api",id:"build/clients/ledger-wallet/api",title:"Ledger Application API",description:"Reference Repository:",source:"@site/docs/build/clients/ledger-wallet/api.md",sourceDirName:"build/clients/ledger-wallet",slug:"/build/clients/ledger-wallet/api",permalink:"/build/clients/ledger-wallet/api",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"api",title:"Ledger Application API"},sidebar:"docs",previous:{title:"Ledger wallet",permalink:"/build/clients/ledger-wallet/"},next:{title:"ADPU commands",permalink:"/build/clients/ledger-wallet/commands"}},p={},s=[{value:"GET VERSION",id:"get-version",level:2},{value:"GET DEVICE ORIGIN PUBLIC KEY",id:"get-device-origin-public-key",level:2},{value:"GET ARCHETHIC ADDRESS",id:"get-archethic-address",level:2},{value:"SIGN TRANSACTION",id:"sign-transaction",level:2}],d={toc:s},u="wrapper";function c(e){let{components:t,...n}=e;return(0,i.kt)(u,(0,a.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("admonition",{type:"success"},(0,i.kt)("p",{parentName:"admonition"},"Reference Repository:\n",(0,i.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/archethic-ledger/tree/master/src"},"Archethic BOLOS App"))),(0,i.kt)("p",null,"[TOC]"),(0,i.kt)("h2",{id:"get-version"},"GET VERSION"),(0,i.kt)("p",null,(0,i.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/archethic-ledger/blob/master/src/getVersion.c"},"Source File: getVersion.c")),(0,i.kt)("admonition",{type:"info"},(0,i.kt)("p",{parentName:"admonition"},"Get version returns the version of Device Application on Ledger")),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Function Signature\n",(0,i.kt)("strong",{parentName:"p"},"handleGetVersion(uint8_t p1, uint8_t p2, uint8_t ","*","dataBuffer, uint16_t dataLength, volatile unsigned int ","*","flags)")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"p1")," -> APDU Parameter (Not Concerned in our context)")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"p2")," -> APDU Parameter (Not Concerned in our context)")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"*","dataBuffer")," -> NULL (Not required for getting version)")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"dataLength")," -> Length of the dataBuffer")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"*","flags")," -> ",(0,i.kt)("strong",{parentName:"p"},"Modes (respond immediately(sync), process and respond(async))")),(0,i.kt)("p",{parentName:"li"},"There is a general buffer ",(0,i.kt)("strong",{parentName:"p"},"G_io_apdu_buffer")," (already in ledger SDK) for both input and output, we copy version to this buffer from ",(0,i.kt)("strong",{parentName:"p"},"APPVERSION")," which is defined in Makefile. As we only need integer, so we subtract '0' from the APPVERSION","[0 | 2 | 4]",".\nAPPVERSION and APPNAME are defined in the makefile of the project."),(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"io_exchange_with_code(SW_OK, 3)")),(0,i.kt)("pre",{parentName:"li"},(0,i.kt)("code",{parentName:"pre"},"- It adds status at the end of the Buffer (G_io_apdu_buffer).\n- **SW_OK** (0x9000) adds status code at the end of the buffer.\n- 3 is the length of the data in the buffer. \n")))))),(0,i.kt)("h2",{id:"get-device-origin-public-key"},"GET DEVICE ORIGIN PUBLIC KEY"),(0,i.kt)("p",null,(0,i.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/archethic-ledger/blob/master/src/getPublicKey.c"},"Source File: getPublicKey.c")),(0,i.kt)("admonition",{type:"info"},(0,i.kt)("p",{parentName:"admonition"},"Gets the hardware(device origin) public key from ledger device.")),(0,i.kt)("p",null,"It returns the public key derived from the hardware ledger device seed (",(0,i.kt)("strong",{parentName:"p"},"HARDWARE SEED"),")."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Function Signature\n",(0,i.kt)("strong",{parentName:"li"},"handleGetPublicKey(uint8_t p1, uint8_t p2, uint8_t ","*","dataBuffer, uint16_t dataLength, volatile unsigned int ","*","flags)"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"*","flags |= IO_ASYNCH_REPLY;"),"\nThis is added to get response from the user of HID. So needed to be set to the ASYNC."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"getOriginPublicKey(cx_ecfp_public_key_t ","*","publicKey)"),"\nThis calls ",(0,i.kt)("strong",null,"deriveArchethicKeyPair")," and return it.\n",(0,i.kt)("inlineCode",{parentName:"li"},"deriveArchethicKeyPair(CX_CURVE_SECP256K1, 650, 0xffff, 0, NULL, 0, NULL, publicKey);"))))),(0,i.kt)("admonition",{type:"note"},(0,i.kt)("pre",{parentName:"admonition"},(0,i.kt)("code",{parentName:"pre"},"- First Param** is the curve type which is fixed in our case.\n- Second Param** is the coin type which is defined for the [UCO Token]()\n- 3rd Param** is for the account which account to get, which is defined as: \n - $account =$ Depends on the intended use of the key.\n - Currently fixed values: 0xFFFF for $o_{key}$, 0x0000 for a simple $w_{key}$\n- 4th Param** is address index \n- 5th Param** is masterSeed which is set to NULL because we need the device origin master seed.\n- 6th Param** is the master seed Length\n- 7th param** is the structure to store public key\n"))),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Function Signature\n",(0,i.kt)("strong",{parentName:"p"},"deriveArchethicKeyPair(cx_curve_t curve, uint32_t coin_type, uint32_t account, uint32_t address_index, uint8_t ","*","masterSeed, uint8_t masterSeedLen, cx_ecfp_private_key_t ","*","privateKey, cx_ecfp_public_key_t ","*","publicKey)")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"This function first checks the curve type of the ",(0,i.kt)("inlineCode",{parentName:"p"},"cx_curve_t"),", which sets the mode for the which it needs to perform operation.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Next depending upon the account type as defined in the specification (0xffff | 0x0000) it derives the private key from the masterseed."),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"When the account type is ",(0,i.kt)("inlineCode",{parentName:"li"},"0xffff")," then ",(0,i.kt)("strong",{parentName:"li"},"os_perso_derive_node_with_seed()")," function is called which derives the key from the ledger hardware origin key."),(0,i.kt)("li",{parentName:"ul"},"When account type is ",(0,i.kt)("inlineCode",{parentName:"li"},"0x0000")," then it derives the rawPrivateKey from the from ",(0,i.kt)("strong",{parentName:"li"},"archethic_derive_with_seed_key()")," function which derives the key as per provided params."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Next it checks if there is a ",(0,i.kt)("strong",{parentName:"p"},"publicKey")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"If that is the case then it derives the corresponding public key and generates from the walletPrivateKey"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"If there is ",(0,i.kt)("strong",{parentName:"p"},"privateKey")," the it simple returns the ",(0,i.kt)("strong",{parentName:"p"},"privateKey"),".\n"))))),(0,i.kt)("admonition",{type:"success"},(0,i.kt)("p",{parentName:"admonition"},"As Public Key is in format: ",(0,i.kt)("strong",{parentName:"p"},"[curve_type, device_origin, 04xy]")),(0,i.kt)("p",{parentName:"admonition"},"02 -> Curve Type 04 -> Device Origin 04 -> uncompressed "),(0,i.kt)("p",{parentName:"admonition"},"X -> 52e77c79bea0f84e2d9c40356932fb0dd31688c23d6b6e9ac99d2869dc407692"),(0,i.kt)("p",{parentName:"admonition"},"Y -> 1e731fb84d0a094c6273fffed68147c381a273c83868cdeb9b81c7ec790c6d38")),(0,i.kt)("admonition",{type:"info"},(0,i.kt)("p",{parentName:"admonition"},"Since raw private key is in ",(0,i.kt)("strong",{parentName:"p"},"bytes")," it needs to be converted which is done by the function cx_ecfp_init_private_key(curve, rawPrivateKey, 32, &walletPrivateKey).")),(0,i.kt)("h2",{id:"get-archethic-address"},"GET ARCHETHIC ADDRESS"),(0,i.kt)("p",null,(0,i.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/archethic-ledger/blob/master/src/getAddress.c"},"Source File: getAddress.c")),(0,i.kt)("admonition",{type:"info"},(0,i.kt)("p",{parentName:"admonition"},"Return the Archethic address from the ledger including curve type in the start")),(0,i.kt)("p",null,"INS = 04\nLc = Data Length\naddress_index = 4 bytes (bip44)\newk",(0,i.kt)("sub",null,"aes")," = encrypted wallet key"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Function Signature\n",(0,i.kt)("strong",{parentName:"li"},"handleGetAddress(uint8_t p1, uint8_t p2, uint8_t ","*","dataBuffer, uint16_t dataLength, volatile unsigned int ","*","flags)"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"First 4 bytes are address index hence we store then in ",(0,i.kt)("inlineCode",{parentName:"li"},"address_index")," from the data buffer (Converting them according to thier byte ordering.)"),(0,i.kt)("li",{parentName:"ul"},"We performECDH to get the secret pointX on the curve,",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Fn Signature ",(0,i.kt)("strong",{parentName:"li"},"performECDH(uint8_t ","*","ephPublicKey, uint8_t ephPublicKeySize, uint8_t ","*","ecdhPointX)")),(0,i.kt)("li",{parentName:"ul"},"This derives an Archethic keypair first with function ",(0,i.kt)("inlineCode",{parentName:"li"},"deriveArchethicKeyPair")," and gets originPrivateKey"),(0,i.kt)("li",{parentName:"ul"},"The performs ecdh with function ",(0,i.kt)("inlineCode",{parentName:"li"},"cx_ecdh")," with the originPrivateKey and takes publickey and finds the ecdhPointX "),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"cx_ecdh(&originPrivateKey, CX_ECDH_X, ephPublicKey, ephPublicKeySize, ecdhPointX, 32);")),(0,i.kt)("li",{parentName:"ul"},"publicKey is taken from the ",(0,i.kt)("inlineCode",{parentName:"li"},"dataBuffer")))),(0,i.kt)("li",{parentName:"ul"},"Now we decrypt the wallet with the ecdhPointX ",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Fn Signature ",(0,i.kt)("strong",{parentName:"li"},"decryptWallet(ecdhPointX, sizeof(ecdhPointX), dataBuffer, dataLength, g_wallet.encodedWallet, &g_wallet.walletLen);")),(0,i.kt)("li",{parentName:"ul"},"Since we have moved pointer we now only have ",(0,i.kt)("inlineCode",{parentName:"li"},"auth_tag")," 16 bytes and enc($wk_{aes}$) 32bytes",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Inside Decrypt wallet we first calculate the ",(0,i.kt)("inlineCode",{parentName:"li"},"aes_key_iv_tag")," from the ecdhPointX by double hashing it from the sha512 function $sha512(sha512(ecdh","_","secret\\ or\\ PointX))$. "),(0,i.kt)("li",{parentName:"ul"},"we get 3 parts from above double hashing in 64 bytes which are",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"aes_key")," ","[32bytes]"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"iv")," ","[16bytes]"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"auth_seed")," ","[16bytes]"))),(0,i.kt)("li",{parentName:"ul"},"Now we get sha256 has of auth_seed in ",(0,i.kt)("inlineCode",{parentName:"li"},"auth_key")),(0,i.kt)("li",{parentName:"ul"},"And now we do hmac(auth",(0,i.kt)("em",{parentName:"li"},"key , enc($wk"),"{aes}$)) and get ",(0,i.kt)("inlineCode",{parentName:"li"},"auth_tag")," which are first 16 bytes from hmac result. $Rest\\ 16\\ bytes\\ are\\ reserved$"),(0,i.kt)("li",{parentName:"ul"},"Now we compare if auth_tag equals to auth_tag supplied in the ",(0,i.kt)("inlineCode",{parentName:"li"},"dataBuffer")," ",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"If if doesn't return ",(0,i.kt)("inlineCode",{parentName:"li"},"0xBADDECODE")),(0,i.kt)("li",{parentName:"ul"},"If it does",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Decrypt the wallet and return the ",(0,i.kt)("strong",{parentName:"li"},"encoded wallet")))))))),(0,i.kt)("li",{parentName:"ul"},"Now get the BIP44Paths from the encoded wallet according to specificaton",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Fn Signature ",(0,i.kt)("strong",{parentName:"li"},"getBIP44Path(address_index, g_wallet.encodedWallet, g_wallet.walletLen, 0, g_bip44_path, &bip44pathlen);")),(0,i.kt)("li",{parentName:"ul"},"This does according to address index which were first 4 bytes of ",(0,i.kt)("inlineCode",{parentName:"li"},"dataBuffer")),(0,i.kt)("li",{parentName:"ul"},"This returns the bip44Path in ",(0,i.kt)("inlineCode",{parentName:"li"},"char* string_bip_44")))),(0,i.kt)("li",{parentName:"ul"},"Now Generate Archethic Address from the Encoded Wallet and set as required. ",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Fn Signature ",(0,i.kt)("strong",{parentName:"li"},"generateArchethicAddress(uint8_t hash_type, uint32_t address_index, uint8_t ","*","encoded_wallet, uint8_t ","*","wallet_len, uint32_t sequence_no, uint8_t ","*","address, uint8_t ","*","address_len)")),(0,i.kt)("li",{parentName:"ul"},"For now only support hash_type ",(0,i.kt)("inlineCode",{parentName:"li"},"sha256")),(0,i.kt)("li",{parentName:"ul"},"Returns address in ",(0,i.kt)("inlineCode",{parentName:"li"},"uint8_t *address"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"It generates key from the encoded wallet and storesit in ",(0,i.kt)("inlineCode",{parentName:"li"},"cx_ecfp_public_key_t")," structure"),(0,i.kt)("li",{parentName:"ul"},"Fn Signature ",(0,i.kt)("strong",{parentName:"li"},"generateKeyFromWallet(address_index, encoded_wallet, wallet_len, sequence_no, &curve_type, NULL, &publicKey)")," ",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Derives Archethic Keypair depending on the supplied params:",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"coin_type")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"account")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"curve")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"address_index")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"publicKey")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"privateKey"))))))))))))))),(0,i.kt)("h2",{id:"sign-transaction"},"SIGN TRANSACTION"),(0,i.kt)("p",null,(0,i.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/archethic-ledger/blob/master/src/signHash.c"},"Source File: signHash.c")),(0,i.kt)("admonition",{type:"info"},(0,i.kt)("p",{parentName:"admonition"},"Returns APDU response as ",(0,i.kt)("inlineCode",{parentName:"p"},"Transaction Hash | Public Key | ASN_DER_SIGN")," in success")),(0,i.kt)("p",null,"INS = 08\naddress_index = 4 bytes (bip44)"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Funcion Signature:\n",(0,i.kt)("strong",{parentName:"li"},"handleSignHash(uint8_t p1, uint8_t p2, uint8_t *dataBuffer, uint16_t dataLength, volatile unsigned int ","*","flags)"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"First 4 bytes are address index hence we store then in ",(0,i.kt)("inlineCode",{parentName:"li"},"address_index")," from the data buffer (Converting them according to thier byte ordering.)"),(0,i.kt)("li",{parentName:"ul"},"Then we check for addresslength ",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"if %2 == 0 then SHA256 or SHA3_256 and length = 34"),(0,i.kt)("li",{parentName:"ul"},"if %2 == 1 then SHA512 or SHA3_512 and length = 66"))),(0,i.kt)("li",{parentName:"ul"},"We copy the recieverAddress upto the addressLength in previous step to ",(0,i.kt)("inlineCode",{parentName:"li"},"g_tx.recieverAddr")),(0,i.kt)("li",{parentName:"ul"},"Then get next 8 bytes as amount and convert it to big endian",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Then for display convert it to float and set in ",(0,i.kt)("inlineCode",{parentName:"li"},"g_amount")," for display"))),(0,i.kt)("li",{parentName:"ul"},"performECDH to get ecdhPointX ",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"We performECDH to get the secret pointX on the curve,",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Fn Signature ",(0,i.kt)("strong",{parentName:"li"},"performECDH(uint8_t ","*","ephPublicKey, uint8_t ephPublicKeySize, uint8_t ","*","ecdhPointX)")),(0,i.kt)("li",{parentName:"ul"},"This derives an Archethic keypair first with function ",(0,i.kt)("inlineCode",{parentName:"li"},"deriveArchethicKeyPair")," and gets originPrivateKey"),(0,i.kt)("li",{parentName:"ul"},"The performs ecdh with function ",(0,i.kt)("inlineCode",{parentName:"li"},"cx_ecdh")," with the originPrivateKey and takes publickey and finds the ecdhPointX "),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"cx_ecdh(&originPrivateKey, CX_ECDH_X, ephPublicKey, ephPublicKeySize, ecdhPointX, 32);")))))),(0,i.kt)("li",{parentName:"ul"},"Now we decrypt the wallet with the ecdhPointX ",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Fn Signature ",(0,i.kt)("strong",{parentName:"li"},"decryptWallet(ecdhPointX, sizeof(ecdhPointX), dataBuffer, dataLength, g_wallet.encodedWallet, &g_wallet.walletLen);")),(0,i.kt)("li",{parentName:"ul"},"Since we have moved pointer we now only have ",(0,i.kt)("inlineCode",{parentName:"li"},"auth_tag")," 16 bytes and enc($wk_{aes}$) 32bytes",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Inside Decrypt wallet we first calculate the ",(0,i.kt)("inlineCode",{parentName:"li"},"aes_key_iv_tag")," from the ecdhPointX by double hashing it from the sha512 function $sha512(sha512(ecdh","_","secret\\ or\\ PointX))$. "),(0,i.kt)("li",{parentName:"ul"},"we get 3 parts from above double hashing in 64 bytes which are",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"aes_key")," ","[32bytes]"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"iv")," ","[16bytes]"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"auth_seed")," ","[16bytes]"))),(0,i.kt)("li",{parentName:"ul"},"Now we get sha256 has of auth_seed in ",(0,i.kt)("inlineCode",{parentName:"li"},"auth_key")),(0,i.kt)("li",{parentName:"ul"},"And now we do hmac(auth",(0,i.kt)("em",{parentName:"li"},"key , enc($wk"),"{aes}$)) and get ",(0,i.kt)("inlineCode",{parentName:"li"},"auth_tag")," which are first 16 bytes from hmac result. $Rest\\ 16\\ bytes\\ are\\ reserved$"),(0,i.kt)("li",{parentName:"ul"},"Now we compare if auth_tag equals to auth_tag supplied in the ",(0,i.kt)("inlineCode",{parentName:"li"},"dataBuffer")," ",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"If if doesn't return ",(0,i.kt)("inlineCode",{parentName:"li"},"0xBADDECODE")),(0,i.kt)("li",{parentName:"ul"},"If it does",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Decrypt the wallet and return the ",(0,i.kt)("strong",{parentName:"li"},"encoded wallet")))))))))),(0,i.kt)("li",{parentName:"ul"},"Now Generate Archethic Address from the Encoded Wallet and set as required. ",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Fn Signature ",(0,i.kt)("strong",{parentName:"li"},"generateArchethicAddress(uint8_t hash_type, uint32_t address_index, uint8_t ","*","encoded_wallet, uint8_t ","*","wallet_len, uint32_t sequence_no, uint8_t ","*","address, uint8_t ","*","address_len)")),(0,i.kt)("li",{parentName:"ul"},"For now only support hash_type ",(0,i.kt)("inlineCode",{parentName:"li"},"sha256")),(0,i.kt)("li",{parentName:"ul"},"Returns address in ",(0,i.kt)("inlineCode",{parentName:"li"},"uint8_t *address")))),(0,i.kt)("li",{parentName:"ul"},"Now get the BIP44Paths from the encoded wallet according to specificaton",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Fn Signature ",(0,i.kt)("strong",{parentName:"li"},"getBIP44Path(address_index, g_wallet.encodedWallet, g_wallet.walletLen, 0, g_bip44_path, &bip44pathlen);")),(0,i.kt)("li",{parentName:"ul"},"This does according to address index which were first 4 bytes of ",(0,i.kt)("inlineCode",{parentName:"li"},"dataBuffer")),(0,i.kt)("li",{parentName:"ul"},"This returns the bip44Path in ",(0,i.kt)("inlineCode",{parentName:"li"},"char* string_bip_44")))),(0,i.kt)("li",{parentName:"ul"},"Next we calulate the transactionHash",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Function Signature\n",(0,i.kt)("strong",{parentName:"li"},"getTransactionHash(uint8_t ","*","senderAddr, uint8_t senderAddrLen,\nuint8_t ","*","receiveAddr, uint8_t receiveAddrLen,\nuint8_t ","*","amount, uint8_t ","*","txHash, uint8_t ","*","txHashLen)")),(0,i.kt)("li",{parentName:"ul"},"Format for Transaction Hash Generation",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"tx_version | senderAddr | tx_type | code_size | content_size | ownership_length | total_uco_transfers | recieverAddr | amount | total_token_transfers | recipients"))),(0,i.kt)("li",{parentName:"ul"},"We apply ",(0,i.kt)("inlineCode",{parentName:"li"},"cx_hash_sha256()")," and return the hash in ",(0,i.kt)("inlineCode",{parentName:"li"},"txHash")))),(0,i.kt)("li",{parentName:"ul"},"We prompt user in GUI to approve the transaction"),(0,i.kt)("li",{parentName:"ul"},"Once approve we performECDSA on the transactionHash",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Function Signature\n",(0,i.kt)("strong",{parentName:"li"},"performECDSA(uint8_t ","*","txHash, uint8_t txHashLen, uint32_t address_index, uint8_t ","*","encoded_wallet, uint8_t ","*","wallet_len, uint8_t sequence_no, uint8_t ","*","asn_sign, uint8_t ","*","sign_len)")),(0,i.kt)("li",{parentName:"ul"},"We generateKey from Wallet Similar to when getting address and give back ",(0,i.kt)("inlineCode",{parentName:"li"},"publicKey")," and ",(0,i.kt)("inlineCode",{parentName:"li"},"privateKey")),(0,i.kt)("li",{parentName:"ul"},"We copy curve_type on asn_sign buffer"),(0,i.kt)("li",{parentName:"ul"},"We set 0 to signify onchain wallet"),(0,i.kt)("li",{parentName:"ul"},"We copy the publicKey on asn_sign buffer"),(0,i.kt)("li",{parentName:"ul"},"We sign the txnHash with the privateKet and append signature to asn_sign buffer "),(0,i.kt)("li",{parentName:"ul"},"We increase sign_len by publicKey length + 2 bytes"))),(0,i.kt)("li",{parentName:"ul"},"Once signature is performed we copy the txnHash to the ",(0,i.kt)("inlineCode",{parentName:"li"},"G_io_apdu_buffer")),(0,i.kt)("li",{parentName:"ul"},"Then, we copy the contents of encodedWallet on which we have overwritten the signature to the ",(0,i.kt)("inlineCode",{parentName:"li"},"G_io_apdu_buffer")),(0,i.kt)("li",{parentName:"ul"},"And we return the APDU with SW_OK and total length as ",(0,i.kt)("inlineCode",{parentName:"li"},"txnhash length + walletLen"))))))}c.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7611],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>m});var a=n(67294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var p=a.createContext({}),s=function(e){var t=a.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},d=function(e){var t=s(e.components);return a.createElement(p.Provider,{value:t},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var n=e.components,i=e.mdxType,r=e.originalType,p=e.parentName,d=o(e,["components","mdxType","originalType","parentName"]),u=s(n),h=i,m=u["".concat(p,".").concat(h)]||u[h]||c[h]||r;return n?a.createElement(m,l(l({ref:t},d),{},{components:n})):a.createElement(m,l({ref:t},d))}));function m(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=n.length,l=new Array(r);l[0]=h;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[u]="string"==typeof e?e:i,l[1]=o;for(var s=2;s{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>c,frontMatter:()=>r,metadata:()=>o,toc:()=>s});var a=n(87462),i=(n(67294),n(3905));n(8209);const r={id:"api",title:"Ledger Application API"},l=void 0,o={unversionedId:"build/clients/ledger-wallet/api",id:"build/clients/ledger-wallet/api",title:"Ledger Application API",description:"Reference Repository:",source:"@site/docs/build/clients/ledger-wallet/api.md",sourceDirName:"build/clients/ledger-wallet",slug:"/build/clients/ledger-wallet/api",permalink:"/build/clients/ledger-wallet/api",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"api",title:"Ledger Application API"},sidebar:"docs",previous:{title:"Ledger wallet",permalink:"/build/clients/ledger-wallet/"},next:{title:"ADPU commands",permalink:"/build/clients/ledger-wallet/commands"}},p={},s=[{value:"GET VERSION",id:"get-version",level:2},{value:"GET DEVICE ORIGIN PUBLIC KEY",id:"get-device-origin-public-key",level:2},{value:"GET ARCHETHIC ADDRESS",id:"get-archethic-address",level:2},{value:"SIGN TRANSACTION",id:"sign-transaction",level:2}],d={toc:s},u="wrapper";function c(e){let{components:t,...n}=e;return(0,i.kt)(u,(0,a.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("admonition",{type:"success"},(0,i.kt)("p",{parentName:"admonition"},"Reference Repository:\n",(0,i.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/archethic-ledger/tree/master/src"},"Archethic BOLOS App"))),(0,i.kt)("p",null,"[TOC]"),(0,i.kt)("h2",{id:"get-version"},"GET VERSION"),(0,i.kt)("p",null,(0,i.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/archethic-ledger/blob/master/src/getVersion.c"},"Source File: getVersion.c")),(0,i.kt)("admonition",{type:"info"},(0,i.kt)("p",{parentName:"admonition"},"Get version returns the version of Device Application on Ledger")),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Function Signature\n",(0,i.kt)("strong",{parentName:"p"},"handleGetVersion(uint8_t p1, uint8_t p2, uint8_t ","*","dataBuffer, uint16_t dataLength, volatile unsigned int ","*","flags)")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"p1")," -> APDU Parameter (Not Concerned in our context)")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"p2")," -> APDU Parameter (Not Concerned in our context)")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"*","dataBuffer")," -> NULL (Not required for getting version)")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"dataLength")," -> Length of the dataBuffer")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"*","flags")," -> ",(0,i.kt)("strong",{parentName:"p"},"Modes (respond immediately(sync), process and respond(async))")),(0,i.kt)("p",{parentName:"li"},"There is a general buffer ",(0,i.kt)("strong",{parentName:"p"},"G_io_apdu_buffer")," (already in ledger SDK) for both input and output, we copy version to this buffer from ",(0,i.kt)("strong",{parentName:"p"},"APPVERSION")," which is defined in Makefile. As we only need integer, so we subtract '0' from the APPVERSION","[0 | 2 | 4]",".\nAPPVERSION and APPNAME are defined in the makefile of the project."),(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"io_exchange_with_code(SW_OK, 3)")),(0,i.kt)("pre",{parentName:"li"},(0,i.kt)("code",{parentName:"pre"},"- It adds status at the end of the Buffer (G_io_apdu_buffer).\n- **SW_OK** (0x9000) adds status code at the end of the buffer.\n- 3 is the length of the data in the buffer. \n")))))),(0,i.kt)("h2",{id:"get-device-origin-public-key"},"GET DEVICE ORIGIN PUBLIC KEY"),(0,i.kt)("p",null,(0,i.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/archethic-ledger/blob/master/src/getPublicKey.c"},"Source File: getPublicKey.c")),(0,i.kt)("admonition",{type:"info"},(0,i.kt)("p",{parentName:"admonition"},"Gets the hardware(device origin) public key from ledger device.")),(0,i.kt)("p",null,"It returns the public key derived from the hardware ledger device seed (",(0,i.kt)("strong",{parentName:"p"},"HARDWARE SEED"),")."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Function Signature\n",(0,i.kt)("strong",{parentName:"li"},"handleGetPublicKey(uint8_t p1, uint8_t p2, uint8_t ","*","dataBuffer, uint16_t dataLength, volatile unsigned int ","*","flags)"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"*","flags |= IO_ASYNCH_REPLY;"),"\nThis is added to get response from the user of HID. So needed to be set to the ASYNC."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"getOriginPublicKey(cx_ecfp_public_key_t ","*","publicKey)"),"\nThis calls ",(0,i.kt)("strong",null,"deriveArchethicKeyPair")," and return it.\n",(0,i.kt)("inlineCode",{parentName:"li"},"deriveArchethicKeyPair(CX_CURVE_SECP256K1, 650, 0xffff, 0, NULL, 0, NULL, publicKey);"))))),(0,i.kt)("admonition",{type:"note"},(0,i.kt)("pre",{parentName:"admonition"},(0,i.kt)("code",{parentName:"pre"},"- First Param** is the curve type which is fixed in our case.\n- Second Param** is the coin type which is defined for the [UCO Token]()\n- 3rd Param** is for the account which account to get, which is defined as: \n - $account =$ Depends on the intended use of the key.\n - Currently fixed values: 0xFFFF for $o_{key}$, 0x0000 for a simple $w_{key}$\n- 4th Param** is address index \n- 5th Param** is masterSeed which is set to NULL because we need the device origin master seed.\n- 6th Param** is the master seed Length\n- 7th param** is the structure to store public key\n"))),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Function Signature\n",(0,i.kt)("strong",{parentName:"p"},"deriveArchethicKeyPair(cx_curve_t curve, uint32_t coin_type, uint32_t account, uint32_t address_index, uint8_t ","*","masterSeed, uint8_t masterSeedLen, cx_ecfp_private_key_t ","*","privateKey, cx_ecfp_public_key_t ","*","publicKey)")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"This function first checks the curve type of the ",(0,i.kt)("inlineCode",{parentName:"p"},"cx_curve_t"),", which sets the mode for the which it needs to perform operation.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Next depending upon the account type as defined in the specification (0xffff | 0x0000) it derives the private key from the masterseed."),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"When the account type is ",(0,i.kt)("inlineCode",{parentName:"li"},"0xffff")," then ",(0,i.kt)("strong",{parentName:"li"},"os_perso_derive_node_with_seed()")," function is called which derives the key from the ledger hardware origin key."),(0,i.kt)("li",{parentName:"ul"},"When account type is ",(0,i.kt)("inlineCode",{parentName:"li"},"0x0000")," then it derives the rawPrivateKey from the from ",(0,i.kt)("strong",{parentName:"li"},"archethic_derive_with_seed_key()")," function which derives the key as per provided params."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Next it checks if there is a ",(0,i.kt)("strong",{parentName:"p"},"publicKey")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"If that is the case then it derives the corresponding public key and generates from the walletPrivateKey"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"If there is ",(0,i.kt)("strong",{parentName:"p"},"privateKey")," the it simple returns the ",(0,i.kt)("strong",{parentName:"p"},"privateKey"),".\n"))))),(0,i.kt)("admonition",{type:"success"},(0,i.kt)("p",{parentName:"admonition"},"As Public Key is in format: ",(0,i.kt)("strong",{parentName:"p"},"[curve_type, device_origin, 04xy]")),(0,i.kt)("p",{parentName:"admonition"},"02 -> Curve Type 04 -> Device Origin 04 -> uncompressed "),(0,i.kt)("p",{parentName:"admonition"},"X -> 52e77c79bea0f84e2d9c40356932fb0dd31688c23d6b6e9ac99d2869dc407692"),(0,i.kt)("p",{parentName:"admonition"},"Y -> 1e731fb84d0a094c6273fffed68147c381a273c83868cdeb9b81c7ec790c6d38")),(0,i.kt)("admonition",{type:"info"},(0,i.kt)("p",{parentName:"admonition"},"Since raw private key is in ",(0,i.kt)("strong",{parentName:"p"},"bytes")," it needs to be converted which is done by the function cx_ecfp_init_private_key(curve, rawPrivateKey, 32, &walletPrivateKey).")),(0,i.kt)("h2",{id:"get-archethic-address"},"GET ARCHETHIC ADDRESS"),(0,i.kt)("p",null,(0,i.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/archethic-ledger/blob/master/src/getAddress.c"},"Source File: getAddress.c")),(0,i.kt)("admonition",{type:"info"},(0,i.kt)("p",{parentName:"admonition"},"Return the Archethic address from the ledger including curve type in the start")),(0,i.kt)("p",null,"INS = 04\nLc = Data Length\naddress_index = 4 bytes (bip44)\newk",(0,i.kt)("sub",null,"aes")," = encrypted wallet key"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Function Signature\n",(0,i.kt)("strong",{parentName:"li"},"handleGetAddress(uint8_t p1, uint8_t p2, uint8_t ","*","dataBuffer, uint16_t dataLength, volatile unsigned int ","*","flags)"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"First 4 bytes are address index hence we store then in ",(0,i.kt)("inlineCode",{parentName:"li"},"address_index")," from the data buffer (Converting them according to thier byte ordering.)"),(0,i.kt)("li",{parentName:"ul"},"We performECDH to get the secret pointX on the curve,",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Fn Signature ",(0,i.kt)("strong",{parentName:"li"},"performECDH(uint8_t ","*","ephPublicKey, uint8_t ephPublicKeySize, uint8_t ","*","ecdhPointX)")),(0,i.kt)("li",{parentName:"ul"},"This derives an Archethic keypair first with function ",(0,i.kt)("inlineCode",{parentName:"li"},"deriveArchethicKeyPair")," and gets originPrivateKey"),(0,i.kt)("li",{parentName:"ul"},"The performs ecdh with function ",(0,i.kt)("inlineCode",{parentName:"li"},"cx_ecdh")," with the originPrivateKey and takes publickey and finds the ecdhPointX "),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"cx_ecdh(&originPrivateKey, CX_ECDH_X, ephPublicKey, ephPublicKeySize, ecdhPointX, 32);")),(0,i.kt)("li",{parentName:"ul"},"publicKey is taken from the ",(0,i.kt)("inlineCode",{parentName:"li"},"dataBuffer")))),(0,i.kt)("li",{parentName:"ul"},"Now we decrypt the wallet with the ecdhPointX ",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Fn Signature ",(0,i.kt)("strong",{parentName:"li"},"decryptWallet(ecdhPointX, sizeof(ecdhPointX), dataBuffer, dataLength, g_wallet.encodedWallet, &g_wallet.walletLen);")),(0,i.kt)("li",{parentName:"ul"},"Since we have moved pointer we now only have ",(0,i.kt)("inlineCode",{parentName:"li"},"auth_tag")," 16 bytes and enc($wk_{aes}$) 32bytes",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Inside Decrypt wallet we first calculate the ",(0,i.kt)("inlineCode",{parentName:"li"},"aes_key_iv_tag")," from the ecdhPointX by double hashing it from the sha512 function $sha512(sha512(ecdh","_","secret\\ or\\ PointX))$. "),(0,i.kt)("li",{parentName:"ul"},"we get 3 parts from above double hashing in 64 bytes which are",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"aes_key")," ","[32bytes]"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"iv")," ","[16bytes]"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"auth_seed")," ","[16bytes]"))),(0,i.kt)("li",{parentName:"ul"},"Now we get sha256 has of auth_seed in ",(0,i.kt)("inlineCode",{parentName:"li"},"auth_key")),(0,i.kt)("li",{parentName:"ul"},"And now we do hmac(auth",(0,i.kt)("em",{parentName:"li"},"key , enc($wk"),"{aes}$)) and get ",(0,i.kt)("inlineCode",{parentName:"li"},"auth_tag")," which are first 16 bytes from hmac result. $Rest\\ 16\\ bytes\\ are\\ reserved$"),(0,i.kt)("li",{parentName:"ul"},"Now we compare if auth_tag equals to auth_tag supplied in the ",(0,i.kt)("inlineCode",{parentName:"li"},"dataBuffer")," ",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"If if doesn't return ",(0,i.kt)("inlineCode",{parentName:"li"},"0xBADDECODE")),(0,i.kt)("li",{parentName:"ul"},"If it does",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Decrypt the wallet and return the ",(0,i.kt)("strong",{parentName:"li"},"encoded wallet")))))))),(0,i.kt)("li",{parentName:"ul"},"Now get the BIP44Paths from the encoded wallet according to specificaton",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Fn Signature ",(0,i.kt)("strong",{parentName:"li"},"getBIP44Path(address_index, g_wallet.encodedWallet, g_wallet.walletLen, 0, g_bip44_path, &bip44pathlen);")),(0,i.kt)("li",{parentName:"ul"},"This does according to address index which were first 4 bytes of ",(0,i.kt)("inlineCode",{parentName:"li"},"dataBuffer")),(0,i.kt)("li",{parentName:"ul"},"This returns the bip44Path in ",(0,i.kt)("inlineCode",{parentName:"li"},"char* string_bip_44")))),(0,i.kt)("li",{parentName:"ul"},"Now Generate Archethic Address from the Encoded Wallet and set as required. ",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Fn Signature ",(0,i.kt)("strong",{parentName:"li"},"generateArchethicAddress(uint8_t hash_type, uint32_t address_index, uint8_t ","*","encoded_wallet, uint8_t ","*","wallet_len, uint32_t sequence_no, uint8_t ","*","address, uint8_t ","*","address_len)")),(0,i.kt)("li",{parentName:"ul"},"For now only support hash_type ",(0,i.kt)("inlineCode",{parentName:"li"},"sha256")),(0,i.kt)("li",{parentName:"ul"},"Returns address in ",(0,i.kt)("inlineCode",{parentName:"li"},"uint8_t *address"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"It generates key from the encoded wallet and storesit in ",(0,i.kt)("inlineCode",{parentName:"li"},"cx_ecfp_public_key_t")," structure"),(0,i.kt)("li",{parentName:"ul"},"Fn Signature ",(0,i.kt)("strong",{parentName:"li"},"generateKeyFromWallet(address_index, encoded_wallet, wallet_len, sequence_no, &curve_type, NULL, &publicKey)")," ",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Derives Archethic Keypair depending on the supplied params:",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"coin_type")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"account")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"curve")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"address_index")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"publicKey")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"privateKey"))))))))))))))),(0,i.kt)("h2",{id:"sign-transaction"},"SIGN TRANSACTION"),(0,i.kt)("p",null,(0,i.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/archethic-ledger/blob/master/src/signHash.c"},"Source File: signHash.c")),(0,i.kt)("admonition",{type:"info"},(0,i.kt)("p",{parentName:"admonition"},"Returns APDU response as ",(0,i.kt)("inlineCode",{parentName:"p"},"Transaction Hash | Public Key | ASN_DER_SIGN")," in success")),(0,i.kt)("p",null,"INS = 08\naddress_index = 4 bytes (bip44)"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Funcion Signature:\n",(0,i.kt)("strong",{parentName:"li"},"handleSignHash(uint8_t p1, uint8_t p2, uint8_t *dataBuffer, uint16_t dataLength, volatile unsigned int ","*","flags)"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"First 4 bytes are address index hence we store then in ",(0,i.kt)("inlineCode",{parentName:"li"},"address_index")," from the data buffer (Converting them according to thier byte ordering.)"),(0,i.kt)("li",{parentName:"ul"},"Then we check for addresslength ",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"if %2 == 0 then SHA256 or SHA3_256 and length = 34"),(0,i.kt)("li",{parentName:"ul"},"if %2 == 1 then SHA512 or SHA3_512 and length = 66"))),(0,i.kt)("li",{parentName:"ul"},"We copy the recieverAddress upto the addressLength in previous step to ",(0,i.kt)("inlineCode",{parentName:"li"},"g_tx.recieverAddr")),(0,i.kt)("li",{parentName:"ul"},"Then get next 8 bytes as amount and convert it to big endian",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Then for display convert it to float and set in ",(0,i.kt)("inlineCode",{parentName:"li"},"g_amount")," for display"))),(0,i.kt)("li",{parentName:"ul"},"performECDH to get ecdhPointX ",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"We performECDH to get the secret pointX on the curve,",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Fn Signature ",(0,i.kt)("strong",{parentName:"li"},"performECDH(uint8_t ","*","ephPublicKey, uint8_t ephPublicKeySize, uint8_t ","*","ecdhPointX)")),(0,i.kt)("li",{parentName:"ul"},"This derives an Archethic keypair first with function ",(0,i.kt)("inlineCode",{parentName:"li"},"deriveArchethicKeyPair")," and gets originPrivateKey"),(0,i.kt)("li",{parentName:"ul"},"The performs ecdh with function ",(0,i.kt)("inlineCode",{parentName:"li"},"cx_ecdh")," with the originPrivateKey and takes publickey and finds the ecdhPointX "),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"cx_ecdh(&originPrivateKey, CX_ECDH_X, ephPublicKey, ephPublicKeySize, ecdhPointX, 32);")))))),(0,i.kt)("li",{parentName:"ul"},"Now we decrypt the wallet with the ecdhPointX ",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Fn Signature ",(0,i.kt)("strong",{parentName:"li"},"decryptWallet(ecdhPointX, sizeof(ecdhPointX), dataBuffer, dataLength, g_wallet.encodedWallet, &g_wallet.walletLen);")),(0,i.kt)("li",{parentName:"ul"},"Since we have moved pointer we now only have ",(0,i.kt)("inlineCode",{parentName:"li"},"auth_tag")," 16 bytes and enc($wk_{aes}$) 32bytes",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Inside Decrypt wallet we first calculate the ",(0,i.kt)("inlineCode",{parentName:"li"},"aes_key_iv_tag")," from the ecdhPointX by double hashing it from the sha512 function $sha512(sha512(ecdh","_","secret\\ or\\ PointX))$. "),(0,i.kt)("li",{parentName:"ul"},"we get 3 parts from above double hashing in 64 bytes which are",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"aes_key")," ","[32bytes]"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"iv")," ","[16bytes]"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"auth_seed")," ","[16bytes]"))),(0,i.kt)("li",{parentName:"ul"},"Now we get sha256 has of auth_seed in ",(0,i.kt)("inlineCode",{parentName:"li"},"auth_key")),(0,i.kt)("li",{parentName:"ul"},"And now we do hmac(auth",(0,i.kt)("em",{parentName:"li"},"key , enc($wk"),"{aes}$)) and get ",(0,i.kt)("inlineCode",{parentName:"li"},"auth_tag")," which are first 16 bytes from hmac result. $Rest\\ 16\\ bytes\\ are\\ reserved$"),(0,i.kt)("li",{parentName:"ul"},"Now we compare if auth_tag equals to auth_tag supplied in the ",(0,i.kt)("inlineCode",{parentName:"li"},"dataBuffer")," ",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"If if doesn't return ",(0,i.kt)("inlineCode",{parentName:"li"},"0xBADDECODE")),(0,i.kt)("li",{parentName:"ul"},"If it does",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Decrypt the wallet and return the ",(0,i.kt)("strong",{parentName:"li"},"encoded wallet")))))))))),(0,i.kt)("li",{parentName:"ul"},"Now Generate Archethic Address from the Encoded Wallet and set as required. ",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Fn Signature ",(0,i.kt)("strong",{parentName:"li"},"generateArchethicAddress(uint8_t hash_type, uint32_t address_index, uint8_t ","*","encoded_wallet, uint8_t ","*","wallet_len, uint32_t sequence_no, uint8_t ","*","address, uint8_t ","*","address_len)")),(0,i.kt)("li",{parentName:"ul"},"For now only support hash_type ",(0,i.kt)("inlineCode",{parentName:"li"},"sha256")),(0,i.kt)("li",{parentName:"ul"},"Returns address in ",(0,i.kt)("inlineCode",{parentName:"li"},"uint8_t *address")))),(0,i.kt)("li",{parentName:"ul"},"Now get the BIP44Paths from the encoded wallet according to specificaton",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Fn Signature ",(0,i.kt)("strong",{parentName:"li"},"getBIP44Path(address_index, g_wallet.encodedWallet, g_wallet.walletLen, 0, g_bip44_path, &bip44pathlen);")),(0,i.kt)("li",{parentName:"ul"},"This does according to address index which were first 4 bytes of ",(0,i.kt)("inlineCode",{parentName:"li"},"dataBuffer")),(0,i.kt)("li",{parentName:"ul"},"This returns the bip44Path in ",(0,i.kt)("inlineCode",{parentName:"li"},"char* string_bip_44")))),(0,i.kt)("li",{parentName:"ul"},"Next we calulate the transactionHash",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Function Signature\n",(0,i.kt)("strong",{parentName:"li"},"getTransactionHash(uint8_t ","*","senderAddr, uint8_t senderAddrLen,\nuint8_t ","*","receiveAddr, uint8_t receiveAddrLen,\nuint8_t ","*","amount, uint8_t ","*","txHash, uint8_t ","*","txHashLen)")),(0,i.kt)("li",{parentName:"ul"},"Format for Transaction Hash Generation",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"tx_version | senderAddr | tx_type | code_size | content_size | ownership_length | total_uco_transfers | recieverAddr | amount | total_token_transfers | recipients"))),(0,i.kt)("li",{parentName:"ul"},"We apply ",(0,i.kt)("inlineCode",{parentName:"li"},"cx_hash_sha256()")," and return the hash in ",(0,i.kt)("inlineCode",{parentName:"li"},"txHash")))),(0,i.kt)("li",{parentName:"ul"},"We prompt user in GUI to approve the transaction"),(0,i.kt)("li",{parentName:"ul"},"Once approve we performECDSA on the transactionHash",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Function Signature\n",(0,i.kt)("strong",{parentName:"li"},"performECDSA(uint8_t ","*","txHash, uint8_t txHashLen, uint32_t address_index, uint8_t ","*","encoded_wallet, uint8_t ","*","wallet_len, uint8_t sequence_no, uint8_t ","*","asn_sign, uint8_t ","*","sign_len)")),(0,i.kt)("li",{parentName:"ul"},"We generateKey from Wallet Similar to when getting address and give back ",(0,i.kt)("inlineCode",{parentName:"li"},"publicKey")," and ",(0,i.kt)("inlineCode",{parentName:"li"},"privateKey")),(0,i.kt)("li",{parentName:"ul"},"We copy curve_type on asn_sign buffer"),(0,i.kt)("li",{parentName:"ul"},"We set 0 to signify onchain wallet"),(0,i.kt)("li",{parentName:"ul"},"We copy the publicKey on asn_sign buffer"),(0,i.kt)("li",{parentName:"ul"},"We sign the txnHash with the privateKet and append signature to asn_sign buffer "),(0,i.kt)("li",{parentName:"ul"},"We increase sign_len by publicKey length + 2 bytes"))),(0,i.kt)("li",{parentName:"ul"},"Once signature is performed we copy the txnHash to the ",(0,i.kt)("inlineCode",{parentName:"li"},"G_io_apdu_buffer")),(0,i.kt)("li",{parentName:"ul"},"Then, we copy the contents of encodedWallet on which we have overwritten the signature to the ",(0,i.kt)("inlineCode",{parentName:"li"},"G_io_apdu_buffer")),(0,i.kt)("li",{parentName:"ul"},"And we return the APDU with SW_OK and total length as ",(0,i.kt)("inlineCode",{parentName:"li"},"txnhash length + walletLen"))))))}c.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/0946372c.2c9e364e.js b/assets/js/0946372c.b1ac5120.js similarity index 98% rename from assets/js/0946372c.2c9e364e.js rename to assets/js/0946372c.b1ac5120.js index d2db74745..e65cd5f43 100644 --- a/assets/js/0946372c.2c9e364e.js +++ b/assets/js/0946372c.b1ac5120.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7790],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>h});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var d=a.createContext({}),c=function(e){var t=a.useContext(d),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=c(e.components);return a.createElement(d.Provider,{value:t},e.children)},p="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,l=e.originalType,d=e.parentName,u=o(e,["components","mdxType","originalType","parentName"]),p=c(n),m=r,h=p["".concat(d,".").concat(m)]||p[m]||s[m]||l;return n?a.createElement(h,i(i({ref:t},u),{},{components:n})):a.createElement(h,i({ref:t},u))}));function h(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=n.length,i=new Array(l);i[0]=m;var o={};for(var d in t)hasOwnProperty.call(t,d)&&(o[d]=t[d]);o.originalType=e,o[p]="string"==typeof e?e:r,i[1]=o;for(var c=2;c{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>i,default:()=>s,frontMatter:()=>l,metadata:()=>o,toc:()=>c});var a=n(87462),r=(n(67294),n(3905));n(8209);const l={id:"account",title:"Account"},i=void 0,o={unversionedId:"build/core/account",id:"build/core/account",title:"Account",description:"Archethic node provides a high level and fast access to an account assets using primarily memory tables with ETS.",source:"@site/docs/build/core/account.md",sourceDirName:"build/core",slug:"/build/core/account",permalink:"/build/core/account",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"account",title:"Account"},sidebar:"docs",previous:{title:"Core development",permalink:"/build/core/"},next:{title:"BeaconChain",permalink:"/build/core/beacon-chain/"}},d={},c=[{value:"UCO",id:"uco",level:2},{value:"Ledger",id:"ledger",level:3},{value:"Index",id:"index",level:3},{value:"Token",id:"token",level:2},{value:"Ledger",id:"ledger-1",level:3},{value:"Index",id:"index-1",level:3},{value:"Loading",id:"loading",level:2}],u={toc:c},p="wrapper";function s(e){let{components:t,...n}=e;return(0,r.kt)(p,(0,a.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"Archethic node provides a high level and fast access to an account assets using primarily memory tables with ETS."),(0,r.kt)("p",null,"This gives us faster computation and data retrieval to asserts balances and UTXO loading."),(0,r.kt)("h2",{id:"uco"},"UCO"),(0,r.kt)("p",null,"A memory table is defined to list of the UCO available for a given address"),(0,r.kt)("p",null,"Few functions are provided to be able to query this table in order to:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"get the UCO balance "),(0,r.kt)("li",{parentName:"ul"},"get the UTXOs"),(0,r.kt)("li",{parentName:"ul"},"get the total inputs (spent and unspent)"),(0,r.kt)("li",{parentName:"ul"},"spend all the UTXOs"),(0,r.kt)("li",{parentName:"ul"},"add new UCO UTXO")),(0,r.kt)("h3",{id:"ledger"},"Ledger"),(0,r.kt)("p",null,"Each entry is indexed by a tuple recipient/sender to identify uniquely an UTXO"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Recipient, Sender"),(0,r.kt)("th",{parentName:"tr",align:null},"Amount"),(0,r.kt)("th",{parentName:"tr",align:null},"Spent ?"),(0,r.kt)("th",{parentName:"tr",align:null},"Date")))),(0,r.kt)("h3",{id:"index"},"Index"),(0,r.kt)("p",null,"An index table is provided to be able to retrieve all the sender UTXOs for a given recipient"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Recipient"),(0,r.kt)("th",{parentName:"tr",align:null},"Sender")))),(0,r.kt)("h2",{id:"token"},"Token"),(0,r.kt)("p",null,"A memory table is defined to list al the token available for a given address"),(0,r.kt)("p",null,"Few functions are provided to be able to query this table in order to:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"get the token balance s"),(0,r.kt)("li",{parentName:"ul"},"get the UTXOs"),(0,r.kt)("li",{parentName:"ul"},"get the total inputs (spent and unspent)"),(0,r.kt)("li",{parentName:"ul"},"spend all the UTXOs"),(0,r.kt)("li",{parentName:"ul"},"add new token UTXO")),(0,r.kt)("h3",{id:"ledger-1"},"Ledger"),(0,r.kt)("p",null,"Each entry is indexed by a tuple recipient/sender/token address to identify uniquely an UTXO"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Recipient, Sender, Token"),(0,r.kt)("th",{parentName:"tr",align:null},"Amount"),(0,r.kt)("th",{parentName:"tr",align:null},"Spent ?"),(0,r.kt)("th",{parentName:"tr",align:null},"Date")))),(0,r.kt)("h3",{id:"index-1"},"Index"),(0,r.kt)("p",null,"An index table is provided to be able to retrieve all the sender UTXOs for a given recipient"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Recipient"),(0,r.kt)("th",{parentName:"tr",align:null},"Sender"),(0,r.kt)("th",{parentName:"tr",align:null},"Token address")))),(0,r.kt)("h2",{id:"loading"},"Loading"),(0,r.kt)("p",null,"When a transaction replicated, the storage nodes in charge of storing the new transaction (chain replicas or recipient replicas) will load the transaction in those tables to index the UTXO and build in memory view."),(0,r.kt)("p",null,"The same goes when a node is bootstraping, a process will load all the transactions from the database to load them into those tables."))}s.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7790],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>h});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var d=a.createContext({}),c=function(e){var t=a.useContext(d),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=c(e.components);return a.createElement(d.Provider,{value:t},e.children)},p="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,l=e.originalType,d=e.parentName,u=o(e,["components","mdxType","originalType","parentName"]),p=c(n),m=r,h=p["".concat(d,".").concat(m)]||p[m]||s[m]||l;return n?a.createElement(h,i(i({ref:t},u),{},{components:n})):a.createElement(h,i({ref:t},u))}));function h(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=n.length,i=new Array(l);i[0]=m;var o={};for(var d in t)hasOwnProperty.call(t,d)&&(o[d]=t[d]);o.originalType=e,o[p]="string"==typeof e?e:r,i[1]=o;for(var c=2;c{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>i,default:()=>s,frontMatter:()=>l,metadata:()=>o,toc:()=>c});var a=n(87462),r=(n(67294),n(3905));n(8209);const l={id:"account",title:"Account"},i=void 0,o={unversionedId:"build/core/account",id:"build/core/account",title:"Account",description:"Archethic node provides a high level and fast access to an account assets using primarily memory tables with ETS.",source:"@site/docs/build/core/account.md",sourceDirName:"build/core",slug:"/build/core/account",permalink:"/build/core/account",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"account",title:"Account"},sidebar:"docs",previous:{title:"Core development",permalink:"/build/core/"},next:{title:"BeaconChain",permalink:"/build/core/beacon-chain/"}},d={},c=[{value:"UCO",id:"uco",level:2},{value:"Ledger",id:"ledger",level:3},{value:"Index",id:"index",level:3},{value:"Token",id:"token",level:2},{value:"Ledger",id:"ledger-1",level:3},{value:"Index",id:"index-1",level:3},{value:"Loading",id:"loading",level:2}],u={toc:c},p="wrapper";function s(e){let{components:t,...n}=e;return(0,r.kt)(p,(0,a.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"Archethic node provides a high level and fast access to an account assets using primarily memory tables with ETS."),(0,r.kt)("p",null,"This gives us faster computation and data retrieval to asserts balances and UTXO loading."),(0,r.kt)("h2",{id:"uco"},"UCO"),(0,r.kt)("p",null,"A memory table is defined to list of the UCO available for a given address"),(0,r.kt)("p",null,"Few functions are provided to be able to query this table in order to:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"get the UCO balance "),(0,r.kt)("li",{parentName:"ul"},"get the UTXOs"),(0,r.kt)("li",{parentName:"ul"},"get the total inputs (spent and unspent)"),(0,r.kt)("li",{parentName:"ul"},"spend all the UTXOs"),(0,r.kt)("li",{parentName:"ul"},"add new UCO UTXO")),(0,r.kt)("h3",{id:"ledger"},"Ledger"),(0,r.kt)("p",null,"Each entry is indexed by a tuple recipient/sender to identify uniquely an UTXO"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Recipient, Sender"),(0,r.kt)("th",{parentName:"tr",align:null},"Amount"),(0,r.kt)("th",{parentName:"tr",align:null},"Spent ?"),(0,r.kt)("th",{parentName:"tr",align:null},"Date")))),(0,r.kt)("h3",{id:"index"},"Index"),(0,r.kt)("p",null,"An index table is provided to be able to retrieve all the sender UTXOs for a given recipient"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Recipient"),(0,r.kt)("th",{parentName:"tr",align:null},"Sender")))),(0,r.kt)("h2",{id:"token"},"Token"),(0,r.kt)("p",null,"A memory table is defined to list al the token available for a given address"),(0,r.kt)("p",null,"Few functions are provided to be able to query this table in order to:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"get the token balance s"),(0,r.kt)("li",{parentName:"ul"},"get the UTXOs"),(0,r.kt)("li",{parentName:"ul"},"get the total inputs (spent and unspent)"),(0,r.kt)("li",{parentName:"ul"},"spend all the UTXOs"),(0,r.kt)("li",{parentName:"ul"},"add new token UTXO")),(0,r.kt)("h3",{id:"ledger-1"},"Ledger"),(0,r.kt)("p",null,"Each entry is indexed by a tuple recipient/sender/token address to identify uniquely an UTXO"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Recipient, Sender, Token"),(0,r.kt)("th",{parentName:"tr",align:null},"Amount"),(0,r.kt)("th",{parentName:"tr",align:null},"Spent ?"),(0,r.kt)("th",{parentName:"tr",align:null},"Date")))),(0,r.kt)("h3",{id:"index-1"},"Index"),(0,r.kt)("p",null,"An index table is provided to be able to retrieve all the sender UTXOs for a given recipient"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Recipient"),(0,r.kt)("th",{parentName:"tr",align:null},"Sender"),(0,r.kt)("th",{parentName:"tr",align:null},"Token address")))),(0,r.kt)("h2",{id:"loading"},"Loading"),(0,r.kt)("p",null,"When a transaction replicated, the storage nodes in charge of storing the new transaction (chain replicas or recipient replicas) will load the transaction in those tables to index the UTXO and build in memory view."),(0,r.kt)("p",null,"The same goes when a node is bootstraping, a process will load all the transactions from the database to load them into those tables."))}s.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/0c928027.3f238f29.js b/assets/js/0c928027.5e835147.js similarity index 98% rename from assets/js/0c928027.3f238f29.js rename to assets/js/0c928027.5e835147.js index 296a7148e..d7463c6c9 100644 --- a/assets/js/0c928027.3f238f29.js +++ b/assets/js/0c928027.5e835147.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7157],{3905:(e,n,t)=>{t.d(n,{Zo:()=>c,kt:()=>k});var a=t(67294);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function r(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function i(e){for(var n=1;n=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var s=a.createContext({}),p=function(e){var n=a.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},c=function(e){var n=p(e.components);return a.createElement(s.Provider,{value:n},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},m=a.forwardRef((function(e,n){var t=e.components,o=e.mdxType,r=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),u=p(t),m=o,k=u["".concat(s,".").concat(m)]||u[m]||d[m]||r;return t?a.createElement(k,i(i({ref:n},c),{},{components:t})):a.createElement(k,i({ref:n},c))}));function k(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var r=t.length,i=new Array(r);i[0]=m;var l={};for(var s in n)hasOwnProperty.call(n,s)&&(l[s]=n[s]);l.originalType=e,l[u]="string"==typeof e?e:o,i[1]=l;for(var p=2;p{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>r,metadata:()=>l,toc:()=>p});var a=t(87462),o=(t(67294),t(3905));t(8209);const r={id:"token",title:"Tokens"},i=void 0,l={unversionedId:"learn/token",id:"learn/token",title:"Tokens",description:"Tokens is an important feature on Archethic.",source:"@site/docs/learn/token.md",sourceDirName:"learn",slug:"/learn/token",permalink:"/learn/token",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"token",title:"Tokens"},sidebar:"docs",previous:{title:"Replication attestation",permalink:"/learn/sharding/replication-attestation"},next:{title:"Participate",permalink:"/category/participate"}},s={},p=[{value:"Native",id:"native",level:2},{value:"Standardized",id:"standardized",level:2},{value:"Creation",id:"creation",level:2},{value:"Fungible",id:"fungible",level:3},{value:"Non-fungible",id:"non-fungible",level:3},{value:"Resupply fungible tokens (AEIP-18)",id:"resupply-fungible-tokens-aeip-18",level:2},{value:"Recipients (AEIP-19)",id:"recipients-aeip-19",level:2},{value:"Transfer",id:"transfer",level:2}],c={toc:p},u="wrapper";function d(e){let{components:n,...t}=e;return(0,o.kt)(u,(0,a.Z)({},c,t,{components:n,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Tokens is an important feature on Archethic.\nNowadays, our world is transforming towards digitalisation and tokenization with new use cases and trends (royalties, collection, proof of ownerships, etc.)"),(0,o.kt)("p",null,"Archethic allows users to create and transaction with an unlimited-defined (custom) token natively."),(0,o.kt)("h2",{id:"native"},"Native"),(0,o.kt)("p",null,"Archethic tokens are considered as native as for developers, there is no need to create smart contract to mint or transfer tokens."),(0,o.kt)("p",null,"The transaction's structure supports - by design, asn extension of the ledger model (more than UCO-only transaction)"),(0,o.kt)("p",null,"All the layer of complexity have been removed to make them efficient and performant."),(0,o.kt)("p",null,"Because of this, the transfer of tokens is as simple as a transfer of UCO (just UTXO), making it fast and cheap."),(0,o.kt)("h2",{id:"standardized"},"Standardized"),(0,o.kt)("p",null,"Archethic's tokens are also unified through specifications to help implementers, developers and users to have a clear understanding of their definition."),(0,o.kt)("p",null,"The complete specification is composed of many AEIPs:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/archethic-foundation/aeip/blob/main/AEIP-02.md"},"AEIP-02 - Tokens standard")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/archethic-foundation/aeip/blob/main/AEIP-18.md"},"AEIP-18 - Tokens resupply")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/archethic-foundation/aeip/blob/main/AEIP-19.md"},"AEIP-19 - Tokens minting's recipients"))),(0,o.kt)("h2",{id:"creation"},"Creation"),(0,o.kt)("p",null,"In order to create a token, you have to:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"set the transaction's type to: ",(0,o.kt)("inlineCode",{parentName:"li"},"token")),(0,o.kt)("li",{parentName:"ol"},"define in the transaction's content the token's json definition")),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/archethic-node/blob/develop/priv/json-schemas/token-core.json"},"The JSON Schema is available on GitHub")),(0,o.kt)("admonition",{type:"note"},(0,o.kt)("p",{parentName:"admonition"},"As everything on Archethic, it is a good practice to create a new transaction chain for this token only.")),(0,o.kt)("h3",{id:"fungible"},"Fungible"),(0,o.kt)("p",null,"Example of a token that doesn't allow minting (may never be resupplied):"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-json"},'{\n "supply": 100000000000, // 1000 tokens\n "decimals": 8, // 1 token == 10\u2078\n "type": "fungible",\n "symbol": "TOKEN_SYMBOL",\n "name": "TOKEN_NAME",\n "properties": {"PROPERTY_NAME": "PROPERTY_VALUE"}\n}\n')),(0,o.kt)("p",null,"Example of a token that allows minting (may be resupplied later):"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-json"},'{\n "allow_mint": true, // <------------\n "supply": 100000000000, // 100000 tokens\n "decimals": 6, // 1 token == 10\u2076\n "type": "fungible",\n "symbol": "TOKEN_SYMBOL",\n "name": "TOKEN_NAME",\n "properties": {"PROPERTY_NAME": "PROPERTY_VALUE"}\n}\n')),(0,o.kt)("h3",{id:"non-fungible"},"Non-fungible"),(0,o.kt)("p",null,"There are 2 definitions for the NFT:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"either for a single token"),(0,o.kt)("li",{parentName:"ol"},"either for a collection of tokens")),(0,o.kt)("admonition",{type:"info"},(0,o.kt)("p",{parentName:"admonition"},"NFTs always have 8 decimals.")),(0,o.kt)("p",null,"Example of a NFT:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-json"},'{\n "supply": 100000000, // 1 token\n "type": "non-fungible",\n "name": "My NFT",\n "symbol": "MNFT",\n "properties": {\n "image": "base64 of the image",\n "description": "This is a NFT with an image"\n }\n}\n')),(0,o.kt)("p",null,"Example of a NFT Collection:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-json"},'{\n "supply": 300000000, // 3 tokens\n "type": "non-fungible",\n "name": "COLLETION NAME",\n "symbol": "COLLETION_SYMBOL",\n "properties": {"globalProperty": "value"},\n "collection": [\n {"image": "link"},\n {"image": "link"},\n {"image": "link"}\n ]\n}\n')),(0,o.kt)("p",null,"During the transaction validation, the miners will understand how to interpret this transaction and create the relative assets and UTXOs to make transfers possible right away."),(0,o.kt)("h2",{id:"resupply-fungible-tokens-aeip-18"},"Resupply fungible tokens (AEIP-18)"),(0,o.kt)("p",null,"As mentioned above, fungible tokens may accept to be minted at any time. ",(0,o.kt)("strong",{parentName:"p"},"This transaction must be done in the same transaction chain of the referenced token")," (to prove ownership of the token) and it's type must be ",(0,o.kt)("inlineCode",{parentName:"p"},"token"),"."),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/archethic-node/blob/develop/priv/json-schemas/token-resupply.json"},"The JSON Schema is available on GitHub")),(0,o.kt)("p",null,"Here's an example of the token resupply transaction's content:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-json"},'{\n "aeip": [8, 18],\n "supply": 100000000000, // 1000 tokens if referenced token has decimals=8\n "token_reference": "0000C13373C96538B468CCDAB8F95FDC3744EBFA2CD36A81C3791B2A205705D9C3A2"\n}\n')),(0,o.kt)("h2",{id:"recipients-aeip-19"},"Recipients (AEIP-19)"),(0,o.kt)("p",null,"When creating a token transaction (creation or resupply), it is also possible to specify a list of recipients that will receive all or some of the minted tokens.\nIn order to do so, a ",(0,o.kt)("inlineCode",{parentName:"p"},"recipients")," field must specified in the transaction's content."),(0,o.kt)("p",null,"Here's an example for a fungible token resupply:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-json"},'{\n "aeip": [8, 18, 19],\n "supply": 1000,\n "token_reference": "0000C13373C96538B468CCDAB8F95FDC3744EBFA2CD36A81C3791B2A205705D9C3A2",\n "recipients": [\n {\n "to": "0000f1fd....",\n "amount": 100000000 // 1 token\n }\n ]\n}\n')),(0,o.kt)("p",null,"Here's another example for a non-fungible token creation:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-json"},'{\n "aeip": [2, 8, 19],\n "supply": 100000000, // 1 token\n "type": "non-fungible",\n "name": "My NFT",\n "symbol": "MNFT",\n "properties": {\n "image": "base64 of the image",\n "description": "This is a NFT with an image"\n },\n "recipients": [\n {\n "to": "0000f1fd....",\n "amount": 100000000 // 1 token\n }\n ]\n}\n')),(0,o.kt)("h2",{id:"transfer"},"Transfer"),(0,o.kt)("p",null,"Now that the tokens are created, there are few ways to move them around:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"Via a wallet (such as the ",(0,o.kt)("a",{parentName:"li",href:"https://www.archethic.net/wallet.html"},"Archethic Wallet"),")"),(0,o.kt)("li",{parentName:"ol"},"Via the ",(0,o.kt)("inlineCode",{parentName:"li"},"send-transaction")," API"),(0,o.kt)("li",{parentName:"ol"},"Via a Smart Contract")),(0,o.kt)("p",null,"Example of a NFT transfer via the API:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-json"},'{\n "method": "send_transaction",\n "jsonrpc": "2.0",\n "id": 1,\n "params": {\n "transaction": {\n "version": 2,\n "type": "transfer",\n // [...]\n "data": {\n "ledger": {\n "token": {\n "transfers": [\n {\n "to": "0000ABCD...EF", // recipient\'s address\n "amount": 100000000, // 1 token\n "tokenAddress": "00001AC8...4F", // token definition address\n "tokenId": 1 // 1st token of the collection\n }\n ]\n }\n }\n }\n }\n }\n}\n')),(0,o.kt)("p",null,"Example of a transfer via a Smart Contract:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-elixir"},"Contract.add_token_transfer(token_address: 0x00001AC8...4F, to: 0x0000ABCD...EF, amount: 100000000)\n")))}d.isMDXComponent=!0},8209:(e,n,t)=>{t(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7157],{3905:(e,n,t)=>{t.d(n,{Zo:()=>c,kt:()=>k});var a=t(67294);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function r(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function i(e){for(var n=1;n=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var s=a.createContext({}),p=function(e){var n=a.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},c=function(e){var n=p(e.components);return a.createElement(s.Provider,{value:n},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},m=a.forwardRef((function(e,n){var t=e.components,o=e.mdxType,r=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),u=p(t),m=o,k=u["".concat(s,".").concat(m)]||u[m]||d[m]||r;return t?a.createElement(k,i(i({ref:n},c),{},{components:t})):a.createElement(k,i({ref:n},c))}));function k(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var r=t.length,i=new Array(r);i[0]=m;var l={};for(var s in n)hasOwnProperty.call(n,s)&&(l[s]=n[s]);l.originalType=e,l[u]="string"==typeof e?e:o,i[1]=l;for(var p=2;p{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>r,metadata:()=>l,toc:()=>p});var a=t(87462),o=(t(67294),t(3905));t(8209);const r={id:"token",title:"Tokens"},i=void 0,l={unversionedId:"learn/token",id:"learn/token",title:"Tokens",description:"Tokens is an important feature on Archethic.",source:"@site/docs/learn/token.md",sourceDirName:"learn",slug:"/learn/token",permalink:"/learn/token",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"token",title:"Tokens"},sidebar:"docs",previous:{title:"Replication attestation",permalink:"/learn/sharding/replication-attestation"},next:{title:"Participate",permalink:"/category/participate"}},s={},p=[{value:"Native",id:"native",level:2},{value:"Standardized",id:"standardized",level:2},{value:"Creation",id:"creation",level:2},{value:"Fungible",id:"fungible",level:3},{value:"Non-fungible",id:"non-fungible",level:3},{value:"Resupply fungible tokens (AEIP-18)",id:"resupply-fungible-tokens-aeip-18",level:2},{value:"Recipients (AEIP-19)",id:"recipients-aeip-19",level:2},{value:"Transfer",id:"transfer",level:2}],c={toc:p},u="wrapper";function d(e){let{components:n,...t}=e;return(0,o.kt)(u,(0,a.Z)({},c,t,{components:n,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Tokens is an important feature on Archethic.\nNowadays, our world is transforming towards digitalisation and tokenization with new use cases and trends (royalties, collection, proof of ownerships, etc.)"),(0,o.kt)("p",null,"Archethic allows users to create and transaction with an unlimited-defined (custom) token natively."),(0,o.kt)("h2",{id:"native"},"Native"),(0,o.kt)("p",null,"Archethic tokens are considered as native as for developers, there is no need to create smart contract to mint or transfer tokens."),(0,o.kt)("p",null,"The transaction's structure supports - by design, asn extension of the ledger model (more than UCO-only transaction)"),(0,o.kt)("p",null,"All the layer of complexity have been removed to make them efficient and performant."),(0,o.kt)("p",null,"Because of this, the transfer of tokens is as simple as a transfer of UCO (just UTXO), making it fast and cheap."),(0,o.kt)("h2",{id:"standardized"},"Standardized"),(0,o.kt)("p",null,"Archethic's tokens are also unified through specifications to help implementers, developers and users to have a clear understanding of their definition."),(0,o.kt)("p",null,"The complete specification is composed of many AEIPs:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/archethic-foundation/aeip/blob/main/AEIP-02.md"},"AEIP-02 - Tokens standard")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/archethic-foundation/aeip/blob/main/AEIP-18.md"},"AEIP-18 - Tokens resupply")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/archethic-foundation/aeip/blob/main/AEIP-19.md"},"AEIP-19 - Tokens minting's recipients"))),(0,o.kt)("h2",{id:"creation"},"Creation"),(0,o.kt)("p",null,"In order to create a token, you have to:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"set the transaction's type to: ",(0,o.kt)("inlineCode",{parentName:"li"},"token")),(0,o.kt)("li",{parentName:"ol"},"define in the transaction's content the token's json definition")),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/archethic-node/blob/develop/priv/json-schemas/token-core.json"},"The JSON Schema is available on GitHub")),(0,o.kt)("admonition",{type:"note"},(0,o.kt)("p",{parentName:"admonition"},"As everything on Archethic, it is a good practice to create a new transaction chain for this token only.")),(0,o.kt)("h3",{id:"fungible"},"Fungible"),(0,o.kt)("p",null,"Example of a token that doesn't allow minting (may never be resupplied):"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-json"},'{\n "supply": 100000000000, // 1000 tokens\n "decimals": 8, // 1 token == 10\u2078\n "type": "fungible",\n "symbol": "TOKEN_SYMBOL",\n "name": "TOKEN_NAME",\n "properties": {"PROPERTY_NAME": "PROPERTY_VALUE"}\n}\n')),(0,o.kt)("p",null,"Example of a token that allows minting (may be resupplied later):"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-json"},'{\n "allow_mint": true, // <------------\n "supply": 100000000000, // 100000 tokens\n "decimals": 6, // 1 token == 10\u2076\n "type": "fungible",\n "symbol": "TOKEN_SYMBOL",\n "name": "TOKEN_NAME",\n "properties": {"PROPERTY_NAME": "PROPERTY_VALUE"}\n}\n')),(0,o.kt)("h3",{id:"non-fungible"},"Non-fungible"),(0,o.kt)("p",null,"There are 2 definitions for the NFT:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"either for a single token"),(0,o.kt)("li",{parentName:"ol"},"either for a collection of tokens")),(0,o.kt)("admonition",{type:"info"},(0,o.kt)("p",{parentName:"admonition"},"NFTs always have 8 decimals.")),(0,o.kt)("p",null,"Example of a NFT:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-json"},'{\n "supply": 100000000, // 1 token\n "type": "non-fungible",\n "name": "My NFT",\n "symbol": "MNFT",\n "properties": {\n "image": "base64 of the image",\n "description": "This is a NFT with an image"\n }\n}\n')),(0,o.kt)("p",null,"Example of a NFT Collection:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-json"},'{\n "supply": 300000000, // 3 tokens\n "type": "non-fungible",\n "name": "COLLETION NAME",\n "symbol": "COLLETION_SYMBOL",\n "properties": {"globalProperty": "value"},\n "collection": [\n {"image": "link"},\n {"image": "link"},\n {"image": "link"}\n ]\n}\n')),(0,o.kt)("p",null,"During the transaction validation, the miners will understand how to interpret this transaction and create the relative assets and UTXOs to make transfers possible right away."),(0,o.kt)("h2",{id:"resupply-fungible-tokens-aeip-18"},"Resupply fungible tokens (AEIP-18)"),(0,o.kt)("p",null,"As mentioned above, fungible tokens may accept to be minted at any time. ",(0,o.kt)("strong",{parentName:"p"},"This transaction must be done in the same transaction chain of the referenced token")," (to prove ownership of the token) and it's type must be ",(0,o.kt)("inlineCode",{parentName:"p"},"token"),"."),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/archethic-node/blob/develop/priv/json-schemas/token-resupply.json"},"The JSON Schema is available on GitHub")),(0,o.kt)("p",null,"Here's an example of the token resupply transaction's content:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-json"},'{\n "aeip": [8, 18],\n "supply": 100000000000, // 1000 tokens if referenced token has decimals=8\n "token_reference": "0000C13373C96538B468CCDAB8F95FDC3744EBFA2CD36A81C3791B2A205705D9C3A2"\n}\n')),(0,o.kt)("h2",{id:"recipients-aeip-19"},"Recipients (AEIP-19)"),(0,o.kt)("p",null,"When creating a token transaction (creation or resupply), it is also possible to specify a list of recipients that will receive all or some of the minted tokens.\nIn order to do so, a ",(0,o.kt)("inlineCode",{parentName:"p"},"recipients")," field must specified in the transaction's content."),(0,o.kt)("p",null,"Here's an example for a fungible token resupply:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-json"},'{\n "aeip": [8, 18, 19],\n "supply": 1000,\n "token_reference": "0000C13373C96538B468CCDAB8F95FDC3744EBFA2CD36A81C3791B2A205705D9C3A2",\n "recipients": [\n {\n "to": "0000f1fd....",\n "amount": 100000000 // 1 token\n }\n ]\n}\n')),(0,o.kt)("p",null,"Here's another example for a non-fungible token creation:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-json"},'{\n "aeip": [2, 8, 19],\n "supply": 100000000, // 1 token\n "type": "non-fungible",\n "name": "My NFT",\n "symbol": "MNFT",\n "properties": {\n "image": "base64 of the image",\n "description": "This is a NFT with an image"\n },\n "recipients": [\n {\n "to": "0000f1fd....",\n "amount": 100000000 // 1 token\n }\n ]\n}\n')),(0,o.kt)("h2",{id:"transfer"},"Transfer"),(0,o.kt)("p",null,"Now that the tokens are created, there are few ways to move them around:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"Via a wallet (such as the ",(0,o.kt)("a",{parentName:"li",href:"https://www.archethic.net/wallet.html"},"Archethic Wallet"),")"),(0,o.kt)("li",{parentName:"ol"},"Via the ",(0,o.kt)("inlineCode",{parentName:"li"},"send-transaction")," API"),(0,o.kt)("li",{parentName:"ol"},"Via a Smart Contract")),(0,o.kt)("p",null,"Example of a NFT transfer via the API:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-json"},'{\n "method": "send_transaction",\n "jsonrpc": "2.0",\n "id": 1,\n "params": {\n "transaction": {\n "version": 2,\n "type": "transfer",\n // [...]\n "data": {\n "ledger": {\n "token": {\n "transfers": [\n {\n "to": "0000ABCD...EF", // recipient\'s address\n "amount": 100000000, // 1 token\n "tokenAddress": "00001AC8...4F", // token definition address\n "tokenId": 1 // 1st token of the collection\n }\n ]\n }\n }\n }\n }\n }\n}\n')),(0,o.kt)("p",null,"Example of a transfer via a Smart Contract:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-elixir"},"Contract.add_token_transfer(token_address: 0x00001AC8...4F, to: 0x0000ABCD...EF, amount: 100000000)\n")))}d.isMDXComponent=!0},8209:(e,n,t)=>{t(67294)}}]); \ No newline at end of file diff --git a/assets/js/11838df3.6ac8d5ae.js b/assets/js/11838df3.2fd9dcec.js similarity index 97% rename from assets/js/11838df3.6ac8d5ae.js rename to assets/js/11838df3.2fd9dcec.js index 357fde574..2e76dda8c 100644 --- a/assets/js/11838df3.6ac8d5ae.js +++ b/assets/js/11838df3.2fd9dcec.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3042],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>b});var r=a(67294);function o(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function n(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function l(e){for(var t=1;t=0||(o[a]=e[a]);return o}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(o[a]=e[a])}return o}var i=r.createContext({}),d=function(e){var t=r.useContext(i),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},s=function(e){var t=d(e.components);return r.createElement(i.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,o=e.mdxType,n=e.originalType,i=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),u=d(a),m=o,b=u["".concat(i,".").concat(m)]||u[m]||p[m]||n;return a?r.createElement(b,l(l({ref:t},s),{},{components:a})):r.createElement(b,l({ref:t},s))}));function b(e,t){var a=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var n=a.length,l=new Array(n);l[0]=m;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[u]="string"==typeof e?e:o,l[1]=c;for(var d=2;d{a.r(t),a.d(t,{Badge:()=>p,Bullet:()=>s,Details:()=>b,SpecifiedBy:()=>u,assets:()=>d,contentTitle:()=>c,default:()=>g,frontMatter:()=>l,metadata:()=>i,toc:()=>m});var r=a(87462),o=a(67294),n=a(3905);a(8209);const l={id:"uco-data",title:"UcoData",hide_table_of_contents:!1},c=void 0,i={unversionedId:"build/api/schema/objects/uco-data",id:"build/api/schema/objects/uco-data",title:"UcoData",description:"No description",source:"@site/docs/build/api/schema/objects/uco-data.mdx",sourceDirName:"build/api/schema/objects",slug:"/build/api/schema/objects/uco-data",permalink:"/build/api/schema/objects/uco-data",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"uco-data",title:"UcoData",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"Transaction",permalink:"/build/api/schema/objects/transaction"},next:{title:"UcoLedger",permalink:"/build/api/schema/objects/uco-ledger"}},d={},s=()=>(0,n.kt)(o.Fragment,null,(0,n.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),u=e=>(0,n.kt)(o.Fragment,null,"Specification",(0,n.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),p=e=>(0,n.kt)(o.Fragment,null,(0,n.kt)("span",{className:e.class},e.text)),m=[{value:"Fields",id:"fields",level:3},{value:'UcoData.eurFloat ',id:"code-style-fontweight-normal-ucodatabeurbcodefloat-",level:4},{value:'UcoData.usdFloat ',id:"code-style-fontweight-normal-ucodatabusdbcodefloat-",level:4},{value:"Member of",id:"member-of",level:3}],b=e=>{let{dataOpen:t,dataClose:a,children:l,startOpen:c=!1}=e;const[i,d]=(0,o.useState)(c);return(0,n.kt)("details",(0,r.Z)({},i?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,n.kt)("summary",{onClick:e=>{e.preventDefault(),d((e=>!e))},style:{listStyle:"none"}},i?t:a),i&&l)},f={Bullet:s,SpecifiedBy:u,Badge:p,toc:m,Details:b},y="wrapper";function g(e){let{components:t,...a}=e;return(0,n.kt)(y,(0,r.Z)({},f,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"No description"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-graphql"},"type UcoData {\n eur: Float\n usd: Float\n}\n")),(0,n.kt)("h3",{id:"fields"},"Fields"),(0,n.kt)("h4",{id:"code-style-fontweight-normal-ucodatabeurbcodefloat-"},(0,n.kt)("a",{parentName:"h4",href:"#"},(0,n.kt)("code",{style:{fontWeight:"normal"}},"UcoData.",(0,n.kt)("b",null,"eur"))),(0,n.kt)(s,{mdxType:"Bullet"}),(0,n.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/float"},(0,n.kt)("inlineCode",{parentName:"a"},"Float"))," ",(0,n.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,n.kt)("blockquote",null),(0,n.kt)("h4",{id:"code-style-fontweight-normal-ucodatabusdbcodefloat-"},(0,n.kt)("a",{parentName:"h4",href:"#"},(0,n.kt)("code",{style:{fontWeight:"normal"}},"UcoData.",(0,n.kt)("b",null,"usd"))),(0,n.kt)(s,{mdxType:"Bullet"}),(0,n.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/float"},(0,n.kt)("inlineCode",{parentName:"a"},"Float"))," ",(0,n.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,n.kt)("blockquote",null),(0,n.kt)("h3",{id:"member-of"},"Member of"),(0,n.kt)("p",null,(0,n.kt)("a",{parentName:"p",href:"/build/api/schema/objects/oracle-services"},(0,n.kt)("inlineCode",{parentName:"a"},"OracleServices"))," ",(0,n.kt)(p,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}g.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3042],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>b});var r=a(67294);function o(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function n(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function l(e){for(var t=1;t=0||(o[a]=e[a]);return o}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(o[a]=e[a])}return o}var i=r.createContext({}),d=function(e){var t=r.useContext(i),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},s=function(e){var t=d(e.components);return r.createElement(i.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,o=e.mdxType,n=e.originalType,i=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),u=d(a),m=o,b=u["".concat(i,".").concat(m)]||u[m]||p[m]||n;return a?r.createElement(b,l(l({ref:t},s),{},{components:a})):r.createElement(b,l({ref:t},s))}));function b(e,t){var a=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var n=a.length,l=new Array(n);l[0]=m;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[u]="string"==typeof e?e:o,l[1]=c;for(var d=2;d{a.r(t),a.d(t,{Badge:()=>p,Bullet:()=>s,Details:()=>b,SpecifiedBy:()=>u,assets:()=>d,contentTitle:()=>c,default:()=>g,frontMatter:()=>l,metadata:()=>i,toc:()=>m});var r=a(87462),o=a(67294),n=a(3905);a(8209);const l={id:"uco-data",title:"UcoData",hide_table_of_contents:!1},c=void 0,i={unversionedId:"build/api/schema/objects/uco-data",id:"build/api/schema/objects/uco-data",title:"UcoData",description:"No description",source:"@site/docs/build/api/schema/objects/uco-data.mdx",sourceDirName:"build/api/schema/objects",slug:"/build/api/schema/objects/uco-data",permalink:"/build/api/schema/objects/uco-data",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"uco-data",title:"UcoData",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"Transaction",permalink:"/build/api/schema/objects/transaction"},next:{title:"UcoLedger",permalink:"/build/api/schema/objects/uco-ledger"}},d={},s=()=>(0,n.kt)(o.Fragment,null,(0,n.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),u=e=>(0,n.kt)(o.Fragment,null,"Specification",(0,n.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),p=e=>(0,n.kt)(o.Fragment,null,(0,n.kt)("span",{className:e.class},e.text)),m=[{value:"Fields",id:"fields",level:3},{value:'UcoData.eurFloat ',id:"code-style-fontweight-normal-ucodatabeurbcodefloat-",level:4},{value:'UcoData.usdFloat ',id:"code-style-fontweight-normal-ucodatabusdbcodefloat-",level:4},{value:"Member of",id:"member-of",level:3}],b=e=>{let{dataOpen:t,dataClose:a,children:l,startOpen:c=!1}=e;const[i,d]=(0,o.useState)(c);return(0,n.kt)("details",(0,r.Z)({},i?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,n.kt)("summary",{onClick:e=>{e.preventDefault(),d((e=>!e))},style:{listStyle:"none"}},i?t:a),i&&l)},f={Bullet:s,SpecifiedBy:u,Badge:p,toc:m,Details:b},y="wrapper";function g(e){let{components:t,...a}=e;return(0,n.kt)(y,(0,r.Z)({},f,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"No description"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-graphql"},"type UcoData {\n eur: Float\n usd: Float\n}\n")),(0,n.kt)("h3",{id:"fields"},"Fields"),(0,n.kt)("h4",{id:"code-style-fontweight-normal-ucodatabeurbcodefloat-"},(0,n.kt)("a",{parentName:"h4",href:"#"},(0,n.kt)("code",{style:{fontWeight:"normal"}},"UcoData.",(0,n.kt)("b",null,"eur"))),(0,n.kt)(s,{mdxType:"Bullet"}),(0,n.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/float"},(0,n.kt)("inlineCode",{parentName:"a"},"Float"))," ",(0,n.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,n.kt)("blockquote",null),(0,n.kt)("h4",{id:"code-style-fontweight-normal-ucodatabusdbcodefloat-"},(0,n.kt)("a",{parentName:"h4",href:"#"},(0,n.kt)("code",{style:{fontWeight:"normal"}},"UcoData.",(0,n.kt)("b",null,"usd"))),(0,n.kt)(s,{mdxType:"Bullet"}),(0,n.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/float"},(0,n.kt)("inlineCode",{parentName:"a"},"Float"))," ",(0,n.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,n.kt)("blockquote",null),(0,n.kt)("h3",{id:"member-of"},"Member of"),(0,n.kt)("p",null,(0,n.kt)("a",{parentName:"p",href:"/build/api/schema/objects/oracle-services"},(0,n.kt)("inlineCode",{parentName:"a"},"OracleServices"))," ",(0,n.kt)(p,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}g.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file diff --git a/assets/js/12706266.827b6014.js b/assets/js/12706266.a8c95f4f.js similarity index 99% rename from assets/js/12706266.827b6014.js rename to assets/js/12706266.a8c95f4f.js index 6c5a5cc44..ec04bad44 100644 --- a/assets/js/12706266.827b6014.js +++ b/assets/js/12706266.a8c95f4f.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1137],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>k});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var c=a.createContext({}),s=function(e){var t=a.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},p=function(e){var t=s(e.components);return a.createElement(c.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,c=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),d=s(n),m=r,k=d["".concat(c,".").concat(m)]||d[m]||u[m]||i;return n?a.createElement(k,l(l({ref:t},p),{},{components:n})):a.createElement(k,l({ref:t},p))}));function k(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,l=new Array(i);l[0]=m;var o={};for(var c in t)hasOwnProperty.call(t,c)&&(o[c]=t[c]);o.originalType=e,o[d]="string"==typeof e?e:r,l[1]=o;for(var s=2;s{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>u,frontMatter:()=>i,metadata:()=>o,toc:()=>s});var a=n(87462),r=(n(67294),n(3905));n(8209);const i={id:"language",title:"Smart Contract Language",sidebar_label:"Language"},l=void 0,o={unversionedId:"build/smart-contracts/language/legacy/language",id:"build/smart-contracts/language/legacy/language",title:"Smart Contract Language",description:"Archethic Blockchain defines a new smart contract language which was designed to resolve the issue of smart contracts:",source:"@site/docs/build/smart-contracts/language/legacy/language.md",sourceDirName:"build/smart-contracts/language/legacy",slug:"/build/smart-contracts/language/legacy/language",permalink:"/build/smart-contracts/language/legacy/language",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"language",title:"Smart Contract Language",sidebar_label:"Language"},sidebar:"docs",previous:{title:"Examples",permalink:"/build/smart-contracts/language/legacy/examples"},next:{title:"State",permalink:"/build/smart-contracts/state"}},c={},s=[{value:"Triggers/Actions",id:"triggersactions",level:2},{value:"Conditions",id:"conditions",level:2},{value:"Global variables",id:"global-variables",level:2},{value:"Functions",id:"functions",level:2},{value:"Utilities",id:"utilities",level:3},{value:"Statements",id:"statements",level:3}],p={toc:s},d="wrapper";function u(e){let{components:t,...n}=e;return(0,r.kt)(d,(0,a.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"Archethic Blockchain defines a new smart contract language which was designed to resolve the issue of smart contracts:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Expressiveness"),(0,r.kt)("li",{parentName:"ul"},"Simplify"),(0,r.kt)("li",{parentName:"ul"},"Security")),(0,r.kt)("p",null,"Along with the new features of Archethic Smart Contracts (triggers, conditions, actions), a new custom language is defined"),(0,r.kt)("h2",{id:"triggersactions"},"Triggers/Actions"),(0,r.kt)("p",null,"To define a trigger, we need to specify an action block with its trigger type and the following parameters (if presents)"),(0,r.kt)("p",null,"For example:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"based on an incoming transaction")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"actions triggered_by: transaction do\n # do something when a receive transaction\nend\n")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"based on time interval")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},'actions triggered_by: interval, at: "0 8 * * *" do\n # do something each day at 8AM\nend\n')),(0,r.kt)("h2",{id:"conditions"},"Conditions"),(0,r.kt)("p",null,"To define a condition, we need to specify a condition block with its subject and the list conditions by fields:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"type")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"content")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"code")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"authorized_keys")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"secrets")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"uco_transfers")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"token_transfers")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"previous_public_key")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"origin_family"))),(0,r.kt)("p",null,"For example:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},'expecting the incoming transaction contains the content "hello"')),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},'condition transaction: [\n content: "Hello"\n]\n')),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"expecting all the transaction in the chain should be generated from a biometric device")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"condition inherit: [\n origin_family: biometric\n]\n")),(0,r.kt)("h2",{id:"global-variables"},"Global variables"),(0,r.kt)("p",null,"Smart Contract can use global variable in the different blocks:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"contract"),": represent the actual contract"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"transaction"),": incoming transaction"),(0,r.kt)("li",{parentName:"ul"},"(inherit condition only) ",(0,r.kt)("inlineCode",{parentName:"li"},"next"),": next transaction on the chain"),(0,r.kt)("li",{parentName:"ul"},"(inherit condition only) ",(0,r.kt)("inlineCode",{parentName:"li"},"previous"),": previous transaction on the chain")),(0,r.kt)("p",null,"Each of this variables contains the following fields:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"address")," (hex)"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"type")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"content")," (abitraty string)"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"code")," (abritraty string)"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"authorized_keys")," (map of public keys)"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"secrets")," (list of encrypted secrets in hex)"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"previous_public_key")," (hex)"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"recipients")," (list of smart contract recipients addresses in hex)"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"uco_transfers")," (map of the uco transfers: ",(0,r.kt)("inlineCode",{parentName:"li"},"%{ recipient_address => amount }")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"token_transfers")," (map of the token transfers: ",(0,r.kt)("inlineCode",{parentName:"li"},"%{ recipient_address => list(%{ amount: amount, token_address: token_to_transfer, token_id: token_id}}) "))),(0,r.kt)("h2",{id:"functions"},"Functions"),(0,r.kt)("p",null,"Archethic Smart Contracts relies on function which can be used on condition or action blocks."),(0,r.kt)("p",null,"There are two categories of functions:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Utilities"),(0,r.kt)("li",{parentName:"ul"},"Statements (for transaction generation)")),(0,r.kt)("h3",{id:"utilities"},"Utilities"),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"In the ",(0,r.kt)("inlineCode",{parentName:"p"},"condition")," block, if no parameter is given, the transaction's field value will be the first one")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"hash(data)"),": Perform a cryptographic hash")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"condition transaction: [\n content: hash(contract.code)\n]\n")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"regex_match?(data, pattern)"),": Verify a regular expression")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},'condition transaction: [\n content: regex_match?("hello")\n]\n')),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("inlineCode",{parentName:"p"},"regex_extract(data, pattern)"),": Extract data from a regular expression")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"json_match?: Verify the data matches a JSONPath expression"))),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},'condition oracle: [\n content: json_match?("$.uco.usd")\n]\n')),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"json_extract(data, pattern)"),": Extract data from a JSONPath expression")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},'condition oracle: [\n content: json_extract("$.uco.usd") > 0.2\n]\n')),(0,r.kt)("h3",{id:"statements"},"Statements"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"set_type"),": Set the transaction type")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"actions triggered_by: transaction do\n set_type transfer\nend\n")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"add_uco_transfer"),": Add a new UCO transfer")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},'actions triggered_by: transaction do\n add_uco_transfer to: "F28C3D5B3828AD3F8682F1B1D14A8507B829F65F7BE6C50427A6019CCB6801C", amount: 1.0\nend\n')),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"add_token_transfer"),": Add a new token transfer")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},'actions triggered_by: transaction do\n add_token_transfer: to: "AF28C3D5B3828AD3F8682F1B1D14A8507B829F65F7BE6C50427A6019CCB6801C", token_address: "0D574D171A484F8DEAC2D61FC3F7CC984BEB52465D69B3B5F670090742CBF5CC", amount: 1.0\nend\n')),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"set_content"),": Set the new content")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},'actions triggered_by: transaction do\n set_content "hello"\nend\n')),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"set_code"),": Set the new code")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},'actions triggered_by: transaction do\n set_code """\n actions triggered_by: transaction do\n add_uco_transfer to: "0D574D171A484F8DEAC2D61FC3F7CC984BEB52465D69B3B5F670090742CBF5CC", amount: 2.0\n end\n """\nend\n')),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"add_ownership"),": Add a new ownership with a secret and its authorized public keys")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},'actions triggered_by: transaction do\n add_ownership secret: "...", secret_key: "...", authorized_public_key: ["0D574D171A484F8DEAC2D61FC3F7CC984BEB52465D69B3B5F670090742CBF5CC"]\nend\n')),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"add_recipient"),": Add a contract address to reach")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},'actions triggered_by: datetime, at: 1391309040 do\n add_recipient "0D574D171A484F8DEAC2D61FC3F7CC984BEB52465D69B3B5F670090742CBF5CC"\nend\n\n')))}u.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1137],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>k});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var c=a.createContext({}),s=function(e){var t=a.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},p=function(e){var t=s(e.components);return a.createElement(c.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,c=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),d=s(n),m=r,k=d["".concat(c,".").concat(m)]||d[m]||u[m]||i;return n?a.createElement(k,l(l({ref:t},p),{},{components:n})):a.createElement(k,l({ref:t},p))}));function k(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,l=new Array(i);l[0]=m;var o={};for(var c in t)hasOwnProperty.call(t,c)&&(o[c]=t[c]);o.originalType=e,o[d]="string"==typeof e?e:r,l[1]=o;for(var s=2;s{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>u,frontMatter:()=>i,metadata:()=>o,toc:()=>s});var a=n(87462),r=(n(67294),n(3905));n(8209);const i={id:"language",title:"Smart Contract Language",sidebar_label:"Language"},l=void 0,o={unversionedId:"build/smart-contracts/language/legacy/language",id:"build/smart-contracts/language/legacy/language",title:"Smart Contract Language",description:"Archethic Blockchain defines a new smart contract language which was designed to resolve the issue of smart contracts:",source:"@site/docs/build/smart-contracts/language/legacy/language.md",sourceDirName:"build/smart-contracts/language/legacy",slug:"/build/smart-contracts/language/legacy/language",permalink:"/build/smart-contracts/language/legacy/language",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"language",title:"Smart Contract Language",sidebar_label:"Language"},sidebar:"docs",previous:{title:"Examples",permalink:"/build/smart-contracts/language/legacy/examples"},next:{title:"State",permalink:"/build/smart-contracts/state"}},c={},s=[{value:"Triggers/Actions",id:"triggersactions",level:2},{value:"Conditions",id:"conditions",level:2},{value:"Global variables",id:"global-variables",level:2},{value:"Functions",id:"functions",level:2},{value:"Utilities",id:"utilities",level:3},{value:"Statements",id:"statements",level:3}],p={toc:s},d="wrapper";function u(e){let{components:t,...n}=e;return(0,r.kt)(d,(0,a.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"Archethic Blockchain defines a new smart contract language which was designed to resolve the issue of smart contracts:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Expressiveness"),(0,r.kt)("li",{parentName:"ul"},"Simplify"),(0,r.kt)("li",{parentName:"ul"},"Security")),(0,r.kt)("p",null,"Along with the new features of Archethic Smart Contracts (triggers, conditions, actions), a new custom language is defined"),(0,r.kt)("h2",{id:"triggersactions"},"Triggers/Actions"),(0,r.kt)("p",null,"To define a trigger, we need to specify an action block with its trigger type and the following parameters (if presents)"),(0,r.kt)("p",null,"For example:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"based on an incoming transaction")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"actions triggered_by: transaction do\n # do something when a receive transaction\nend\n")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"based on time interval")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},'actions triggered_by: interval, at: "0 8 * * *" do\n # do something each day at 8AM\nend\n')),(0,r.kt)("h2",{id:"conditions"},"Conditions"),(0,r.kt)("p",null,"To define a condition, we need to specify a condition block with its subject and the list conditions by fields:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"type")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"content")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"code")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"authorized_keys")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"secrets")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"uco_transfers")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"token_transfers")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"previous_public_key")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"origin_family"))),(0,r.kt)("p",null,"For example:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},'expecting the incoming transaction contains the content "hello"')),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},'condition transaction: [\n content: "Hello"\n]\n')),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"expecting all the transaction in the chain should be generated from a biometric device")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"condition inherit: [\n origin_family: biometric\n]\n")),(0,r.kt)("h2",{id:"global-variables"},"Global variables"),(0,r.kt)("p",null,"Smart Contract can use global variable in the different blocks:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"contract"),": represent the actual contract"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"transaction"),": incoming transaction"),(0,r.kt)("li",{parentName:"ul"},"(inherit condition only) ",(0,r.kt)("inlineCode",{parentName:"li"},"next"),": next transaction on the chain"),(0,r.kt)("li",{parentName:"ul"},"(inherit condition only) ",(0,r.kt)("inlineCode",{parentName:"li"},"previous"),": previous transaction on the chain")),(0,r.kt)("p",null,"Each of this variables contains the following fields:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"address")," (hex)"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"type")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"content")," (abitraty string)"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"code")," (abritraty string)"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"authorized_keys")," (map of public keys)"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"secrets")," (list of encrypted secrets in hex)"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"previous_public_key")," (hex)"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"recipients")," (list of smart contract recipients addresses in hex)"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"uco_transfers")," (map of the uco transfers: ",(0,r.kt)("inlineCode",{parentName:"li"},"%{ recipient_address => amount }")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"token_transfers")," (map of the token transfers: ",(0,r.kt)("inlineCode",{parentName:"li"},"%{ recipient_address => list(%{ amount: amount, token_address: token_to_transfer, token_id: token_id}}) "))),(0,r.kt)("h2",{id:"functions"},"Functions"),(0,r.kt)("p",null,"Archethic Smart Contracts relies on function which can be used on condition or action blocks."),(0,r.kt)("p",null,"There are two categories of functions:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Utilities"),(0,r.kt)("li",{parentName:"ul"},"Statements (for transaction generation)")),(0,r.kt)("h3",{id:"utilities"},"Utilities"),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"In the ",(0,r.kt)("inlineCode",{parentName:"p"},"condition")," block, if no parameter is given, the transaction's field value will be the first one")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"hash(data)"),": Perform a cryptographic hash")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"condition transaction: [\n content: hash(contract.code)\n]\n")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"regex_match?(data, pattern)"),": Verify a regular expression")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},'condition transaction: [\n content: regex_match?("hello")\n]\n')),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("inlineCode",{parentName:"p"},"regex_extract(data, pattern)"),": Extract data from a regular expression")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"json_match?: Verify the data matches a JSONPath expression"))),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},'condition oracle: [\n content: json_match?("$.uco.usd")\n]\n')),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"json_extract(data, pattern)"),": Extract data from a JSONPath expression")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},'condition oracle: [\n content: json_extract("$.uco.usd") > 0.2\n]\n')),(0,r.kt)("h3",{id:"statements"},"Statements"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"set_type"),": Set the transaction type")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"actions triggered_by: transaction do\n set_type transfer\nend\n")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"add_uco_transfer"),": Add a new UCO transfer")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},'actions triggered_by: transaction do\n add_uco_transfer to: "F28C3D5B3828AD3F8682F1B1D14A8507B829F65F7BE6C50427A6019CCB6801C", amount: 1.0\nend\n')),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"add_token_transfer"),": Add a new token transfer")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},'actions triggered_by: transaction do\n add_token_transfer: to: "AF28C3D5B3828AD3F8682F1B1D14A8507B829F65F7BE6C50427A6019CCB6801C", token_address: "0D574D171A484F8DEAC2D61FC3F7CC984BEB52465D69B3B5F670090742CBF5CC", amount: 1.0\nend\n')),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"set_content"),": Set the new content")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},'actions triggered_by: transaction do\n set_content "hello"\nend\n')),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"set_code"),": Set the new code")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},'actions triggered_by: transaction do\n set_code """\n actions triggered_by: transaction do\n add_uco_transfer to: "0D574D171A484F8DEAC2D61FC3F7CC984BEB52465D69B3B5F670090742CBF5CC", amount: 2.0\n end\n """\nend\n')),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"add_ownership"),": Add a new ownership with a secret and its authorized public keys")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},'actions triggered_by: transaction do\n add_ownership secret: "...", secret_key: "...", authorized_public_key: ["0D574D171A484F8DEAC2D61FC3F7CC984BEB52465D69B3B5F670090742CBF5CC"]\nend\n')),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"add_recipient"),": Add a contract address to reach")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},'actions triggered_by: datetime, at: 1391309040 do\n add_recipient "0D574D171A484F8DEAC2D61FC3F7CC984BEB52465D69B3B5F670090742CBF5CC"\nend\n\n')))}u.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/145b7035.2ce1c27c.js b/assets/js/145b7035.40b0b566.js similarity index 99% rename from assets/js/145b7035.2ce1c27c.js rename to assets/js/145b7035.40b0b566.js index 5b06efe48..be1255a4b 100644 --- a/assets/js/145b7035.2ce1c27c.js +++ b/assets/js/145b7035.40b0b566.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6269],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>g});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var u=n.createContext({}),s=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=s(e.components);return n.createElement(u.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,l=e.originalType,u=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),c=s(r),d=a,g=c["".concat(u,".").concat(d)]||c[d]||m[d]||l;return r?n.createElement(g,i(i({ref:t},p),{},{components:r})):n.createElement(g,i({ref:t},p))}));function g(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=r.length,i=new Array(l);i[0]=d;var o={};for(var u in t)hasOwnProperty.call(t,u)&&(o[u]=t[u]);o.originalType=e,o[c]="string"==typeof e?e:a,i[1]=o;for(var s=2;s{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>m,frontMatter:()=>l,metadata:()=>o,toc:()=>s});var n=r(87462),a=(r(67294),r(3905));r(8209);const l={id:"string",title:"String module",sidebar_label:"String"},i=void 0,o={unversionedId:"build/smart-contracts/language/library/string",id:"build/smart-contracts/language/library/string",title:"String module",description:"The String module contains functions to manipulate strings of text.",source:"@site/docs/build/smart-contracts/language/library/string.md",sourceDirName:"build/smart-contracts/language/library",slug:"/build/smart-contracts/language/library/string",permalink:"/build/smart-contracts/language/library/string",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"string",title:"String module",sidebar_label:"String"},sidebar:"docs",previous:{title:"State",permalink:"/build/smart-contracts/language/library/state"},next:{title:"Time",permalink:"/build/smart-contracts/language/library/time"}},u={},s=[{value:"size/1",id:"size1",level:3},{value:"in?/2",id:"in2",level:3},{value:"to_number/1",id:"to_number1",level:3},{value:"from_number/1",id:"from_number1",level:3},{value:"to_hex/1",id:"to_hex1",level:3},{value:"to_uppercase/1",id:"to_uppercase1",level:3},{value:"to_lowercase/1",id:"to_lowercase1",level:3}],p={toc:s},c="wrapper";function m(e){let{components:t,...r}=e;return(0,a.kt)(c,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The ",(0,a.kt)("inlineCode",{parentName:"p"},"String")," module contains functions to manipulate strings of text."),(0,a.kt)("h3",{id:"size1"},"size/1"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},'String.size("hello") # 5\nString.size("\u4f60\u597d") # 2\n')),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"str")," the string")),(0,a.kt)("p",null,"Returns the number of characters in ",(0,a.kt)("inlineCode",{parentName:"p"},"str"),"."),(0,a.kt)("h3",{id:"in2"},"in?/2"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},'String.in?("bob,alice,julia", "alice") # true\nString.in?("bob,alice,julia", "fred") # false\n')),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"str1")," the haystack"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"str2")," the needle")),(0,a.kt)("p",null,"Returns whether the ",(0,a.kt)("inlineCode",{parentName:"p"},"needle")," is in the ",(0,a.kt)("inlineCode",{parentName:"p"},"haystack"),"."),(0,a.kt)("h3",{id:"to_number1"},"to_number/1"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},'String.to_number("12") # 12\nString.to_number("-12") # -12\nString.to_number("12.1") # 12.1\n')),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"str")," the string")),(0,a.kt)("p",null,"Returns the number which text representation is ",(0,a.kt)("inlineCode",{parentName:"p"},"str"),"."),(0,a.kt)("h3",{id:"from_number1"},"from_number/1"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},'String.from_number(13) # "13"\nString.from_number(13.2) # "13.2"\n')),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"number")," the number")),(0,a.kt)("p",null,"Returns the text representation of ",(0,a.kt)("inlineCode",{parentName:"p"},"number"),"."),(0,a.kt)("h3",{id:"to_hex1"},"to_hex/1"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},'String.to_hex("592ac76afa") # "592AC76AFA"\nString.to_hex("592AC76AFA") # "592AC76AFA"\nString.to_hex("hello") # "68656C6C6F"\n')),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"str")," the string")),(0,a.kt)("p",null,"Return the text representation of hexadecimal ",(0,a.kt)("inlineCode",{parentName:"p"},"str"),".\nIf ",(0,a.kt)("inlineCode",{parentName:"p"},"str")," is already an hex it just uppercase it"),(0,a.kt)("h3",{id:"to_uppercase1"},"to_uppercase/1"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},'String.to_uppercase("Ars\xe8ne Lupin") # "ARS\xc8NE LUPIN"\n')),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"str")," the string")),(0,a.kt)("p",null,"Return the ",(0,a.kt)("inlineCode",{parentName:"p"},"str")," in uppercase."),(0,a.kt)("h3",{id:"to_lowercase1"},"to_lowercase/1"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},'String.to_lowercase("Sherlock Holmes") # "sherlock holmes"\n')),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"str")," the string")),(0,a.kt)("p",null,"Return the ",(0,a.kt)("inlineCode",{parentName:"p"},"str")," in lowercase."))}m.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6269],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>g});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var u=n.createContext({}),s=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=s(e.components);return n.createElement(u.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,l=e.originalType,u=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),c=s(r),d=a,g=c["".concat(u,".").concat(d)]||c[d]||m[d]||l;return r?n.createElement(g,i(i({ref:t},p),{},{components:r})):n.createElement(g,i({ref:t},p))}));function g(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=r.length,i=new Array(l);i[0]=d;var o={};for(var u in t)hasOwnProperty.call(t,u)&&(o[u]=t[u]);o.originalType=e,o[c]="string"==typeof e?e:a,i[1]=o;for(var s=2;s{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>m,frontMatter:()=>l,metadata:()=>o,toc:()=>s});var n=r(87462),a=(r(67294),r(3905));r(8209);const l={id:"string",title:"String module",sidebar_label:"String"},i=void 0,o={unversionedId:"build/smart-contracts/language/library/string",id:"build/smart-contracts/language/library/string",title:"String module",description:"The String module contains functions to manipulate strings of text.",source:"@site/docs/build/smart-contracts/language/library/string.md",sourceDirName:"build/smart-contracts/language/library",slug:"/build/smart-contracts/language/library/string",permalink:"/build/smart-contracts/language/library/string",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"string",title:"String module",sidebar_label:"String"},sidebar:"docs",previous:{title:"State",permalink:"/build/smart-contracts/language/library/state"},next:{title:"Time",permalink:"/build/smart-contracts/language/library/time"}},u={},s=[{value:"size/1",id:"size1",level:3},{value:"in?/2",id:"in2",level:3},{value:"to_number/1",id:"to_number1",level:3},{value:"from_number/1",id:"from_number1",level:3},{value:"to_hex/1",id:"to_hex1",level:3},{value:"to_uppercase/1",id:"to_uppercase1",level:3},{value:"to_lowercase/1",id:"to_lowercase1",level:3}],p={toc:s},c="wrapper";function m(e){let{components:t,...r}=e;return(0,a.kt)(c,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The ",(0,a.kt)("inlineCode",{parentName:"p"},"String")," module contains functions to manipulate strings of text."),(0,a.kt)("h3",{id:"size1"},"size/1"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},'String.size("hello") # 5\nString.size("\u4f60\u597d") # 2\n')),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"str")," the string")),(0,a.kt)("p",null,"Returns the number of characters in ",(0,a.kt)("inlineCode",{parentName:"p"},"str"),"."),(0,a.kt)("h3",{id:"in2"},"in?/2"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},'String.in?("bob,alice,julia", "alice") # true\nString.in?("bob,alice,julia", "fred") # false\n')),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"str1")," the haystack"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"str2")," the needle")),(0,a.kt)("p",null,"Returns whether the ",(0,a.kt)("inlineCode",{parentName:"p"},"needle")," is in the ",(0,a.kt)("inlineCode",{parentName:"p"},"haystack"),"."),(0,a.kt)("h3",{id:"to_number1"},"to_number/1"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},'String.to_number("12") # 12\nString.to_number("-12") # -12\nString.to_number("12.1") # 12.1\n')),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"str")," the string")),(0,a.kt)("p",null,"Returns the number which text representation is ",(0,a.kt)("inlineCode",{parentName:"p"},"str"),"."),(0,a.kt)("h3",{id:"from_number1"},"from_number/1"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},'String.from_number(13) # "13"\nString.from_number(13.2) # "13.2"\n')),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"number")," the number")),(0,a.kt)("p",null,"Returns the text representation of ",(0,a.kt)("inlineCode",{parentName:"p"},"number"),"."),(0,a.kt)("h3",{id:"to_hex1"},"to_hex/1"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},'String.to_hex("592ac76afa") # "592AC76AFA"\nString.to_hex("592AC76AFA") # "592AC76AFA"\nString.to_hex("hello") # "68656C6C6F"\n')),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"str")," the string")),(0,a.kt)("p",null,"Return the text representation of hexadecimal ",(0,a.kt)("inlineCode",{parentName:"p"},"str"),".\nIf ",(0,a.kt)("inlineCode",{parentName:"p"},"str")," is already an hex it just uppercase it"),(0,a.kt)("h3",{id:"to_uppercase1"},"to_uppercase/1"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},'String.to_uppercase("Ars\xe8ne Lupin") # "ARS\xc8NE LUPIN"\n')),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"str")," the string")),(0,a.kt)("p",null,"Return the ",(0,a.kt)("inlineCode",{parentName:"p"},"str")," in uppercase."),(0,a.kt)("h3",{id:"to_lowercase1"},"to_lowercase/1"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},'String.to_lowercase("Sherlock Holmes") # "sherlock holmes"\n')),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"str")," the string")),(0,a.kt)("p",null,"Return the ",(0,a.kt)("inlineCode",{parentName:"p"},"str")," in lowercase."))}m.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file diff --git a/assets/js/145f3c45.03d1c136.js b/assets/js/145f3c45.9650e815.js similarity index 98% rename from assets/js/145f3c45.03d1c136.js rename to assets/js/145f3c45.9650e815.js index 5bd24bd7b..afaa792b0 100644 --- a/assets/js/145f3c45.03d1c136.js +++ b/assets/js/145f3c45.9650e815.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8268],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>b});var n=a(67294);function o(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e){for(var t=1;t=0||(o[a]=e[a]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(o[a]=e[a])}return o}var i=n.createContext({}),d=function(e){var t=n.useContext(i),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},c=function(e){var t=d(e.components);return n.createElement(i.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,o=e.mdxType,r=e.originalType,i=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),p=d(a),m=o,b=p["".concat(i,".").concat(m)]||p[m]||u[m]||r;return a?n.createElement(b,l(l({ref:t},c),{},{components:a})):n.createElement(b,l({ref:t},c))}));function b(e,t){var a=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=a.length,l=new Array(r);l[0]=m;var s={};for(var i in t)hasOwnProperty.call(t,i)&&(s[i]=t[i]);s.originalType=e,s[p]="string"==typeof e?e:o,l[1]=s;for(var d=2;d{a.r(t),a.d(t,{Badge:()=>u,Bullet:()=>c,Details:()=>b,SpecifiedBy:()=>p,assets:()=>d,contentTitle:()=>s,default:()=>h,frontMatter:()=>l,metadata:()=>i,toc:()=>m});var n=a(87462),o=a(67294),r=a(3905);a(8209);const l={id:"transaction-input",title:"TransactionInput",hide_table_of_contents:!1},s=void 0,i={unversionedId:"build/api/schema/objects/transaction-input",id:"build/api/schema/objects/transaction-input",title:"TransactionInput",description:"[TransactionInput] represents the inputs from the transaction",source:"@site/docs/build/api/schema/objects/transaction-input.mdx",sourceDirName:"build/api/schema/objects",slug:"/build/api/schema/objects/transaction-input",permalink:"/build/api/schema/objects/transaction-input",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"transaction-input",title:"TransactionInput",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"TransactionError",permalink:"/build/api/schema/objects/transaction-error"},next:{title:"TransactionMovement",permalink:"/build/api/schema/objects/transaction-movement"}},d={},c=()=>(0,r.kt)(o.Fragment,null,(0,r.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=e=>(0,r.kt)(o.Fragment,null,"Specification",(0,r.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,r.kt)(o.Fragment,null,(0,r.kt)("span",{className:e.class},e.text)),m=[{value:"Fields",id:"fields",level:3},{value:'TransactionInput.amountInt ',id:"code-style-fontweight-normal-transactioninputbamountbcodeint-",level:4},{value:'TransactionInput.fromAddress ',id:"code-style-fontweight-normal-transactioninputbfrombcodeaddress-",level:4},{value:'TransactionInput.spentBoolean ',id:"code-style-fontweight-normal-transactioninputbspentbcodeboolean-",level:4},{value:'TransactionInput.timestampTimestamp ',id:"code-style-fontweight-normal-transactioninputbtimestampbcodetimestamp-",level:4},{value:'TransactionInput.tokenAddressAddress ',id:"code-style-fontweight-normal-transactioninputbtokenaddressbcodeaddress-",level:4},{value:'TransactionInput.tokenIdInt ',id:"code-style-fontweight-normal-transactioninputbtokenidbcodeint-",level:4},{value:'TransactionInput.typeString ',id:"code-style-fontweight-normal-transactioninputbtypebcodestring-",level:4},{value:"Returned by",id:"returned-by",level:3},{value:"Member of",id:"member-of",level:3}],b=e=>{let{dataOpen:t,dataClose:a,children:l,startOpen:s=!1}=e;const[i,d]=(0,o.useState)(s);return(0,r.kt)("details",(0,n.Z)({},i?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,r.kt)("summary",{onClick:e=>{e.preventDefault(),d((e=>!e))},style:{listStyle:"none"}},i?t:a),i&&l)},k={Bullet:c,SpecifiedBy:p,Badge:u,toc:m,Details:b},f="wrapper";function h(e){let{components:t,...a}=e;return(0,r.kt)(f,(0,n.Z)({},k,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"[TransactionInput]"," represents the inputs from the transaction\nIt includes:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"From: transaction which send the amount of assets"),(0,r.kt)("li",{parentName:"ul"},"Amount: asset amount"),(0,r.kt)("li",{parentName:"ul"},"Type: UCO/token/Call"),(0,r.kt)("li",{parentName:"ul"},"token address: address of the token if the type is token"),(0,r.kt)("li",{parentName:"ul"},"Spent: determines if the input has been spent"),(0,r.kt)("li",{parentName:"ul"},"Timestamp: Date time when the inputs was generated"),(0,r.kt)("li",{parentName:"ul"},"token id: It is the id for a token which is allocated when the token is minted.")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-graphql"},"type TransactionInput {\n amount: Int\n from: Address\n spent: Boolean\n timestamp: Timestamp\n tokenAddress: Address\n tokenId: Int\n type: String\n}\n")),(0,r.kt)("h3",{id:"fields"},"Fields"),(0,r.kt)("h4",{id:"code-style-fontweight-normal-transactioninputbamountbcodeint-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"TransactionInput.",(0,r.kt)("b",null,"amount"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/int"},(0,r.kt)("inlineCode",{parentName:"a"},"Int"))," ",(0,r.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-transactioninputbfrombcodeaddress-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"TransactionInput.",(0,r.kt)("b",null,"from"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/address"},(0,r.kt)("inlineCode",{parentName:"a"},"Address"))," ",(0,r.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-transactioninputbspentbcodeboolean-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"TransactionInput.",(0,r.kt)("b",null,"spent"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/boolean"},(0,r.kt)("inlineCode",{parentName:"a"},"Boolean"))," ",(0,r.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-transactioninputbtimestampbcodetimestamp-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"TransactionInput.",(0,r.kt)("b",null,"timestamp"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/timestamp"},(0,r.kt)("inlineCode",{parentName:"a"},"Timestamp"))," ",(0,r.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-transactioninputbtokenaddressbcodeaddress-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"TransactionInput.",(0,r.kt)("b",null,"tokenAddress"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/address"},(0,r.kt)("inlineCode",{parentName:"a"},"Address"))," ",(0,r.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-transactioninputbtokenidbcodeint-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"TransactionInput.",(0,r.kt)("b",null,"tokenId"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/int"},(0,r.kt)("inlineCode",{parentName:"a"},"Int"))," ",(0,r.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-transactioninputbtypebcodestring-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"TransactionInput.",(0,r.kt)("b",null,"type"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/string"},(0,r.kt)("inlineCode",{parentName:"a"},"String"))," ",(0,r.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h3",{id:"returned-by"},"Returned by"),(0,r.kt)("p",null,(0,r.kt)("a",{parentName:"p",href:"/build/api/schema/queries/transaction-inputs"},(0,r.kt)("inlineCode",{parentName:"a"},"transactionInputs"))," ",(0,r.kt)(u,{class:"badge badge--secondary",text:"query",mdxType:"Badge"})),(0,r.kt)("h3",{id:"member-of"},"Member of"),(0,r.kt)("p",null,(0,r.kt)("a",{parentName:"p",href:"/build/api/schema/objects/transaction"},(0,r.kt)("inlineCode",{parentName:"a"},"Transaction"))," ",(0,r.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}h.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8268],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>b});var n=a(67294);function o(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e){for(var t=1;t=0||(o[a]=e[a]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(o[a]=e[a])}return o}var i=n.createContext({}),d=function(e){var t=n.useContext(i),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},c=function(e){var t=d(e.components);return n.createElement(i.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,o=e.mdxType,r=e.originalType,i=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),p=d(a),m=o,b=p["".concat(i,".").concat(m)]||p[m]||u[m]||r;return a?n.createElement(b,l(l({ref:t},c),{},{components:a})):n.createElement(b,l({ref:t},c))}));function b(e,t){var a=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=a.length,l=new Array(r);l[0]=m;var s={};for(var i in t)hasOwnProperty.call(t,i)&&(s[i]=t[i]);s.originalType=e,s[p]="string"==typeof e?e:o,l[1]=s;for(var d=2;d{a.r(t),a.d(t,{Badge:()=>u,Bullet:()=>c,Details:()=>b,SpecifiedBy:()=>p,assets:()=>d,contentTitle:()=>s,default:()=>h,frontMatter:()=>l,metadata:()=>i,toc:()=>m});var n=a(87462),o=a(67294),r=a(3905);a(8209);const l={id:"transaction-input",title:"TransactionInput",hide_table_of_contents:!1},s=void 0,i={unversionedId:"build/api/schema/objects/transaction-input",id:"build/api/schema/objects/transaction-input",title:"TransactionInput",description:"[TransactionInput] represents the inputs from the transaction",source:"@site/docs/build/api/schema/objects/transaction-input.mdx",sourceDirName:"build/api/schema/objects",slug:"/build/api/schema/objects/transaction-input",permalink:"/build/api/schema/objects/transaction-input",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"transaction-input",title:"TransactionInput",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"TransactionError",permalink:"/build/api/schema/objects/transaction-error"},next:{title:"TransactionMovement",permalink:"/build/api/schema/objects/transaction-movement"}},d={},c=()=>(0,r.kt)(o.Fragment,null,(0,r.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=e=>(0,r.kt)(o.Fragment,null,"Specification",(0,r.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,r.kt)(o.Fragment,null,(0,r.kt)("span",{className:e.class},e.text)),m=[{value:"Fields",id:"fields",level:3},{value:'TransactionInput.amountInt ',id:"code-style-fontweight-normal-transactioninputbamountbcodeint-",level:4},{value:'TransactionInput.fromAddress ',id:"code-style-fontweight-normal-transactioninputbfrombcodeaddress-",level:4},{value:'TransactionInput.spentBoolean ',id:"code-style-fontweight-normal-transactioninputbspentbcodeboolean-",level:4},{value:'TransactionInput.timestampTimestamp ',id:"code-style-fontweight-normal-transactioninputbtimestampbcodetimestamp-",level:4},{value:'TransactionInput.tokenAddressAddress ',id:"code-style-fontweight-normal-transactioninputbtokenaddressbcodeaddress-",level:4},{value:'TransactionInput.tokenIdInt ',id:"code-style-fontweight-normal-transactioninputbtokenidbcodeint-",level:4},{value:'TransactionInput.typeString ',id:"code-style-fontweight-normal-transactioninputbtypebcodestring-",level:4},{value:"Returned by",id:"returned-by",level:3},{value:"Member of",id:"member-of",level:3}],b=e=>{let{dataOpen:t,dataClose:a,children:l,startOpen:s=!1}=e;const[i,d]=(0,o.useState)(s);return(0,r.kt)("details",(0,n.Z)({},i?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,r.kt)("summary",{onClick:e=>{e.preventDefault(),d((e=>!e))},style:{listStyle:"none"}},i?t:a),i&&l)},k={Bullet:c,SpecifiedBy:p,Badge:u,toc:m,Details:b},f="wrapper";function h(e){let{components:t,...a}=e;return(0,r.kt)(f,(0,n.Z)({},k,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"[TransactionInput]"," represents the inputs from the transaction\nIt includes:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"From: transaction which send the amount of assets"),(0,r.kt)("li",{parentName:"ul"},"Amount: asset amount"),(0,r.kt)("li",{parentName:"ul"},"Type: UCO/token/Call"),(0,r.kt)("li",{parentName:"ul"},"token address: address of the token if the type is token"),(0,r.kt)("li",{parentName:"ul"},"Spent: determines if the input has been spent"),(0,r.kt)("li",{parentName:"ul"},"Timestamp: Date time when the inputs was generated"),(0,r.kt)("li",{parentName:"ul"},"token id: It is the id for a token which is allocated when the token is minted.")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-graphql"},"type TransactionInput {\n amount: Int\n from: Address\n spent: Boolean\n timestamp: Timestamp\n tokenAddress: Address\n tokenId: Int\n type: String\n}\n")),(0,r.kt)("h3",{id:"fields"},"Fields"),(0,r.kt)("h4",{id:"code-style-fontweight-normal-transactioninputbamountbcodeint-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"TransactionInput.",(0,r.kt)("b",null,"amount"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/int"},(0,r.kt)("inlineCode",{parentName:"a"},"Int"))," ",(0,r.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-transactioninputbfrombcodeaddress-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"TransactionInput.",(0,r.kt)("b",null,"from"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/address"},(0,r.kt)("inlineCode",{parentName:"a"},"Address"))," ",(0,r.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-transactioninputbspentbcodeboolean-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"TransactionInput.",(0,r.kt)("b",null,"spent"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/boolean"},(0,r.kt)("inlineCode",{parentName:"a"},"Boolean"))," ",(0,r.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-transactioninputbtimestampbcodetimestamp-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"TransactionInput.",(0,r.kt)("b",null,"timestamp"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/timestamp"},(0,r.kt)("inlineCode",{parentName:"a"},"Timestamp"))," ",(0,r.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-transactioninputbtokenaddressbcodeaddress-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"TransactionInput.",(0,r.kt)("b",null,"tokenAddress"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/address"},(0,r.kt)("inlineCode",{parentName:"a"},"Address"))," ",(0,r.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-transactioninputbtokenidbcodeint-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"TransactionInput.",(0,r.kt)("b",null,"tokenId"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/int"},(0,r.kt)("inlineCode",{parentName:"a"},"Int"))," ",(0,r.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-transactioninputbtypebcodestring-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"TransactionInput.",(0,r.kt)("b",null,"type"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/string"},(0,r.kt)("inlineCode",{parentName:"a"},"String"))," ",(0,r.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h3",{id:"returned-by"},"Returned by"),(0,r.kt)("p",null,(0,r.kt)("a",{parentName:"p",href:"/build/api/schema/queries/transaction-inputs"},(0,r.kt)("inlineCode",{parentName:"a"},"transactionInputs"))," ",(0,r.kt)(u,{class:"badge badge--secondary",text:"query",mdxType:"Badge"})),(0,r.kt)("h3",{id:"member-of"},"Member of"),(0,r.kt)("p",null,(0,r.kt)("a",{parentName:"p",href:"/build/api/schema/objects/transaction"},(0,r.kt)("inlineCode",{parentName:"a"},"Transaction"))," ",(0,r.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}h.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file diff --git a/assets/js/147d0e4e.9880dd08.js b/assets/js/147d0e4e.44af8841.js similarity index 97% rename from assets/js/147d0e4e.9880dd08.js rename to assets/js/147d0e4e.44af8841.js index 860e702b5..f654ca561 100644 --- a/assets/js/147d0e4e.9880dd08.js +++ b/assets/js/147d0e4e.44af8841.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1166],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>m});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),s=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},u=function(e){var t=s(e.components);return r.createElement(l.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,l=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),d=s(n),h=a,m=d["".concat(l,".").concat(h)]||d[h]||p[h]||i;return n?r.createElement(m,o(o({ref:t},u),{},{components:n})):r.createElement(m,o({ref:t},u))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=h;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[d]="string"==typeof e?e:a,o[1]=c;for(var s=2;s{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>p,frontMatter:()=>i,metadata:()=>c,toc:()=>s});var r=n(87462),a=(n(67294),n(3905));n(8209);const i={id:"oracle-chain",title:"OracleChain"},o=void 0,c={unversionedId:"learn/oracle-chain",id:"learn/oracle-chain",title:"OracleChain",description:"Archethic Blockchain supports Off-Chain communication through a dedicated transaction chain called OracleChain.",source:"@site/docs/learn/oracle-chain.md",sourceDirName:"learn",slug:"/learn/oracle-chain",permalink:"/learn/oracle-chain",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"oracle-chain",title:"OracleChain"},sidebar:"docs",previous:{title:"Governance",permalink:"/learn/governance/"},next:{title:"P2P",permalink:"/learn/p2p/"}},l={},s=[{value:"How is it work ?",id:"how-is-it-work-",level:2},{value:"Services",id:"services",level:2}],u={toc:s},d="wrapper";function p(e){let{components:t,...n}=e;return(0,a.kt)(d,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"Archethic Blockchain supports Off-Chain communication through a dedicated transaction chain called ",(0,a.kt)("inlineCode",{parentName:"p"},"OracleChain"),"."),(0,a.kt)("p",null,"It aims to gather external data to be used inside the network or the smart contract layer."),(0,a.kt)("h2",{id:"how-is-it-work-"},"How is it work ?"),(0,a.kt)("p",null,"OracleChain behaves a bit like the ",(0,a.kt)("a",{parentName:"p",href:"/learn/sharding/beacon-chain"},"BeaconChain")," except the transaction on the chain are generated every 10min but only when there is a new data updated."),(0,a.kt)("p",null,"It's using a long-polling mechanism to get data from external sources and submit a transaction through ARCH Consensus."),(0,a.kt)("p",null,"By using ARCH consensus, we ensure the atomic commitment of the data submitted and ensure validity of the information written into the transaction."),(0,a.kt)("p",null,"Each node receives the new transaction from the OracleChain and can apply behaviors from this new data and notify smart contracts which depends on oracle updates."),(0,a.kt)("mermaid",{value:"graph TD\n A[Node1] --\x3e|1. Fetch data| B\n B(External service: ie. UCO Price)\n A --\x3e | 2. Send transaction| C\n A --\x3e | 2. Send transaction| D\n C[Node2] --\x3e | 3. Check data | B \n D[Node3] --\x3e | 3. Check data |B\n C[Node2] --\x3e | 4. Validate transaction | D \n D[Node2] --\x3e C"}),(0,a.kt)("h2",{id:"services"},"Services"),(0,a.kt)("p",null,"The list of services supported by the OracleChain:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"UCO Price Feed: fetching UCO token price from Coingecko in USD/EUR currency and is used for the:",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"Transaction Fee algorithm"),(0,a.kt)("li",{parentName:"ul"},"Auto reward of nodes which didn't receive enough mining rewards")))))}p.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1166],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>m});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),s=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},u=function(e){var t=s(e.components);return r.createElement(l.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,l=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),d=s(n),h=a,m=d["".concat(l,".").concat(h)]||d[h]||p[h]||i;return n?r.createElement(m,o(o({ref:t},u),{},{components:n})):r.createElement(m,o({ref:t},u))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=h;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[d]="string"==typeof e?e:a,o[1]=c;for(var s=2;s{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>p,frontMatter:()=>i,metadata:()=>c,toc:()=>s});var r=n(87462),a=(n(67294),n(3905));n(8209);const i={id:"oracle-chain",title:"OracleChain"},o=void 0,c={unversionedId:"learn/oracle-chain",id:"learn/oracle-chain",title:"OracleChain",description:"Archethic Blockchain supports Off-Chain communication through a dedicated transaction chain called OracleChain.",source:"@site/docs/learn/oracle-chain.md",sourceDirName:"learn",slug:"/learn/oracle-chain",permalink:"/learn/oracle-chain",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"oracle-chain",title:"OracleChain"},sidebar:"docs",previous:{title:"Governance",permalink:"/learn/governance/"},next:{title:"P2P",permalink:"/learn/p2p/"}},l={},s=[{value:"How is it work ?",id:"how-is-it-work-",level:2},{value:"Services",id:"services",level:2}],u={toc:s},d="wrapper";function p(e){let{components:t,...n}=e;return(0,a.kt)(d,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"Archethic Blockchain supports Off-Chain communication through a dedicated transaction chain called ",(0,a.kt)("inlineCode",{parentName:"p"},"OracleChain"),"."),(0,a.kt)("p",null,"It aims to gather external data to be used inside the network or the smart contract layer."),(0,a.kt)("h2",{id:"how-is-it-work-"},"How is it work ?"),(0,a.kt)("p",null,"OracleChain behaves a bit like the ",(0,a.kt)("a",{parentName:"p",href:"/learn/sharding/beacon-chain"},"BeaconChain")," except the transaction on the chain are generated every 10min but only when there is a new data updated."),(0,a.kt)("p",null,"It's using a long-polling mechanism to get data from external sources and submit a transaction through ARCH Consensus."),(0,a.kt)("p",null,"By using ARCH consensus, we ensure the atomic commitment of the data submitted and ensure validity of the information written into the transaction."),(0,a.kt)("p",null,"Each node receives the new transaction from the OracleChain and can apply behaviors from this new data and notify smart contracts which depends on oracle updates."),(0,a.kt)("mermaid",{value:"graph TD\n A[Node1] --\x3e|1. Fetch data| B\n B(External service: ie. UCO Price)\n A --\x3e | 2. Send transaction| C\n A --\x3e | 2. Send transaction| D\n C[Node2] --\x3e | 3. Check data | B \n D[Node3] --\x3e | 3. Check data |B\n C[Node2] --\x3e | 4. Validate transaction | D \n D[Node2] --\x3e C"}),(0,a.kt)("h2",{id:"services"},"Services"),(0,a.kt)("p",null,"The list of services supported by the OracleChain:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"UCO Price Feed: fetching UCO token price from Coingecko in USD/EUR currency and is used for the:",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"Transaction Fee algorithm"),(0,a.kt)("li",{parentName:"ul"},"Auto reward of nodes which didn't receive enough mining rewards")))))}p.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/14d826f7.7d4e8d05.js b/assets/js/14d826f7.3443eb61.js similarity index 99% rename from assets/js/14d826f7.7d4e8d05.js rename to assets/js/14d826f7.3443eb61.js index f5ec49942..c06db9d9d 100644 --- a/assets/js/14d826f7.7d4e8d05.js +++ b/assets/js/14d826f7.3443eb61.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7870],{3905:(e,t,r)=>{r.d(t,{Zo:()=>h,kt:()=>w});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),s=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},h=function(e){var t=s(e.components);return n.createElement(c.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,h=i(e,["components","mdxType","originalType","parentName"]),u=s(r),d=o,w=u["".concat(c,".").concat(d)]||u[d]||p[d]||a;return r?n.createElement(w,l(l({ref:t},h),{},{components:r})):n.createElement(w,l({ref:t},h))}));function w(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=d;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[u]="string"==typeof e?e:o,l[1]=i;for(var s=2;s{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>p,frontMatter:()=>a,metadata:()=>i,toc:()=>s});var n=r(87462),o=(r(67294),r(3905));r(8209);const a={id:"wallet",title:"aeWallet"},l=void 0,i={unversionedId:"FAQ/wallet",id:"FAQ/wallet",title:"aeWallet",description:"General",source:"@site/docs/FAQ/wallet.md",sourceDirName:"FAQ",slug:"/FAQ/wallet",permalink:"/FAQ/wallet",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"wallet",title:"aeWallet"},sidebar:"docs",previous:{title:"Migration of ERC-20 UCO Tokens",permalink:"/FAQ/migration-erc-token"},next:{title:"Contributing",permalink:"/contributing"}},c={},s=[{value:"General",id:"general",level:2},{value:" How to create a wallet on the Archethic blockchain?",id:"-how-to-create-a-wallet-on-the-archethic-blockchain",level:3},{value:" How to retrieve the address of my Archethic wallet?",id:"-how-to-retrieve-the-address-of-my-archethic-wallet",level:3},{value:"Troubleshooting",id:"troubleshooting",level:2},{value:"The Archethic wallet won't start or opens to a black or white screen",id:"the-archethic-wallet-wont-start-or-opens-to-a-black-or-white-screen",level:3}],h={toc:s},u="wrapper";function p(e){let{components:t,...a}=e;return(0,o.kt)(u,(0,n.Z)({},h,a,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"general"},"General"),(0,o.kt)("h3",{id:"-how-to-create-a-wallet-on-the-archethic-blockchain"},(0,o.kt)("strong",{parentName:"h3"}," How to create a wallet on the Archethic blockchain?")),(0,o.kt)("p",null,"Firstly, ",(0,o.kt)("a",{href:"https://www.archethic.net/wallet.html",target:"_blank"},"download the wallet")," version that corresponds to the platform you want to use it on from the Archethic website or the app stores.\nOnce installed, you can launch the application."),(0,o.kt)("p",null,"1) The first page invites you to read and accept ",(0,o.kt)("a",{parentName:"p",href:"https://www.archethic.net/privacy-policy-wallet.html"},"the privacy policy"),".",(0,o.kt)("br",null),'\n2) Once accepted, you can click on "Get started" to begin creating your wallet.',(0,o.kt)("br",null),"\n3) First, give a name to your first account within your future decentralized keychain.",(0,o.kt)("br",null),"\n4) A confirmation popup appears to verify that the account name is to your liking.",(0,o.kt)("br",null),"\n5) The application reminds you of important security information to protect your funds and your secret phrase.",(0,o.kt)("br",null),'\n6) After reading the information, click on "I understand".',(0,o.kt)("br",null),"\n7) The 24 words of your secret phrase will be displayed.",(0,o.kt)("br",null)),(0,o.kt)("admonition",{type:"caution"},(0,o.kt)("p",{parentName:"admonition"},"Do not share them with anyone and write them down so you can confirm them on the following screen.")),(0,o.kt)("p",null,"8) Confirmation requires that the words be put back in order.",(0,o.kt)("br",null),"\n9) Once the process of confirming the order of the words in the secret phrase is done, you can select the means to protect your application (PIN code, password, biometrics, YubiKey).",(0,o.kt)("br",null),"\n10) After a few seconds of waiting, your keychain is created with your first account.",(0,o.kt)("br",null)),(0,o.kt)("p",null,"You can now enjoy the Archethic ecosystem. Enjoy!"),(0,o.kt)("h3",{id:"-how-to-retrieve-the-address-of-my-archethic-wallet"},(0,o.kt)("strong",{parentName:"h3"}," How to retrieve the address of my Archethic wallet?")),(0,o.kt)("p",null,"Firstly, you should be aware that your address changes with each transaction."),(0,o.kt)("p",null,"But don't worry. If you provide an old address to receive funds or tokens, it will still work, and you will receive what you are expecting."),(0,o.kt)("admonition",{type:"success"},(0,o.kt)("p",{parentName:"admonition"},"If you do not have an Archethic wallet or address yet, we invite you to refer to the section",(0,o.kt)("br",null),(0,o.kt)("a",{href:"/FAQ/wallet#-how-to-create-a-wallet-on-the-archethic-blockchain"},'"How to create a wallet on the Archethic blockchain?"'))),(0,o.kt)("p",null,"Once your wallet is created,",(0,o.kt)("br",null)),(0,o.kt)("p",null,'1) select the account on which you wish to receive your funds or tokens via the "Accounts" tab by clicking on the dropdown arrow at the top of the screen to the right of the current profile. A list will appear, showing your accounts and services contained in your decentralized keychain.',(0,o.kt)("br",null),'\n2) Once selected, you will be returned to the "Accounts" tab, where a "Receive" button will be visible.',(0,o.kt)("br",null),"\n3) Click on it, and you will obtain your address, either in the form of a QR Code or as text by clicking on the icon corresponding to the copy action.",(0,o.kt)("br",null)),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"wallet-address",src:r(71992).Z,width:"313",height:"320"})),(0,o.kt)("h2",{id:"troubleshooting"},"Troubleshooting"),(0,o.kt)("h3",{id:"the-archethic-wallet-wont-start-or-opens-to-a-black-or-white-screen"},"The Archethic wallet won't start or opens to a black or white screen"),(0,o.kt)("p",null,"To resolve a startup issue with the Archethic wallet, here are some corrective actions:"),(0,o.kt)("admonition",{type:"caution"},(0,o.kt)("p",{parentName:"admonition"},"Please note, steps 3 and 4 require you to reimport your wallet afterward by entering your mnemonic phrase.")),(0,o.kt)("p",null,"1) Verify that the application is downloaded from an official source."),(0,o.kt)("p",null,"For this, please visit the website ",(0,o.kt)("a",{parentName:"p",href:"https://www.archethic.net/wallet.html"},"https://www.archethic.net/wallet.html"),".\nFor security and proper functionality, Archethic advises against using the application on jailbroken devices or in developer mode."),(0,o.kt)("p",null,"2) Uninstall and then reinstall the application."),(0,o.kt)("p",null,"3) If the issue persists, ",(0,o.kt)("strong",{parentName:"p"},"for desktop versions"),", please delete the wallet's local database. "),(0,o.kt)("p",null,"To do this, manually delete at least the following files:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"appwallet.hive"),(0,o.kt)("li",{parentName:"ul"},"appwallet.lock"),(0,o.kt)("li",{parentName:"ul"},"cachemanager.hive"),(0,o.kt)("li",{parentName:"ul"},"cachemanager.lock"),(0,o.kt)("li",{parentName:"ul"},"contacts.hive"),(0,o.kt)("li",{parentName:"ul"},"contacts.lock"),(0,o.kt)("li",{parentName:"ul"},"messengerdiscussion.hive"),(0,o.kt)("li",{parentName:"ul"},"messengerdiscussion.lock"),(0,o.kt)("li",{parentName:"ul"},"_preferencesbox.hive"),(0,o.kt)("li",{parentName:"ul"},"_preferencesbox.lock"),(0,o.kt)("li",{parentName:"ul"},"_vaultbox.hive"),(0,o.kt)("li",{parentName:"ul"},"_vaultbox.lock")),(0,o.kt)("p",null,"In the directories according to your platform:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"macOS: /Users/{user}/Library/Containers/{YourAppName}/Data/Documents/"),(0,o.kt)("li",{parentName:"ul"},"Linux: /home/{user}/.local/share/{YourAppName}/"),(0,o.kt)("li",{parentName:"ul"},"Windows: C:\\Users{user}\\AppData\\Roaming{YourAppOrganization}\\")))}p.isMDXComponent=!0},71992:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/images/wallet-FAQ-display-address-0c6efd94638549668c63710c919235b2.png"},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7870],{3905:(e,t,r)=>{r.d(t,{Zo:()=>h,kt:()=>w});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),s=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},h=function(e){var t=s(e.components);return n.createElement(c.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,h=i(e,["components","mdxType","originalType","parentName"]),u=s(r),d=o,w=u["".concat(c,".").concat(d)]||u[d]||p[d]||a;return r?n.createElement(w,l(l({ref:t},h),{},{components:r})):n.createElement(w,l({ref:t},h))}));function w(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=d;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[u]="string"==typeof e?e:o,l[1]=i;for(var s=2;s{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>p,frontMatter:()=>a,metadata:()=>i,toc:()=>s});var n=r(87462),o=(r(67294),r(3905));r(8209);const a={id:"wallet",title:"aeWallet"},l=void 0,i={unversionedId:"FAQ/wallet",id:"FAQ/wallet",title:"aeWallet",description:"General",source:"@site/docs/FAQ/wallet.md",sourceDirName:"FAQ",slug:"/FAQ/wallet",permalink:"/FAQ/wallet",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"wallet",title:"aeWallet"},sidebar:"docs",previous:{title:"Migration of ERC-20 UCO Tokens",permalink:"/FAQ/migration-erc-token"},next:{title:"Contributing",permalink:"/contributing"}},c={},s=[{value:"General",id:"general",level:2},{value:" How to create a wallet on the Archethic blockchain?",id:"-how-to-create-a-wallet-on-the-archethic-blockchain",level:3},{value:" How to retrieve the address of my Archethic wallet?",id:"-how-to-retrieve-the-address-of-my-archethic-wallet",level:3},{value:"Troubleshooting",id:"troubleshooting",level:2},{value:"The Archethic wallet won't start or opens to a black or white screen",id:"the-archethic-wallet-wont-start-or-opens-to-a-black-or-white-screen",level:3}],h={toc:s},u="wrapper";function p(e){let{components:t,...a}=e;return(0,o.kt)(u,(0,n.Z)({},h,a,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"general"},"General"),(0,o.kt)("h3",{id:"-how-to-create-a-wallet-on-the-archethic-blockchain"},(0,o.kt)("strong",{parentName:"h3"}," How to create a wallet on the Archethic blockchain?")),(0,o.kt)("p",null,"Firstly, ",(0,o.kt)("a",{href:"https://www.archethic.net/wallet.html",target:"_blank"},"download the wallet")," version that corresponds to the platform you want to use it on from the Archethic website or the app stores.\nOnce installed, you can launch the application."),(0,o.kt)("p",null,"1) The first page invites you to read and accept ",(0,o.kt)("a",{parentName:"p",href:"https://www.archethic.net/privacy-policy-wallet.html"},"the privacy policy"),".",(0,o.kt)("br",null),'\n2) Once accepted, you can click on "Get started" to begin creating your wallet.',(0,o.kt)("br",null),"\n3) First, give a name to your first account within your future decentralized keychain.",(0,o.kt)("br",null),"\n4) A confirmation popup appears to verify that the account name is to your liking.",(0,o.kt)("br",null),"\n5) The application reminds you of important security information to protect your funds and your secret phrase.",(0,o.kt)("br",null),'\n6) After reading the information, click on "I understand".',(0,o.kt)("br",null),"\n7) The 24 words of your secret phrase will be displayed.",(0,o.kt)("br",null)),(0,o.kt)("admonition",{type:"caution"},(0,o.kt)("p",{parentName:"admonition"},"Do not share them with anyone and write them down so you can confirm them on the following screen.")),(0,o.kt)("p",null,"8) Confirmation requires that the words be put back in order.",(0,o.kt)("br",null),"\n9) Once the process of confirming the order of the words in the secret phrase is done, you can select the means to protect your application (PIN code, password, biometrics, YubiKey).",(0,o.kt)("br",null),"\n10) After a few seconds of waiting, your keychain is created with your first account.",(0,o.kt)("br",null)),(0,o.kt)("p",null,"You can now enjoy the Archethic ecosystem. Enjoy!"),(0,o.kt)("h3",{id:"-how-to-retrieve-the-address-of-my-archethic-wallet"},(0,o.kt)("strong",{parentName:"h3"}," How to retrieve the address of my Archethic wallet?")),(0,o.kt)("p",null,"Firstly, you should be aware that your address changes with each transaction."),(0,o.kt)("p",null,"But don't worry. If you provide an old address to receive funds or tokens, it will still work, and you will receive what you are expecting."),(0,o.kt)("admonition",{type:"success"},(0,o.kt)("p",{parentName:"admonition"},"If you do not have an Archethic wallet or address yet, we invite you to refer to the section",(0,o.kt)("br",null),(0,o.kt)("a",{href:"/FAQ/wallet#-how-to-create-a-wallet-on-the-archethic-blockchain"},'"How to create a wallet on the Archethic blockchain?"'))),(0,o.kt)("p",null,"Once your wallet is created,",(0,o.kt)("br",null)),(0,o.kt)("p",null,'1) select the account on which you wish to receive your funds or tokens via the "Accounts" tab by clicking on the dropdown arrow at the top of the screen to the right of the current profile. A list will appear, showing your accounts and services contained in your decentralized keychain.',(0,o.kt)("br",null),'\n2) Once selected, you will be returned to the "Accounts" tab, where a "Receive" button will be visible.',(0,o.kt)("br",null),"\n3) Click on it, and you will obtain your address, either in the form of a QR Code or as text by clicking on the icon corresponding to the copy action.",(0,o.kt)("br",null)),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"wallet-address",src:r(71992).Z,width:"313",height:"320"})),(0,o.kt)("h2",{id:"troubleshooting"},"Troubleshooting"),(0,o.kt)("h3",{id:"the-archethic-wallet-wont-start-or-opens-to-a-black-or-white-screen"},"The Archethic wallet won't start or opens to a black or white screen"),(0,o.kt)("p",null,"To resolve a startup issue with the Archethic wallet, here are some corrective actions:"),(0,o.kt)("admonition",{type:"caution"},(0,o.kt)("p",{parentName:"admonition"},"Please note, steps 3 and 4 require you to reimport your wallet afterward by entering your mnemonic phrase.")),(0,o.kt)("p",null,"1) Verify that the application is downloaded from an official source."),(0,o.kt)("p",null,"For this, please visit the website ",(0,o.kt)("a",{parentName:"p",href:"https://www.archethic.net/wallet.html"},"https://www.archethic.net/wallet.html"),".\nFor security and proper functionality, Archethic advises against using the application on jailbroken devices or in developer mode."),(0,o.kt)("p",null,"2) Uninstall and then reinstall the application."),(0,o.kt)("p",null,"3) If the issue persists, ",(0,o.kt)("strong",{parentName:"p"},"for desktop versions"),", please delete the wallet's local database. "),(0,o.kt)("p",null,"To do this, manually delete at least the following files:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"appwallet.hive"),(0,o.kt)("li",{parentName:"ul"},"appwallet.lock"),(0,o.kt)("li",{parentName:"ul"},"cachemanager.hive"),(0,o.kt)("li",{parentName:"ul"},"cachemanager.lock"),(0,o.kt)("li",{parentName:"ul"},"contacts.hive"),(0,o.kt)("li",{parentName:"ul"},"contacts.lock"),(0,o.kt)("li",{parentName:"ul"},"messengerdiscussion.hive"),(0,o.kt)("li",{parentName:"ul"},"messengerdiscussion.lock"),(0,o.kt)("li",{parentName:"ul"},"_preferencesbox.hive"),(0,o.kt)("li",{parentName:"ul"},"_preferencesbox.lock"),(0,o.kt)("li",{parentName:"ul"},"_vaultbox.hive"),(0,o.kt)("li",{parentName:"ul"},"_vaultbox.lock")),(0,o.kt)("p",null,"In the directories according to your platform:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"macOS: /Users/{user}/Library/Containers/{YourAppName}/Data/Documents/"),(0,o.kt)("li",{parentName:"ul"},"Linux: /home/{user}/.local/share/{YourAppName}/"),(0,o.kt)("li",{parentName:"ul"},"Windows: C:\\Users{user}\\AppData\\Roaming{YourAppOrganization}\\")))}p.isMDXComponent=!0},71992:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/images/wallet-FAQ-display-address-0c6efd94638549668c63710c919235b2.png"},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file diff --git a/assets/js/16aa5868.e0dd7883.js b/assets/js/16aa5868.f049f95d.js similarity index 98% rename from assets/js/16aa5868.e0dd7883.js rename to assets/js/16aa5868.f049f95d.js index f1f273940..0d5b56755 100644 --- a/assets/js/16aa5868.e0dd7883.js +++ b/assets/js/16aa5868.f049f95d.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3559],{3905:(e,t,r)=>{r.d(t,{Zo:()=>d,kt:()=>y});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function l(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=a.createContext({}),i=function(e){var t=a.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},d=function(e){var t=i(e.components);return a.createElement(s.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},b=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,c=e.originalType,s=e.parentName,d=o(e,["components","mdxType","originalType","parentName"]),u=i(r),b=n,y=u["".concat(s,".").concat(b)]||u[b]||p[b]||c;return r?a.createElement(y,l(l({ref:t},d),{},{components:r})):a.createElement(y,l({ref:t},d))}));function y(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var c=r.length,l=new Array(c);l[0]=b;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[u]="string"==typeof e?e:n,l[1]=o;for(var i=2;i{r.r(t),r.d(t,{Badge:()=>p,Bullet:()=>d,Details:()=>y,SpecifiedBy:()=>u,assets:()=>i,contentTitle:()=>o,default:()=>h,frontMatter:()=>l,metadata:()=>s,toc:()=>b});var a=r(87462),n=r(67294),c=r(3905);r(8209);const l={id:"shared-secrets",title:"SharedSecrets",hide_table_of_contents:!1},o=void 0,s={unversionedId:"build/api/schema/objects/shared-secrets",id:"build/api/schema/objects/shared-secrets",title:"SharedSecrets",description:"[SharedSecrets] represents the public shared secret information",source:"@site/docs/build/api/schema/objects/shared-secrets.mdx",sourceDirName:"build/api/schema/objects",slug:"/build/api/schema/objects/shared-secrets",permalink:"/build/api/schema/objects/shared-secrets",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"shared-secrets",title:"SharedSecrets",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"Recipient",permalink:"/build/api/schema/objects/recipient"},next:{title:"TokenBalance",permalink:"/build/api/schema/objects/token-balance"}},i={},d=()=>(0,c.kt)(n.Fragment,null,(0,c.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),u=e=>(0,c.kt)(n.Fragment,null,"Specification",(0,c.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),p=e=>(0,c.kt)(n.Fragment,null,(0,c.kt)("span",{className:e.class},e.text)),b=[{value:"Fields",id:"fields",level:3},{value:'SharedSecrets.storageNoncePublicKeyPublicKey ',id:"code-style-fontweight-normal-sharedsecretsbstoragenoncepublickeybcodepublickey-",level:4},{value:"Returned by",id:"returned-by",level:3}],y=e=>{let{dataOpen:t,dataClose:r,children:l,startOpen:o=!1}=e;const[s,i]=(0,n.useState)(o);return(0,c.kt)("details",(0,a.Z)({},s?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,c.kt)("summary",{onClick:e=>{e.preventDefault(),i((e=>!e))},style:{listStyle:"none"}},s?t:r),s&&l)},m={Bullet:d,SpecifiedBy:u,Badge:p,toc:b,Details:y},f="wrapper";function h(e){let{components:t,...r}=e;return(0,c.kt)(f,(0,a.Z)({},m,r,{components:t,mdxType:"MDXLayout"}),(0,c.kt)("p",null,"[SharedSecrets]"," represents the public shared secret information\nIt includes:"),(0,c.kt)("ul",null,(0,c.kt)("li",{parentName:"ul"},"The storage nonce public key: Public Key to encrypt data for the node, so they will be able to decrypt it (mostly for smart contract authorized key)")),(0,c.kt)("pre",null,(0,c.kt)("code",{parentName:"pre",className:"language-graphql"},"type SharedSecrets {\n storageNoncePublicKey: PublicKey\n}\n")),(0,c.kt)("h3",{id:"fields"},"Fields"),(0,c.kt)("h4",{id:"code-style-fontweight-normal-sharedsecretsbstoragenoncepublickeybcodepublickey-"},(0,c.kt)("a",{parentName:"h4",href:"#"},(0,c.kt)("code",{style:{fontWeight:"normal"}},"SharedSecrets.",(0,c.kt)("b",null,"storageNoncePublicKey"))),(0,c.kt)(d,{mdxType:"Bullet"}),(0,c.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/public-key"},(0,c.kt)("inlineCode",{parentName:"a"},"PublicKey"))," ",(0,c.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,c.kt)("blockquote",null),(0,c.kt)("h3",{id:"returned-by"},"Returned by"),(0,c.kt)("p",null,(0,c.kt)("a",{parentName:"p",href:"/build/api/schema/queries/shared-secrets"},(0,c.kt)("inlineCode",{parentName:"a"},"sharedSecrets"))," ",(0,c.kt)(p,{class:"badge badge--secondary",text:"query",mdxType:"Badge"})))}h.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3559],{3905:(e,t,r)=>{r.d(t,{Zo:()=>d,kt:()=>y});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function l(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=a.createContext({}),i=function(e){var t=a.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},d=function(e){var t=i(e.components);return a.createElement(s.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},b=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,c=e.originalType,s=e.parentName,d=o(e,["components","mdxType","originalType","parentName"]),u=i(r),b=n,y=u["".concat(s,".").concat(b)]||u[b]||p[b]||c;return r?a.createElement(y,l(l({ref:t},d),{},{components:r})):a.createElement(y,l({ref:t},d))}));function y(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var c=r.length,l=new Array(c);l[0]=b;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[u]="string"==typeof e?e:n,l[1]=o;for(var i=2;i{r.r(t),r.d(t,{Badge:()=>p,Bullet:()=>d,Details:()=>y,SpecifiedBy:()=>u,assets:()=>i,contentTitle:()=>o,default:()=>h,frontMatter:()=>l,metadata:()=>s,toc:()=>b});var a=r(87462),n=r(67294),c=r(3905);r(8209);const l={id:"shared-secrets",title:"SharedSecrets",hide_table_of_contents:!1},o=void 0,s={unversionedId:"build/api/schema/objects/shared-secrets",id:"build/api/schema/objects/shared-secrets",title:"SharedSecrets",description:"[SharedSecrets] represents the public shared secret information",source:"@site/docs/build/api/schema/objects/shared-secrets.mdx",sourceDirName:"build/api/schema/objects",slug:"/build/api/schema/objects/shared-secrets",permalink:"/build/api/schema/objects/shared-secrets",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"shared-secrets",title:"SharedSecrets",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"Recipient",permalink:"/build/api/schema/objects/recipient"},next:{title:"TokenBalance",permalink:"/build/api/schema/objects/token-balance"}},i={},d=()=>(0,c.kt)(n.Fragment,null,(0,c.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),u=e=>(0,c.kt)(n.Fragment,null,"Specification",(0,c.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),p=e=>(0,c.kt)(n.Fragment,null,(0,c.kt)("span",{className:e.class},e.text)),b=[{value:"Fields",id:"fields",level:3},{value:'SharedSecrets.storageNoncePublicKeyPublicKey ',id:"code-style-fontweight-normal-sharedsecretsbstoragenoncepublickeybcodepublickey-",level:4},{value:"Returned by",id:"returned-by",level:3}],y=e=>{let{dataOpen:t,dataClose:r,children:l,startOpen:o=!1}=e;const[s,i]=(0,n.useState)(o);return(0,c.kt)("details",(0,a.Z)({},s?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,c.kt)("summary",{onClick:e=>{e.preventDefault(),i((e=>!e))},style:{listStyle:"none"}},s?t:r),s&&l)},m={Bullet:d,SpecifiedBy:u,Badge:p,toc:b,Details:y},f="wrapper";function h(e){let{components:t,...r}=e;return(0,c.kt)(f,(0,a.Z)({},m,r,{components:t,mdxType:"MDXLayout"}),(0,c.kt)("p",null,"[SharedSecrets]"," represents the public shared secret information\nIt includes:"),(0,c.kt)("ul",null,(0,c.kt)("li",{parentName:"ul"},"The storage nonce public key: Public Key to encrypt data for the node, so they will be able to decrypt it (mostly for smart contract authorized key)")),(0,c.kt)("pre",null,(0,c.kt)("code",{parentName:"pre",className:"language-graphql"},"type SharedSecrets {\n storageNoncePublicKey: PublicKey\n}\n")),(0,c.kt)("h3",{id:"fields"},"Fields"),(0,c.kt)("h4",{id:"code-style-fontweight-normal-sharedsecretsbstoragenoncepublickeybcodepublickey-"},(0,c.kt)("a",{parentName:"h4",href:"#"},(0,c.kt)("code",{style:{fontWeight:"normal"}},"SharedSecrets.",(0,c.kt)("b",null,"storageNoncePublicKey"))),(0,c.kt)(d,{mdxType:"Bullet"}),(0,c.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/public-key"},(0,c.kt)("inlineCode",{parentName:"a"},"PublicKey"))," ",(0,c.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,c.kt)("blockquote",null),(0,c.kt)("h3",{id:"returned-by"},"Returned by"),(0,c.kt)("p",null,(0,c.kt)("a",{parentName:"p",href:"/build/api/schema/queries/shared-secrets"},(0,c.kt)("inlineCode",{parentName:"a"},"sharedSecrets"))," ",(0,c.kt)(p,{class:"badge badge--secondary",text:"query",mdxType:"Badge"})))}h.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file diff --git a/assets/js/16c17b5d.a02c1db1.js b/assets/js/16c17b5d.c392d872.js similarity index 98% rename from assets/js/16c17b5d.a02c1db1.js rename to assets/js/16c17b5d.c392d872.js index 5675b3fe2..d64dae810 100644 --- a/assets/js/16c17b5d.a02c1db1.js +++ b/assets/js/16c17b5d.c392d872.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7741],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>h});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),c=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=c(n),m=r,h=d["".concat(l,".").concat(m)]||d[m]||u[m]||i;return n?a.createElement(h,o(o({ref:t},p),{},{components:n})):a.createElement(h,o({ref:t},p))}));function h(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,o=new Array(i);o[0]=m;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[d]="string"==typeof e?e:r,o[1]=s;for(var c=2;c{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>s,toc:()=>c});var a=n(87462),r=(n(67294),n(3905));n(8209);const i={id:"transaction-chain",title:"Transaction chains",sidebar_position:4},o=void 0,s={unversionedId:"learn/transaction-chain",id:"learn/transaction-chain",title:"Transaction chains",description:"In the Archethic network, there are no blocks but only transactions, as each block is reduced to its atomic form - transaction with its own validation evidences.",source:"@site/docs/learn/transaction-chain.md",sourceDirName:"learn",slug:"/learn/transaction-chain",permalink:"/learn/transaction-chain",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",sidebarPosition:4,frontMatter:{id:"transaction-chain",title:"Transaction chains",sidebar_position:4},sidebar:"docs",previous:{title:"Patents",permalink:"/learn/patents"},next:{title:"Transaction fees",permalink:"/learn/fee"}},l={},c=[{value:"Principles",id:"principles",level:2},{value:"Transaction structure",id:"transaction-structure",level:2}],p={toc:c},d="wrapper";function u(e){let{components:t,...n}=e;return(0,r.kt)(d,(0,a.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"In the Archethic network, there are no blocks but only transactions, as each block is reduced to its atomic form - ",(0,r.kt)("inlineCode",{parentName:"p"},"transaction")," with its own validation evidences."),(0,r.kt)("h2",{id:"principles"},"Principles"),(0,r.kt)("admonition",{title:"Liveness",type:"note"},(0,r.kt)("p",{parentName:"admonition"},"Each validated transaction is stored as a chain than can only be updated from the last validation transaction in the chain\nThe last transaction on a chain becomes the ",(0,r.kt)("em",{parentName:"p"},"authoritative")," transaction.")),(0,r.kt)("admonition",{title:"Quantum resistant",type:"note"},(0,r.kt)("p",{parentName:"admonition"},"For security reason, once the public key is disclosed, it is considered as expired, only the hash of the public key of the next transaction(aka ",(0,r.kt)("inlineCode",{parentName:"p"},"address"),") is announced.\nThis allows the next public key to be kept until the next transaction on the chain.")),(0,r.kt)("admonition",{title:"Address resolution",type:"note"},(0,r.kt)("p",{parentName:"admonition"},"Any addresses of a transaction chain can be used as destination address.\nIt's not necessary to specify the last transaction address in the chain.")),(0,r.kt)("admonition",{title:"Stateless transactions",type:"note"},(0,r.kt)("p",{parentName:"admonition"},"Transaction are using an ",(0,r.kt)("em",{parentName:"p"},"UTXO")," (Unspent Transaction Output) model so, a transaction cannot change state.\nThere is no reality outside the validated transactions")),(0,r.kt)("admonition",{title:"UTXO mining",type:"note"},(0,r.kt)("p",{parentName:"admonition"},"List of unspent outputs does not need to be specified by the sender of the transaction\nall unspent outputs will be reintegrated directly into the last transaction.")),(0,r.kt)("h2",{id:"transaction-structure"},"Transaction structure"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("h3",{parentName:"li",id:"pending-transaction"},"Pending transaction"))),(0,r.kt)("p",null,"A pending transaction is a transaction that does not have validation.\nIts structure is described as below:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"|-----------|------|------|---------------------|--------------------|------------------|\n| Address | Type | Data | Previous public key | Previous signature | Origin signature |\n| --------- | ------- | -------- | ------------------- | ------------------ | ---------------- |\n| |\n| |\n| --------- | ------ | -------- | ------------ | ------------ |\n| Content | Code | Ledger | Ownerships | Recipients |\n| --------- | ------ | -------- | ------------ | ------------ |\n| |\n| |\n| ----- | ------- | | ----------------- | -------- |\n| UCO | Token | | Authorized keys | Secret |\n| ----- | ------- | | ----------------- | -------- |\n\n\n")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Address: Corresponds to the hash of the public key of the transaction")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Type: Defines the functional role of the transaction")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Data: Contains all the operations to be performed (transfers, smart contracts, key authorizations, etc.)"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Content: Can contain any kind of data. It can be used to host some data (HTML page, text, image, code, etc.)"),(0,r.kt)("li",{parentName:"ul"},"Code: Defines the smart contract code to be interpreted by the node. More details on ",(0,r.kt)("a",{parentName:"li",href:"/build/smart-contracts"},"Smart-Contracts")," section."),(0,r.kt)("li",{parentName:"ul"},"Ledger: Defines several types of ledger operations",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"UCO: for the cryptocurrency transfers"),(0,r.kt)("li",{parentName:"ul"},"Token: for non-financial transactions (intended for P2P uses - as tokens, loyalties, etc.)"))),(0,r.kt)("li",{parentName:"ul"},"Ownerships: Define some cryptographic authorizations and delegations",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Authorized keys: list of authorized keys to be able to decrypt secrets"),(0,r.kt)("li",{parentName:"ul"},"Secrets: Encrypted contents which can be decrypted by the authorized keys"))),(0,r.kt)("li",{parentName:"ul"},"Recipients: Additional recipients to target smart contracts"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Previous public key: Corresponds to the public key associated to the previous transaction")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Previous signature: Corresponds to the signature of the private key associated with the mentioned previous public key")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Origin signature: Corresponds to the signature of the device or software that generated the transaction. This is used on the ",(0,r.kt)("a",{parentName:"p",href:"/learn/arch-consensus/proof-of-work"},"Proof Of Work")," mechanism and is a necessary condition of its validation.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("h3",{parentName:"li",id:"validated-transaction"},"Validated transaction"))),(0,r.kt)("p",null,"A validated transaction is a pending transaction completed with the validation proofs required by the Heuristic Algorithms.\nThose are defined by the given structure:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"|------------------|-------------------------|\n| Validation Stamp | Cross Validation Stamps |\n| ---------------- | ----------------------- |\n| |\n| | ----------------- | ----------- |\n| | Node public key | Signature |\n| | ----------------- | ----------- |\n| |\n| ----------- | --------------- | -------------------- | ------------------- | ------------------- | ------------ | -------- | ----------- |\n| Timestamp | Proof of Work | Proof of Integrity | Proof of Election | Ledger Operations | Recipients | Errors | Signature |\n| ----------- | --------------- | -------------------- | ------------------- | ------------------- | ------------ | -------- | ----------- |\n| |\n| ----- | ----------------------- | ----------------- |\n| Fee | Transaction movements | Unspent outputs |\n| ----- | ----------------------- | ----------------- |\n\n")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Validation Stamp: Stamp generated by the coordinator node",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Proof of work: Corresponds to the public key matching the origin signature (More details on the ",(0,r.kt)("a",{parentName:"li",href:"/learn/arch-consensus/proof-of-work"},"Proof of Work")," section)."),(0,r.kt)("li",{parentName:"ul"},"Proof of integrity: Proves the linkage of the previous transactions"),(0,r.kt)("li",{parentName:"ul"},"Proof of election: Proves the validation node's rotating election and permit to reproduce it later (See ",(0,r.kt)("a",{parentName:"li",href:"/learn/arch-consensus#rotating-election"},"Rotating Election"),")"),(0,r.kt)("li",{parentName:"ul"},"Ledger operations: Contains all the ledger operations that will be taken into account by the network",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"fee: Transaction's fee"),(0,r.kt)("li",{parentName:"ul"},"transaction movements: Issuer and resolved transaction movements"),(0,r.kt)("li",{parentName:"ul"},"Unspent outputs: List of the remaining unspent outputs of the transaction chain after validation"))),(0,r.kt)("li",{parentName:"ul"},"Recipients: List of resolved addresses of the recipients"),(0,r.kt)("li",{parentName:"ul"},"Errors: Any errors found in the validation (i.e. pending transaction error)"),(0,r.kt)("li",{parentName:"ul"},"Signature: Cryptographic signature of the entire stamp by the coordinator's key"))),(0,r.kt)("li",{parentName:"ul"},"Cross validation stamps: To be considered as validated, the ",(0,r.kt)("inlineCode",{parentName:"li"},"Validation Stamp")," must be joined as many ",(0,r.kt)("inlineCode",{parentName:"li"},"Cross Validation Stamp")," as required by the Heuristic Algorithms.\nThey are signatures of the given validation stamp.",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Node public key: Correspond to the node's public key which generate this ",(0,r.kt)("inlineCode",{parentName:"li"},"Cross Validation Stamp"),"'s signature"),(0,r.kt)("li",{parentName:"ul"},"Signature: Correspond to the signature of the ",(0,r.kt)("inlineCode",{parentName:"li"},"Cross Validation Stamp")," for the mentioned public key"),(0,r.kt)("li",{parentName:"ul"},"Inconsistencies: In case of inconsistencies or disagreement, it will contain a list of inconsistencies noted")))))}u.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7741],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>h});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),c=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=c(n),m=r,h=d["".concat(l,".").concat(m)]||d[m]||u[m]||i;return n?a.createElement(h,o(o({ref:t},p),{},{components:n})):a.createElement(h,o({ref:t},p))}));function h(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,o=new Array(i);o[0]=m;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[d]="string"==typeof e?e:r,o[1]=s;for(var c=2;c{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>s,toc:()=>c});var a=n(87462),r=(n(67294),n(3905));n(8209);const i={id:"transaction-chain",title:"Transaction chains",sidebar_position:4},o=void 0,s={unversionedId:"learn/transaction-chain",id:"learn/transaction-chain",title:"Transaction chains",description:"In the Archethic network, there are no blocks but only transactions, as each block is reduced to its atomic form - transaction with its own validation evidences.",source:"@site/docs/learn/transaction-chain.md",sourceDirName:"learn",slug:"/learn/transaction-chain",permalink:"/learn/transaction-chain",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",sidebarPosition:4,frontMatter:{id:"transaction-chain",title:"Transaction chains",sidebar_position:4},sidebar:"docs",previous:{title:"Patents",permalink:"/learn/patents"},next:{title:"Transaction fees",permalink:"/learn/fee"}},l={},c=[{value:"Principles",id:"principles",level:2},{value:"Transaction structure",id:"transaction-structure",level:2}],p={toc:c},d="wrapper";function u(e){let{components:t,...n}=e;return(0,r.kt)(d,(0,a.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"In the Archethic network, there are no blocks but only transactions, as each block is reduced to its atomic form - ",(0,r.kt)("inlineCode",{parentName:"p"},"transaction")," with its own validation evidences."),(0,r.kt)("h2",{id:"principles"},"Principles"),(0,r.kt)("admonition",{title:"Liveness",type:"note"},(0,r.kt)("p",{parentName:"admonition"},"Each validated transaction is stored as a chain than can only be updated from the last validation transaction in the chain\nThe last transaction on a chain becomes the ",(0,r.kt)("em",{parentName:"p"},"authoritative")," transaction.")),(0,r.kt)("admonition",{title:"Quantum resistant",type:"note"},(0,r.kt)("p",{parentName:"admonition"},"For security reason, once the public key is disclosed, it is considered as expired, only the hash of the public key of the next transaction(aka ",(0,r.kt)("inlineCode",{parentName:"p"},"address"),") is announced.\nThis allows the next public key to be kept until the next transaction on the chain.")),(0,r.kt)("admonition",{title:"Address resolution",type:"note"},(0,r.kt)("p",{parentName:"admonition"},"Any addresses of a transaction chain can be used as destination address.\nIt's not necessary to specify the last transaction address in the chain.")),(0,r.kt)("admonition",{title:"Stateless transactions",type:"note"},(0,r.kt)("p",{parentName:"admonition"},"Transaction are using an ",(0,r.kt)("em",{parentName:"p"},"UTXO")," (Unspent Transaction Output) model so, a transaction cannot change state.\nThere is no reality outside the validated transactions")),(0,r.kt)("admonition",{title:"UTXO mining",type:"note"},(0,r.kt)("p",{parentName:"admonition"},"List of unspent outputs does not need to be specified by the sender of the transaction\nall unspent outputs will be reintegrated directly into the last transaction.")),(0,r.kt)("h2",{id:"transaction-structure"},"Transaction structure"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("h3",{parentName:"li",id:"pending-transaction"},"Pending transaction"))),(0,r.kt)("p",null,"A pending transaction is a transaction that does not have validation.\nIts structure is described as below:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"|-----------|------|------|---------------------|--------------------|------------------|\n| Address | Type | Data | Previous public key | Previous signature | Origin signature |\n| --------- | ------- | -------- | ------------------- | ------------------ | ---------------- |\n| |\n| |\n| --------- | ------ | -------- | ------------ | ------------ |\n| Content | Code | Ledger | Ownerships | Recipients |\n| --------- | ------ | -------- | ------------ | ------------ |\n| |\n| |\n| ----- | ------- | | ----------------- | -------- |\n| UCO | Token | | Authorized keys | Secret |\n| ----- | ------- | | ----------------- | -------- |\n\n\n")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Address: Corresponds to the hash of the public key of the transaction")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Type: Defines the functional role of the transaction")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Data: Contains all the operations to be performed (transfers, smart contracts, key authorizations, etc.)"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Content: Can contain any kind of data. It can be used to host some data (HTML page, text, image, code, etc.)"),(0,r.kt)("li",{parentName:"ul"},"Code: Defines the smart contract code to be interpreted by the node. More details on ",(0,r.kt)("a",{parentName:"li",href:"/build/smart-contracts"},"Smart-Contracts")," section."),(0,r.kt)("li",{parentName:"ul"},"Ledger: Defines several types of ledger operations",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"UCO: for the cryptocurrency transfers"),(0,r.kt)("li",{parentName:"ul"},"Token: for non-financial transactions (intended for P2P uses - as tokens, loyalties, etc.)"))),(0,r.kt)("li",{parentName:"ul"},"Ownerships: Define some cryptographic authorizations and delegations",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Authorized keys: list of authorized keys to be able to decrypt secrets"),(0,r.kt)("li",{parentName:"ul"},"Secrets: Encrypted contents which can be decrypted by the authorized keys"))),(0,r.kt)("li",{parentName:"ul"},"Recipients: Additional recipients to target smart contracts"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Previous public key: Corresponds to the public key associated to the previous transaction")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Previous signature: Corresponds to the signature of the private key associated with the mentioned previous public key")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Origin signature: Corresponds to the signature of the device or software that generated the transaction. This is used on the ",(0,r.kt)("a",{parentName:"p",href:"/learn/arch-consensus/proof-of-work"},"Proof Of Work")," mechanism and is a necessary condition of its validation.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("h3",{parentName:"li",id:"validated-transaction"},"Validated transaction"))),(0,r.kt)("p",null,"A validated transaction is a pending transaction completed with the validation proofs required by the Heuristic Algorithms.\nThose are defined by the given structure:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"|------------------|-------------------------|\n| Validation Stamp | Cross Validation Stamps |\n| ---------------- | ----------------------- |\n| |\n| | ----------------- | ----------- |\n| | Node public key | Signature |\n| | ----------------- | ----------- |\n| |\n| ----------- | --------------- | -------------------- | ------------------- | ------------------- | ------------ | -------- | ----------- |\n| Timestamp | Proof of Work | Proof of Integrity | Proof of Election | Ledger Operations | Recipients | Errors | Signature |\n| ----------- | --------------- | -------------------- | ------------------- | ------------------- | ------------ | -------- | ----------- |\n| |\n| ----- | ----------------------- | ----------------- |\n| Fee | Transaction movements | Unspent outputs |\n| ----- | ----------------------- | ----------------- |\n\n")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Validation Stamp: Stamp generated by the coordinator node",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Proof of work: Corresponds to the public key matching the origin signature (More details on the ",(0,r.kt)("a",{parentName:"li",href:"/learn/arch-consensus/proof-of-work"},"Proof of Work")," section)."),(0,r.kt)("li",{parentName:"ul"},"Proof of integrity: Proves the linkage of the previous transactions"),(0,r.kt)("li",{parentName:"ul"},"Proof of election: Proves the validation node's rotating election and permit to reproduce it later (See ",(0,r.kt)("a",{parentName:"li",href:"/learn/arch-consensus#rotating-election"},"Rotating Election"),")"),(0,r.kt)("li",{parentName:"ul"},"Ledger operations: Contains all the ledger operations that will be taken into account by the network",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"fee: Transaction's fee"),(0,r.kt)("li",{parentName:"ul"},"transaction movements: Issuer and resolved transaction movements"),(0,r.kt)("li",{parentName:"ul"},"Unspent outputs: List of the remaining unspent outputs of the transaction chain after validation"))),(0,r.kt)("li",{parentName:"ul"},"Recipients: List of resolved addresses of the recipients"),(0,r.kt)("li",{parentName:"ul"},"Errors: Any errors found in the validation (i.e. pending transaction error)"),(0,r.kt)("li",{parentName:"ul"},"Signature: Cryptographic signature of the entire stamp by the coordinator's key"))),(0,r.kt)("li",{parentName:"ul"},"Cross validation stamps: To be considered as validated, the ",(0,r.kt)("inlineCode",{parentName:"li"},"Validation Stamp")," must be joined as many ",(0,r.kt)("inlineCode",{parentName:"li"},"Cross Validation Stamp")," as required by the Heuristic Algorithms.\nThey are signatures of the given validation stamp.",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Node public key: Correspond to the node's public key which generate this ",(0,r.kt)("inlineCode",{parentName:"li"},"Cross Validation Stamp"),"'s signature"),(0,r.kt)("li",{parentName:"ul"},"Signature: Correspond to the signature of the ",(0,r.kt)("inlineCode",{parentName:"li"},"Cross Validation Stamp")," for the mentioned public key"),(0,r.kt)("li",{parentName:"ul"},"Inconsistencies: In case of inconsistencies or disagreement, it will contain a list of inconsistencies noted")))))}u.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/16e43f8e.302bdc48.js b/assets/js/16e43f8e.d4649320.js similarity index 98% rename from assets/js/16e43f8e.302bdc48.js rename to assets/js/16e43f8e.d4649320.js index 5fe2462b0..e9b6071b5 100644 --- a/assets/js/16e43f8e.302bdc48.js +++ b/assets/js/16e43f8e.d4649320.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2282],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>g});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),c=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},d=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,s=e.originalType,l=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),p=c(n),m=r,g=p["".concat(l,".").concat(m)]||p[m]||u[m]||s;return n?a.createElement(g,o(o({ref:t},d),{},{components:n})):a.createElement(g,o({ref:t},d))}));function g(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var s=n.length,o=new Array(s);o[0]=m;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[p]="string"==typeof e?e:r,o[1]=i;for(var c=2;c{n.r(t),n.d(t,{Badge:()=>u,Bullet:()=>d,Details:()=>g,SpecifiedBy:()=>p,assets:()=>c,contentTitle:()=>i,default:()=>k,frontMatter:()=>o,metadata:()=>l,toc:()=>m});var a=n(87462),r=n(67294),s=n(3905);n(8209);const o={id:"transaction-inputs",title:"transactionInputs",hide_table_of_contents:!1},i=void 0,l={unversionedId:"build/api/schema/queries/transaction-inputs",id:"build/api/schema/queries/transaction-inputs",title:"transactionInputs",description:"Query the network to list the transaction inputs from an address",source:"@site/docs/build/api/schema/queries/transaction-inputs.mdx",sourceDirName:"build/api/schema/queries",slug:"/build/api/schema/queries/transaction-inputs",permalink:"/build/api/schema/queries/transaction-inputs",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"transaction-inputs",title:"transactionInputs",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"transactionChain",permalink:"/build/api/schema/queries/transaction-chain"},next:{title:"transaction",permalink:"/build/api/schema/queries/transaction"}},c={},d=()=>(0,s.kt)(r.Fragment,null,(0,s.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=e=>(0,s.kt)(r.Fragment,null,"Specification",(0,s.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,s.kt)(r.Fragment,null,(0,s.kt)("span",{className:e.class},e.text)),m=[{value:"Arguments",id:"arguments",level:3},{value:'transactionInputs.addressAddress! ',id:"code-style-fontweight-normal-transactioninputsbaddressbcodeaddress--",level:4},{value:'transactionInputs.limitPosInteger ',id:"code-style-fontweight-normal-transactioninputsblimitbcodeposinteger-",level:4},{value:'transactionInputs.pagingOffsetNonNegInteger ',id:"code-style-fontweight-normal-transactioninputsbpagingoffsetbcodenonneginteger-",level:4},{value:"Type",id:"type",level:3},{value:'TransactionInput ',id:"transactioninput-",level:4}],g=e=>{let{dataOpen:t,dataClose:n,children:o,startOpen:i=!1}=e;const[l,c]=(0,r.useState)(i);return(0,s.kt)("details",(0,a.Z)({},l?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,s.kt)("summary",{onClick:e=>{e.preventDefault(),c((e=>!e))},style:{listStyle:"none"}},l?t:n),l&&o)},b={Bullet:d,SpecifiedBy:p,Badge:u,toc:m,Details:g},f="wrapper";function k(e){let{components:t,...n}=e;return(0,s.kt)(f,(0,a.Z)({},b,n,{components:t,mdxType:"MDXLayout"}),(0,s.kt)("p",null,"Query the network to list the transaction inputs from an address"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-graphql"},"transactionInputs(\n address: Address!\n limit: PosInteger\n pagingOffset: NonNegInteger\n): [TransactionInput]\n")),(0,s.kt)("h3",{id:"arguments"},"Arguments"),(0,s.kt)("h4",{id:"code-style-fontweight-normal-transactioninputsbaddressbcodeaddress--"},(0,s.kt)("a",{parentName:"h4",href:"#"},(0,s.kt)("code",{style:{fontWeight:"normal"}},"transactionInputs.",(0,s.kt)("b",null,"address"))),(0,s.kt)(d,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/address"},(0,s.kt)("inlineCode",{parentName:"a"},"Address!"))," ",(0,s.kt)(u,{class:"badge badge--secondary",text:"non-null",mdxType:"Badge"})," ",(0,s.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,s.kt)("blockquote",null),(0,s.kt)("h4",{id:"code-style-fontweight-normal-transactioninputsblimitbcodeposinteger-"},(0,s.kt)("a",{parentName:"h4",href:"#"},(0,s.kt)("code",{style:{fontWeight:"normal"}},"transactionInputs.",(0,s.kt)("b",null,"limit"))),(0,s.kt)(d,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/pos-integer"},(0,s.kt)("inlineCode",{parentName:"a"},"PosInteger"))," ",(0,s.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,s.kt)("blockquote",null),(0,s.kt)("h4",{id:"code-style-fontweight-normal-transactioninputsbpagingoffsetbcodenonneginteger-"},(0,s.kt)("a",{parentName:"h4",href:"#"},(0,s.kt)("code",{style:{fontWeight:"normal"}},"transactionInputs.",(0,s.kt)("b",null,"pagingOffset"))),(0,s.kt)(d,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/non-neg-integer"},(0,s.kt)("inlineCode",{parentName:"a"},"NonNegInteger"))," ",(0,s.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,s.kt)("blockquote",null),(0,s.kt)("h3",{id:"type"},"Type"),(0,s.kt)("h4",{id:"transactioninput-"},(0,s.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/transaction-input"},(0,s.kt)("inlineCode",{parentName:"a"},"TransactionInput"))," ",(0,s.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,s.kt)("blockquote",null,(0,s.kt)("p",{parentName:"blockquote"},"[TransactionInput]"," represents the inputs from the transaction\nIt includes:"),(0,s.kt)("ul",{parentName:"blockquote"},(0,s.kt)("li",{parentName:"ul"},"From: transaction which send the amount of assets"),(0,s.kt)("li",{parentName:"ul"},"Amount: asset amount"),(0,s.kt)("li",{parentName:"ul"},"Type: UCO/token/Call"),(0,s.kt)("li",{parentName:"ul"},"token address: address of the token if the type is token"),(0,s.kt)("li",{parentName:"ul"},"Spent: determines if the input has been spent"),(0,s.kt)("li",{parentName:"ul"},"Timestamp: Date time when the inputs was generated"),(0,s.kt)("li",{parentName:"ul"},"token id: It is the id for a token which is allocated when the token is minted."))))}k.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2282],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>g});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),c=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},d=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,s=e.originalType,l=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),p=c(n),m=r,g=p["".concat(l,".").concat(m)]||p[m]||u[m]||s;return n?a.createElement(g,o(o({ref:t},d),{},{components:n})):a.createElement(g,o({ref:t},d))}));function g(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var s=n.length,o=new Array(s);o[0]=m;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[p]="string"==typeof e?e:r,o[1]=i;for(var c=2;c{n.r(t),n.d(t,{Badge:()=>u,Bullet:()=>d,Details:()=>g,SpecifiedBy:()=>p,assets:()=>c,contentTitle:()=>i,default:()=>k,frontMatter:()=>o,metadata:()=>l,toc:()=>m});var a=n(87462),r=n(67294),s=n(3905);n(8209);const o={id:"transaction-inputs",title:"transactionInputs",hide_table_of_contents:!1},i=void 0,l={unversionedId:"build/api/schema/queries/transaction-inputs",id:"build/api/schema/queries/transaction-inputs",title:"transactionInputs",description:"Query the network to list the transaction inputs from an address",source:"@site/docs/build/api/schema/queries/transaction-inputs.mdx",sourceDirName:"build/api/schema/queries",slug:"/build/api/schema/queries/transaction-inputs",permalink:"/build/api/schema/queries/transaction-inputs",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"transaction-inputs",title:"transactionInputs",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"transactionChain",permalink:"/build/api/schema/queries/transaction-chain"},next:{title:"transaction",permalink:"/build/api/schema/queries/transaction"}},c={},d=()=>(0,s.kt)(r.Fragment,null,(0,s.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=e=>(0,s.kt)(r.Fragment,null,"Specification",(0,s.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,s.kt)(r.Fragment,null,(0,s.kt)("span",{className:e.class},e.text)),m=[{value:"Arguments",id:"arguments",level:3},{value:'transactionInputs.addressAddress! ',id:"code-style-fontweight-normal-transactioninputsbaddressbcodeaddress--",level:4},{value:'transactionInputs.limitPosInteger ',id:"code-style-fontweight-normal-transactioninputsblimitbcodeposinteger-",level:4},{value:'transactionInputs.pagingOffsetNonNegInteger ',id:"code-style-fontweight-normal-transactioninputsbpagingoffsetbcodenonneginteger-",level:4},{value:"Type",id:"type",level:3},{value:'TransactionInput ',id:"transactioninput-",level:4}],g=e=>{let{dataOpen:t,dataClose:n,children:o,startOpen:i=!1}=e;const[l,c]=(0,r.useState)(i);return(0,s.kt)("details",(0,a.Z)({},l?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,s.kt)("summary",{onClick:e=>{e.preventDefault(),c((e=>!e))},style:{listStyle:"none"}},l?t:n),l&&o)},b={Bullet:d,SpecifiedBy:p,Badge:u,toc:m,Details:g},f="wrapper";function k(e){let{components:t,...n}=e;return(0,s.kt)(f,(0,a.Z)({},b,n,{components:t,mdxType:"MDXLayout"}),(0,s.kt)("p",null,"Query the network to list the transaction inputs from an address"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-graphql"},"transactionInputs(\n address: Address!\n limit: PosInteger\n pagingOffset: NonNegInteger\n): [TransactionInput]\n")),(0,s.kt)("h3",{id:"arguments"},"Arguments"),(0,s.kt)("h4",{id:"code-style-fontweight-normal-transactioninputsbaddressbcodeaddress--"},(0,s.kt)("a",{parentName:"h4",href:"#"},(0,s.kt)("code",{style:{fontWeight:"normal"}},"transactionInputs.",(0,s.kt)("b",null,"address"))),(0,s.kt)(d,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/address"},(0,s.kt)("inlineCode",{parentName:"a"},"Address!"))," ",(0,s.kt)(u,{class:"badge badge--secondary",text:"non-null",mdxType:"Badge"})," ",(0,s.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,s.kt)("blockquote",null),(0,s.kt)("h4",{id:"code-style-fontweight-normal-transactioninputsblimitbcodeposinteger-"},(0,s.kt)("a",{parentName:"h4",href:"#"},(0,s.kt)("code",{style:{fontWeight:"normal"}},"transactionInputs.",(0,s.kt)("b",null,"limit"))),(0,s.kt)(d,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/pos-integer"},(0,s.kt)("inlineCode",{parentName:"a"},"PosInteger"))," ",(0,s.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,s.kt)("blockquote",null),(0,s.kt)("h4",{id:"code-style-fontweight-normal-transactioninputsbpagingoffsetbcodenonneginteger-"},(0,s.kt)("a",{parentName:"h4",href:"#"},(0,s.kt)("code",{style:{fontWeight:"normal"}},"transactionInputs.",(0,s.kt)("b",null,"pagingOffset"))),(0,s.kt)(d,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/non-neg-integer"},(0,s.kt)("inlineCode",{parentName:"a"},"NonNegInteger"))," ",(0,s.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,s.kt)("blockquote",null),(0,s.kt)("h3",{id:"type"},"Type"),(0,s.kt)("h4",{id:"transactioninput-"},(0,s.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/transaction-input"},(0,s.kt)("inlineCode",{parentName:"a"},"TransactionInput"))," ",(0,s.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,s.kt)("blockquote",null,(0,s.kt)("p",{parentName:"blockquote"},"[TransactionInput]"," represents the inputs from the transaction\nIt includes:"),(0,s.kt)("ul",{parentName:"blockquote"},(0,s.kt)("li",{parentName:"ul"},"From: transaction which send the amount of assets"),(0,s.kt)("li",{parentName:"ul"},"Amount: asset amount"),(0,s.kt)("li",{parentName:"ul"},"Type: UCO/token/Call"),(0,s.kt)("li",{parentName:"ul"},"token address: address of the token if the type is token"),(0,s.kt)("li",{parentName:"ul"},"Spent: determines if the input has been spent"),(0,s.kt)("li",{parentName:"ul"},"Timestamp: Date time when the inputs was generated"),(0,s.kt)("li",{parentName:"ul"},"token id: It is the id for a token which is allocated when the token is minted."))))}k.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/1735c347.b655972c.js b/assets/js/1735c347.a9889805.js similarity index 98% rename from assets/js/1735c347.b655972c.js rename to assets/js/1735c347.a9889805.js index c905ff424..22b2478f9 100644 --- a/assets/js/1735c347.b655972c.js +++ b/assets/js/1735c347.a9889805.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8087],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>m});var i=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function a(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=i.createContext({}),c=function(e){var t=i.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},u=function(e){var t=c(e.components);return i.createElement(l.Provider,{value:t},e.children)},d="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},p=i.forwardRef((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),d=c(n),p=o,m=d["".concat(l,".").concat(p)]||d[p]||h[p]||r;return n?i.createElement(m,a(a({ref:t},u),{},{components:n})):i.createElement(m,a({ref:t},u))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,a=new Array(r);a[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[d]="string"==typeof e?e:o,a[1]=s;for(var c=2;c{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>r,metadata:()=>s,toc:()=>c});var i=n(87462),o=(n(67294),n(3905));n(8209);const r={id:"archethic-intro",title:"Archethic introduction",sidebar_label:"Learn",sidebar_position:1},a=void 0,s={unversionedId:"learn/archethic-intro",id:"learn/archethic-intro",title:"Archethic introduction",description:"Archethic is the next generation of Blockchain which provides a truly decentralized limitless network, using TransactionChain and a new consensus named ARCH (Atomic Rotating Commitment Heuristic),",source:"@site/docs/learn/README.md",sourceDirName:"learn",slug:"/learn/",permalink:"/learn/",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",sidebarPosition:1,frontMatter:{id:"archethic-intro",title:"Archethic introduction",sidebar_label:"Learn",sidebar_position:1},sidebar:"docs",next:{title:"UCO token",permalink:"/learn/uco"}},l={},c=[{value:"Motivations",id:"motivations",level:2},{value:"Innovations",id:"innovations",level:2}],u={toc:c},d="wrapper";function h(e){let{components:t,...n}=e;return(0,o.kt)(d,(0,i.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Archethic is the next generation of Blockchain which provides a truly decentralized limitless network, using TransactionChain and a new consensus named ARCH (Atomic Rotating Commitment Heuristic),\nto be the most secure and scalable decentralized network."),(0,o.kt)("hr",null),(0,o.kt)("p",null,"Archethic's network is built to overcome the issues faced by other blockchain solutions:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Support of billions of transactions"),(0,o.kt)("li",{parentName:"ul"},"Linear scalability"),(0,o.kt)("li",{parentName:"ul"},"Low-energy consumption"),(0,o.kt)("li",{parentName:"ul"},"Mass adoption"),(0,o.kt)("li",{parentName:"ul"},"Low transaction fees")),(0,o.kt)("p",null,"This document aims to provide information and resources about the technology and the usage to build new decentralized applications on top of Archethic."),(0,o.kt)("h2",{id:"motivations"},"Motivations"),(0,o.kt)("p",null,"Given the universal constraints both material and physical, billions of transactions cannot be integrated into a single branch of chained blocks."),(0,o.kt)("p",null,"Similarly, regardless of the consensus method, it is not possible to ensure universal consensus on billions of transactions by polling all nodes of the network."),(0,o.kt)("p",null,"Finally, the functioning of current distributed networks (P2P) is such that it is not possible to guarantee the freshness (consistency) of data on an asynchronous network,\nunless the network is slowed down excessively by the calculation of the nonce of the block (PoW), as is the case with other blockchain networks."),(0,o.kt)("h2",{id:"innovations"},"Innovations"),(0,o.kt)("p",null,"Archethic Blockchain solved this issues in the following way:"),(0,o.kt)("details",null,(0,o.kt)("summary",null,"TransactionChains"),"Instead of chained blocks of transactions, each block is reduced to its atomic form.",(0,o.kt)("br",null),"Therefore, each block contains only one transaction and each transaction will be chained in its own chain."),(0,o.kt)("details",null,(0,o.kt)("summary",null,"Real Sharded Network"),"Archethic is using sharding technology to ensure distribution of transaction processing and storage to provide a very high scalability."),(0,o.kt)("details",null,(0,o.kt)("summary",null,"Next-generation consensus"),"Archethic is using an universal consensus called ARCH based on Atomic Commitment using Heuristic Rotating election of a tiny set of validation nodes providing the highest level of security"),(0,o.kt)("details",null,(0,o.kt)("summary",null,"Optimized Replication and Self Repair"),"Every transaction will be stored in a deterministic way on a set of nodes using a sharded storage layer.",(0,o.kt)("br",null),"Thus, every node will autonomously know all the nodes for a given transaction and ease the network by only interrogating the closest elected nodes."),(0,o.kt)("details",null,(0,o.kt)("summary",null,"Distributed network without bottleneck"),"Archethic rebuilds the entire P2P layer to provide an efficient messaging between peers based on the Supervised Multicast using self discovery mechanism from incoming connection and network transactions.",(0,o.kt)("br",null),"The system is able to maintain a qualified vision of the network while limiting the generation of requests."))}h.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8087],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>m});var i=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function a(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=i.createContext({}),c=function(e){var t=i.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},u=function(e){var t=c(e.components);return i.createElement(l.Provider,{value:t},e.children)},d="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},p=i.forwardRef((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),d=c(n),p=o,m=d["".concat(l,".").concat(p)]||d[p]||h[p]||r;return n?i.createElement(m,a(a({ref:t},u),{},{components:n})):i.createElement(m,a({ref:t},u))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,a=new Array(r);a[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[d]="string"==typeof e?e:o,a[1]=s;for(var c=2;c{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>r,metadata:()=>s,toc:()=>c});var i=n(87462),o=(n(67294),n(3905));n(8209);const r={id:"archethic-intro",title:"Archethic introduction",sidebar_label:"Learn",sidebar_position:1},a=void 0,s={unversionedId:"learn/archethic-intro",id:"learn/archethic-intro",title:"Archethic introduction",description:"Archethic is the next generation of Blockchain which provides a truly decentralized limitless network, using TransactionChain and a new consensus named ARCH (Atomic Rotating Commitment Heuristic),",source:"@site/docs/learn/README.md",sourceDirName:"learn",slug:"/learn/",permalink:"/learn/",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",sidebarPosition:1,frontMatter:{id:"archethic-intro",title:"Archethic introduction",sidebar_label:"Learn",sidebar_position:1},sidebar:"docs",next:{title:"UCO token",permalink:"/learn/uco"}},l={},c=[{value:"Motivations",id:"motivations",level:2},{value:"Innovations",id:"innovations",level:2}],u={toc:c},d="wrapper";function h(e){let{components:t,...n}=e;return(0,o.kt)(d,(0,i.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Archethic is the next generation of Blockchain which provides a truly decentralized limitless network, using TransactionChain and a new consensus named ARCH (Atomic Rotating Commitment Heuristic),\nto be the most secure and scalable decentralized network."),(0,o.kt)("hr",null),(0,o.kt)("p",null,"Archethic's network is built to overcome the issues faced by other blockchain solutions:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Support of billions of transactions"),(0,o.kt)("li",{parentName:"ul"},"Linear scalability"),(0,o.kt)("li",{parentName:"ul"},"Low-energy consumption"),(0,o.kt)("li",{parentName:"ul"},"Mass adoption"),(0,o.kt)("li",{parentName:"ul"},"Low transaction fees")),(0,o.kt)("p",null,"This document aims to provide information and resources about the technology and the usage to build new decentralized applications on top of Archethic."),(0,o.kt)("h2",{id:"motivations"},"Motivations"),(0,o.kt)("p",null,"Given the universal constraints both material and physical, billions of transactions cannot be integrated into a single branch of chained blocks."),(0,o.kt)("p",null,"Similarly, regardless of the consensus method, it is not possible to ensure universal consensus on billions of transactions by polling all nodes of the network."),(0,o.kt)("p",null,"Finally, the functioning of current distributed networks (P2P) is such that it is not possible to guarantee the freshness (consistency) of data on an asynchronous network,\nunless the network is slowed down excessively by the calculation of the nonce of the block (PoW), as is the case with other blockchain networks."),(0,o.kt)("h2",{id:"innovations"},"Innovations"),(0,o.kt)("p",null,"Archethic Blockchain solved this issues in the following way:"),(0,o.kt)("details",null,(0,o.kt)("summary",null,"TransactionChains"),"Instead of chained blocks of transactions, each block is reduced to its atomic form.",(0,o.kt)("br",null),"Therefore, each block contains only one transaction and each transaction will be chained in its own chain."),(0,o.kt)("details",null,(0,o.kt)("summary",null,"Real Sharded Network"),"Archethic is using sharding technology to ensure distribution of transaction processing and storage to provide a very high scalability."),(0,o.kt)("details",null,(0,o.kt)("summary",null,"Next-generation consensus"),"Archethic is using an universal consensus called ARCH based on Atomic Commitment using Heuristic Rotating election of a tiny set of validation nodes providing the highest level of security"),(0,o.kt)("details",null,(0,o.kt)("summary",null,"Optimized Replication and Self Repair"),"Every transaction will be stored in a deterministic way on a set of nodes using a sharded storage layer.",(0,o.kt)("br",null),"Thus, every node will autonomously know all the nodes for a given transaction and ease the network by only interrogating the closest elected nodes."),(0,o.kt)("details",null,(0,o.kt)("summary",null,"Distributed network without bottleneck"),"Archethic rebuilds the entire P2P layer to provide an efficient messaging between peers based on the Supervised Multicast using self discovery mechanism from incoming connection and network transactions.",(0,o.kt)("br",null),"The system is able to maintain a qualified vision of the network while limiting the generation of requests."))}h.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/17dede69.41575ec7.js b/assets/js/17dede69.c64d26e9.js similarity index 99% rename from assets/js/17dede69.41575ec7.js rename to assets/js/17dede69.c64d26e9.js index 955e19bc2..d0febb621 100644 --- a/assets/js/17dede69.41575ec7.js +++ b/assets/js/17dede69.c64d26e9.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9091],{3905:(e,t,a)=>{a.d(t,{Zo:()=>i,kt:()=>m});var n=a(67294);function l(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function r(e){for(var t=1;t=0||(l[a]=e[a]);return l}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(l[a]=e[a])}return l}var d=n.createContext({}),s=function(e){var t=n.useContext(d),a=t;return e&&(a="function"==typeof e?e(t):r(r({},t),e)),a},i=function(e){var t=s(e.components);return n.createElement(d.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},b=n.forwardRef((function(e,t){var a=e.components,l=e.mdxType,o=e.originalType,d=e.parentName,i=c(e,["components","mdxType","originalType","parentName"]),p=s(a),b=l,m=p["".concat(d,".").concat(b)]||p[b]||u[b]||o;return a?n.createElement(m,r(r({ref:t},i),{},{components:a})):n.createElement(m,r({ref:t},i))}));function m(e,t){var a=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var o=a.length,r=new Array(o);r[0]=b;var c={};for(var d in t)hasOwnProperty.call(t,d)&&(c[d]=t[d]);c.originalType=e,c[p]="string"==typeof e?e:l,r[1]=c;for(var s=2;s{a.r(t),a.d(t,{Badge:()=>u,Bullet:()=>i,Details:()=>m,SpecifiedBy:()=>p,assets:()=>s,contentTitle:()=>c,default:()=>y,frontMatter:()=>r,metadata:()=>d,toc:()=>b});var n=a(87462),l=a(67294),o=a(3905);a(8209);const r={id:"token-balance",title:"TokenBalance",hide_table_of_contents:!1},c=void 0,d={unversionedId:"build/api/schema/objects/token-balance",id:"build/api/schema/objects/token-balance",title:"TokenBalance",description:"[tokenBalance] represents a token ledger balance.",source:"@site/docs/build/api/schema/objects/token-balance.mdx",sourceDirName:"build/api/schema/objects",slug:"/build/api/schema/objects/token-balance",permalink:"/build/api/schema/objects/token-balance",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"token-balance",title:"TokenBalance",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"SharedSecrets",permalink:"/build/api/schema/objects/shared-secrets"},next:{title:"TokenLedger",permalink:"/build/api/schema/objects/token-ledger"}},s={},i=()=>(0,o.kt)(l.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=e=>(0,o.kt)(l.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,o.kt)(l.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),b=[{value:"Fields",id:"fields",level:3},{value:'TokenBalance.addressAddress ',id:"code-style-fontweight-normal-tokenbalancebaddressbcodeaddress-",level:4},{value:'TokenBalance.amountInt ',id:"code-style-fontweight-normal-tokenbalancebamountbcodeint-",level:4},{value:'TokenBalance.tokenIdInt ',id:"code-style-fontweight-normal-tokenbalancebtokenidbcodeint-",level:4},{value:"Member of",id:"member-of",level:3}],m=e=>{let{dataOpen:t,dataClose:a,children:r,startOpen:c=!1}=e;const[d,s]=(0,l.useState)(c);return(0,o.kt)("details",(0,n.Z)({},d?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),s((e=>!e))},style:{listStyle:"none"}},d?t:a),d&&r)},k={Bullet:i,SpecifiedBy:p,Badge:u,toc:b,Details:m},f="wrapper";function y(e){let{components:t,...a}=e;return(0,o.kt)(f,(0,n.Z)({},k,a,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"[tokenBalance]"," represents a token ledger balance.\nIt includes:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Token: address of the token"),(0,o.kt)("li",{parentName:"ul"},"Amount: amount of token"),(0,o.kt)("li",{parentName:"ul"},"Token ID: ID of the token")),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"type TokenBalance {\n address: Address\n amount: Int\n tokenId: Int\n}\n")),(0,o.kt)("h3",{id:"fields"},"Fields"),(0,o.kt)("h4",{id:"code-style-fontweight-normal-tokenbalancebaddressbcodeaddress-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"TokenBalance.",(0,o.kt)("b",null,"address"))),(0,o.kt)(i,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/address"},(0,o.kt)("inlineCode",{parentName:"a"},"Address"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h4",{id:"code-style-fontweight-normal-tokenbalancebamountbcodeint-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"TokenBalance.",(0,o.kt)("b",null,"amount"))),(0,o.kt)(i,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/int"},(0,o.kt)("inlineCode",{parentName:"a"},"Int"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h4",{id:"code-style-fontweight-normal-tokenbalancebtokenidbcodeint-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"TokenBalance.",(0,o.kt)("b",null,"tokenId"))),(0,o.kt)(i,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/int"},(0,o.kt)("inlineCode",{parentName:"a"},"Int"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h3",{id:"member-of"},"Member of"),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/balance"},(0,o.kt)("inlineCode",{parentName:"a"},"Balance"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}y.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9091],{3905:(e,t,a)=>{a.d(t,{Zo:()=>i,kt:()=>m});var n=a(67294);function l(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function r(e){for(var t=1;t=0||(l[a]=e[a]);return l}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(l[a]=e[a])}return l}var d=n.createContext({}),s=function(e){var t=n.useContext(d),a=t;return e&&(a="function"==typeof e?e(t):r(r({},t),e)),a},i=function(e){var t=s(e.components);return n.createElement(d.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},b=n.forwardRef((function(e,t){var a=e.components,l=e.mdxType,o=e.originalType,d=e.parentName,i=c(e,["components","mdxType","originalType","parentName"]),p=s(a),b=l,m=p["".concat(d,".").concat(b)]||p[b]||u[b]||o;return a?n.createElement(m,r(r({ref:t},i),{},{components:a})):n.createElement(m,r({ref:t},i))}));function m(e,t){var a=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var o=a.length,r=new Array(o);r[0]=b;var c={};for(var d in t)hasOwnProperty.call(t,d)&&(c[d]=t[d]);c.originalType=e,c[p]="string"==typeof e?e:l,r[1]=c;for(var s=2;s{a.r(t),a.d(t,{Badge:()=>u,Bullet:()=>i,Details:()=>m,SpecifiedBy:()=>p,assets:()=>s,contentTitle:()=>c,default:()=>y,frontMatter:()=>r,metadata:()=>d,toc:()=>b});var n=a(87462),l=a(67294),o=a(3905);a(8209);const r={id:"token-balance",title:"TokenBalance",hide_table_of_contents:!1},c=void 0,d={unversionedId:"build/api/schema/objects/token-balance",id:"build/api/schema/objects/token-balance",title:"TokenBalance",description:"[tokenBalance] represents a token ledger balance.",source:"@site/docs/build/api/schema/objects/token-balance.mdx",sourceDirName:"build/api/schema/objects",slug:"/build/api/schema/objects/token-balance",permalink:"/build/api/schema/objects/token-balance",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"token-balance",title:"TokenBalance",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"SharedSecrets",permalink:"/build/api/schema/objects/shared-secrets"},next:{title:"TokenLedger",permalink:"/build/api/schema/objects/token-ledger"}},s={},i=()=>(0,o.kt)(l.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=e=>(0,o.kt)(l.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,o.kt)(l.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),b=[{value:"Fields",id:"fields",level:3},{value:'TokenBalance.addressAddress ',id:"code-style-fontweight-normal-tokenbalancebaddressbcodeaddress-",level:4},{value:'TokenBalance.amountInt ',id:"code-style-fontweight-normal-tokenbalancebamountbcodeint-",level:4},{value:'TokenBalance.tokenIdInt ',id:"code-style-fontweight-normal-tokenbalancebtokenidbcodeint-",level:4},{value:"Member of",id:"member-of",level:3}],m=e=>{let{dataOpen:t,dataClose:a,children:r,startOpen:c=!1}=e;const[d,s]=(0,l.useState)(c);return(0,o.kt)("details",(0,n.Z)({},d?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),s((e=>!e))},style:{listStyle:"none"}},d?t:a),d&&r)},k={Bullet:i,SpecifiedBy:p,Badge:u,toc:b,Details:m},f="wrapper";function y(e){let{components:t,...a}=e;return(0,o.kt)(f,(0,n.Z)({},k,a,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"[tokenBalance]"," represents a token ledger balance.\nIt includes:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Token: address of the token"),(0,o.kt)("li",{parentName:"ul"},"Amount: amount of token"),(0,o.kt)("li",{parentName:"ul"},"Token ID: ID of the token")),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"type TokenBalance {\n address: Address\n amount: Int\n tokenId: Int\n}\n")),(0,o.kt)("h3",{id:"fields"},"Fields"),(0,o.kt)("h4",{id:"code-style-fontweight-normal-tokenbalancebaddressbcodeaddress-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"TokenBalance.",(0,o.kt)("b",null,"address"))),(0,o.kt)(i,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/address"},(0,o.kt)("inlineCode",{parentName:"a"},"Address"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h4",{id:"code-style-fontweight-normal-tokenbalancebamountbcodeint-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"TokenBalance.",(0,o.kt)("b",null,"amount"))),(0,o.kt)(i,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/int"},(0,o.kt)("inlineCode",{parentName:"a"},"Int"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h4",{id:"code-style-fontweight-normal-tokenbalancebtokenidbcodeint-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"TokenBalance.",(0,o.kt)("b",null,"tokenId"))),(0,o.kt)(i,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/int"},(0,o.kt)("inlineCode",{parentName:"a"},"Int"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h3",{id:"member-of"},"Member of"),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/balance"},(0,o.kt)("inlineCode",{parentName:"a"},"Balance"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}y.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file diff --git a/assets/js/1821a3cc.ffae28ea.js b/assets/js/1821a3cc.72aa987d.js similarity index 98% rename from assets/js/1821a3cc.ffae28ea.js rename to assets/js/1821a3cc.72aa987d.js index f41bd8c7e..4977acc0e 100644 --- a/assets/js/1821a3cc.ffae28ea.js +++ b/assets/js/1821a3cc.72aa987d.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7945],{3905:(e,t,n)=>{n.d(t,{Zo:()=>l,kt:()=>_});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var d=r.createContext({}),c=function(e){var t=r.useContext(d),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},l=function(e){var t=c(e.components);return r.createElement(d.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},p=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,d=e.parentName,l=i(e,["components","mdxType","originalType","parentName"]),u=c(n),p=a,_=u["".concat(d,".").concat(p)]||u[p]||m[p]||o;return n?r.createElement(_,s(s({ref:t},l),{},{components:n})):r.createElement(_,s({ref:t},l))}));function _(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,s=new Array(o);s[0]=p;var i={};for(var d in t)hasOwnProperty.call(t,d)&&(i[d]=t[d]);i.originalType=e,i[u]="string"==typeof e?e:a,s[1]=i;for(var c=2;c{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>s,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var r=n(87462),a=(n(67294),n(3905));n(8209);const o={id:"examples",title:"Smart Contracts - Examples",sidebar_label:"Examples",sidebar_position:6},s=void 0,i={unversionedId:"build/smart-contracts/examples",id:"build/smart-contracts/examples",title:"Smart Contracts - Examples",description:"Hello World",source:"@site/docs/build/smart-contracts/examples.md",sourceDirName:"build/smart-contracts",slug:"/build/smart-contracts/examples",permalink:"/build/smart-contracts/examples",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",sidebarPosition:6,frontMatter:{id:"examples",title:"Smart Contracts - Examples",sidebar_label:"Examples",sidebar_position:6},sidebar:"docs",previous:{title:"Fees",permalink:"/build/smart-contracts/fees"},next:{title:"Playground",permalink:"/build/smart-contracts/playground/"}},d={},c=[{value:"Hello World",id:"hello-world",level:2},{value:"ICO (Initial Coin Offering)",id:"ico-initial-coin-offering",level:2},{value:"Recurring ICO",id:"recurring-ico",level:2},{value:"Vote system",id:"vote-system",level:2},{value:"Insurance "at least 25\xb0c"",id:"insurance-at-least-25c",level:2}],l={toc:c},u="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(u,(0,r.Z)({},l,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"hello-world"},"Hello World"),(0,a.kt)("p",null,'This simple contract will be triggered once, at the specified unix timestamp.\nIt will create a new transaction with a content "Hello world!".'),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},'@version 1\n\nactions triggered_by: datetime, at: 1689857160 do\n Contract.set_content("Hello world!")\nend\n')),(0,a.kt)("h2",{id:"ico-initial-coin-offering"},"ICO (Initial Coin Offering)"),(0,a.kt)("p",null,"This contract the crowdsale of an ICO."),(0,a.kt)("p",null,"Users can send UCOs to this contract and will receive 10000 times the amount as token from this contract."),(0,a.kt)("p",null,"It is possible for users to define a different receive address."),(0,a.kt)("p",null,"The Smart Contract's chain must define a token."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},'@version 1\n\ncondition triggered_by: transaction, on: buyToken(recipient_address) do\n transfered_amount = Map.get(transaction.uco_movements, contract.address)\n transfered_amount != nil && transfered_amount > 0\nend\n\nactions triggered_by: transaction, on: buyToken(recipient_address) do\n transfers = get_transfered_amount()\n\n # Get the amount of UCO sent to this contract\n amount_send = number_of_uco_sent()\n\n # Convert UCO to the number of tokens to credit. Each UCO worth 10000 token\n token_to_credit = number_of_tokens(amount_send)\n\n Contract.set_type("transfer")\n\n # Users can specify to send the token in a different address\n Contract.add_token_transfer(to: recipient_address, token_address: token_address(), amount: token_to_credit)\nend\n\nfun number_of_tokens(uco_amount) do\n uco_amount * 10000\nend\n\nfun number_of_uco_sent() do\n Map.get(transaction.uco_movements, contract.address)\nend\n\nfun get_transfered_amount() do\n Map.get(transaction.uco_transfers, contract.address)\nend\n\nfun token_address() do\n Chain.get_genesis_address(contract.address)\nend\n\n')),(0,a.kt)("h2",{id:"recurring-ico"},"Recurring ICO"),(0,a.kt)("p",null,"This contract will automatically call the ICO contract with 2 UCOs every hours.\nThe tokens will be transfered in a different chain."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},'@version 1\n\nactions triggered_by: interval, at: "0 * * * *" do\n\n ico_contract = 0x0000993F3BE0CE40541E47735AA083854ECAC7785B39435C90D8456C777B9E9D81F1\n\n Contract.set_type("transfer")\n Contract.add_recipient address: ico_contract, action: "buyTokens", args: [0x0000A3A066DD64FBD51AE384F2383684B3803BC72012BFEAA9CD1C93AB7C60F584DC]\n Contract.add_uco_transfer(amount: 2, to: ico_contract)\nend\n')),(0,a.kt)("h2",{id:"vote-system"},"Vote system"),(0,a.kt)("p",null,'This contract counts the number of votes for list of candidates ("Miss Scarlett", "Colonel Mustard").\nFor each vote request, it increments the number of votes for the given candidate.\nA voter can only vote once because the contract keep track of the voters genesis addresses.'),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"A public function is available to be able to easily query the number of votes in the system")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},'@version 1\ncondition triggered_by: transaction, on: vote(candidate) do\n if !List.in?(["Miss Scarlett", "Colonel Mustard"], candidate) do\n throw code: 1, message: "unknown candidate", data: candidate\n end\n\n voters_genesis_addresses = State.get("voters_genesis_addresses", [])\n voter_genesis_address = Chain.get_genesis_address(transaction.address)\n\n if List.in?(voters_genesis_addresses, voter_genesis_address) do\n throw code: 2, message: "already voted", data: [\n address: transaction.address,\n genesis: voter_genesis_address\n ]\n end\n\n true\nend\n\nactions triggered_by: transaction, on: vote(candidate) do\n scarlett_votes = State.get("Miss Scarlett", 0)\n mustard_votes = State.get("Colonel Mustard", 0)\n voters = State.get("voters_genesis_addresses", [])\n\n if candidate == "Miss Scarlett" do\n scarlett_votes = scarlett_votes + 1\n end\n if candidate == "Colonel Mustard" do\n mustard_votes = mustard_votes + 1\n end\n\n # Add the current voter genesis address to the list\n # So he/she cannot vote twice\n voters = List.prepend(voters, Chain.get_genesis_address(transaction.address))\n\n State.set("Miss Scarlett", scarlett_votes)\n State.set("Colonel Mustard", mustard_votes)\n State.set("voters_genesis_addresses", voters)\nend\n\nexport fun get_votes() do\n [\n scarlett: State.get("Miss Scarlett", 0),\n mustard: State.get("Colonel Mustard", 0)\n ]\nend\n')),(0,a.kt)("h2",{id:"insurance-at-least-25c"},'Insurance "at least 25\xb0c"'),(0,a.kt)("p",null,"This Smart Contract holds some funds, and send them all to either the insurance company or the insuree at the end of the stay. The receiver is determined by the average temperature at destination during the stay."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},'@version 1\n\n# float, float, string, string :: List float\nfun get_hourly_temperatures(lat, long, start_date, end_date) do\n # TODO: fetch multiple sources\n response = Http.request("https://archive-api.open-meteo.com/v1/archive?latitude=#{lat}&longitude=#{long}&start_date=#{start_date}&end_date=#{end_date}&hourly=temperature_2m")\n if response.status == 200 && Json.is_valid?(response.body) do\n json = Json.parse(response.body)\n json.hourly.temperature_2m\n else\n []\n end\nend\n\n# List float -> float\nfun average(xs) do\n sum = 0\n count = 0\n for x in xs do\n count = count + 1\n sum = sum + x\n end\n\n sum / count\nend\n\n# Trigger at the end of stay\nactions triggered_by: datetime, at: 1694728800 do\n insurance_company_wallet = 0x00002223BBD4EC3D64AE597696C7D7ADE1CEE65C639D885450AD2D7B75592AC76AFA\n insuree_wallet = 0x0000238C3A9CB5BFB7A863D698B71DFFF0C9C5C40CFF21EBDA2D83EBAEDDA1C6E10D\n lat = 41.591\n long = 9.2795\n start_date = "2023-09-08"\n end_date = "2023-09-15"\n threshold = 25\n amount = 4000\n\n\n hourly_temperatures = get_hourly_temperatures(lat, long, start_date, end_date)\n\n if hourly_temperatures == [] do\n # No data? arbitrary decision of splitting 50/50\n # To better deal with that situation, fetch multiple sources instead of a single one\n Contract.set_content("No average temperature available")\n Contract.add_uco_transfer to: insurance_company_wallet, amount: amount / 2\n Contract.add_uco_transfer to: insuree_wallet, amount: amount / 2\n else\n average_temperature = average(hourly_temperatures)\n\n Contract.set_content("Average temperature was: #{average_temperature}")\n if average_temperature >= threshold do\n Contract.add_uco_transfer to: insurance_company_wallet, amount: amount\n else\n Contract.add_uco_transfer to: insuree_wallet, amount: amount\n end\n end\nend\n')))}m.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7945],{3905:(e,t,n)=>{n.d(t,{Zo:()=>l,kt:()=>_});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var d=r.createContext({}),c=function(e){var t=r.useContext(d),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},l=function(e){var t=c(e.components);return r.createElement(d.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},p=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,d=e.parentName,l=i(e,["components","mdxType","originalType","parentName"]),u=c(n),p=a,_=u["".concat(d,".").concat(p)]||u[p]||m[p]||o;return n?r.createElement(_,s(s({ref:t},l),{},{components:n})):r.createElement(_,s({ref:t},l))}));function _(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,s=new Array(o);s[0]=p;var i={};for(var d in t)hasOwnProperty.call(t,d)&&(i[d]=t[d]);i.originalType=e,i[u]="string"==typeof e?e:a,s[1]=i;for(var c=2;c{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>s,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var r=n(87462),a=(n(67294),n(3905));n(8209);const o={id:"examples",title:"Smart Contracts - Examples",sidebar_label:"Examples",sidebar_position:6},s=void 0,i={unversionedId:"build/smart-contracts/examples",id:"build/smart-contracts/examples",title:"Smart Contracts - Examples",description:"Hello World",source:"@site/docs/build/smart-contracts/examples.md",sourceDirName:"build/smart-contracts",slug:"/build/smart-contracts/examples",permalink:"/build/smart-contracts/examples",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",sidebarPosition:6,frontMatter:{id:"examples",title:"Smart Contracts - Examples",sidebar_label:"Examples",sidebar_position:6},sidebar:"docs",previous:{title:"Fees",permalink:"/build/smart-contracts/fees"},next:{title:"Playground",permalink:"/build/smart-contracts/playground/"}},d={},c=[{value:"Hello World",id:"hello-world",level:2},{value:"ICO (Initial Coin Offering)",id:"ico-initial-coin-offering",level:2},{value:"Recurring ICO",id:"recurring-ico",level:2},{value:"Vote system",id:"vote-system",level:2},{value:"Insurance "at least 25\xb0c"",id:"insurance-at-least-25c",level:2}],l={toc:c},u="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(u,(0,r.Z)({},l,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"hello-world"},"Hello World"),(0,a.kt)("p",null,'This simple contract will be triggered once, at the specified unix timestamp.\nIt will create a new transaction with a content "Hello world!".'),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},'@version 1\n\nactions triggered_by: datetime, at: 1689857160 do\n Contract.set_content("Hello world!")\nend\n')),(0,a.kt)("h2",{id:"ico-initial-coin-offering"},"ICO (Initial Coin Offering)"),(0,a.kt)("p",null,"This contract the crowdsale of an ICO."),(0,a.kt)("p",null,"Users can send UCOs to this contract and will receive 10000 times the amount as token from this contract."),(0,a.kt)("p",null,"It is possible for users to define a different receive address."),(0,a.kt)("p",null,"The Smart Contract's chain must define a token."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},'@version 1\n\ncondition triggered_by: transaction, on: buyToken(recipient_address) do\n transfered_amount = Map.get(transaction.uco_movements, contract.address)\n transfered_amount != nil && transfered_amount > 0\nend\n\nactions triggered_by: transaction, on: buyToken(recipient_address) do\n transfers = get_transfered_amount()\n\n # Get the amount of UCO sent to this contract\n amount_send = number_of_uco_sent()\n\n # Convert UCO to the number of tokens to credit. Each UCO worth 10000 token\n token_to_credit = number_of_tokens(amount_send)\n\n Contract.set_type("transfer")\n\n # Users can specify to send the token in a different address\n Contract.add_token_transfer(to: recipient_address, token_address: token_address(), amount: token_to_credit)\nend\n\nfun number_of_tokens(uco_amount) do\n uco_amount * 10000\nend\n\nfun number_of_uco_sent() do\n Map.get(transaction.uco_movements, contract.address)\nend\n\nfun get_transfered_amount() do\n Map.get(transaction.uco_transfers, contract.address)\nend\n\nfun token_address() do\n Chain.get_genesis_address(contract.address)\nend\n\n')),(0,a.kt)("h2",{id:"recurring-ico"},"Recurring ICO"),(0,a.kt)("p",null,"This contract will automatically call the ICO contract with 2 UCOs every hours.\nThe tokens will be transfered in a different chain."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},'@version 1\n\nactions triggered_by: interval, at: "0 * * * *" do\n\n ico_contract = 0x0000993F3BE0CE40541E47735AA083854ECAC7785B39435C90D8456C777B9E9D81F1\n\n Contract.set_type("transfer")\n Contract.add_recipient address: ico_contract, action: "buyTokens", args: [0x0000A3A066DD64FBD51AE384F2383684B3803BC72012BFEAA9CD1C93AB7C60F584DC]\n Contract.add_uco_transfer(amount: 2, to: ico_contract)\nend\n')),(0,a.kt)("h2",{id:"vote-system"},"Vote system"),(0,a.kt)("p",null,'This contract counts the number of votes for list of candidates ("Miss Scarlett", "Colonel Mustard").\nFor each vote request, it increments the number of votes for the given candidate.\nA voter can only vote once because the contract keep track of the voters genesis addresses.'),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"A public function is available to be able to easily query the number of votes in the system")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},'@version 1\ncondition triggered_by: transaction, on: vote(candidate) do\n if !List.in?(["Miss Scarlett", "Colonel Mustard"], candidate) do\n throw code: 1, message: "unknown candidate", data: candidate\n end\n\n voters_genesis_addresses = State.get("voters_genesis_addresses", [])\n voter_genesis_address = Chain.get_genesis_address(transaction.address)\n\n if List.in?(voters_genesis_addresses, voter_genesis_address) do\n throw code: 2, message: "already voted", data: [\n address: transaction.address,\n genesis: voter_genesis_address\n ]\n end\n\n true\nend\n\nactions triggered_by: transaction, on: vote(candidate) do\n scarlett_votes = State.get("Miss Scarlett", 0)\n mustard_votes = State.get("Colonel Mustard", 0)\n voters = State.get("voters_genesis_addresses", [])\n\n if candidate == "Miss Scarlett" do\n scarlett_votes = scarlett_votes + 1\n end\n if candidate == "Colonel Mustard" do\n mustard_votes = mustard_votes + 1\n end\n\n # Add the current voter genesis address to the list\n # So he/she cannot vote twice\n voters = List.prepend(voters, Chain.get_genesis_address(transaction.address))\n\n State.set("Miss Scarlett", scarlett_votes)\n State.set("Colonel Mustard", mustard_votes)\n State.set("voters_genesis_addresses", voters)\nend\n\nexport fun get_votes() do\n [\n scarlett: State.get("Miss Scarlett", 0),\n mustard: State.get("Colonel Mustard", 0)\n ]\nend\n')),(0,a.kt)("h2",{id:"insurance-at-least-25c"},'Insurance "at least 25\xb0c"'),(0,a.kt)("p",null,"This Smart Contract holds some funds, and send them all to either the insurance company or the insuree at the end of the stay. The receiver is determined by the average temperature at destination during the stay."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},'@version 1\n\n# float, float, string, string :: List float\nfun get_hourly_temperatures(lat, long, start_date, end_date) do\n # TODO: fetch multiple sources\n response = Http.request("https://archive-api.open-meteo.com/v1/archive?latitude=#{lat}&longitude=#{long}&start_date=#{start_date}&end_date=#{end_date}&hourly=temperature_2m")\n if response.status == 200 && Json.is_valid?(response.body) do\n json = Json.parse(response.body)\n json.hourly.temperature_2m\n else\n []\n end\nend\n\n# List float -> float\nfun average(xs) do\n sum = 0\n count = 0\n for x in xs do\n count = count + 1\n sum = sum + x\n end\n\n sum / count\nend\n\n# Trigger at the end of stay\nactions triggered_by: datetime, at: 1694728800 do\n insurance_company_wallet = 0x00002223BBD4EC3D64AE597696C7D7ADE1CEE65C639D885450AD2D7B75592AC76AFA\n insuree_wallet = 0x0000238C3A9CB5BFB7A863D698B71DFFF0C9C5C40CFF21EBDA2D83EBAEDDA1C6E10D\n lat = 41.591\n long = 9.2795\n start_date = "2023-09-08"\n end_date = "2023-09-15"\n threshold = 25\n amount = 4000\n\n\n hourly_temperatures = get_hourly_temperatures(lat, long, start_date, end_date)\n\n if hourly_temperatures == [] do\n # No data? arbitrary decision of splitting 50/50\n # To better deal with that situation, fetch multiple sources instead of a single one\n Contract.set_content("No average temperature available")\n Contract.add_uco_transfer to: insurance_company_wallet, amount: amount / 2\n Contract.add_uco_transfer to: insuree_wallet, amount: amount / 2\n else\n average_temperature = average(hourly_temperatures)\n\n Contract.set_content("Average temperature was: #{average_temperature}")\n if average_temperature >= threshold do\n Contract.add_uco_transfer to: insurance_company_wallet, amount: amount\n else\n Contract.add_uco_transfer to: insuree_wallet, amount: amount\n end\n end\nend\n')))}m.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/1872c6b8.007df33b.js b/assets/js/1872c6b8.0a1396cb.js similarity index 98% rename from assets/js/1872c6b8.007df33b.js rename to assets/js/1872c6b8.0a1396cb.js index 011d08353..fb34e8d6e 100644 --- a/assets/js/1872c6b8.007df33b.js +++ b/assets/js/1872c6b8.0a1396cb.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3747],{3905:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>f});var i=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function o(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=i.createContext({}),h=function(e){var t=i.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},l=function(e){var t=h(e.components);return i.createElement(s.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},u=i.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,s=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),p=h(r),u=n,f=p["".concat(s,".").concat(u)]||p[u]||d[u]||a;return r?i.createElement(f,o(o({ref:t},l),{},{components:r})):i.createElement(f,o({ref:t},l))}));function f(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,o=new Array(a);o[0]=u;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[p]="string"==typeof e?e:n,o[1]=c;for(var h=2;h{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>h});var i=r(87462),n=(r(67294),r(3905));r(8209);const a={id:"bridge",title:"Archethic Bridge (aeBridge)"},o=void 0,c={unversionedId:"participate/bridge/bridge",id:"participate/bridge/bridge",title:"Archethic Bridge (aeBridge)",description:"Archethic has developed a decentralized and P2P bridge to facilitate the exchange of your UCO ERC20 tokens with other blockchains (e.g., Ethereum, Polygon, BSC) and to allow for a simple and secure exchange of assets in the most atomic way.",source:"@site/docs/participate/bridge/README.md",sourceDirName:"participate/bridge",slug:"/participate/bridge/",permalink:"/participate/bridge/",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"bridge",title:"Archethic Bridge (aeBridge)"},sidebar:"docs",previous:{title:"Automate deployments",permalink:"/participate/aeweb/automation"},next:{title:"Usage",permalink:"/participate/bridge/usage"}},s={},h=[{value:"Key concepts",id:"key-concepts",level:2},{value:"HTLC (Hash Time Lock Contract)",id:"htlc-hash-time-lock-contract",level:3},{value:"Archethic's cross-chain verification",id:"archethics-cross-chain-verification",level:3},{value:"EVM to Archethic",id:"evm-to-archethic",level:3},{value:"Archethic to EVM",id:"archethic-to-evm",level:3},{value:"How to access",id:"how-to-access",level:2},{value:"Audit of EVM Smart Contracts",id:"audit-of-evm-smart-contracts",level:2},{value:"FAQ",id:"faq",level:2}],l={toc:h},p="wrapper";function d(e){let{components:t,...a}=e;return(0,n.kt)(p,(0,i.Z)({},l,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"Archethic has developed a decentralized and P2P bridge to facilitate the exchange of your UCO ERC20 tokens with other blockchains (e.g., Ethereum, Polygon, BSC) and to allow for a simple and secure exchange of assets in the most atomic way."),(0,n.kt)("h2",{id:"key-concepts"},"Key concepts"),(0,n.kt)("h3",{id:"htlc-hash-time-lock-contract"},"HTLC (Hash Time Lock Contract)"),(0,n.kt)("p",null,"Archethic's bridge relies on atomic swap technology to securely exchange assets in a peer-to-peer and cryptographic manner without intermediaries. It also allows for the reversal and refund of assets after a specified lock time period."),(0,n.kt)("p",null,"This involves the use of specific contracts known as ",(0,n.kt)("strong",{parentName:"p"},"Hash Time Lock Contracts (HTLC)"),", which lock your funds until a secret is revealed (similar to a secret box) or after a lock time period to provide refund capabilities. These contracts must be deployed on both chains involved in the swap."),(0,n.kt)("p",null,"Both chains must be ready to transfer assets by revealing the private part of the secret encoded in the contracts, which enables the exchange. Once the secret is revealed on one chain, the other can proceed as the secret is now public."),(0,n.kt)("p",null,"This atomic swap method ensures secure transfers between chains without a central pool holding all the assets. Instead, it relies on hard-coded recipients and rules within a one-time contract."),(0,n.kt)("h3",{id:"archethics-cross-chain-verification"},"Archethic's cross-chain verification"),(0,n.kt)("p",null,"While conventional atomic swaps rely on HTLC techniques for security through peer-to-peer and cryptographic approaches, Archethic enhances its atomic swap protocol by enabling data retrieval outside of the blockchain. This enhancement makes the process completely decentralized and strengthens the security model."),(0,n.kt)("p",null,"Archethic's nodes can fetch transaction status on other chains, such as EVM blockchains, to establish the status of a swap with a strong consensus.\nCombining HTLC and Archethic's specific capabilities provides a high level of trust in the origin and reveal capabilities of any swap, relying on cryptography and cross-chain data retrieval."),(0,n.kt)("h3",{id:"evm-to-archethic"},"EVM to Archethic"),(0,n.kt)("p",null,"The process begins with a secret held by a client (in this case, the bridge's dApp) and its hash, which forms a lock upon revealing the secret."),(0,n.kt)("p",null,"The user deploys an HTLC smart contract on the EVM blockchain through the bridge's EVM pool."),(0,n.kt)("p",null," This pool ensures the capacity of the swap's initiator, lock time period, and the recipient's address for the assets to be bridged."),(0,n.kt)("p",null,"Similarly, the user must deploy a contract on Archethic under the same conditions while specifying the recipient wallet to receive the funds."),(0,n.kt)("p",null,"Subsequently, a request is made to the Archethic's pool (which holds the wrapped tokens) to fill the HTLC."),(0,n.kt)("p",null,"Because the tokens are wrapped on Archethic, the pool will mint new tokens after cross-chain verification (",(0,n.kt)("a",{parentName:"p",href:"#archethics-cross-chain-verification"},"see Archethic's specific"),")."),(0,n.kt)("p",null,"The remaining step involves revealing the secret on EVM to transfer the funds to the bridge's recipient wallet and replicating this process on Archethic, ensuring that the action is executed on EVM blockchains through off-chain requests."),(0,n.kt)("p",null,"This results in both counterparties receiving their funds, achieving parity in the bridged assets."),(0,n.kt)("h3",{id:"archethic-to-evm"},"Archethic to EVM"),(0,n.kt)("p",null,"To exchange assets from Archethic to EVM, the process follows a similar pattern but in reverse order.\nHowever, a new feature is introduced in the smart contracts. Since EVM cannot request information outside the blockchain, steps are taken to ensure that an action has been performed on Archethic's side. Cryptography is employed to assert the action through a signature and provide non-repudiation proof for the Archethic's pool."),(0,n.kt)("p",null,"In this scenario, the user creates an HTLC contract on Archethic and funds it with tokens (wrapped or native), specifying the recipient's wallet provided by Archethic's pool, without initially revealing the secret and its lock."),(0,n.kt)("p",null,"The user then requests the Archethic's pool to obtain a secret, its hash, and a signature confirming the action's completion on Archethic's side."),(0,n.kt)("p",null,"During this process, the Archethic's pool contacts the HTLC to update its conditions for the secret's reveal by inserting the generated secret's hash from the pool."),(0,n.kt)("p",null,"On the other side, the user can request the EVM pool to create and provision an HTLC contract based on the proof provided by Archethic's pool regarding an existing and funded HTLC."),(0,n.kt)("p",null,"The EVM pool can now create and transfer funds to this new contract."),(0,n.kt)("p",null,"The remaining step is to reveal the secret. The user asks the Archethic's pool to reveal the secret within the HTLC and provide a signature for this action. At this point, the locked tokens will be burnt."),(0,n.kt)("p",null,"With the secret revealed, the user can also reveal the secret on the EVM HTLC and provide the signature from Archethic's pool, unlocking the assets to the user's wallet registered within the contract."),(0,n.kt)("p",null,"This process ensures that both counterparties receive their funds, achieving parity in the bridged assets."),(0,n.kt)("h2",{id:"how-to-access"},"How to access"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"URL"),": ",(0,n.kt)("a",{parentName:"li",href:"https://bridge.archethic.net"},"https://bridge.archethic.net")),(0,n.kt)("li",{parentName:"ul"},"If you'd like to test the application or take advantage of the latest features under development, you can safely use the application in the testnet: ",(0,n.kt)("a",{parentName:"li",href:"https://bridge.testnet.archethic.net"},"https://bridge.testnet.archethic.net"))),(0,n.kt)("p",null,"This document aims to provide a comprehensive guide to using aeBridge, including an introduction to the necessary concepts, step-by-step guides for interacting with the platform, and technical references for deeper integration and development purposes."),(0,n.kt)("h2",{id:"audit-of-evm-smart-contracts"},"Audit of EVM Smart Contracts"),(0,n.kt)("p",null,"Our EVM smart contracts have been audited by ",(0,n.kt)("a",{parentName:"p",href:"https://hacken.io"},"Hacken"),", a recognized leader in blockchain security. The full audit report is available ",(0,n.kt)("a",{target:"_blank",href:r(78188).Z},"here"),"."),(0,n.kt)("h2",{id:"faq"},"FAQ"),(0,n.kt)("p",null,"For further information, please refer to the ",(0,n.kt)("a",{parentName:"p",href:"/FAQ/bridge-2-ways"},"FAQ"),"."))}d.isMDXComponent=!0},78188:(e,t,r)=>{r.d(t,{Z:()=>i});const i=r.p+"assets/files/aebridge_hacken-5b4da95c00238c6be091290aa6e2e503.pdf"},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3747],{3905:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>f});var i=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function o(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=i.createContext({}),h=function(e){var t=i.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},l=function(e){var t=h(e.components);return i.createElement(s.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},u=i.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,s=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),p=h(r),u=n,f=p["".concat(s,".").concat(u)]||p[u]||d[u]||a;return r?i.createElement(f,o(o({ref:t},l),{},{components:r})):i.createElement(f,o({ref:t},l))}));function f(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,o=new Array(a);o[0]=u;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[p]="string"==typeof e?e:n,o[1]=c;for(var h=2;h{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>h});var i=r(87462),n=(r(67294),r(3905));r(8209);const a={id:"bridge",title:"Archethic Bridge (aeBridge)"},o=void 0,c={unversionedId:"participate/bridge/bridge",id:"participate/bridge/bridge",title:"Archethic Bridge (aeBridge)",description:"Archethic has developed a decentralized and P2P bridge to facilitate the exchange of your UCO ERC20 tokens with other blockchains (e.g., Ethereum, Polygon, BSC) and to allow for a simple and secure exchange of assets in the most atomic way.",source:"@site/docs/participate/bridge/README.md",sourceDirName:"participate/bridge",slug:"/participate/bridge/",permalink:"/participate/bridge/",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"bridge",title:"Archethic Bridge (aeBridge)"},sidebar:"docs",previous:{title:"Automate deployments",permalink:"/participate/aeweb/automation"},next:{title:"Usage",permalink:"/participate/bridge/usage"}},s={},h=[{value:"Key concepts",id:"key-concepts",level:2},{value:"HTLC (Hash Time Lock Contract)",id:"htlc-hash-time-lock-contract",level:3},{value:"Archethic's cross-chain verification",id:"archethics-cross-chain-verification",level:3},{value:"EVM to Archethic",id:"evm-to-archethic",level:3},{value:"Archethic to EVM",id:"archethic-to-evm",level:3},{value:"How to access",id:"how-to-access",level:2},{value:"Audit of EVM Smart Contracts",id:"audit-of-evm-smart-contracts",level:2},{value:"FAQ",id:"faq",level:2}],l={toc:h},p="wrapper";function d(e){let{components:t,...a}=e;return(0,n.kt)(p,(0,i.Z)({},l,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"Archethic has developed a decentralized and P2P bridge to facilitate the exchange of your UCO ERC20 tokens with other blockchains (e.g., Ethereum, Polygon, BSC) and to allow for a simple and secure exchange of assets in the most atomic way."),(0,n.kt)("h2",{id:"key-concepts"},"Key concepts"),(0,n.kt)("h3",{id:"htlc-hash-time-lock-contract"},"HTLC (Hash Time Lock Contract)"),(0,n.kt)("p",null,"Archethic's bridge relies on atomic swap technology to securely exchange assets in a peer-to-peer and cryptographic manner without intermediaries. It also allows for the reversal and refund of assets after a specified lock time period."),(0,n.kt)("p",null,"This involves the use of specific contracts known as ",(0,n.kt)("strong",{parentName:"p"},"Hash Time Lock Contracts (HTLC)"),", which lock your funds until a secret is revealed (similar to a secret box) or after a lock time period to provide refund capabilities. These contracts must be deployed on both chains involved in the swap."),(0,n.kt)("p",null,"Both chains must be ready to transfer assets by revealing the private part of the secret encoded in the contracts, which enables the exchange. Once the secret is revealed on one chain, the other can proceed as the secret is now public."),(0,n.kt)("p",null,"This atomic swap method ensures secure transfers between chains without a central pool holding all the assets. Instead, it relies on hard-coded recipients and rules within a one-time contract."),(0,n.kt)("h3",{id:"archethics-cross-chain-verification"},"Archethic's cross-chain verification"),(0,n.kt)("p",null,"While conventional atomic swaps rely on HTLC techniques for security through peer-to-peer and cryptographic approaches, Archethic enhances its atomic swap protocol by enabling data retrieval outside of the blockchain. This enhancement makes the process completely decentralized and strengthens the security model."),(0,n.kt)("p",null,"Archethic's nodes can fetch transaction status on other chains, such as EVM blockchains, to establish the status of a swap with a strong consensus.\nCombining HTLC and Archethic's specific capabilities provides a high level of trust in the origin and reveal capabilities of any swap, relying on cryptography and cross-chain data retrieval."),(0,n.kt)("h3",{id:"evm-to-archethic"},"EVM to Archethic"),(0,n.kt)("p",null,"The process begins with a secret held by a client (in this case, the bridge's dApp) and its hash, which forms a lock upon revealing the secret."),(0,n.kt)("p",null,"The user deploys an HTLC smart contract on the EVM blockchain through the bridge's EVM pool."),(0,n.kt)("p",null," This pool ensures the capacity of the swap's initiator, lock time period, and the recipient's address for the assets to be bridged."),(0,n.kt)("p",null,"Similarly, the user must deploy a contract on Archethic under the same conditions while specifying the recipient wallet to receive the funds."),(0,n.kt)("p",null,"Subsequently, a request is made to the Archethic's pool (which holds the wrapped tokens) to fill the HTLC."),(0,n.kt)("p",null,"Because the tokens are wrapped on Archethic, the pool will mint new tokens after cross-chain verification (",(0,n.kt)("a",{parentName:"p",href:"#archethics-cross-chain-verification"},"see Archethic's specific"),")."),(0,n.kt)("p",null,"The remaining step involves revealing the secret on EVM to transfer the funds to the bridge's recipient wallet and replicating this process on Archethic, ensuring that the action is executed on EVM blockchains through off-chain requests."),(0,n.kt)("p",null,"This results in both counterparties receiving their funds, achieving parity in the bridged assets."),(0,n.kt)("h3",{id:"archethic-to-evm"},"Archethic to EVM"),(0,n.kt)("p",null,"To exchange assets from Archethic to EVM, the process follows a similar pattern but in reverse order.\nHowever, a new feature is introduced in the smart contracts. Since EVM cannot request information outside the blockchain, steps are taken to ensure that an action has been performed on Archethic's side. Cryptography is employed to assert the action through a signature and provide non-repudiation proof for the Archethic's pool."),(0,n.kt)("p",null,"In this scenario, the user creates an HTLC contract on Archethic and funds it with tokens (wrapped or native), specifying the recipient's wallet provided by Archethic's pool, without initially revealing the secret and its lock."),(0,n.kt)("p",null,"The user then requests the Archethic's pool to obtain a secret, its hash, and a signature confirming the action's completion on Archethic's side."),(0,n.kt)("p",null,"During this process, the Archethic's pool contacts the HTLC to update its conditions for the secret's reveal by inserting the generated secret's hash from the pool."),(0,n.kt)("p",null,"On the other side, the user can request the EVM pool to create and provision an HTLC contract based on the proof provided by Archethic's pool regarding an existing and funded HTLC."),(0,n.kt)("p",null,"The EVM pool can now create and transfer funds to this new contract."),(0,n.kt)("p",null,"The remaining step is to reveal the secret. The user asks the Archethic's pool to reveal the secret within the HTLC and provide a signature for this action. At this point, the locked tokens will be burnt."),(0,n.kt)("p",null,"With the secret revealed, the user can also reveal the secret on the EVM HTLC and provide the signature from Archethic's pool, unlocking the assets to the user's wallet registered within the contract."),(0,n.kt)("p",null,"This process ensures that both counterparties receive their funds, achieving parity in the bridged assets."),(0,n.kt)("h2",{id:"how-to-access"},"How to access"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"URL"),": ",(0,n.kt)("a",{parentName:"li",href:"https://bridge.archethic.net"},"https://bridge.archethic.net")),(0,n.kt)("li",{parentName:"ul"},"If you'd like to test the application or take advantage of the latest features under development, you can safely use the application in the testnet: ",(0,n.kt)("a",{parentName:"li",href:"https://bridge.testnet.archethic.net"},"https://bridge.testnet.archethic.net"))),(0,n.kt)("p",null,"This document aims to provide a comprehensive guide to using aeBridge, including an introduction to the necessary concepts, step-by-step guides for interacting with the platform, and technical references for deeper integration and development purposes."),(0,n.kt)("h2",{id:"audit-of-evm-smart-contracts"},"Audit of EVM Smart Contracts"),(0,n.kt)("p",null,"Our EVM smart contracts have been audited by ",(0,n.kt)("a",{parentName:"p",href:"https://hacken.io"},"Hacken"),", a recognized leader in blockchain security. The full audit report is available ",(0,n.kt)("a",{target:"_blank",href:r(78188).Z},"here"),"."),(0,n.kt)("h2",{id:"faq"},"FAQ"),(0,n.kt)("p",null,"For further information, please refer to the ",(0,n.kt)("a",{parentName:"p",href:"/FAQ/bridge-2-ways"},"FAQ"),"."))}d.isMDXComponent=!0},78188:(e,t,r)=>{r.d(t,{Z:()=>i});const i=r.p+"assets/files/aebridge_hacken-5b4da95c00238c6be091290aa6e2e503.pdf"},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file diff --git a/assets/js/193cb586.2c890804.js b/assets/js/193cb586.f29fd90b.js similarity index 98% rename from assets/js/193cb586.2c890804.js rename to assets/js/193cb586.f29fd90b.js index a6491b8b8..84b2b8477 100644 --- a/assets/js/193cb586.2c890804.js +++ b/assets/js/193cb586.f29fd90b.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6289],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>m});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),s=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},d=function(e){var t=s(e.components);return a.createElement(l.Provider,{value:t},e.children)},g="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,l=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),g=s(n),u=r,m=g["".concat(l,".").concat(u)]||g[u]||p[u]||i;return n?a.createElement(m,o(o({ref:t},d),{},{components:n})):a.createElement(m,o({ref:t},d))}));function m(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,o=new Array(i);o[0]=u;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[g]="string"==typeof e?e:r,o[1]=c;for(var s=2;s{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>p,frontMatter:()=>i,metadata:()=>c,toc:()=>s});var a=n(87462),r=(n(67294),n(3905));n(8209);const i={id:"triggers",title:"Smart Contracts - Triggers",sidebar_label:"Triggers",sidebar_position:1},o=void 0,c={unversionedId:"build/smart-contracts/language/triggers",id:"build/smart-contracts/language/triggers",title:"Smart Contracts - Triggers",description:"Contract triggered by a transaction",source:"@site/docs/build/smart-contracts/language/triggers.md",sourceDirName:"build/smart-contracts/language",slug:"/build/smart-contracts/language/triggers",permalink:"/build/smart-contracts/language/triggers",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",sidebarPosition:1,frontMatter:{id:"triggers",title:"Smart Contracts - Triggers",sidebar_label:"Triggers",sidebar_position:1},sidebar:"docs",previous:{title:"Language",permalink:"/build/smart-contracts/language/"},next:{title:"Condition",permalink:"/build/smart-contracts/language/condition"}},l={},s=[{value:"Contract triggered by a transaction",id:"contract-triggered-by-a-transaction",level:3},{value:"Contract triggered by a transaction with a named action",id:"contract-triggered-by-a-transaction-with-a-named-action",level:3},{value:"Contract triggered at a specific date and time",id:"contract-triggered-at-a-specific-date-and-time",level:3},{value:"Contract triggered at a specific interval",id:"contract-triggered-at-a-specific-interval",level:3},{value:"Contract triggered on every Oracle transaction",id:"contract-triggered-on-every-oracle-transaction",level:3},{value:"Multiple triggers",id:"multiple-triggers",level:3}],d={toc:s},g="wrapper";function p(e){let{components:t,...n}=e;return(0,r.kt)(g,(0,a.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h3",{id:"contract-triggered-by-a-transaction"},"Contract triggered by a transaction"),(0,r.kt)("p",null,"To trigger a SC execution, the incoming transaction must add the SC address in the ",(0,r.kt)("inlineCode",{parentName:"p"},"recipients")," part of the transaction."),(0,r.kt)("admonition",{type:"tip"},(0,r.kt)("p",{parentName:"admonition"},"This allows to activate a SC without sending funds to it, or to send funds to it without activating the code execution."),(0,r.kt)("p",{parentName:"admonition"},"Because the ",(0,r.kt)("inlineCode",{parentName:"p"},"recipients")," field is a list, you can trigger multiple contracts in the same transaction \ud83d\ude09")),(0,r.kt)("p",null,"In this scenario:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"a ",(0,r.kt)("inlineCode",{parentName:"li"},"condition transaction")," may be used to check the incoming transaction (before executing the trigger)."),(0,r.kt)("li",{parentName:"ul"},"a ",(0,r.kt)("inlineCode",{parentName:"li"},"transaction")," variable is available in the blocks.")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},"@version 1\ncondition triggered_by: transaction do\n ...\nend\n\nactions triggered_by: transaction do\n ...\nend\n")),(0,r.kt)("h3",{id:"contract-triggered-by-a-transaction-with-a-named-action"},"Contract triggered by a transaction with a named action"),(0,r.kt)("p",null,'The SC caller may be able to execute a specific "named" action with specified arguments on the Smart Contract.'),(0,r.kt)("p",null,"In this scenario:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"a ",(0,r.kt)("inlineCode",{parentName:"li"},"condition transaction")," may be used to check the incoming transaction (before executing the trigger)."),(0,r.kt)("li",{parentName:"ul"},"a ",(0,r.kt)("inlineCode",{parentName:"li"},"transaction")," variable is available in the blocks."),(0,r.kt)("li",{parentName:"ul"},"every ",(0,r.kt)("inlineCode",{parentName:"li"},"argument")," defined is available in the blocks.")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},"@version 1\ncondition triggered_by: transaction, on: vote_for_class_president(firstname, lastname) do\n ...\nend\n\nactions triggered_by: transaction, on: vote_for_class_president(firstname, lastname) do\n ...\nend\n")),(0,r.kt)("h3",{id:"contract-triggered-at-a-specific-date-and-time"},"Contract triggered at a specific date and time"),(0,r.kt)("p",null,"You may trigger a contract at a specific date and time. You need to specify a ",(0,r.kt)("a",{parentName:"p",href:"https://en.wikipedia.org/wiki/Unix_time"},"Unix time")," (seconds since epoch)."),(0,r.kt)("admonition",{title:"The datetime must be rounded to the minute",type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"A contract will not parse if the datetime isn't rounded.")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},"@version 1\nactions triggered_by: datetime, at: 1676332800 do\n ...\nend\n")),(0,r.kt)("h3",{id:"contract-triggered-at-a-specific-interval"},"Contract triggered at a specific interval"),(0,r.kt)("p",null,"You may trigger a contract at a specific interval. You need to specify a ",(0,r.kt)("a",{parentName:"p",href:"https://en.wikipedia.org/wiki/Cron"},"CRON Format String"),"."),(0,r.kt)("admonition",{type:"note"},(0,r.kt)("p",{parentName:"admonition"},"The minimum granularity is the minute. Except in local development where the minimum granularity is the second.")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},'@version 1\n\n# \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 minute (0 - 59)\n# \u2502 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 hour (0 - 23)\n# \u2502 \u2502 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 day of the month (1 - 31)\n# \u2502 \u2502 \u2502 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 month (1 - 12)\n# \u2502 \u2502 \u2502 \u2502 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 day of the week (0 - 6) (Sunday to Saturday)\n# \u2502 \u2502 \u2502 \u2502 \u2502\n# \u2502 \u2502 \u2502 \u2502 \u2502\n# \u2502 \u2502 \u2502 \u2502 \u2502\n# * * * * *\nactions triggered_by: interval, at: "0 8 * * *" do\n # do something each day at 8AM UTC\nend\n')),(0,r.kt)("h3",{id:"contract-triggered-on-every-oracle-transaction"},"Contract triggered on every Oracle transaction"),(0,r.kt)("p",null,"You may trigger a contract on every Oracle transaction."),(0,r.kt)("p",null,"In this scenario:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"a ",(0,r.kt)("inlineCode",{parentName:"li"},"condition oracle")," must be used to check the oracle transaction (to avoid running a contract if the oracle does not contain what you require)"),(0,r.kt)("li",{parentName:"ul"},"a ",(0,r.kt)("inlineCode",{parentName:"li"},"transaction")," variable is available in the blocks.")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},"@version 1\ncondition triggered_by: oracle do\n # use transaction.content to make sure the oracle has the data you require\nend\nactions triggered_by: oracle do\n # do something with transaction.content\nend\n")),(0,r.kt)("h3",{id:"multiple-triggers"},"Multiple triggers"),(0,r.kt)("p",null,"Only named action triggers may have multiple triggers. ",(0,r.kt)("strong",{parentName:"p"},"Other triggers are limited to 1 per type"),"."),(0,r.kt)("p",null,"DO:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},'@version 1\n\nactions triggered_by: transaction do\n ...\nend\n\nactions triggered_by: transaction, on: upgrade() do\n ...\nend\n\nactions triggered_by: transaction, on: calculate(x, y) do\n ...\nend\n\nactions triggered_by: interval, at: "0 8 * * *" do\n ...\nend\n')),(0,r.kt)("p",null,"DON'T:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},'@version 1\n\nactions triggered_by: interval, at: "0 9 * * *" do\n ...\nend\n\nactions triggered_by: interval, at: "0 8 * * *" do\n ...\nend\n')),(0,r.kt)("p",null,"DON'T:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},"@version 1\n\nactions triggered_by: transaction do\n ...\nend\n\nactions triggered_by: transaction do\n ...\nend\n")),(0,r.kt)("p",null,"DON'T:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},"@version 1\n\nactions triggered_by: datetime, at: 1693519200 do\n ...\nend\n\nactions triggered_by: datetime, at: 1693605600 do\n ...\nend\n")),(0,r.kt)("p",null,"DON'T:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},"@version 1\n\nactions triggered_by: transaction, on: lock(x, y) do\n ...\nend\n\nactions triggered_by: transaction, on: lock(x, y) do\n ...\nend\n")))}p.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6289],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>m});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),s=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},d=function(e){var t=s(e.components);return a.createElement(l.Provider,{value:t},e.children)},g="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,l=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),g=s(n),u=r,m=g["".concat(l,".").concat(u)]||g[u]||p[u]||i;return n?a.createElement(m,o(o({ref:t},d),{},{components:n})):a.createElement(m,o({ref:t},d))}));function m(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,o=new Array(i);o[0]=u;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[g]="string"==typeof e?e:r,o[1]=c;for(var s=2;s{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>p,frontMatter:()=>i,metadata:()=>c,toc:()=>s});var a=n(87462),r=(n(67294),n(3905));n(8209);const i={id:"triggers",title:"Smart Contracts - Triggers",sidebar_label:"Triggers",sidebar_position:1},o=void 0,c={unversionedId:"build/smart-contracts/language/triggers",id:"build/smart-contracts/language/triggers",title:"Smart Contracts - Triggers",description:"Contract triggered by a transaction",source:"@site/docs/build/smart-contracts/language/triggers.md",sourceDirName:"build/smart-contracts/language",slug:"/build/smart-contracts/language/triggers",permalink:"/build/smart-contracts/language/triggers",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",sidebarPosition:1,frontMatter:{id:"triggers",title:"Smart Contracts - Triggers",sidebar_label:"Triggers",sidebar_position:1},sidebar:"docs",previous:{title:"Language",permalink:"/build/smart-contracts/language/"},next:{title:"Condition",permalink:"/build/smart-contracts/language/condition"}},l={},s=[{value:"Contract triggered by a transaction",id:"contract-triggered-by-a-transaction",level:3},{value:"Contract triggered by a transaction with a named action",id:"contract-triggered-by-a-transaction-with-a-named-action",level:3},{value:"Contract triggered at a specific date and time",id:"contract-triggered-at-a-specific-date-and-time",level:3},{value:"Contract triggered at a specific interval",id:"contract-triggered-at-a-specific-interval",level:3},{value:"Contract triggered on every Oracle transaction",id:"contract-triggered-on-every-oracle-transaction",level:3},{value:"Multiple triggers",id:"multiple-triggers",level:3}],d={toc:s},g="wrapper";function p(e){let{components:t,...n}=e;return(0,r.kt)(g,(0,a.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h3",{id:"contract-triggered-by-a-transaction"},"Contract triggered by a transaction"),(0,r.kt)("p",null,"To trigger a SC execution, the incoming transaction must add the SC address in the ",(0,r.kt)("inlineCode",{parentName:"p"},"recipients")," part of the transaction."),(0,r.kt)("admonition",{type:"tip"},(0,r.kt)("p",{parentName:"admonition"},"This allows to activate a SC without sending funds to it, or to send funds to it without activating the code execution."),(0,r.kt)("p",{parentName:"admonition"},"Because the ",(0,r.kt)("inlineCode",{parentName:"p"},"recipients")," field is a list, you can trigger multiple contracts in the same transaction \ud83d\ude09")),(0,r.kt)("p",null,"In this scenario:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"a ",(0,r.kt)("inlineCode",{parentName:"li"},"condition transaction")," may be used to check the incoming transaction (before executing the trigger)."),(0,r.kt)("li",{parentName:"ul"},"a ",(0,r.kt)("inlineCode",{parentName:"li"},"transaction")," variable is available in the blocks.")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},"@version 1\ncondition triggered_by: transaction do\n ...\nend\n\nactions triggered_by: transaction do\n ...\nend\n")),(0,r.kt)("h3",{id:"contract-triggered-by-a-transaction-with-a-named-action"},"Contract triggered by a transaction with a named action"),(0,r.kt)("p",null,'The SC caller may be able to execute a specific "named" action with specified arguments on the Smart Contract.'),(0,r.kt)("p",null,"In this scenario:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"a ",(0,r.kt)("inlineCode",{parentName:"li"},"condition transaction")," may be used to check the incoming transaction (before executing the trigger)."),(0,r.kt)("li",{parentName:"ul"},"a ",(0,r.kt)("inlineCode",{parentName:"li"},"transaction")," variable is available in the blocks."),(0,r.kt)("li",{parentName:"ul"},"every ",(0,r.kt)("inlineCode",{parentName:"li"},"argument")," defined is available in the blocks.")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},"@version 1\ncondition triggered_by: transaction, on: vote_for_class_president(firstname, lastname) do\n ...\nend\n\nactions triggered_by: transaction, on: vote_for_class_president(firstname, lastname) do\n ...\nend\n")),(0,r.kt)("h3",{id:"contract-triggered-at-a-specific-date-and-time"},"Contract triggered at a specific date and time"),(0,r.kt)("p",null,"You may trigger a contract at a specific date and time. You need to specify a ",(0,r.kt)("a",{parentName:"p",href:"https://en.wikipedia.org/wiki/Unix_time"},"Unix time")," (seconds since epoch)."),(0,r.kt)("admonition",{title:"The datetime must be rounded to the minute",type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"A contract will not parse if the datetime isn't rounded.")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},"@version 1\nactions triggered_by: datetime, at: 1676332800 do\n ...\nend\n")),(0,r.kt)("h3",{id:"contract-triggered-at-a-specific-interval"},"Contract triggered at a specific interval"),(0,r.kt)("p",null,"You may trigger a contract at a specific interval. You need to specify a ",(0,r.kt)("a",{parentName:"p",href:"https://en.wikipedia.org/wiki/Cron"},"CRON Format String"),"."),(0,r.kt)("admonition",{type:"note"},(0,r.kt)("p",{parentName:"admonition"},"The minimum granularity is the minute. Except in local development where the minimum granularity is the second.")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},'@version 1\n\n# \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 minute (0 - 59)\n# \u2502 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 hour (0 - 23)\n# \u2502 \u2502 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 day of the month (1 - 31)\n# \u2502 \u2502 \u2502 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 month (1 - 12)\n# \u2502 \u2502 \u2502 \u2502 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 day of the week (0 - 6) (Sunday to Saturday)\n# \u2502 \u2502 \u2502 \u2502 \u2502\n# \u2502 \u2502 \u2502 \u2502 \u2502\n# \u2502 \u2502 \u2502 \u2502 \u2502\n# * * * * *\nactions triggered_by: interval, at: "0 8 * * *" do\n # do something each day at 8AM UTC\nend\n')),(0,r.kt)("h3",{id:"contract-triggered-on-every-oracle-transaction"},"Contract triggered on every Oracle transaction"),(0,r.kt)("p",null,"You may trigger a contract on every Oracle transaction."),(0,r.kt)("p",null,"In this scenario:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"a ",(0,r.kt)("inlineCode",{parentName:"li"},"condition oracle")," must be used to check the oracle transaction (to avoid running a contract if the oracle does not contain what you require)"),(0,r.kt)("li",{parentName:"ul"},"a ",(0,r.kt)("inlineCode",{parentName:"li"},"transaction")," variable is available in the blocks.")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},"@version 1\ncondition triggered_by: oracle do\n # use transaction.content to make sure the oracle has the data you require\nend\nactions triggered_by: oracle do\n # do something with transaction.content\nend\n")),(0,r.kt)("h3",{id:"multiple-triggers"},"Multiple triggers"),(0,r.kt)("p",null,"Only named action triggers may have multiple triggers. ",(0,r.kt)("strong",{parentName:"p"},"Other triggers are limited to 1 per type"),"."),(0,r.kt)("p",null,"DO:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},'@version 1\n\nactions triggered_by: transaction do\n ...\nend\n\nactions triggered_by: transaction, on: upgrade() do\n ...\nend\n\nactions triggered_by: transaction, on: calculate(x, y) do\n ...\nend\n\nactions triggered_by: interval, at: "0 8 * * *" do\n ...\nend\n')),(0,r.kt)("p",null,"DON'T:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},'@version 1\n\nactions triggered_by: interval, at: "0 9 * * *" do\n ...\nend\n\nactions triggered_by: interval, at: "0 8 * * *" do\n ...\nend\n')),(0,r.kt)("p",null,"DON'T:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},"@version 1\n\nactions triggered_by: transaction do\n ...\nend\n\nactions triggered_by: transaction do\n ...\nend\n")),(0,r.kt)("p",null,"DON'T:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},"@version 1\n\nactions triggered_by: datetime, at: 1693519200 do\n ...\nend\n\nactions triggered_by: datetime, at: 1693605600 do\n ...\nend\n")),(0,r.kt)("p",null,"DON'T:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},"@version 1\n\nactions triggered_by: transaction, on: lock(x, y) do\n ...\nend\n\nactions triggered_by: transaction, on: lock(x, y) do\n ...\nend\n")))}p.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/199f22fd.7360f299.js b/assets/js/199f22fd.940f0505.js similarity index 97% rename from assets/js/199f22fd.7360f299.js rename to assets/js/199f22fd.940f0505.js index 674cede55..27729c5e3 100644 --- a/assets/js/199f22fd.7360f299.js +++ b/assets/js/199f22fd.940f0505.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1263],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>f});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),c=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(l.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=c(n),m=a,f=d["".concat(l,".").concat(m)]||d[m]||u[m]||o;return n?r.createElement(f,i(i({ref:t},p),{},{components:n})):r.createElement(f,i({ref:t},p))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=m;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[d]="string"==typeof e?e:a,i[1]=s;for(var c=2;c{n.r(t),n.d(t,{Badge:()=>u,Bullet:()=>p,Details:()=>f,SpecifiedBy:()=>d,assets:()=>c,contentTitle:()=>s,default:()=>g,frontMatter:()=>i,metadata:()=>l,toc:()=>m});var r=n(87462),a=n(67294),o=n(3905);n(8209);const i={id:"nearest-endpoints",title:"nearestEndpoints",hide_table_of_contents:!1},s=void 0,l={unversionedId:"build/api/schema/queries/nearest-endpoints",id:"build/api/schema/queries/nearest-endpoints",title:"nearestEndpoints",description:"List the nearest endpoints nodes from the client's IP",source:"@site/docs/build/api/schema/queries/nearest-endpoints.mdx",sourceDirName:"build/api/schema/queries",slug:"/build/api/schema/queries/nearest-endpoints",permalink:"/build/api/schema/queries/nearest-endpoints",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"nearest-endpoints",title:"nearestEndpoints",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"lastTransaction",permalink:"/build/api/schema/queries/last-transaction"},next:{title:"networkTransactions",permalink:"/build/api/schema/queries/network-transactions"}},c={},p=()=>(0,o.kt)(a.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),d=e=>(0,o.kt)(a.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,o.kt)(a.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),m=[{value:"Type",id:"type",level:3},{value:'Endpoint ',id:"endpoint-",level:4}],f=e=>{let{dataOpen:t,dataClose:n,children:i,startOpen:s=!1}=e;const[l,c]=(0,a.useState)(s);return(0,o.kt)("details",(0,r.Z)({},l?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),c((e=>!e))},style:{listStyle:"none"}},l?t:n),l&&i)},b={Bullet:p,SpecifiedBy:d,Badge:u,toc:m,Details:f},y="wrapper";function g(e){let{components:t,...n}=e;return(0,o.kt)(y,(0,r.Z)({},b,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"List the nearest endpoints nodes from the client's IP"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"nearestEndpoints: [Endpoint]\n")),(0,o.kt)("h3",{id:"type"},"Type"),(0,o.kt)("h4",{id:"endpoint-"},(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/endpoint"},(0,o.kt)("inlineCode",{parentName:"a"},"Endpoint"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,o.kt)("blockquote",null,(0,o.kt)("p",{parentName:"blockquote"},"[Endpoint]"," represents a network node's endpoint")))}g.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1263],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>f});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),c=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(l.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=c(n),m=a,f=d["".concat(l,".").concat(m)]||d[m]||u[m]||o;return n?r.createElement(f,i(i({ref:t},p),{},{components:n})):r.createElement(f,i({ref:t},p))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=m;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[d]="string"==typeof e?e:a,i[1]=s;for(var c=2;c{n.r(t),n.d(t,{Badge:()=>u,Bullet:()=>p,Details:()=>f,SpecifiedBy:()=>d,assets:()=>c,contentTitle:()=>s,default:()=>g,frontMatter:()=>i,metadata:()=>l,toc:()=>m});var r=n(87462),a=n(67294),o=n(3905);n(8209);const i={id:"nearest-endpoints",title:"nearestEndpoints",hide_table_of_contents:!1},s=void 0,l={unversionedId:"build/api/schema/queries/nearest-endpoints",id:"build/api/schema/queries/nearest-endpoints",title:"nearestEndpoints",description:"List the nearest endpoints nodes from the client's IP",source:"@site/docs/build/api/schema/queries/nearest-endpoints.mdx",sourceDirName:"build/api/schema/queries",slug:"/build/api/schema/queries/nearest-endpoints",permalink:"/build/api/schema/queries/nearest-endpoints",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"nearest-endpoints",title:"nearestEndpoints",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"lastTransaction",permalink:"/build/api/schema/queries/last-transaction"},next:{title:"networkTransactions",permalink:"/build/api/schema/queries/network-transactions"}},c={},p=()=>(0,o.kt)(a.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),d=e=>(0,o.kt)(a.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,o.kt)(a.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),m=[{value:"Type",id:"type",level:3},{value:'Endpoint ',id:"endpoint-",level:4}],f=e=>{let{dataOpen:t,dataClose:n,children:i,startOpen:s=!1}=e;const[l,c]=(0,a.useState)(s);return(0,o.kt)("details",(0,r.Z)({},l?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),c((e=>!e))},style:{listStyle:"none"}},l?t:n),l&&i)},b={Bullet:p,SpecifiedBy:d,Badge:u,toc:m,Details:f},y="wrapper";function g(e){let{components:t,...n}=e;return(0,o.kt)(y,(0,r.Z)({},b,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"List the nearest endpoints nodes from the client's IP"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"nearestEndpoints: [Endpoint]\n")),(0,o.kt)("h3",{id:"type"},"Type"),(0,o.kt)("h4",{id:"endpoint-"},(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/endpoint"},(0,o.kt)("inlineCode",{parentName:"a"},"Endpoint"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,o.kt)("blockquote",null,(0,o.kt)("p",{parentName:"blockquote"},"[Endpoint]"," represents a network node's endpoint")))}g.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/1b1339dc.66e19035.js b/assets/js/1b1339dc.8be64298.js similarity index 98% rename from assets/js/1b1339dc.66e19035.js rename to assets/js/1b1339dc.8be64298.js index b4f512599..92a22df77 100644 --- a/assets/js/1b1339dc.66e19035.js +++ b/assets/js/1b1339dc.8be64298.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[866],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>f});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function l(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var c=a.createContext({}),s=function(e){var t=a.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},p=function(e){var t=s(e.components);return a.createElement(c.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,c=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),d=s(r),m=n,f=d["".concat(c,".").concat(m)]||d[m]||u[m]||o;return r?a.createElement(f,l(l({ref:t},p),{},{components:r})):a.createElement(f,l({ref:t},p))}));function f(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,l=new Array(o);l[0]=m;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[d]="string"==typeof e?e:n,l[1]=i;for(var s=2;s{r.r(t),r.d(t,{Badge:()=>u,Bullet:()=>p,Details:()=>f,SpecifiedBy:()=>d,assets:()=>s,contentTitle:()=>i,default:()=>g,frontMatter:()=>l,metadata:()=>c,toc:()=>m});var a=r(87462),n=r(67294),o=r(3905);r(8209);const l={id:"error-data",title:"ErrorData",hide_table_of_contents:!1},i=void 0,c={unversionedId:"build/api/schema/scalars/error-data",id:"build/api/schema/scalars/error-data",title:"ErrorData",description:"Date returned with the error.",source:"@site/docs/build/api/schema/scalars/error-data.mdx",sourceDirName:"build/api/schema/scalars",slug:"/build/api/schema/scalars/error-data",permalink:"/build/api/schema/scalars/error-data",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"error-data",title:"ErrorData",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"Content",permalink:"/build/api/schema/scalars/content"},next:{title:"Float",permalink:"/build/api/schema/scalars/float"}},s={},p=()=>(0,o.kt)(n.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),d=e=>(0,o.kt)(n.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,o.kt)(n.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),m=[{value:"Member of",id:"member-of",level:3}],f=e=>{let{dataOpen:t,dataClose:r,children:l,startOpen:i=!1}=e;const[c,s]=(0,n.useState)(i);return(0,o.kt)("details",(0,a.Z)({},c?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),s((e=>!e))},style:{listStyle:"none"}},c?t:r),c&&l)},b={Bullet:p,SpecifiedBy:d,Badge:u,toc:m,Details:f},y="wrapper";function g(e){let{components:t,...r}=e;return(0,o.kt)(y,(0,a.Z)({},b,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Date returned with the error.\nIt could be any type (string, map, list, number or null)"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"scalar ErrorData\n")),(0,o.kt)("h3",{id:"member-of"},"Member of"),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/error-details"},(0,o.kt)("inlineCode",{parentName:"a"},"ErrorDetails"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}g.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[866],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>f});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function l(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var c=a.createContext({}),s=function(e){var t=a.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},p=function(e){var t=s(e.components);return a.createElement(c.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,c=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),d=s(r),m=n,f=d["".concat(c,".").concat(m)]||d[m]||u[m]||o;return r?a.createElement(f,l(l({ref:t},p),{},{components:r})):a.createElement(f,l({ref:t},p))}));function f(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,l=new Array(o);l[0]=m;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[d]="string"==typeof e?e:n,l[1]=i;for(var s=2;s{r.r(t),r.d(t,{Badge:()=>u,Bullet:()=>p,Details:()=>f,SpecifiedBy:()=>d,assets:()=>s,contentTitle:()=>i,default:()=>g,frontMatter:()=>l,metadata:()=>c,toc:()=>m});var a=r(87462),n=r(67294),o=r(3905);r(8209);const l={id:"error-data",title:"ErrorData",hide_table_of_contents:!1},i=void 0,c={unversionedId:"build/api/schema/scalars/error-data",id:"build/api/schema/scalars/error-data",title:"ErrorData",description:"Date returned with the error.",source:"@site/docs/build/api/schema/scalars/error-data.mdx",sourceDirName:"build/api/schema/scalars",slug:"/build/api/schema/scalars/error-data",permalink:"/build/api/schema/scalars/error-data",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"error-data",title:"ErrorData",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"Content",permalink:"/build/api/schema/scalars/content"},next:{title:"Float",permalink:"/build/api/schema/scalars/float"}},s={},p=()=>(0,o.kt)(n.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),d=e=>(0,o.kt)(n.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,o.kt)(n.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),m=[{value:"Member of",id:"member-of",level:3}],f=e=>{let{dataOpen:t,dataClose:r,children:l,startOpen:i=!1}=e;const[c,s]=(0,n.useState)(i);return(0,o.kt)("details",(0,a.Z)({},c?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),s((e=>!e))},style:{listStyle:"none"}},c?t:r),c&&l)},b={Bullet:p,SpecifiedBy:d,Badge:u,toc:m,Details:f},y="wrapper";function g(e){let{components:t,...r}=e;return(0,o.kt)(y,(0,a.Z)({},b,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Date returned with the error.\nIt could be any type (string, map, list, number or null)"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"scalar ErrorData\n")),(0,o.kt)("h3",{id:"member-of"},"Member of"),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/error-details"},(0,o.kt)("inlineCode",{parentName:"a"},"ErrorDetails"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}g.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file diff --git a/assets/js/1b311f41.4afc1c94.js b/assets/js/1b311f41.440095ab.js similarity index 98% rename from assets/js/1b311f41.4afc1c94.js rename to assets/js/1b311f41.440095ab.js index fa7eb23c0..7f3b8b734 100644 --- a/assets/js/1b311f41.4afc1c94.js +++ b/assets/js/1b311f41.440095ab.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3355],{3905:(e,t,a)=>{a.d(t,{Zo:()=>l,kt:()=>b});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function s(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var c=n.createContext({}),d=function(e){var t=n.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):s(s({},t),e)),a},l=function(e){var t=d(e.components);return n.createElement(c.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,c=e.parentName,l=i(e,["components","mdxType","originalType","parentName"]),p=d(a),m=r,b=p["".concat(c,".").concat(m)]||p[m]||u[m]||o;return a?n.createElement(b,s(s({ref:t},l),{},{components:a})):n.createElement(b,s({ref:t},l))}));function b(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,s=new Array(o);s[0]=m;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[p]="string"==typeof e?e:r,s[1]=i;for(var d=2;d{a.r(t),a.d(t,{Badge:()=>u,Bullet:()=>l,Details:()=>b,SpecifiedBy:()=>p,assets:()=>d,contentTitle:()=>i,default:()=>f,frontMatter:()=>s,metadata:()=>c,toc:()=>m});var n=a(87462),r=a(67294),o=a(3905);a(8209);const s={id:"transaction-chain",title:"transactionChain",hide_table_of_contents:!1},i=void 0,c={unversionedId:"build/api/schema/queries/transaction-chain",id:"build/api/schema/queries/transaction-chain",title:"transactionChain",description:"Query the network to find a transaction chain",source:"@site/docs/build/api/schema/queries/transaction-chain.mdx",sourceDirName:"build/api/schema/queries",slug:"/build/api/schema/queries/transaction-chain",permalink:"/build/api/schema/queries/transaction-chain",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"transaction-chain",title:"transactionChain",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"token",permalink:"/build/api/schema/queries/token"},next:{title:"transactionInputs",permalink:"/build/api/schema/queries/transaction-inputs"}},d={},l=()=>(0,o.kt)(r.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=e=>(0,o.kt)(r.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,o.kt)(r.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),m=[{value:"Arguments",id:"arguments",level:3},{value:'transactionChain.addressAddress! ',id:"code-style-fontweight-normal-transactionchainbaddressbcodeaddress--",level:4},{value:'transactionChain.fromTimestamp ',id:"code-style-fontweight-normal-transactionchainbfrombcodetimestamp-",level:4},{value:'transactionChain.orderSortOrder ',id:"code-style-fontweight-normal-transactionchainborderbcodesortorder-",level:4},{value:'transactionChain.pagingAddressAddress ',id:"code-style-fontweight-normal-transactionchainbpagingaddressbcodeaddress-",level:4},{value:"Type",id:"type",level:3},{value:'Transaction ',id:"transaction-",level:4}],b=e=>{let{dataOpen:t,dataClose:a,children:s,startOpen:i=!1}=e;const[c,d]=(0,r.useState)(i);return(0,o.kt)("details",(0,n.Z)({},c?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),d((e=>!e))},style:{listStyle:"none"}},c?t:a),c&&s)},h={Bullet:l,SpecifiedBy:p,Badge:u,toc:m,Details:b},g="wrapper";function f(e){let{components:t,...a}=e;return(0,o.kt)(g,(0,n.Z)({},h,a,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Query the network to find a transaction chain"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"transactionChain(\n address: Address!\n from: Timestamp\n order: SortOrder\n pagingAddress: Address\n): [Transaction]\n")),(0,o.kt)("h3",{id:"arguments"},"Arguments"),(0,o.kt)("h4",{id:"code-style-fontweight-normal-transactionchainbaddressbcodeaddress--"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"transactionChain.",(0,o.kt)("b",null,"address"))),(0,o.kt)(l,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/address"},(0,o.kt)("inlineCode",{parentName:"a"},"Address!"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"non-null",mdxType:"Badge"})," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h4",{id:"code-style-fontweight-normal-transactionchainbfrombcodetimestamp-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"transactionChain.",(0,o.kt)("b",null,"from"))),(0,o.kt)(l,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/timestamp"},(0,o.kt)("inlineCode",{parentName:"a"},"Timestamp"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h4",{id:"code-style-fontweight-normal-transactionchainborderbcodesortorder-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"transactionChain.",(0,o.kt)("b",null,"order"))),(0,o.kt)(l,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/enums/sort-order"},(0,o.kt)("inlineCode",{parentName:"a"},"SortOrder"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"enum",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h4",{id:"code-style-fontweight-normal-transactionchainbpagingaddressbcodeaddress-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"transactionChain.",(0,o.kt)("b",null,"pagingAddress"))),(0,o.kt)(l,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/address"},(0,o.kt)("inlineCode",{parentName:"a"},"Address"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h3",{id:"type"},"Type"),(0,o.kt)("h4",{id:"transaction-"},(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/transaction"},(0,o.kt)("inlineCode",{parentName:"a"},"Transaction"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,o.kt)("blockquote",null,(0,o.kt)("p",{parentName:"blockquote"},"[Transaction]"," represents a unitary transaction in the Archethic network.")))}f.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3355],{3905:(e,t,a)=>{a.d(t,{Zo:()=>l,kt:()=>b});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function s(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var c=n.createContext({}),d=function(e){var t=n.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):s(s({},t),e)),a},l=function(e){var t=d(e.components);return n.createElement(c.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,c=e.parentName,l=i(e,["components","mdxType","originalType","parentName"]),p=d(a),m=r,b=p["".concat(c,".").concat(m)]||p[m]||u[m]||o;return a?n.createElement(b,s(s({ref:t},l),{},{components:a})):n.createElement(b,s({ref:t},l))}));function b(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,s=new Array(o);s[0]=m;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[p]="string"==typeof e?e:r,s[1]=i;for(var d=2;d{a.r(t),a.d(t,{Badge:()=>u,Bullet:()=>l,Details:()=>b,SpecifiedBy:()=>p,assets:()=>d,contentTitle:()=>i,default:()=>f,frontMatter:()=>s,metadata:()=>c,toc:()=>m});var n=a(87462),r=a(67294),o=a(3905);a(8209);const s={id:"transaction-chain",title:"transactionChain",hide_table_of_contents:!1},i=void 0,c={unversionedId:"build/api/schema/queries/transaction-chain",id:"build/api/schema/queries/transaction-chain",title:"transactionChain",description:"Query the network to find a transaction chain",source:"@site/docs/build/api/schema/queries/transaction-chain.mdx",sourceDirName:"build/api/schema/queries",slug:"/build/api/schema/queries/transaction-chain",permalink:"/build/api/schema/queries/transaction-chain",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"transaction-chain",title:"transactionChain",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"token",permalink:"/build/api/schema/queries/token"},next:{title:"transactionInputs",permalink:"/build/api/schema/queries/transaction-inputs"}},d={},l=()=>(0,o.kt)(r.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=e=>(0,o.kt)(r.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,o.kt)(r.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),m=[{value:"Arguments",id:"arguments",level:3},{value:'transactionChain.addressAddress! ',id:"code-style-fontweight-normal-transactionchainbaddressbcodeaddress--",level:4},{value:'transactionChain.fromTimestamp ',id:"code-style-fontweight-normal-transactionchainbfrombcodetimestamp-",level:4},{value:'transactionChain.orderSortOrder ',id:"code-style-fontweight-normal-transactionchainborderbcodesortorder-",level:4},{value:'transactionChain.pagingAddressAddress ',id:"code-style-fontweight-normal-transactionchainbpagingaddressbcodeaddress-",level:4},{value:"Type",id:"type",level:3},{value:'Transaction ',id:"transaction-",level:4}],b=e=>{let{dataOpen:t,dataClose:a,children:s,startOpen:i=!1}=e;const[c,d]=(0,r.useState)(i);return(0,o.kt)("details",(0,n.Z)({},c?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),d((e=>!e))},style:{listStyle:"none"}},c?t:a),c&&s)},h={Bullet:l,SpecifiedBy:p,Badge:u,toc:m,Details:b},g="wrapper";function f(e){let{components:t,...a}=e;return(0,o.kt)(g,(0,n.Z)({},h,a,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Query the network to find a transaction chain"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"transactionChain(\n address: Address!\n from: Timestamp\n order: SortOrder\n pagingAddress: Address\n): [Transaction]\n")),(0,o.kt)("h3",{id:"arguments"},"Arguments"),(0,o.kt)("h4",{id:"code-style-fontweight-normal-transactionchainbaddressbcodeaddress--"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"transactionChain.",(0,o.kt)("b",null,"address"))),(0,o.kt)(l,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/address"},(0,o.kt)("inlineCode",{parentName:"a"},"Address!"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"non-null",mdxType:"Badge"})," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h4",{id:"code-style-fontweight-normal-transactionchainbfrombcodetimestamp-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"transactionChain.",(0,o.kt)("b",null,"from"))),(0,o.kt)(l,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/timestamp"},(0,o.kt)("inlineCode",{parentName:"a"},"Timestamp"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h4",{id:"code-style-fontweight-normal-transactionchainborderbcodesortorder-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"transactionChain.",(0,o.kt)("b",null,"order"))),(0,o.kt)(l,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/enums/sort-order"},(0,o.kt)("inlineCode",{parentName:"a"},"SortOrder"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"enum",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h4",{id:"code-style-fontweight-normal-transactionchainbpagingaddressbcodeaddress-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"transactionChain.",(0,o.kt)("b",null,"pagingAddress"))),(0,o.kt)(l,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/address"},(0,o.kt)("inlineCode",{parentName:"a"},"Address"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h3",{id:"type"},"Type"),(0,o.kt)("h4",{id:"transaction-"},(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/transaction"},(0,o.kt)("inlineCode",{parentName:"a"},"Transaction"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,o.kt)("blockquote",null,(0,o.kt)("p",{parentName:"blockquote"},"[Transaction]"," represents a unitary transaction in the Archethic network.")))}f.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file diff --git a/assets/js/2159a0a5.e34cb647.js b/assets/js/2159a0a5.fa657859.js similarity index 98% rename from assets/js/2159a0a5.e34cb647.js rename to assets/js/2159a0a5.fa657859.js index 2d48e889f..477717d51 100644 --- a/assets/js/2159a0a5.e34cb647.js +++ b/assets/js/2159a0a5.fa657859.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7766],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>f});var a=n(67294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var s=a.createContext({}),c=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=c(e.components);return a.createElement(s.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var n=e.components,i=e.mdxType,r=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=c(n),d=i,f=u["".concat(s,".").concat(d)]||u[d]||m[d]||r;return n?a.createElement(f,o(o({ref:t},p),{},{components:n})):a.createElement(f,o({ref:t},p))}));function f(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=n.length,o=new Array(r);o[0]=d;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:i,o[1]=l;for(var c=2;c{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>r,metadata:()=>l,toc:()=>c});var a=n(87462),i=(n(67294),n(3905));n(8209);const r={id:"fee",title:"Transaction fees",sidebar_position:4},o=void 0,l={unversionedId:"learn/fee",id:"learn/fee",title:"Transaction fees",description:"Archethic Blockchain is using specific heuristic algorithms to ensure the best transaction's distribution.",source:"@site/docs/learn/transaction-fees.md",sourceDirName:"learn",slug:"/learn/fee",permalink:"/learn/fee",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",sidebarPosition:4,frontMatter:{id:"fee",title:"Transaction fees",sidebar_position:4},sidebar:"docs",previous:{title:"Transaction chains",permalink:"/learn/transaction-chain"},next:{title:"Transaction types",permalink:"/learn/transaction-types"}},s={},c=[{value:"Calculation",id:"calculation",level:2},{value:"Transaction's type particularities",id:"transactions-type-particularities",level:2},{value:"Network",id:"network",level:3},{value:"Keychain",id:"keychain",level:3},{value:"Token",id:"token",level:3}],p={toc:c},u="wrapper";function m(e){let{components:t,...r}=e;return(0,i.kt)(u,(0,a.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"Archethic Blockchain is using specific heuristic algorithms to ensure the best transaction's distribution."),(0,i.kt)("p",null,"The fees are calculated according to the real costs of the network (size, complexity) and is based on a minimal fee ($0.01) indexed to the real UCO's price (using ",(0,i.kt)("a",{parentName:"p",href:"/learn/oracle-chain"},"Oracle Chain"),")"),(0,i.kt)("p",null,"During the transaction validation, the entire fee is burned to make the UCO more rare.\nThis programmable destruction of the UCO ensures a deflation and increases the value of each token."),(0,i.kt)("p",null,"This way a fair reward mechanism is put in place for nodes regarding their work and their availability."),(0,i.kt)("h2",{id:"calculation"},"Calculation"),(0,i.kt)("p",null,"The transaction's fee computation is based on some properties:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Minimum fee: ",(0,i.kt)("em",{parentName:"p"},"$0.01 of the current UCO price"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Number of recipient (for transfers or smart contract calls)"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"1: no more additional fee ")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},">"," 1: each additional recipient will have an additional cost logarithmically. However we want to ensure for a simple transaction, the price doesn't go beyond $0.01. "),(0,i.kt)("admonition",{parentName:"li",type:"note"},(0,i.kt)("p",{parentName:"admonition"},"We take the assumption than a recipient replication cost is something around 1/3 of the load for a given transaction.\nIndeed, sending transaction to multiple leverages more resources in terms of network load and storage capability as the transaction must be replicated in all the chains.\nTo make it more fare, we apply a logarithmic progression, as the cost of replication might be reduced by the overlap of storage node election"))))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Size of the transaction: each stored byte will cost 10",(0,i.kt)("sup",null,"-8")," of the current UCO's price")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Number of replicas")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Smart contract execution fee:"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Cost of resulting transaction: During transaction's validation, we simulate the output's transaction from a smart contract execution and apply a transaction fee calculation."),(0,i.kt)("li",{parentName:"ul"},"Complexity of the smart contract execution (Coming soon)")))),(0,i.kt)("p",null,"Overall formula:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre"},"Transaction Fee = minimum fee (UCO's price)\n + fee for storage (size * nb of replicas)\n + fee for cost per recipients\n + fee for smart contract\n")),(0,i.kt)("admonition",{type:"info"},(0,i.kt)("p",{parentName:"admonition"},"Regular transfer of UCO to single person would cost around ~$0.01 (+/- additional information + nb of replicas)")),(0,i.kt)("admonition",{title:"Important",type:"caution"},(0,i.kt)("p",{parentName:"admonition"},"The $0.01 cost is static only as minimum fee for any transaction.\nDepending on the number of recipients, size, etc. the fee will increase, as it requires more work for the network")),(0,i.kt)("h2",{id:"transactions-type-particularities"},"Transaction's type particularities"),(0,i.kt)("h3",{id:"network"},"Network"),(0,i.kt)("p",null,"All the transactions with a transaction's type such as ",(0,i.kt)("inlineCode",{parentName:"p"},"node"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"node shared secrets"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"oracle"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"beacon chain"),", etc. don't cost fee, as their intent is only for network management."),(0,i.kt)("h3",{id:"keychain"},"Keychain"),(0,i.kt)("p",null,"Transactions to manage keychain for creation, updates or add new access don't cost fee, as this will be blockage to the adoption and there are just meant to ease the wallet management."),(0,i.kt)("h3",{id:"token"},"Token"),(0,i.kt)("p",null,"Archethic supports a token mining through a given type of transaction ",(0,i.kt)("inlineCode",{parentName:"p"},"token"),".\nBecause during this step validation nodes have to perform some additional work to create new unspent transaction outputs (UTXOs) and deliver them (if multiple - for example in a collection creation)."),(0,i.kt)("p",null,"Hence an additional fee is computed based on the number of UTXO to create."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Fungible tokens: there will only cost the minimum fee: $0.01 - as it's like doing some UCO transfer")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Non fungible tokens: These are tokens which each collection item have some unique properties and well identified. So a list of UTXO is created for each unique collection items. This creation will consume resources of computation, networking and storage."))),(0,i.kt)("p",null,"An additional fee is determined in that case through the following formula: "),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"(log10(number of utxos) + 1) * number of utxos * minimum fee")),(0,i.kt)("p",null,"So the transaction fee will gradually increase according of the number of unique token to create (= new UTXO)"),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(57626).Z,width:"811",height:"502"})),(0,i.kt)("admonition",{type:"info"},(0,i.kt)("p",{parentName:"admonition"},"Token definition allows to send at the time of minting to list of first recipients.\nHence, the rules to multiple transfers is applied to logarithmically increases the transaction's fee")))}m.isMDXComponent=!0},57626:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/nft_additional_fee-8c6d24177afeea4eba9d662d63304901.svg"},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7766],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>f});var a=n(67294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var s=a.createContext({}),c=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=c(e.components);return a.createElement(s.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var n=e.components,i=e.mdxType,r=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=c(n),d=i,f=u["".concat(s,".").concat(d)]||u[d]||m[d]||r;return n?a.createElement(f,o(o({ref:t},p),{},{components:n})):a.createElement(f,o({ref:t},p))}));function f(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=n.length,o=new Array(r);o[0]=d;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:i,o[1]=l;for(var c=2;c{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>r,metadata:()=>l,toc:()=>c});var a=n(87462),i=(n(67294),n(3905));n(8209);const r={id:"fee",title:"Transaction fees",sidebar_position:4},o=void 0,l={unversionedId:"learn/fee",id:"learn/fee",title:"Transaction fees",description:"Archethic Blockchain is using specific heuristic algorithms to ensure the best transaction's distribution.",source:"@site/docs/learn/transaction-fees.md",sourceDirName:"learn",slug:"/learn/fee",permalink:"/learn/fee",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",sidebarPosition:4,frontMatter:{id:"fee",title:"Transaction fees",sidebar_position:4},sidebar:"docs",previous:{title:"Transaction chains",permalink:"/learn/transaction-chain"},next:{title:"Transaction types",permalink:"/learn/transaction-types"}},s={},c=[{value:"Calculation",id:"calculation",level:2},{value:"Transaction's type particularities",id:"transactions-type-particularities",level:2},{value:"Network",id:"network",level:3},{value:"Keychain",id:"keychain",level:3},{value:"Token",id:"token",level:3}],p={toc:c},u="wrapper";function m(e){let{components:t,...r}=e;return(0,i.kt)(u,(0,a.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"Archethic Blockchain is using specific heuristic algorithms to ensure the best transaction's distribution."),(0,i.kt)("p",null,"The fees are calculated according to the real costs of the network (size, complexity) and is based on a minimal fee ($0.01) indexed to the real UCO's price (using ",(0,i.kt)("a",{parentName:"p",href:"/learn/oracle-chain"},"Oracle Chain"),")"),(0,i.kt)("p",null,"During the transaction validation, the entire fee is burned to make the UCO more rare.\nThis programmable destruction of the UCO ensures a deflation and increases the value of each token."),(0,i.kt)("p",null,"This way a fair reward mechanism is put in place for nodes regarding their work and their availability."),(0,i.kt)("h2",{id:"calculation"},"Calculation"),(0,i.kt)("p",null,"The transaction's fee computation is based on some properties:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Minimum fee: ",(0,i.kt)("em",{parentName:"p"},"$0.01 of the current UCO price"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Number of recipient (for transfers or smart contract calls)"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"1: no more additional fee ")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},">"," 1: each additional recipient will have an additional cost logarithmically. However we want to ensure for a simple transaction, the price doesn't go beyond $0.01. "),(0,i.kt)("admonition",{parentName:"li",type:"note"},(0,i.kt)("p",{parentName:"admonition"},"We take the assumption than a recipient replication cost is something around 1/3 of the load for a given transaction.\nIndeed, sending transaction to multiple leverages more resources in terms of network load and storage capability as the transaction must be replicated in all the chains.\nTo make it more fare, we apply a logarithmic progression, as the cost of replication might be reduced by the overlap of storage node election"))))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Size of the transaction: each stored byte will cost 10",(0,i.kt)("sup",null,"-8")," of the current UCO's price")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Number of replicas")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Smart contract execution fee:"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Cost of resulting transaction: During transaction's validation, we simulate the output's transaction from a smart contract execution and apply a transaction fee calculation."),(0,i.kt)("li",{parentName:"ul"},"Complexity of the smart contract execution (Coming soon)")))),(0,i.kt)("p",null,"Overall formula:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre"},"Transaction Fee = minimum fee (UCO's price)\n + fee for storage (size * nb of replicas)\n + fee for cost per recipients\n + fee for smart contract\n")),(0,i.kt)("admonition",{type:"info"},(0,i.kt)("p",{parentName:"admonition"},"Regular transfer of UCO to single person would cost around ~$0.01 (+/- additional information + nb of replicas)")),(0,i.kt)("admonition",{title:"Important",type:"caution"},(0,i.kt)("p",{parentName:"admonition"},"The $0.01 cost is static only as minimum fee for any transaction.\nDepending on the number of recipients, size, etc. the fee will increase, as it requires more work for the network")),(0,i.kt)("h2",{id:"transactions-type-particularities"},"Transaction's type particularities"),(0,i.kt)("h3",{id:"network"},"Network"),(0,i.kt)("p",null,"All the transactions with a transaction's type such as ",(0,i.kt)("inlineCode",{parentName:"p"},"node"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"node shared secrets"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"oracle"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"beacon chain"),", etc. don't cost fee, as their intent is only for network management."),(0,i.kt)("h3",{id:"keychain"},"Keychain"),(0,i.kt)("p",null,"Transactions to manage keychain for creation, updates or add new access don't cost fee, as this will be blockage to the adoption and there are just meant to ease the wallet management."),(0,i.kt)("h3",{id:"token"},"Token"),(0,i.kt)("p",null,"Archethic supports a token mining through a given type of transaction ",(0,i.kt)("inlineCode",{parentName:"p"},"token"),".\nBecause during this step validation nodes have to perform some additional work to create new unspent transaction outputs (UTXOs) and deliver them (if multiple - for example in a collection creation)."),(0,i.kt)("p",null,"Hence an additional fee is computed based on the number of UTXO to create."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Fungible tokens: there will only cost the minimum fee: $0.01 - as it's like doing some UCO transfer")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Non fungible tokens: These are tokens which each collection item have some unique properties and well identified. So a list of UTXO is created for each unique collection items. This creation will consume resources of computation, networking and storage."))),(0,i.kt)("p",null,"An additional fee is determined in that case through the following formula: "),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"(log10(number of utxos) + 1) * number of utxos * minimum fee")),(0,i.kt)("p",null,"So the transaction fee will gradually increase according of the number of unique token to create (= new UTXO)"),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(57626).Z,width:"811",height:"502"})),(0,i.kt)("admonition",{type:"info"},(0,i.kt)("p",{parentName:"admonition"},"Token definition allows to send at the time of minting to list of first recipients.\nHence, the rules to multiple transfers is applied to logarithmically increases the transaction's fee")))}m.isMDXComponent=!0},57626:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/nft_additional_fee-8c6d24177afeea4eba9d662d63304901.svg"},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/21e44e7e.30743647.js b/assets/js/21e44e7e.34955461.js similarity index 99% rename from assets/js/21e44e7e.30743647.js rename to assets/js/21e44e7e.34955461.js index 8bf059878..1fcb1c6bf 100644 --- a/assets/js/21e44e7e.30743647.js +++ b/assets/js/21e44e7e.34955461.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6605],{3905:(e,t,r)=>{r.d(t,{Zo:()=>i,kt:()=>m});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function s(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var c=a.createContext({}),d=function(e){var t=a.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):s(s({},t),e)),r},i=function(e){var t=d(e.components);return a.createElement(c.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},b=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,c=e.parentName,i=l(e,["components","mdxType","originalType","parentName"]),p=d(r),b=n,m=p["".concat(c,".").concat(b)]||p[b]||u[b]||o;return r?a.createElement(m,s(s({ref:t},i),{},{components:r})):a.createElement(m,s({ref:t},i))}));function m(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,s=new Array(o);s[0]=b;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[p]="string"==typeof e?e:n,s[1]=l;for(var d=2;d{r.r(t),r.d(t,{Badge:()=>u,Bullet:()=>i,Details:()=>m,SpecifiedBy:()=>p,assets:()=>d,contentTitle:()=>l,default:()=>y,frontMatter:()=>s,metadata:()=>c,toc:()=>b});var a=r(87462),n=r(67294),o=r(3905);r(8209);const s={id:"transaction-error",title:"TransactionError",hide_table_of_contents:!1},l=void 0,c={unversionedId:"build/api/schema/objects/transaction-error",id:"build/api/schema/objects/transaction-error",title:"TransactionError",description:"[TransactionError] represents an error.",source:"@site/docs/build/api/schema/objects/transaction-error.mdx",sourceDirName:"build/api/schema/objects",slug:"/build/api/schema/objects/transaction-error",permalink:"/build/api/schema/objects/transaction-error",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"transaction-error",title:"TransactionError",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"TransactionAttestation",permalink:"/build/api/schema/objects/transaction-attestation"},next:{title:"TransactionInput",permalink:"/build/api/schema/objects/transaction-input"}},d={},i=()=>(0,o.kt)(n.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=e=>(0,o.kt)(n.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,o.kt)(n.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),b=[{value:"Fields",id:"fields",level:3},{value:'TransactionError.addressAddress ',id:"code-style-fontweight-normal-transactionerrorbaddressbcodeaddress-",level:4},{value:'TransactionError.contextErrorContext ',id:"code-style-fontweight-normal-transactionerrorbcontextbcodeerrorcontext-",level:4},{value:'TransactionError.errorErrorDetails ',id:"code-style-fontweight-normal-transactionerrorberrorbcodeerrordetails-",level:4},{value:'TransactionError.reasonString ',id:"code-style-fontweight-normal-transactionerrorbreasonbcodestring--",level:4},{value:"Returned by",id:"returned-by",level:3}],m=e=>{let{dataOpen:t,dataClose:r,children:s,startOpen:l=!1}=e;const[c,d]=(0,n.useState)(l);return(0,o.kt)("details",(0,a.Z)({},c?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),d((e=>!e))},style:{listStyle:"none"}},c?t:r),c&&s)},g={Bullet:i,SpecifiedBy:p,Badge:u,toc:b,Details:m},f="wrapper";function y(e){let{components:t,...r}=e;return(0,o.kt)(f,(0,a.Z)({},g,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"[TransactionError]"," represents an error."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"type TransactionError {\n address: Address\n context: ErrorContext\n error: ErrorDetails\n reason: String @deprecated\n}\n")),(0,o.kt)("h3",{id:"fields"},"Fields"),(0,o.kt)("h4",{id:"code-style-fontweight-normal-transactionerrorbaddressbcodeaddress-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"TransactionError.",(0,o.kt)("b",null,"address"))),(0,o.kt)(i,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/address"},(0,o.kt)("inlineCode",{parentName:"a"},"Address"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h4",{id:"code-style-fontweight-normal-transactionerrorbcontextbcodeerrorcontext-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"TransactionError.",(0,o.kt)("b",null,"context"))),(0,o.kt)(i,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/enums/error-context"},(0,o.kt)("inlineCode",{parentName:"a"},"ErrorContext"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"enum",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h4",{id:"code-style-fontweight-normal-transactionerrorberrorbcodeerrordetails-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"TransactionError.",(0,o.kt)("b",null,"error"))),(0,o.kt)(i,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/error-details"},(0,o.kt)("inlineCode",{parentName:"a"},"ErrorDetails"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h4",{id:"code-style-fontweight-normal-transactionerrorbreasonbcodestring--"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"TransactionError.",(0,o.kt)("b",null,"reason"))),(0,o.kt)(i,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/string"},(0,o.kt)("inlineCode",{parentName:"a"},"String"))," ",(0,o.kt)(u,{class:"badge badge--deprecated badge--secondary",text:"deprecated",mdxType:"Badge"})," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null,(0,o.kt)("admonition",{parentName:"blockquote",title:"DEPRECATED",type:"caution"},(0,o.kt)("p",{parentName:"admonition"},"Field error.message will replace reason"))),(0,o.kt)("h3",{id:"returned-by"},"Returned by"),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/subscriptions/transaction-error"},(0,o.kt)("inlineCode",{parentName:"a"},"transactionError"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"subscription",mdxType:"Badge"})))}y.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6605],{3905:(e,t,r)=>{r.d(t,{Zo:()=>i,kt:()=>m});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function s(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var c=a.createContext({}),d=function(e){var t=a.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):s(s({},t),e)),r},i=function(e){var t=d(e.components);return a.createElement(c.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},b=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,c=e.parentName,i=l(e,["components","mdxType","originalType","parentName"]),p=d(r),b=n,m=p["".concat(c,".").concat(b)]||p[b]||u[b]||o;return r?a.createElement(m,s(s({ref:t},i),{},{components:r})):a.createElement(m,s({ref:t},i))}));function m(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,s=new Array(o);s[0]=b;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[p]="string"==typeof e?e:n,s[1]=l;for(var d=2;d{r.r(t),r.d(t,{Badge:()=>u,Bullet:()=>i,Details:()=>m,SpecifiedBy:()=>p,assets:()=>d,contentTitle:()=>l,default:()=>y,frontMatter:()=>s,metadata:()=>c,toc:()=>b});var a=r(87462),n=r(67294),o=r(3905);r(8209);const s={id:"transaction-error",title:"TransactionError",hide_table_of_contents:!1},l=void 0,c={unversionedId:"build/api/schema/objects/transaction-error",id:"build/api/schema/objects/transaction-error",title:"TransactionError",description:"[TransactionError] represents an error.",source:"@site/docs/build/api/schema/objects/transaction-error.mdx",sourceDirName:"build/api/schema/objects",slug:"/build/api/schema/objects/transaction-error",permalink:"/build/api/schema/objects/transaction-error",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"transaction-error",title:"TransactionError",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"TransactionAttestation",permalink:"/build/api/schema/objects/transaction-attestation"},next:{title:"TransactionInput",permalink:"/build/api/schema/objects/transaction-input"}},d={},i=()=>(0,o.kt)(n.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=e=>(0,o.kt)(n.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,o.kt)(n.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),b=[{value:"Fields",id:"fields",level:3},{value:'TransactionError.addressAddress ',id:"code-style-fontweight-normal-transactionerrorbaddressbcodeaddress-",level:4},{value:'TransactionError.contextErrorContext ',id:"code-style-fontweight-normal-transactionerrorbcontextbcodeerrorcontext-",level:4},{value:'TransactionError.errorErrorDetails ',id:"code-style-fontweight-normal-transactionerrorberrorbcodeerrordetails-",level:4},{value:'TransactionError.reasonString ',id:"code-style-fontweight-normal-transactionerrorbreasonbcodestring--",level:4},{value:"Returned by",id:"returned-by",level:3}],m=e=>{let{dataOpen:t,dataClose:r,children:s,startOpen:l=!1}=e;const[c,d]=(0,n.useState)(l);return(0,o.kt)("details",(0,a.Z)({},c?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),d((e=>!e))},style:{listStyle:"none"}},c?t:r),c&&s)},g={Bullet:i,SpecifiedBy:p,Badge:u,toc:b,Details:m},f="wrapper";function y(e){let{components:t,...r}=e;return(0,o.kt)(f,(0,a.Z)({},g,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"[TransactionError]"," represents an error."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"type TransactionError {\n address: Address\n context: ErrorContext\n error: ErrorDetails\n reason: String @deprecated\n}\n")),(0,o.kt)("h3",{id:"fields"},"Fields"),(0,o.kt)("h4",{id:"code-style-fontweight-normal-transactionerrorbaddressbcodeaddress-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"TransactionError.",(0,o.kt)("b",null,"address"))),(0,o.kt)(i,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/address"},(0,o.kt)("inlineCode",{parentName:"a"},"Address"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h4",{id:"code-style-fontweight-normal-transactionerrorbcontextbcodeerrorcontext-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"TransactionError.",(0,o.kt)("b",null,"context"))),(0,o.kt)(i,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/enums/error-context"},(0,o.kt)("inlineCode",{parentName:"a"},"ErrorContext"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"enum",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h4",{id:"code-style-fontweight-normal-transactionerrorberrorbcodeerrordetails-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"TransactionError.",(0,o.kt)("b",null,"error"))),(0,o.kt)(i,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/error-details"},(0,o.kt)("inlineCode",{parentName:"a"},"ErrorDetails"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h4",{id:"code-style-fontweight-normal-transactionerrorbreasonbcodestring--"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"TransactionError.",(0,o.kt)("b",null,"reason"))),(0,o.kt)(i,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/string"},(0,o.kt)("inlineCode",{parentName:"a"},"String"))," ",(0,o.kt)(u,{class:"badge badge--deprecated badge--secondary",text:"deprecated",mdxType:"Badge"})," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null,(0,o.kt)("admonition",{parentName:"blockquote",title:"DEPRECATED",type:"caution"},(0,o.kt)("p",{parentName:"admonition"},"Field error.message will replace reason"))),(0,o.kt)("h3",{id:"returned-by"},"Returned by"),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/subscriptions/transaction-error"},(0,o.kt)("inlineCode",{parentName:"a"},"transactionError"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"subscription",mdxType:"Badge"})))}y.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file diff --git a/assets/js/244870c6.68c8b1fa.js b/assets/js/244870c6.73e2f834.js similarity index 99% rename from assets/js/244870c6.68c8b1fa.js rename to assets/js/244870c6.73e2f834.js index e6d767f07..2eaf55e6e 100644 --- a/assets/js/244870c6.68c8b1fa.js +++ b/assets/js/244870c6.73e2f834.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6484],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>h});var a=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=a.createContext({}),c=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=c(e.components);return a.createElement(s.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},y=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),d=c(n),y=o,h=d["".concat(s,".").concat(y)]||d[y]||u[y]||r;return n?a.createElement(h,i(i({ref:t},p),{},{components:n})):a.createElement(h,i({ref:t},p))}));function h(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,i=new Array(r);i[0]=y;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[d]="string"==typeof e?e:o,i[1]=l;for(var c=2;c{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>u,frontMatter:()=>r,metadata:()=>l,toc:()=>c});var a=n(87462),o=(n(67294),n(3905));n(8209);const r={id:"deploy",title:"Smart Contracts Playground - Deploy",sidebar_label:"Deploy",sidebar_position:2},i=void 0,l={unversionedId:"build/smart-contracts/playground/deploy",id:"build/smart-contracts/playground/deploy",title:"Smart Contracts Playground - Deploy",description:"The communication via the archethic wallet has not been done yet. For this reason we disabled the deployment to the mainnet because it doesn't meet the security standard we expect.",source:"@site/docs/build/smart-contracts/playground/deploy.md",sourceDirName:"build/smart-contracts/playground",slug:"/build/smart-contracts/playground/deploy",permalink:"/build/smart-contracts/playground/deploy",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",sidebarPosition:2,frontMatter:{id:"deploy",title:"Smart Contracts Playground - Deploy",sidebar_label:"Deploy",sidebar_position:2},sidebar:"docs",previous:{title:"Build",permalink:"/build/smart-contracts/playground/build"},next:{title:"Function calls",permalink:"/build/smart-contracts/playground/functions"}},s={},c=[],p={toc:c},d="wrapper";function u(e){let{components:t,...r}=e;return(0,o.kt)(d,(0,a.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("admonition",{title:"Not mainnet-ready",type:"warning"},(0,o.kt)("p",{parentName:"admonition"},"The communication via the archethic wallet has not been done yet. For this reason we disabled the deployment to the mainnet because it doesn't meet the security standard we expect.")),(0,o.kt)("p",null,"Once the code is written and the triggers are tested, the next step is to deploy the Smart Contract. Please open the deploy panel by clicking on the deploy button:"),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"the deploy button",src:n(44396).Z,width:"90",height:"67"})),(0,o.kt)("p",null,"The deploy panel opens on the left hand side: "),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"the deploy panel",src:n(43801).Z,width:"3600",height:"2390"})),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},'Choose the network where you want to deploy the Smart Contract. This will always be "',(0,o.kt)("a",{parentName:"li",href:"https://testnet.archethic.net%22"},'https://testnet.archethic.net"')," for now."),(0,o.kt)("li",{parentName:"ol"},"You'll see that we automatically retrieve the ",(0,o.kt)("inlineCode",{parentName:"li"},"storage nonce public key")," that is used to give ownership of the contract to the authorized nodes (miners)."),(0,o.kt)("li",{parentName:"ol"},"Then specify a seed of a transaction chain that will host the contract. ")),(0,o.kt)("p",null,"While modifying the seed, you can see that the future contract's address is displayed. The contract's genesis address is also displayed. "),(0,o.kt)("admonition",{title:"Genesis address",type:"info"},(0,o.kt)("p",{parentName:"admonition"},"The genesis address is the one you'll use in the ",(0,o.kt)("a",{parentName:"p",href:"https://testnet.archethic.net/faucet"},"faucet")," to transfer funds.")),(0,o.kt)("p",null,"Now you may click on ",(0,o.kt)("inlineCode",{parentName:"p"},"estimate fees")," and then ",(0,o.kt)("inlineCode",{parentName:"p"},"deploy"),". Hopefully you'll see a success message!\nYou may follow the link to view the transaction on the explorer."),(0,o.kt)("admonition",{title:"That's it!",type:"success"},(0,o.kt)("p",{parentName:"admonition"},"Congratulations on your contract's deployment.")))}u.isMDXComponent=!0},44396:(e,t,n)=>{n.d(t,{Z:()=>a});const a="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFoAAABDCAYAAAAccRJRAAAEQklEQVR4Xu2au09TURzHf0yUCaZeXFoXSxyISymLj8GKQ4VFYyKvBBAjIonPvwIVE1+JvBIeNTG6gB3EOgg6iCyGSVwsDFIW6UTroud3yS29t7ftKW1/5wZ+J2HhnnN+t5/zvd/feVV5jzf/Ay4VJ1DFoCvOWA/AoGk4M2gizgyaQVMRIIrDHs2giQgQhWFFM2giAkRhWNEMmogAURhWNIMmIkAUhhXNoLMJaJobutvb9QdT4TDE41tEmEoP40hFu6qrQXO7IbaxYfqFXR1X4KjXq//vVywG07OvTM+9Ho+AH4dkKlU6mTL34DjQCHnoxgC4alzwezMOM7NhHRxC7O7cVbNRpmbCEFtfB2zT2dEOR+o1SO4k4cnzF46D7TjQDb5jcPnSxTRMBLe5FU8r2So0VHa9W9MHxiiv37yFH2s/y6zJ0rpzHGg75Rb7E1+OTzjOvx0HGhPetb5eW7ab6L/JZPqZpmlQ49pTsvGAQdvgQ3/1CP9NCYDJvyloDYV0rzXKdmIbFhe/CCtYy/JdbNvg80Eg4Id6Ad0o6O3zkYjwbhdUizrrwsdVJ0ilis5MfLns4evyCixEowXd4/Spk3BG/NkVJyRIpaDz+fGnpc8QaPLr1iCb3E40NkJba8gWtjFDKThiFaqgFDT+pv6+HtNnj/97/yEKy99WhC3szkBQkaMTk7CdSBTEgINz/lzQVA+9fXR8smDbSlZQDhrt4+bgQDqpWaG0BIPQLDwYfXdMwJYpQ4PXoa62Tq+6I7z/6TP182rloBFG5orPziYM1cv6daaF2K0gZQar3HWUg7b69PDDkawZQl1tLVwVFiPr1/iV3L97O81KtT/jiygDjfPlluBZ04ovn/qK9Wur92PfC9GPyhYyykDfu3Mra7FR6DM3/Hq/nzUm1eGRx/ttXlK7QwUaE+ODR4cM9H6tA2GNialaoakeW4flA5RNhv29PfoOnczihZNhDpfLnN7NzUfg++qqqSZP70pKD7uNrfsd1oWJkQCLWd1lLlicsM+hdHpnjJHMElzWl7FPuyV4MavKMmjHtgtlsw58m0KbSs1+v7QvY3+8qZRDJtZ9DrtqssvufNukuKc9OjapdE9aqaINj/Z6PenpWtuFkGk37892AhaXlmBNnAFaN+9xoHxihy/Q1GQ6LEA/n3sX0ccNl++x2CHf+LdTcL6jLPTaVGrvKMu4emDth4+yJDINH85KQCpHFet1A5xx4KWYXOrF/RHrIa3MoqYc71pMH8o92vqymQkSvXZaXJKRuUDTJS7X4AGtExKf3QA4DrSRIFGleAsps/CVsGK+oRLqYqLsEle/sEyLq2J8ybEEmAe1qSOt4yDCZtBEo8qgGTQRAaIwrGgGTUSAKAwrmkETESAKw4pm0EQEiMKwohk0EQGiMKxoBk1EgCgMK5pBExEgCsOKZtBEBIjCsKIZNBEBojCsaCLQ/wEUs1lc4dJ83gAAAABJRU5ErkJggg=="},43801:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/playground_panel_deploy-c50b458baed8c3bf36b5c1a17d2f9566.png"},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6484],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>h});var a=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=a.createContext({}),c=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=c(e.components);return a.createElement(s.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},y=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),d=c(n),y=o,h=d["".concat(s,".").concat(y)]||d[y]||u[y]||r;return n?a.createElement(h,i(i({ref:t},p),{},{components:n})):a.createElement(h,i({ref:t},p))}));function h(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,i=new Array(r);i[0]=y;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[d]="string"==typeof e?e:o,i[1]=l;for(var c=2;c{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>u,frontMatter:()=>r,metadata:()=>l,toc:()=>c});var a=n(87462),o=(n(67294),n(3905));n(8209);const r={id:"deploy",title:"Smart Contracts Playground - Deploy",sidebar_label:"Deploy",sidebar_position:2},i=void 0,l={unversionedId:"build/smart-contracts/playground/deploy",id:"build/smart-contracts/playground/deploy",title:"Smart Contracts Playground - Deploy",description:"The communication via the archethic wallet has not been done yet. For this reason we disabled the deployment to the mainnet because it doesn't meet the security standard we expect.",source:"@site/docs/build/smart-contracts/playground/deploy.md",sourceDirName:"build/smart-contracts/playground",slug:"/build/smart-contracts/playground/deploy",permalink:"/build/smart-contracts/playground/deploy",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",sidebarPosition:2,frontMatter:{id:"deploy",title:"Smart Contracts Playground - Deploy",sidebar_label:"Deploy",sidebar_position:2},sidebar:"docs",previous:{title:"Build",permalink:"/build/smart-contracts/playground/build"},next:{title:"Function calls",permalink:"/build/smart-contracts/playground/functions"}},s={},c=[],p={toc:c},d="wrapper";function u(e){let{components:t,...r}=e;return(0,o.kt)(d,(0,a.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("admonition",{title:"Not mainnet-ready",type:"warning"},(0,o.kt)("p",{parentName:"admonition"},"The communication via the archethic wallet has not been done yet. For this reason we disabled the deployment to the mainnet because it doesn't meet the security standard we expect.")),(0,o.kt)("p",null,"Once the code is written and the triggers are tested, the next step is to deploy the Smart Contract. Please open the deploy panel by clicking on the deploy button:"),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"the deploy button",src:n(44396).Z,width:"90",height:"67"})),(0,o.kt)("p",null,"The deploy panel opens on the left hand side: "),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"the deploy panel",src:n(43801).Z,width:"3600",height:"2390"})),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},'Choose the network where you want to deploy the Smart Contract. This will always be "',(0,o.kt)("a",{parentName:"li",href:"https://testnet.archethic.net%22"},'https://testnet.archethic.net"')," for now."),(0,o.kt)("li",{parentName:"ol"},"You'll see that we automatically retrieve the ",(0,o.kt)("inlineCode",{parentName:"li"},"storage nonce public key")," that is used to give ownership of the contract to the authorized nodes (miners)."),(0,o.kt)("li",{parentName:"ol"},"Then specify a seed of a transaction chain that will host the contract. ")),(0,o.kt)("p",null,"While modifying the seed, you can see that the future contract's address is displayed. The contract's genesis address is also displayed. "),(0,o.kt)("admonition",{title:"Genesis address",type:"info"},(0,o.kt)("p",{parentName:"admonition"},"The genesis address is the one you'll use in the ",(0,o.kt)("a",{parentName:"p",href:"https://testnet.archethic.net/faucet"},"faucet")," to transfer funds.")),(0,o.kt)("p",null,"Now you may click on ",(0,o.kt)("inlineCode",{parentName:"p"},"estimate fees")," and then ",(0,o.kt)("inlineCode",{parentName:"p"},"deploy"),". Hopefully you'll see a success message!\nYou may follow the link to view the transaction on the explorer."),(0,o.kt)("admonition",{title:"That's it!",type:"success"},(0,o.kt)("p",{parentName:"admonition"},"Congratulations on your contract's deployment.")))}u.isMDXComponent=!0},44396:(e,t,n)=>{n.d(t,{Z:()=>a});const a="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFoAAABDCAYAAAAccRJRAAAEQklEQVR4Xu2au09TURzHf0yUCaZeXFoXSxyISymLj8GKQ4VFYyKvBBAjIonPvwIVE1+JvBIeNTG6gB3EOgg6iCyGSVwsDFIW6UTroud3yS29t7ftKW1/5wZ+J2HhnnN+t5/zvd/feVV5jzf/Ay4VJ1DFoCvOWA/AoGk4M2gizgyaQVMRIIrDHs2giQgQhWFFM2giAkRhWNEMmogAURhWNIMmIkAUhhXNoLMJaJobutvb9QdT4TDE41tEmEoP40hFu6qrQXO7IbaxYfqFXR1X4KjXq//vVywG07OvTM+9Ho+AH4dkKlU6mTL34DjQCHnoxgC4alzwezMOM7NhHRxC7O7cVbNRpmbCEFtfB2zT2dEOR+o1SO4k4cnzF46D7TjQDb5jcPnSxTRMBLe5FU8r2So0VHa9W9MHxiiv37yFH2s/y6zJ0rpzHGg75Rb7E1+OTzjOvx0HGhPetb5eW7ab6L/JZPqZpmlQ49pTsvGAQdvgQ3/1CP9NCYDJvyloDYV0rzXKdmIbFhe/CCtYy/JdbNvg80Eg4Id6Ad0o6O3zkYjwbhdUizrrwsdVJ0ilis5MfLns4evyCixEowXd4/Spk3BG/NkVJyRIpaDz+fGnpc8QaPLr1iCb3E40NkJba8gWtjFDKThiFaqgFDT+pv6+HtNnj/97/yEKy99WhC3szkBQkaMTk7CdSBTEgINz/lzQVA+9fXR8smDbSlZQDhrt4+bgQDqpWaG0BIPQLDwYfXdMwJYpQ4PXoa62Tq+6I7z/6TP182rloBFG5orPziYM1cv6daaF2K0gZQar3HWUg7b69PDDkawZQl1tLVwVFiPr1/iV3L97O81KtT/jiygDjfPlluBZ04ovn/qK9Wur92PfC9GPyhYyykDfu3Mra7FR6DM3/Hq/nzUm1eGRx/ttXlK7QwUaE+ODR4cM9H6tA2GNialaoakeW4flA5RNhv29PfoOnczihZNhDpfLnN7NzUfg++qqqSZP70pKD7uNrfsd1oWJkQCLWd1lLlicsM+hdHpnjJHMElzWl7FPuyV4MavKMmjHtgtlsw58m0KbSs1+v7QvY3+8qZRDJtZ9DrtqssvufNukuKc9OjapdE9aqaINj/Z6PenpWtuFkGk37892AhaXlmBNnAFaN+9xoHxihy/Q1GQ6LEA/n3sX0ccNl++x2CHf+LdTcL6jLPTaVGrvKMu4emDth4+yJDINH85KQCpHFet1A5xx4KWYXOrF/RHrIa3MoqYc71pMH8o92vqymQkSvXZaXJKRuUDTJS7X4AGtExKf3QA4DrSRIFGleAsps/CVsGK+oRLqYqLsEle/sEyLq2J8ybEEmAe1qSOt4yDCZtBEo8qgGTQRAaIwrGgGTUSAKAwrmkETESAKw4pm0EQEiMKwohk0EQGiMKxoBk1EgCgMK5pBExEgCsOKZtBEBIjCsKIZNBEBojCsaCLQ/wEUs1lc4dJ83gAAAABJRU5ErkJggg=="},43801:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/playground_panel_deploy-c50b458baed8c3bf36b5c1a17d2f9566.png"},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/24510ea8.1bc549b1.js b/assets/js/24510ea8.dbb3a60d.js similarity index 98% rename from assets/js/24510ea8.1bc549b1.js rename to assets/js/24510ea8.dbb3a60d.js index 4d6972404..ddaf0d896 100644 --- a/assets/js/24510ea8.1bc549b1.js +++ b/assets/js/24510ea8.dbb3a60d.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1340],{3905:(e,t,r)=>{r.d(t,{Zo:()=>h,kt:()=>f});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),s=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},h=function(e){var t=s(e.components);return n.createElement(l.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},p=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,i=e.originalType,l=e.parentName,h=o(e,["components","mdxType","originalType","parentName"]),d=s(r),p=a,f=d["".concat(l,".").concat(p)]||d[p]||u[p]||i;return r?n.createElement(f,c(c({ref:t},h),{},{components:r})):n.createElement(f,c({ref:t},h))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=r.length,c=new Array(i);c[0]=p;var o={};for(var l in t)hasOwnProperty.call(t,l)&&(o[l]=t[l]);o.originalType=e,o[d]="string"==typeof e?e:a,c[1]=o;for(var s=2;s{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>u,frontMatter:()=>i,metadata:()=>o,toc:()=>s});var n=r(87462),a=(r(67294),r(3905));r(8209);const i={id:"service",title:"Oracle Chain Service",sidebar_label:"Service"},c=void 0,o={unversionedId:"build/core/oracle-chain/service",id:"build/core/oracle-chain/service",title:"Oracle Chain Service",description:"OracleChain provides a way to extend it and to add more services to the scheduler.",source:"@site/docs/build/core/oracle-chain/service.md",sourceDirName:"build/core/oracle-chain",slug:"/build/core/oracle-chain/service",permalink:"/build/core/oracle-chain/service",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"service",title:"Oracle Chain Service",sidebar_label:"Service"},sidebar:"docs",previous:{title:"Scheduler",permalink:"/build/core/oracle-chain/scheduler"},next:{title:"P2P",permalink:"/build/core/p2p/"}},l={},s=[{value:"Behavior",id:"behavior",level:2},{value:"Example",id:"example",level:3},{value:"Configuration",id:"configuration",level:2}],h={toc:s},d="wrapper";function u(e){let{components:t,...r}=e;return(0,a.kt)(d,(0,n.Z)({},h,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"OracleChain provides a way to extend it and to add more services to the scheduler."),(0,a.kt)("h2",{id:"behavior"},"Behavior"),(0,a.kt)("p",null,"The ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/archethic-node/blob/master/lib/archethic/oracle_chain/services/impl.ex"},"behavior")," defines functions to extend to support new services"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Fetch: This will perform the data fetching and will return a map of the data to be serialized by the transaction"),(0,a.kt)("li",{parentName:"ul"},"Verify: This will let validation nodes asserts the information provided in the new oracle transaction"),(0,a.kt)("li",{parentName:"ul"},"Parse data: This will parse the incoming data from the oracle transaction and checks its validatity")),(0,a.kt)("h3",{id:"example"},"Example"),(0,a.kt)("p",null,(0,a.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/archethic-node/blob/master/lib/archethic/oracle_chain/services/uco_price.ex"},"UCO service behavior")," is implemented in such way:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Fetch: it request Coingecko to fetch the USD/EUR pair of the Archethic token"),(0,a.kt)("li",{parentName:"ul"},"Verify: fetch Coingecko again to gather the token price and compare price using a standard deviation function with a threshold of 0.01"),(0,a.kt)("li",{parentName:"ul"},"Parse data: Ensure the data is map with the USD/EUR pair and an amount encoded as float")),(0,a.kt)("h2",{id:"configuration"},"Configuration"),(0,a.kt)("p",null,"Along with the definition of the new service, we need to inform how to add this service to the ",(0,a.kt)("a",{parentName:"p",href:"/build/core/oracle-chain/scheduler"},"scheduler"),".\nFor this we need to add the service in the ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/archethic-node/blob/master/config/config.exs"},"configuration (config.exs)")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},"config :archethic, Archethic.OracleChain,\n services: [\n uco: Archethic.OracleChain.Services.UCOPrice,\n mynewservice: Archethic.OracleChain.Service.MyNewService # Added line\n ]\n")))}u.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1340],{3905:(e,t,r)=>{r.d(t,{Zo:()=>h,kt:()=>f});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),s=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},h=function(e){var t=s(e.components);return n.createElement(l.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},p=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,i=e.originalType,l=e.parentName,h=o(e,["components","mdxType","originalType","parentName"]),d=s(r),p=a,f=d["".concat(l,".").concat(p)]||d[p]||u[p]||i;return r?n.createElement(f,c(c({ref:t},h),{},{components:r})):n.createElement(f,c({ref:t},h))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=r.length,c=new Array(i);c[0]=p;var o={};for(var l in t)hasOwnProperty.call(t,l)&&(o[l]=t[l]);o.originalType=e,o[d]="string"==typeof e?e:a,c[1]=o;for(var s=2;s{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>u,frontMatter:()=>i,metadata:()=>o,toc:()=>s});var n=r(87462),a=(r(67294),r(3905));r(8209);const i={id:"service",title:"Oracle Chain Service",sidebar_label:"Service"},c=void 0,o={unversionedId:"build/core/oracle-chain/service",id:"build/core/oracle-chain/service",title:"Oracle Chain Service",description:"OracleChain provides a way to extend it and to add more services to the scheduler.",source:"@site/docs/build/core/oracle-chain/service.md",sourceDirName:"build/core/oracle-chain",slug:"/build/core/oracle-chain/service",permalink:"/build/core/oracle-chain/service",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"service",title:"Oracle Chain Service",sidebar_label:"Service"},sidebar:"docs",previous:{title:"Scheduler",permalink:"/build/core/oracle-chain/scheduler"},next:{title:"P2P",permalink:"/build/core/p2p/"}},l={},s=[{value:"Behavior",id:"behavior",level:2},{value:"Example",id:"example",level:3},{value:"Configuration",id:"configuration",level:2}],h={toc:s},d="wrapper";function u(e){let{components:t,...r}=e;return(0,a.kt)(d,(0,n.Z)({},h,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"OracleChain provides a way to extend it and to add more services to the scheduler."),(0,a.kt)("h2",{id:"behavior"},"Behavior"),(0,a.kt)("p",null,"The ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/archethic-node/blob/master/lib/archethic/oracle_chain/services/impl.ex"},"behavior")," defines functions to extend to support new services"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Fetch: This will perform the data fetching and will return a map of the data to be serialized by the transaction"),(0,a.kt)("li",{parentName:"ul"},"Verify: This will let validation nodes asserts the information provided in the new oracle transaction"),(0,a.kt)("li",{parentName:"ul"},"Parse data: This will parse the incoming data from the oracle transaction and checks its validatity")),(0,a.kt)("h3",{id:"example"},"Example"),(0,a.kt)("p",null,(0,a.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/archethic-node/blob/master/lib/archethic/oracle_chain/services/uco_price.ex"},"UCO service behavior")," is implemented in such way:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Fetch: it request Coingecko to fetch the USD/EUR pair of the Archethic token"),(0,a.kt)("li",{parentName:"ul"},"Verify: fetch Coingecko again to gather the token price and compare price using a standard deviation function with a threshold of 0.01"),(0,a.kt)("li",{parentName:"ul"},"Parse data: Ensure the data is map with the USD/EUR pair and an amount encoded as float")),(0,a.kt)("h2",{id:"configuration"},"Configuration"),(0,a.kt)("p",null,"Along with the definition of the new service, we need to inform how to add this service to the ",(0,a.kt)("a",{parentName:"p",href:"/build/core/oracle-chain/scheduler"},"scheduler"),".\nFor this we need to add the service in the ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/archethic-node/blob/master/config/config.exs"},"configuration (config.exs)")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},"config :archethic, Archethic.OracleChain,\n services: [\n uco: Archethic.OracleChain.Services.UCOPrice,\n mynewservice: Archethic.OracleChain.Service.MyNewService # Added line\n ]\n")))}u.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file diff --git a/assets/js/27ab3fd0.5fb09b92.js b/assets/js/27ab3fd0.4a4dcc4b.js similarity index 98% rename from assets/js/27ab3fd0.5fb09b92.js rename to assets/js/27ab3fd0.4a4dcc4b.js index 0333fe5be..1c0e13199 100644 --- a/assets/js/27ab3fd0.5fb09b92.js +++ b/assets/js/27ab3fd0.4a4dcc4b.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3382],{3905:(e,t,r)=>{r.d(t,{Zo:()=>d,kt:()=>f});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function s(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var l=a.createContext({}),i=function(e){var t=a.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):s(s({},t),e)),r},d=function(e){var t=i(e.components);return a.createElement(l.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,l=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),p=i(r),m=n,f=p["".concat(l,".").concat(m)]||p[m]||u[m]||o;return r?a.createElement(f,s(s({ref:t},d),{},{components:r})):a.createElement(f,s({ref:t},d))}));function f(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,s=new Array(o);s[0]=m;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[p]="string"==typeof e?e:n,s[1]=c;for(var i=2;i{r.r(t),r.d(t,{Badge:()=>u,Bullet:()=>d,Details:()=>f,SpecifiedBy:()=>p,assets:()=>i,contentTitle:()=>c,default:()=>h,frontMatter:()=>s,metadata:()=>l,toc:()=>m});var a=r(87462),n=r(67294),o=r(3905);r(8209);const s={id:"shared-secrets",title:"sharedSecrets",hide_table_of_contents:!1},c=void 0,l={unversionedId:"build/api/schema/queries/shared-secrets",id:"build/api/schema/queries/shared-secrets",title:"sharedSecrets",description:"Query the network to get the storage nonce public key",source:"@site/docs/build/api/schema/queries/shared-secrets.mdx",sourceDirName:"build/api/schema/queries",slug:"/build/api/schema/queries/shared-secrets",permalink:"/build/api/schema/queries/shared-secrets",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"shared-secrets",title:"sharedSecrets",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"oracleData",permalink:"/build/api/schema/queries/oracle-data"},next:{title:"token",permalink:"/build/api/schema/queries/token"}},i={},d=()=>(0,o.kt)(n.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=e=>(0,o.kt)(n.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,o.kt)(n.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),m=[{value:"Type",id:"type",level:3},{value:'SharedSecrets ',id:"sharedsecrets-",level:4}],f=e=>{let{dataOpen:t,dataClose:r,children:s,startOpen:c=!1}=e;const[l,i]=(0,n.useState)(c);return(0,o.kt)("details",(0,a.Z)({},l?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),i((e=>!e))},style:{listStyle:"none"}},l?t:r),l&&s)},y={Bullet:d,SpecifiedBy:p,Badge:u,toc:m,Details:f},b="wrapper";function h(e){let{components:t,...r}=e;return(0,o.kt)(b,(0,a.Z)({},y,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Query the network to get the storage nonce public key"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"sharedSecrets: SharedSecrets\n")),(0,o.kt)("h3",{id:"type"},"Type"),(0,o.kt)("h4",{id:"sharedsecrets-"},(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/shared-secrets"},(0,o.kt)("inlineCode",{parentName:"a"},"SharedSecrets"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,o.kt)("blockquote",null,(0,o.kt)("p",{parentName:"blockquote"},"[SharedSecrets]"," represents the public shared secret information\nIt includes:"),(0,o.kt)("ul",{parentName:"blockquote"},(0,o.kt)("li",{parentName:"ul"},"The storage nonce public key: Public Key to encrypt data for the node, so they will be able to decrypt it (mostly for smart contract authorized key)"))))}h.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3382],{3905:(e,t,r)=>{r.d(t,{Zo:()=>d,kt:()=>f});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function s(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var l=a.createContext({}),i=function(e){var t=a.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):s(s({},t),e)),r},d=function(e){var t=i(e.components);return a.createElement(l.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,l=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),p=i(r),m=n,f=p["".concat(l,".").concat(m)]||p[m]||u[m]||o;return r?a.createElement(f,s(s({ref:t},d),{},{components:r})):a.createElement(f,s({ref:t},d))}));function f(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,s=new Array(o);s[0]=m;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[p]="string"==typeof e?e:n,s[1]=c;for(var i=2;i{r.r(t),r.d(t,{Badge:()=>u,Bullet:()=>d,Details:()=>f,SpecifiedBy:()=>p,assets:()=>i,contentTitle:()=>c,default:()=>h,frontMatter:()=>s,metadata:()=>l,toc:()=>m});var a=r(87462),n=r(67294),o=r(3905);r(8209);const s={id:"shared-secrets",title:"sharedSecrets",hide_table_of_contents:!1},c=void 0,l={unversionedId:"build/api/schema/queries/shared-secrets",id:"build/api/schema/queries/shared-secrets",title:"sharedSecrets",description:"Query the network to get the storage nonce public key",source:"@site/docs/build/api/schema/queries/shared-secrets.mdx",sourceDirName:"build/api/schema/queries",slug:"/build/api/schema/queries/shared-secrets",permalink:"/build/api/schema/queries/shared-secrets",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"shared-secrets",title:"sharedSecrets",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"oracleData",permalink:"/build/api/schema/queries/oracle-data"},next:{title:"token",permalink:"/build/api/schema/queries/token"}},i={},d=()=>(0,o.kt)(n.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=e=>(0,o.kt)(n.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,o.kt)(n.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),m=[{value:"Type",id:"type",level:3},{value:'SharedSecrets ',id:"sharedsecrets-",level:4}],f=e=>{let{dataOpen:t,dataClose:r,children:s,startOpen:c=!1}=e;const[l,i]=(0,n.useState)(c);return(0,o.kt)("details",(0,a.Z)({},l?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),i((e=>!e))},style:{listStyle:"none"}},l?t:r),l&&s)},y={Bullet:d,SpecifiedBy:p,Badge:u,toc:m,Details:f},b="wrapper";function h(e){let{components:t,...r}=e;return(0,o.kt)(b,(0,a.Z)({},y,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Query the network to get the storage nonce public key"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"sharedSecrets: SharedSecrets\n")),(0,o.kt)("h3",{id:"type"},"Type"),(0,o.kt)("h4",{id:"sharedsecrets-"},(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/shared-secrets"},(0,o.kt)("inlineCode",{parentName:"a"},"SharedSecrets"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,o.kt)("blockquote",null,(0,o.kt)("p",{parentName:"blockquote"},"[SharedSecrets]"," represents the public shared secret information\nIt includes:"),(0,o.kt)("ul",{parentName:"blockquote"},(0,o.kt)("li",{parentName:"ul"},"The storage nonce public key: Public Key to encrypt data for the node, so they will be able to decrypt it (mostly for smart contract authorized key)"))))}h.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file diff --git a/assets/js/2ab0cde1.8619d981.js b/assets/js/2ab0cde1.fe4bdc39.js similarity index 98% rename from assets/js/2ab0cde1.8619d981.js rename to assets/js/2ab0cde1.fe4bdc39.js index 760d42157..3fc6bb851 100644 --- a/assets/js/2ab0cde1.8619d981.js +++ b/assets/js/2ab0cde1.fe4bdc39.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5400],{3905:(e,t,i)=>{i.d(t,{Zo:()=>u,kt:()=>f});var n=i(67294);function a(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function o(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,n)}return i}function r(e){for(var t=1;t=0||(a[i]=e[i]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(a[i]=e[i])}return a}var l=n.createContext({}),s=function(e){var t=n.useContext(l),i=t;return e&&(i="function"==typeof e?e(t):r(r({},t),e)),i},u=function(e){var t=s(e.components);return n.createElement(l.Provider,{value:t},e.children)},h="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var i=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),h=s(i),d=a,f=h["".concat(l,".").concat(d)]||h[d]||p[d]||o;return i?n.createElement(f,r(r({ref:t},u),{},{components:i})):n.createElement(f,r({ref:t},u))}));function f(e,t){var i=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=i.length,r=new Array(o);r[0]=d;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[h]="string"==typeof e?e:a,r[1]=c;for(var s=2;s{i.r(t),i.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>p,frontMatter:()=>o,metadata:()=>c,toc:()=>s});var n=i(87462),a=(i(67294),i(3905));i(8209);const o={id:"aeweb-front",title:"AEWeb - Application Front End",sidebar_label:"AEWeb Front End",sidebar_position:4},r="AEWeb Front end",c={unversionedId:"participate/aeweb/usage/aeweb-front",id:"participate/aeweb/usage/aeweb-front",title:"AEWeb - Application Front End",description:"Access//aeweb.archethic.net",source:"@site/docs/participate/aeweb/usage/aeweb-front.md",sourceDirName:"participate/aeweb/usage",slug:"/participate/aeweb/usage/aeweb-front",permalink:"/participate/aeweb/usage/aeweb-front",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",sidebarPosition:4,frontMatter:{id:"aeweb-front",title:"AEWeb - Application Front End",sidebar_label:"AEWeb Front End",sidebar_position:4},sidebar:"docs",previous:{title:"CLI",permalink:"/participate/aeweb/usage/cli"},next:{title:"Automate deployments",permalink:"/participate/aeweb/automation"}},l={},s=[{value:"Tutorials",id:"tutorials",level:2},{value:"Deploy for the first time my static site",id:"deploy-for-the-first-time-my-static-site",level:3},{value:"Update my static site",id:"update-my-static-site",level:3},{value:"Update the SSL certificate",id:"update-the-ssl-certificate",level:3},{value:"Unpublish my static site",id:"unpublish-my-static-site",level:3},{value:"See my static site's informations",id:"see-my-static-sites-informations",level:3},{value:"Disconnect AEWeb",id:"disconnect-aeweb",level:3},{value:"Roadmap",id:"roadmap",level:2}],u={toc:s},h="wrapper";function p(e){let{components:t,...i}=e;return(0,a.kt)(h,(0,n.Z)({},u,i,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"aeweb-front-end"},"AEWeb Front end"),(0,a.kt)("p",null,"Access: ",(0,a.kt)("a",{parentName:"p",href:"https://aeweb.archethic.net"},"https://aeweb.archethic.net"),(0,a.kt)("br",null),"\nSource code: ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/aeweb"},"https://github.com/archethic-foundation/aeweb")),(0,a.kt)("p",null,"This web application, built with Flutter, can be used to deploy and manage static sites to the Archethic Blockchain."),(0,a.kt)("admonition",{type:"success"},(0,a.kt)("p",{parentName:"admonition"},"Before reading the following tutorials, understand ",(0,a.kt)("a",{href:"/participate/aeweb/how-it-works",target:"_blank"},"how AEWeb works"),". ")),(0,a.kt)("h2",{id:"tutorials"},"Tutorials"),(0,a.kt)("h3",{id:"deploy-for-the-first-time-my-static-site"},"Deploy for the first time my static site"),(0,a.kt)("p",null,'When you want to deploy a new static website on the Archethic blockchain, simply click on "New static site" in the main menu or the "+" icon in the section reserved for the list of your already deployed sites.'),(0,a.kt)("p",null,"A form will then appear, providing you with the necessary information for deploying your site:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"The name of the website. This name will be used to declare the site in your ",(0,a.kt)("a",{href:"/learn/decentralized-id/keychain",target:"_blank"},"decentralized keychain"),". (mandatory)"),(0,a.kt)("li",{parentName:"ul"},"The archive file (with .zip, .7z, or .rar extension) containing the content of your website. (mandatory)"),(0,a.kt)("li",{parentName:"ul"},"You can specify whether you want to include or exclude files listed in a ",(0,a.kt)("a",{href:"/FAQ/aeweb#what-is-the-purpose-of-a-gitignore-file",target:"_blank"},".gitignore file"),". (optional)"),(0,a.kt)("li",{parentName:"ul"},"The ",(0,a.kt)("a",{href:"/participate/aeweb/dns#1-get-the-certificate",target:"_blank"},"public certificate")," for your domain and the private key associated with the certificate. (optional)")),(0,a.kt)("p",null,"Once the required information is provided and the publication rules are accepted, you can initiate the deployment of your site."),(0,a.kt)("p",null,"AEWeb will then prompt you, via your Archethic wallet, to:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Confirm the creation of the site in your keychain."),(0,a.kt)("li",{parentName:"ul"},"Sign the transaction(s) that contain the content of your site."),(0,a.kt)("li",{parentName:"ul"},"Sign the reference transaction of your site in the blockchain."),(0,a.kt)("li",{parentName:"ul"},"Then sign the transaction that allows transferring funds from your current account to the transaction chains that enable your site to function.")),(0,a.kt)("p",null,"The associated fees for the creation will be provided, and once accepted, your site will be permanently published on the blockchain."),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"In the beta version currently being deployed, a limit of 3 MB for a site has been set.")),(0,a.kt)("br",null),(0,a.kt)("video",{controls:!0,width:"90%"},(0,a.kt)("source",{src:"/video/AEWeb-howto-Create static site.mp4"})),(0,a.kt)("h3",{id:"update-my-static-site"},"Update my static site"),(0,a.kt)("p",null,'You can update your site by comparing the latest version hosted on the blockchain with a new archive containing your modifications.\nTo do this, go to the context menu of the currently deployed version (the first row in the site versions table) and click on "Sync from local folder".'),(0,a.kt)("p",null,"After selecting the archive, the application will present you with information about the differences between the blockchain data and your archive. If you are satisfied with the information and agree to the publication rules, you can proceed with the update."),(0,a.kt)("p",null,"The application will then prompt you to:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Sign, using your Archethic Wallet, the transaction(s) that contain the content of your new site version."),(0,a.kt)("li",{parentName:"ul"},"Sign the transaction to update the reference transaction of your site in the blockchain."),(0,a.kt)("li",{parentName:"ul"},"Then sign the transaction that allows transferring funds from your current account to the transaction chains that power your site.")),(0,a.kt)("p",null,"The associated fees for the update will be provided, and once accepted, a new version of your site will be published on the blockchain."),(0,a.kt)("video",{controls:!0,width:"90%"},(0,a.kt)("source",{src:"/video/AEWeb-howto-Update static site.mp4"})),(0,a.kt)("h3",{id:"update-the-ssl-certificate"},"Update the SSL certificate"),(0,a.kt)("p",null,'You can add and update the SSL certificate associated with your site.\nTo do this, go to the context menu of the currently deployed version (the first row in the site versions table) and click on "Update the certificate".'),(0,a.kt)("p",null,"After selecting the public certificate for your domain and the private key associated with the certificate, the application will prompt you to:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Sign, using your Archethic Wallet, the transaction that will update the reference transaction of your site in the blockchain to include the certificate."),(0,a.kt)("li",{parentName:"ul"},"Then sign the transaction that allows transferring funds from your current account to the transaction chain of your site to update the reference transaction.")),(0,a.kt)("p",null,"The associated fees for the update will be provided, and once accepted, the certificate will be published in the content of the reference transaction, and the private key will be stored in a transaction secret."),(0,a.kt)("video",{controls:!0,width:"90%"},(0,a.kt)("source",{src:"/video/AEWeb-howto-Update certificate.mp4"})),(0,a.kt)("h3",{id:"unpublish-my-static-site"},"Unpublish my static site"),(0,a.kt)("p",null,'You can unpublish your static site to make it no longer accessible.\nTo do this, go to the context menu of the currently deployed version (the first row in the site versions table) and click on "Unpublish static site".'),(0,a.kt)("p",null,"After confirming your intention to unpublish your site, the application will prompt you to:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Sign, using your Archethic Wallet, the transaction that will update the reference transaction of your site in the blockchain to declare the unpublishing."),(0,a.kt)("li",{parentName:"ul"},"Then sign the transaction that allows transferring funds from your current account to the transaction chain of your site to update the reference transaction.")),(0,a.kt)("p",null,"The associated fees for unpublishing will be provided, and once accepted, the site will be unpublished."),(0,a.kt)("video",{controls:!0,width:"90%"},(0,a.kt)("source",{src:"/video/AEWeb-howto-Unpublished site.mp4"})),(0,a.kt)("h3",{id:"see-my-static-sites-informations"},"See my static site's informations"),(0,a.kt)("p",null,"For each online version and for each previous version of your website, you can access the following information by clicking on the three dots at the end of each line:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"The file structure of your website that has been deployed on the blockchain."),(0,a.kt)("li",{parentName:"ul"},"The transactions containing the content of your files.")),(0,a.kt)("p",null,"Regarding the SSL certificate content, you can view it by clicking on the shield icon if you have deployed one. If the icon is red, it means that no certificate is available."),(0,a.kt)("video",{controls:!0,width:"90%"},(0,a.kt)("source",{src:"/video/AEWeb-howto-Infos site.mp4"})),(0,a.kt)("h3",{id:"disconnect-aeweb"},"Disconnect AEWeb"),(0,a.kt)("p",null,"When you want to disconnect the AEWeb application from your Archethic Wallet, simply click on the red disconnect button in the section describing the connected account and environment, and then confirm to return to the home screen."),(0,a.kt)("video",{controls:!0,width:"90%"},(0,a.kt)("source",{src:"/video/AEWeb-howto-Disconnect.mp4"})),(0,a.kt)("h2",{id:"roadmap"},"Roadmap"),(0,a.kt)("ul",{className:"contains-task-list"},(0,a.kt)("li",{parentName:"ul",className:"task-list-item"},(0,a.kt)("input",{parentName:"li",type:"checkbox",checked:!1,disabled:!0})," ","Add session management to the wallet to avoid entering the user's authentication for each transaction signature."),(0,a.kt)("li",{parentName:"ul",className:"task-list-item"},(0,a.kt)("input",{parentName:"li",type:"checkbox",checked:!1,disabled:!0})," ","Enable direct management of the site's content from AEWeb instead of uploading an archive with all the contents.")))}p.isMDXComponent=!0},8209:(e,t,i)=>{i(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5400],{3905:(e,t,i)=>{i.d(t,{Zo:()=>u,kt:()=>f});var n=i(67294);function a(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function o(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,n)}return i}function r(e){for(var t=1;t=0||(a[i]=e[i]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(a[i]=e[i])}return a}var l=n.createContext({}),s=function(e){var t=n.useContext(l),i=t;return e&&(i="function"==typeof e?e(t):r(r({},t),e)),i},u=function(e){var t=s(e.components);return n.createElement(l.Provider,{value:t},e.children)},h="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var i=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),h=s(i),d=a,f=h["".concat(l,".").concat(d)]||h[d]||p[d]||o;return i?n.createElement(f,r(r({ref:t},u),{},{components:i})):n.createElement(f,r({ref:t},u))}));function f(e,t){var i=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=i.length,r=new Array(o);r[0]=d;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[h]="string"==typeof e?e:a,r[1]=c;for(var s=2;s{i.r(t),i.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>p,frontMatter:()=>o,metadata:()=>c,toc:()=>s});var n=i(87462),a=(i(67294),i(3905));i(8209);const o={id:"aeweb-front",title:"AEWeb - Application Front End",sidebar_label:"AEWeb Front End",sidebar_position:4},r="AEWeb Front end",c={unversionedId:"participate/aeweb/usage/aeweb-front",id:"participate/aeweb/usage/aeweb-front",title:"AEWeb - Application Front End",description:"Access//aeweb.archethic.net",source:"@site/docs/participate/aeweb/usage/aeweb-front.md",sourceDirName:"participate/aeweb/usage",slug:"/participate/aeweb/usage/aeweb-front",permalink:"/participate/aeweb/usage/aeweb-front",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",sidebarPosition:4,frontMatter:{id:"aeweb-front",title:"AEWeb - Application Front End",sidebar_label:"AEWeb Front End",sidebar_position:4},sidebar:"docs",previous:{title:"CLI",permalink:"/participate/aeweb/usage/cli"},next:{title:"Automate deployments",permalink:"/participate/aeweb/automation"}},l={},s=[{value:"Tutorials",id:"tutorials",level:2},{value:"Deploy for the first time my static site",id:"deploy-for-the-first-time-my-static-site",level:3},{value:"Update my static site",id:"update-my-static-site",level:3},{value:"Update the SSL certificate",id:"update-the-ssl-certificate",level:3},{value:"Unpublish my static site",id:"unpublish-my-static-site",level:3},{value:"See my static site's informations",id:"see-my-static-sites-informations",level:3},{value:"Disconnect AEWeb",id:"disconnect-aeweb",level:3},{value:"Roadmap",id:"roadmap",level:2}],u={toc:s},h="wrapper";function p(e){let{components:t,...i}=e;return(0,a.kt)(h,(0,n.Z)({},u,i,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"aeweb-front-end"},"AEWeb Front end"),(0,a.kt)("p",null,"Access: ",(0,a.kt)("a",{parentName:"p",href:"https://aeweb.archethic.net"},"https://aeweb.archethic.net"),(0,a.kt)("br",null),"\nSource code: ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/aeweb"},"https://github.com/archethic-foundation/aeweb")),(0,a.kt)("p",null,"This web application, built with Flutter, can be used to deploy and manage static sites to the Archethic Blockchain."),(0,a.kt)("admonition",{type:"success"},(0,a.kt)("p",{parentName:"admonition"},"Before reading the following tutorials, understand ",(0,a.kt)("a",{href:"/participate/aeweb/how-it-works",target:"_blank"},"how AEWeb works"),". ")),(0,a.kt)("h2",{id:"tutorials"},"Tutorials"),(0,a.kt)("h3",{id:"deploy-for-the-first-time-my-static-site"},"Deploy for the first time my static site"),(0,a.kt)("p",null,'When you want to deploy a new static website on the Archethic blockchain, simply click on "New static site" in the main menu or the "+" icon in the section reserved for the list of your already deployed sites.'),(0,a.kt)("p",null,"A form will then appear, providing you with the necessary information for deploying your site:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"The name of the website. This name will be used to declare the site in your ",(0,a.kt)("a",{href:"/learn/decentralized-id/keychain",target:"_blank"},"decentralized keychain"),". (mandatory)"),(0,a.kt)("li",{parentName:"ul"},"The archive file (with .zip, .7z, or .rar extension) containing the content of your website. (mandatory)"),(0,a.kt)("li",{parentName:"ul"},"You can specify whether you want to include or exclude files listed in a ",(0,a.kt)("a",{href:"/FAQ/aeweb#what-is-the-purpose-of-a-gitignore-file",target:"_blank"},".gitignore file"),". (optional)"),(0,a.kt)("li",{parentName:"ul"},"The ",(0,a.kt)("a",{href:"/participate/aeweb/dns#1-get-the-certificate",target:"_blank"},"public certificate")," for your domain and the private key associated with the certificate. (optional)")),(0,a.kt)("p",null,"Once the required information is provided and the publication rules are accepted, you can initiate the deployment of your site."),(0,a.kt)("p",null,"AEWeb will then prompt you, via your Archethic wallet, to:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Confirm the creation of the site in your keychain."),(0,a.kt)("li",{parentName:"ul"},"Sign the transaction(s) that contain the content of your site."),(0,a.kt)("li",{parentName:"ul"},"Sign the reference transaction of your site in the blockchain."),(0,a.kt)("li",{parentName:"ul"},"Then sign the transaction that allows transferring funds from your current account to the transaction chains that enable your site to function.")),(0,a.kt)("p",null,"The associated fees for the creation will be provided, and once accepted, your site will be permanently published on the blockchain."),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"In the beta version currently being deployed, a limit of 3 MB for a site has been set.")),(0,a.kt)("br",null),(0,a.kt)("video",{controls:!0,width:"90%"},(0,a.kt)("source",{src:"/video/AEWeb-howto-Create static site.mp4"})),(0,a.kt)("h3",{id:"update-my-static-site"},"Update my static site"),(0,a.kt)("p",null,'You can update your site by comparing the latest version hosted on the blockchain with a new archive containing your modifications.\nTo do this, go to the context menu of the currently deployed version (the first row in the site versions table) and click on "Sync from local folder".'),(0,a.kt)("p",null,"After selecting the archive, the application will present you with information about the differences between the blockchain data and your archive. If you are satisfied with the information and agree to the publication rules, you can proceed with the update."),(0,a.kt)("p",null,"The application will then prompt you to:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Sign, using your Archethic Wallet, the transaction(s) that contain the content of your new site version."),(0,a.kt)("li",{parentName:"ul"},"Sign the transaction to update the reference transaction of your site in the blockchain."),(0,a.kt)("li",{parentName:"ul"},"Then sign the transaction that allows transferring funds from your current account to the transaction chains that power your site.")),(0,a.kt)("p",null,"The associated fees for the update will be provided, and once accepted, a new version of your site will be published on the blockchain."),(0,a.kt)("video",{controls:!0,width:"90%"},(0,a.kt)("source",{src:"/video/AEWeb-howto-Update static site.mp4"})),(0,a.kt)("h3",{id:"update-the-ssl-certificate"},"Update the SSL certificate"),(0,a.kt)("p",null,'You can add and update the SSL certificate associated with your site.\nTo do this, go to the context menu of the currently deployed version (the first row in the site versions table) and click on "Update the certificate".'),(0,a.kt)("p",null,"After selecting the public certificate for your domain and the private key associated with the certificate, the application will prompt you to:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Sign, using your Archethic Wallet, the transaction that will update the reference transaction of your site in the blockchain to include the certificate."),(0,a.kt)("li",{parentName:"ul"},"Then sign the transaction that allows transferring funds from your current account to the transaction chain of your site to update the reference transaction.")),(0,a.kt)("p",null,"The associated fees for the update will be provided, and once accepted, the certificate will be published in the content of the reference transaction, and the private key will be stored in a transaction secret."),(0,a.kt)("video",{controls:!0,width:"90%"},(0,a.kt)("source",{src:"/video/AEWeb-howto-Update certificate.mp4"})),(0,a.kt)("h3",{id:"unpublish-my-static-site"},"Unpublish my static site"),(0,a.kt)("p",null,'You can unpublish your static site to make it no longer accessible.\nTo do this, go to the context menu of the currently deployed version (the first row in the site versions table) and click on "Unpublish static site".'),(0,a.kt)("p",null,"After confirming your intention to unpublish your site, the application will prompt you to:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Sign, using your Archethic Wallet, the transaction that will update the reference transaction of your site in the blockchain to declare the unpublishing."),(0,a.kt)("li",{parentName:"ul"},"Then sign the transaction that allows transferring funds from your current account to the transaction chain of your site to update the reference transaction.")),(0,a.kt)("p",null,"The associated fees for unpublishing will be provided, and once accepted, the site will be unpublished."),(0,a.kt)("video",{controls:!0,width:"90%"},(0,a.kt)("source",{src:"/video/AEWeb-howto-Unpublished site.mp4"})),(0,a.kt)("h3",{id:"see-my-static-sites-informations"},"See my static site's informations"),(0,a.kt)("p",null,"For each online version and for each previous version of your website, you can access the following information by clicking on the three dots at the end of each line:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"The file structure of your website that has been deployed on the blockchain."),(0,a.kt)("li",{parentName:"ul"},"The transactions containing the content of your files.")),(0,a.kt)("p",null,"Regarding the SSL certificate content, you can view it by clicking on the shield icon if you have deployed one. If the icon is red, it means that no certificate is available."),(0,a.kt)("video",{controls:!0,width:"90%"},(0,a.kt)("source",{src:"/video/AEWeb-howto-Infos site.mp4"})),(0,a.kt)("h3",{id:"disconnect-aeweb"},"Disconnect AEWeb"),(0,a.kt)("p",null,"When you want to disconnect the AEWeb application from your Archethic Wallet, simply click on the red disconnect button in the section describing the connected account and environment, and then confirm to return to the home screen."),(0,a.kt)("video",{controls:!0,width:"90%"},(0,a.kt)("source",{src:"/video/AEWeb-howto-Disconnect.mp4"})),(0,a.kt)("h2",{id:"roadmap"},"Roadmap"),(0,a.kt)("ul",{className:"contains-task-list"},(0,a.kt)("li",{parentName:"ul",className:"task-list-item"},(0,a.kt)("input",{parentName:"li",type:"checkbox",checked:!1,disabled:!0})," ","Add session management to the wallet to avoid entering the user's authentication for each transaction signature."),(0,a.kt)("li",{parentName:"ul",className:"task-list-item"},(0,a.kt)("input",{parentName:"li",type:"checkbox",checked:!1,disabled:!0})," ","Enable direct management of the site's content from AEWeb instead of uploading an archive with all the contents.")))}p.isMDXComponent=!0},8209:(e,t,i)=>{i(67294)}}]); \ No newline at end of file diff --git a/assets/js/2bbc5cd2.0aa12c9b.js b/assets/js/2bbc5cd2.8b0cd709.js similarity index 96% rename from assets/js/2bbc5cd2.0aa12c9b.js rename to assets/js/2bbc5cd2.8b0cd709.js index cb151f1c9..a7457721c 100644 --- a/assets/js/2bbc5cd2.0aa12c9b.js +++ b/assets/js/2bbc5cd2.8b0cd709.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1710],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>f});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function c(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var l=a.createContext({}),s=function(e){var t=a.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},p=function(e){var t=s(e.components);return a.createElement(l.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,l=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=s(r),m=n,f=u["".concat(l,".").concat(m)]||u[m]||d[m]||o;return r?a.createElement(f,c(c({ref:t},p),{},{components:r})):a.createElement(f,c({ref:t},p))}));function f(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,c=new Array(o);c[0]=m;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[u]="string"==typeof e?e:n,c[1]=i;for(var s=2;s{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>s});var a=r(87462),n=(r(67294),r(3905));r(8209);const o={id:"smart-contracts",title:"Smart Contracts (Legacy)",sidebar_label:"Legacy",sidebar_position:999},c=void 0,i={unversionedId:"build/smart-contracts/language/legacy/smart-contracts",id:"build/smart-contracts/language/legacy/smart-contracts",title:"Smart Contracts (Legacy)",description:"This specification is deprecated and will be still be valid for SC before 1.1.0. The new version is available here",source:"@site/docs/build/smart-contracts/language/legacy/README.md",sourceDirName:"build/smart-contracts/language/legacy",slug:"/build/smart-contracts/language/legacy/",permalink:"/build/smart-contracts/language/legacy/",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",sidebarPosition:999,frontMatter:{id:"smart-contracts",title:"Smart Contracts (Legacy)",sidebar_label:"Legacy",sidebar_position:999},sidebar:"docs",previous:{title:"Token",permalink:"/build/smart-contracts/language/library/token"},next:{title:"Examples",permalink:"/build/smart-contracts/language/legacy/examples"}},l={},s=[],p={toc:s},u="wrapper";function d(e){let{components:t,...r}=e;return(0,n.kt)(u,(0,a.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("admonition",{title:"Disclaimer",type:"caution"},(0,n.kt)("p",{parentName:"admonition"},"This specification is deprecated and will be still be valid for SC before ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/archethic-node/releases/tag/v1.1.0"},"1.1.0"),". The new version is available ",(0,n.kt)("a",{parentName:"p",href:"/build/smart-contracts/language"},"here"))))}d.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1710],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>f});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function c(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var l=a.createContext({}),s=function(e){var t=a.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},p=function(e){var t=s(e.components);return a.createElement(l.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,l=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=s(r),m=n,f=u["".concat(l,".").concat(m)]||u[m]||d[m]||o;return r?a.createElement(f,c(c({ref:t},p),{},{components:r})):a.createElement(f,c({ref:t},p))}));function f(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,c=new Array(o);c[0]=m;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[u]="string"==typeof e?e:n,c[1]=i;for(var s=2;s{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>s});var a=r(87462),n=(r(67294),r(3905));r(8209);const o={id:"smart-contracts",title:"Smart Contracts (Legacy)",sidebar_label:"Legacy",sidebar_position:999},c=void 0,i={unversionedId:"build/smart-contracts/language/legacy/smart-contracts",id:"build/smart-contracts/language/legacy/smart-contracts",title:"Smart Contracts (Legacy)",description:"This specification is deprecated and will be still be valid for SC before 1.1.0. The new version is available here",source:"@site/docs/build/smart-contracts/language/legacy/README.md",sourceDirName:"build/smart-contracts/language/legacy",slug:"/build/smart-contracts/language/legacy/",permalink:"/build/smart-contracts/language/legacy/",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",sidebarPosition:999,frontMatter:{id:"smart-contracts",title:"Smart Contracts (Legacy)",sidebar_label:"Legacy",sidebar_position:999},sidebar:"docs",previous:{title:"Token",permalink:"/build/smart-contracts/language/library/token"},next:{title:"Examples",permalink:"/build/smart-contracts/language/legacy/examples"}},l={},s=[],p={toc:s},u="wrapper";function d(e){let{components:t,...r}=e;return(0,n.kt)(u,(0,a.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("admonition",{title:"Disclaimer",type:"caution"},(0,n.kt)("p",{parentName:"admonition"},"This specification is deprecated and will be still be valid for SC before ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/archethic-node/releases/tag/v1.1.0"},"1.1.0"),". The new version is available ",(0,n.kt)("a",{parentName:"p",href:"/build/smart-contracts/language"},"here"))))}d.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file diff --git a/assets/js/2bc40b18.3da04b94.js b/assets/js/2bc40b18.7d04deaa.js similarity index 99% rename from assets/js/2bc40b18.3da04b94.js rename to assets/js/2bc40b18.7d04deaa.js index 6dd5a905b..831a86f8f 100644 --- a/assets/js/2bc40b18.3da04b94.js +++ b/assets/js/2bc40b18.7d04deaa.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6631],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>f});var a=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var c=a.createContext({}),s=function(e){var t=a.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=s(e.components);return a.createElement(c.Provider,{value:t},e.children)},p="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,c=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),p=s(n),u=o,f=p["".concat(c,".").concat(u)]||p[u]||h[u]||r;return n?a.createElement(f,i(i({ref:t},d),{},{components:n})):a.createElement(f,i({ref:t},d))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,i=new Array(r);i[0]=u;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[p]="string"==typeof e?e:o,i[1]=l;for(var s=2;s{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>h,frontMatter:()=>r,metadata:()=>l,toc:()=>s});var a=n(87462),o=(n(67294),n(3905));n(8209);const r={id:"governance",title:"Governance"},i=void 0,l={unversionedId:"learn/governance/governance",id:"learn/governance/governance",title:"Governance",description:"A DAO (Decentralized Autonomous Organization) is a decentralized organization whose governance rules are automated,",source:"@site/docs/learn/governance/governance.md",sourceDirName:"learn/governance",slug:"/learn/governance/",permalink:"/learn/governance/",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"governance",title:"Governance"},sidebar:"docs",previous:{title:"Keychain",permalink:"/learn/decentralized-id/keychain"},next:{title:"OracleChain",permalink:"/learn/oracle-chain"}},c={},s=[{value:"Decentralized Identity & Proof of Identity",id:"decentralized-identity--proof-of-identity",level:2},{value:"Code \xabOn-Chain\xbb",id:"code-on-chain",level:2},{value:"Introduction",id:"introduction",level:3},{value:"Details",id:"details",level:3},{value:"Incentives",id:"incentives",level:2}],d={toc:s},p="wrapper";function h(e){let{components:t,...n}=e;return(0,o.kt)(p,(0,a.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"A DAO (Decentralized Autonomous Organization) is a decentralized organization whose governance rules are automated,\nimmutable, and transparently embedded in a blockchain."),(0,o.kt)("p",null,"It's one of the biggest challenge in the Blockchain's industry. Often relayed as \"code is law\", those governance model is\nonly applied to a single actor which the miner's owner."),(0,o.kt)("p",null,"While those model are decentralized, they are ignoring huge part of the ecosystem being the users themselves, the\napplication providers, the technical contributors, and even the Blockchain itself constrained by the code installed on the\nhighest computing power."),(0,o.kt)("p",null,"The governance of the Archethic Blockchain is based on several technical and functional fundamentals:"),(0,o.kt)("h2",{id:"decentralized-identity--proof-of-identity"},"Decentralized Identity & Proof of Identity"),(0,o.kt)("p",null,"An essential prerequisite for a human-inclusive governance:\nthe ability of the ecosystem to uniquely identify a person and\nto integrate that person into a relevant group of actors"),(0,o.kt)("h2",{id:"code-on-chain"},"Code \xabOn-Chain\xbb"),(0,o.kt)("h3",{id:"introduction"},"Introduction"),(0,o.kt)("p",null,'The code used by the nodes is hosted by the Blockchain itself, so the network is certain that all the nodes will\nimmediately apply the decided updates (via Elixir hot-reload modules and from the information stored in the "transaction content" area). '),(0,o.kt)("p",null,"The Archethic Blockchain is also equipped with the ability to test the impact of a new feature in real-time."),(0,o.kt)("p",null,"Each update is stored in the form of a specific transaction chain allowing the network to version (git...) all updates, but also to force each update according to a specific governance (voting quorum, veto right...)."),(0,o.kt)("h3",{id:"details"},"Details"),(0,o.kt)("p",null,"Archethic Blockchain is using code proposals to have a way to upgrade current blockchain code in a automated and tested way. "),(0,o.kt)("p",null,"The idea behind the governance on Archethic blockchain is to be able to audit, test and apply code proposals in a automatic, indepedent and secure way across the deployed network."),(0,o.kt)("mermaid",{value:"flowchart LR\n Dev[Developer] --\x3e|Create proposal| CodeProposal(Transaction)\n CodeProposal --\x3e SemanticValidation(Semantic Validation)\n SemanticValidation --\x3e CI(Continuous Integration)\n CI --\x3e CD(Continuous Deployment)\n CD --\x3e Up(Upgrade)\n Up --\x3e Reward(Reward)\n Reward --\x3e Dev"}),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"The process begins when a contributor creates a code proposal within a transaction. This code proposal will be checked to ensure that it follows the proper form (contains the correct fields for example)."),(0,o.kt)("li",{parentName:"ol"},"After the code proposal is verified, we start going over the details of the proposal and verifying that it contains correct version, valid upgrade terms and valid changes for example."),(0,o.kt)("li",{parentName:"ol"},"When the code proposal is considered valid, and after gathering enough approvals from members of the technical council, we start the Continuous Integration phase.\nThe role of this part is to check that the proposal passes the tests, security checks and code style."),(0,o.kt)("li",{parentName:"ol"},"If the phase returns a success then we start the Continuous Deployment phase.\nThe aim of this part is to test the proposal in a real world settings by deploying it into a testnet with various nodes performing multiple distinct functions."),(0,o.kt)("li",{parentName:"ol"},"After the last phase succeeded, we launch the next phase which consists of upgrading the actual nodes to the new versions and finally rewarding all the actors that participated in the global process.")),(0,o.kt)("h2",{id:"incentives"},"Incentives"),(0,o.kt)("p",null,"Financing of the work associated with updates, new features, and contributions is an essential element.\nThe network has a reserve of one-third of the tokens (with progressive distribution constraints) for this purpose."))}h.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6631],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>f});var a=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var c=a.createContext({}),s=function(e){var t=a.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=s(e.components);return a.createElement(c.Provider,{value:t},e.children)},p="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,c=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),p=s(n),u=o,f=p["".concat(c,".").concat(u)]||p[u]||h[u]||r;return n?a.createElement(f,i(i({ref:t},d),{},{components:n})):a.createElement(f,i({ref:t},d))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,i=new Array(r);i[0]=u;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[p]="string"==typeof e?e:o,i[1]=l;for(var s=2;s{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>h,frontMatter:()=>r,metadata:()=>l,toc:()=>s});var a=n(87462),o=(n(67294),n(3905));n(8209);const r={id:"governance",title:"Governance"},i=void 0,l={unversionedId:"learn/governance/governance",id:"learn/governance/governance",title:"Governance",description:"A DAO (Decentralized Autonomous Organization) is a decentralized organization whose governance rules are automated,",source:"@site/docs/learn/governance/governance.md",sourceDirName:"learn/governance",slug:"/learn/governance/",permalink:"/learn/governance/",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"governance",title:"Governance"},sidebar:"docs",previous:{title:"Keychain",permalink:"/learn/decentralized-id/keychain"},next:{title:"OracleChain",permalink:"/learn/oracle-chain"}},c={},s=[{value:"Decentralized Identity & Proof of Identity",id:"decentralized-identity--proof-of-identity",level:2},{value:"Code \xabOn-Chain\xbb",id:"code-on-chain",level:2},{value:"Introduction",id:"introduction",level:3},{value:"Details",id:"details",level:3},{value:"Incentives",id:"incentives",level:2}],d={toc:s},p="wrapper";function h(e){let{components:t,...n}=e;return(0,o.kt)(p,(0,a.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"A DAO (Decentralized Autonomous Organization) is a decentralized organization whose governance rules are automated,\nimmutable, and transparently embedded in a blockchain."),(0,o.kt)("p",null,"It's one of the biggest challenge in the Blockchain's industry. Often relayed as \"code is law\", those governance model is\nonly applied to a single actor which the miner's owner."),(0,o.kt)("p",null,"While those model are decentralized, they are ignoring huge part of the ecosystem being the users themselves, the\napplication providers, the technical contributors, and even the Blockchain itself constrained by the code installed on the\nhighest computing power."),(0,o.kt)("p",null,"The governance of the Archethic Blockchain is based on several technical and functional fundamentals:"),(0,o.kt)("h2",{id:"decentralized-identity--proof-of-identity"},"Decentralized Identity & Proof of Identity"),(0,o.kt)("p",null,"An essential prerequisite for a human-inclusive governance:\nthe ability of the ecosystem to uniquely identify a person and\nto integrate that person into a relevant group of actors"),(0,o.kt)("h2",{id:"code-on-chain"},"Code \xabOn-Chain\xbb"),(0,o.kt)("h3",{id:"introduction"},"Introduction"),(0,o.kt)("p",null,'The code used by the nodes is hosted by the Blockchain itself, so the network is certain that all the nodes will\nimmediately apply the decided updates (via Elixir hot-reload modules and from the information stored in the "transaction content" area). '),(0,o.kt)("p",null,"The Archethic Blockchain is also equipped with the ability to test the impact of a new feature in real-time."),(0,o.kt)("p",null,"Each update is stored in the form of a specific transaction chain allowing the network to version (git...) all updates, but also to force each update according to a specific governance (voting quorum, veto right...)."),(0,o.kt)("h3",{id:"details"},"Details"),(0,o.kt)("p",null,"Archethic Blockchain is using code proposals to have a way to upgrade current blockchain code in a automated and tested way. "),(0,o.kt)("p",null,"The idea behind the governance on Archethic blockchain is to be able to audit, test and apply code proposals in a automatic, indepedent and secure way across the deployed network."),(0,o.kt)("mermaid",{value:"flowchart LR\n Dev[Developer] --\x3e|Create proposal| CodeProposal(Transaction)\n CodeProposal --\x3e SemanticValidation(Semantic Validation)\n SemanticValidation --\x3e CI(Continuous Integration)\n CI --\x3e CD(Continuous Deployment)\n CD --\x3e Up(Upgrade)\n Up --\x3e Reward(Reward)\n Reward --\x3e Dev"}),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"The process begins when a contributor creates a code proposal within a transaction. This code proposal will be checked to ensure that it follows the proper form (contains the correct fields for example)."),(0,o.kt)("li",{parentName:"ol"},"After the code proposal is verified, we start going over the details of the proposal and verifying that it contains correct version, valid upgrade terms and valid changes for example."),(0,o.kt)("li",{parentName:"ol"},"When the code proposal is considered valid, and after gathering enough approvals from members of the technical council, we start the Continuous Integration phase.\nThe role of this part is to check that the proposal passes the tests, security checks and code style."),(0,o.kt)("li",{parentName:"ol"},"If the phase returns a success then we start the Continuous Deployment phase.\nThe aim of this part is to test the proposal in a real world settings by deploying it into a testnet with various nodes performing multiple distinct functions."),(0,o.kt)("li",{parentName:"ol"},"After the last phase succeeded, we launch the next phase which consists of upgrading the actual nodes to the new versions and finally rewarding all the actors that participated in the global process.")),(0,o.kt)("h2",{id:"incentives"},"Incentives"),(0,o.kt)("p",null,"Financing of the work associated with updates, new features, and contributions is an essential element.\nThe network has a reserve of one-third of the tokens (with progressive distribution constraints) for this purpose."))}h.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/2c3d8110.91130eed.js b/assets/js/2c3d8110.51a5f60b.js similarity index 98% rename from assets/js/2c3d8110.91130eed.js rename to assets/js/2c3d8110.51a5f60b.js index f12eb1298..8ff2cb2fd 100644 --- a/assets/js/2c3d8110.91130eed.js +++ b/assets/js/2c3d8110.51a5f60b.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4732],{3905:(e,t,n)=>{n.d(t,{Zo:()=>m,kt:()=>h});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),c=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},m=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,l=e.parentName,m=s(e,["components","mdxType","originalType","parentName"]),d=c(n),p=r,h=d["".concat(l,".").concat(p)]||d[p]||u[p]||i;return n?a.createElement(h,o(o({ref:t},m),{},{components:n})):a.createElement(h,o({ref:t},m))}));function h(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,o=new Array(i);o[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[d]="string"==typeof e?e:r,o[1]=s;for(var c=2;c{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>s,toc:()=>c});var a=n(87462),r=(n(67294),n(3905));n(8209);const i={id:"scheduler",title:"OracleChain Scheduler",sidebar_label:"Scheduler"},o=void 0,s={unversionedId:"build/core/oracle-chain/scheduler",id:"build/core/oracle-chain/scheduler",title:"OracleChain Scheduler",description:"The OracleChain module contains a process in charge of scheduling the data fetching and transaction submitting.",source:"@site/docs/build/core/oracle-chain/scheduler.md",sourceDirName:"build/core/oracle-chain",slug:"/build/core/oracle-chain/scheduler",permalink:"/build/core/oracle-chain/scheduler",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"scheduler",title:"OracleChain Scheduler",sidebar_label:"Scheduler"},sidebar:"docs",previous:{title:"Memory database",permalink:"/build/core/oracle-chain/memory-table"},next:{title:"Service",permalink:"/build/core/oracle-chain/service"}},l={},c=[],m={toc:c},d="wrapper";function u(e){let{components:t,...n}=e;return(0,r.kt)(d,(0,a.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"The OracleChain module contains a process in charge of scheduling the data fetching and transaction submitting."),(0,r.kt)("p",null,"It's modeled as finite state machine."),(0,r.kt)("p",null,"Three main state are represented:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"IDLE"),": When the process is waiting a new tick to be triggered based on some interval"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"Polling"),": When the process must fetch data from external sources"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"Summary"),": When the process must aggregate the entire polling transactions for a given interval")),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"Mainnet and Testnet can have different values based on environment variables."),(0,r.kt)("p",{parentName:"admonition"},"This is due to simulate quicker events and summary."),(0,r.kt)("p",{parentName:"admonition"},"For example,"),(0,r.kt)("ul",{parentName:"admonition"},(0,r.kt)("li",{parentName:"ul"},"on Mainnet: each polling is triggered each minute and the summary each day at 00:00 UTC."),(0,r.kt)("li",{parentName:"ul"},"on Testnet: each polling is triggered each 10s and the summary each minute.\n:::")),(0,r.kt)("p",{parentName:"admonition"},"For each actionable state, the process determines if the current running node is in charge to fetch or emit the transaction, based on the election algorithm."),(0,r.kt)("p",{parentName:"admonition"},"Also to avoid any useless transactions, the process identifies if a new transaction must be emitted regarding the freshness of the information retrieved from the Oracle services."),(0,r.kt)("p",{parentName:"admonition"},"You can find below a schema representing this finite state machine and its related events.")),(0,r.kt)("mermaid",{value:'stateDiagram-v2\n [*] --\x3e Idle\n Idle --\x3e Idle: "tick\n\n state "Is summary time ?" as Is_Summary_Time\n\n state if_state <>\n Idle --\x3e Is_Summary_Time\n Is_Summary_Time --\x3e if_state\n if_state --\x3e Summary: "Yes"\n if_state --\x3e Polling: "No"\n\n\n state Polling {\n state if_state_polling <>\n state "Is polling trigger node ?" as IsPollingTriggerNode\n state "Fetching data" as FetchData\n state if_state_polling_new_data <>\n state "Is new data ?" as IsNewData\n state "Send oracle transaction" as SendOracleTransaction\n\n [*] --\x3e IsPollingTriggerNode\n IsPollingTriggerNode --\x3e if_state_polling\n if_state_polling --\x3e [*]: "No"\n if_state_polling --\x3e FetchData: "Yes"\n FetchData --\x3e IsNewData\n\n IsNewData --\x3e if_state_polling_new_data\n if_state_polling_new_data --\x3e [*]: "No"\n if_state_polling_new_data --\x3e SendOracleTransaction: "Yes"\n SendOracleTransaction --\x3e [*]\n }\n\n Polling --\x3e Idle\n\n\n state Summary {\n state if_state_summary <>\n state "Is summary trigger node ?" as IsSummaryTriggerNode\n state "Send summary transaction" as SendSummaryTransaction\n\n [*] --\x3e IsSummaryTriggerNode\n IsSummaryTriggerNode --\x3e if_state_summary\n if_state_summary --\x3e [*]: "No"\n if_state_summary --\x3e SendSummaryTransaction: "Yes"\n SendSummaryTransaction --\x3e [*]\n }\n\n Summary --\x3e Idle'}),(0,r.kt)("p",null,":::note"))}u.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4732],{3905:(e,t,n)=>{n.d(t,{Zo:()=>m,kt:()=>h});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),c=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},m=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,l=e.parentName,m=s(e,["components","mdxType","originalType","parentName"]),d=c(n),p=r,h=d["".concat(l,".").concat(p)]||d[p]||u[p]||i;return n?a.createElement(h,o(o({ref:t},m),{},{components:n})):a.createElement(h,o({ref:t},m))}));function h(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,o=new Array(i);o[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[d]="string"==typeof e?e:r,o[1]=s;for(var c=2;c{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>s,toc:()=>c});var a=n(87462),r=(n(67294),n(3905));n(8209);const i={id:"scheduler",title:"OracleChain Scheduler",sidebar_label:"Scheduler"},o=void 0,s={unversionedId:"build/core/oracle-chain/scheduler",id:"build/core/oracle-chain/scheduler",title:"OracleChain Scheduler",description:"The OracleChain module contains a process in charge of scheduling the data fetching and transaction submitting.",source:"@site/docs/build/core/oracle-chain/scheduler.md",sourceDirName:"build/core/oracle-chain",slug:"/build/core/oracle-chain/scheduler",permalink:"/build/core/oracle-chain/scheduler",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"scheduler",title:"OracleChain Scheduler",sidebar_label:"Scheduler"},sidebar:"docs",previous:{title:"Memory database",permalink:"/build/core/oracle-chain/memory-table"},next:{title:"Service",permalink:"/build/core/oracle-chain/service"}},l={},c=[],m={toc:c},d="wrapper";function u(e){let{components:t,...n}=e;return(0,r.kt)(d,(0,a.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"The OracleChain module contains a process in charge of scheduling the data fetching and transaction submitting."),(0,r.kt)("p",null,"It's modeled as finite state machine."),(0,r.kt)("p",null,"Three main state are represented:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"IDLE"),": When the process is waiting a new tick to be triggered based on some interval"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"Polling"),": When the process must fetch data from external sources"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"Summary"),": When the process must aggregate the entire polling transactions for a given interval")),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"Mainnet and Testnet can have different values based on environment variables."),(0,r.kt)("p",{parentName:"admonition"},"This is due to simulate quicker events and summary."),(0,r.kt)("p",{parentName:"admonition"},"For example,"),(0,r.kt)("ul",{parentName:"admonition"},(0,r.kt)("li",{parentName:"ul"},"on Mainnet: each polling is triggered each minute and the summary each day at 00:00 UTC."),(0,r.kt)("li",{parentName:"ul"},"on Testnet: each polling is triggered each 10s and the summary each minute.\n:::")),(0,r.kt)("p",{parentName:"admonition"},"For each actionable state, the process determines if the current running node is in charge to fetch or emit the transaction, based on the election algorithm."),(0,r.kt)("p",{parentName:"admonition"},"Also to avoid any useless transactions, the process identifies if a new transaction must be emitted regarding the freshness of the information retrieved from the Oracle services."),(0,r.kt)("p",{parentName:"admonition"},"You can find below a schema representing this finite state machine and its related events.")),(0,r.kt)("mermaid",{value:'stateDiagram-v2\n [*] --\x3e Idle\n Idle --\x3e Idle: "tick\n\n state "Is summary time ?" as Is_Summary_Time\n\n state if_state <>\n Idle --\x3e Is_Summary_Time\n Is_Summary_Time --\x3e if_state\n if_state --\x3e Summary: "Yes"\n if_state --\x3e Polling: "No"\n\n\n state Polling {\n state if_state_polling <>\n state "Is polling trigger node ?" as IsPollingTriggerNode\n state "Fetching data" as FetchData\n state if_state_polling_new_data <>\n state "Is new data ?" as IsNewData\n state "Send oracle transaction" as SendOracleTransaction\n\n [*] --\x3e IsPollingTriggerNode\n IsPollingTriggerNode --\x3e if_state_polling\n if_state_polling --\x3e [*]: "No"\n if_state_polling --\x3e FetchData: "Yes"\n FetchData --\x3e IsNewData\n\n IsNewData --\x3e if_state_polling_new_data\n if_state_polling_new_data --\x3e [*]: "No"\n if_state_polling_new_data --\x3e SendOracleTransaction: "Yes"\n SendOracleTransaction --\x3e [*]\n }\n\n Polling --\x3e Idle\n\n\n state Summary {\n state if_state_summary <>\n state "Is summary trigger node ?" as IsSummaryTriggerNode\n state "Send summary transaction" as SendSummaryTransaction\n\n [*] --\x3e IsSummaryTriggerNode\n IsSummaryTriggerNode --\x3e if_state_summary\n if_state_summary --\x3e [*]: "No"\n if_state_summary --\x3e SendSummaryTransaction: "Yes"\n SendSummaryTransaction --\x3e [*]\n }\n\n Summary --\x3e Idle'}),(0,r.kt)("p",null,":::note"))}u.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/2d63ea61.e8664f03.js b/assets/js/2d63ea61.2bfd46f7.js similarity index 98% rename from assets/js/2d63ea61.e8664f03.js rename to assets/js/2d63ea61.2bfd46f7.js index a1358c991..5eca1a9de 100644 --- a/assets/js/2d63ea61.e8664f03.js +++ b/assets/js/2d63ea61.2bfd46f7.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2971],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>b});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function l(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var c=a.createContext({}),d=function(e){var t=a.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},s=function(e){var t=d(e.components);return a.createElement(c.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},y=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,c=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),u=d(r),y=n,b=u["".concat(c,".").concat(y)]||u[y]||p[y]||o;return r?a.createElement(b,l(l({ref:t},s),{},{components:r})):a.createElement(b,l({ref:t},s))}));function b(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,l=new Array(o);l[0]=y;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[u]="string"==typeof e?e:n,l[1]=i;for(var d=2;d{r.r(t),r.d(t,{Badge:()=>p,Bullet:()=>s,Details:()=>b,SpecifiedBy:()=>u,assets:()=>d,contentTitle:()=>i,default:()=>f,frontMatter:()=>l,metadata:()=>c,toc:()=>y});var a=r(87462),n=r(67294),o=r(3905);r(8209);const l={id:"authorized-key",title:"AuthorizedKey",hide_table_of_contents:!1},i=void 0,c={unversionedId:"build/api/schema/objects/authorized-key",id:"build/api/schema/objects/authorized-key",title:"AuthorizedKey",description:"[AuthorizedKey] represents a authorized public key with the encrypted secret key for this given key.",source:"@site/docs/build/api/schema/objects/authorized-key.mdx",sourceDirName:"build/api/schema/objects",slug:"/build/api/schema/objects/authorized-key",permalink:"/build/api/schema/objects/authorized-key",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"authorized-key",title:"AuthorizedKey",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"SortOrder",permalink:"/build/api/schema/enums/sort-order"},next:{title:"Balance",permalink:"/build/api/schema/objects/balance"}},d={},s=()=>(0,o.kt)(n.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),u=e=>(0,o.kt)(n.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),p=e=>(0,o.kt)(n.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),y=[{value:"Fields",id:"fields",level:3},{value:'AuthorizedKey.encryptedSecretKeyHex ',id:"code-style-fontweight-normal-authorizedkeybencryptedsecretkeybcodehex-",level:4},{value:'AuthorizedKey.publicKeyPublicKey ',id:"code-style-fontweight-normal-authorizedkeybpublickeybcodepublickey-",level:4},{value:"Member of",id:"member-of",level:3}],b=e=>{let{dataOpen:t,dataClose:r,children:l,startOpen:i=!1}=e;const[c,d]=(0,n.useState)(i);return(0,o.kt)("details",(0,a.Z)({},c?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),d((e=>!e))},style:{listStyle:"none"}},c?t:r),c&&l)},m={Bullet:s,SpecifiedBy:u,Badge:p,toc:y,Details:b},h="wrapper";function f(e){let{components:t,...r}=e;return(0,o.kt)(h,(0,a.Z)({},m,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"[AuthorizedKey]"," represents a authorized public key with the encrypted secret key for this given key.\nBy decrypting this secret key, the authorized public key will be able to decrypt its related secret"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"type AuthorizedKey {\n encryptedSecretKey: Hex\n publicKey: PublicKey\n}\n")),(0,o.kt)("h3",{id:"fields"},"Fields"),(0,o.kt)("h4",{id:"code-style-fontweight-normal-authorizedkeybencryptedsecretkeybcodehex-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"AuthorizedKey.",(0,o.kt)("b",null,"encryptedSecretKey"))),(0,o.kt)(s,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/hex"},(0,o.kt)("inlineCode",{parentName:"a"},"Hex"))," ",(0,o.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h4",{id:"code-style-fontweight-normal-authorizedkeybpublickeybcodepublickey-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"AuthorizedKey.",(0,o.kt)("b",null,"publicKey"))),(0,o.kt)(s,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/public-key"},(0,o.kt)("inlineCode",{parentName:"a"},"PublicKey"))," ",(0,o.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h3",{id:"member-of"},"Member of"),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/ownership"},(0,o.kt)("inlineCode",{parentName:"a"},"Ownership"))," ",(0,o.kt)(p,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}f.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2971],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>b});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function l(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var c=a.createContext({}),d=function(e){var t=a.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},s=function(e){var t=d(e.components);return a.createElement(c.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},y=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,c=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),u=d(r),y=n,b=u["".concat(c,".").concat(y)]||u[y]||p[y]||o;return r?a.createElement(b,l(l({ref:t},s),{},{components:r})):a.createElement(b,l({ref:t},s))}));function b(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,l=new Array(o);l[0]=y;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[u]="string"==typeof e?e:n,l[1]=i;for(var d=2;d{r.r(t),r.d(t,{Badge:()=>p,Bullet:()=>s,Details:()=>b,SpecifiedBy:()=>u,assets:()=>d,contentTitle:()=>i,default:()=>f,frontMatter:()=>l,metadata:()=>c,toc:()=>y});var a=r(87462),n=r(67294),o=r(3905);r(8209);const l={id:"authorized-key",title:"AuthorizedKey",hide_table_of_contents:!1},i=void 0,c={unversionedId:"build/api/schema/objects/authorized-key",id:"build/api/schema/objects/authorized-key",title:"AuthorizedKey",description:"[AuthorizedKey] represents a authorized public key with the encrypted secret key for this given key.",source:"@site/docs/build/api/schema/objects/authorized-key.mdx",sourceDirName:"build/api/schema/objects",slug:"/build/api/schema/objects/authorized-key",permalink:"/build/api/schema/objects/authorized-key",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"authorized-key",title:"AuthorizedKey",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"SortOrder",permalink:"/build/api/schema/enums/sort-order"},next:{title:"Balance",permalink:"/build/api/schema/objects/balance"}},d={},s=()=>(0,o.kt)(n.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),u=e=>(0,o.kt)(n.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),p=e=>(0,o.kt)(n.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),y=[{value:"Fields",id:"fields",level:3},{value:'AuthorizedKey.encryptedSecretKeyHex ',id:"code-style-fontweight-normal-authorizedkeybencryptedsecretkeybcodehex-",level:4},{value:'AuthorizedKey.publicKeyPublicKey ',id:"code-style-fontweight-normal-authorizedkeybpublickeybcodepublickey-",level:4},{value:"Member of",id:"member-of",level:3}],b=e=>{let{dataOpen:t,dataClose:r,children:l,startOpen:i=!1}=e;const[c,d]=(0,n.useState)(i);return(0,o.kt)("details",(0,a.Z)({},c?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),d((e=>!e))},style:{listStyle:"none"}},c?t:r),c&&l)},m={Bullet:s,SpecifiedBy:u,Badge:p,toc:y,Details:b},h="wrapper";function f(e){let{components:t,...r}=e;return(0,o.kt)(h,(0,a.Z)({},m,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"[AuthorizedKey]"," represents a authorized public key with the encrypted secret key for this given key.\nBy decrypting this secret key, the authorized public key will be able to decrypt its related secret"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"type AuthorizedKey {\n encryptedSecretKey: Hex\n publicKey: PublicKey\n}\n")),(0,o.kt)("h3",{id:"fields"},"Fields"),(0,o.kt)("h4",{id:"code-style-fontweight-normal-authorizedkeybencryptedsecretkeybcodehex-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"AuthorizedKey.",(0,o.kt)("b",null,"encryptedSecretKey"))),(0,o.kt)(s,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/hex"},(0,o.kt)("inlineCode",{parentName:"a"},"Hex"))," ",(0,o.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h4",{id:"code-style-fontweight-normal-authorizedkeybpublickeybcodepublickey-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"AuthorizedKey.",(0,o.kt)("b",null,"publicKey"))),(0,o.kt)(s,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/public-key"},(0,o.kt)("inlineCode",{parentName:"a"},"PublicKey"))," ",(0,o.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h3",{id:"member-of"},"Member of"),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/ownership"},(0,o.kt)("inlineCode",{parentName:"a"},"Ownership"))," ",(0,o.kt)(p,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}f.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file diff --git a/assets/js/2f55ba46.c82ed54e.js b/assets/js/2f55ba46.4d7b1c45.js similarity index 98% rename from assets/js/2f55ba46.c82ed54e.js rename to assets/js/2f55ba46.4d7b1c45.js index 9b4079e53..6a82c99f8 100644 --- a/assets/js/2f55ba46.c82ed54e.js +++ b/assets/js/2f55ba46.4d7b1c45.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6898],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>f});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),c=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=c(e.components);return n.createElement(l.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=c(r),m=a,f=d["".concat(l,".").concat(m)]||d[m]||u[m]||o;return r?n.createElement(f,i(i({ref:t},p),{},{components:r})):n.createElement(f,i({ref:t},p))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=m;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[d]="string"==typeof e?e:a,i[1]=s;for(var c=2;c{r.r(t),r.d(t,{Badge:()=>u,Bullet:()=>p,Details:()=>f,SpecifiedBy:()=>d,assets:()=>c,contentTitle:()=>s,default:()=>v,frontMatter:()=>i,metadata:()=>l,toc:()=>m});var n=r(87462),a=r(67294),o=r(3905);r(8209);const i={id:"version",title:"version",hide_table_of_contents:!1},s=void 0,l={unversionedId:"build/api/schema/queries/version",id:"build/api/schema/queries/version",title:"version",description:"List protocol, transaction and code versions",source:"@site/docs/build/api/schema/queries/version.mdx",sourceDirName:"build/api/schema/queries",slug:"/build/api/schema/queries/version",permalink:"/build/api/schema/queries/version",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"version",title:"version",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"transactions",permalink:"/build/api/schema/queries/transactions"},next:{title:"Address",permalink:"/build/api/schema/scalars/address"}},c={},p=()=>(0,o.kt)(a.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),d=e=>(0,o.kt)(a.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,o.kt)(a.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),m=[{value:"Type",id:"type",level:3},{value:'Version ',id:"version-",level:4}],f=e=>{let{dataOpen:t,dataClose:r,children:i,startOpen:s=!1}=e;const[l,c]=(0,a.useState)(s);return(0,o.kt)("details",(0,n.Z)({},l?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),c((e=>!e))},style:{listStyle:"none"}},l?t:r),l&&i)},b={Bullet:p,SpecifiedBy:d,Badge:u,toc:m,Details:f},y="wrapper";function v(e){let{components:t,...r}=e;return(0,o.kt)(y,(0,n.Z)({},b,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"List protocol, transaction and code versions"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"version: Version\n")),(0,o.kt)("h3",{id:"type"},"Type"),(0,o.kt)("h4",{id:"version-"},(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/version"},(0,o.kt)("inlineCode",{parentName:"a"},"Version"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,o.kt)("blockquote",null,(0,o.kt)("p",{parentName:"blockquote"},"[Version]"," represents code, transaction and protocol version")))}v.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6898],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>f});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),c=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=c(e.components);return n.createElement(l.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=c(r),m=a,f=d["".concat(l,".").concat(m)]||d[m]||u[m]||o;return r?n.createElement(f,i(i({ref:t},p),{},{components:r})):n.createElement(f,i({ref:t},p))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=m;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[d]="string"==typeof e?e:a,i[1]=s;for(var c=2;c{r.r(t),r.d(t,{Badge:()=>u,Bullet:()=>p,Details:()=>f,SpecifiedBy:()=>d,assets:()=>c,contentTitle:()=>s,default:()=>v,frontMatter:()=>i,metadata:()=>l,toc:()=>m});var n=r(87462),a=r(67294),o=r(3905);r(8209);const i={id:"version",title:"version",hide_table_of_contents:!1},s=void 0,l={unversionedId:"build/api/schema/queries/version",id:"build/api/schema/queries/version",title:"version",description:"List protocol, transaction and code versions",source:"@site/docs/build/api/schema/queries/version.mdx",sourceDirName:"build/api/schema/queries",slug:"/build/api/schema/queries/version",permalink:"/build/api/schema/queries/version",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"version",title:"version",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"transactions",permalink:"/build/api/schema/queries/transactions"},next:{title:"Address",permalink:"/build/api/schema/scalars/address"}},c={},p=()=>(0,o.kt)(a.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),d=e=>(0,o.kt)(a.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,o.kt)(a.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),m=[{value:"Type",id:"type",level:3},{value:'Version ',id:"version-",level:4}],f=e=>{let{dataOpen:t,dataClose:r,children:i,startOpen:s=!1}=e;const[l,c]=(0,a.useState)(s);return(0,o.kt)("details",(0,n.Z)({},l?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),c((e=>!e))},style:{listStyle:"none"}},l?t:r),l&&i)},b={Bullet:p,SpecifiedBy:d,Badge:u,toc:m,Details:f},y="wrapper";function v(e){let{components:t,...r}=e;return(0,o.kt)(y,(0,n.Z)({},b,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"List protocol, transaction and code versions"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"version: Version\n")),(0,o.kt)("h3",{id:"type"},"Type"),(0,o.kt)("h4",{id:"version-"},(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/version"},(0,o.kt)("inlineCode",{parentName:"a"},"Version"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,o.kt)("blockquote",null,(0,o.kt)("p",{parentName:"blockquote"},"[Version]"," represents code, transaction and protocol version")))}v.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file diff --git a/assets/js/2fdf8aec.8476c5a8.js b/assets/js/2fdf8aec.4eb3ddfa.js similarity index 98% rename from assets/js/2fdf8aec.8476c5a8.js rename to assets/js/2fdf8aec.4eb3ddfa.js index d7ae8878c..00133fab1 100644 --- a/assets/js/2fdf8aec.8476c5a8.js +++ b/assets/js/2fdf8aec.4eb3ddfa.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1328],{3905:(e,r,t)=>{t.d(r,{Zo:()=>p,kt:()=>f});var n=t(67294);function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function c(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function i(e){for(var r=1;r=0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var l=n.createContext({}),u=function(e){var r=n.useContext(l),t=r;return e&&(t="function"==typeof e?e(r):i(i({},r),e)),t},p=function(e){var r=u(e.components);return n.createElement(l.Provider,{value:r},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},m=n.forwardRef((function(e,r){var t=e.components,a=e.mdxType,c=e.originalType,l=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),s=u(t),m=a,f=s["".concat(l,".").concat(m)]||s[m]||d[m]||c;return t?n.createElement(f,i(i({ref:r},p),{},{components:t})):n.createElement(f,i({ref:r},p))}));function f(e,r){var t=arguments,a=r&&r.mdxType;if("string"==typeof e||a){var c=t.length,i=new Array(c);i[0]=m;var o={};for(var l in r)hasOwnProperty.call(r,l)&&(o[l]=r[l]);o.originalType=e,o[s]="string"==typeof e?e:a,i[1]=o;for(var u=2;u{t.r(r),t.d(r,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>c,metadata:()=>o,toc:()=>u});var n=t(87462),a=(t(67294),t(3905));t(8209);const c={id:"oracle-chain",title:"OracleChain"},i=void 0,o={unversionedId:"build/core/oracle-chain/oracle-chain",id:"build/core/oracle-chain/oracle-chain",title:"OracleChain",description:"OracleChain is an internal mechanism inside Archethic Node Software making external data fetching embedded into a transaction chain.",source:"@site/docs/build/core/oracle-chain/README.md",sourceDirName:"build/core/oracle-chain",slug:"/build/core/oracle-chain/",permalink:"/build/core/oracle-chain/",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"oracle-chain",title:"OracleChain"},sidebar:"docs",previous:{title:"Transaction context retrieval",permalink:"/build/core/mining/transaction-context"},next:{title:"Memory database",permalink:"/build/core/oracle-chain/memory-table"}},l={},u=[],p={toc:u},s="wrapper";function d(e){let{components:r,...t}=e;return(0,a.kt)(s,(0,n.Z)({},p,t,{components:r,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"OracleChain is an internal mechanism inside Archethic Node Software making external data fetching embedded into a transaction chain."),(0,a.kt)("p",null,"It's built around three main components:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"List of ",(0,a.kt)("a",{parentName:"li",href:"/build/core/oracle-chain/service"},"services")," or provider"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"/build/core/oracle-chain/scheduler"},"Scheduler")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"/build/core/oracle-chain/memory-table"},"InMemory database"))))}d.isMDXComponent=!0},8209:(e,r,t)=>{t(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1328],{3905:(e,r,t)=>{t.d(r,{Zo:()=>p,kt:()=>f});var n=t(67294);function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function c(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function i(e){for(var r=1;r=0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var l=n.createContext({}),u=function(e){var r=n.useContext(l),t=r;return e&&(t="function"==typeof e?e(r):i(i({},r),e)),t},p=function(e){var r=u(e.components);return n.createElement(l.Provider,{value:r},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},m=n.forwardRef((function(e,r){var t=e.components,a=e.mdxType,c=e.originalType,l=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),s=u(t),m=a,f=s["".concat(l,".").concat(m)]||s[m]||d[m]||c;return t?n.createElement(f,i(i({ref:r},p),{},{components:t})):n.createElement(f,i({ref:r},p))}));function f(e,r){var t=arguments,a=r&&r.mdxType;if("string"==typeof e||a){var c=t.length,i=new Array(c);i[0]=m;var o={};for(var l in r)hasOwnProperty.call(r,l)&&(o[l]=r[l]);o.originalType=e,o[s]="string"==typeof e?e:a,i[1]=o;for(var u=2;u{t.r(r),t.d(r,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>c,metadata:()=>o,toc:()=>u});var n=t(87462),a=(t(67294),t(3905));t(8209);const c={id:"oracle-chain",title:"OracleChain"},i=void 0,o={unversionedId:"build/core/oracle-chain/oracle-chain",id:"build/core/oracle-chain/oracle-chain",title:"OracleChain",description:"OracleChain is an internal mechanism inside Archethic Node Software making external data fetching embedded into a transaction chain.",source:"@site/docs/build/core/oracle-chain/README.md",sourceDirName:"build/core/oracle-chain",slug:"/build/core/oracle-chain/",permalink:"/build/core/oracle-chain/",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"oracle-chain",title:"OracleChain"},sidebar:"docs",previous:{title:"Transaction context retrieval",permalink:"/build/core/mining/transaction-context"},next:{title:"Memory database",permalink:"/build/core/oracle-chain/memory-table"}},l={},u=[],p={toc:u},s="wrapper";function d(e){let{components:r,...t}=e;return(0,a.kt)(s,(0,n.Z)({},p,t,{components:r,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"OracleChain is an internal mechanism inside Archethic Node Software making external data fetching embedded into a transaction chain."),(0,a.kt)("p",null,"It's built around three main components:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"List of ",(0,a.kt)("a",{parentName:"li",href:"/build/core/oracle-chain/service"},"services")," or provider"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"/build/core/oracle-chain/scheduler"},"Scheduler")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"/build/core/oracle-chain/memory-table"},"InMemory database"))))}d.isMDXComponent=!0},8209:(e,r,t)=>{t(67294)}}]); \ No newline at end of file diff --git a/assets/js/300a963c.43e0ece2.js b/assets/js/300a963c.048f2071.js similarity index 97% rename from assets/js/300a963c.43e0ece2.js rename to assets/js/300a963c.048f2071.js index 6fc10e164..f8d59b8f3 100644 --- a/assets/js/300a963c.43e0ece2.js +++ b/assets/js/300a963c.048f2071.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5254],{3905:(e,t,r)=>{r.d(t,{Zo:()=>d,kt:()=>m});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function l(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var c=a.createContext({}),i=function(e){var t=a.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},d=function(e){var t=i(e.components);return a.createElement(c.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},f=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,c=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),u=i(r),f=n,m=u["".concat(c,".").concat(f)]||u[f]||p[f]||o;return r?a.createElement(m,l(l({ref:t},d),{},{components:r})):a.createElement(m,l({ref:t},d))}));function m(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,l=new Array(o);l[0]=f;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[u]="string"==typeof e?e:n,l[1]=s;for(var i=2;i{r.r(t),r.d(t,{Badge:()=>p,Bullet:()=>d,Details:()=>m,SpecifiedBy:()=>u,assets:()=>i,contentTitle:()=>s,default:()=>g,frontMatter:()=>l,metadata:()=>c,toc:()=>f});var a=r(87462),n=r(67294),o=r(3905);r(8209);const l={id:"uco-transfer",title:"UcoTransfer",hide_table_of_contents:!1},s=void 0,c={unversionedId:"build/api/schema/objects/uco-transfer",id:"build/api/schema/objects/uco-transfer",title:"UcoTransfer",description:"[UCOTransfer] represents the an asset transfer",source:"@site/docs/build/api/schema/objects/uco-transfer.mdx",sourceDirName:"build/api/schema/objects",slug:"/build/api/schema/objects/uco-transfer",permalink:"/build/api/schema/objects/uco-transfer",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"uco-transfer",title:"UcoTransfer",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"UcoLedger",permalink:"/build/api/schema/objects/uco-ledger"},next:{title:"UnspentOutput",permalink:"/build/api/schema/objects/unspent-output"}},i={},d=()=>(0,o.kt)(n.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),u=e=>(0,o.kt)(n.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),p=e=>(0,o.kt)(n.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),f=[{value:"Fields",id:"fields",level:3},{value:'UcoTransfer.amountInt ',id:"code-style-fontweight-normal-ucotransferbamountbcodeint-",level:4},{value:'UcoTransfer.toAddress ',id:"code-style-fontweight-normal-ucotransferbtobcodeaddress-",level:4},{value:"Member of",id:"member-of",level:3}],m=e=>{let{dataOpen:t,dataClose:r,children:l,startOpen:s=!1}=e;const[c,i]=(0,n.useState)(s);return(0,o.kt)("details",(0,a.Z)({},c?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),i((e=>!e))},style:{listStyle:"none"}},c?t:r),c&&l)},b={Bullet:d,SpecifiedBy:u,Badge:p,toc:f,Details:m},y="wrapper";function g(e){let{components:t,...r}=e;return(0,o.kt)(y,(0,a.Z)({},b,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"[UCOTransfer]"," represents the an asset transfer"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"type UcoTransfer {\n amount: Int\n to: Address\n}\n")),(0,o.kt)("h3",{id:"fields"},"Fields"),(0,o.kt)("h4",{id:"code-style-fontweight-normal-ucotransferbamountbcodeint-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"UcoTransfer.",(0,o.kt)("b",null,"amount"))),(0,o.kt)(d,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/int"},(0,o.kt)("inlineCode",{parentName:"a"},"Int"))," ",(0,o.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h4",{id:"code-style-fontweight-normal-ucotransferbtobcodeaddress-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"UcoTransfer.",(0,o.kt)("b",null,"to"))),(0,o.kt)(d,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/address"},(0,o.kt)("inlineCode",{parentName:"a"},"Address"))," ",(0,o.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h3",{id:"member-of"},"Member of"),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/uco-ledger"},(0,o.kt)("inlineCode",{parentName:"a"},"UcoLedger"))," ",(0,o.kt)(p,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}g.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5254],{3905:(e,t,r)=>{r.d(t,{Zo:()=>d,kt:()=>m});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function l(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var c=a.createContext({}),i=function(e){var t=a.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},d=function(e){var t=i(e.components);return a.createElement(c.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},f=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,c=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),u=i(r),f=n,m=u["".concat(c,".").concat(f)]||u[f]||p[f]||o;return r?a.createElement(m,l(l({ref:t},d),{},{components:r})):a.createElement(m,l({ref:t},d))}));function m(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,l=new Array(o);l[0]=f;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[u]="string"==typeof e?e:n,l[1]=s;for(var i=2;i{r.r(t),r.d(t,{Badge:()=>p,Bullet:()=>d,Details:()=>m,SpecifiedBy:()=>u,assets:()=>i,contentTitle:()=>s,default:()=>g,frontMatter:()=>l,metadata:()=>c,toc:()=>f});var a=r(87462),n=r(67294),o=r(3905);r(8209);const l={id:"uco-transfer",title:"UcoTransfer",hide_table_of_contents:!1},s=void 0,c={unversionedId:"build/api/schema/objects/uco-transfer",id:"build/api/schema/objects/uco-transfer",title:"UcoTransfer",description:"[UCOTransfer] represents the an asset transfer",source:"@site/docs/build/api/schema/objects/uco-transfer.mdx",sourceDirName:"build/api/schema/objects",slug:"/build/api/schema/objects/uco-transfer",permalink:"/build/api/schema/objects/uco-transfer",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"uco-transfer",title:"UcoTransfer",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"UcoLedger",permalink:"/build/api/schema/objects/uco-ledger"},next:{title:"UnspentOutput",permalink:"/build/api/schema/objects/unspent-output"}},i={},d=()=>(0,o.kt)(n.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),u=e=>(0,o.kt)(n.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),p=e=>(0,o.kt)(n.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),f=[{value:"Fields",id:"fields",level:3},{value:'UcoTransfer.amountInt ',id:"code-style-fontweight-normal-ucotransferbamountbcodeint-",level:4},{value:'UcoTransfer.toAddress ',id:"code-style-fontweight-normal-ucotransferbtobcodeaddress-",level:4},{value:"Member of",id:"member-of",level:3}],m=e=>{let{dataOpen:t,dataClose:r,children:l,startOpen:s=!1}=e;const[c,i]=(0,n.useState)(s);return(0,o.kt)("details",(0,a.Z)({},c?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),i((e=>!e))},style:{listStyle:"none"}},c?t:r),c&&l)},b={Bullet:d,SpecifiedBy:u,Badge:p,toc:f,Details:m},y="wrapper";function g(e){let{components:t,...r}=e;return(0,o.kt)(y,(0,a.Z)({},b,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"[UCOTransfer]"," represents the an asset transfer"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"type UcoTransfer {\n amount: Int\n to: Address\n}\n")),(0,o.kt)("h3",{id:"fields"},"Fields"),(0,o.kt)("h4",{id:"code-style-fontweight-normal-ucotransferbamountbcodeint-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"UcoTransfer.",(0,o.kt)("b",null,"amount"))),(0,o.kt)(d,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/int"},(0,o.kt)("inlineCode",{parentName:"a"},"Int"))," ",(0,o.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h4",{id:"code-style-fontweight-normal-ucotransferbtobcodeaddress-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"UcoTransfer.",(0,o.kt)("b",null,"to"))),(0,o.kt)(d,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/address"},(0,o.kt)("inlineCode",{parentName:"a"},"Address"))," ",(0,o.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h3",{id:"member-of"},"Member of"),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/uco-ledger"},(0,o.kt)("inlineCode",{parentName:"a"},"UcoLedger"))," ",(0,o.kt)(p,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}g.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file diff --git a/assets/js/310207c7.e61c303e.js b/assets/js/310207c7.e4546dbf.js similarity index 96% rename from assets/js/310207c7.e61c303e.js rename to assets/js/310207c7.e4546dbf.js index 9fb483870..b1bd9922f 100644 --- a/assets/js/310207c7.e61c303e.js +++ b/assets/js/310207c7.e4546dbf.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5986],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>m});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),l=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},p=function(e){var t=l(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=l(r),f=a,m=u["".concat(s,".").concat(f)]||u[f]||d[f]||o;return r?n.createElement(m,c(c({ref:t},p),{},{components:r})):n.createElement(m,c({ref:t},p))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,c=new Array(o);c[0]=f;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[u]="string"==typeof e?e:a,c[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>l});var n=r(87462),a=(r(67294),r(3905));r(8209);const o={id:"fees",title:"Smart Contracts - Fees",sidebar_label:"Fees",sidebar_position:4},c=void 0,i={unversionedId:"build/smart-contracts/fees",id:"build/smart-contracts/fees",title:"Smart Contracts - Fees",description:"",source:"@site/docs/build/smart-contracts/fees.md",sourceDirName:"build/smart-contracts",slug:"/build/smart-contracts/fees",permalink:"/build/smart-contracts/fees",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",sidebarPosition:4,frontMatter:{id:"fees",title:"Smart Contracts - Fees",sidebar_label:"Fees",sidebar_position:4},sidebar:"docs",previous:{title:"State",permalink:"/build/smart-contracts/state"},next:{title:"Examples",permalink:"/build/smart-contracts/examples"}},s={},l=[],p={toc:l},u="wrapper";function d(e){let{components:t,...r}=e;return(0,a.kt)(u,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("admonition",{title:"todo",type:"danger"}))}d.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5986],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>m});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),l=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},p=function(e){var t=l(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=l(r),f=a,m=u["".concat(s,".").concat(f)]||u[f]||d[f]||o;return r?n.createElement(m,c(c({ref:t},p),{},{components:r})):n.createElement(m,c({ref:t},p))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,c=new Array(o);c[0]=f;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[u]="string"==typeof e?e:a,c[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>l});var n=r(87462),a=(r(67294),r(3905));r(8209);const o={id:"fees",title:"Smart Contracts - Fees",sidebar_label:"Fees",sidebar_position:4},c=void 0,i={unversionedId:"build/smart-contracts/fees",id:"build/smart-contracts/fees",title:"Smart Contracts - Fees",description:"",source:"@site/docs/build/smart-contracts/fees.md",sourceDirName:"build/smart-contracts",slug:"/build/smart-contracts/fees",permalink:"/build/smart-contracts/fees",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",sidebarPosition:4,frontMatter:{id:"fees",title:"Smart Contracts - Fees",sidebar_label:"Fees",sidebar_position:4},sidebar:"docs",previous:{title:"State",permalink:"/build/smart-contracts/state"},next:{title:"Examples",permalink:"/build/smart-contracts/examples"}},s={},l=[],p={toc:l},u="wrapper";function d(e){let{components:t,...r}=e;return(0,a.kt)(u,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("admonition",{title:"todo",type:"danger"}))}d.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file diff --git a/assets/js/31a1e1b3.e993715e.js b/assets/js/31a1e1b3.e937393e.js similarity index 99% rename from assets/js/31a1e1b3.e993715e.js rename to assets/js/31a1e1b3.e937393e.js index 663fa0457..9eff3a13f 100644 --- a/assets/js/31a1e1b3.e993715e.js +++ b/assets/js/31a1e1b3.e937393e.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5073],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>_});var a=n(67294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var o=a.createContext({}),d=function(e){var t=a.useContext(o),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},c=function(e){var t=d(e.components);return a.createElement(o.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},k=a.forwardRef((function(e,t){var n=e.components,i=e.mdxType,r=e.originalType,o=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),p=d(n),k=i,_=p["".concat(o,".").concat(k)]||p[k]||u[k]||r;return n?a.createElement(_,l(l({ref:t},c),{},{components:n})):a.createElement(_,l({ref:t},c))}));function _(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=n.length,l=new Array(r);l[0]=k;var s={};for(var o in t)hasOwnProperty.call(t,o)&&(s[o]=t[o]);s.originalType=e,s[p]="string"==typeof e?e:i,l[1]=s;for(var d=2;d{n.r(t),n.d(t,{assets:()=>o,contentTitle:()=>l,default:()=>u,frontMatter:()=>r,metadata:()=>s,toc:()=>d});var a=n(87462),i=(n(67294),n(3905));n(8209);const r={id:"chain",title:"Chain module",sidebar_label:"Chain"},l=void 0,s={unversionedId:"build/smart-contracts/language/library/chain",id:"build/smart-contracts/language/library/chain",title:"Chain module",description:"The Chain module contains functions to fetch data from a Transaction Chain.",source:"@site/docs/build/smart-contracts/language/library/chain.md",sourceDirName:"build/smart-contracts/language/library",slug:"/build/smart-contracts/language/library/chain",permalink:"/build/smart-contracts/language/library/chain",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"chain",title:"Chain module",sidebar_label:"Chain"},sidebar:"docs",previous:{title:"Library",permalink:"/build/smart-contracts/language/library/"},next:{title:"Code",permalink:"/build/smart-contracts/language/library/code"}},o={},d=[{value:"get_genesis_address/1 [I/O]",id:"get_genesis_address1-io",level:3},{value:"get_first_transaction_address/1 [I/O]",id:"get_first_transaction_address1-io",level:3},{value:"get_genesis_public_key/1 [I/O]",id:"get_genesis_public_key1-io",level:3},{value:"get_burn_address/0",id:"get_burn_address0",level:3},{value:"get_transaction/1 [I/O]",id:"get_transaction1--io",level:3},{value:"get_last_address/1 [I/O]",id:"get_last_address1-io",level:3},{value:"get_last_transaction/1 [I/O]",id:"get_last_transaction1-io",level:3},{value:"get_previous_address/1",id:"get_previous_address1",level:3},{value:"get_balance/1 [I/O]",id:"get_balance1-io",level:3},{value:"get_uco_balance/1 [I/O]",id:"get_uco_balance1-io",level:3},{value:"get_token_balance/2 [I/O]",id:"get_token_balance2-io",level:3},{value:"get_token_balance/3 [I/O]",id:"get_token_balance3-io",level:3},{value:"get_tokens_balance/1 [I/O]",id:"get_tokens_balance1-io",level:3},{value:"get_tokens_balance/2 [I/O]",id:"get_tokens_balance2-io",level:3}],c={toc:d},p="wrapper";function u(e){let{components:t,...n}=e;return(0,i.kt)(p,(0,a.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"The ",(0,i.kt)("inlineCode",{parentName:"p"},"Chain")," module contains functions to fetch data from a Transaction Chain."),(0,i.kt)("h3",{id:"get_genesis_address1-io"},"get_genesis_address/1 ",(0,i.kt)("inlineCode",{parentName:"h3"},"[I/O]")),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-elixir"},'Chain.get_genesis_address("000012345...") # "000056789..."\nChain.get_genesis_address("000012345...") # "000012345..."\n')),(0,i.kt)("p",null,"Parameters:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"address")," the transaction address")),(0,i.kt)("p",null,"Returns the genesis address of the transaction chain that contains a transaction at ",(0,i.kt)("inlineCode",{parentName:"p"},"address"),". If there is no transaction at ",(0,i.kt)("inlineCode",{parentName:"p"},"address"),", it returns ",(0,i.kt)("inlineCode",{parentName:"p"},"address"),"."),(0,i.kt)("h3",{id:"get_first_transaction_address1-io"},"get_first_transaction_address/1 ",(0,i.kt)("inlineCode",{parentName:"h3"},"[I/O]")),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-elixir"},'Chain.get_first_transaction_address("000012345...") # "000056789..."\n')),(0,i.kt)("p",null,"Parameters:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"address")," the transaction address")),(0,i.kt)("p",null,"Returns the address of the first transaction of the transaction chain that contains a transaction at ",(0,i.kt)("inlineCode",{parentName:"p"},"address"),"."),(0,i.kt)("admonition",{type:"danger"},(0,i.kt)("p",{parentName:"admonition"},"[IT CURRENTLY CRASH IF THERE IS NO TRANSACTION]")),(0,i.kt)("h3",{id:"get_genesis_public_key1-io"},"get_genesis_public_key/1 ",(0,i.kt)("inlineCode",{parentName:"h3"},"[I/O]")),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-elixir"},'Chain.get_genesis_public_key("00013B08D...") # "000108A5C..."\n')),(0,i.kt)("p",null,"Parameters:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"public_key")," the public key")),(0,i.kt)("p",null,"Returns the genesis public key of ",(0,i.kt)("inlineCode",{parentName:"p"},"public_key"),"."),(0,i.kt)("h3",{id:"get_burn_address0"},"get_burn_address/0"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-elixir"},'Chain.get_burn_address() # "0000000000..."\n')),(0,i.kt)("p",null,"Returns the burn address."),(0,i.kt)("h3",{id:"get_transaction1--io"},"get_transaction/1 ",(0,i.kt)("inlineCode",{parentName:"h3"},"[I/O]")),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-elixir"},'Chain.get_transaction(0x00ABCD..) # [address: "00ABCD..", content: "...", uco_transfers: [], ...]\n')),(0,i.kt)("p",null,"Parameters:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"address")," the transaction address")),(0,i.kt)("p",null,"Returns the transaction at ",(0,i.kt)("inlineCode",{parentName:"p"},"address"),". If there is no transaction at ",(0,i.kt)("inlineCode",{parentName:"p"},"address"),", it returns ",(0,i.kt)("inlineCode",{parentName:"p"},"nil"),". See ",(0,i.kt)("a",{parentName:"p",href:"/build/smart-contracts/language/actions#appendix-1-the-transaction-map"},"Appendix 1"),"."),(0,i.kt)("h3",{id:"get_last_address1-io"},"get_last_address/1 ",(0,i.kt)("inlineCode",{parentName:"h3"},"[I/O]")),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-elixir"},'Chain.get_last_address(0x00ABCD..) # "00EFAB..."\n')),(0,i.kt)("p",null,"Parameters:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"address")," the transaction address")),(0,i.kt)("p",null,"Returns the latest transaction address of the chain that contains ",(0,i.kt)("inlineCode",{parentName:"p"},"address"),"."),(0,i.kt)("h3",{id:"get_last_transaction1-io"},"get_last_transaction/1 ",(0,i.kt)("inlineCode",{parentName:"h3"},"[I/O]")),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-elixir"},'Chain.get_last_transaction(0x00ABCD..) # [address: "00EFAB..", content: "...", uco_transfers: [], ...]\nChain.get_last_transaction(0x00ABCF..) # nil\n')),(0,i.kt)("p",null,"Parameters:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"address")," the transaction address")),(0,i.kt)("p",null,"Returns the latest transaction of the chain that contains the transaction at ",(0,i.kt)("inlineCode",{parentName:"p"},"address"),". May return nil if ",(0,i.kt)("inlineCode",{parentName:"p"},"address")," does not exist. See ",(0,i.kt)("a",{parentName:"p",href:"/build/smart-contracts/language/actions#appendix-1-the-transaction-map"},"Appendix 1"),"."),(0,i.kt)("h3",{id:"get_previous_address1"},"get_previous_address/1"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-elixir"},'Chain.get_previous_address(0x00ABCD..) # "00EFAB.."\nChain.get_previous_address(transaction) # "0014AC.."\n')),(0,i.kt)("p",null,"Parameters:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"previous_public_key")," or ",(0,i.kt)("inlineCode",{parentName:"li"},"transaction")," either a transaction map or a the previous_public_key")),(0,i.kt)("p",null,"Returns previous transaction's address. Usually called with a ",(0,i.kt)("inlineCode",{parentName:"p"},"transaction"),", it is also possible to call it with the ",(0,i.kt)("inlineCode",{parentName:"p"},"previous_public_key")," directly."),(0,i.kt)("h3",{id:"get_balance1-io"},"get_balance/1 ",(0,i.kt)("inlineCode",{parentName:"h3"},"[I/O]")),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-elixir"},"balance = Chain.get_balance(0x00ABCD..)\nuco_balance = balance.uco # 181812.87\ntestcoin_balance = Map.get(balance.tokens, [token_address: 0x00ABCD.., token_id: 0]) # 4756.5401\n")),(0,i.kt)("p",null,"Parameters:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"address")," the address of a transaction in the chain you're interested in")),(0,i.kt)("p",null,"Returns the balance of the chain that contains the transaction at ",(0,i.kt)("inlineCode",{parentName:"p"},"address"),"."),(0,i.kt)("p",null,"The return value is a map with two keys ",(0,i.kt)("inlineCode",{parentName:"p"},"uco")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"tokens"),". The value behind ",(0,i.kt)("inlineCode",{parentName:"p"},"tokens")," is a map where the keys are tokens' identifiers (",(0,i.kt)("inlineCode",{parentName:"p"},"[token_address: HEX, token_id: POS_INT]"),") and the values are floats."),(0,i.kt)("p",null,"Useful if you need to retrieve the entire list of tokens (and uco) at the same time."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If you're only interested at UCO, consider ",(0,i.kt)("a",{parentName:"li",href:"#get_uco_balance1-io"},"get_uco_balance/1"),"."),(0,i.kt)("li",{parentName:"ul"},"If you're only interested in a specific token, consider ",(0,i.kt)("a",{parentName:"li",href:"#get_token_balance2-io"},"get_token_balance/2"),"."),(0,i.kt)("li",{parentName:"ul"},"If you're only interested in a few specific tokens, consider ",(0,i.kt)("a",{parentName:"li",href:"#get_tokens_balance2-io"},"get_tokens_balance/2"),".")),(0,i.kt)("h3",{id:"get_uco_balance1-io"},"get_uco_balance/1 ",(0,i.kt)("inlineCode",{parentName:"h3"},"[I/O]")),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-elixir"},"Chain.get_uco_balance(0x00ABCD..) # 14.26239\n")),(0,i.kt)("p",null,"Parameters:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"address")," the address of a transaction in the chain you're interested in")),(0,i.kt)("p",null,"Returns the amount of UCO in the chain that contains the transaction at ",(0,i.kt)("inlineCode",{parentName:"p"},"address"),"."),(0,i.kt)("h3",{id:"get_token_balance2-io"},"get_token_balance/2 ",(0,i.kt)("inlineCode",{parentName:"h3"},"[I/O]")),(0,i.kt)("p",null,"Same as ",(0,i.kt)("a",{parentName:"p",href:"#get_token_balance3-io"},"get_token_balance/3")," called with ",(0,i.kt)("inlineCode",{parentName:"p"},"token_id: 0"),"."),(0,i.kt)("h3",{id:"get_token_balance3-io"},"get_token_balance/3 ",(0,i.kt)("inlineCode",{parentName:"h3"},"[I/O]")),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-elixir"},"transaction_address = 0x00ABCD..\nfungible_token_address = 0x00BCDE..\nnon_fungible_token_address = 0x00FEDC..\nChain.get_token_balance(transaction_address, fungible_token_address, 0) # 14.26239591\nChain.get_token_balance(transaction_address, non_fungible_token_address, 1) # 1\nChain.get_token_balance(transaction_address, non_fungible_token_address, 2) # 0\n")),(0,i.kt)("p",null,"Parameters:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"address")," the address of a transaction in the chain you're interested in"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"token_address")," the address of the transaction that defined the token"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"token_id")," the index of the element in the collection (0 for fungible tokens)")),(0,i.kt)("p",null,"Returns the token balance of the token defined at ",(0,i.kt)("inlineCode",{parentName:"p"},"token_address")," in the chain that contains the transaction at ",(0,i.kt)("inlineCode",{parentName:"p"},"address"),".\nNon-fungible tokens must precise the ",(0,i.kt)("inlineCode",{parentName:"p"},"token_id")," (index of the token in the collection)."),(0,i.kt)("h3",{id:"get_tokens_balance1-io"},"get_tokens_balance/1 ",(0,i.kt)("inlineCode",{parentName:"h3"},"[I/O]")),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-elixir"},"balance = Chain.get_tokens_balance(0x00ABCD..)\nabdecoin_balance = Map.get(balance, [token_address: 0x00ABDE.., token_id: 0]) # 8.90800012\ndefacoin_balance = Map.get(balance, [token_address: 0x00DEFA.., token_id: 0]) # 4.05902597\n")),(0,i.kt)("p",null,"Parameters:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"address")," the address of a transaction in the chain you're interested in")),(0,i.kt)("p",null,"Returns a subset of the token balance of the chain that contains the transaction at ",(0,i.kt)("inlineCode",{parentName:"p"},"address"),".\nThe return value is a map where the keys are the tokens' identifiers: ",(0,i.kt)("inlineCode",{parentName:"p"},"[token_address: HEX, token_id: POS_INT]")," and the value are floats."),(0,i.kt)("p",null,"Useful if you need to retrieve many tokens at the same time."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If you're only interested in a specific token, consider ",(0,i.kt)("a",{parentName:"li",href:"#get_token_balance2-io"},"get_token_balance/2"),".")),(0,i.kt)("h3",{id:"get_tokens_balance2-io"},"get_tokens_balance/2 ",(0,i.kt)("inlineCode",{parentName:"h3"},"[I/O]")),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-elixir"},"balance = Chain.get_tokens_balance(0x00ABCD.., [\n [token_address: 0x00DEFA.., token_id: 1],\n [token_address: 0x00DEFA.., token_id: 2]\n])\nnft1 = Map.get(balance, [token_address: 0x00DEFA.., token_id: 1]) # 1\nnft2 = Map.get(balance, [token_address: 0x00DEFA.., token_id: 2]) # 0\n")),(0,i.kt)("p",null,"Parameters:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"address")," the address of a transaction in the chain you're interested in"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"tokens_identifiers")," the list of tokens' identifiers (",(0,i.kt)("inlineCode",{parentName:"li"},"[token_address: HEX, token_id: POS_INT]"),") to return")),(0,i.kt)("p",null,"Returns a subset of the token balance of the chain that contains the transaction at ",(0,i.kt)("inlineCode",{parentName:"p"},"address"),".\nThe return value is a map where the keys are the tokens' identifiers: ",(0,i.kt)("inlineCode",{parentName:"p"},"[token_address: HEX, token_id: POS_INT]")," and the value are floats."),(0,i.kt)("p",null,"Useful if you need to retrieve many tokens at the same time."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If you're only interested in a specific token, consider ",(0,i.kt)("a",{parentName:"li",href:"#get_token_balance2-io"},"get_token_balance/2"),".")))}u.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5073],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>_});var a=n(67294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var o=a.createContext({}),d=function(e){var t=a.useContext(o),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},c=function(e){var t=d(e.components);return a.createElement(o.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},k=a.forwardRef((function(e,t){var n=e.components,i=e.mdxType,r=e.originalType,o=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),p=d(n),k=i,_=p["".concat(o,".").concat(k)]||p[k]||u[k]||r;return n?a.createElement(_,l(l({ref:t},c),{},{components:n})):a.createElement(_,l({ref:t},c))}));function _(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=n.length,l=new Array(r);l[0]=k;var s={};for(var o in t)hasOwnProperty.call(t,o)&&(s[o]=t[o]);s.originalType=e,s[p]="string"==typeof e?e:i,l[1]=s;for(var d=2;d{n.r(t),n.d(t,{assets:()=>o,contentTitle:()=>l,default:()=>u,frontMatter:()=>r,metadata:()=>s,toc:()=>d});var a=n(87462),i=(n(67294),n(3905));n(8209);const r={id:"chain",title:"Chain module",sidebar_label:"Chain"},l=void 0,s={unversionedId:"build/smart-contracts/language/library/chain",id:"build/smart-contracts/language/library/chain",title:"Chain module",description:"The Chain module contains functions to fetch data from a Transaction Chain.",source:"@site/docs/build/smart-contracts/language/library/chain.md",sourceDirName:"build/smart-contracts/language/library",slug:"/build/smart-contracts/language/library/chain",permalink:"/build/smart-contracts/language/library/chain",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"chain",title:"Chain module",sidebar_label:"Chain"},sidebar:"docs",previous:{title:"Library",permalink:"/build/smart-contracts/language/library/"},next:{title:"Code",permalink:"/build/smart-contracts/language/library/code"}},o={},d=[{value:"get_genesis_address/1 [I/O]",id:"get_genesis_address1-io",level:3},{value:"get_first_transaction_address/1 [I/O]",id:"get_first_transaction_address1-io",level:3},{value:"get_genesis_public_key/1 [I/O]",id:"get_genesis_public_key1-io",level:3},{value:"get_burn_address/0",id:"get_burn_address0",level:3},{value:"get_transaction/1 [I/O]",id:"get_transaction1--io",level:3},{value:"get_last_address/1 [I/O]",id:"get_last_address1-io",level:3},{value:"get_last_transaction/1 [I/O]",id:"get_last_transaction1-io",level:3},{value:"get_previous_address/1",id:"get_previous_address1",level:3},{value:"get_balance/1 [I/O]",id:"get_balance1-io",level:3},{value:"get_uco_balance/1 [I/O]",id:"get_uco_balance1-io",level:3},{value:"get_token_balance/2 [I/O]",id:"get_token_balance2-io",level:3},{value:"get_token_balance/3 [I/O]",id:"get_token_balance3-io",level:3},{value:"get_tokens_balance/1 [I/O]",id:"get_tokens_balance1-io",level:3},{value:"get_tokens_balance/2 [I/O]",id:"get_tokens_balance2-io",level:3}],c={toc:d},p="wrapper";function u(e){let{components:t,...n}=e;return(0,i.kt)(p,(0,a.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"The ",(0,i.kt)("inlineCode",{parentName:"p"},"Chain")," module contains functions to fetch data from a Transaction Chain."),(0,i.kt)("h3",{id:"get_genesis_address1-io"},"get_genesis_address/1 ",(0,i.kt)("inlineCode",{parentName:"h3"},"[I/O]")),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-elixir"},'Chain.get_genesis_address("000012345...") # "000056789..."\nChain.get_genesis_address("000012345...") # "000012345..."\n')),(0,i.kt)("p",null,"Parameters:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"address")," the transaction address")),(0,i.kt)("p",null,"Returns the genesis address of the transaction chain that contains a transaction at ",(0,i.kt)("inlineCode",{parentName:"p"},"address"),". If there is no transaction at ",(0,i.kt)("inlineCode",{parentName:"p"},"address"),", it returns ",(0,i.kt)("inlineCode",{parentName:"p"},"address"),"."),(0,i.kt)("h3",{id:"get_first_transaction_address1-io"},"get_first_transaction_address/1 ",(0,i.kt)("inlineCode",{parentName:"h3"},"[I/O]")),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-elixir"},'Chain.get_first_transaction_address("000012345...") # "000056789..."\n')),(0,i.kt)("p",null,"Parameters:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"address")," the transaction address")),(0,i.kt)("p",null,"Returns the address of the first transaction of the transaction chain that contains a transaction at ",(0,i.kt)("inlineCode",{parentName:"p"},"address"),"."),(0,i.kt)("admonition",{type:"danger"},(0,i.kt)("p",{parentName:"admonition"},"[IT CURRENTLY CRASH IF THERE IS NO TRANSACTION]")),(0,i.kt)("h3",{id:"get_genesis_public_key1-io"},"get_genesis_public_key/1 ",(0,i.kt)("inlineCode",{parentName:"h3"},"[I/O]")),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-elixir"},'Chain.get_genesis_public_key("00013B08D...") # "000108A5C..."\n')),(0,i.kt)("p",null,"Parameters:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"public_key")," the public key")),(0,i.kt)("p",null,"Returns the genesis public key of ",(0,i.kt)("inlineCode",{parentName:"p"},"public_key"),"."),(0,i.kt)("h3",{id:"get_burn_address0"},"get_burn_address/0"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-elixir"},'Chain.get_burn_address() # "0000000000..."\n')),(0,i.kt)("p",null,"Returns the burn address."),(0,i.kt)("h3",{id:"get_transaction1--io"},"get_transaction/1 ",(0,i.kt)("inlineCode",{parentName:"h3"},"[I/O]")),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-elixir"},'Chain.get_transaction(0x00ABCD..) # [address: "00ABCD..", content: "...", uco_transfers: [], ...]\n')),(0,i.kt)("p",null,"Parameters:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"address")," the transaction address")),(0,i.kt)("p",null,"Returns the transaction at ",(0,i.kt)("inlineCode",{parentName:"p"},"address"),". If there is no transaction at ",(0,i.kt)("inlineCode",{parentName:"p"},"address"),", it returns ",(0,i.kt)("inlineCode",{parentName:"p"},"nil"),". See ",(0,i.kt)("a",{parentName:"p",href:"/build/smart-contracts/language/actions#appendix-1-the-transaction-map"},"Appendix 1"),"."),(0,i.kt)("h3",{id:"get_last_address1-io"},"get_last_address/1 ",(0,i.kt)("inlineCode",{parentName:"h3"},"[I/O]")),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-elixir"},'Chain.get_last_address(0x00ABCD..) # "00EFAB..."\n')),(0,i.kt)("p",null,"Parameters:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"address")," the transaction address")),(0,i.kt)("p",null,"Returns the latest transaction address of the chain that contains ",(0,i.kt)("inlineCode",{parentName:"p"},"address"),"."),(0,i.kt)("h3",{id:"get_last_transaction1-io"},"get_last_transaction/1 ",(0,i.kt)("inlineCode",{parentName:"h3"},"[I/O]")),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-elixir"},'Chain.get_last_transaction(0x00ABCD..) # [address: "00EFAB..", content: "...", uco_transfers: [], ...]\nChain.get_last_transaction(0x00ABCF..) # nil\n')),(0,i.kt)("p",null,"Parameters:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"address")," the transaction address")),(0,i.kt)("p",null,"Returns the latest transaction of the chain that contains the transaction at ",(0,i.kt)("inlineCode",{parentName:"p"},"address"),". May return nil if ",(0,i.kt)("inlineCode",{parentName:"p"},"address")," does not exist. See ",(0,i.kt)("a",{parentName:"p",href:"/build/smart-contracts/language/actions#appendix-1-the-transaction-map"},"Appendix 1"),"."),(0,i.kt)("h3",{id:"get_previous_address1"},"get_previous_address/1"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-elixir"},'Chain.get_previous_address(0x00ABCD..) # "00EFAB.."\nChain.get_previous_address(transaction) # "0014AC.."\n')),(0,i.kt)("p",null,"Parameters:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"previous_public_key")," or ",(0,i.kt)("inlineCode",{parentName:"li"},"transaction")," either a transaction map or a the previous_public_key")),(0,i.kt)("p",null,"Returns previous transaction's address. Usually called with a ",(0,i.kt)("inlineCode",{parentName:"p"},"transaction"),", it is also possible to call it with the ",(0,i.kt)("inlineCode",{parentName:"p"},"previous_public_key")," directly."),(0,i.kt)("h3",{id:"get_balance1-io"},"get_balance/1 ",(0,i.kt)("inlineCode",{parentName:"h3"},"[I/O]")),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-elixir"},"balance = Chain.get_balance(0x00ABCD..)\nuco_balance = balance.uco # 181812.87\ntestcoin_balance = Map.get(balance.tokens, [token_address: 0x00ABCD.., token_id: 0]) # 4756.5401\n")),(0,i.kt)("p",null,"Parameters:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"address")," the address of a transaction in the chain you're interested in")),(0,i.kt)("p",null,"Returns the balance of the chain that contains the transaction at ",(0,i.kt)("inlineCode",{parentName:"p"},"address"),"."),(0,i.kt)("p",null,"The return value is a map with two keys ",(0,i.kt)("inlineCode",{parentName:"p"},"uco")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"tokens"),". The value behind ",(0,i.kt)("inlineCode",{parentName:"p"},"tokens")," is a map where the keys are tokens' identifiers (",(0,i.kt)("inlineCode",{parentName:"p"},"[token_address: HEX, token_id: POS_INT]"),") and the values are floats."),(0,i.kt)("p",null,"Useful if you need to retrieve the entire list of tokens (and uco) at the same time."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If you're only interested at UCO, consider ",(0,i.kt)("a",{parentName:"li",href:"#get_uco_balance1-io"},"get_uco_balance/1"),"."),(0,i.kt)("li",{parentName:"ul"},"If you're only interested in a specific token, consider ",(0,i.kt)("a",{parentName:"li",href:"#get_token_balance2-io"},"get_token_balance/2"),"."),(0,i.kt)("li",{parentName:"ul"},"If you're only interested in a few specific tokens, consider ",(0,i.kt)("a",{parentName:"li",href:"#get_tokens_balance2-io"},"get_tokens_balance/2"),".")),(0,i.kt)("h3",{id:"get_uco_balance1-io"},"get_uco_balance/1 ",(0,i.kt)("inlineCode",{parentName:"h3"},"[I/O]")),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-elixir"},"Chain.get_uco_balance(0x00ABCD..) # 14.26239\n")),(0,i.kt)("p",null,"Parameters:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"address")," the address of a transaction in the chain you're interested in")),(0,i.kt)("p",null,"Returns the amount of UCO in the chain that contains the transaction at ",(0,i.kt)("inlineCode",{parentName:"p"},"address"),"."),(0,i.kt)("h3",{id:"get_token_balance2-io"},"get_token_balance/2 ",(0,i.kt)("inlineCode",{parentName:"h3"},"[I/O]")),(0,i.kt)("p",null,"Same as ",(0,i.kt)("a",{parentName:"p",href:"#get_token_balance3-io"},"get_token_balance/3")," called with ",(0,i.kt)("inlineCode",{parentName:"p"},"token_id: 0"),"."),(0,i.kt)("h3",{id:"get_token_balance3-io"},"get_token_balance/3 ",(0,i.kt)("inlineCode",{parentName:"h3"},"[I/O]")),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-elixir"},"transaction_address = 0x00ABCD..\nfungible_token_address = 0x00BCDE..\nnon_fungible_token_address = 0x00FEDC..\nChain.get_token_balance(transaction_address, fungible_token_address, 0) # 14.26239591\nChain.get_token_balance(transaction_address, non_fungible_token_address, 1) # 1\nChain.get_token_balance(transaction_address, non_fungible_token_address, 2) # 0\n")),(0,i.kt)("p",null,"Parameters:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"address")," the address of a transaction in the chain you're interested in"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"token_address")," the address of the transaction that defined the token"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"token_id")," the index of the element in the collection (0 for fungible tokens)")),(0,i.kt)("p",null,"Returns the token balance of the token defined at ",(0,i.kt)("inlineCode",{parentName:"p"},"token_address")," in the chain that contains the transaction at ",(0,i.kt)("inlineCode",{parentName:"p"},"address"),".\nNon-fungible tokens must precise the ",(0,i.kt)("inlineCode",{parentName:"p"},"token_id")," (index of the token in the collection)."),(0,i.kt)("h3",{id:"get_tokens_balance1-io"},"get_tokens_balance/1 ",(0,i.kt)("inlineCode",{parentName:"h3"},"[I/O]")),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-elixir"},"balance = Chain.get_tokens_balance(0x00ABCD..)\nabdecoin_balance = Map.get(balance, [token_address: 0x00ABDE.., token_id: 0]) # 8.90800012\ndefacoin_balance = Map.get(balance, [token_address: 0x00DEFA.., token_id: 0]) # 4.05902597\n")),(0,i.kt)("p",null,"Parameters:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"address")," the address of a transaction in the chain you're interested in")),(0,i.kt)("p",null,"Returns a subset of the token balance of the chain that contains the transaction at ",(0,i.kt)("inlineCode",{parentName:"p"},"address"),".\nThe return value is a map where the keys are the tokens' identifiers: ",(0,i.kt)("inlineCode",{parentName:"p"},"[token_address: HEX, token_id: POS_INT]")," and the value are floats."),(0,i.kt)("p",null,"Useful if you need to retrieve many tokens at the same time."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If you're only interested in a specific token, consider ",(0,i.kt)("a",{parentName:"li",href:"#get_token_balance2-io"},"get_token_balance/2"),".")),(0,i.kt)("h3",{id:"get_tokens_balance2-io"},"get_tokens_balance/2 ",(0,i.kt)("inlineCode",{parentName:"h3"},"[I/O]")),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-elixir"},"balance = Chain.get_tokens_balance(0x00ABCD.., [\n [token_address: 0x00DEFA.., token_id: 1],\n [token_address: 0x00DEFA.., token_id: 2]\n])\nnft1 = Map.get(balance, [token_address: 0x00DEFA.., token_id: 1]) # 1\nnft2 = Map.get(balance, [token_address: 0x00DEFA.., token_id: 2]) # 0\n")),(0,i.kt)("p",null,"Parameters:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"address")," the address of a transaction in the chain you're interested in"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"tokens_identifiers")," the list of tokens' identifiers (",(0,i.kt)("inlineCode",{parentName:"li"},"[token_address: HEX, token_id: POS_INT]"),") to return")),(0,i.kt)("p",null,"Returns a subset of the token balance of the chain that contains the transaction at ",(0,i.kt)("inlineCode",{parentName:"p"},"address"),".\nThe return value is a map where the keys are the tokens' identifiers: ",(0,i.kt)("inlineCode",{parentName:"p"},"[token_address: HEX, token_id: POS_INT]")," and the value are floats."),(0,i.kt)("p",null,"Useful if you need to retrieve many tokens at the same time."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If you're only interested in a specific token, consider ",(0,i.kt)("a",{parentName:"li",href:"#get_token_balance2-io"},"get_token_balance/2"),".")))}u.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/3247e900.37246bc9.js b/assets/js/3247e900.ab615c3d.js similarity index 99% rename from assets/js/3247e900.37246bc9.js rename to assets/js/3247e900.ab615c3d.js index e1be9300e..61f132f0e 100644 --- a/assets/js/3247e900.37246bc9.js +++ b/assets/js/3247e900.ab615c3d.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8992],{3905:(e,t,n)=>{n.d(t,{Zo:()=>i,kt:()=>b});var a=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var c=a.createContext({}),d=function(e){var t=a.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},i=function(e){var t=d(e.components);return a.createElement(c.Provider,{value:t},e.children)},m="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,c=e.parentName,i=s(e,["components","mdxType","originalType","parentName"]),m=d(n),u=o,b=m["".concat(c,".").concat(u)]||m[u]||p[u]||r;return n?a.createElement(b,l(l({ref:t},i),{},{components:n})):a.createElement(b,l({ref:t},i))}));function b(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,l=new Array(r);l[0]=u;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[m]="string"==typeof e?e:o,l[1]=s;for(var d=2;d{n.r(t),n.d(t,{Badge:()=>p,Bullet:()=>i,Details:()=>b,SpecifiedBy:()=>m,assets:()=>d,contentTitle:()=>s,default:()=>y,frontMatter:()=>l,metadata:()=>c,toc:()=>u});var a=n(87462),o=n(67294),r=n(3905);n(8209);const l={id:"transaction-movement",title:"TransactionMovement",hide_table_of_contents:!1},s=void 0,c={unversionedId:"build/api/schema/objects/transaction-movement",id:"build/api/schema/objects/transaction-movement",title:"TransactionMovement",description:"[TransactionMovement] represents ledger transaction movement",source:"@site/docs/build/api/schema/objects/transaction-movement.mdx",sourceDirName:"build/api/schema/objects",slug:"/build/api/schema/objects/transaction-movement",permalink:"/build/api/schema/objects/transaction-movement",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"transaction-movement",title:"TransactionMovement",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"TransactionInput",permalink:"/build/api/schema/objects/transaction-input"},next:{title:"TransactionSummary",permalink:"/build/api/schema/objects/transaction-summary"}},d={},i=()=>(0,r.kt)(o.Fragment,null,(0,r.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),m=e=>(0,r.kt)(o.Fragment,null,"Specification",(0,r.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),p=e=>(0,r.kt)(o.Fragment,null,(0,r.kt)("span",{className:e.class},e.text)),u=[{value:"Fields",id:"fields",level:3},{value:'TransactionMovement.amountInt ',id:"code-style-fontweight-normal-transactionmovementbamountbcodeint-",level:4},{value:'TransactionMovement.toAddress ',id:"code-style-fontweight-normal-transactionmovementbtobcodeaddress-",level:4},{value:'TransactionMovement.tokenAddressAddress ',id:"code-style-fontweight-normal-transactionmovementbtokenaddressbcodeaddress-",level:4},{value:'TransactionMovement.tokenIdInt ',id:"code-style-fontweight-normal-transactionmovementbtokenidbcodeint-",level:4},{value:'TransactionMovement.typeString ',id:"code-style-fontweight-normal-transactionmovementbtypebcodestring-",level:4},{value:"Member of",id:"member-of",level:3}],b=e=>{let{dataOpen:t,dataClose:n,children:l,startOpen:s=!1}=e;const[c,d]=(0,o.useState)(s);return(0,r.kt)("details",(0,a.Z)({},c?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,r.kt)("summary",{onClick:e=>{e.preventDefault(),d((e=>!e))},style:{listStyle:"none"}},c?t:n),c&&l)},k={Bullet:i,SpecifiedBy:m,Badge:p,toc:u,Details:b},f="wrapper";function y(e){let{components:t,...n}=e;return(0,r.kt)(f,(0,a.Z)({},k,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"[TransactionMovement]"," represents ledger transaction movement\nIt includes:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"TO: asset transfer recipient"),(0,r.kt)("li",{parentName:"ul"},"Amount: asset amount"),(0,r.kt)("li",{parentName:"ul"},"Type: UCO/token"),(0,r.kt)("li",{parentName:"ul"},"token address: address of the token if the type is token"),(0,r.kt)("li",{parentName:"ul"},"token id: It is the id for a token which is allocated when the token is minted.")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-graphql"},"type TransactionMovement {\n amount: Int\n to: Address\n tokenAddress: Address\n tokenId: Int\n type: String\n}\n")),(0,r.kt)("h3",{id:"fields"},"Fields"),(0,r.kt)("h4",{id:"code-style-fontweight-normal-transactionmovementbamountbcodeint-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"TransactionMovement.",(0,r.kt)("b",null,"amount"))),(0,r.kt)(i,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/int"},(0,r.kt)("inlineCode",{parentName:"a"},"Int"))," ",(0,r.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-transactionmovementbtobcodeaddress-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"TransactionMovement.",(0,r.kt)("b",null,"to"))),(0,r.kt)(i,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/address"},(0,r.kt)("inlineCode",{parentName:"a"},"Address"))," ",(0,r.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-transactionmovementbtokenaddressbcodeaddress-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"TransactionMovement.",(0,r.kt)("b",null,"tokenAddress"))),(0,r.kt)(i,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/address"},(0,r.kt)("inlineCode",{parentName:"a"},"Address"))," ",(0,r.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-transactionmovementbtokenidbcodeint-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"TransactionMovement.",(0,r.kt)("b",null,"tokenId"))),(0,r.kt)(i,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/int"},(0,r.kt)("inlineCode",{parentName:"a"},"Int"))," ",(0,r.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-transactionmovementbtypebcodestring-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"TransactionMovement.",(0,r.kt)("b",null,"type"))),(0,r.kt)(i,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/string"},(0,r.kt)("inlineCode",{parentName:"a"},"String"))," ",(0,r.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h3",{id:"member-of"},"Member of"),(0,r.kt)("p",null,(0,r.kt)("a",{parentName:"p",href:"/build/api/schema/objects/ledger-operations"},(0,r.kt)("inlineCode",{parentName:"a"},"LedgerOperations"))," ",(0,r.kt)(p,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}y.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8992],{3905:(e,t,n)=>{n.d(t,{Zo:()=>i,kt:()=>b});var a=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var c=a.createContext({}),d=function(e){var t=a.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},i=function(e){var t=d(e.components);return a.createElement(c.Provider,{value:t},e.children)},m="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,c=e.parentName,i=s(e,["components","mdxType","originalType","parentName"]),m=d(n),u=o,b=m["".concat(c,".").concat(u)]||m[u]||p[u]||r;return n?a.createElement(b,l(l({ref:t},i),{},{components:n})):a.createElement(b,l({ref:t},i))}));function b(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,l=new Array(r);l[0]=u;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[m]="string"==typeof e?e:o,l[1]=s;for(var d=2;d{n.r(t),n.d(t,{Badge:()=>p,Bullet:()=>i,Details:()=>b,SpecifiedBy:()=>m,assets:()=>d,contentTitle:()=>s,default:()=>y,frontMatter:()=>l,metadata:()=>c,toc:()=>u});var a=n(87462),o=n(67294),r=n(3905);n(8209);const l={id:"transaction-movement",title:"TransactionMovement",hide_table_of_contents:!1},s=void 0,c={unversionedId:"build/api/schema/objects/transaction-movement",id:"build/api/schema/objects/transaction-movement",title:"TransactionMovement",description:"[TransactionMovement] represents ledger transaction movement",source:"@site/docs/build/api/schema/objects/transaction-movement.mdx",sourceDirName:"build/api/schema/objects",slug:"/build/api/schema/objects/transaction-movement",permalink:"/build/api/schema/objects/transaction-movement",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"transaction-movement",title:"TransactionMovement",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"TransactionInput",permalink:"/build/api/schema/objects/transaction-input"},next:{title:"TransactionSummary",permalink:"/build/api/schema/objects/transaction-summary"}},d={},i=()=>(0,r.kt)(o.Fragment,null,(0,r.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),m=e=>(0,r.kt)(o.Fragment,null,"Specification",(0,r.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),p=e=>(0,r.kt)(o.Fragment,null,(0,r.kt)("span",{className:e.class},e.text)),u=[{value:"Fields",id:"fields",level:3},{value:'TransactionMovement.amountInt ',id:"code-style-fontweight-normal-transactionmovementbamountbcodeint-",level:4},{value:'TransactionMovement.toAddress ',id:"code-style-fontweight-normal-transactionmovementbtobcodeaddress-",level:4},{value:'TransactionMovement.tokenAddressAddress ',id:"code-style-fontweight-normal-transactionmovementbtokenaddressbcodeaddress-",level:4},{value:'TransactionMovement.tokenIdInt ',id:"code-style-fontweight-normal-transactionmovementbtokenidbcodeint-",level:4},{value:'TransactionMovement.typeString ',id:"code-style-fontweight-normal-transactionmovementbtypebcodestring-",level:4},{value:"Member of",id:"member-of",level:3}],b=e=>{let{dataOpen:t,dataClose:n,children:l,startOpen:s=!1}=e;const[c,d]=(0,o.useState)(s);return(0,r.kt)("details",(0,a.Z)({},c?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,r.kt)("summary",{onClick:e=>{e.preventDefault(),d((e=>!e))},style:{listStyle:"none"}},c?t:n),c&&l)},k={Bullet:i,SpecifiedBy:m,Badge:p,toc:u,Details:b},f="wrapper";function y(e){let{components:t,...n}=e;return(0,r.kt)(f,(0,a.Z)({},k,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"[TransactionMovement]"," represents ledger transaction movement\nIt includes:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"TO: asset transfer recipient"),(0,r.kt)("li",{parentName:"ul"},"Amount: asset amount"),(0,r.kt)("li",{parentName:"ul"},"Type: UCO/token"),(0,r.kt)("li",{parentName:"ul"},"token address: address of the token if the type is token"),(0,r.kt)("li",{parentName:"ul"},"token id: It is the id for a token which is allocated when the token is minted.")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-graphql"},"type TransactionMovement {\n amount: Int\n to: Address\n tokenAddress: Address\n tokenId: Int\n type: String\n}\n")),(0,r.kt)("h3",{id:"fields"},"Fields"),(0,r.kt)("h4",{id:"code-style-fontweight-normal-transactionmovementbamountbcodeint-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"TransactionMovement.",(0,r.kt)("b",null,"amount"))),(0,r.kt)(i,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/int"},(0,r.kt)("inlineCode",{parentName:"a"},"Int"))," ",(0,r.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-transactionmovementbtobcodeaddress-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"TransactionMovement.",(0,r.kt)("b",null,"to"))),(0,r.kt)(i,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/address"},(0,r.kt)("inlineCode",{parentName:"a"},"Address"))," ",(0,r.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-transactionmovementbtokenaddressbcodeaddress-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"TransactionMovement.",(0,r.kt)("b",null,"tokenAddress"))),(0,r.kt)(i,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/address"},(0,r.kt)("inlineCode",{parentName:"a"},"Address"))," ",(0,r.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-transactionmovementbtokenidbcodeint-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"TransactionMovement.",(0,r.kt)("b",null,"tokenId"))),(0,r.kt)(i,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/int"},(0,r.kt)("inlineCode",{parentName:"a"},"Int"))," ",(0,r.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-transactionmovementbtypebcodestring-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"TransactionMovement.",(0,r.kt)("b",null,"type"))),(0,r.kt)(i,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/string"},(0,r.kt)("inlineCode",{parentName:"a"},"String"))," ",(0,r.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h3",{id:"member-of"},"Member of"),(0,r.kt)("p",null,(0,r.kt)("a",{parentName:"p",href:"/build/api/schema/objects/ledger-operations"},(0,r.kt)("inlineCode",{parentName:"a"},"LedgerOperations"))," ",(0,r.kt)(p,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}y.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/32b86e0c.8320e789.js b/assets/js/32b86e0c.9d887fb8.js similarity index 99% rename from assets/js/32b86e0c.8320e789.js rename to assets/js/32b86e0c.9d887fb8.js index 62ba95369..1e49bc1ec 100644 --- a/assets/js/32b86e0c.8320e789.js +++ b/assets/js/32b86e0c.9d887fb8.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6975],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>h});var r=a(67294);function l(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function n(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(l[a]=e[a]);return l}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(l[a]=e[a])}return l}var s=r.createContext({}),c=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},p=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,l=e.mdxType,n=e.originalType,s=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=c(a),m=l,h=u["".concat(s,".").concat(m)]||u[m]||d[m]||n;return a?r.createElement(h,o(o({ref:t},p),{},{components:a})):r.createElement(h,o({ref:t},p))}));function h(e,t){var a=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var n=a.length,o=new Array(n);o[0]=m;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[u]="string"==typeof e?e:l,o[1]=i;for(var c=2;c{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>d,frontMatter:()=>n,metadata:()=>i,toc:()=>c});var r=a(87462),l=(a(67294),a(3905));a(8209);const n={title:"Farm Lock Smart Contract",id:"farm-lock",sidebar_label:"Farm Lock"},o=void 0,i={unversionedId:"participate/dex/Overview/smart_contracts/farm-lock",id:"participate/dex/Overview/smart_contracts/farm-lock",title:"Farm Lock Smart Contract",description:"Rewards",source:"@site/docs/participate/dex/03-Overview/04-smart_contracts/farmlock.md",sourceDirName:"participate/dex/03-Overview/04-smart_contracts",slug:"/participate/dex/Overview/smart_contracts/farm-lock",permalink:"/participate/dex/Overview/smart_contracts/farm-lock",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{title:"Farm Lock Smart Contract",id:"farm-lock",sidebar_label:"Farm Lock"},sidebar:"docs",previous:{title:"Smart Contracts",permalink:"/participate/dex/Overview/smart_contracts/"},next:{title:"Swaps, Liquidity, Farming",permalink:"/participate/dex/Core Concepts/core_concepts_1"}},s={},c=[{value:"Rewards",id:"rewards",level:2},{value:"Weights",id:"weights",level:2},{value:"Rewards are calculated every hours",id:"rewards-are-calculated-every-hours",level:2},{value:"State",id:"state",level:2},{value:"Calculations",id:"calculations",level:2},{value:"An example",id:"an-example",level:3},{value:"Giveaways",id:"giveaways",level:2}],p={toc:c},u="wrapper";function d(e){let{components:t,...a}=e;return(0,l.kt)(u,(0,r.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("h2",{id:"rewards"},"Rewards"),(0,l.kt)("p",null,"The rewards are coming from the Stacking wallet of the tokenomics."),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"year 1: 45_000_000 UCO"),(0,l.kt)("li",{parentName:"ul"},"year 2: 22_500_000 UCO"),(0,l.kt)("li",{parentName:"ul"},"year 3: 11_250_000 UCO"),(0,l.kt)("li",{parentName:"ul"},"year 4: 8_750_000 UCO")),(0,l.kt)("h2",{id:"weights"},"Weights"),(0,l.kt)("p",null,"These weights were chosen by the Archetic team to incentivize longer locks."),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"level 0 : 0"),(0,l.kt)("li",{parentName:"ul"},"level 1 : 0.013"),(0,l.kt)("li",{parentName:"ul"},"level 2 : 0.024"),(0,l.kt)("li",{parentName:"ul"},"level 3 : 0.043"),(0,l.kt)("li",{parentName:"ul"},"level 4 : 0.077"),(0,l.kt)("li",{parentName:"ul"},"level 5 : 0.139"),(0,l.kt)("li",{parentName:"ul"},"level 6 : 0.251"),(0,l.kt)("li",{parentName:"ul"},"level 7 : 0.453")),(0,l.kt)("h2",{id:"rewards-are-calculated-every-hours"},"Rewards are calculated every hours"),(0,l.kt)("p",null,"Every deposits' timestamp is rounded to the hour before.\nFor example a deposit at 12:03 and another one at 12:57 will both be rounded to 12:00 and they will both start earning at 13:00."),(0,l.kt)("p",null,"The calculation is triggered either:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"by a scheduler contract that calls the ",(0,l.kt)("inlineCode",{parentName:"li"},"calculate_rewards")," actions every hours."),(0,l.kt)("li",{parentName:"ul"},"by a deposit/claim/withdraw/relock action.")),(0,l.kt)("p",null,"There is at most 1 calculation per hour."),(0,l.kt)("h2",{id:"state"},"State"),(0,l.kt)("p",null,"The state is composed of these properties:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"last_calculation_timestamp")," the date of the last calculation"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"deposits")," state of the deposits at the moment of last calculation (level and reward_amount will change over time)."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"lp_tokens_deposited")," amount of tokens deposited at the moment of last calculation"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"lp_tokens_deposited_by_level")," amount of tokens deposited grouped by level at the moment of last calculation")),(0,l.kt)("h2",{id:"calculations"},"Calculations"),(0,l.kt)("p",null,"When entering the ",(0,l.kt)("inlineCode",{parentName:"p"},"calculate_new_rewards")," function, we check how much hours need to be calculated (should mostly be 1).\nThen for every hour:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-javascript"},"rewardsToAllocateForThisHour = rewardsRemainingAtTheEndOfYear * (3600 / numberOfSecondsRemainingUtilEndOfYear)\nlevelRatio = (tokensAmountAtThisLevel * weightOfThisLevel) / sumOfAllWeightedTokens\ndepositRatioOnItsLevel = (depositTokensAmount * weightOfThisLevel) / (tokensAmountAtThisLevel * weightOfThisLevel)\nreward = rewardsToAllocateForThisHour * depositRatioOnItsLevel * levelRatio\n")),(0,l.kt)("h3",{id:"an-example"},"An example"),(0,l.kt)("p",null,"Let's take a simple scenario so we can do the maths easily."),(0,l.kt)("p",null,"Imagine the farm starts (year=1) with these 3 deposits:"),(0,l.kt)("ol",null,(0,l.kt)("li",{parentName:"ol"},"1000 UCO at level 7"),(0,l.kt)("li",{parentName:"ol"},"1000 UCO at level 3"),(0,l.kt)("li",{parentName:"ol"},"1000 UCO at level 3")),(0,l.kt)("p",null,"To calculate the rewards of the 1st deposit:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-javascript"},"rewardsToAllocateForThisHour = 45_000_000 * (3600 / 31536000) // 5136.986301369863\nlevelRatio = (1000 * 0.453) / 539 // 0.8404452690166976\ndepositRatioOnItsLevel = (1000 * 0.453) / (1000 * 0.453) // 1\nreward = 5136.986301369863 * 1 * 0.8404452690166976 // 4317.355833989885\n")),(0,l.kt)("p",null,"Until the state change (year change/level change/deposit/withdraw/relock), the first deposit will be rewarded of 4317.35583398 UCO every hours."),(0,l.kt)("h2",{id:"giveaways"},"Giveaways"),(0,l.kt)("p",null,"If the contract have more balance than it's supposed to, the tokens are rewarded linearly over the entire farm's duration.\nExample, if someone sends 35040 UCO (= farm's duration in hours) to the farm, there will be 1 more UCO rewarded every hours.\nNothing is wasted."))}d.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6975],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>h});var r=a(67294);function l(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function n(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(l[a]=e[a]);return l}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(l[a]=e[a])}return l}var s=r.createContext({}),c=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},p=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,l=e.mdxType,n=e.originalType,s=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=c(a),m=l,h=u["".concat(s,".").concat(m)]||u[m]||d[m]||n;return a?r.createElement(h,o(o({ref:t},p),{},{components:a})):r.createElement(h,o({ref:t},p))}));function h(e,t){var a=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var n=a.length,o=new Array(n);o[0]=m;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[u]="string"==typeof e?e:l,o[1]=i;for(var c=2;c{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>d,frontMatter:()=>n,metadata:()=>i,toc:()=>c});var r=a(87462),l=(a(67294),a(3905));a(8209);const n={title:"Farm Lock Smart Contract",id:"farm-lock",sidebar_label:"Farm Lock"},o=void 0,i={unversionedId:"participate/dex/Overview/smart_contracts/farm-lock",id:"participate/dex/Overview/smart_contracts/farm-lock",title:"Farm Lock Smart Contract",description:"Rewards",source:"@site/docs/participate/dex/03-Overview/04-smart_contracts/farmlock.md",sourceDirName:"participate/dex/03-Overview/04-smart_contracts",slug:"/participate/dex/Overview/smart_contracts/farm-lock",permalink:"/participate/dex/Overview/smart_contracts/farm-lock",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{title:"Farm Lock Smart Contract",id:"farm-lock",sidebar_label:"Farm Lock"},sidebar:"docs",previous:{title:"Smart Contracts",permalink:"/participate/dex/Overview/smart_contracts/"},next:{title:"Swaps, Liquidity, Farming",permalink:"/participate/dex/Core Concepts/core_concepts_1"}},s={},c=[{value:"Rewards",id:"rewards",level:2},{value:"Weights",id:"weights",level:2},{value:"Rewards are calculated every hours",id:"rewards-are-calculated-every-hours",level:2},{value:"State",id:"state",level:2},{value:"Calculations",id:"calculations",level:2},{value:"An example",id:"an-example",level:3},{value:"Giveaways",id:"giveaways",level:2}],p={toc:c},u="wrapper";function d(e){let{components:t,...a}=e;return(0,l.kt)(u,(0,r.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("h2",{id:"rewards"},"Rewards"),(0,l.kt)("p",null,"The rewards are coming from the Stacking wallet of the tokenomics."),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"year 1: 45_000_000 UCO"),(0,l.kt)("li",{parentName:"ul"},"year 2: 22_500_000 UCO"),(0,l.kt)("li",{parentName:"ul"},"year 3: 11_250_000 UCO"),(0,l.kt)("li",{parentName:"ul"},"year 4: 8_750_000 UCO")),(0,l.kt)("h2",{id:"weights"},"Weights"),(0,l.kt)("p",null,"These weights were chosen by the Archetic team to incentivize longer locks."),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"level 0 : 0"),(0,l.kt)("li",{parentName:"ul"},"level 1 : 0.013"),(0,l.kt)("li",{parentName:"ul"},"level 2 : 0.024"),(0,l.kt)("li",{parentName:"ul"},"level 3 : 0.043"),(0,l.kt)("li",{parentName:"ul"},"level 4 : 0.077"),(0,l.kt)("li",{parentName:"ul"},"level 5 : 0.139"),(0,l.kt)("li",{parentName:"ul"},"level 6 : 0.251"),(0,l.kt)("li",{parentName:"ul"},"level 7 : 0.453")),(0,l.kt)("h2",{id:"rewards-are-calculated-every-hours"},"Rewards are calculated every hours"),(0,l.kt)("p",null,"Every deposits' timestamp is rounded to the hour before.\nFor example a deposit at 12:03 and another one at 12:57 will both be rounded to 12:00 and they will both start earning at 13:00."),(0,l.kt)("p",null,"The calculation is triggered either:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"by a scheduler contract that calls the ",(0,l.kt)("inlineCode",{parentName:"li"},"calculate_rewards")," actions every hours."),(0,l.kt)("li",{parentName:"ul"},"by a deposit/claim/withdraw/relock action.")),(0,l.kt)("p",null,"There is at most 1 calculation per hour."),(0,l.kt)("h2",{id:"state"},"State"),(0,l.kt)("p",null,"The state is composed of these properties:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"last_calculation_timestamp")," the date of the last calculation"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"deposits")," state of the deposits at the moment of last calculation (level and reward_amount will change over time)."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"lp_tokens_deposited")," amount of tokens deposited at the moment of last calculation"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"lp_tokens_deposited_by_level")," amount of tokens deposited grouped by level at the moment of last calculation")),(0,l.kt)("h2",{id:"calculations"},"Calculations"),(0,l.kt)("p",null,"When entering the ",(0,l.kt)("inlineCode",{parentName:"p"},"calculate_new_rewards")," function, we check how much hours need to be calculated (should mostly be 1).\nThen for every hour:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-javascript"},"rewardsToAllocateForThisHour = rewardsRemainingAtTheEndOfYear * (3600 / numberOfSecondsRemainingUtilEndOfYear)\nlevelRatio = (tokensAmountAtThisLevel * weightOfThisLevel) / sumOfAllWeightedTokens\ndepositRatioOnItsLevel = (depositTokensAmount * weightOfThisLevel) / (tokensAmountAtThisLevel * weightOfThisLevel)\nreward = rewardsToAllocateForThisHour * depositRatioOnItsLevel * levelRatio\n")),(0,l.kt)("h3",{id:"an-example"},"An example"),(0,l.kt)("p",null,"Let's take a simple scenario so we can do the maths easily."),(0,l.kt)("p",null,"Imagine the farm starts (year=1) with these 3 deposits:"),(0,l.kt)("ol",null,(0,l.kt)("li",{parentName:"ol"},"1000 UCO at level 7"),(0,l.kt)("li",{parentName:"ol"},"1000 UCO at level 3"),(0,l.kt)("li",{parentName:"ol"},"1000 UCO at level 3")),(0,l.kt)("p",null,"To calculate the rewards of the 1st deposit:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-javascript"},"rewardsToAllocateForThisHour = 45_000_000 * (3600 / 31536000) // 5136.986301369863\nlevelRatio = (1000 * 0.453) / 539 // 0.8404452690166976\ndepositRatioOnItsLevel = (1000 * 0.453) / (1000 * 0.453) // 1\nreward = 5136.986301369863 * 1 * 0.8404452690166976 // 4317.355833989885\n")),(0,l.kt)("p",null,"Until the state change (year change/level change/deposit/withdraw/relock), the first deposit will be rewarded of 4317.35583398 UCO every hours."),(0,l.kt)("h2",{id:"giveaways"},"Giveaways"),(0,l.kt)("p",null,"If the contract have more balance than it's supposed to, the tokens are rewarded linearly over the entire farm's duration.\nExample, if someone sends 35040 UCO (= farm's duration in hours) to the farm, there will be 1 more UCO rewarded every hours.\nNothing is wasted."))}d.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file diff --git a/assets/js/32bd85cf.9fc69ce4.js b/assets/js/32bd85cf.723e8354.js similarity index 98% rename from assets/js/32bd85cf.9fc69ce4.js rename to assets/js/32bd85cf.723e8354.js index 1b486f15b..2644e67a3 100644 --- a/assets/js/32bd85cf.9fc69ce4.js +++ b/assets/js/32bd85cf.723e8354.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8227],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>f});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var s=n.createContext({}),c=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},p=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,s=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),d=c(a),m=r,f=d["".concat(s,".").concat(m)]||d[m]||u[m]||o;return a?n.createElement(f,l(l({ref:t},p),{},{components:a})):n.createElement(f,l({ref:t},p))}));function f(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,l=new Array(o);l[0]=m;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[d]="string"==typeof e?e:r,l[1]=i;for(var c=2;c{a.r(t),a.d(t,{Badge:()=>u,Bullet:()=>p,Details:()=>f,SpecifiedBy:()=>d,assets:()=>c,contentTitle:()=>i,default:()=>k,frontMatter:()=>l,metadata:()=>s,toc:()=>m});var n=a(87462),r=a(67294),o=a(3905);a(8209);const l={id:"boolean",title:"Boolean",hide_table_of_contents:!1},i=void 0,s={unversionedId:"build/api/schema/scalars/boolean",id:"build/api/schema/scalars/boolean",title:"Boolean",description:"The Boolean scalar type represents true or false.",source:"@site/docs/build/api/schema/scalars/boolean.mdx",sourceDirName:"build/api/schema/scalars",slug:"/build/api/schema/scalars/boolean",permalink:"/build/api/schema/scalars/boolean",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"boolean",title:"Boolean",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"Address",permalink:"/build/api/schema/scalars/address"},next:{title:"Content",permalink:"/build/api/schema/scalars/content"}},c={},p=()=>(0,o.kt)(r.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),d=e=>(0,o.kt)(r.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,o.kt)(r.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),m=[{value:"Member of",id:"member-of",level:3}],f=e=>{let{dataOpen:t,dataClose:a,children:l,startOpen:i=!1}=e;const[s,c]=(0,r.useState)(i);return(0,o.kt)("details",(0,n.Z)({},s?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),c((e=>!e))},style:{listStyle:"none"}},s?t:a),s&&l)},b={Bullet:p,SpecifiedBy:d,Badge:u,toc:m,Details:f},y="wrapper";function k(e){let{components:t,...a}=e;return(0,o.kt)(y,(0,n.Z)({},b,a,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"The ",(0,o.kt)("inlineCode",{parentName:"p"},"Boolean")," scalar type represents ",(0,o.kt)("inlineCode",{parentName:"p"},"true")," or ",(0,o.kt)("inlineCode",{parentName:"p"},"false"),"."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"scalar Boolean\n")),(0,o.kt)("h3",{id:"member-of"},"Member of"),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/directives/include"},(0,o.kt)("inlineCode",{parentName:"a"},"include"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"directive",mdxType:"Badge"}),(0,o.kt)(p,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/node"},(0,o.kt)("inlineCode",{parentName:"a"},"Node"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,o.kt)(p,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/directives/skip"},(0,o.kt)("inlineCode",{parentName:"a"},"skip"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"directive",mdxType:"Badge"}),(0,o.kt)(p,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/transaction-input"},(0,o.kt)("inlineCode",{parentName:"a"},"TransactionInput"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}k.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8227],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>f});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var s=n.createContext({}),c=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},p=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,s=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),d=c(a),m=r,f=d["".concat(s,".").concat(m)]||d[m]||u[m]||o;return a?n.createElement(f,l(l({ref:t},p),{},{components:a})):n.createElement(f,l({ref:t},p))}));function f(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,l=new Array(o);l[0]=m;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[d]="string"==typeof e?e:r,l[1]=i;for(var c=2;c{a.r(t),a.d(t,{Badge:()=>u,Bullet:()=>p,Details:()=>f,SpecifiedBy:()=>d,assets:()=>c,contentTitle:()=>i,default:()=>k,frontMatter:()=>l,metadata:()=>s,toc:()=>m});var n=a(87462),r=a(67294),o=a(3905);a(8209);const l={id:"boolean",title:"Boolean",hide_table_of_contents:!1},i=void 0,s={unversionedId:"build/api/schema/scalars/boolean",id:"build/api/schema/scalars/boolean",title:"Boolean",description:"The Boolean scalar type represents true or false.",source:"@site/docs/build/api/schema/scalars/boolean.mdx",sourceDirName:"build/api/schema/scalars",slug:"/build/api/schema/scalars/boolean",permalink:"/build/api/schema/scalars/boolean",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"boolean",title:"Boolean",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"Address",permalink:"/build/api/schema/scalars/address"},next:{title:"Content",permalink:"/build/api/schema/scalars/content"}},c={},p=()=>(0,o.kt)(r.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),d=e=>(0,o.kt)(r.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,o.kt)(r.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),m=[{value:"Member of",id:"member-of",level:3}],f=e=>{let{dataOpen:t,dataClose:a,children:l,startOpen:i=!1}=e;const[s,c]=(0,r.useState)(i);return(0,o.kt)("details",(0,n.Z)({},s?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),c((e=>!e))},style:{listStyle:"none"}},s?t:a),s&&l)},b={Bullet:p,SpecifiedBy:d,Badge:u,toc:m,Details:f},y="wrapper";function k(e){let{components:t,...a}=e;return(0,o.kt)(y,(0,n.Z)({},b,a,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"The ",(0,o.kt)("inlineCode",{parentName:"p"},"Boolean")," scalar type represents ",(0,o.kt)("inlineCode",{parentName:"p"},"true")," or ",(0,o.kt)("inlineCode",{parentName:"p"},"false"),"."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"scalar Boolean\n")),(0,o.kt)("h3",{id:"member-of"},"Member of"),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/directives/include"},(0,o.kt)("inlineCode",{parentName:"a"},"include"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"directive",mdxType:"Badge"}),(0,o.kt)(p,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/node"},(0,o.kt)("inlineCode",{parentName:"a"},"Node"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,o.kt)(p,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/directives/skip"},(0,o.kt)("inlineCode",{parentName:"a"},"skip"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"directive",mdxType:"Badge"}),(0,o.kt)(p,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/transaction-input"},(0,o.kt)("inlineCode",{parentName:"a"},"TransactionInput"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}k.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file diff --git a/assets/js/36739131.338b06dc.js b/assets/js/36739131.e26d6da7.js similarity index 99% rename from assets/js/36739131.338b06dc.js rename to assets/js/36739131.e26d6da7.js index 8ac5619f0..c530a8728 100644 --- a/assets/js/36739131.338b06dc.js +++ b/assets/js/36739131.e26d6da7.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5888],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>m});var i=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,i)}return a}function r(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=i.createContext({}),l=function(e){var t=i.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):r(r({},t),e)),a},d=function(e){var t=l(e.components);return i.createElement(s.Provider,{value:t},e.children)},h="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},p=i.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,s=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),h=l(a),p=n,m=h["".concat(s,".").concat(p)]||h[p]||u[p]||o;return a?i.createElement(m,r(r({ref:t},d),{},{components:a})):i.createElement(m,r({ref:t},d))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,r=new Array(o);r[0]=p;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[h]="string"==typeof e?e:n,r[1]=c;for(var l=2;l{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>r,default:()=>u,frontMatter:()=>o,metadata:()=>c,toc:()=>l});var i=a(87462),n=(a(67294),a(3905));a(8209);const o={id:"patents",title:"Patents",sidebar_position:3},r=void 0,c={unversionedId:"learn/patents",id:"learn/patents",title:"Patents",description:"11 patents to build a new ecosystem",source:"@site/docs/learn/patents.md",sourceDirName:"learn",slug:"/learn/patents",permalink:"/learn/patents",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",sidebarPosition:3,frontMatter:{id:"patents",title:"Patents",sidebar_position:3},sidebar:"docs",previous:{title:"Ecosystem",permalink:"/learn/ecosystem"},next:{title:"Transaction chains",permalink:"/learn/transaction-chain"}},s={},l=[{value:"11 patents to build a new ecosystem",id:"11-patents-to-build-a-new-ecosystem",level:2},{value:"Archethic, a Humanitarian and Community Project",id:"archethic-a-humanitarian-and-community-project",level:2},{value:"List of patents",id:"list-of-patents",level:2},{value:"Blockchain",id:"blockchain",level:3},{value:"Method of transaction validation relating to Transactions Chains through a decentralized network.",id:"method-of-transaction-validation-relating-to-transactions-chains-through-a-decentralized-network",level:4},{value:"Process management of smart-contracts through transactions chains",id:"process-management-of-smart-contracts-through-transactions-chains",level:4},{value:"Atomic validation of transaction chains through a decentralized network",id:"atomic-validation-of-transaction-chains-through-a-decentralized-network",level:4},{value:"Method associated with the Digital identity management of an individual, a connected object, an organization, a service through a decentralized network",id:"method-associated-with-the-digital-identity-management-of-an-individual-a-connected-object-an-organization-a-service-through-a-decentralized-network",level:4},{value:"Method of securing transactions through knowledge and through cross-capabilities across a decentralized network",id:"method-of-securing-transactions-through-knowledge-and-through-cross-capabilities-across-a-decentralized-network",level:4},{value:"Biometrics",id:"biometrics",level:3},{value:"Method of Biometric Authentication without disclosure through a decentralized network",id:"method-of-biometric-authentication-without-disclosure-through-a-decentralized-network",level:4},{value:"Biometric adaptive authentication device using ultrasound, photographs in visible light of contrast and infrared, without disclosure through a decentralized network",id:"biometric-adaptive-authentication-device-using-ultrasound-photographs-in-visible-light-of-contrast-and-infrared-without-disclosure-through-a-decentralized-network",level:4},{value:"Device for the reproducible positioning of at least one finger of an individual while taking the biometric measurements.",id:"device-for-the-reproducible-positioning-of-at-least-one-finger-of-an-individual-while-taking-the-biometric-measurements",level:4},{value:"Device for Biometric ultrasonic testing and vital signs verification.",id:"device-for-biometric-ultrasonic-testing-and-vital-signs-verification",level:4},{value:"Device for biometric authentication and reliability of measurements by visible and infrared light photography, spectrometry, and differential analysis.",id:"device-for-biometric-authentication-and-reliability-of-measurements-by-visible-and-infrared-light-photography-spectrometry-and-differential-analysis",level:4},{value:"Hardware",id:"hardware",level:3},{value:"Communication device for communicating with other devices and enabling nearby transactions and creating a mesh network.",id:"communication-device-for-communicating-with-other-devices-and-enabling-nearby-transactions-and-creating-a-mesh-network",level:4},{value:"Mechanical and electrical coupling device to connect to a computer periphery without damaging the host system.",id:"mechanical-and-electrical-coupling-device-to-connect-to-a-computer-periphery-without-damaging-the-host-system",level:4}],d={toc:l},h="wrapper";function u(e){let{components:t,...a}=e;return(0,n.kt)(h,(0,i.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"11-patents-to-build-a-new-ecosystem"},"11 patents to build a new ecosystem"),(0,n.kt)("p",null,"Archethic is based on more than 4 years of research and 11 international patents.\nSome of these patents aim at removing all logins, passwords and identification cards that pollute and weaken our environment by replacing them with a universal biometric identification, unfalsifiable and guaranteeing the privacy of users."),(0,n.kt)("p",null,"Other patents, concern the implementation of a real decentralized network, governed by mathematics, resilient to cyber-attacks and allowing to reduce the consumption of the current Internet."),(0,n.kt)("p",null,"Finally, patents aim to allow current applications to migrate or interface effortlessly to this new network. Each application will no longer need to master all the technologies to launch its service (identity management, inventory management, payments, interface with external suppliers, etc.) but will be able to rely on a universal exchange platform capable, through smart-contracts, of instantly matching all offers to each request. "),(0,n.kt)("h2",{id:"archethic-a-humanitarian-and-community-project"},"Archethic, a Humanitarian and Community Project"),(0,n.kt)("p",null,"Once the risk of a fork is removed, all the patents will be transferred to the heritage of the open source technologies, this heritage should likely be transferred to the OIN (Open Invention Network) or equivalent. The entire source code will be AGPL licensed."),(0,n.kt)("h2",{id:"list-of-patents"},"List of patents"),(0,n.kt)("h3",{id:"blockchain"},"Blockchain"),(0,n.kt)("h4",{id:"method-of-transaction-validation-relating-to-transactions-chains-through-a-decentralized-network"},"Method of transaction validation relating to Transactions Chains through a decentralized network."),(0,n.kt)("p",null,"Transaction validation relating to one or more transactions chains in a unitary and asynchronous way by the elimination of all the limitations of Blockchain technology. The process allows enhanced security and confidentiality, in particular by integrating the constraints in terms of geolocation and number of the messages validation.",(0,n.kt)("br",null),"\nRef: ",(0,n.kt)("a",{parentName:"p",href:"https://patentimages.storage.googleapis.com/7a/b1/b1/191f1d76b07922/FR3049089B1.pdf"},"FR3049089 (A1); US2019044735; WO2017162931")),(0,n.kt)("h4",{id:"process-management-of-smart-contracts-through-transactions-chains"},"Process management of smart-contracts through transactions chains"),(0,n.kt)("p",null,"Digital identities - exchange of value - delegations management, authorizations and revocations - electronic votes management - delivery of goods/supply chain - organizations - health data management - reputation management and certification.",(0,n.kt)("br",null),"\nRef: ",(0,n.kt)("a",{parentName:"p",href:"https://patentimages.storage.googleapis.com/a6/d6/f3/5210d526791d88/FR3049101A1.pdf"},"FR3049101 (A1)")),(0,n.kt)("h4",{id:"atomic-validation-of-transaction-chains-through-a-decentralized-network"},"Atomic validation of transaction chains through a decentralized network"),(0,n.kt)("p",null,"Consensus ARCH (Atomic Rotating Commitment Heuristic Election), optimized and geo-secure replication process - self-repair network and data - Prediction Module and Supervised Multicast Network Layer (P2P Protocol).",(0,n.kt)("br",null),"\nRef: ",(0,n.kt)("a",{parentName:"p",href:"https://patentimages.storage.googleapis.com/cf/e1/14/f4943679e7ecb9/FR3098972A1.pdf"},"FR3098972 (A1)")),(0,n.kt)("h4",{id:"method-associated-with-the-digital-identity-management-of-an-individual-a-connected-object-an-organization-a-service-through-a-decentralized-network"},"Method associated with the Digital identity management of an individual, a connected object, an organization, a service through a decentralized network"),(0,n.kt)("p",null,"Identification-authentication-registration of unique or multiple digital identities for an individual or an object on an external device - exchange of values without disclosure - condition management - management of members, owners, multi-signatures, reputation, certification and recertification of a digital identity - management of mutable external identifiers through digital identity.",(0,n.kt)("br",null),"\nRef: ",(0,n.kt)("a",{parentName:"p",href:"https://patentimages.storage.googleapis.com/3f/64/99/5d6d7f66e5c6a9/FR3049088A1.pdf"},"FR3049088 (A1)")),(0,n.kt)("h4",{id:"method-of-securing-transactions-through-knowledge-and-through-cross-capabilities-across-a-decentralized-network"},"Method of securing transactions through knowledge and through cross-capabilities across a decentralized network"),(0,n.kt)("p",null,"Cryptographic process to cross-reference the knowledge and capabilities of the devices so as to prohibit any unauthorized operation, renew and permanently forfeit all cryptographic keys of all devices, remove correlation elements of time, value, and actors involved (privacy wheel), initialize cryptographic keys for a decentralized network without using an external device to the system, minimize the exposure of public keys related to private keys of the device, to reset a device and revoke a user.",(0,n.kt)("br",null),"\nRef: ",(0,n.kt)("a",{parentName:"p",href:"https://patentimages.storage.googleapis.com/86/18/ee/c63fde292d1186/FR3049087A1.pdf"},"FR3049087 (A1)")),(0,n.kt)("h3",{id:"biometrics"},"Biometrics"),(0,n.kt)("h4",{id:"method-of-biometric-authentication-without-disclosure-through-a-decentralized-network"},"Method of Biometric Authentication without disclosure through a decentralized network"),(0,n.kt)("p",null,"A method of not having to reveal all or part of the biometric measurements of an individual - integrating the compensations of the biometric measurements and lifelong morphological adaptability of an individual - never having to store any biometric data or any biometric measurement or a cryptographic key relating to an individual - making it possible to record several fingers of the same individual without disclosure and allowing operations without a network and without an individual having never used any device before.",(0,n.kt)("br",null),"\nRef: ",(0,n.kt)("a",{parentName:"p",href:"https://patentimages.storage.googleapis.com/ca/b7/36/99a19c0295592c/FR3049086A1.pdf"},"FR3049086 (A1)")),(0,n.kt)("h4",{id:"biometric-adaptive-authentication-device-using-ultrasound-photographs-in-visible-light-of-contrast-and-infrared-without-disclosure-through-a-decentralized-network"},"Biometric adaptive authentication device using ultrasound, photographs in visible light of contrast and infrared, without disclosure through a decentralized network"),(0,n.kt)("p",null,"A Biometric authentication device without any disclosure obtained from ultrasounds and photograph of the venous network of the finger, of the lateral fingerprint of the finger and configured to take a photograph of the infrared intrinsic emission of the finger, to check the heart rate and perform an analysis, Multireferential spectrometry of the finger.",(0,n.kt)("br",null),"\nRef: ",(0,n.kt)("a",{parentName:"p",href:"https://patentimages.storage.googleapis.com/95/a6/f7/7ada4308bbc1cb/FR3049090A1.pdf"},"FR3049090 (A1); CN108780501; CN109074478; US2019089539; WO2017162930")),(0,n.kt)("h4",{id:"device-for-the-reproducible-positioning-of-at-least-one-finger-of-an-individual-while-taking-the-biometric-measurements"},"Device for the reproducible positioning of at least one finger of an individual while taking the biometric measurements."),(0,n.kt)("p",null,"Ref: ",(0,n.kt)("a",{parentName:"p",href:"https://patentimages.storage.googleapis.com/f9/37/a9/d1afa7dacdfc54/FR3049093A1.pdf"},"FR3049093 (A1)")),(0,n.kt)("h4",{id:"device-for-biometric-ultrasonic-testing-and-vital-signs-verification"},"Device for Biometric ultrasonic testing and vital signs verification."),(0,n.kt)("p",null,"Ref: ",(0,n.kt)("a",{parentName:"p",href:"https://patentimages.storage.googleapis.com/15/01/34/51b6fe0fa7d90e/FR3049091A1.pdf"},"FR3049091 (A1)")),(0,n.kt)("h4",{id:"device-for-biometric-authentication-and-reliability-of-measurements-by-visible-and-infrared-light-photography-spectrometry-and-differential-analysis"},"Device for biometric authentication and reliability of measurements by visible and infrared light photography, spectrometry, and differential analysis."),(0,n.kt)("p",null,"Ref: ",(0,n.kt)("a",{parentName:"p",href:"https://patentimages.storage.googleapis.com/26/f8/c9/9174c1c37723bf/FR3049092A1.pdf"},"FR3049092 (A1)")),(0,n.kt)("h3",{id:"hardware"},"Hardware"),(0,n.kt)("h4",{id:"communication-device-for-communicating-with-other-devices-and-enabling-nearby-transactions-and-creating-a-mesh-network"},"Communication device for communicating with other devices and enabling nearby transactions and creating a mesh network."),(0,n.kt)("p",null,"Ref: ",(0,n.kt)("a",{parentName:"p",href:"https://patentimages.storage.googleapis.com/95/c5/fd/7ecba7b274353a/FR3049085A1.pdf"},"FR3049085 (A1)")),(0,n.kt)("h4",{id:"mechanical-and-electrical-coupling-device-to-connect-to-a-computer-periphery-without-damaging-the-host-system"},"Mechanical and electrical coupling device to connect to a computer periphery without damaging the host system."),(0,n.kt)("p",null,"Ref: ",(0,n.kt)("a",{parentName:"p",href:"https://patentimages.storage.googleapis.com/19/62/34/66e7c6051da9c8/FR3049121A1.pdf"},"FR3049121 (A1)")))}u.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5888],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>m});var i=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,i)}return a}function r(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=i.createContext({}),l=function(e){var t=i.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):r(r({},t),e)),a},d=function(e){var t=l(e.components);return i.createElement(s.Provider,{value:t},e.children)},h="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},p=i.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,s=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),h=l(a),p=n,m=h["".concat(s,".").concat(p)]||h[p]||u[p]||o;return a?i.createElement(m,r(r({ref:t},d),{},{components:a})):i.createElement(m,r({ref:t},d))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,r=new Array(o);r[0]=p;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[h]="string"==typeof e?e:n,r[1]=c;for(var l=2;l{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>r,default:()=>u,frontMatter:()=>o,metadata:()=>c,toc:()=>l});var i=a(87462),n=(a(67294),a(3905));a(8209);const o={id:"patents",title:"Patents",sidebar_position:3},r=void 0,c={unversionedId:"learn/patents",id:"learn/patents",title:"Patents",description:"11 patents to build a new ecosystem",source:"@site/docs/learn/patents.md",sourceDirName:"learn",slug:"/learn/patents",permalink:"/learn/patents",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",sidebarPosition:3,frontMatter:{id:"patents",title:"Patents",sidebar_position:3},sidebar:"docs",previous:{title:"Ecosystem",permalink:"/learn/ecosystem"},next:{title:"Transaction chains",permalink:"/learn/transaction-chain"}},s={},l=[{value:"11 patents to build a new ecosystem",id:"11-patents-to-build-a-new-ecosystem",level:2},{value:"Archethic, a Humanitarian and Community Project",id:"archethic-a-humanitarian-and-community-project",level:2},{value:"List of patents",id:"list-of-patents",level:2},{value:"Blockchain",id:"blockchain",level:3},{value:"Method of transaction validation relating to Transactions Chains through a decentralized network.",id:"method-of-transaction-validation-relating-to-transactions-chains-through-a-decentralized-network",level:4},{value:"Process management of smart-contracts through transactions chains",id:"process-management-of-smart-contracts-through-transactions-chains",level:4},{value:"Atomic validation of transaction chains through a decentralized network",id:"atomic-validation-of-transaction-chains-through-a-decentralized-network",level:4},{value:"Method associated with the Digital identity management of an individual, a connected object, an organization, a service through a decentralized network",id:"method-associated-with-the-digital-identity-management-of-an-individual-a-connected-object-an-organization-a-service-through-a-decentralized-network",level:4},{value:"Method of securing transactions through knowledge and through cross-capabilities across a decentralized network",id:"method-of-securing-transactions-through-knowledge-and-through-cross-capabilities-across-a-decentralized-network",level:4},{value:"Biometrics",id:"biometrics",level:3},{value:"Method of Biometric Authentication without disclosure through a decentralized network",id:"method-of-biometric-authentication-without-disclosure-through-a-decentralized-network",level:4},{value:"Biometric adaptive authentication device using ultrasound, photographs in visible light of contrast and infrared, without disclosure through a decentralized network",id:"biometric-adaptive-authentication-device-using-ultrasound-photographs-in-visible-light-of-contrast-and-infrared-without-disclosure-through-a-decentralized-network",level:4},{value:"Device for the reproducible positioning of at least one finger of an individual while taking the biometric measurements.",id:"device-for-the-reproducible-positioning-of-at-least-one-finger-of-an-individual-while-taking-the-biometric-measurements",level:4},{value:"Device for Biometric ultrasonic testing and vital signs verification.",id:"device-for-biometric-ultrasonic-testing-and-vital-signs-verification",level:4},{value:"Device for biometric authentication and reliability of measurements by visible and infrared light photography, spectrometry, and differential analysis.",id:"device-for-biometric-authentication-and-reliability-of-measurements-by-visible-and-infrared-light-photography-spectrometry-and-differential-analysis",level:4},{value:"Hardware",id:"hardware",level:3},{value:"Communication device for communicating with other devices and enabling nearby transactions and creating a mesh network.",id:"communication-device-for-communicating-with-other-devices-and-enabling-nearby-transactions-and-creating-a-mesh-network",level:4},{value:"Mechanical and electrical coupling device to connect to a computer periphery without damaging the host system.",id:"mechanical-and-electrical-coupling-device-to-connect-to-a-computer-periphery-without-damaging-the-host-system",level:4}],d={toc:l},h="wrapper";function u(e){let{components:t,...a}=e;return(0,n.kt)(h,(0,i.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"11-patents-to-build-a-new-ecosystem"},"11 patents to build a new ecosystem"),(0,n.kt)("p",null,"Archethic is based on more than 4 years of research and 11 international patents.\nSome of these patents aim at removing all logins, passwords and identification cards that pollute and weaken our environment by replacing them with a universal biometric identification, unfalsifiable and guaranteeing the privacy of users."),(0,n.kt)("p",null,"Other patents, concern the implementation of a real decentralized network, governed by mathematics, resilient to cyber-attacks and allowing to reduce the consumption of the current Internet."),(0,n.kt)("p",null,"Finally, patents aim to allow current applications to migrate or interface effortlessly to this new network. Each application will no longer need to master all the technologies to launch its service (identity management, inventory management, payments, interface with external suppliers, etc.) but will be able to rely on a universal exchange platform capable, through smart-contracts, of instantly matching all offers to each request. "),(0,n.kt)("h2",{id:"archethic-a-humanitarian-and-community-project"},"Archethic, a Humanitarian and Community Project"),(0,n.kt)("p",null,"Once the risk of a fork is removed, all the patents will be transferred to the heritage of the open source technologies, this heritage should likely be transferred to the OIN (Open Invention Network) or equivalent. The entire source code will be AGPL licensed."),(0,n.kt)("h2",{id:"list-of-patents"},"List of patents"),(0,n.kt)("h3",{id:"blockchain"},"Blockchain"),(0,n.kt)("h4",{id:"method-of-transaction-validation-relating-to-transactions-chains-through-a-decentralized-network"},"Method of transaction validation relating to Transactions Chains through a decentralized network."),(0,n.kt)("p",null,"Transaction validation relating to one or more transactions chains in a unitary and asynchronous way by the elimination of all the limitations of Blockchain technology. The process allows enhanced security and confidentiality, in particular by integrating the constraints in terms of geolocation and number of the messages validation.",(0,n.kt)("br",null),"\nRef: ",(0,n.kt)("a",{parentName:"p",href:"https://patentimages.storage.googleapis.com/7a/b1/b1/191f1d76b07922/FR3049089B1.pdf"},"FR3049089 (A1); US2019044735; WO2017162931")),(0,n.kt)("h4",{id:"process-management-of-smart-contracts-through-transactions-chains"},"Process management of smart-contracts through transactions chains"),(0,n.kt)("p",null,"Digital identities - exchange of value - delegations management, authorizations and revocations - electronic votes management - delivery of goods/supply chain - organizations - health data management - reputation management and certification.",(0,n.kt)("br",null),"\nRef: ",(0,n.kt)("a",{parentName:"p",href:"https://patentimages.storage.googleapis.com/a6/d6/f3/5210d526791d88/FR3049101A1.pdf"},"FR3049101 (A1)")),(0,n.kt)("h4",{id:"atomic-validation-of-transaction-chains-through-a-decentralized-network"},"Atomic validation of transaction chains through a decentralized network"),(0,n.kt)("p",null,"Consensus ARCH (Atomic Rotating Commitment Heuristic Election), optimized and geo-secure replication process - self-repair network and data - Prediction Module and Supervised Multicast Network Layer (P2P Protocol).",(0,n.kt)("br",null),"\nRef: ",(0,n.kt)("a",{parentName:"p",href:"https://patentimages.storage.googleapis.com/cf/e1/14/f4943679e7ecb9/FR3098972A1.pdf"},"FR3098972 (A1)")),(0,n.kt)("h4",{id:"method-associated-with-the-digital-identity-management-of-an-individual-a-connected-object-an-organization-a-service-through-a-decentralized-network"},"Method associated with the Digital identity management of an individual, a connected object, an organization, a service through a decentralized network"),(0,n.kt)("p",null,"Identification-authentication-registration of unique or multiple digital identities for an individual or an object on an external device - exchange of values without disclosure - condition management - management of members, owners, multi-signatures, reputation, certification and recertification of a digital identity - management of mutable external identifiers through digital identity.",(0,n.kt)("br",null),"\nRef: ",(0,n.kt)("a",{parentName:"p",href:"https://patentimages.storage.googleapis.com/3f/64/99/5d6d7f66e5c6a9/FR3049088A1.pdf"},"FR3049088 (A1)")),(0,n.kt)("h4",{id:"method-of-securing-transactions-through-knowledge-and-through-cross-capabilities-across-a-decentralized-network"},"Method of securing transactions through knowledge and through cross-capabilities across a decentralized network"),(0,n.kt)("p",null,"Cryptographic process to cross-reference the knowledge and capabilities of the devices so as to prohibit any unauthorized operation, renew and permanently forfeit all cryptographic keys of all devices, remove correlation elements of time, value, and actors involved (privacy wheel), initialize cryptographic keys for a decentralized network without using an external device to the system, minimize the exposure of public keys related to private keys of the device, to reset a device and revoke a user.",(0,n.kt)("br",null),"\nRef: ",(0,n.kt)("a",{parentName:"p",href:"https://patentimages.storage.googleapis.com/86/18/ee/c63fde292d1186/FR3049087A1.pdf"},"FR3049087 (A1)")),(0,n.kt)("h3",{id:"biometrics"},"Biometrics"),(0,n.kt)("h4",{id:"method-of-biometric-authentication-without-disclosure-through-a-decentralized-network"},"Method of Biometric Authentication without disclosure through a decentralized network"),(0,n.kt)("p",null,"A method of not having to reveal all or part of the biometric measurements of an individual - integrating the compensations of the biometric measurements and lifelong morphological adaptability of an individual - never having to store any biometric data or any biometric measurement or a cryptographic key relating to an individual - making it possible to record several fingers of the same individual without disclosure and allowing operations without a network and without an individual having never used any device before.",(0,n.kt)("br",null),"\nRef: ",(0,n.kt)("a",{parentName:"p",href:"https://patentimages.storage.googleapis.com/ca/b7/36/99a19c0295592c/FR3049086A1.pdf"},"FR3049086 (A1)")),(0,n.kt)("h4",{id:"biometric-adaptive-authentication-device-using-ultrasound-photographs-in-visible-light-of-contrast-and-infrared-without-disclosure-through-a-decentralized-network"},"Biometric adaptive authentication device using ultrasound, photographs in visible light of contrast and infrared, without disclosure through a decentralized network"),(0,n.kt)("p",null,"A Biometric authentication device without any disclosure obtained from ultrasounds and photograph of the venous network of the finger, of the lateral fingerprint of the finger and configured to take a photograph of the infrared intrinsic emission of the finger, to check the heart rate and perform an analysis, Multireferential spectrometry of the finger.",(0,n.kt)("br",null),"\nRef: ",(0,n.kt)("a",{parentName:"p",href:"https://patentimages.storage.googleapis.com/95/a6/f7/7ada4308bbc1cb/FR3049090A1.pdf"},"FR3049090 (A1); CN108780501; CN109074478; US2019089539; WO2017162930")),(0,n.kt)("h4",{id:"device-for-the-reproducible-positioning-of-at-least-one-finger-of-an-individual-while-taking-the-biometric-measurements"},"Device for the reproducible positioning of at least one finger of an individual while taking the biometric measurements."),(0,n.kt)("p",null,"Ref: ",(0,n.kt)("a",{parentName:"p",href:"https://patentimages.storage.googleapis.com/f9/37/a9/d1afa7dacdfc54/FR3049093A1.pdf"},"FR3049093 (A1)")),(0,n.kt)("h4",{id:"device-for-biometric-ultrasonic-testing-and-vital-signs-verification"},"Device for Biometric ultrasonic testing and vital signs verification."),(0,n.kt)("p",null,"Ref: ",(0,n.kt)("a",{parentName:"p",href:"https://patentimages.storage.googleapis.com/15/01/34/51b6fe0fa7d90e/FR3049091A1.pdf"},"FR3049091 (A1)")),(0,n.kt)("h4",{id:"device-for-biometric-authentication-and-reliability-of-measurements-by-visible-and-infrared-light-photography-spectrometry-and-differential-analysis"},"Device for biometric authentication and reliability of measurements by visible and infrared light photography, spectrometry, and differential analysis."),(0,n.kt)("p",null,"Ref: ",(0,n.kt)("a",{parentName:"p",href:"https://patentimages.storage.googleapis.com/26/f8/c9/9174c1c37723bf/FR3049092A1.pdf"},"FR3049092 (A1)")),(0,n.kt)("h3",{id:"hardware"},"Hardware"),(0,n.kt)("h4",{id:"communication-device-for-communicating-with-other-devices-and-enabling-nearby-transactions-and-creating-a-mesh-network"},"Communication device for communicating with other devices and enabling nearby transactions and creating a mesh network."),(0,n.kt)("p",null,"Ref: ",(0,n.kt)("a",{parentName:"p",href:"https://patentimages.storage.googleapis.com/95/c5/fd/7ecba7b274353a/FR3049085A1.pdf"},"FR3049085 (A1)")),(0,n.kt)("h4",{id:"mechanical-and-electrical-coupling-device-to-connect-to-a-computer-periphery-without-damaging-the-host-system"},"Mechanical and electrical coupling device to connect to a computer periphery without damaging the host system."),(0,n.kt)("p",null,"Ref: ",(0,n.kt)("a",{parentName:"p",href:"https://patentimages.storage.googleapis.com/19/62/34/66e7c6051da9c8/FR3049121A1.pdf"},"FR3049121 (A1)")))}u.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file diff --git a/assets/js/378b5e98.30203991.js b/assets/js/378b5e98.092ddd3b.js similarity index 99% rename from assets/js/378b5e98.30203991.js rename to assets/js/378b5e98.092ddd3b.js index 98b17bbba..eb2f26244 100644 --- a/assets/js/378b5e98.30203991.js +++ b/assets/js/378b5e98.092ddd3b.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7482],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>m});var n=a(67294);function o(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e){for(var t=1;t=0||(o[a]=e[a]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(o[a]=e[a])}return o}var d=n.createContext({}),i=function(e){var t=n.useContext(d),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},c=function(e){var t=i(e.components);return n.createElement(d.Provider,{value:t},e.children)},b="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var a=e.components,o=e.mdxType,r=e.originalType,d=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),b=i(a),u=o,m=b["".concat(d,".").concat(u)]||b[u]||p[u]||r;return a?n.createElement(m,l(l({ref:t},c),{},{components:a})):n.createElement(m,l({ref:t},c))}));function m(e,t){var a=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=a.length,l=new Array(r);l[0]=u;var s={};for(var d in t)hasOwnProperty.call(t,d)&&(s[d]=t[d]);s.originalType=e,s[b]="string"==typeof e?e:o,l[1]=s;for(var i=2;i{a.r(t),a.d(t,{Badge:()=>p,Bullet:()=>c,Details:()=>m,SpecifiedBy:()=>b,assets:()=>i,contentTitle:()=>s,default:()=>h,frontMatter:()=>l,metadata:()=>d,toc:()=>u});var n=a(87462),o=a(67294),r=a(3905);a(8209);const l={id:"transaction",title:"Transaction",hide_table_of_contents:!1},s=void 0,d={unversionedId:"build/api/schema/objects/transaction",id:"build/api/schema/objects/transaction",title:"Transaction",description:"[Transaction] represents a unitary transaction in the Archethic network.",source:"@site/docs/build/api/schema/objects/transaction.mdx",sourceDirName:"build/api/schema/objects",slug:"/build/api/schema/objects/transaction",permalink:"/build/api/schema/objects/transaction",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"transaction",title:"Transaction",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"TransactionSummary",permalink:"/build/api/schema/objects/transaction-summary"},next:{title:"UcoData",permalink:"/build/api/schema/objects/uco-data"}},i={},c=()=>(0,r.kt)(o.Fragment,null,(0,r.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),b=e=>(0,r.kt)(o.Fragment,null,"Specification",(0,r.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),p=e=>(0,r.kt)(o.Fragment,null,(0,r.kt)("span",{className:e.class},e.text)),u=[{value:"Fields",id:"fields",level:3},{value:'Transaction.addressAddress ',id:"code-style-fontweight-normal-transactionbaddressbcodeaddress-",level:4},{value:'Transaction.balanceBalance ',id:"code-style-fontweight-normal-transactionbbalancebcodebalance-",level:4},{value:'Transaction.chainLengthInt ',id:"code-style-fontweight-normal-transactionbchainlengthbcodeint-",level:4},{value:'Transaction.crossValidationStamps[CrossValidationStamp] ',id:"code-style-fontweight-normal-transactionbcrossvalidationstampsbcodecrossvalidationstamp--",level:4},{value:'Transaction.dataData ',id:"code-style-fontweight-normal-transactionbdatabcodedata-",level:4},{value:'Transaction.inputs[TransactionInput] ',id:"code-style-fontweight-normal-transactionbinputsbcodetransactioninput--",level:4},{value:'Transaction.inputs.pagingOffsetNonNegInteger ',id:"code-style-fontweight-normal-transactioninputsbpagingoffsetbcodenonneginteger-",level:5},{value:'Transaction.originSignatureHex ',id:"code-style-fontweight-normal-transactionboriginsignaturebcodehex-",level:4},{value:'Transaction.previousAddressAddress ',id:"code-style-fontweight-normal-transactionbpreviousaddressbcodeaddress-",level:4},{value:'Transaction.previousPublicKeyPublicKey ',id:"code-style-fontweight-normal-transactionbpreviouspublickeybcodepublickey-",level:4},{value:'Transaction.previousSignatureHex ',id:"code-style-fontweight-normal-transactionbprevioussignaturebcodehex-",level:4},{value:'Transaction.typeString ',id:"code-style-fontweight-normal-transactionbtypebcodestring-",level:4},{value:'Transaction.validationStampValidationStamp ',id:"code-style-fontweight-normal-transactionbvalidationstampbcodevalidationstamp-",level:4},{value:'Transaction.versionInt ',id:"code-style-fontweight-normal-transactionbversionbcodeint-",level:4},{value:"Returned by",id:"returned-by",level:3}],m=e=>{let{dataOpen:t,dataClose:a,children:l,startOpen:s=!1}=e;const[d,i]=(0,o.useState)(s);return(0,r.kt)("details",(0,n.Z)({},d?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,r.kt)("summary",{onClick:e=>{e.preventDefault(),i((e=>!e))},style:{listStyle:"none"}},d?t:a),d&&l)},g={Bullet:c,SpecifiedBy:b,Badge:p,toc:u,Details:m},y="wrapper";function h(e){let{components:t,...a}=e;return(0,r.kt)(y,(0,n.Z)({},g,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"[Transaction]"," represents a unitary transaction in the Archethic network."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-graphql"},"type Transaction {\n address: Address\n balance: Balance\n chainLength: Int\n crossValidationStamps: [CrossValidationStamp]\n data: Data\n inputs(\n limit: PosInteger\n pagingOffset: NonNegInteger\n ): [TransactionInput]\n originSignature: Hex\n previousAddress: Address\n previousPublicKey: PublicKey\n previousSignature: Hex\n type: String\n validationStamp: ValidationStamp\n version: Int\n}\n")),(0,r.kt)("h3",{id:"fields"},"Fields"),(0,r.kt)("h4",{id:"code-style-fontweight-normal-transactionbaddressbcodeaddress-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"Transaction.",(0,r.kt)("b",null,"address"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/address"},(0,r.kt)("inlineCode",{parentName:"a"},"Address"))," ",(0,r.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-transactionbbalancebcodebalance-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"Transaction.",(0,r.kt)("b",null,"balance"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/balance"},(0,r.kt)("inlineCode",{parentName:"a"},"Balance"))," ",(0,r.kt)(p,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-transactionbchainlengthbcodeint-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"Transaction.",(0,r.kt)("b",null,"chainLength"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/int"},(0,r.kt)("inlineCode",{parentName:"a"},"Int"))," ",(0,r.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-transactionbcrossvalidationstampsbcodecrossvalidationstamp--"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"Transaction.",(0,r.kt)("b",null,"crossValidationStamps"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/cross-validation-stamp"},(0,r.kt)("inlineCode",{parentName:"a"},"[CrossValidationStamp]"))," ",(0,r.kt)(p,{class:"badge badge--secondary",text:"list",mdxType:"Badge"})," ",(0,r.kt)(p,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-transactionbdatabcodedata-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"Transaction.",(0,r.kt)("b",null,"data"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/data"},(0,r.kt)("inlineCode",{parentName:"a"},"Data"))," ",(0,r.kt)(p,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-transactionbinputsbcodetransactioninput--"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"Transaction.",(0,r.kt)("b",null,"inputs"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/transaction-input"},(0,r.kt)("inlineCode",{parentName:"a"},"[TransactionInput]"))," ",(0,r.kt)(p,{class:"badge badge--secondary",text:"list",mdxType:"Badge"})," ",(0,r.kt)(p,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,r.kt)("blockquote",null,(0,r.kt)("h5",{parentName:"blockquote",id:"code-style-fontweight-normal-transactioninputsblimitbcodeposinteger-"},(0,r.kt)("a",{parentName:"h5",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"Transaction.inputs.",(0,r.kt)("b",null,"limit"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h5",href:"/build/api/schema/scalars/pos-integer"},(0,r.kt)("inlineCode",{parentName:"a"},"PosInteger"))," ",(0,r.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"}))),(0,r.kt)("h5",{id:"code-style-fontweight-normal-transactioninputsbpagingoffsetbcodenonneginteger-"},(0,r.kt)("a",{parentName:"h5",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"Transaction.inputs.",(0,r.kt)("b",null,"pagingOffset"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h5",href:"/build/api/schema/scalars/non-neg-integer"},(0,r.kt)("inlineCode",{parentName:"a"},"NonNegInteger"))," ",(0,r.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-transactionboriginsignaturebcodehex-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"Transaction.",(0,r.kt)("b",null,"originSignature"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/hex"},(0,r.kt)("inlineCode",{parentName:"a"},"Hex"))," ",(0,r.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-transactionbpreviousaddressbcodeaddress-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"Transaction.",(0,r.kt)("b",null,"previousAddress"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/address"},(0,r.kt)("inlineCode",{parentName:"a"},"Address"))," ",(0,r.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-transactionbpreviouspublickeybcodepublickey-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"Transaction.",(0,r.kt)("b",null,"previousPublicKey"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/public-key"},(0,r.kt)("inlineCode",{parentName:"a"},"PublicKey"))," ",(0,r.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-transactionbprevioussignaturebcodehex-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"Transaction.",(0,r.kt)("b",null,"previousSignature"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/hex"},(0,r.kt)("inlineCode",{parentName:"a"},"Hex"))," ",(0,r.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-transactionbtypebcodestring-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"Transaction.",(0,r.kt)("b",null,"type"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/string"},(0,r.kt)("inlineCode",{parentName:"a"},"String"))," ",(0,r.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-transactionbvalidationstampbcodevalidationstamp-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"Transaction.",(0,r.kt)("b",null,"validationStamp"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/validation-stamp"},(0,r.kt)("inlineCode",{parentName:"a"},"ValidationStamp"))," ",(0,r.kt)(p,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-transactionbversionbcodeint-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"Transaction.",(0,r.kt)("b",null,"version"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/int"},(0,r.kt)("inlineCode",{parentName:"a"},"Int"))," ",(0,r.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h3",{id:"returned-by"},"Returned by"),(0,r.kt)("p",null,(0,r.kt)("a",{parentName:"p",href:"/build/api/schema/queries/last-transaction"},(0,r.kt)("inlineCode",{parentName:"a"},"lastTransaction"))," ",(0,r.kt)(p,{class:"badge badge--secondary",text:"query",mdxType:"Badge"}),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"p",href:"/build/api/schema/queries/network-transactions"},(0,r.kt)("inlineCode",{parentName:"a"},"networkTransactions"))," ",(0,r.kt)(p,{class:"badge badge--secondary",text:"query",mdxType:"Badge"}),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"p",href:"/build/api/schema/queries/transaction"},(0,r.kt)("inlineCode",{parentName:"a"},"transaction"))," ",(0,r.kt)(p,{class:"badge badge--secondary",text:"query",mdxType:"Badge"}),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"p",href:"/build/api/schema/queries/transaction-chain"},(0,r.kt)("inlineCode",{parentName:"a"},"transactionChain"))," ",(0,r.kt)(p,{class:"badge badge--secondary",text:"query",mdxType:"Badge"}),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"p",href:"/build/api/schema/queries/transactions"},(0,r.kt)("inlineCode",{parentName:"a"},"transactions"))," ",(0,r.kt)(p,{class:"badge badge--secondary",text:"query",mdxType:"Badge"})))}h.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7482],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>m});var n=a(67294);function o(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e){for(var t=1;t=0||(o[a]=e[a]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(o[a]=e[a])}return o}var d=n.createContext({}),i=function(e){var t=n.useContext(d),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},c=function(e){var t=i(e.components);return n.createElement(d.Provider,{value:t},e.children)},b="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var a=e.components,o=e.mdxType,r=e.originalType,d=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),b=i(a),u=o,m=b["".concat(d,".").concat(u)]||b[u]||p[u]||r;return a?n.createElement(m,l(l({ref:t},c),{},{components:a})):n.createElement(m,l({ref:t},c))}));function m(e,t){var a=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=a.length,l=new Array(r);l[0]=u;var s={};for(var d in t)hasOwnProperty.call(t,d)&&(s[d]=t[d]);s.originalType=e,s[b]="string"==typeof e?e:o,l[1]=s;for(var i=2;i{a.r(t),a.d(t,{Badge:()=>p,Bullet:()=>c,Details:()=>m,SpecifiedBy:()=>b,assets:()=>i,contentTitle:()=>s,default:()=>h,frontMatter:()=>l,metadata:()=>d,toc:()=>u});var n=a(87462),o=a(67294),r=a(3905);a(8209);const l={id:"transaction",title:"Transaction",hide_table_of_contents:!1},s=void 0,d={unversionedId:"build/api/schema/objects/transaction",id:"build/api/schema/objects/transaction",title:"Transaction",description:"[Transaction] represents a unitary transaction in the Archethic network.",source:"@site/docs/build/api/schema/objects/transaction.mdx",sourceDirName:"build/api/schema/objects",slug:"/build/api/schema/objects/transaction",permalink:"/build/api/schema/objects/transaction",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"transaction",title:"Transaction",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"TransactionSummary",permalink:"/build/api/schema/objects/transaction-summary"},next:{title:"UcoData",permalink:"/build/api/schema/objects/uco-data"}},i={},c=()=>(0,r.kt)(o.Fragment,null,(0,r.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),b=e=>(0,r.kt)(o.Fragment,null,"Specification",(0,r.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),p=e=>(0,r.kt)(o.Fragment,null,(0,r.kt)("span",{className:e.class},e.text)),u=[{value:"Fields",id:"fields",level:3},{value:'Transaction.addressAddress ',id:"code-style-fontweight-normal-transactionbaddressbcodeaddress-",level:4},{value:'Transaction.balanceBalance ',id:"code-style-fontweight-normal-transactionbbalancebcodebalance-",level:4},{value:'Transaction.chainLengthInt ',id:"code-style-fontweight-normal-transactionbchainlengthbcodeint-",level:4},{value:'Transaction.crossValidationStamps[CrossValidationStamp] ',id:"code-style-fontweight-normal-transactionbcrossvalidationstampsbcodecrossvalidationstamp--",level:4},{value:'Transaction.dataData ',id:"code-style-fontweight-normal-transactionbdatabcodedata-",level:4},{value:'Transaction.inputs[TransactionInput] ',id:"code-style-fontweight-normal-transactionbinputsbcodetransactioninput--",level:4},{value:'Transaction.inputs.pagingOffsetNonNegInteger ',id:"code-style-fontweight-normal-transactioninputsbpagingoffsetbcodenonneginteger-",level:5},{value:'Transaction.originSignatureHex ',id:"code-style-fontweight-normal-transactionboriginsignaturebcodehex-",level:4},{value:'Transaction.previousAddressAddress ',id:"code-style-fontweight-normal-transactionbpreviousaddressbcodeaddress-",level:4},{value:'Transaction.previousPublicKeyPublicKey ',id:"code-style-fontweight-normal-transactionbpreviouspublickeybcodepublickey-",level:4},{value:'Transaction.previousSignatureHex ',id:"code-style-fontweight-normal-transactionbprevioussignaturebcodehex-",level:4},{value:'Transaction.typeString ',id:"code-style-fontweight-normal-transactionbtypebcodestring-",level:4},{value:'Transaction.validationStampValidationStamp ',id:"code-style-fontweight-normal-transactionbvalidationstampbcodevalidationstamp-",level:4},{value:'Transaction.versionInt ',id:"code-style-fontweight-normal-transactionbversionbcodeint-",level:4},{value:"Returned by",id:"returned-by",level:3}],m=e=>{let{dataOpen:t,dataClose:a,children:l,startOpen:s=!1}=e;const[d,i]=(0,o.useState)(s);return(0,r.kt)("details",(0,n.Z)({},d?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,r.kt)("summary",{onClick:e=>{e.preventDefault(),i((e=>!e))},style:{listStyle:"none"}},d?t:a),d&&l)},g={Bullet:c,SpecifiedBy:b,Badge:p,toc:u,Details:m},y="wrapper";function h(e){let{components:t,...a}=e;return(0,r.kt)(y,(0,n.Z)({},g,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"[Transaction]"," represents a unitary transaction in the Archethic network."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-graphql"},"type Transaction {\n address: Address\n balance: Balance\n chainLength: Int\n crossValidationStamps: [CrossValidationStamp]\n data: Data\n inputs(\n limit: PosInteger\n pagingOffset: NonNegInteger\n ): [TransactionInput]\n originSignature: Hex\n previousAddress: Address\n previousPublicKey: PublicKey\n previousSignature: Hex\n type: String\n validationStamp: ValidationStamp\n version: Int\n}\n")),(0,r.kt)("h3",{id:"fields"},"Fields"),(0,r.kt)("h4",{id:"code-style-fontweight-normal-transactionbaddressbcodeaddress-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"Transaction.",(0,r.kt)("b",null,"address"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/address"},(0,r.kt)("inlineCode",{parentName:"a"},"Address"))," ",(0,r.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-transactionbbalancebcodebalance-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"Transaction.",(0,r.kt)("b",null,"balance"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/balance"},(0,r.kt)("inlineCode",{parentName:"a"},"Balance"))," ",(0,r.kt)(p,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-transactionbchainlengthbcodeint-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"Transaction.",(0,r.kt)("b",null,"chainLength"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/int"},(0,r.kt)("inlineCode",{parentName:"a"},"Int"))," ",(0,r.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-transactionbcrossvalidationstampsbcodecrossvalidationstamp--"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"Transaction.",(0,r.kt)("b",null,"crossValidationStamps"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/cross-validation-stamp"},(0,r.kt)("inlineCode",{parentName:"a"},"[CrossValidationStamp]"))," ",(0,r.kt)(p,{class:"badge badge--secondary",text:"list",mdxType:"Badge"})," ",(0,r.kt)(p,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-transactionbdatabcodedata-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"Transaction.",(0,r.kt)("b",null,"data"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/data"},(0,r.kt)("inlineCode",{parentName:"a"},"Data"))," ",(0,r.kt)(p,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-transactionbinputsbcodetransactioninput--"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"Transaction.",(0,r.kt)("b",null,"inputs"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/transaction-input"},(0,r.kt)("inlineCode",{parentName:"a"},"[TransactionInput]"))," ",(0,r.kt)(p,{class:"badge badge--secondary",text:"list",mdxType:"Badge"})," ",(0,r.kt)(p,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,r.kt)("blockquote",null,(0,r.kt)("h5",{parentName:"blockquote",id:"code-style-fontweight-normal-transactioninputsblimitbcodeposinteger-"},(0,r.kt)("a",{parentName:"h5",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"Transaction.inputs.",(0,r.kt)("b",null,"limit"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h5",href:"/build/api/schema/scalars/pos-integer"},(0,r.kt)("inlineCode",{parentName:"a"},"PosInteger"))," ",(0,r.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"}))),(0,r.kt)("h5",{id:"code-style-fontweight-normal-transactioninputsbpagingoffsetbcodenonneginteger-"},(0,r.kt)("a",{parentName:"h5",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"Transaction.inputs.",(0,r.kt)("b",null,"pagingOffset"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h5",href:"/build/api/schema/scalars/non-neg-integer"},(0,r.kt)("inlineCode",{parentName:"a"},"NonNegInteger"))," ",(0,r.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-transactionboriginsignaturebcodehex-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"Transaction.",(0,r.kt)("b",null,"originSignature"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/hex"},(0,r.kt)("inlineCode",{parentName:"a"},"Hex"))," ",(0,r.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-transactionbpreviousaddressbcodeaddress-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"Transaction.",(0,r.kt)("b",null,"previousAddress"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/address"},(0,r.kt)("inlineCode",{parentName:"a"},"Address"))," ",(0,r.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-transactionbpreviouspublickeybcodepublickey-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"Transaction.",(0,r.kt)("b",null,"previousPublicKey"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/public-key"},(0,r.kt)("inlineCode",{parentName:"a"},"PublicKey"))," ",(0,r.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-transactionbprevioussignaturebcodehex-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"Transaction.",(0,r.kt)("b",null,"previousSignature"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/hex"},(0,r.kt)("inlineCode",{parentName:"a"},"Hex"))," ",(0,r.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-transactionbtypebcodestring-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"Transaction.",(0,r.kt)("b",null,"type"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/string"},(0,r.kt)("inlineCode",{parentName:"a"},"String"))," ",(0,r.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-transactionbvalidationstampbcodevalidationstamp-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"Transaction.",(0,r.kt)("b",null,"validationStamp"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/validation-stamp"},(0,r.kt)("inlineCode",{parentName:"a"},"ValidationStamp"))," ",(0,r.kt)(p,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-transactionbversionbcodeint-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"Transaction.",(0,r.kt)("b",null,"version"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/int"},(0,r.kt)("inlineCode",{parentName:"a"},"Int"))," ",(0,r.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h3",{id:"returned-by"},"Returned by"),(0,r.kt)("p",null,(0,r.kt)("a",{parentName:"p",href:"/build/api/schema/queries/last-transaction"},(0,r.kt)("inlineCode",{parentName:"a"},"lastTransaction"))," ",(0,r.kt)(p,{class:"badge badge--secondary",text:"query",mdxType:"Badge"}),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"p",href:"/build/api/schema/queries/network-transactions"},(0,r.kt)("inlineCode",{parentName:"a"},"networkTransactions"))," ",(0,r.kt)(p,{class:"badge badge--secondary",text:"query",mdxType:"Badge"}),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"p",href:"/build/api/schema/queries/transaction"},(0,r.kt)("inlineCode",{parentName:"a"},"transaction"))," ",(0,r.kt)(p,{class:"badge badge--secondary",text:"query",mdxType:"Badge"}),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"p",href:"/build/api/schema/queries/transaction-chain"},(0,r.kt)("inlineCode",{parentName:"a"},"transactionChain"))," ",(0,r.kt)(p,{class:"badge badge--secondary",text:"query",mdxType:"Badge"}),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"p",href:"/build/api/schema/queries/transactions"},(0,r.kt)("inlineCode",{parentName:"a"},"transactions"))," ",(0,r.kt)(p,{class:"badge badge--secondary",text:"query",mdxType:"Badge"})))}h.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file diff --git a/assets/js/3c967327.ce73bf04.js b/assets/js/3c967327.791d0126.js similarity index 99% rename from assets/js/3c967327.ce73bf04.js rename to assets/js/3c967327.791d0126.js index d1def56c4..c5950f0da 100644 --- a/assets/js/3c967327.ce73bf04.js +++ b/assets/js/3c967327.791d0126.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4856],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),u=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=u(e.components);return r.createElement(s.Provider,{value:t},e.children)},d="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),d=u(n),m=a,h=d["".concat(s,".").concat(m)]||d[m]||c[m]||i;return n?r.createElement(h,o(o({ref:t},p),{},{components:n})):r.createElement(h,o({ref:t},p))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[d]="string"==typeof e?e:a,o[1]=l;for(var u=2;u{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>c,frontMatter:()=>i,metadata:()=>l,toc:()=>u});var r=n(87462),a=(n(67294),n(3905));n(8209);const i={id:"http",title:"Http module",sidebar_label:"Http"},o=void 0,l={unversionedId:"build/smart-contracts/language/library/http",id:"build/smart-contracts/language/library/http",title:"Http module",description:"The Http module contains functions to request data from outside the blockchain via HTTP.",source:"@site/docs/build/smart-contracts/language/library/http.md",sourceDirName:"build/smart-contracts/language/library",slug:"/build/smart-contracts/language/library/http",permalink:"/build/smart-contracts/language/library/http",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"http",title:"Http module",sidebar_label:"Http"},sidebar:"docs",previous:{title:"Evm",permalink:"/build/smart-contracts/language/library/evm"},next:{title:"Json",permalink:"/build/smart-contracts/language/library/json"}},s={},u=[{value:"request/1 [I/O]",id:"request1-io",level:3},{value:"request/2 [I/O]",id:"request2-io",level:3},{value:"request/3 [I/O]",id:"request3-io",level:3},{value:"request/4 [I/O]",id:"request4-io",level:3},{value:"request_many/1 [I/O]",id:"request_many1-io",level:3}],p={toc:u},d="wrapper";function c(e){let{components:t,...n}=e;return(0,a.kt)(d,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The ",(0,a.kt)("inlineCode",{parentName:"p"},"Http")," module contains functions to request data from outside the blockchain via HTTP."),(0,a.kt)("h3",{id:"request1-io"},"request/1 ",(0,a.kt)("inlineCode",{parentName:"h3"},"[I/O]")),(0,a.kt)("p",null,"Similar to ",(0,a.kt)("a",{parentName:"p",href:"#request2-io"},"request/2")," with ",(0,a.kt)("inlineCode",{parentName:"p"},'method: "GET"'),"."),(0,a.kt)("h3",{id:"request2-io"},"request/2 ",(0,a.kt)("inlineCode",{parentName:"h3"},"[I/O]")),(0,a.kt)("p",null,"Similar to ",(0,a.kt)("a",{parentName:"p",href:"#request3-io"},"request/3")," with ",(0,a.kt)("inlineCode",{parentName:"p"},"headers: Map.new()"),"."),(0,a.kt)("h3",{id:"request3-io"},"request/3 ",(0,a.kt)("inlineCode",{parentName:"h3"},"[I/O]")),(0,a.kt)("p",null,"Similar to ",(0,a.kt)("a",{parentName:"p",href:"#request4-io"},"request/4")," with ",(0,a.kt)("inlineCode",{parentName:"p"},"body: nil"),"."),(0,a.kt)("h3",{id:"request4-io"},"request/4 ",(0,a.kt)("inlineCode",{parentName:"h3"},"[I/O]")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},'response = Http.request("https://fakerapi.it/api/v1/addresses?_quantity=1&_seed=watermelon", "GET", Map.new(), nil) # [status: 200, body: "..."]\nif response.status == 200 do\n # do something with response.body\nend\n')),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"url")," the url to fetch"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"method")," the HTTP method (",(0,a.kt)("inlineCode",{parentName:"li"},'"GET"'),", ",(0,a.kt)("inlineCode",{parentName:"li"},'"POST"'),", ",(0,a.kt)("inlineCode",{parentName:"li"},'"PUT"'),", ",(0,a.kt)("inlineCode",{parentName:"li"},'"DELETE"')," or ",(0,a.kt)("inlineCode",{parentName:"li"},'"PATCH"'),")"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"headers")," the HTTP headers"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"body")," the HTTP body")),(0,a.kt)("p",null,"Performs a HTTP request and returns a map with ",(0,a.kt)("inlineCode",{parentName:"p"},"status")," (integer) and ",(0,a.kt)("inlineCode",{parentName:"p"},"body")," (string)."),(0,a.kt)("p",null,"This status integer can be any ",(0,a.kt)("a",{parentName:"p",href:"https://developer.mozilla.org/en-US/docs/Web/HTTP/Status"},"HTTP status code"),"."),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"The URL must use HTTPS protocol."),(0,a.kt)("li",{parentName:"ul"},"The response body's size must be less than 256KB."),(0,a.kt)("li",{parentName:"ul"},"The response must be received in less than 2 seconds."),(0,a.kt)("li",{parentName:"ul"},"The response must be idempotent (= identical every time it is called)"),(0,a.kt)("li",{parentName:"ul"},"Only 1 call of either ",(0,a.kt)("inlineCode",{parentName:"li"},"request/1,2,3,4")," or ",(0,a.kt)("inlineCode",{parentName:"li"},"request_many/1")," is allowed per execution.")),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"The function raises if these requirements are not meet.")),(0,a.kt)("admonition",{title:"Disclaimer",type:"danger"},(0,a.kt)("p",{parentName:"admonition"},"We discourage to call services that change their internal state directly (such as writing to a database or notifying a user). Because Archethic ",(0,a.kt)("strong",{parentName:"p"},"relies on atomic commitment of all storage nodes"),", it may happen that atomic commitment is not reached and the transaction resulting of a Smart Contract is not validated."),(0,a.kt)("p",{parentName:"admonition"},"Instead, you should notify the service of the transaction being validated. The service subscribes to that transaction via the GraphQL API, and once it receives a confirmation, it should act accordingly.")),(0,a.kt)("h3",{id:"request_many1-io"},"request_many/1 ",(0,a.kt)("inlineCode",{parentName:"h3"},"[I/O]")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},'responses = Http.request_many([\n [url: "https://fakerapi.it/api/v1/users?_quantity=1&_gender=male&_seed=cucumber"],\n [url: "https://fakerapi.it/api/v1/users?_quantity=1&_gender=female&_seed=tomato", method: "GET", headers: Map.new(), body: nil]\n])\nfor r in responses do\n if r.status == 200 do\n # do something with r.body\n end\nend\n')),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"request")," a list of requests to perform")),(0,a.kt)("p",null,"Performs a HTTP request and returns a map with ",(0,a.kt)("inlineCode",{parentName:"p"},"status")," (integer) and ",(0,a.kt)("inlineCode",{parentName:"p"},"body")," (string). Order and length is preserved."),(0,a.kt)("p",null,"See ",(0,a.kt)("a",{parentName:"p",href:"#request4-io"},"request/4")," for rules and more details."))}c.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4856],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),u=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=u(e.components);return r.createElement(s.Provider,{value:t},e.children)},d="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),d=u(n),m=a,h=d["".concat(s,".").concat(m)]||d[m]||c[m]||i;return n?r.createElement(h,o(o({ref:t},p),{},{components:n})):r.createElement(h,o({ref:t},p))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[d]="string"==typeof e?e:a,o[1]=l;for(var u=2;u{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>c,frontMatter:()=>i,metadata:()=>l,toc:()=>u});var r=n(87462),a=(n(67294),n(3905));n(8209);const i={id:"http",title:"Http module",sidebar_label:"Http"},o=void 0,l={unversionedId:"build/smart-contracts/language/library/http",id:"build/smart-contracts/language/library/http",title:"Http module",description:"The Http module contains functions to request data from outside the blockchain via HTTP.",source:"@site/docs/build/smart-contracts/language/library/http.md",sourceDirName:"build/smart-contracts/language/library",slug:"/build/smart-contracts/language/library/http",permalink:"/build/smart-contracts/language/library/http",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"http",title:"Http module",sidebar_label:"Http"},sidebar:"docs",previous:{title:"Evm",permalink:"/build/smart-contracts/language/library/evm"},next:{title:"Json",permalink:"/build/smart-contracts/language/library/json"}},s={},u=[{value:"request/1 [I/O]",id:"request1-io",level:3},{value:"request/2 [I/O]",id:"request2-io",level:3},{value:"request/3 [I/O]",id:"request3-io",level:3},{value:"request/4 [I/O]",id:"request4-io",level:3},{value:"request_many/1 [I/O]",id:"request_many1-io",level:3}],p={toc:u},d="wrapper";function c(e){let{components:t,...n}=e;return(0,a.kt)(d,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The ",(0,a.kt)("inlineCode",{parentName:"p"},"Http")," module contains functions to request data from outside the blockchain via HTTP."),(0,a.kt)("h3",{id:"request1-io"},"request/1 ",(0,a.kt)("inlineCode",{parentName:"h3"},"[I/O]")),(0,a.kt)("p",null,"Similar to ",(0,a.kt)("a",{parentName:"p",href:"#request2-io"},"request/2")," with ",(0,a.kt)("inlineCode",{parentName:"p"},'method: "GET"'),"."),(0,a.kt)("h3",{id:"request2-io"},"request/2 ",(0,a.kt)("inlineCode",{parentName:"h3"},"[I/O]")),(0,a.kt)("p",null,"Similar to ",(0,a.kt)("a",{parentName:"p",href:"#request3-io"},"request/3")," with ",(0,a.kt)("inlineCode",{parentName:"p"},"headers: Map.new()"),"."),(0,a.kt)("h3",{id:"request3-io"},"request/3 ",(0,a.kt)("inlineCode",{parentName:"h3"},"[I/O]")),(0,a.kt)("p",null,"Similar to ",(0,a.kt)("a",{parentName:"p",href:"#request4-io"},"request/4")," with ",(0,a.kt)("inlineCode",{parentName:"p"},"body: nil"),"."),(0,a.kt)("h3",{id:"request4-io"},"request/4 ",(0,a.kt)("inlineCode",{parentName:"h3"},"[I/O]")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},'response = Http.request("https://fakerapi.it/api/v1/addresses?_quantity=1&_seed=watermelon", "GET", Map.new(), nil) # [status: 200, body: "..."]\nif response.status == 200 do\n # do something with response.body\nend\n')),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"url")," the url to fetch"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"method")," the HTTP method (",(0,a.kt)("inlineCode",{parentName:"li"},'"GET"'),", ",(0,a.kt)("inlineCode",{parentName:"li"},'"POST"'),", ",(0,a.kt)("inlineCode",{parentName:"li"},'"PUT"'),", ",(0,a.kt)("inlineCode",{parentName:"li"},'"DELETE"')," or ",(0,a.kt)("inlineCode",{parentName:"li"},'"PATCH"'),")"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"headers")," the HTTP headers"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"body")," the HTTP body")),(0,a.kt)("p",null,"Performs a HTTP request and returns a map with ",(0,a.kt)("inlineCode",{parentName:"p"},"status")," (integer) and ",(0,a.kt)("inlineCode",{parentName:"p"},"body")," (string)."),(0,a.kt)("p",null,"This status integer can be any ",(0,a.kt)("a",{parentName:"p",href:"https://developer.mozilla.org/en-US/docs/Web/HTTP/Status"},"HTTP status code"),"."),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"The URL must use HTTPS protocol."),(0,a.kt)("li",{parentName:"ul"},"The response body's size must be less than 256KB."),(0,a.kt)("li",{parentName:"ul"},"The response must be received in less than 2 seconds."),(0,a.kt)("li",{parentName:"ul"},"The response must be idempotent (= identical every time it is called)"),(0,a.kt)("li",{parentName:"ul"},"Only 1 call of either ",(0,a.kt)("inlineCode",{parentName:"li"},"request/1,2,3,4")," or ",(0,a.kt)("inlineCode",{parentName:"li"},"request_many/1")," is allowed per execution.")),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"The function raises if these requirements are not meet.")),(0,a.kt)("admonition",{title:"Disclaimer",type:"danger"},(0,a.kt)("p",{parentName:"admonition"},"We discourage to call services that change their internal state directly (such as writing to a database or notifying a user). Because Archethic ",(0,a.kt)("strong",{parentName:"p"},"relies on atomic commitment of all storage nodes"),", it may happen that atomic commitment is not reached and the transaction resulting of a Smart Contract is not validated."),(0,a.kt)("p",{parentName:"admonition"},"Instead, you should notify the service of the transaction being validated. The service subscribes to that transaction via the GraphQL API, and once it receives a confirmation, it should act accordingly.")),(0,a.kt)("h3",{id:"request_many1-io"},"request_many/1 ",(0,a.kt)("inlineCode",{parentName:"h3"},"[I/O]")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},'responses = Http.request_many([\n [url: "https://fakerapi.it/api/v1/users?_quantity=1&_gender=male&_seed=cucumber"],\n [url: "https://fakerapi.it/api/v1/users?_quantity=1&_gender=female&_seed=tomato", method: "GET", headers: Map.new(), body: nil]\n])\nfor r in responses do\n if r.status == 200 do\n # do something with r.body\n end\nend\n')),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"request")," a list of requests to perform")),(0,a.kt)("p",null,"Performs a HTTP request and returns a map with ",(0,a.kt)("inlineCode",{parentName:"p"},"status")," (integer) and ",(0,a.kt)("inlineCode",{parentName:"p"},"body")," (string). Order and length is preserved."),(0,a.kt)("p",null,"See ",(0,a.kt)("a",{parentName:"p",href:"#request4-io"},"request/4")," for rules and more details."))}c.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/3d4047db.758a4c19.js b/assets/js/3d4047db.d47dcd1b.js similarity index 99% rename from assets/js/3d4047db.758a4c19.js rename to assets/js/3d4047db.d47dcd1b.js index 34657105a..0a8fb0d6d 100644 --- a/assets/js/3d4047db.758a4c19.js +++ b/assets/js/3d4047db.d47dcd1b.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1946],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>m});var a=n(67294);function s(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t=0||(s[n]=e[n]);return s}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}var i=a.createContext({}),u=function(e){var t=a.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=u(e.components);return a.createElement(i.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var n=e.components,s=e.mdxType,r=e.originalType,i=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),d=u(n),h=s,m=d["".concat(i,".").concat(h)]||d[h]||p[h]||r;return n?a.createElement(m,o(o({ref:t},c),{},{components:n})):a.createElement(m,o({ref:t},c))}));function m(e,t){var n=arguments,s=t&&t.mdxType;if("string"==typeof e||s){var r=n.length,o=new Array(r);o[0]=h;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l[d]="string"==typeof e?e:s,o[1]=l;for(var u=2;u{n.r(t),n.d(t,{Badge:()=>p,Bullet:()=>c,Details:()=>m,SpecifiedBy:()=>d,assets:()=>u,contentTitle:()=>l,default:()=>g,frontMatter:()=>o,metadata:()=>i,toc:()=>h});var a=n(87462),s=n(67294),r=n(3905);n(8209);const o={id:"chain-unspent-outputs",title:"chainUnspentOutputs",hide_table_of_contents:!1},l=void 0,i={unversionedId:"build/api/schema/queries/chain-unspent-outputs",id:"build/api/schema/queries/chain-unspent-outputs",title:"chainUnspentOutputs",description:"Query the network to retrieve the unspent output of a chain",source:"@site/docs/build/api/schema/queries/chain-unspent-outputs.mdx",sourceDirName:"build/api/schema/queries",slug:"/build/api/schema/queries/chain-unspent-outputs",permalink:"/build/api/schema/queries/chain-unspent-outputs",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"chain-unspent-outputs",title:"chainUnspentOutputs",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"beaconChainSummary",permalink:"/build/api/schema/queries/beacon-chain-summary"},next:{title:"genesisAddress",permalink:"/build/api/schema/queries/genesis-address"}},u={},c=()=>(0,r.kt)(s.Fragment,null,(0,r.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),d=e=>(0,r.kt)(s.Fragment,null,"Specification",(0,r.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),p=e=>(0,r.kt)(s.Fragment,null,(0,r.kt)("span",{className:e.class},e.text)),h=[{value:"Arguments",id:"arguments",level:3},{value:'chainUnspentOutputs.addressAddress! ',id:"code-style-fontweight-normal-chainunspentoutputsbaddressbcodeaddress--",level:4},{value:'chainUnspentOutputs.limitPosInteger ',id:"code-style-fontweight-normal-chainunspentoutputsblimitbcodeposinteger-",level:4},{value:'chainUnspentOutputs.pagingOffsetSha256Hash ',id:"code-style-fontweight-normal-chainunspentoutputsbpagingoffsetbcodesha256hash-",level:4},{value:"Type",id:"type",level:3},{value:'UnspentOutput ',id:"unspentoutput-",level:4}],m=e=>{let{dataOpen:t,dataClose:n,children:o,startOpen:l=!1}=e;const[i,u]=(0,s.useState)(l);return(0,r.kt)("details",(0,a.Z)({},i?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,r.kt)("summary",{onClick:e=>{e.preventDefault(),u((e=>!e))},style:{listStyle:"none"}},i?t:n),i&&o)},b={Bullet:c,SpecifiedBy:d,Badge:p,toc:h,Details:m},f="wrapper";function g(e){let{components:t,...n}=e;return(0,r.kt)(f,(0,a.Z)({},b,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"Query the network to retrieve the unspent output of a chain\n(address should be the genesis address of the chain)"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-graphql"},"chainUnspentOutputs(\n address: Address!\n limit: PosInteger\n pagingOffset: Sha256Hash\n): [UnspentOutput]\n")),(0,r.kt)("h3",{id:"arguments"},"Arguments"),(0,r.kt)("h4",{id:"code-style-fontweight-normal-chainunspentoutputsbaddressbcodeaddress--"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"chainUnspentOutputs.",(0,r.kt)("b",null,"address"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/address"},(0,r.kt)("inlineCode",{parentName:"a"},"Address!"))," ",(0,r.kt)(p,{class:"badge badge--secondary",text:"non-null",mdxType:"Badge"})," ",(0,r.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-chainunspentoutputsblimitbcodeposinteger-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"chainUnspentOutputs.",(0,r.kt)("b",null,"limit"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/pos-integer"},(0,r.kt)("inlineCode",{parentName:"a"},"PosInteger"))," ",(0,r.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-chainunspentoutputsbpagingoffsetbcodesha256hash-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"chainUnspentOutputs.",(0,r.kt)("b",null,"pagingOffset"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/sha-256-hash"},(0,r.kt)("inlineCode",{parentName:"a"},"Sha256Hash"))," ",(0,r.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h3",{id:"type"},"Type"),(0,r.kt)("h4",{id:"unspentoutput-"},(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/unspent-output"},(0,r.kt)("inlineCode",{parentName:"a"},"UnspentOutput"))," ",(0,r.kt)(p,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},"[UnspentOutput]"," represents the remaining unspent output of the transaction.\nIt includes:"),(0,r.kt)("ul",{parentName:"blockquote"},(0,r.kt)("li",{parentName:"ul"},"From: transaction which send the amount of assets"),(0,r.kt)("li",{parentName:"ul"},"Amount: asset amount"),(0,r.kt)("li",{parentName:"ul"},"Type: UCO / token / state"),(0,r.kt)("li",{parentName:"ul"},"token address: address of the token if the type is token"),(0,r.kt)("li",{parentName:"ul"},"token id: It is the id for a token which is allocated when the token is minted."),(0,r.kt)("li",{parentName:"ul"},"Timestamp: Date time when the UTXO created/manipulated"),(0,r.kt)("li",{parentName:"ul"},"State: It is the state of a smart contract"))))}g.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1946],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>m});var a=n(67294);function s(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t=0||(s[n]=e[n]);return s}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}var i=a.createContext({}),u=function(e){var t=a.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=u(e.components);return a.createElement(i.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var n=e.components,s=e.mdxType,r=e.originalType,i=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),d=u(n),h=s,m=d["".concat(i,".").concat(h)]||d[h]||p[h]||r;return n?a.createElement(m,o(o({ref:t},c),{},{components:n})):a.createElement(m,o({ref:t},c))}));function m(e,t){var n=arguments,s=t&&t.mdxType;if("string"==typeof e||s){var r=n.length,o=new Array(r);o[0]=h;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l[d]="string"==typeof e?e:s,o[1]=l;for(var u=2;u{n.r(t),n.d(t,{Badge:()=>p,Bullet:()=>c,Details:()=>m,SpecifiedBy:()=>d,assets:()=>u,contentTitle:()=>l,default:()=>g,frontMatter:()=>o,metadata:()=>i,toc:()=>h});var a=n(87462),s=n(67294),r=n(3905);n(8209);const o={id:"chain-unspent-outputs",title:"chainUnspentOutputs",hide_table_of_contents:!1},l=void 0,i={unversionedId:"build/api/schema/queries/chain-unspent-outputs",id:"build/api/schema/queries/chain-unspent-outputs",title:"chainUnspentOutputs",description:"Query the network to retrieve the unspent output of a chain",source:"@site/docs/build/api/schema/queries/chain-unspent-outputs.mdx",sourceDirName:"build/api/schema/queries",slug:"/build/api/schema/queries/chain-unspent-outputs",permalink:"/build/api/schema/queries/chain-unspent-outputs",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"chain-unspent-outputs",title:"chainUnspentOutputs",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"beaconChainSummary",permalink:"/build/api/schema/queries/beacon-chain-summary"},next:{title:"genesisAddress",permalink:"/build/api/schema/queries/genesis-address"}},u={},c=()=>(0,r.kt)(s.Fragment,null,(0,r.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),d=e=>(0,r.kt)(s.Fragment,null,"Specification",(0,r.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),p=e=>(0,r.kt)(s.Fragment,null,(0,r.kt)("span",{className:e.class},e.text)),h=[{value:"Arguments",id:"arguments",level:3},{value:'chainUnspentOutputs.addressAddress! ',id:"code-style-fontweight-normal-chainunspentoutputsbaddressbcodeaddress--",level:4},{value:'chainUnspentOutputs.limitPosInteger ',id:"code-style-fontweight-normal-chainunspentoutputsblimitbcodeposinteger-",level:4},{value:'chainUnspentOutputs.pagingOffsetSha256Hash ',id:"code-style-fontweight-normal-chainunspentoutputsbpagingoffsetbcodesha256hash-",level:4},{value:"Type",id:"type",level:3},{value:'UnspentOutput ',id:"unspentoutput-",level:4}],m=e=>{let{dataOpen:t,dataClose:n,children:o,startOpen:l=!1}=e;const[i,u]=(0,s.useState)(l);return(0,r.kt)("details",(0,a.Z)({},i?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,r.kt)("summary",{onClick:e=>{e.preventDefault(),u((e=>!e))},style:{listStyle:"none"}},i?t:n),i&&o)},b={Bullet:c,SpecifiedBy:d,Badge:p,toc:h,Details:m},f="wrapper";function g(e){let{components:t,...n}=e;return(0,r.kt)(f,(0,a.Z)({},b,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"Query the network to retrieve the unspent output of a chain\n(address should be the genesis address of the chain)"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-graphql"},"chainUnspentOutputs(\n address: Address!\n limit: PosInteger\n pagingOffset: Sha256Hash\n): [UnspentOutput]\n")),(0,r.kt)("h3",{id:"arguments"},"Arguments"),(0,r.kt)("h4",{id:"code-style-fontweight-normal-chainunspentoutputsbaddressbcodeaddress--"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"chainUnspentOutputs.",(0,r.kt)("b",null,"address"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/address"},(0,r.kt)("inlineCode",{parentName:"a"},"Address!"))," ",(0,r.kt)(p,{class:"badge badge--secondary",text:"non-null",mdxType:"Badge"})," ",(0,r.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-chainunspentoutputsblimitbcodeposinteger-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"chainUnspentOutputs.",(0,r.kt)("b",null,"limit"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/pos-integer"},(0,r.kt)("inlineCode",{parentName:"a"},"PosInteger"))," ",(0,r.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-chainunspentoutputsbpagingoffsetbcodesha256hash-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"chainUnspentOutputs.",(0,r.kt)("b",null,"pagingOffset"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/sha-256-hash"},(0,r.kt)("inlineCode",{parentName:"a"},"Sha256Hash"))," ",(0,r.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h3",{id:"type"},"Type"),(0,r.kt)("h4",{id:"unspentoutput-"},(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/unspent-output"},(0,r.kt)("inlineCode",{parentName:"a"},"UnspentOutput"))," ",(0,r.kt)(p,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},"[UnspentOutput]"," represents the remaining unspent output of the transaction.\nIt includes:"),(0,r.kt)("ul",{parentName:"blockquote"},(0,r.kt)("li",{parentName:"ul"},"From: transaction which send the amount of assets"),(0,r.kt)("li",{parentName:"ul"},"Amount: asset amount"),(0,r.kt)("li",{parentName:"ul"},"Type: UCO / token / state"),(0,r.kt)("li",{parentName:"ul"},"token address: address of the token if the type is token"),(0,r.kt)("li",{parentName:"ul"},"token id: It is the id for a token which is allocated when the token is minted."),(0,r.kt)("li",{parentName:"ul"},"Timestamp: Date time when the UTXO created/manipulated"),(0,r.kt)("li",{parentName:"ul"},"State: It is the state of a smart contract"))))}g.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/3f3bfce2.95641d89.js b/assets/js/3f3bfce2.ae00b356.js similarity index 98% rename from assets/js/3f3bfce2.95641d89.js rename to assets/js/3f3bfce2.ae00b356.js index f1134b373..ed0e220bc 100644 --- a/assets/js/3f3bfce2.95641d89.js +++ b/assets/js/3f3bfce2.ae00b356.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[228],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function s(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var l=r.createContext({}),c=function(e){var t=r.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):s(s({},t),e)),a},p=function(e){var t=c(e.components);return r.createElement(l.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,l=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),d=c(a),h=n,m=d["".concat(l,".").concat(h)]||d[h]||u[h]||i;return a?r.createElement(m,s(s({ref:t},p),{},{components:a})):r.createElement(m,s({ref:t},p))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,s=new Array(i);s[0]=h;var o={};for(var l in t)hasOwnProperty.call(t,l)&&(o[l]=t[l]);o.originalType=e,o[d]="string"==typeof e?e:n,s[1]=o;for(var c=2;c{a.r(t),a.d(t,{Badge:()=>u,Bullet:()=>p,Details:()=>m,SpecifiedBy:()=>d,assets:()=>c,contentTitle:()=>o,default:()=>y,frontMatter:()=>s,metadata:()=>l,toc:()=>h});var r=a(87462),n=a(67294),i=a(3905);a(8209);const s={id:"versioned-hash",title:"VersionedHash",hide_table_of_contents:!1},o=void 0,l={unversionedId:"build/api/schema/scalars/versioned-hash",id:"build/api/schema/scalars/versioned-hash",title:"VersionedHash",description:"The [Hash] scalar type represents a cryptographic hash used in",source:"@site/docs/build/api/schema/scalars/versioned-hash.mdx",sourceDirName:"build/api/schema/scalars",slug:"/build/api/schema/scalars/versioned-hash",permalink:"/build/api/schema/scalars/versioned-hash",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"versioned-hash",title:"VersionedHash",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"TransactionType",permalink:"/build/api/schema/scalars/transaction-type"},next:{title:"oracleUpdate",permalink:"/build/api/schema/subscriptions/oracle-update"}},c={},p=()=>(0,i.kt)(n.Fragment,null,(0,i.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),d=e=>(0,i.kt)(n.Fragment,null,"Specification",(0,i.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,i.kt)(n.Fragment,null,(0,i.kt)("span",{className:e.class},e.text)),h=[{value:"Member of",id:"member-of",level:3}],m=e=>{let{dataOpen:t,dataClose:a,children:s,startOpen:o=!1}=e;const[l,c]=(0,n.useState)(o);return(0,i.kt)("details",(0,r.Z)({},l?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,i.kt)("summary",{onClick:e=>{e.preventDefault(),c((e=>!e))},style:{listStyle:"none"}},l?t:a),l&&s)},f={Bullet:p,SpecifiedBy:d,Badge:u,toc:h,Details:m},b="wrapper";function y(e){let{components:t,...a}=e;return(0,i.kt)(b,(0,r.Z)({},f,a,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"The ","[Hash]"," scalar type represents a cryptographic hash used in\nthe Archethic network with an identification byte to specify from which algorithm the hash was generated.\nThe Hash appears in a JSON response as Base16 formatted string. The parsed hash will\nbe converted to a binary and any invalid hash with an invalid algorithm or invalid size will be rejected"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-graphql"},"scalar VersionedHash\n")),(0,i.kt)("h3",{id:"member-of"},"Member of"),(0,i.kt)("p",null,(0,i.kt)("a",{parentName:"p",href:"/build/api/schema/objects/validation-stamp"},(0,i.kt)("inlineCode",{parentName:"a"},"ValidationStamp"))," ",(0,i.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}y.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[228],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function s(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var l=r.createContext({}),c=function(e){var t=r.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):s(s({},t),e)),a},p=function(e){var t=c(e.components);return r.createElement(l.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,l=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),d=c(a),h=n,m=d["".concat(l,".").concat(h)]||d[h]||u[h]||i;return a?r.createElement(m,s(s({ref:t},p),{},{components:a})):r.createElement(m,s({ref:t},p))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,s=new Array(i);s[0]=h;var o={};for(var l in t)hasOwnProperty.call(t,l)&&(o[l]=t[l]);o.originalType=e,o[d]="string"==typeof e?e:n,s[1]=o;for(var c=2;c{a.r(t),a.d(t,{Badge:()=>u,Bullet:()=>p,Details:()=>m,SpecifiedBy:()=>d,assets:()=>c,contentTitle:()=>o,default:()=>y,frontMatter:()=>s,metadata:()=>l,toc:()=>h});var r=a(87462),n=a(67294),i=a(3905);a(8209);const s={id:"versioned-hash",title:"VersionedHash",hide_table_of_contents:!1},o=void 0,l={unversionedId:"build/api/schema/scalars/versioned-hash",id:"build/api/schema/scalars/versioned-hash",title:"VersionedHash",description:"The [Hash] scalar type represents a cryptographic hash used in",source:"@site/docs/build/api/schema/scalars/versioned-hash.mdx",sourceDirName:"build/api/schema/scalars",slug:"/build/api/schema/scalars/versioned-hash",permalink:"/build/api/schema/scalars/versioned-hash",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"versioned-hash",title:"VersionedHash",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"TransactionType",permalink:"/build/api/schema/scalars/transaction-type"},next:{title:"oracleUpdate",permalink:"/build/api/schema/subscriptions/oracle-update"}},c={},p=()=>(0,i.kt)(n.Fragment,null,(0,i.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),d=e=>(0,i.kt)(n.Fragment,null,"Specification",(0,i.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,i.kt)(n.Fragment,null,(0,i.kt)("span",{className:e.class},e.text)),h=[{value:"Member of",id:"member-of",level:3}],m=e=>{let{dataOpen:t,dataClose:a,children:s,startOpen:o=!1}=e;const[l,c]=(0,n.useState)(o);return(0,i.kt)("details",(0,r.Z)({},l?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,i.kt)("summary",{onClick:e=>{e.preventDefault(),c((e=>!e))},style:{listStyle:"none"}},l?t:a),l&&s)},f={Bullet:p,SpecifiedBy:d,Badge:u,toc:h,Details:m},b="wrapper";function y(e){let{components:t,...a}=e;return(0,i.kt)(b,(0,r.Z)({},f,a,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"The ","[Hash]"," scalar type represents a cryptographic hash used in\nthe Archethic network with an identification byte to specify from which algorithm the hash was generated.\nThe Hash appears in a JSON response as Base16 formatted string. The parsed hash will\nbe converted to a binary and any invalid hash with an invalid algorithm or invalid size will be rejected"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-graphql"},"scalar VersionedHash\n")),(0,i.kt)("h3",{id:"member-of"},"Member of"),(0,i.kt)("p",null,(0,i.kt)("a",{parentName:"p",href:"/build/api/schema/objects/validation-stamp"},(0,i.kt)("inlineCode",{parentName:"a"},"ValidationStamp"))," ",(0,i.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}y.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file diff --git a/assets/js/410469d2.b1c1adc3.js b/assets/js/410469d2.6ce7ae85.js similarity index 97% rename from assets/js/410469d2.b1c1adc3.js rename to assets/js/410469d2.6ce7ae85.js index 972e2f854..88dc400ea 100644 --- a/assets/js/410469d2.b1c1adc3.js +++ b/assets/js/410469d2.6ce7ae85.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6328],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>f});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var c=r.createContext({}),s=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=s(e.components);return r.createElement(c.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,c=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=s(n),m=a,f=u["".concat(c,".").concat(m)]||u[m]||d[m]||i;return n?r.createElement(f,o(o({ref:t},p),{},{components:n})):r.createElement(f,o({ref:t},p))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=m;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[u]="string"==typeof e?e:a,o[1]=l;for(var s=2;s{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>l,toc:()=>s});var r=n(87462),a=(n(67294),n(3905));n(8209);const i={id:"p2p-sampling",title:"P2P availability sampling"},o=void 0,l={unversionedId:"build/core/beacon-chain/p2p-sampling",id:"build/core/beacon-chain/p2p-sampling",title:"P2P availability sampling",description:"Each beacon chain's subset is responsible to perform verification of the nodes is in charge to monitor.",source:"@site/docs/build/core/beacon-chain/p2p-sampling.md",sourceDirName:"build/core/beacon-chain",slug:"/build/core/beacon-chain/p2p-sampling",permalink:"/build/core/beacon-chain/p2p-sampling",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"p2p-sampling",title:"P2P availability sampling"},sidebar:"docs",previous:{title:"BeaconChain",permalink:"/build/core/beacon-chain/"},next:{title:"Bootstrap",permalink:"/build/core/bootstrap"}},c={},s=[{value:"Heartbeat",id:"heartbeat",level:2},{value:"Aggregation",id:"aggregation",level:2}],p={toc:s},u="wrapper";function d(e){let{components:t,...n}=e;return(0,a.kt)(u,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"Each beacon chain's subset is responsible to perform verification of the nodes is in charge to monitor."),(0,a.kt)("h2",{id:"heartbeat"},"Heartbeat"),(0,a.kt)("p",null,"So periodically (when a transaction is confirmed or before a slot creation), the nodes of a given subset perform P2P availability sampling of the given peers. "),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"If multiple transactions arrive to a given subset quickly, a timespan of 3s from the previous sampling is used, to determine if we need to sample availability again ")),(0,a.kt)("mermaid",{value:"sequenceDiagram\n Subset node->>+Supervised node: Ping\n Supervised node->>+Subset node: Ok"}),(0,a.kt)("p",null,"A timeout of 1s is given in which a node should respond otherwise it will considered as locally offline by the beacon chain"),(0,a.kt)("h2",{id:"aggregation"},"Aggregation"),(0,a.kt)("p",null,"During the transaction generation of the BeaconChain summary, we aggregate multiple slots into a common structure."),(0,a.kt)("p",null,"All the aggregated P2P samples are accumulated to determine the frequencies of availability and determine the average."),(0,a.kt)("p",null,"So during the ",(0,a.kt)("a",{parentName:"p",href:"/learn/p2p/self-repair"},"Self-Repair"),", we are using those summary and aggregated data to determine if a node is considered as available for the next epoch/cycle."))}d.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6328],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>f});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var c=r.createContext({}),s=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=s(e.components);return r.createElement(c.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,c=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=s(n),m=a,f=u["".concat(c,".").concat(m)]||u[m]||d[m]||i;return n?r.createElement(f,o(o({ref:t},p),{},{components:n})):r.createElement(f,o({ref:t},p))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=m;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[u]="string"==typeof e?e:a,o[1]=l;for(var s=2;s{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>l,toc:()=>s});var r=n(87462),a=(n(67294),n(3905));n(8209);const i={id:"p2p-sampling",title:"P2P availability sampling"},o=void 0,l={unversionedId:"build/core/beacon-chain/p2p-sampling",id:"build/core/beacon-chain/p2p-sampling",title:"P2P availability sampling",description:"Each beacon chain's subset is responsible to perform verification of the nodes is in charge to monitor.",source:"@site/docs/build/core/beacon-chain/p2p-sampling.md",sourceDirName:"build/core/beacon-chain",slug:"/build/core/beacon-chain/p2p-sampling",permalink:"/build/core/beacon-chain/p2p-sampling",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"p2p-sampling",title:"P2P availability sampling"},sidebar:"docs",previous:{title:"BeaconChain",permalink:"/build/core/beacon-chain/"},next:{title:"Bootstrap",permalink:"/build/core/bootstrap"}},c={},s=[{value:"Heartbeat",id:"heartbeat",level:2},{value:"Aggregation",id:"aggregation",level:2}],p={toc:s},u="wrapper";function d(e){let{components:t,...n}=e;return(0,a.kt)(u,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"Each beacon chain's subset is responsible to perform verification of the nodes is in charge to monitor."),(0,a.kt)("h2",{id:"heartbeat"},"Heartbeat"),(0,a.kt)("p",null,"So periodically (when a transaction is confirmed or before a slot creation), the nodes of a given subset perform P2P availability sampling of the given peers. "),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"If multiple transactions arrive to a given subset quickly, a timespan of 3s from the previous sampling is used, to determine if we need to sample availability again ")),(0,a.kt)("mermaid",{value:"sequenceDiagram\n Subset node->>+Supervised node: Ping\n Supervised node->>+Subset node: Ok"}),(0,a.kt)("p",null,"A timeout of 1s is given in which a node should respond otherwise it will considered as locally offline by the beacon chain"),(0,a.kt)("h2",{id:"aggregation"},"Aggregation"),(0,a.kt)("p",null,"During the transaction generation of the BeaconChain summary, we aggregate multiple slots into a common structure."),(0,a.kt)("p",null,"All the aggregated P2P samples are accumulated to determine the frequencies of availability and determine the average."),(0,a.kt)("p",null,"So during the ",(0,a.kt)("a",{parentName:"p",href:"/learn/p2p/self-repair"},"Self-Repair"),", we are using those summary and aggregated data to determine if a node is considered as available for the next epoch/cycle."))}d.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/41637b9f.ebe004fb.js b/assets/js/41637b9f.42bc5076.js similarity index 98% rename from assets/js/41637b9f.ebe004fb.js rename to assets/js/41637b9f.42bc5076.js index 5e42234aa..adf34ffe6 100644 --- a/assets/js/41637b9f.ebe004fb.js +++ b/assets/js/41637b9f.42bc5076.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4189],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>f});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function s(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var i=r.createContext({}),c=function(e){var t=r.useContext(i),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},p=function(e){var t=c(e.components);return r.createElement(i.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,s=e.originalType,i=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=c(a),m=n,f=u["".concat(i,".").concat(m)]||u[m]||d[m]||s;return a?r.createElement(f,o(o({ref:t},p),{},{components:a})):r.createElement(f,o({ref:t},p))}));function f(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var s=a.length,o=new Array(s);o[0]=m;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l[u]="string"==typeof e?e:n,o[1]=l;for(var c=2;c{a.r(t),a.d(t,{Badge:()=>d,Bullet:()=>p,Details:()=>f,SpecifiedBy:()=>u,assets:()=>c,contentTitle:()=>l,default:()=>y,frontMatter:()=>o,metadata:()=>i,toc:()=>m});var r=a(87462),n=a(67294),s=a(3905);a(8209);const o={id:"sha-256-hash",title:"Sha256Hash",hide_table_of_contents:!1},l=void 0,i={unversionedId:"build/api/schema/scalars/sha-256-hash",id:"build/api/schema/scalars/sha-256-hash",title:"Sha256Hash",description:"No description",source:"@site/docs/build/api/schema/scalars/sha-256-hash.mdx",sourceDirName:"build/api/schema/scalars",slug:"/build/api/schema/scalars/sha-256-hash",permalink:"/build/api/schema/scalars/sha-256-hash",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"sha-256-hash",title:"Sha256Hash",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"RecipientArgs",permalink:"/build/api/schema/scalars/recipient-args"},next:{title:"State",permalink:"/build/api/schema/scalars/state"}},c={},p=()=>(0,s.kt)(n.Fragment,null,(0,s.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),u=e=>(0,s.kt)(n.Fragment,null,"Specification",(0,s.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),d=e=>(0,s.kt)(n.Fragment,null,(0,s.kt)("span",{className:e.class},e.text)),m=[{value:"Member of",id:"member-of",level:3}],f=e=>{let{dataOpen:t,dataClose:a,children:o,startOpen:l=!1}=e;const[i,c]=(0,n.useState)(l);return(0,s.kt)("details",(0,r.Z)({},i?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,s.kt)("summary",{onClick:e=>{e.preventDefault(),c((e=>!e))},style:{listStyle:"none"}},i?t:a),i&&o)},h={Bullet:p,SpecifiedBy:u,Badge:d,toc:m,Details:f},b="wrapper";function y(e){let{components:t,...a}=e;return(0,s.kt)(b,(0,r.Z)({},h,a,{components:t,mdxType:"MDXLayout"}),(0,s.kt)("p",null,"No description"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-graphql"},"scalar Sha256Hash\n")),(0,s.kt)("h3",{id:"member-of"},"Member of"),(0,s.kt)("p",null,(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/queries/chain-unspent-outputs"},(0,s.kt)("inlineCode",{parentName:"a"},"chainUnspentOutputs"))," ",(0,s.kt)(d,{class:"badge badge--secondary",text:"query",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/transaction-summary"},(0,s.kt)("inlineCode",{parentName:"a"},"TransactionSummary"))," ",(0,s.kt)(d,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}y.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4189],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>f});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function s(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var i=r.createContext({}),c=function(e){var t=r.useContext(i),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},p=function(e){var t=c(e.components);return r.createElement(i.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,s=e.originalType,i=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=c(a),m=n,f=u["".concat(i,".").concat(m)]||u[m]||d[m]||s;return a?r.createElement(f,o(o({ref:t},p),{},{components:a})):r.createElement(f,o({ref:t},p))}));function f(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var s=a.length,o=new Array(s);o[0]=m;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l[u]="string"==typeof e?e:n,o[1]=l;for(var c=2;c{a.r(t),a.d(t,{Badge:()=>d,Bullet:()=>p,Details:()=>f,SpecifiedBy:()=>u,assets:()=>c,contentTitle:()=>l,default:()=>y,frontMatter:()=>o,metadata:()=>i,toc:()=>m});var r=a(87462),n=a(67294),s=a(3905);a(8209);const o={id:"sha-256-hash",title:"Sha256Hash",hide_table_of_contents:!1},l=void 0,i={unversionedId:"build/api/schema/scalars/sha-256-hash",id:"build/api/schema/scalars/sha-256-hash",title:"Sha256Hash",description:"No description",source:"@site/docs/build/api/schema/scalars/sha-256-hash.mdx",sourceDirName:"build/api/schema/scalars",slug:"/build/api/schema/scalars/sha-256-hash",permalink:"/build/api/schema/scalars/sha-256-hash",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"sha-256-hash",title:"Sha256Hash",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"RecipientArgs",permalink:"/build/api/schema/scalars/recipient-args"},next:{title:"State",permalink:"/build/api/schema/scalars/state"}},c={},p=()=>(0,s.kt)(n.Fragment,null,(0,s.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),u=e=>(0,s.kt)(n.Fragment,null,"Specification",(0,s.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),d=e=>(0,s.kt)(n.Fragment,null,(0,s.kt)("span",{className:e.class},e.text)),m=[{value:"Member of",id:"member-of",level:3}],f=e=>{let{dataOpen:t,dataClose:a,children:o,startOpen:l=!1}=e;const[i,c]=(0,n.useState)(l);return(0,s.kt)("details",(0,r.Z)({},i?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,s.kt)("summary",{onClick:e=>{e.preventDefault(),c((e=>!e))},style:{listStyle:"none"}},i?t:a),i&&o)},h={Bullet:p,SpecifiedBy:u,Badge:d,toc:m,Details:f},b="wrapper";function y(e){let{components:t,...a}=e;return(0,s.kt)(b,(0,r.Z)({},h,a,{components:t,mdxType:"MDXLayout"}),(0,s.kt)("p",null,"No description"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-graphql"},"scalar Sha256Hash\n")),(0,s.kt)("h3",{id:"member-of"},"Member of"),(0,s.kt)("p",null,(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/queries/chain-unspent-outputs"},(0,s.kt)("inlineCode",{parentName:"a"},"chainUnspentOutputs"))," ",(0,s.kt)(d,{class:"badge badge--secondary",text:"query",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/transaction-summary"},(0,s.kt)("inlineCode",{parentName:"a"},"TransactionSummary"))," ",(0,s.kt)(d,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}y.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file diff --git a/assets/js/41e024b6.e21956f3.js b/assets/js/41e024b6.12894d0e.js similarity index 98% rename from assets/js/41e024b6.e21956f3.js rename to assets/js/41e024b6.12894d0e.js index bb1a83fa2..57b2c4d4c 100644 --- a/assets/js/41e024b6.e21956f3.js +++ b/assets/js/41e024b6.12894d0e.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7793],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>f});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),u=p(r),m=o,f=u["".concat(l,".").concat(m)]||u[m]||d[m]||a;return r?n.createElement(f,i(i({ref:t},s),{},{components:r})):n.createElement(f,i({ref:t},s))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=m;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[u]="string"==typeof e?e:o,i[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(87462),o=(r(67294),r(3905));r(8209);const a={id:"automation",title:"Automate deployments"},i=void 0,c={unversionedId:"participate/aeweb/automation",id:"participate/aeweb/automation",title:"Automate deployments",description:"AEWeb's CLI is really simple to deploy websites from the command line and is handy on low-frequent deployment usage.",source:"@site/docs/participate/aeweb/automation.md",sourceDirName:"participate/aeweb",slug:"/participate/aeweb/automation",permalink:"/participate/aeweb/automation",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"automation",title:"Automate deployments"},sidebar:"docs",previous:{title:"AEWeb Front End",permalink:"/participate/aeweb/usage/aeweb-front"},next:{title:"Archethic Bridge (aeBridge)",permalink:"/participate/bridge/"}},l={},p=[],s={toc:p},u="wrapper";function d(e){let{components:t,...r}=e;return(0,o.kt)(u,(0,n.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"AEWeb's CLI is really simple to deploy websites from the command line and is handy on low-frequent deployment usage.\nHowever, if you need to deploy often a website, the CLI might not be the great tool."),(0,o.kt)("p",null,"To resolve this issue, we have planed a way to automate the deployment of your websites using Github's Actions."),(0,o.kt)("p",null,"This is a simple automation that allow you to deploy to Archethic decentralized web hosting. Under the hood, it's running some part of the AEWeb CLI features."),(0,o.kt)("p",null,"You can decide when your codebase will be deployed on Archethic, for instance foreach push or validated pull-request, or after each release."),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"https://github.com/marketplace/actions/archethic-web"},"Check our Github Action")," to discover how to use it and leverage continuous deployment on Archethic."))}d.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7793],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>f});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),u=p(r),m=o,f=u["".concat(l,".").concat(m)]||u[m]||d[m]||a;return r?n.createElement(f,i(i({ref:t},s),{},{components:r})):n.createElement(f,i({ref:t},s))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=m;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[u]="string"==typeof e?e:o,i[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(87462),o=(r(67294),r(3905));r(8209);const a={id:"automation",title:"Automate deployments"},i=void 0,c={unversionedId:"participate/aeweb/automation",id:"participate/aeweb/automation",title:"Automate deployments",description:"AEWeb's CLI is really simple to deploy websites from the command line and is handy on low-frequent deployment usage.",source:"@site/docs/participate/aeweb/automation.md",sourceDirName:"participate/aeweb",slug:"/participate/aeweb/automation",permalink:"/participate/aeweb/automation",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"automation",title:"Automate deployments"},sidebar:"docs",previous:{title:"AEWeb Front End",permalink:"/participate/aeweb/usage/aeweb-front"},next:{title:"Archethic Bridge (aeBridge)",permalink:"/participate/bridge/"}},l={},p=[],s={toc:p},u="wrapper";function d(e){let{components:t,...r}=e;return(0,o.kt)(u,(0,n.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"AEWeb's CLI is really simple to deploy websites from the command line and is handy on low-frequent deployment usage.\nHowever, if you need to deploy often a website, the CLI might not be the great tool."),(0,o.kt)("p",null,"To resolve this issue, we have planed a way to automate the deployment of your websites using Github's Actions."),(0,o.kt)("p",null,"This is a simple automation that allow you to deploy to Archethic decentralized web hosting. Under the hood, it's running some part of the AEWeb CLI features."),(0,o.kt)("p",null,"You can decide when your codebase will be deployed on Archethic, for instance foreach push or validated pull-request, or after each release."),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"https://github.com/marketplace/actions/archethic-web"},"Check our Github Action")," to discover how to use it and leverage continuous deployment on Archethic."))}d.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file diff --git a/assets/js/42c0b8d9.f05ede9a.js b/assets/js/42c0b8d9.0bfb06ea.js similarity index 99% rename from assets/js/42c0b8d9.f05ede9a.js rename to assets/js/42c0b8d9.0bfb06ea.js index 11e91d3c2..e31c96739 100644 --- a/assets/js/42c0b8d9.f05ede9a.js +++ b/assets/js/42c0b8d9.0bfb06ea.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3594],{3905:(e,t,n)=>{n.d(t,{Zo:()=>s,kt:()=>d});var l=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,l)}return n}function a(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(l=0;l=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var c=l.createContext({}),u=function(e){var t=l.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},s=function(e){var t=u(e.components);return l.createElement(c.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return l.createElement(l.Fragment,{},t)}},E=l.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,c=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),h=u(n),E=r,d=h["".concat(c,".").concat(E)]||h[E]||m[E]||o;return n?l.createElement(d,a(a({ref:t},s),{},{components:n})):l.createElement(d,a({ref:t},s))}));function d(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,a=new Array(o);a[0]=E;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[h]="string"==typeof e?e:r,a[1]=i;for(var u=2;u{n.r(t),n.d(t,{assets:()=>g,contentTitle:()=>b,default:()=>T,frontMatter:()=>f,metadata:()=>y,toc:()=>w});var l=n(87462),r=n(67294),o=n(3905);n(8209);const a=(0,r.createContext)({currentStep:0,setCurrentStep:()=>{},stepHistory:[],setStepHistory:()=>{},goBack:()=>{}});function i(){const[e,t]=(0,r.useState)(0),[n,l]=(0,r.useState)([]),o={currentStep:e,setCurrentStep:e=>{l((t=>t[t.length-1]!==e?[...t,e]:t)),t(e)},stepHistory:n,setStepHistory:l,goBack:()=>{l((e=>{if(e.length>1){const n=e.slice(0,-1),l=n[n.length-1];return t(l),n}return e}))}};return r.createElement(a.Provider,{value:o},r.createElement("style",null,"\n ul {\n padding-left: 20px;\n \n li {\n line-height: 1.3;\n \n ul {\n padding-left: 20px;\n line-height: 1.3;\n }\n }\n }\n .button {\n border-radius: 5px;\n background-color: white; \n color: black; \n padding: 10px 20px;\n border: 1px solid #ccc;\n font-family: inherit; \n font-size: inherit;\n cursor: pointer;\n outline: none; \n transition: color 0.3s ease;\n }\n .button:hover {\n color: #757575; \n }\n }\n "),r.createElement("div",null,r.createElement(c,null)))}function c(){const e=(0,r.useContext)(a),{currentStep:t}=e;switch(t){case 1:return r.createElement(s,null);case 2:return r.createElement(h,null);case 3:return r.createElement(m,null);case 4:return r.createElement(E,null);case 5:return r.createElement(d,null);case 6:return r.createElement(p,null);case 0:return r.createElement(u,null)}}function u(){const{setCurrentStep:e}=(0,r.useContext)(a);return r.createElement("div",null,r.createElement("h2",null,"Welcome to the interactive guide for using the Archethic Bridge"),r.createElement("h3",null,"This tutorial will explain the following points:"),r.createElement("ul",null,r.createElement("li",null,"Retrieve and create an Archethic Wallet"),r.createElement("li",null,"Withdraw your UCO ERC20 from a Centralized Exchange (CEx)"),r.createElement("li",null,"Transfer your UCO ERC20 to Archethic"),r.createElement("li",null,"Transfer your ETH to Polygon PoS"),r.createElement("li",null,"Transfer your WETH to Archethic")),r.createElement("button",{className:"button",onClick:()=>e(1)},"Start the tutorial"),r.createElement("br",null),r.createElement("br",null))}function s(){const{setCurrentStep:e,goBack:t}=(0,r.useContext)(a);return r.createElement("div",null,r.createElement("h2",null,"Creating an Archethic Wallet"),r.createElement("h3",null,"Would you like to know how to create your Archethic Wallet?"),r.createElement("button",{className:"button",onClick:()=>e(2)},"Yes, I want to know the procedure"),r.createElement("br",null),r.createElement("br",null),r.createElement("button",{className:"button",onClick:()=>e(3)},"No, I want to go directly to the step for withdrawing my UCO ERC20 from a Centralized Exchange"),r.createElement("br",null),r.createElement("br",null),r.createElement("button",{className:"button",onClick:t},"Back"),r.createElement("br",null),r.createElement("br",null),r.createElement("br",null))}function h(){const{setCurrentStep:e,goBack:t}=(0,r.useContext)(a);return r.createElement("div",null,r.createElement("h2",null,"Creating an Archethic Wallet"),r.createElement("h3",null,"How to create a wallet on the Archethic blockchain?"),r.createElement("ul",null,r.createElement("li",null,"First, download the wallet application here depending on whether you are on Mac, Linux, or PC ",r.createElement("u",null,r.createElement("a",{href:"https://www.archethic.net/wallet.html",target:"_blank",rel:"noopener noreferrer"},"here")),"."),r.createElement("li",null,"Once installed, you can launch the application."),r.createElement("ul",null,r.createElement("li",null,"The first page invites you to read and accept the privacy policy"),r.createElement("li",null,'Once accepted, you can click on "Get started" to begin creating your wallet.',r.createElement("br",null),"IMPORTANT: In the window that appears, make sure to check at the top right that Archethic Main Network is selected!")),r.createElement("li",null,"Start by naming your first account within your future decentralized keychain."),r.createElement("li",null,"A confirmation window appears to verify that the account name suits you."),r.createElement("li",null,"The application reminds you of important security information to protect your funds and your secret phrase."),r.createElement("li",null,'After reading the information, click on "I understand."'),r.createElement("li",null,"The 24 words of your secret phrase will be displayed.",r.createElement("br",null),r.createElement("b",null,"At this stage, you can choose a list of 24 words in French or English (remember this choice!).",r.createElement("br",null),"This list of 24 words is confidential: do not communicate it to anyone and note it carefully to be able to confirm them in the next screen.",r.createElement("br",null),"Keep this list safe for future use.")),r.createElement("li",null,"Confirmation requires putting the words in order."),r.createElement("li",null,"Once the process of confirming the order of the words of the secret phrase is done, you can select the means to protect your application (PIN code, password, biometrics, YubiKey)."),r.createElement("li",null,"After a few seconds of waiting, your Archethic Wallet is created with your first account."),r.createElement("li",null,'Note that the Archethic Wallet will be necessary for the step "Transferring your UCO to Archethic."')),r.createElement("h3",null,"Would you like to know how to withdraw your UCO from a centralized exchange?"),r.createElement("button",{className:"button",onClick:()=>e(3)},"Yes, I want to know the procedure"),r.createElement("br",null),r.createElement("br",null),r.createElement("button",{className:"button",onClick:()=>e(4)},"No, I want to go to the next step of transferring my UCO ERC20 to Archethic"),r.createElement("br",null),r.createElement("br",null),r.createElement("button",{className:"button",onClick:t},"Back"),r.createElement("br",null),r.createElement("br",null))}function m(){const{setCurrentStep:e,goBack:t}=(0,r.useContext)(a);return r.createElement("div",null,r.createElement("h2",null,"Withdrawing Your UCO ERC20 from a Centralized Exchange (CEx)"),r.createElement("h3",null,"This step only concerns you if your UCO are on a Centralized Exchange (Probit or Zebitex)"),r.createElement("ul",null,r.createElement("li",null,r.createElement("b",null,"Prerequisite:")," the withdrawal requires having an EVM-compatible self-hosted Wallet (e.g., Metamask, Rabby\u2026)"),r.createElement("ul",null,r.createElement("li",null,"If you do not already have an existing wallet, we strongly recommend Rabby for its high security and ease of use. You can download it here: ",r.createElement("u",null,r.createElement("a",{href:"https://rabby.io/",target:"_blank",rel:"noopener noreferrer"},"https://rabby.io/"))),r.createElement("li",null,"Follow the directions during setup.")),r.createElement("li",null,"Once the self-hosted EVM Wallet is created, withdrawal procedures depend on the CEx used:"),r.createElement("ul",null,r.createElement("li",null,"Probit: Follow the instructions ",r.createElement("u",null,r.createElement("a",{href:"https://www.probit.com/en-us/hc/6701622935833#h.r9p7ohh44ezw",target:"_blank",rel:"noopener noreferrer"},"here"))),r.createElement("li",null,"Zebitex: Follow the instructions ",r.createElement("u",null,r.createElement("a",{href:"https://support.zebitex.com/hc/fr/articles/360017288659-Comment-faire-un-retrait",target:"_blank",rel:"noopener noreferrer"},"here")))),r.createElement("li",null,r.createElement("b",null,"Note:")," In both cases, the address of your self-hosted EVM Wallet will be requested as the withdrawal destination."),r.createElement("li",null,"It is likely that your withdrawn UCO will be sent to the Ethereum blockchain."),r.createElement("li",null,"Once the withdrawal is completed, your UCO are in your self-hosted wallet and you can proceed to the next step.")),r.createElement("h3",null,"Would you like to know how to transfer your UCO ERC20 to Archethic?"),r.createElement("button",{className:"button",onClick:()=>e(4)},"Yes, I want to know the procedure"),r.createElement("br",null),r.createElement("br",null),r.createElement("button",{className:"button",onClick:()=>e(5)},"No, I want to go to the step of transferring my ETH to Polygon PoS"),r.createElement("br",null),r.createElement("br",null),r.createElement("button",{className:"button",onClick:t},"Back"),r.createElement("br",null),r.createElement("br",null))}function E(){const{setCurrentStep:e,goBack:t}=(0,r.useContext)(a);return r.createElement("div",null,r.createElement("h2",null,"Transferring Your UCO ERC20 to Archethic"),r.createElement("br",null),r.createElement("ul",null,r.createElement("li",null,r.createElement("b",null,"Prerequisite:")," This step only concerns you if your UCO are already on your self-hosted EVM Wallet (e.g., Metamask, Rabby\u2026) and regardless of the EVM blockchain where your UCO are located, the process remains the same."),r.createElement("li",null,"Moreover, the bridge of UCO will require paying fees on the origin blockchain.",r.createElement("br",null),r.createElement("b",null,"Ensure you have sufficient ETH on Ethereum, MATIC on Polygon, or BNB on the BNB Chain.")),r.createElement("li",null,"The following operation consists of sending your UCO from the EVM blockchain to Archethic."),r.createElement("li",null,"For your information, this operation will transform your ERC-20 Tokens into native UCO Coins (a Coin is the local currency of a blockchain, and UCO becomes the local currency once on Archethic)."),r.createElement("li",null,"Launch your Archethic Wallet (or create one by following the step ",r.createElement("u",null,r.createElement("a",{onClick:()=>e(2),style:{cursor:"pointer"}},"Creating an Archethic Wallet")),")"),r.createElement("li",null,"Make sure your self-hosted EVM Wallet is on the address and blockchain that hold your UCO to be transferred"),r.createElement("li",null,"Access the Archethic Bridge: ",r.createElement("u",null,r.createElement("a",{href:"https://bridge.archethic.net/",target:"_blank",rel:"noopener noreferrer"},"https://bridge.archethic.net/"))),r.createElement("ul",null,r.createElement("li",null,"Select the EVM Blockchain where your UCO are located (Ethereum, Polygon, or the BNB Chain)"),r.createElement("li",null,"Select Archethic as the destination."),r.createElement("li",null,"Once the starting and destination blockchains are selected, choose UCO as the token/coin to send/receive"),r.createElement("li",null,"Based on your available UCO, enter the amount to transfer"),r.createElement("li",null,'Click on "Bridge" to start the transfer'),r.createElement("li",null,r.createElement("b",null,"Note: Do not hesitate to make a first trial with a small amount."))),r.createElement("img",{src:"/img/tutorial/Tuto-DeFi-2.png"}),r.createElement("li",null,"Once the transfer is initiated, follow the guidelines: The bridge will require several steps, several minutes, and multiple authorizations (signatures) to be completed sequentially in your self-hosted EVM Wallet and in your Archethic Wallet."),r.createElement("li",null,"Once the bridge is completed, you will receive a success message."),r.createElement("li",null,'If the amount of UCO does not immediately appear in your Archethic Wallet, do not hesitate to click on the "Refresh" button')),r.createElement("p",null,'You can find additional information on the Bridge in the "Participate" section of this wiki: ',r.createElement("u",null,r.createElement("a",{href:"/participate/bridge/",target:"_blank"},'"Participate"'))),r.createElement("h3",null,"Would you like to know how to transfer your ETH to Polygon PoS?"),r.createElement("button",{className:"button",onClick:()=>e(5)},"Yes, I want to know the procedure"),r.createElement("br",null),r.createElement("br",null),r.createElement("button",{className:"button",onClick:()=>e(6)},"No, I want to go to the step of transferring my WETH to Archethic"),r.createElement("br",null),r.createElement("br",null),r.createElement("button",{className:"button",onClick:t},"Back"),r.createElement("br",null),r.createElement("br",null))}function d(){const{setCurrentStep:e,goBack:t}=(0,r.useContext)(a);return r.createElement("div",null,r.createElement("h2",null,"Transferring Your ETH to Polygon PoS"),r.createElement("br",null),r.createElement("ul",null,r.createElement("li",null,r.createElement("b",null,"IMPORTANT:")," ETH bridging to Archethic is only possible from the Polygon PoS Blockchain. Therefore, you must first transfer your ETH to Polygon PoS before bridging them to Archethic."),r.createElement("li",null,r.createElement("b",null,"Prerequisite:")," This step only concerns you if your ETH are already on your self-hosted EVM Wallet (e.g., Metamask, Rabby\u2026). If your ETH are on a Cex, refer to the step - ",r.createElement("u",null,r.createElement("a",{onClick:()=>e(3)},"Withdrawing Your UCO from a Cex")),". The process is the same for both UCO and ETH."),r.createElement("li",null,"The next operation will first consist of transferring your ETH to Polygon PoS if they are not already there."),r.createElement("li",null,r.createElement("b",null,"Note regarding ETH bridging from Ethereum:")," ETH is the local Coin of the Ethereum Blockchain. The ETH bridge from Ethereum to Polygon involves transferring ETH and also transforming these Coins into ERC-20 WETH Tokens on the Polygon PoS Blockchain (whose Coin is MATIC)."),r.createElement("li",null,"Log on to ",r.createElement("u",null,r.createElement("a",{href:"https://app.rango.exchange/swap/",target:"_blank",rel:"noopener noreferrer"},"https://app.rango.exchange/swap/")),r.createElement("br",null),"Rango Exchange helps find the least expensive bridge for the operation."),r.createElement("img",{src:"/img/tutorial/Tuto-DeFi-3.png"}),r.createElement("li",null,"Connect your self-hosted EVM Wallet"),r.createElement("li",null,"Select the blockchain where your ETH are located (e.g., Ethereum) for transfer"),r.createElement("li",null,"Select Polygon as the destination and WETH as the incoming token"),r.createElement("li",null,"Rango Exchange will propose the optimal route for the transfer: select the optimal route."),r.createElement("li",null,'Click on "Exchange".'),r.createElement("li",null,"Once the transfer is initiated, follow the instructions: The bridge will require several steps, several minutes, and authorizations (signatures) to be completed sequentially in your self-hosted EVM Wallet."),r.createElement("li",null,"Once the bridge is completed, you will receive a success message."),r.createElement("li",null,"The result of your bridge will materialize as the expected amount of WETH in your self-hosted EVM Wallet on the Polygon PoS blockchain")),r.createElement("h3",null,"Would you like to know how to transfer your WETH to Archethic?"),r.createElement("button",{className:"button",onClick:()=>e(6)},"Yes, I want to know the procedure"),r.createElement("br",null),r.createElement("br",null),r.createElement("button",{className:"button",onClick:t},"Back"),r.createElement("br",null),r.createElement("br",null))}function p(){const{setCurrentStep:e,goBack:t}=(0,r.useContext)(a);return r.createElement("div",null,r.createElement("h2",null,"Transferring Your WETH to Archethic"),r.createElement("br",null),r.createElement("ul",null,r.createElement("li",null,r.createElement("b",null,"Prerequisite:")," This step only concerns you if your WETH are already on your self-hosted EVM Wallet (e.g., Metamask, Rabby\u2026) and on the Polygon PoS."),r.createElement("li",null,"The WETH bridge will require paying fees on the Polygon PoS blockchain. Ensure you have sufficient MATIC on your self-hosted EVM Wallet for this purpose."),r.createElement("li",null,"The following operation involves sending your WETH from the Polygon PoS blockchain to Archethic."),r.createElement("li",null,"By the way, for your information, this operation will transform your ERC-20 WETH Tokens into aeETH Tokens on Archethic."),r.createElement("li",null,"Launch your Archethic Wallet (or create one by following the step ",r.createElement("u",null,r.createElement("a",{onClick:()=>e(2)},"Creating an Archethic Wallet")),")"),r.createElement("li",null,"Ensure that your self-hosted EVM Wallet is on the address and blockchain that hold your WETH for transfer"),r.createElement("li",null,"Access the Archethic Bridge: ",r.createElement("u",null,r.createElement("a",{href:"https://bridge.archethic.net/",target:"_blank",rel:"noopener noreferrer"},"https://bridge.archethic.net/"))),r.createElement("li",null,"In the main window:"),r.createElement("img",{src:"/img/tutorial/Tuto-DeFi-1.png"}),r.createElement("ul",null,r.createElement("li",null,"Select the Polygon PoS Blockchain as the origin"),r.createElement("li",null,"Select Archethic as the destination."),r.createElement("li",null,"Once the origin and destination blockchains are selected, choose WETH as the token to send"),r.createElement("li",null,"Based on your available WETH, enter the amount to transfer"),r.createElement("li",null,'Click on "Bridge" to initiate the transfer'),r.createElement("li",null,r.createElement("b",null,"Note: Do not hesitate to make a first trial with a small amount."))),r.createElement("img",{src:"/img/tutorial/Tuto-DeFi-4.png"}),r.createElement("li",null,"Once the transfer is initiated, follow the guidelines: The bridge will require several steps, several minutes, and multiple authorizations (signatures) to be completed sequentially in your self-hosted EVM Wallet and in your Archethic Wallet."),r.createElement("li",null,"Once the bridge is completed, you will receive a success message."),r.createElement("li",null,'If the amount of aeETH does not immediately appear in your Archethic Wallet, do not hesitate to click on the "Refresh" button')),r.createElement("h3",null,"Congratulations! You now know everything! You can now enjoy the Archethic ecosystem"),r.createElement("button",{className:"button",onClick:t},"Back"),r.createElement("br",null),r.createElement("br",null))}const f={id:"tuto_defi",title:"Tutoriel Archethic DeFi"},b=void 0,y={unversionedId:"participate/DeFi/tuto_defi",id:"participate/DeFi/tuto_defi",title:"Tutoriel Archethic DeFi",description:"",source:"@site/docs/participate/DeFi/README.mdx",sourceDirName:"participate/DeFi",slug:"/participate/DeFi/",permalink:"/participate/DeFi/",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"tuto_defi",title:"Tutoriel Archethic DeFi"},sidebar:"docs",previous:{title:"Participate",permalink:"/category/participate"},next:{title:"Archethic Web (aeHosting)",permalink:"/participate/aeweb/"}},g={},w=[],k={toc:w},C="wrapper";function T(e){let{components:t,...n}=e;return(0,o.kt)(C,(0,l.Z)({},k,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)(i,{mdxType:"TutoAEDeFi"}))}T.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3594],{3905:(e,t,n)=>{n.d(t,{Zo:()=>s,kt:()=>d});var l=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,l)}return n}function a(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(l=0;l=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var c=l.createContext({}),u=function(e){var t=l.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},s=function(e){var t=u(e.components);return l.createElement(c.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return l.createElement(l.Fragment,{},t)}},E=l.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,c=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),h=u(n),E=r,d=h["".concat(c,".").concat(E)]||h[E]||m[E]||o;return n?l.createElement(d,a(a({ref:t},s),{},{components:n})):l.createElement(d,a({ref:t},s))}));function d(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,a=new Array(o);a[0]=E;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[h]="string"==typeof e?e:r,a[1]=i;for(var u=2;u{n.r(t),n.d(t,{assets:()=>g,contentTitle:()=>b,default:()=>T,frontMatter:()=>f,metadata:()=>y,toc:()=>w});var l=n(87462),r=n(67294),o=n(3905);n(8209);const a=(0,r.createContext)({currentStep:0,setCurrentStep:()=>{},stepHistory:[],setStepHistory:()=>{},goBack:()=>{}});function i(){const[e,t]=(0,r.useState)(0),[n,l]=(0,r.useState)([]),o={currentStep:e,setCurrentStep:e=>{l((t=>t[t.length-1]!==e?[...t,e]:t)),t(e)},stepHistory:n,setStepHistory:l,goBack:()=>{l((e=>{if(e.length>1){const n=e.slice(0,-1),l=n[n.length-1];return t(l),n}return e}))}};return r.createElement(a.Provider,{value:o},r.createElement("style",null,"\n ul {\n padding-left: 20px;\n \n li {\n line-height: 1.3;\n \n ul {\n padding-left: 20px;\n line-height: 1.3;\n }\n }\n }\n .button {\n border-radius: 5px;\n background-color: white; \n color: black; \n padding: 10px 20px;\n border: 1px solid #ccc;\n font-family: inherit; \n font-size: inherit;\n cursor: pointer;\n outline: none; \n transition: color 0.3s ease;\n }\n .button:hover {\n color: #757575; \n }\n }\n "),r.createElement("div",null,r.createElement(c,null)))}function c(){const e=(0,r.useContext)(a),{currentStep:t}=e;switch(t){case 1:return r.createElement(s,null);case 2:return r.createElement(h,null);case 3:return r.createElement(m,null);case 4:return r.createElement(E,null);case 5:return r.createElement(d,null);case 6:return r.createElement(p,null);case 0:return r.createElement(u,null)}}function u(){const{setCurrentStep:e}=(0,r.useContext)(a);return r.createElement("div",null,r.createElement("h2",null,"Welcome to the interactive guide for using the Archethic Bridge"),r.createElement("h3",null,"This tutorial will explain the following points:"),r.createElement("ul",null,r.createElement("li",null,"Retrieve and create an Archethic Wallet"),r.createElement("li",null,"Withdraw your UCO ERC20 from a Centralized Exchange (CEx)"),r.createElement("li",null,"Transfer your UCO ERC20 to Archethic"),r.createElement("li",null,"Transfer your ETH to Polygon PoS"),r.createElement("li",null,"Transfer your WETH to Archethic")),r.createElement("button",{className:"button",onClick:()=>e(1)},"Start the tutorial"),r.createElement("br",null),r.createElement("br",null))}function s(){const{setCurrentStep:e,goBack:t}=(0,r.useContext)(a);return r.createElement("div",null,r.createElement("h2",null,"Creating an Archethic Wallet"),r.createElement("h3",null,"Would you like to know how to create your Archethic Wallet?"),r.createElement("button",{className:"button",onClick:()=>e(2)},"Yes, I want to know the procedure"),r.createElement("br",null),r.createElement("br",null),r.createElement("button",{className:"button",onClick:()=>e(3)},"No, I want to go directly to the step for withdrawing my UCO ERC20 from a Centralized Exchange"),r.createElement("br",null),r.createElement("br",null),r.createElement("button",{className:"button",onClick:t},"Back"),r.createElement("br",null),r.createElement("br",null),r.createElement("br",null))}function h(){const{setCurrentStep:e,goBack:t}=(0,r.useContext)(a);return r.createElement("div",null,r.createElement("h2",null,"Creating an Archethic Wallet"),r.createElement("h3",null,"How to create a wallet on the Archethic blockchain?"),r.createElement("ul",null,r.createElement("li",null,"First, download the wallet application here depending on whether you are on Mac, Linux, or PC ",r.createElement("u",null,r.createElement("a",{href:"https://www.archethic.net/wallet.html",target:"_blank",rel:"noopener noreferrer"},"here")),"."),r.createElement("li",null,"Once installed, you can launch the application."),r.createElement("ul",null,r.createElement("li",null,"The first page invites you to read and accept the privacy policy"),r.createElement("li",null,'Once accepted, you can click on "Get started" to begin creating your wallet.',r.createElement("br",null),"IMPORTANT: In the window that appears, make sure to check at the top right that Archethic Main Network is selected!")),r.createElement("li",null,"Start by naming your first account within your future decentralized keychain."),r.createElement("li",null,"A confirmation window appears to verify that the account name suits you."),r.createElement("li",null,"The application reminds you of important security information to protect your funds and your secret phrase."),r.createElement("li",null,'After reading the information, click on "I understand."'),r.createElement("li",null,"The 24 words of your secret phrase will be displayed.",r.createElement("br",null),r.createElement("b",null,"At this stage, you can choose a list of 24 words in French or English (remember this choice!).",r.createElement("br",null),"This list of 24 words is confidential: do not communicate it to anyone and note it carefully to be able to confirm them in the next screen.",r.createElement("br",null),"Keep this list safe for future use.")),r.createElement("li",null,"Confirmation requires putting the words in order."),r.createElement("li",null,"Once the process of confirming the order of the words of the secret phrase is done, you can select the means to protect your application (PIN code, password, biometrics, YubiKey)."),r.createElement("li",null,"After a few seconds of waiting, your Archethic Wallet is created with your first account."),r.createElement("li",null,'Note that the Archethic Wallet will be necessary for the step "Transferring your UCO to Archethic."')),r.createElement("h3",null,"Would you like to know how to withdraw your UCO from a centralized exchange?"),r.createElement("button",{className:"button",onClick:()=>e(3)},"Yes, I want to know the procedure"),r.createElement("br",null),r.createElement("br",null),r.createElement("button",{className:"button",onClick:()=>e(4)},"No, I want to go to the next step of transferring my UCO ERC20 to Archethic"),r.createElement("br",null),r.createElement("br",null),r.createElement("button",{className:"button",onClick:t},"Back"),r.createElement("br",null),r.createElement("br",null))}function m(){const{setCurrentStep:e,goBack:t}=(0,r.useContext)(a);return r.createElement("div",null,r.createElement("h2",null,"Withdrawing Your UCO ERC20 from a Centralized Exchange (CEx)"),r.createElement("h3",null,"This step only concerns you if your UCO are on a Centralized Exchange (Probit or Zebitex)"),r.createElement("ul",null,r.createElement("li",null,r.createElement("b",null,"Prerequisite:")," the withdrawal requires having an EVM-compatible self-hosted Wallet (e.g., Metamask, Rabby\u2026)"),r.createElement("ul",null,r.createElement("li",null,"If you do not already have an existing wallet, we strongly recommend Rabby for its high security and ease of use. You can download it here: ",r.createElement("u",null,r.createElement("a",{href:"https://rabby.io/",target:"_blank",rel:"noopener noreferrer"},"https://rabby.io/"))),r.createElement("li",null,"Follow the directions during setup.")),r.createElement("li",null,"Once the self-hosted EVM Wallet is created, withdrawal procedures depend on the CEx used:"),r.createElement("ul",null,r.createElement("li",null,"Probit: Follow the instructions ",r.createElement("u",null,r.createElement("a",{href:"https://www.probit.com/en-us/hc/6701622935833#h.r9p7ohh44ezw",target:"_blank",rel:"noopener noreferrer"},"here"))),r.createElement("li",null,"Zebitex: Follow the instructions ",r.createElement("u",null,r.createElement("a",{href:"https://support.zebitex.com/hc/fr/articles/360017288659-Comment-faire-un-retrait",target:"_blank",rel:"noopener noreferrer"},"here")))),r.createElement("li",null,r.createElement("b",null,"Note:")," In both cases, the address of your self-hosted EVM Wallet will be requested as the withdrawal destination."),r.createElement("li",null,"It is likely that your withdrawn UCO will be sent to the Ethereum blockchain."),r.createElement("li",null,"Once the withdrawal is completed, your UCO are in your self-hosted wallet and you can proceed to the next step.")),r.createElement("h3",null,"Would you like to know how to transfer your UCO ERC20 to Archethic?"),r.createElement("button",{className:"button",onClick:()=>e(4)},"Yes, I want to know the procedure"),r.createElement("br",null),r.createElement("br",null),r.createElement("button",{className:"button",onClick:()=>e(5)},"No, I want to go to the step of transferring my ETH to Polygon PoS"),r.createElement("br",null),r.createElement("br",null),r.createElement("button",{className:"button",onClick:t},"Back"),r.createElement("br",null),r.createElement("br",null))}function E(){const{setCurrentStep:e,goBack:t}=(0,r.useContext)(a);return r.createElement("div",null,r.createElement("h2",null,"Transferring Your UCO ERC20 to Archethic"),r.createElement("br",null),r.createElement("ul",null,r.createElement("li",null,r.createElement("b",null,"Prerequisite:")," This step only concerns you if your UCO are already on your self-hosted EVM Wallet (e.g., Metamask, Rabby\u2026) and regardless of the EVM blockchain where your UCO are located, the process remains the same."),r.createElement("li",null,"Moreover, the bridge of UCO will require paying fees on the origin blockchain.",r.createElement("br",null),r.createElement("b",null,"Ensure you have sufficient ETH on Ethereum, MATIC on Polygon, or BNB on the BNB Chain.")),r.createElement("li",null,"The following operation consists of sending your UCO from the EVM blockchain to Archethic."),r.createElement("li",null,"For your information, this operation will transform your ERC-20 Tokens into native UCO Coins (a Coin is the local currency of a blockchain, and UCO becomes the local currency once on Archethic)."),r.createElement("li",null,"Launch your Archethic Wallet (or create one by following the step ",r.createElement("u",null,r.createElement("a",{onClick:()=>e(2),style:{cursor:"pointer"}},"Creating an Archethic Wallet")),")"),r.createElement("li",null,"Make sure your self-hosted EVM Wallet is on the address and blockchain that hold your UCO to be transferred"),r.createElement("li",null,"Access the Archethic Bridge: ",r.createElement("u",null,r.createElement("a",{href:"https://bridge.archethic.net/",target:"_blank",rel:"noopener noreferrer"},"https://bridge.archethic.net/"))),r.createElement("ul",null,r.createElement("li",null,"Select the EVM Blockchain where your UCO are located (Ethereum, Polygon, or the BNB Chain)"),r.createElement("li",null,"Select Archethic as the destination."),r.createElement("li",null,"Once the starting and destination blockchains are selected, choose UCO as the token/coin to send/receive"),r.createElement("li",null,"Based on your available UCO, enter the amount to transfer"),r.createElement("li",null,'Click on "Bridge" to start the transfer'),r.createElement("li",null,r.createElement("b",null,"Note: Do not hesitate to make a first trial with a small amount."))),r.createElement("img",{src:"/img/tutorial/Tuto-DeFi-2.png"}),r.createElement("li",null,"Once the transfer is initiated, follow the guidelines: The bridge will require several steps, several minutes, and multiple authorizations (signatures) to be completed sequentially in your self-hosted EVM Wallet and in your Archethic Wallet."),r.createElement("li",null,"Once the bridge is completed, you will receive a success message."),r.createElement("li",null,'If the amount of UCO does not immediately appear in your Archethic Wallet, do not hesitate to click on the "Refresh" button')),r.createElement("p",null,'You can find additional information on the Bridge in the "Participate" section of this wiki: ',r.createElement("u",null,r.createElement("a",{href:"/participate/bridge/",target:"_blank"},'"Participate"'))),r.createElement("h3",null,"Would you like to know how to transfer your ETH to Polygon PoS?"),r.createElement("button",{className:"button",onClick:()=>e(5)},"Yes, I want to know the procedure"),r.createElement("br",null),r.createElement("br",null),r.createElement("button",{className:"button",onClick:()=>e(6)},"No, I want to go to the step of transferring my WETH to Archethic"),r.createElement("br",null),r.createElement("br",null),r.createElement("button",{className:"button",onClick:t},"Back"),r.createElement("br",null),r.createElement("br",null))}function d(){const{setCurrentStep:e,goBack:t}=(0,r.useContext)(a);return r.createElement("div",null,r.createElement("h2",null,"Transferring Your ETH to Polygon PoS"),r.createElement("br",null),r.createElement("ul",null,r.createElement("li",null,r.createElement("b",null,"IMPORTANT:")," ETH bridging to Archethic is only possible from the Polygon PoS Blockchain. Therefore, you must first transfer your ETH to Polygon PoS before bridging them to Archethic."),r.createElement("li",null,r.createElement("b",null,"Prerequisite:")," This step only concerns you if your ETH are already on your self-hosted EVM Wallet (e.g., Metamask, Rabby\u2026). If your ETH are on a Cex, refer to the step - ",r.createElement("u",null,r.createElement("a",{onClick:()=>e(3)},"Withdrawing Your UCO from a Cex")),". The process is the same for both UCO and ETH."),r.createElement("li",null,"The next operation will first consist of transferring your ETH to Polygon PoS if they are not already there."),r.createElement("li",null,r.createElement("b",null,"Note regarding ETH bridging from Ethereum:")," ETH is the local Coin of the Ethereum Blockchain. The ETH bridge from Ethereum to Polygon involves transferring ETH and also transforming these Coins into ERC-20 WETH Tokens on the Polygon PoS Blockchain (whose Coin is MATIC)."),r.createElement("li",null,"Log on to ",r.createElement("u",null,r.createElement("a",{href:"https://app.rango.exchange/swap/",target:"_blank",rel:"noopener noreferrer"},"https://app.rango.exchange/swap/")),r.createElement("br",null),"Rango Exchange helps find the least expensive bridge for the operation."),r.createElement("img",{src:"/img/tutorial/Tuto-DeFi-3.png"}),r.createElement("li",null,"Connect your self-hosted EVM Wallet"),r.createElement("li",null,"Select the blockchain where your ETH are located (e.g., Ethereum) for transfer"),r.createElement("li",null,"Select Polygon as the destination and WETH as the incoming token"),r.createElement("li",null,"Rango Exchange will propose the optimal route for the transfer: select the optimal route."),r.createElement("li",null,'Click on "Exchange".'),r.createElement("li",null,"Once the transfer is initiated, follow the instructions: The bridge will require several steps, several minutes, and authorizations (signatures) to be completed sequentially in your self-hosted EVM Wallet."),r.createElement("li",null,"Once the bridge is completed, you will receive a success message."),r.createElement("li",null,"The result of your bridge will materialize as the expected amount of WETH in your self-hosted EVM Wallet on the Polygon PoS blockchain")),r.createElement("h3",null,"Would you like to know how to transfer your WETH to Archethic?"),r.createElement("button",{className:"button",onClick:()=>e(6)},"Yes, I want to know the procedure"),r.createElement("br",null),r.createElement("br",null),r.createElement("button",{className:"button",onClick:t},"Back"),r.createElement("br",null),r.createElement("br",null))}function p(){const{setCurrentStep:e,goBack:t}=(0,r.useContext)(a);return r.createElement("div",null,r.createElement("h2",null,"Transferring Your WETH to Archethic"),r.createElement("br",null),r.createElement("ul",null,r.createElement("li",null,r.createElement("b",null,"Prerequisite:")," This step only concerns you if your WETH are already on your self-hosted EVM Wallet (e.g., Metamask, Rabby\u2026) and on the Polygon PoS."),r.createElement("li",null,"The WETH bridge will require paying fees on the Polygon PoS blockchain. Ensure you have sufficient MATIC on your self-hosted EVM Wallet for this purpose."),r.createElement("li",null,"The following operation involves sending your WETH from the Polygon PoS blockchain to Archethic."),r.createElement("li",null,"By the way, for your information, this operation will transform your ERC-20 WETH Tokens into aeETH Tokens on Archethic."),r.createElement("li",null,"Launch your Archethic Wallet (or create one by following the step ",r.createElement("u",null,r.createElement("a",{onClick:()=>e(2)},"Creating an Archethic Wallet")),")"),r.createElement("li",null,"Ensure that your self-hosted EVM Wallet is on the address and blockchain that hold your WETH for transfer"),r.createElement("li",null,"Access the Archethic Bridge: ",r.createElement("u",null,r.createElement("a",{href:"https://bridge.archethic.net/",target:"_blank",rel:"noopener noreferrer"},"https://bridge.archethic.net/"))),r.createElement("li",null,"In the main window:"),r.createElement("img",{src:"/img/tutorial/Tuto-DeFi-1.png"}),r.createElement("ul",null,r.createElement("li",null,"Select the Polygon PoS Blockchain as the origin"),r.createElement("li",null,"Select Archethic as the destination."),r.createElement("li",null,"Once the origin and destination blockchains are selected, choose WETH as the token to send"),r.createElement("li",null,"Based on your available WETH, enter the amount to transfer"),r.createElement("li",null,'Click on "Bridge" to initiate the transfer'),r.createElement("li",null,r.createElement("b",null,"Note: Do not hesitate to make a first trial with a small amount."))),r.createElement("img",{src:"/img/tutorial/Tuto-DeFi-4.png"}),r.createElement("li",null,"Once the transfer is initiated, follow the guidelines: The bridge will require several steps, several minutes, and multiple authorizations (signatures) to be completed sequentially in your self-hosted EVM Wallet and in your Archethic Wallet."),r.createElement("li",null,"Once the bridge is completed, you will receive a success message."),r.createElement("li",null,'If the amount of aeETH does not immediately appear in your Archethic Wallet, do not hesitate to click on the "Refresh" button')),r.createElement("h3",null,"Congratulations! You now know everything! You can now enjoy the Archethic ecosystem"),r.createElement("button",{className:"button",onClick:t},"Back"),r.createElement("br",null),r.createElement("br",null))}const f={id:"tuto_defi",title:"Tutoriel Archethic DeFi"},b=void 0,y={unversionedId:"participate/DeFi/tuto_defi",id:"participate/DeFi/tuto_defi",title:"Tutoriel Archethic DeFi",description:"",source:"@site/docs/participate/DeFi/README.mdx",sourceDirName:"participate/DeFi",slug:"/participate/DeFi/",permalink:"/participate/DeFi/",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"tuto_defi",title:"Tutoriel Archethic DeFi"},sidebar:"docs",previous:{title:"Participate",permalink:"/category/participate"},next:{title:"Archethic Web (aeHosting)",permalink:"/participate/aeweb/"}},g={},w=[],k={toc:w},C="wrapper";function T(e){let{components:t,...n}=e;return(0,o.kt)(C,(0,l.Z)({},k,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)(i,{mdxType:"TutoAEDeFi"}))}T.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/4417e8c8.7a9dbe60.js b/assets/js/4417e8c8.aba1304d.js similarity index 98% rename from assets/js/4417e8c8.7a9dbe60.js rename to assets/js/4417e8c8.aba1304d.js index be02e383d..2d12f7f89 100644 --- a/assets/js/4417e8c8.7a9dbe60.js +++ b/assets/js/4417e8c8.aba1304d.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4708],{3905:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>f});var i=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function a(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var c=i.createContext({}),p=function(e){var t=i.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},l=function(e){var t=p(e.components);return i.createElement(c.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},m=i.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,c=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),d=p(r),m=n,f=d["".concat(c,".").concat(m)]||d[m]||u[m]||o;return r?i.createElement(f,a(a({ref:t},l),{},{components:r})):i.createElement(f,a({ref:t},l))}));function f(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,a=new Array(o);a[0]=m;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[d]="string"==typeof e?e:n,a[1]=s;for(var p=2;p{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>u,frontMatter:()=>o,metadata:()=>s,toc:()=>p});var i=r(87462),n=(r(67294),r(3905));r(8209);const o={title:"Swaps, Liquidity, Farming",id:"core_concepts_1",sidebar_label:"Swaps, Liquidity, Farming"},a="Swaps, Liquidity Pools, Farming",s={unversionedId:"participate/dex/Core Concepts/core_concepts_1",id:"participate/dex/Core Concepts/core_concepts_1",title:"Swaps, Liquidity, Farming",description:"Swaps",source:"@site/docs/participate/dex/04-Core Concepts/01-core_concepts_1.md",sourceDirName:"participate/dex/04-Core Concepts",slug:"/participate/dex/Core Concepts/core_concepts_1",permalink:"/participate/dex/Core Concepts/core_concepts_1",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",sidebarPosition:1,frontMatter:{title:"Swaps, Liquidity, Farming",id:"core_concepts_1",sidebar_label:"Swaps, Liquidity, Farming"},sidebar:"docs",previous:{title:"Farm Lock",permalink:"/participate/dex/Overview/smart_contracts/farm-lock"},next:{title:"Financials, Fees, APR",permalink:"/participate/dex/Core Concepts/core_concepts_2"}},c={},p=[{value:"Swaps",id:"swaps",level:2},{value:"Liquidity Pools",id:"liquidity-pools",level:2},{value:"Farming",id:"farming",level:2}],l={toc:p},d="wrapper";function u(e){let{components:t,...r}=e;return(0,n.kt)(d,(0,i.Z)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"swaps-liquidity-pools-farming"},"Swaps, Liquidity Pools, Farming"),(0,n.kt)("h2",{id:"swaps"},"Swaps"),(0,n.kt)("p",null,"Swaps on aeSwap allow users to exchange one token for another through an automated market maker (AMM) model. This process involves selecting tokens to swap, reviewing transaction details such as fees, price impact, and minimum received, and executing the swap. The AMM provides liquidity from various pools, ensuring traders can execute swaps instantly without needing a direct counterparty."),(0,n.kt)("h2",{id:"liquidity-pools"},"Liquidity Pools"),(0,n.kt)("p",null,"Liquidity pools are the cornerstone of aeSwap, enabling the AMM mechanism. Users can add liquidity by depositing an equivalent value of two tokens, creating a market for those tokens to be traded. In return, liquidity providers receive LP (Liquidity Provider) tokens, representing their share of the pool and entitlement to a portion of the trading fees."),(0,n.kt)("h2",{id:"farming"},"Farming"),(0,n.kt)("p",null,"Yield farming on aeSwap rewards users for providing liquidity to selected pools. By depositing LP tokens into a farming contract, users can earn additional rewards, typically in the platform's native token. This incentivizes the provision of liquidity, contributing to the depth and stability of the market."))}u.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4708],{3905:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>f});var i=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function a(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var c=i.createContext({}),p=function(e){var t=i.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},l=function(e){var t=p(e.components);return i.createElement(c.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},m=i.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,c=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),d=p(r),m=n,f=d["".concat(c,".").concat(m)]||d[m]||u[m]||o;return r?i.createElement(f,a(a({ref:t},l),{},{components:r})):i.createElement(f,a({ref:t},l))}));function f(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,a=new Array(o);a[0]=m;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[d]="string"==typeof e?e:n,a[1]=s;for(var p=2;p{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>u,frontMatter:()=>o,metadata:()=>s,toc:()=>p});var i=r(87462),n=(r(67294),r(3905));r(8209);const o={title:"Swaps, Liquidity, Farming",id:"core_concepts_1",sidebar_label:"Swaps, Liquidity, Farming"},a="Swaps, Liquidity Pools, Farming",s={unversionedId:"participate/dex/Core Concepts/core_concepts_1",id:"participate/dex/Core Concepts/core_concepts_1",title:"Swaps, Liquidity, Farming",description:"Swaps",source:"@site/docs/participate/dex/04-Core Concepts/01-core_concepts_1.md",sourceDirName:"participate/dex/04-Core Concepts",slug:"/participate/dex/Core Concepts/core_concepts_1",permalink:"/participate/dex/Core Concepts/core_concepts_1",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",sidebarPosition:1,frontMatter:{title:"Swaps, Liquidity, Farming",id:"core_concepts_1",sidebar_label:"Swaps, Liquidity, Farming"},sidebar:"docs",previous:{title:"Farm Lock",permalink:"/participate/dex/Overview/smart_contracts/farm-lock"},next:{title:"Financials, Fees, APR",permalink:"/participate/dex/Core Concepts/core_concepts_2"}},c={},p=[{value:"Swaps",id:"swaps",level:2},{value:"Liquidity Pools",id:"liquidity-pools",level:2},{value:"Farming",id:"farming",level:2}],l={toc:p},d="wrapper";function u(e){let{components:t,...r}=e;return(0,n.kt)(d,(0,i.Z)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"swaps-liquidity-pools-farming"},"Swaps, Liquidity Pools, Farming"),(0,n.kt)("h2",{id:"swaps"},"Swaps"),(0,n.kt)("p",null,"Swaps on aeSwap allow users to exchange one token for another through an automated market maker (AMM) model. This process involves selecting tokens to swap, reviewing transaction details such as fees, price impact, and minimum received, and executing the swap. The AMM provides liquidity from various pools, ensuring traders can execute swaps instantly without needing a direct counterparty."),(0,n.kt)("h2",{id:"liquidity-pools"},"Liquidity Pools"),(0,n.kt)("p",null,"Liquidity pools are the cornerstone of aeSwap, enabling the AMM mechanism. Users can add liquidity by depositing an equivalent value of two tokens, creating a market for those tokens to be traded. In return, liquidity providers receive LP (Liquidity Provider) tokens, representing their share of the pool and entitlement to a portion of the trading fees."),(0,n.kt)("h2",{id:"farming"},"Farming"),(0,n.kt)("p",null,"Yield farming on aeSwap rewards users for providing liquidity to selected pools. By depositing LP tokens into a farming contract, users can earn additional rewards, typically in the platform's native token. This incentivizes the provision of liquidity, contributing to the depth and stability of the market."))}u.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file diff --git a/assets/js/441b3d3d.de6255c0.js b/assets/js/441b3d3d.69cf1157.js similarity index 99% rename from assets/js/441b3d3d.de6255c0.js rename to assets/js/441b3d3d.69cf1157.js index 15072be70..7f96552a1 100644 --- a/assets/js/441b3d3d.de6255c0.js +++ b/assets/js/441b3d3d.69cf1157.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2488],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>m});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),c=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},p=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},h=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),d=c(r),h=a,m=d["".concat(s,".").concat(h)]||d[h]||u[h]||i;return r?n.createElement(m,l(l({ref:t},p),{},{components:r})):n.createElement(m,l({ref:t},p))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=r.length,l=new Array(i);l[0]=h;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[d]="string"==typeof e?e:a,l[1]=o;for(var c=2;c{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>u,frontMatter:()=>i,metadata:()=>o,toc:()=>c});var n=r(87462),a=(r(67294),r(3905));r(8209);const i={id:"ledger-wallet",title:"Ledger wallet"},l="Introduction",o={unversionedId:"build/clients/ledger-wallet/ledger-wallet",id:"build/clients/ledger-wallet/ledger-wallet",title:"Ledger wallet",description:"A blockchain or crypto wallet is a way to manage, secure, and use cryptocurrencies such as UCO, Bitcoin, Ethereum and other digital assets based on a blockchain (for example, an NFT). There are two basic types of blockchain wallets: software wallets and hardware wallets.",source:"@site/docs/build/clients/ledger-wallet/README.md",sourceDirName:"build/clients/ledger-wallet",slug:"/build/clients/ledger-wallet/",permalink:"/build/clients/ledger-wallet/",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"ledger-wallet",title:"Ledger wallet"},sidebar:"docs",previous:{title:"Clients",permalink:"/category/clients"},next:{title:"Ledger Application API",permalink:"/build/clients/ledger-wallet/api"}},s={},c=[{value:"Synopsis",id:"synopsis",level:2},{value:"Prerequisites",id:"prerequisites",level:2},{value:"Installation Instructions",id:"installation-instructions",level:2},{value:"Testing",id:"testing",level:2},{value:"Demo",id:"demo",level:2}],p={toc:c},d="wrapper";function u(e){let{components:t,...r}=e;return(0,a.kt)(d,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"introduction"},"Introduction"),(0,a.kt)("p",null,"A blockchain or crypto wallet is a way to manage, secure, and use cryptocurrencies such as UCO, Bitcoin, Ethereum and other digital assets based on a blockchain (for example, an NFT). There are two basic types of blockchain wallets: software wallets and hardware wallets."),(0,a.kt)("p",null,"Types of software wallets include web (or crypto exchange) wallets, mobile wallets, and desktop wallets. A hardware wallet is a physical device that secures access to your cryptos offline (",(0,a.kt)("a",{parentName:"p",href:"https://www.fool.com/investing/stock-market/market-sectors/financials/blockchain-stocks/blockchain-wallet/#:~:text=There%20are%20two%20basic%20types,access%20to%20your%20cryptos%20offline."},"source"),"). This guide explains interaction and testing of hardware wallet, specifically the Ledger Device (Nano S) with archethic testnet."),(0,a.kt)("p",null,"A Ledger Device is a hardware root of trust based wallet that is considered one of the most secure ways to store your digital assets. Ledger uses an offline, or cold storage, method of generating private keys, making it a preferred method for many crypto users. "),(0,a.kt)("p",null,(0,a.kt)("img",{parentName:"p",src:"https://i.imgur.com/hlFqBsS.png",alt:null})),(0,a.kt)("p",null,"As given in the figure, there are 3 important components in order to support ledger device for a given blockchain."),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Bolos Application\nThis application is written in C and resides on the physical Ledger device. For Archethic's blockchain, this can be found on ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/archethic-ledger"},"Archethic's github")," and the functional documentation for the app can be found on the official ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/archethic-docs/blob/docusaurus/development/wallets/hardware/ledger/archethic_bolos_app.md"},"docs repository"),".")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Companion App\nThis is the application which acts like a bridge of communication between user/blockchain and the Bolos application mentioned above. For Archethic's blockchain, this is ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/ledger-cli-app"},"ALCA (CLI)")," and Flutter based ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/archethic_wallet"},"Wallet (GUI)"),".\n")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Remote backend\nThis is the node which accepts data (signed transactions) from the Companion app mentioned above in order to include it into the blockchain. For Archethic's blockchain, it is the testnet node. Once transaction is published, the data can be verified on ",(0,a.kt)("a",{parentName:"p",href:"https://testnet.archethic.net/explorer"},"archethic.net"),"."))),(0,a.kt)("h2",{id:"synopsis"},"Synopsis"),(0,a.kt)("p",null,"This guide will help you to connect your Ledger device to ALCA, dedicated Command Line Interface (CLI). ALCA (Archethic Ledger CLI App) enables you to Send and Receive UCOs on Archethic Testnet with the Ledger Device."),(0,a.kt)("p",null,"Soon, ALCA will be replaced by Archethic's Wallet, which is GUI-based, thus enabling non-tech users to experiment with Archethic's testnet."),(0,a.kt)("admonition",{type:"success"},(0,a.kt)("p",{parentName:"admonition"},"This is a developer guide and not for general public. This guide assumes the reader has a prior knowledge of ArchEthic and Ledger Ecosystem.")),(0,a.kt)("h2",{id:"prerequisites"},"Prerequisites"),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"A more general public guide will soon be released once security audit for developer release is done and GUI support for Ledger Device is added to current Archethic's Wallet (Mobile + Desktop)")),(0,a.kt)("p",null,"Before You Start, Make Sure:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"You\u2019ve ",(0,a.kt)("a",{parentName:"li",href:"https://support.ledger.com/hc/en-us/articles/360000613793?docs=true"},"initialized")," your Ledger Device."),(0,a.kt)("li",{parentName:"ul"},"The latest firmware is ",(0,a.kt)("a",{parentName:"li",href:"https://support.ledger.com/hc/en-us/articles/360002731113?docs=true"},"installed")," (Ledger Nano S)."),(0,a.kt)("li",{parentName:"ul"},"Archethic Bolos App is ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/archethic-foundation/archethic-ledger"},"loaded")," on Ledger (Tested with Nano S only)."),(0,a.kt)("li",{parentName:"ul"},"Install the latest version of ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/archethic-foundation/ledger-cli-app"},"ALCA"),"."),(0,a.kt)("li",{parentName:"ul"},"Nodejs (v14.0+)")),(0,a.kt)("h2",{id:"installation-instructions"},"Installation Instructions"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Clone the repository from ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/archethic-foundation/ledger-cli-app.git"},"github")),(0,a.kt)("li",{parentName:"ul"},"Run ",(0,a.kt)("inlineCode",{parentName:"li"},"yarn")," or ",(0,a.kt)("inlineCode",{parentName:"li"},"npm install")," from root folder of the project"),(0,a.kt)("li",{parentName:"ul"},"Run ",(0,a.kt)("inlineCode",{parentName:"li"},"npm link")),(0,a.kt)("li",{parentName:"ul"},"Use it as ledger_cli (commands)")),(0,a.kt)("h2",{id:"testing"},"Testing"),(0,a.kt)("p",null,"From Terminal use it as ",(0,a.kt)("inlineCode",{parentName:"p"},"ledger_cli (about | getAppVersion | getPublicKey | getArchAddress | sendTxn)")),(0,a.kt)("h2",{id:"demo"},"Demo"),(0,a.kt)("p",null,"The demo shows various screens a user will be shown for getting origin public key, onchain wallet address and performing signature on transaction involving single UCO transfer at a time between 2 parties."),(0,a.kt)("p",null,(0,a.kt)("img",{parentName:"p",src:"https://i.imgur.com/gk8Q9Ku.gif",alt:null})))}u.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2488],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>m});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),c=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},p=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},h=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),d=c(r),h=a,m=d["".concat(s,".").concat(h)]||d[h]||u[h]||i;return r?n.createElement(m,l(l({ref:t},p),{},{components:r})):n.createElement(m,l({ref:t},p))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=r.length,l=new Array(i);l[0]=h;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[d]="string"==typeof e?e:a,l[1]=o;for(var c=2;c{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>u,frontMatter:()=>i,metadata:()=>o,toc:()=>c});var n=r(87462),a=(r(67294),r(3905));r(8209);const i={id:"ledger-wallet",title:"Ledger wallet"},l="Introduction",o={unversionedId:"build/clients/ledger-wallet/ledger-wallet",id:"build/clients/ledger-wallet/ledger-wallet",title:"Ledger wallet",description:"A blockchain or crypto wallet is a way to manage, secure, and use cryptocurrencies such as UCO, Bitcoin, Ethereum and other digital assets based on a blockchain (for example, an NFT). There are two basic types of blockchain wallets: software wallets and hardware wallets.",source:"@site/docs/build/clients/ledger-wallet/README.md",sourceDirName:"build/clients/ledger-wallet",slug:"/build/clients/ledger-wallet/",permalink:"/build/clients/ledger-wallet/",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"ledger-wallet",title:"Ledger wallet"},sidebar:"docs",previous:{title:"Clients",permalink:"/category/clients"},next:{title:"Ledger Application API",permalink:"/build/clients/ledger-wallet/api"}},s={},c=[{value:"Synopsis",id:"synopsis",level:2},{value:"Prerequisites",id:"prerequisites",level:2},{value:"Installation Instructions",id:"installation-instructions",level:2},{value:"Testing",id:"testing",level:2},{value:"Demo",id:"demo",level:2}],p={toc:c},d="wrapper";function u(e){let{components:t,...r}=e;return(0,a.kt)(d,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"introduction"},"Introduction"),(0,a.kt)("p",null,"A blockchain or crypto wallet is a way to manage, secure, and use cryptocurrencies such as UCO, Bitcoin, Ethereum and other digital assets based on a blockchain (for example, an NFT). There are two basic types of blockchain wallets: software wallets and hardware wallets."),(0,a.kt)("p",null,"Types of software wallets include web (or crypto exchange) wallets, mobile wallets, and desktop wallets. A hardware wallet is a physical device that secures access to your cryptos offline (",(0,a.kt)("a",{parentName:"p",href:"https://www.fool.com/investing/stock-market/market-sectors/financials/blockchain-stocks/blockchain-wallet/#:~:text=There%20are%20two%20basic%20types,access%20to%20your%20cryptos%20offline."},"source"),"). This guide explains interaction and testing of hardware wallet, specifically the Ledger Device (Nano S) with archethic testnet."),(0,a.kt)("p",null,"A Ledger Device is a hardware root of trust based wallet that is considered one of the most secure ways to store your digital assets. Ledger uses an offline, or cold storage, method of generating private keys, making it a preferred method for many crypto users. "),(0,a.kt)("p",null,(0,a.kt)("img",{parentName:"p",src:"https://i.imgur.com/hlFqBsS.png",alt:null})),(0,a.kt)("p",null,"As given in the figure, there are 3 important components in order to support ledger device for a given blockchain."),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Bolos Application\nThis application is written in C and resides on the physical Ledger device. For Archethic's blockchain, this can be found on ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/archethic-ledger"},"Archethic's github")," and the functional documentation for the app can be found on the official ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/archethic-docs/blob/docusaurus/development/wallets/hardware/ledger/archethic_bolos_app.md"},"docs repository"),".")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Companion App\nThis is the application which acts like a bridge of communication between user/blockchain and the Bolos application mentioned above. For Archethic's blockchain, this is ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/ledger-cli-app"},"ALCA (CLI)")," and Flutter based ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/archethic_wallet"},"Wallet (GUI)"),".\n")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Remote backend\nThis is the node which accepts data (signed transactions) from the Companion app mentioned above in order to include it into the blockchain. For Archethic's blockchain, it is the testnet node. Once transaction is published, the data can be verified on ",(0,a.kt)("a",{parentName:"p",href:"https://testnet.archethic.net/explorer"},"archethic.net"),"."))),(0,a.kt)("h2",{id:"synopsis"},"Synopsis"),(0,a.kt)("p",null,"This guide will help you to connect your Ledger device to ALCA, dedicated Command Line Interface (CLI). ALCA (Archethic Ledger CLI App) enables you to Send and Receive UCOs on Archethic Testnet with the Ledger Device."),(0,a.kt)("p",null,"Soon, ALCA will be replaced by Archethic's Wallet, which is GUI-based, thus enabling non-tech users to experiment with Archethic's testnet."),(0,a.kt)("admonition",{type:"success"},(0,a.kt)("p",{parentName:"admonition"},"This is a developer guide and not for general public. This guide assumes the reader has a prior knowledge of ArchEthic and Ledger Ecosystem.")),(0,a.kt)("h2",{id:"prerequisites"},"Prerequisites"),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"A more general public guide will soon be released once security audit for developer release is done and GUI support for Ledger Device is added to current Archethic's Wallet (Mobile + Desktop)")),(0,a.kt)("p",null,"Before You Start, Make Sure:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"You\u2019ve ",(0,a.kt)("a",{parentName:"li",href:"https://support.ledger.com/hc/en-us/articles/360000613793?docs=true"},"initialized")," your Ledger Device."),(0,a.kt)("li",{parentName:"ul"},"The latest firmware is ",(0,a.kt)("a",{parentName:"li",href:"https://support.ledger.com/hc/en-us/articles/360002731113?docs=true"},"installed")," (Ledger Nano S)."),(0,a.kt)("li",{parentName:"ul"},"Archethic Bolos App is ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/archethic-foundation/archethic-ledger"},"loaded")," on Ledger (Tested with Nano S only)."),(0,a.kt)("li",{parentName:"ul"},"Install the latest version of ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/archethic-foundation/ledger-cli-app"},"ALCA"),"."),(0,a.kt)("li",{parentName:"ul"},"Nodejs (v14.0+)")),(0,a.kt)("h2",{id:"installation-instructions"},"Installation Instructions"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Clone the repository from ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/archethic-foundation/ledger-cli-app.git"},"github")),(0,a.kt)("li",{parentName:"ul"},"Run ",(0,a.kt)("inlineCode",{parentName:"li"},"yarn")," or ",(0,a.kt)("inlineCode",{parentName:"li"},"npm install")," from root folder of the project"),(0,a.kt)("li",{parentName:"ul"},"Run ",(0,a.kt)("inlineCode",{parentName:"li"},"npm link")),(0,a.kt)("li",{parentName:"ul"},"Use it as ledger_cli (commands)")),(0,a.kt)("h2",{id:"testing"},"Testing"),(0,a.kt)("p",null,"From Terminal use it as ",(0,a.kt)("inlineCode",{parentName:"p"},"ledger_cli (about | getAppVersion | getPublicKey | getArchAddress | sendTxn)")),(0,a.kt)("h2",{id:"demo"},"Demo"),(0,a.kt)("p",null,"The demo shows various screens a user will be shown for getting origin public key, onchain wallet address and performing signature on transaction involving single UCO transfer at a time between 2 parties."),(0,a.kt)("p",null,(0,a.kt)("img",{parentName:"p",src:"https://i.imgur.com/gk8Q9Ku.gif",alt:null})))}u.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file diff --git a/assets/js/44c96576.13bef4d4.js b/assets/js/44c96576.e1033bcf.js similarity index 99% rename from assets/js/44c96576.13bef4d4.js rename to assets/js/44c96576.e1033bcf.js index f8ff2f9ad..8cd932cfb 100644 --- a/assets/js/44c96576.13bef4d4.js +++ b/assets/js/44c96576.e1033bcf.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5352],{3905:(t,e,n)=>{n.d(e,{Zo:()=>u,kt:()=>g});var A=n(67294);function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function o(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var A=Object.getOwnPropertySymbols(t);e&&(A=A.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,A)}return n}function c(t){for(var e=1;e=0||(r[n]=t[n]);return r}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(A=0;A=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}var i=A.createContext({}),l=function(t){var e=A.useContext(i),n=e;return t&&(n="function"==typeof t?t(e):c(c({},e),t)),n},u=function(t){var e=l(t.components);return A.createElement(i.Provider,{value:e},t.children)},p="mdxType",s={inlineCode:"code",wrapper:function(t){var e=t.children;return A.createElement(A.Fragment,{},e)}},d=A.forwardRef((function(t,e){var n=t.components,r=t.mdxType,o=t.originalType,i=t.parentName,u=a(t,["components","mdxType","originalType","parentName"]),p=l(n),d=r,g=p["".concat(i,".").concat(d)]||p[d]||s[d]||o;return n?A.createElement(g,c(c({ref:e},u),{},{components:n})):A.createElement(g,c({ref:e},u))}));function g(t,e){var n=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var o=n.length,c=new Array(o);c[0]=d;var a={};for(var i in e)hasOwnProperty.call(e,i)&&(a[i]=e[i]);a.originalType=t,a[p]="string"==typeof t?t:r,c[1]=a;for(var l=2;l{n.r(e),n.d(e,{assets:()=>i,contentTitle:()=>c,default:()=>s,frontMatter:()=>o,metadata:()=>a,toc:()=>l});var A=n(87462),r=(n(67294),n(3905));n(8209);const o={id:"functions",title:"Smart Contracts Playground - Functions",sidebar_label:"Function calls",sidebar_position:3},c=void 0,a={unversionedId:"build/smart-contracts/playground/functions",id:"build/smart-contracts/playground/functions",title:"Smart Contracts Playground - Functions",description:"Since 1.3, we introduced the capability to have some public functions in to smart contract code.",source:"@site/docs/build/smart-contracts/playground/function.md",sourceDirName:"build/smart-contracts/playground",slug:"/build/smart-contracts/playground/functions",permalink:"/build/smart-contracts/playground/functions",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",sidebarPosition:3,frontMatter:{id:"functions",title:"Smart Contracts Playground - Functions",sidebar_label:"Function calls",sidebar_position:3},sidebar:"docs",previous:{title:"Deploy",permalink:"/build/smart-contracts/playground/deploy"},next:{title:"Transaction form",permalink:"/build/smart-contracts/playground/transaction-form"}},i={},l=[],u={toc:l},p="wrapper";function s(t){let{components:e,...o}=t;return(0,r.kt)(p,(0,A.Z)({},u,o,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"Since 1.3, we introduced the capability to have some public functions in to smart contract code."),(0,r.kt)("p",null,"The playground have been updated to support this feature and be able to test it by calling those functions."),(0,r.kt)("p",null,"Let's create a small smart contract that use function to export some data to the user"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},"@version 1\ncondition triggered_by: transaction, on: increment(), as: []\n\nactions triggered_by: transaction, on: increment() do\n counter = String.to_number(contract.content) + 1\n Contract.set_content String.from_number(counter)\nend\n\nexport fun counter() do\n Json.to_string([counter: contract.content])\nend\n")),(0,r.kt)("p",null,"Firstly, we initiate a transaction to increment the counter and update the contract"),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"a contract that send a transaction to increment a counter",src:n(32008).Z,width:"3596",height:"2390"})),(0,r.kt)("p",null,"Now to test the function, we are going to open the function panel by clicking on the function button:"),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"the trigger button",src:n(21823).Z,width:"112",height:"94"})),(0,r.kt)("p",null,"We can see the function panel on the left with the list of function availables to be called"),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"a function panel opened",src:n(71205).Z,width:"3596",height:"2390"})),(0,r.kt)("p",null,'After clicking on "Execute", we can see in the console the return of the function'),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"a function executed",src:n(79978).Z,width:"3596",height:"2390"})))}s.isMDXComponent=!0},21823:(t,e,n)=>{n.d(e,{Z:()=>A});const A="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHAAAABeCAYAAAD7RpANAAAKpWlDQ1BJQ0MgUHJvZmlsZQAASImVlwdQk9kWx+/3pYcECAm9hRqKIJ0AUkIPRZAOohKSAKGEEBJU7MriCq4oIiKgLuiqgIIVkLViwcKiYK8bZBFR18WCDZX3BYbg7pv33rwzc3N+c3LvOefeuXfm/wFARnNEomxYFYAcoUQcFeRLT0hMouOGABZoAgqwBsocbr6IFRkZBhCb8n+397cBJPc3bOS5/v3//2oUHj+fCwAUiXAqL5+bg/BRZMi4IrEEAFQFEjdZKBHJuR1hmhhpEOFuOadPskzOqZP8bmJOTJQfAGg8AHgShyNOB4BEQ+L0Am46kofkhLCdkCcQIsxD2CsnJxfxpN0IWyBzRAjL8zNTv8uT/recqYqcHE66gif3MmF4f0G+KJuz+P88jv9tOdnSqRrmyCBliIOj5PWQM7ublRuqYGHq7IgpFvAme5JzhjQ4doq5+X5JU8zj+Icq1mbPDpviNEEgW5FHwo6ZYn5+QPQUi3OjFLXSxH6sKeaIp+tKs2IV8Qw+W5G/MCMmfooLBHGzpzg/Kzp0eo6fIi6WRin65wuDfKfrBir2npP/3X4FbMVaSUZMsGLvnOn++ULWdM78BEVvPL5/wPScWMV8kcRXUUuUHamYz88OUsTzC6IVayXIhZxeG6k4w0xOSOQUAwEIBxzAlfAXSeTN++WKFosF6RkSOgt5VXw6W8i1nUF3sHNwBED+RievwMi1ibcHaVOmY8XJyJV+MT4+3jodC74GwKFXABA/T8cYjQCoMAC4tIwrFRdMxtDyHwwgAhVAA9rAAJgAC2ADHIAL8AA+IACEgAgQAxLBfMAFGSAHiMFCsBSsAsWgFGwEW0A12Al2gX3gADgM2sAJcBZcBFfBdXALPAAyMAhegBHwHoxBEISDyBAV0oYMITPIGnKAmJAXFACFQVFQIpQCpUNCSAothdZApVA5VA3VQQ3QIeg4dBa6DPVC96B+aBh6A32GUTAJpsH6sDk8E2bCLDgUjoHnwelwHlwIF8Eb4Cq4Ht4Pt8Jn4avwLVgGv4BHUQClhNJAGaFsUEyUHyoClYRKQ4lRy1ElqEpUPaoZ1YHqQt1AyVAvUZ/QWDQVTUfboD3QwehYNBedh16OXo+uRu9Dt6LPo2+g+9Ej6G8YMkYPY41xx7AxCZh0zEJMMaYSswdzDHMBcwsziHmPxWI1sAysKzYYm4jNxC7Brsdux7Zgz2B7sQPYURwOp42zxnniInAcnARXjNuG2487jevDDeI+4pXwhngHfCA+CS/Er8ZX4hvxp/B9+CH8GEGVYEZwJ0QQeITFhDLCbkIH4RphkDBGpBAZRE9iDDGTuIpYRWwmXiA+JL5VUlIyVnJTmqMkUFqpVKV0UOmSUr/SJ5IayYrkR0omSUkbSHtJZ0j3SG/JZLI52YecRJaQN5AbyOfIj8kflanKtspsZZ7yCuUa5VblPuVXKgQVMxWWynyVQpVKlSMq11ReqhJUzVX9VDmqy1VrVI+r3lEdpVAp9pQISg5lPaWRcpnyTA2nZq4WoMZTK1LbpXZObYCKoppQ/ahc6hrqbuoF6iANS2PQ2LRMWintAK2HNqKupu6kHqe+SL1G/aS6TAOlYa7B1sjWKNM4rHFb47OmviZLk6+5TrNZs0/zg5aulo8WX6tEq0XrltZnbbp2gHaW9ibtNu1HOmgdK505Ogt1duhc0HmpS9P10OXqluge1r2vB+tZ6UXpLdHbpdetN6pvoB+kL9Lfpn9O/6WBhoGPQaZBhcEpg2FDqqGXocCwwvC04XO6Op1Fz6ZX0c/TR4z0jIKNpEZ1Rj1GY8YM41jj1cYtxo9MiCZMkzSTCpNOkxFTQ9Nw06WmTab3zQhmTLMMs61mXWYfzBnm8eZrzdvMnzG0GGxGIaOJ8dCCbOFtkWdRb3HTEmvJtMyy3G553Qq2crbKsKqxumYNW7tYC6y3W/fOwMxwmyGcUT/jjg3JhmVTYNNk02+rYRtmu9q2zfbVTNOZSTM3zeya+c3O2S7bbrfdA3s1+xD71fYd9m8crBy4DjUONx3JjoGOKxzbHV87WTvxnXY43XWmOoc7r3XudP7q4uoidml2GXY1dU1xrXW9w6QxI5nrmZfcMG6+bivcTrh9cndxl7gfdv/Lw8Yjy6PR49ksxiz+rN2zBjyNPTmedZ4yL7pXitfPXjJvI2+Od733Ex8TH57PHp8hliUrk7Wf9crXzlfse8z3g5+73zK/M/4o/yD/Ev+eALWA2IDqgMeBxoHpgU2BI0HOQUuCzgRjgkODNwXfYeuzuewG9kiIa8iykPOhpNDo0OrQJ2FWYeKwjnA4PCR8c/jD2WazhbPbIkAEO2JzxKNIRmRe5K9zsHMi59TMeRplH7U0qiuaGr0gujH6fYxvTFnMg1iLWGlsZ5xKXHJcQ9yHeP/48nhZwsyEZQlXE3USBYntSbikuKQ9SaNzA+ZumTuY7JxcnHx7HmPeonmX5+vMz55/coHKAs6CIymYlPiUxpQvnAhOPWc0lZ1amzrC9eNu5b7g+fAqeMN8T345fyjNM6087Vm6Z/rm9OEM74zKjJcCP0G14HVmcObOzA9ZEVl7s8az47NbcvA5KTnHhWrCLOH5XIPcRbm9ImtRsUiW5563JW9EHCrekw/lz8tvl9AQMdQttZD+IO0v8CqoKfi4MG7hkUWURcJF3YutFq9bPFQYWPjLEvQS7pLOpUZLVy3tX8ZaVrccWp66vHOFyYqiFYMrg1buW0VclbXqt9V2q8tXv1sTv6ajSL9oZdHAD0E/NBUrF4uL76z1WLvzR/SPgh971jmu27buWwmv5EqpXWll6Zf13PVXfrL/qeqn8Q1pG3rKXMp2bMRuFG68vcl7075ySnlh+cDm8M2tFfSKkop3WxZsuVzpVLlzK3GrdKusKqyqfZvpto3bvlRnVN+q8a1pqdWrXVf7YTtve98Onx3NO/V3lu78/LPg57t1QXWt9eb1lbuwuwp2Pd0dt7vrF+YvDXt09pTu+bpXuFe2L2rf+QbXhoZGvcayJrhJ2jS8P3n/9QP+B9qbbZrrWjRaSg+Cg9KDzw+lHLp9OPRw5xHmkeajZkdrj1GPlbRCrYtbR9oy2mTtie29x0OOd3Z4dBz71fbXvSeMTtScVD9Zdop4qujU+OnC06NnRGdenk0/O9C5oPPBuYRzN8/POd9zIfTCpYuBF891sbpOX/K8dOKy++XjV5hX2q66XG3tdu4+9pvzb8d6XHpar7lea7/udr2jd1bvqT7vvrM3/G9cvMm+efXW7Fu9t2Nv372TfEd2l3f32b3se6/vF9wfe7DyIeZhySPVR5WP9R7X/275e4vMRXay37+/+0n0kwcD3IEXf+T/8WWw6Cn5aeWQ4VDDM4dnJ4YDh68/n/t88IXoxdjL4j8pf9a+snh19C+fv7pHEkYGX4tfj79Z/1b77d53Tu86RyNHH7/PeT/2oeSj9sd9n5ifuj7Hfx4aW/gF96Xqq+XXjm+h3x6O54yPizhizoQUQCEDTksD4M1eAMiJAFCvI/ph7qSGnjBoUvdPEPhPPKmzJ8wFgGbEyaWQXAoekUtYHwCUER+B+BgfADs6KsaU3p3Q5nLDIl8pzdTjvLztfd8kdeAfNqnbv+v7nx7Is8ql/9/9vwC01QYO/dnrkQAAAIplWElmTU0AKgAAAAgABAEaAAUAAAABAAAAPgEbAAUAAAABAAAARgEoAAMAAAABAAIAAIdpAAQAAAABAAAATgAAAAAAAACQAAAAAQAAAJAAAAABAAOShgAHAAAAEgAAAHigAgAEAAAAAQAAAHCgAwAEAAAAAQAAAF4AAAAAQVNDSUkAAABTY3JlZW5zaG90ADOtIgAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAAdVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDYuMC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8ZXhpZjpQaXhlbFlEaW1lbnNpb24+OTQ8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+MTEyPC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6VXNlckNvbW1lbnQ+U2NyZWVuc2hvdDwvZXhpZjpVc2VyQ29tbWVudD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CvHe0K8AAAAcaURPVAAAAAIAAAAAAAAALwAAACgAAAAvAAAALwAAAex9UtyPAAABuElEQVR4AeyYUUrDQBRFpxtJ8NMN+KUuRHEfIn5KcR+iC6nZSLIBdQXKC0x5DEYzSGXO6x0onaSTcuee3te8bE5Ozz6TBtKBj7f3tBFAJLtZtABy2QkgnJ0ACmAEB+B70H+gAMIdgMtXAgUQ7gBcvhIogHAH4PKVQAGEOwCXrwQKINwBuHwlUADhDsDlK4ECCHcALl8JFEC4A3D5SqAAwh2Ay1cCBRDuAFy+EiiAcAfg8pVAAWzfgcuL89R3Xer7Lo3jlMZpSrvXoX3hKxSGT+DN9dUMrvTCQO6GYQZafkY6Dg1wCZ4H9LB99Ie4eViAVi4NoB9WNnMpzeftHLmchgXo02fl8un5JTObwRpgG+Vn+0WQSUiAZfoMnoHKw25q7JUHuYyGBPhT+jK0+7vbeaoEZkcaes9wTNISIF9CG5JeLSVcAn8rn9UONX5BOIBrymfjTKrkCWCVXe0tDgXw2Mqn/ZywAPNNiM+ENem+PfC9n63zrYS/jjzHASx7uFrz6U9eyv3iAPoWodzMmmMBXOPSAdf8NYHlU5kDSv2Xr8YlcMmV8gaG/HhsaY/fnQ8D8Nj6vwzTAH4BAAD//7rSIMsAAAJWSURBVO2ZUU4CQRBEl4tI/PQCfiEH0XgPY/w0xnsYPQhyEbiAegJNuZnQdGZrhy+6druThWV6ZqmtR09DWFxeXf924nF/d9stlxf/d7Hb7bu39w/xO2qT//P13S3UAQIcAJYAPECcQ0wS4PPLa5VdqdLN57bD4WN9s+pwIFQ+BJMAWMDA+KHt08LBPA9xLI81EWM2AP02Cxi2yp4eH474eMBHyUAv5AF6MBaK99lXGfLYbm0FY0wFHrRODuBQ/8PNIjysfvTwqAQPquUBWiBD/e+Apz+za2yudb1dc+7zWQKE6b7nYWysejEnWkgDPKX/WeNrvRB5te0TmicFsKWChuDBDIQaRGmAtpe19C9fsQCGdRi3oQQxNMBiLEyuxakAfd8roGpVyX6O1LScaywsQGtqbWv01TRmuL0ezC7wivH2w4Cxlooua8/5HBagNdSbDcM8wBpka6y9HsZr8+2c2nva60U5DwvwlIppqRYAX170x2a7Hfy3Au+LeWxOFHjQERYgxPmeBVC7fd8PYXSJse2zzJvic2iAvgprAFqqr7ZuKmOhAcJkBnHu8OBPeIAQif61XvVbJs7LVoovGnMPCYBzh8TuPwEydwRyCVAAEpOYAJk7ArkEKACJSUyAzB2BXAIUgMQkJkDmjkAuAQpAYhITIHNHIJcABSAxiQmQuSOQS4ACkJjEBMjcEcglQAFITGICZO4I5BKgACQmMQEydwRyCVAAEpOYAJk7ArkEKACJSUyAzB2BXAIUgMQkJkDmjkAuAQpAYhITIHNHIJcABSAxiQD4B7G2G45A/ZFmAAAAAElFTkSuQmCC"},32008:(t,e,n)=>{n.d(e,{Z:()=>A});const A=n.p+"assets/images/playground_function_example1-8e7185753db9849b034705c5f540ae77.png"},71205:(t,e,n)=>{n.d(e,{Z:()=>A});const A=n.p+"assets/images/playground_function_panel-3d1f5c7d5ecc007093c9cd538e14ccad.png"},79978:(t,e,n)=>{n.d(e,{Z:()=>A});const A=n.p+"assets/images/playground_function_panel2-125e7cc112e2a73e0bf30f17ace555bd.png"},8209:(t,e,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5352],{3905:(t,e,n)=>{n.d(e,{Zo:()=>u,kt:()=>g});var A=n(67294);function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function o(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var A=Object.getOwnPropertySymbols(t);e&&(A=A.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,A)}return n}function c(t){for(var e=1;e=0||(r[n]=t[n]);return r}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(A=0;A=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}var i=A.createContext({}),l=function(t){var e=A.useContext(i),n=e;return t&&(n="function"==typeof t?t(e):c(c({},e),t)),n},u=function(t){var e=l(t.components);return A.createElement(i.Provider,{value:e},t.children)},p="mdxType",s={inlineCode:"code",wrapper:function(t){var e=t.children;return A.createElement(A.Fragment,{},e)}},d=A.forwardRef((function(t,e){var n=t.components,r=t.mdxType,o=t.originalType,i=t.parentName,u=a(t,["components","mdxType","originalType","parentName"]),p=l(n),d=r,g=p["".concat(i,".").concat(d)]||p[d]||s[d]||o;return n?A.createElement(g,c(c({ref:e},u),{},{components:n})):A.createElement(g,c({ref:e},u))}));function g(t,e){var n=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var o=n.length,c=new Array(o);c[0]=d;var a={};for(var i in e)hasOwnProperty.call(e,i)&&(a[i]=e[i]);a.originalType=t,a[p]="string"==typeof t?t:r,c[1]=a;for(var l=2;l{n.r(e),n.d(e,{assets:()=>i,contentTitle:()=>c,default:()=>s,frontMatter:()=>o,metadata:()=>a,toc:()=>l});var A=n(87462),r=(n(67294),n(3905));n(8209);const o={id:"functions",title:"Smart Contracts Playground - Functions",sidebar_label:"Function calls",sidebar_position:3},c=void 0,a={unversionedId:"build/smart-contracts/playground/functions",id:"build/smart-contracts/playground/functions",title:"Smart Contracts Playground - Functions",description:"Since 1.3, we introduced the capability to have some public functions in to smart contract code.",source:"@site/docs/build/smart-contracts/playground/function.md",sourceDirName:"build/smart-contracts/playground",slug:"/build/smart-contracts/playground/functions",permalink:"/build/smart-contracts/playground/functions",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",sidebarPosition:3,frontMatter:{id:"functions",title:"Smart Contracts Playground - Functions",sidebar_label:"Function calls",sidebar_position:3},sidebar:"docs",previous:{title:"Deploy",permalink:"/build/smart-contracts/playground/deploy"},next:{title:"Transaction form",permalink:"/build/smart-contracts/playground/transaction-form"}},i={},l=[],u={toc:l},p="wrapper";function s(t){let{components:e,...o}=t;return(0,r.kt)(p,(0,A.Z)({},u,o,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"Since 1.3, we introduced the capability to have some public functions in to smart contract code."),(0,r.kt)("p",null,"The playground have been updated to support this feature and be able to test it by calling those functions."),(0,r.kt)("p",null,"Let's create a small smart contract that use function to export some data to the user"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},"@version 1\ncondition triggered_by: transaction, on: increment(), as: []\n\nactions triggered_by: transaction, on: increment() do\n counter = String.to_number(contract.content) + 1\n Contract.set_content String.from_number(counter)\nend\n\nexport fun counter() do\n Json.to_string([counter: contract.content])\nend\n")),(0,r.kt)("p",null,"Firstly, we initiate a transaction to increment the counter and update the contract"),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"a contract that send a transaction to increment a counter",src:n(32008).Z,width:"3596",height:"2390"})),(0,r.kt)("p",null,"Now to test the function, we are going to open the function panel by clicking on the function button:"),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"the trigger button",src:n(21823).Z,width:"112",height:"94"})),(0,r.kt)("p",null,"We can see the function panel on the left with the list of function availables to be called"),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"a function panel opened",src:n(71205).Z,width:"3596",height:"2390"})),(0,r.kt)("p",null,'After clicking on "Execute", we can see in the console the return of the function'),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"a function executed",src:n(79978).Z,width:"3596",height:"2390"})))}s.isMDXComponent=!0},21823:(t,e,n)=>{n.d(e,{Z:()=>A});const A="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHAAAABeCAYAAAD7RpANAAAKpWlDQ1BJQ0MgUHJvZmlsZQAASImVlwdQk9kWx+/3pYcECAm9hRqKIJ0AUkIPRZAOohKSAKGEEBJU7MriCq4oIiKgLuiqgIIVkLViwcKiYK8bZBFR18WCDZX3BYbg7pv33rwzc3N+c3LvOefeuXfm/wFARnNEomxYFYAcoUQcFeRLT0hMouOGABZoAgqwBsocbr6IFRkZBhCb8n+397cBJPc3bOS5/v3//2oUHj+fCwAUiXAqL5+bg/BRZMi4IrEEAFQFEjdZKBHJuR1hmhhpEOFuOadPskzOqZP8bmJOTJQfAGg8AHgShyNOB4BEQ+L0Am46kofkhLCdkCcQIsxD2CsnJxfxpN0IWyBzRAjL8zNTv8uT/recqYqcHE66gif3MmF4f0G+KJuz+P88jv9tOdnSqRrmyCBliIOj5PWQM7ublRuqYGHq7IgpFvAme5JzhjQ4doq5+X5JU8zj+Icq1mbPDpviNEEgW5FHwo6ZYn5+QPQUi3OjFLXSxH6sKeaIp+tKs2IV8Qw+W5G/MCMmfooLBHGzpzg/Kzp0eo6fIi6WRin65wuDfKfrBir2npP/3X4FbMVaSUZMsGLvnOn++ULWdM78BEVvPL5/wPScWMV8kcRXUUuUHamYz88OUsTzC6IVayXIhZxeG6k4w0xOSOQUAwEIBxzAlfAXSeTN++WKFosF6RkSOgt5VXw6W8i1nUF3sHNwBED+RievwMi1ibcHaVOmY8XJyJV+MT4+3jodC74GwKFXABA/T8cYjQCoMAC4tIwrFRdMxtDyHwwgAhVAA9rAAJgAC2ADHIAL8AA+IACEgAgQAxLBfMAFGSAHiMFCsBSsAsWgFGwEW0A12Al2gX3gADgM2sAJcBZcBFfBdXALPAAyMAhegBHwHoxBEISDyBAV0oYMITPIGnKAmJAXFACFQVFQIpQCpUNCSAothdZApVA5VA3VQQ3QIeg4dBa6DPVC96B+aBh6A32GUTAJpsH6sDk8E2bCLDgUjoHnwelwHlwIF8Eb4Cq4Ht4Pt8Jn4avwLVgGv4BHUQClhNJAGaFsUEyUHyoClYRKQ4lRy1ElqEpUPaoZ1YHqQt1AyVAvUZ/QWDQVTUfboD3QwehYNBedh16OXo+uRu9Dt6LPo2+g+9Ej6G8YMkYPY41xx7AxCZh0zEJMMaYSswdzDHMBcwsziHmPxWI1sAysKzYYm4jNxC7Brsdux7Zgz2B7sQPYURwOp42zxnniInAcnARXjNuG2487jevDDeI+4pXwhngHfCA+CS/Er8ZX4hvxp/B9+CH8GEGVYEZwJ0QQeITFhDLCbkIH4RphkDBGpBAZRE9iDDGTuIpYRWwmXiA+JL5VUlIyVnJTmqMkUFqpVKV0UOmSUr/SJ5IayYrkR0omSUkbSHtJZ0j3SG/JZLI52YecRJaQN5AbyOfIj8kflanKtspsZZ7yCuUa5VblPuVXKgQVMxWWynyVQpVKlSMq11ReqhJUzVX9VDmqy1VrVI+r3lEdpVAp9pQISg5lPaWRcpnyTA2nZq4WoMZTK1LbpXZObYCKoppQ/ahc6hrqbuoF6iANS2PQ2LRMWintAK2HNqKupu6kHqe+SL1G/aS6TAOlYa7B1sjWKNM4rHFb47OmviZLk6+5TrNZs0/zg5aulo8WX6tEq0XrltZnbbp2gHaW9ibtNu1HOmgdK505Ogt1duhc0HmpS9P10OXqluge1r2vB+tZ6UXpLdHbpdetN6pvoB+kL9Lfpn9O/6WBhoGPQaZBhcEpg2FDqqGXocCwwvC04XO6Op1Fz6ZX0c/TR4z0jIKNpEZ1Rj1GY8YM41jj1cYtxo9MiCZMkzSTCpNOkxFTQ9Nw06WmTab3zQhmTLMMs61mXWYfzBnm8eZrzdvMnzG0GGxGIaOJ8dCCbOFtkWdRb3HTEmvJtMyy3G553Qq2crbKsKqxumYNW7tYC6y3W/fOwMxwmyGcUT/jjg3JhmVTYNNk02+rYRtmu9q2zfbVTNOZSTM3zeya+c3O2S7bbrfdA3s1+xD71fYd9m8crBy4DjUONx3JjoGOKxzbHV87WTvxnXY43XWmOoc7r3XudP7q4uoidml2GXY1dU1xrXW9w6QxI5nrmZfcMG6+bivcTrh9cndxl7gfdv/Lw8Yjy6PR49ksxiz+rN2zBjyNPTmedZ4yL7pXitfPXjJvI2+Od733Ex8TH57PHp8hliUrk7Wf9crXzlfse8z3g5+73zK/M/4o/yD/Ev+eALWA2IDqgMeBxoHpgU2BI0HOQUuCzgRjgkODNwXfYeuzuewG9kiIa8iykPOhpNDo0OrQJ2FWYeKwjnA4PCR8c/jD2WazhbPbIkAEO2JzxKNIRmRe5K9zsHMi59TMeRplH7U0qiuaGr0gujH6fYxvTFnMg1iLWGlsZ5xKXHJcQ9yHeP/48nhZwsyEZQlXE3USBYntSbikuKQ9SaNzA+ZumTuY7JxcnHx7HmPeonmX5+vMz55/coHKAs6CIymYlPiUxpQvnAhOPWc0lZ1amzrC9eNu5b7g+fAqeMN8T345fyjNM6087Vm6Z/rm9OEM74zKjJcCP0G14HVmcObOzA9ZEVl7s8az47NbcvA5KTnHhWrCLOH5XIPcRbm9ImtRsUiW5563JW9EHCrekw/lz8tvl9AQMdQttZD+IO0v8CqoKfi4MG7hkUWURcJF3YutFq9bPFQYWPjLEvQS7pLOpUZLVy3tX8ZaVrccWp66vHOFyYqiFYMrg1buW0VclbXqt9V2q8tXv1sTv6ajSL9oZdHAD0E/NBUrF4uL76z1WLvzR/SPgh971jmu27buWwmv5EqpXWll6Zf13PVXfrL/qeqn8Q1pG3rKXMp2bMRuFG68vcl7075ySnlh+cDm8M2tFfSKkop3WxZsuVzpVLlzK3GrdKusKqyqfZvpto3bvlRnVN+q8a1pqdWrXVf7YTtve98Onx3NO/V3lu78/LPg57t1QXWt9eb1lbuwuwp2Pd0dt7vrF+YvDXt09pTu+bpXuFe2L2rf+QbXhoZGvcayJrhJ2jS8P3n/9QP+B9qbbZrrWjRaSg+Cg9KDzw+lHLp9OPRw5xHmkeajZkdrj1GPlbRCrYtbR9oy2mTtie29x0OOd3Z4dBz71fbXvSeMTtScVD9Zdop4qujU+OnC06NnRGdenk0/O9C5oPPBuYRzN8/POd9zIfTCpYuBF891sbpOX/K8dOKy++XjV5hX2q66XG3tdu4+9pvzb8d6XHpar7lea7/udr2jd1bvqT7vvrM3/G9cvMm+efXW7Fu9t2Nv372TfEd2l3f32b3se6/vF9wfe7DyIeZhySPVR5WP9R7X/275e4vMRXay37+/+0n0kwcD3IEXf+T/8WWw6Cn5aeWQ4VDDM4dnJ4YDh68/n/t88IXoxdjL4j8pf9a+snh19C+fv7pHEkYGX4tfj79Z/1b77d53Tu86RyNHH7/PeT/2oeSj9sd9n5ifuj7Hfx4aW/gF96Xqq+XXjm+h3x6O54yPizhizoQUQCEDTksD4M1eAMiJAFCvI/ph7qSGnjBoUvdPEPhPPKmzJ8wFgGbEyaWQXAoekUtYHwCUER+B+BgfADs6KsaU3p3Q5nLDIl8pzdTjvLztfd8kdeAfNqnbv+v7nx7Is8ql/9/9vwC01QYO/dnrkQAAAIplWElmTU0AKgAAAAgABAEaAAUAAAABAAAAPgEbAAUAAAABAAAARgEoAAMAAAABAAIAAIdpAAQAAAABAAAATgAAAAAAAACQAAAAAQAAAJAAAAABAAOShgAHAAAAEgAAAHigAgAEAAAAAQAAAHCgAwAEAAAAAQAAAF4AAAAAQVNDSUkAAABTY3JlZW5zaG90ADOtIgAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAAdVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDYuMC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8ZXhpZjpQaXhlbFlEaW1lbnNpb24+OTQ8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+MTEyPC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6VXNlckNvbW1lbnQ+U2NyZWVuc2hvdDwvZXhpZjpVc2VyQ29tbWVudD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CvHe0K8AAAAcaURPVAAAAAIAAAAAAAAALwAAACgAAAAvAAAALwAAAex9UtyPAAABuElEQVR4AeyYUUrDQBRFpxtJ8NMN+KUuRHEfIn5KcR+iC6nZSLIBdQXKC0x5DEYzSGXO6x0onaSTcuee3te8bE5Ozz6TBtKBj7f3tBFAJLtZtABy2QkgnJ0ACmAEB+B70H+gAMIdgMtXAgUQ7gBcvhIogHAH4PKVQAGEOwCXrwQKINwBuHwlUADhDsDlK4ECCHcALl8JFEC4A3D5SqAAwh2Ay1cCBRDuAFy+EiiAcAfg8pVAAWzfgcuL89R3Xer7Lo3jlMZpSrvXoX3hKxSGT+DN9dUMrvTCQO6GYQZafkY6Dg1wCZ4H9LB99Ie4eViAVi4NoB9WNnMpzeftHLmchgXo02fl8un5JTObwRpgG+Vn+0WQSUiAZfoMnoHKw25q7JUHuYyGBPhT+jK0+7vbeaoEZkcaes9wTNISIF9CG5JeLSVcAn8rn9UONX5BOIBrymfjTKrkCWCVXe0tDgXw2Mqn/ZywAPNNiM+ENem+PfC9n63zrYS/jjzHASx7uFrz6U9eyv3iAPoWodzMmmMBXOPSAdf8NYHlU5kDSv2Xr8YlcMmV8gaG/HhsaY/fnQ8D8Nj6vwzTAH4BAAD//7rSIMsAAAJWSURBVO2ZUU4CQRBEl4tI/PQCfiEH0XgPY/w0xnsYPQhyEbiAegJNuZnQdGZrhy+6druThWV6ZqmtR09DWFxeXf924nF/d9stlxf/d7Hb7bu39w/xO2qT//P13S3UAQIcAJYAPECcQ0wS4PPLa5VdqdLN57bD4WN9s+pwIFQ+BJMAWMDA+KHt08LBPA9xLI81EWM2AP02Cxi2yp4eH474eMBHyUAv5AF6MBaK99lXGfLYbm0FY0wFHrRODuBQ/8PNIjysfvTwqAQPquUBWiBD/e+Apz+za2yudb1dc+7zWQKE6b7nYWysejEnWkgDPKX/WeNrvRB5te0TmicFsKWChuDBDIQaRGmAtpe19C9fsQCGdRi3oQQxNMBiLEyuxakAfd8roGpVyX6O1LScaywsQGtqbWv01TRmuL0ezC7wivH2w4Cxlooua8/5HBagNdSbDcM8wBpka6y9HsZr8+2c2nva60U5DwvwlIppqRYAX170x2a7Hfy3Au+LeWxOFHjQERYgxPmeBVC7fd8PYXSJse2zzJvic2iAvgprAFqqr7ZuKmOhAcJkBnHu8OBPeIAQif61XvVbJs7LVoovGnMPCYBzh8TuPwEydwRyCVAAEpOYAJk7ArkEKACJSUyAzB2BXAIUgMQkJkDmjkAuAQpAYhITIHNHIJcABSAxiQmQuSOQS4ACkJjEBMjcEcglQAFITGICZO4I5BKgACQmMQEydwRyCVAAEpOYAJk7ArkEKACJSUyAzB2BXAIUgMQkJkDmjkAuAQpAYhITIHNHIJcABSAxiQD4B7G2G45A/ZFmAAAAAElFTkSuQmCC"},32008:(t,e,n)=>{n.d(e,{Z:()=>A});const A=n.p+"assets/images/playground_function_example1-8e7185753db9849b034705c5f540ae77.png"},71205:(t,e,n)=>{n.d(e,{Z:()=>A});const A=n.p+"assets/images/playground_function_panel-3d1f5c7d5ecc007093c9cd538e14ccad.png"},79978:(t,e,n)=>{n.d(e,{Z:()=>A});const A=n.p+"assets/images/playground_function_panel2-125e7cc112e2a73e0bf30f17ace555bd.png"},8209:(t,e,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/45e94216.3d4015ca.js b/assets/js/45e94216.1fdcc9b2.js similarity index 97% rename from assets/js/45e94216.3d4015ca.js rename to assets/js/45e94216.1fdcc9b2.js index 665ed32ad..7f6b68ed1 100644 --- a/assets/js/45e94216.3d4015ca.js +++ b/assets/js/45e94216.1fdcc9b2.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4439],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>f});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),c=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=c(n),m=a,f=u["".concat(s,".").concat(m)]||u[m]||d[m]||o;return n?r.createElement(f,i(i({ref:t},p),{},{components:n})):r.createElement(f,i({ref:t},p))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:a,i[1]=l;for(var c=2;c{n.r(t),n.d(t,{Badge:()=>d,Bullet:()=>p,Details:()=>f,SpecifiedBy:()=>u,assets:()=>c,contentTitle:()=>l,default:()=>y,frontMatter:()=>i,metadata:()=>s,toc:()=>m});var r=n(87462),a=n(67294),o=n(3905);n(8209);const i={id:"non-neg-integer",title:"NonNegInteger",hide_table_of_contents:!1},l=void 0,s={unversionedId:"build/api/schema/scalars/non-neg-integer",id:"build/api/schema/scalars/non-neg-integer",title:"NonNegInteger",description:"The [Non Negative Integer] scalar type represents a non negative number",source:"@site/docs/build/api/schema/scalars/non-neg-integer.mdx",sourceDirName:"build/api/schema/scalars",slug:"/build/api/schema/scalars/non-neg-integer",permalink:"/build/api/schema/scalars/non-neg-integer",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"non-neg-integer",title:"NonNegInteger",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"Int",permalink:"/build/api/schema/scalars/int"},next:{title:"P2pAvailabilities",permalink:"/build/api/schema/scalars/p2-p-availabilities"}},c={},p=()=>(0,o.kt)(a.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),u=e=>(0,o.kt)(a.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),d=e=>(0,o.kt)(a.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),m=[{value:"Member of",id:"member-of",level:3}],f=e=>{let{dataOpen:t,dataClose:n,children:i,startOpen:l=!1}=e;const[s,c]=(0,a.useState)(l);return(0,o.kt)("details",(0,r.Z)({},s?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),c((e=>!e))},style:{listStyle:"none"}},s?t:n),s&&i)},g={Bullet:p,SpecifiedBy:u,Badge:d,toc:m,Details:f},b="wrapper";function y(e){let{components:t,...n}=e;return(0,o.kt)(b,(0,r.Z)({},g,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"The ","[Non Negative Integer]"," scalar type represents a non negative number"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"scalar NonNegInteger\n")),(0,o.kt)("h3",{id:"member-of"},"Member of"),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/queries/transaction-inputs"},(0,o.kt)("inlineCode",{parentName:"a"},"transactionInputs"))," ",(0,o.kt)(d,{class:"badge badge--secondary",text:"query",mdxType:"Badge"})))}y.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4439],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>f});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),c=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=c(n),m=a,f=u["".concat(s,".").concat(m)]||u[m]||d[m]||o;return n?r.createElement(f,i(i({ref:t},p),{},{components:n})):r.createElement(f,i({ref:t},p))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:a,i[1]=l;for(var c=2;c{n.r(t),n.d(t,{Badge:()=>d,Bullet:()=>p,Details:()=>f,SpecifiedBy:()=>u,assets:()=>c,contentTitle:()=>l,default:()=>y,frontMatter:()=>i,metadata:()=>s,toc:()=>m});var r=n(87462),a=n(67294),o=n(3905);n(8209);const i={id:"non-neg-integer",title:"NonNegInteger",hide_table_of_contents:!1},l=void 0,s={unversionedId:"build/api/schema/scalars/non-neg-integer",id:"build/api/schema/scalars/non-neg-integer",title:"NonNegInteger",description:"The [Non Negative Integer] scalar type represents a non negative number",source:"@site/docs/build/api/schema/scalars/non-neg-integer.mdx",sourceDirName:"build/api/schema/scalars",slug:"/build/api/schema/scalars/non-neg-integer",permalink:"/build/api/schema/scalars/non-neg-integer",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"non-neg-integer",title:"NonNegInteger",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"Int",permalink:"/build/api/schema/scalars/int"},next:{title:"P2pAvailabilities",permalink:"/build/api/schema/scalars/p2-p-availabilities"}},c={},p=()=>(0,o.kt)(a.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),u=e=>(0,o.kt)(a.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),d=e=>(0,o.kt)(a.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),m=[{value:"Member of",id:"member-of",level:3}],f=e=>{let{dataOpen:t,dataClose:n,children:i,startOpen:l=!1}=e;const[s,c]=(0,a.useState)(l);return(0,o.kt)("details",(0,r.Z)({},s?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),c((e=>!e))},style:{listStyle:"none"}},s?t:n),s&&i)},g={Bullet:p,SpecifiedBy:u,Badge:d,toc:m,Details:f},b="wrapper";function y(e){let{components:t,...n}=e;return(0,o.kt)(b,(0,r.Z)({},g,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"The ","[Non Negative Integer]"," scalar type represents a non negative number"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"scalar NonNegInteger\n")),(0,o.kt)("h3",{id:"member-of"},"Member of"),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/queries/transaction-inputs"},(0,o.kt)("inlineCode",{parentName:"a"},"transactionInputs"))," ",(0,o.kt)(d,{class:"badge badge--secondary",text:"query",mdxType:"Badge"})))}y.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/4775ecc5.8088a150.js b/assets/js/4775ecc5.f7b05864.js similarity index 99% rename from assets/js/4775ecc5.8088a150.js rename to assets/js/4775ecc5.f7b05864.js index 9356bfb40..e9787ece9 100644 --- a/assets/js/4775ecc5.8088a150.js +++ b/assets/js/4775ecc5.f7b05864.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[798],{3905:(e,t,n)=>{n.d(t,{Zo:()=>h,kt:()=>p});var o=n(67294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function r(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var s=o.createContext({}),c=function(e){var t=o.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},h=function(e){var t=c(e.components);return o.createElement(s.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},d=o.forwardRef((function(e,t){var n=e.components,i=e.mdxType,a=e.originalType,s=e.parentName,h=l(e,["components","mdxType","originalType","parentName"]),u=c(n),d=i,p=u["".concat(s,".").concat(d)]||u[d]||m[d]||a;return n?o.createElement(p,r(r({ref:t},h),{},{components:n})):o.createElement(p,r({ref:t},h))}));function p(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=n.length,r=new Array(a);r[0]=d;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:i,r[1]=l;for(var c=2;c{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>r,default:()=>m,frontMatter:()=>a,metadata:()=>l,toc:()=>c});var o=n(87462),i=(n(67294),n(3905));n(8209);const a={id:"migration-erc-token",title:"Migration of ERC-20 UCO Tokens"},r=void 0,l={unversionedId:"FAQ/migration-erc-token",id:"FAQ/migration-erc-token",title:"Migration of ERC-20 UCO Tokens",description:"General",source:"@site/docs/FAQ/migration-erc-token.md",sourceDirName:"FAQ",slug:"/FAQ/migration-erc-token",permalink:"/FAQ/migration-erc-token",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"migration-erc-token",title:"Migration of ERC-20 UCO Tokens"},sidebar:"docs",previous:{title:"aeSwap",permalink:"/FAQ/dex"},next:{title:"aeWallet",permalink:"/FAQ/wallet"}},s={},c=[{value:"General",id:"general",level:2},{value:" Why Archethic migrates his ERC20 UCO Token? ",id:"-why-archethic-migrates-his-erc20-uco-token-",level:3},{value:"Project Background:",id:"project-background",level:4},{value:"Why a Migration?",id:"why-a-migration",level:4},{value:"What Does This Mean for users?",id:"what-does-this-mean-for-users",level:4},{value:"In Summary:",id:"in-summary",level:4},{value:"How do I migrate my V1 tokens to V2?",id:"how-do-i-migrate-my-v1-tokens-to-v2",level:3},{value:"If I have 3000 UCO in V1, how many UCO will I receive in V2?",id:"if-i-have-3000-uco-in-v1-how-many-uco-will-i-receive-in-v2",level:3},{value:"How much does the migration cost the user?",id:"how-much-does-the-migration-cost-the-user",level:3},{value:"I have UCO with more than 8 decimal places; does this have an impact?",id:"i-have-uco-with-more-than-8-decimal-places-does-this-have-an-impact",level:3}],h={toc:c},u="wrapper";function m(e){let{components:t,...n}=e;return(0,i.kt)(u,(0,o.Z)({},h,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"general"},"General"),(0,i.kt)("h3",{id:"-why-archethic-migrates-his-erc20-uco-token-"},(0,i.kt)("strong",{parentName:"h3"}," Why Archethic migrates his ERC20 UCO Token? ")),(0,i.kt)("h4",{id:"project-background"},"Project Background:"),(0,i.kt)("p",null,"The Archethic project initially launched a token called UCO (Archethic Universal Coin), based on the ERC-20 standard, available on several blockchains: Ethereum, Polygon, and the BNB Chain. Since then, the project has made significant progress, including the launch of its own blockchain (mainnet) in December 2022, and the opening of a bridge and a decentralized exchange in May 2024."),(0,i.kt)("p",null,"Now that the UCO is natively available on the Archethic blockchain, it is time to update the ERC-20 token to reflect these changes."),(0,i.kt)("h4",{id:"why-a-migration"},"Why a Migration?"),(0,i.kt)("p",null,"The migration to a new ERC-20 UCO token is necessary for several reasons:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Updating Information"),": The current ERC-20 token is outdated. For example, the token's name and the total supply need to be modified to reflect the project's current status.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Harmonizing Functionality"),": The current versions of the UCO token on different blockchains (Ethereum, Polygon, BNB Chain) do not function in the same way. The new ERC-20 UCO token will be designed to operate uniformly across all blockchains, with functions such as mint (creation of new tokens) and burn (destruction of tokens), which are missing in some current versions."))),(0,i.kt)("h4",{id:"what-does-this-mean-for-users"},"What Does This Mean for users?"),(0,i.kt)("p",null,"If you hold ERC-20 UCO tokens, you will need to migrate them to the new version (Version 2). This migration ensures that you will be using an up-to-date, secure token that functions across all compatible blockchains."),(0,i.kt)("p",null,"The migration will be facilitated by a specially designed smart contract to make this process as simple and secure as possible. You will also have access to tools to help you transition smoothly."),(0,i.kt)("h4",{id:"in-summary"},"In Summary:"),(0,i.kt)("p",null,"Migrating to the new ERC-20 UCO token is essential to ensure that users' tokens remain up-to-date with the latest developments in the Archethic project. This update will allow for better compatibility and security while harmonizing the token's functionality across all blockchains."),(0,i.kt)("h3",{id:"how-do-i-migrate-my-v1-tokens-to-v2"},"How do I migrate my V1 tokens to V2?"),(0,i.kt)("p",null,"To migrate your tokens, simply go to the migration tool at ",(0,i.kt)("a",{parentName:"p",href:"https://migration-uco.archethic.net"},"https://migration-uco.archethic.net"),". This tool allows you to securely migrate your tokens on each blockchain (Ethereum, BSC, and Polygon)."),(0,i.kt)("h3",{id:"if-i-have-3000-uco-in-v1-how-many-uco-will-i-receive-in-v2"},"If I have 3000 UCO in V1, how many UCO will I receive in V2?"),(0,i.kt)("p",null,"The migration is done at a 1:1 ratio. This means that if you migrate 3000 UCO V1, you will receive 3000 UCO in V2."),(0,i.kt)("h3",{id:"how-much-does-the-migration-cost-the-user"},"How much does the migration cost the user?"),(0,i.kt)("p",null,"There is no service fee for the migration. However, you will need to pay the transaction fees associated with the blockchains to execute the smart contract. These fees depend on the Ethereum, Polygon, and BSC blockchains."),(0,i.kt)("h3",{id:"i-have-uco-with-more-than-8-decimal-places-does-this-have-an-impact"},"I have UCO with more than 8 decimal places; does this have an impact?"),(0,i.kt)("p",null,"The UCO on EVM blockchains (like Ethereum) has 18 decimal places, but on Archethic, it has only 8. During the migration, only the first 8 decimal places will be retained.\nFor example, if you have 100.123456789123456789 UCO, after migration, you will have 100.12345678 UCO."))}m.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[798],{3905:(e,t,n)=>{n.d(t,{Zo:()=>h,kt:()=>p});var o=n(67294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function r(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var s=o.createContext({}),c=function(e){var t=o.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},h=function(e){var t=c(e.components);return o.createElement(s.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},d=o.forwardRef((function(e,t){var n=e.components,i=e.mdxType,a=e.originalType,s=e.parentName,h=l(e,["components","mdxType","originalType","parentName"]),u=c(n),d=i,p=u["".concat(s,".").concat(d)]||u[d]||m[d]||a;return n?o.createElement(p,r(r({ref:t},h),{},{components:n})):o.createElement(p,r({ref:t},h))}));function p(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=n.length,r=new Array(a);r[0]=d;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:i,r[1]=l;for(var c=2;c{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>r,default:()=>m,frontMatter:()=>a,metadata:()=>l,toc:()=>c});var o=n(87462),i=(n(67294),n(3905));n(8209);const a={id:"migration-erc-token",title:"Migration of ERC-20 UCO Tokens"},r=void 0,l={unversionedId:"FAQ/migration-erc-token",id:"FAQ/migration-erc-token",title:"Migration of ERC-20 UCO Tokens",description:"General",source:"@site/docs/FAQ/migration-erc-token.md",sourceDirName:"FAQ",slug:"/FAQ/migration-erc-token",permalink:"/FAQ/migration-erc-token",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"migration-erc-token",title:"Migration of ERC-20 UCO Tokens"},sidebar:"docs",previous:{title:"aeSwap",permalink:"/FAQ/dex"},next:{title:"aeWallet",permalink:"/FAQ/wallet"}},s={},c=[{value:"General",id:"general",level:2},{value:" Why Archethic migrates his ERC20 UCO Token? ",id:"-why-archethic-migrates-his-erc20-uco-token-",level:3},{value:"Project Background:",id:"project-background",level:4},{value:"Why a Migration?",id:"why-a-migration",level:4},{value:"What Does This Mean for users?",id:"what-does-this-mean-for-users",level:4},{value:"In Summary:",id:"in-summary",level:4},{value:"How do I migrate my V1 tokens to V2?",id:"how-do-i-migrate-my-v1-tokens-to-v2",level:3},{value:"If I have 3000 UCO in V1, how many UCO will I receive in V2?",id:"if-i-have-3000-uco-in-v1-how-many-uco-will-i-receive-in-v2",level:3},{value:"How much does the migration cost the user?",id:"how-much-does-the-migration-cost-the-user",level:3},{value:"I have UCO with more than 8 decimal places; does this have an impact?",id:"i-have-uco-with-more-than-8-decimal-places-does-this-have-an-impact",level:3}],h={toc:c},u="wrapper";function m(e){let{components:t,...n}=e;return(0,i.kt)(u,(0,o.Z)({},h,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"general"},"General"),(0,i.kt)("h3",{id:"-why-archethic-migrates-his-erc20-uco-token-"},(0,i.kt)("strong",{parentName:"h3"}," Why Archethic migrates his ERC20 UCO Token? ")),(0,i.kt)("h4",{id:"project-background"},"Project Background:"),(0,i.kt)("p",null,"The Archethic project initially launched a token called UCO (Archethic Universal Coin), based on the ERC-20 standard, available on several blockchains: Ethereum, Polygon, and the BNB Chain. Since then, the project has made significant progress, including the launch of its own blockchain (mainnet) in December 2022, and the opening of a bridge and a decentralized exchange in May 2024."),(0,i.kt)("p",null,"Now that the UCO is natively available on the Archethic blockchain, it is time to update the ERC-20 token to reflect these changes."),(0,i.kt)("h4",{id:"why-a-migration"},"Why a Migration?"),(0,i.kt)("p",null,"The migration to a new ERC-20 UCO token is necessary for several reasons:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Updating Information"),": The current ERC-20 token is outdated. For example, the token's name and the total supply need to be modified to reflect the project's current status.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Harmonizing Functionality"),": The current versions of the UCO token on different blockchains (Ethereum, Polygon, BNB Chain) do not function in the same way. The new ERC-20 UCO token will be designed to operate uniformly across all blockchains, with functions such as mint (creation of new tokens) and burn (destruction of tokens), which are missing in some current versions."))),(0,i.kt)("h4",{id:"what-does-this-mean-for-users"},"What Does This Mean for users?"),(0,i.kt)("p",null,"If you hold ERC-20 UCO tokens, you will need to migrate them to the new version (Version 2). This migration ensures that you will be using an up-to-date, secure token that functions across all compatible blockchains."),(0,i.kt)("p",null,"The migration will be facilitated by a specially designed smart contract to make this process as simple and secure as possible. You will also have access to tools to help you transition smoothly."),(0,i.kt)("h4",{id:"in-summary"},"In Summary:"),(0,i.kt)("p",null,"Migrating to the new ERC-20 UCO token is essential to ensure that users' tokens remain up-to-date with the latest developments in the Archethic project. This update will allow for better compatibility and security while harmonizing the token's functionality across all blockchains."),(0,i.kt)("h3",{id:"how-do-i-migrate-my-v1-tokens-to-v2"},"How do I migrate my V1 tokens to V2?"),(0,i.kt)("p",null,"To migrate your tokens, simply go to the migration tool at ",(0,i.kt)("a",{parentName:"p",href:"https://migration-uco.archethic.net"},"https://migration-uco.archethic.net"),". This tool allows you to securely migrate your tokens on each blockchain (Ethereum, BSC, and Polygon)."),(0,i.kt)("h3",{id:"if-i-have-3000-uco-in-v1-how-many-uco-will-i-receive-in-v2"},"If I have 3000 UCO in V1, how many UCO will I receive in V2?"),(0,i.kt)("p",null,"The migration is done at a 1:1 ratio. This means that if you migrate 3000 UCO V1, you will receive 3000 UCO in V2."),(0,i.kt)("h3",{id:"how-much-does-the-migration-cost-the-user"},"How much does the migration cost the user?"),(0,i.kt)("p",null,"There is no service fee for the migration. However, you will need to pay the transaction fees associated with the blockchains to execute the smart contract. These fees depend on the Ethereum, Polygon, and BSC blockchains."),(0,i.kt)("h3",{id:"i-have-uco-with-more-than-8-decimal-places-does-this-have-an-impact"},"I have UCO with more than 8 decimal places; does this have an impact?"),(0,i.kt)("p",null,"The UCO on EVM blockchains (like Ethereum) has 18 decimal places, but on Archethic, it has only 8. During the migration, only the first 8 decimal places will be retained.\nFor example, if you have 100.123456789123456789 UCO, after migration, you will have 100.12345678 UCO."))}m.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/4a0589af.121e4d05.js b/assets/js/4a0589af.6ef5e455.js similarity index 98% rename from assets/js/4a0589af.121e4d05.js rename to assets/js/4a0589af.6ef5e455.js index 174046bfd..f87f6561d 100644 --- a/assets/js/4a0589af.121e4d05.js +++ b/assets/js/4a0589af.6ef5e455.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7155],{3905:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>h});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var c=a.createContext({}),p=function(e){var t=a.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},l=function(e){var t=p(e.components);return a.createElement(c.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,c=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),u=p(r),m=n,h=u["".concat(c,".").concat(m)]||u[m]||d[m]||o;return r?a.createElement(h,i(i({ref:t},l),{},{components:r})):a.createElement(h,i({ref:t},l))}));function h(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,i=new Array(o);i[0]=m;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[u]="string"==typeof e?e:n,i[1]=s;for(var p=2;p{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>s,toc:()=>p});var a=r(87462),n=(r(67294),r(3905));r(8209);const o={title:"Security, Research & Math",id:"core_concepts_3",sidebar_label:"Security, Research & Math"},i="Security, Research & Math",s={unversionedId:"participate/dex/Core Concepts/core_concepts_3",id:"participate/dex/Core Concepts/core_concepts_3",title:"Security, Research & Math",description:"Research & Math",source:"@site/docs/participate/dex/04-Core Concepts/03-core_concepts_3.md",sourceDirName:"participate/dex/04-Core Concepts",slug:"/participate/dex/Core Concepts/core_concepts_3",permalink:"/participate/dex/Core Concepts/core_concepts_3",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",sidebarPosition:3,frontMatter:{title:"Security, Research & Math",id:"core_concepts_3",sidebar_label:"Security, Research & Math"},sidebar:"docs",previous:{title:"Financials, Fees, APR",permalink:"/participate/dex/Core Concepts/core_concepts_2"},next:{title:"Tutorial",permalink:"/participate/dex/Guide_Usage/"}},c={},p=[{value:"Research & Math",id:"research--math",level:2},{value:"The Mathematics of AMM and Constant Product Formula",id:"the-mathematics-of-amm-and-constant-product-formula",level:3}],l={toc:p},u="wrapper";function d(e){let{components:t,...r}=e;return(0,n.kt)(u,(0,a.Z)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"security-research--math"},"Security, Research & Math"),(0,n.kt)("h2",{id:"research--math"},"Research & Math"),(0,n.kt)("p",null,"aeSwap integrates comprehensive research and mathematical algorithms directly inspired by Uniswap V2, covering AMM models, smart contract security, blockchain technology, liquidity provision, pricing, and swap efficiency. This synergy ensures a secure trading environment, minimizes slippage, ensures fair asset valuation, and mitigates risks such as impermanent loss. Continuous analysis of market trends, attack vectors, and user behavior, along with rigorous testing and auditing of smart contracts, forms the backbone of the platform\u2019s development, risk management strategies, and integrity. The adherence to these proven models and methodologies guarantees the highest standards of security and consistency in the platform's operations."),(0,n.kt)("h3",{id:"the-mathematics-of-amm-and-constant-product-formula"},"The Mathematics of AMM and Constant Product Formula"),(0,n.kt)("p",null,"aeSwap, based on the Uniswap v2 model, employs the constant product formula to maintain pool liquidity and determine prices. This formula is represented as ",(0,n.kt)("inlineCode",{parentName:"p"},"x * y = k"),", where:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"x")," and ",(0,n.kt)("inlineCode",{parentName:"li"},"y")," are the quantities of the two tokens in the liquidity pool."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"k")," is a constant value.")),(0,n.kt)("p",null,"The constant product formula ensures that the total value in the pool remains constant after a trade, excluding fees. When a trade is executed, the product of the quantities of the two tokens stays the same, allowing the AMM to provide liquidity at any price level."),(0,n.kt)("admonition",{title:"Security Practices",type:"info"},(0,n.kt)("p",{parentName:"admonition"},"aeSwap adopts best practices in smart contract development and security, including regular audits by reputable firms, bug bounty programs, and transparent communication with the community. The security protocols and measures in place are directly taken from the proven and tested frameworks used in Uniswap V2. This adherence to established best practices, combined with user education on secure wallet management and interaction with DeFi platforms, further enhances the ecosystem's security posture, ensuring a safe and reliable environment for all users.")))}d.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7155],{3905:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>h});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var c=a.createContext({}),p=function(e){var t=a.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},l=function(e){var t=p(e.components);return a.createElement(c.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,c=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),u=p(r),m=n,h=u["".concat(c,".").concat(m)]||u[m]||d[m]||o;return r?a.createElement(h,i(i({ref:t},l),{},{components:r})):a.createElement(h,i({ref:t},l))}));function h(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,i=new Array(o);i[0]=m;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[u]="string"==typeof e?e:n,i[1]=s;for(var p=2;p{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>s,toc:()=>p});var a=r(87462),n=(r(67294),r(3905));r(8209);const o={title:"Security, Research & Math",id:"core_concepts_3",sidebar_label:"Security, Research & Math"},i="Security, Research & Math",s={unversionedId:"participate/dex/Core Concepts/core_concepts_3",id:"participate/dex/Core Concepts/core_concepts_3",title:"Security, Research & Math",description:"Research & Math",source:"@site/docs/participate/dex/04-Core Concepts/03-core_concepts_3.md",sourceDirName:"participate/dex/04-Core Concepts",slug:"/participate/dex/Core Concepts/core_concepts_3",permalink:"/participate/dex/Core Concepts/core_concepts_3",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",sidebarPosition:3,frontMatter:{title:"Security, Research & Math",id:"core_concepts_3",sidebar_label:"Security, Research & Math"},sidebar:"docs",previous:{title:"Financials, Fees, APR",permalink:"/participate/dex/Core Concepts/core_concepts_2"},next:{title:"Tutorial",permalink:"/participate/dex/Guide_Usage/"}},c={},p=[{value:"Research & Math",id:"research--math",level:2},{value:"The Mathematics of AMM and Constant Product Formula",id:"the-mathematics-of-amm-and-constant-product-formula",level:3}],l={toc:p},u="wrapper";function d(e){let{components:t,...r}=e;return(0,n.kt)(u,(0,a.Z)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"security-research--math"},"Security, Research & Math"),(0,n.kt)("h2",{id:"research--math"},"Research & Math"),(0,n.kt)("p",null,"aeSwap integrates comprehensive research and mathematical algorithms directly inspired by Uniswap V2, covering AMM models, smart contract security, blockchain technology, liquidity provision, pricing, and swap efficiency. This synergy ensures a secure trading environment, minimizes slippage, ensures fair asset valuation, and mitigates risks such as impermanent loss. Continuous analysis of market trends, attack vectors, and user behavior, along with rigorous testing and auditing of smart contracts, forms the backbone of the platform\u2019s development, risk management strategies, and integrity. The adherence to these proven models and methodologies guarantees the highest standards of security and consistency in the platform's operations."),(0,n.kt)("h3",{id:"the-mathematics-of-amm-and-constant-product-formula"},"The Mathematics of AMM and Constant Product Formula"),(0,n.kt)("p",null,"aeSwap, based on the Uniswap v2 model, employs the constant product formula to maintain pool liquidity and determine prices. This formula is represented as ",(0,n.kt)("inlineCode",{parentName:"p"},"x * y = k"),", where:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"x")," and ",(0,n.kt)("inlineCode",{parentName:"li"},"y")," are the quantities of the two tokens in the liquidity pool."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"k")," is a constant value.")),(0,n.kt)("p",null,"The constant product formula ensures that the total value in the pool remains constant after a trade, excluding fees. When a trade is executed, the product of the quantities of the two tokens stays the same, allowing the AMM to provide liquidity at any price level."),(0,n.kt)("admonition",{title:"Security Practices",type:"info"},(0,n.kt)("p",{parentName:"admonition"},"aeSwap adopts best practices in smart contract development and security, including regular audits by reputable firms, bug bounty programs, and transparent communication with the community. The security protocols and measures in place are directly taken from the proven and tested frameworks used in Uniswap V2. This adherence to established best practices, combined with user education on secure wallet management and interaction with DeFi platforms, further enhances the ecosystem's security posture, ensuring a safe and reliable environment for all users.")))}d.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file diff --git a/assets/js/4ad6f564.efc96b7a.js b/assets/js/4ad6f564.f7ca3381.js similarity index 97% rename from assets/js/4ad6f564.efc96b7a.js rename to assets/js/4ad6f564.f7ca3381.js index ec5bed543..6e9ec1573 100644 --- a/assets/js/4ad6f564.efc96b7a.js +++ b/assets/js/4ad6f564.f7ca3381.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[932],{3905:(e,t,r)=>{r.d(t,{Zo:()=>d,kt:()=>b});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function c(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var i=a.createContext({}),s=function(e){var t=a.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},d=function(e){var t=s(e.components);return a.createElement(i.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,i=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),p=s(r),m=n,b=p["".concat(i,".").concat(m)]||p[m]||u[m]||o;return r?a.createElement(b,c(c({ref:t},d),{},{components:r})):a.createElement(b,c({ref:t},d))}));function b(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,c=new Array(o);c[0]=m;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l[p]="string"==typeof e?e:n,c[1]=l;for(var s=2;s{r.r(t),r.d(t,{Badge:()=>u,Bullet:()=>d,Details:()=>b,SpecifiedBy:()=>p,assets:()=>s,contentTitle:()=>l,default:()=>v,frontMatter:()=>c,metadata:()=>i,toc:()=>m});var a=r(87462),n=r(67294),o=r(3905);r(8209);const c={id:"oracle-services",title:"OracleServices",hide_table_of_contents:!1},l=void 0,i={unversionedId:"build/api/schema/objects/oracle-services",id:"build/api/schema/objects/oracle-services",title:"OracleServices",description:"No description",source:"@site/docs/build/api/schema/objects/oracle-services.mdx",sourceDirName:"build/api/schema/objects",slug:"/build/api/schema/objects/oracle-services",permalink:"/build/api/schema/objects/oracle-services",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"oracle-services",title:"OracleServices",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"OracleData",permalink:"/build/api/schema/objects/oracle-data"},next:{title:"Ownership",permalink:"/build/api/schema/objects/ownership"}},s={},d=()=>(0,o.kt)(n.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=e=>(0,o.kt)(n.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,o.kt)(n.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),m=[{value:"Fields",id:"fields",level:3},{value:'OracleServices.ucoUcoData ',id:"code-style-fontweight-normal-oracleservicesbucobcodeucodata-",level:4},{value:"Member of",id:"member-of",level:3}],b=e=>{let{dataOpen:t,dataClose:r,children:c,startOpen:l=!1}=e;const[i,s]=(0,n.useState)(l);return(0,o.kt)("details",(0,a.Z)({},i?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),s((e=>!e))},style:{listStyle:"none"}},i?t:r),i&&c)},f={Bullet:d,SpecifiedBy:p,Badge:u,toc:m,Details:b},y="wrapper";function v(e){let{components:t,...r}=e;return(0,o.kt)(y,(0,a.Z)({},f,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"No description"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"type OracleServices {\n uco: UcoData\n}\n")),(0,o.kt)("h3",{id:"fields"},"Fields"),(0,o.kt)("h4",{id:"code-style-fontweight-normal-oracleservicesbucobcodeucodata-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"OracleServices.",(0,o.kt)("b",null,"uco"))),(0,o.kt)(d,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/uco-data"},(0,o.kt)("inlineCode",{parentName:"a"},"UcoData"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h3",{id:"member-of"},"Member of"),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/oracle-data"},(0,o.kt)("inlineCode",{parentName:"a"},"OracleData"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}v.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[932],{3905:(e,t,r)=>{r.d(t,{Zo:()=>d,kt:()=>b});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function c(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var i=a.createContext({}),s=function(e){var t=a.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},d=function(e){var t=s(e.components);return a.createElement(i.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,i=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),p=s(r),m=n,b=p["".concat(i,".").concat(m)]||p[m]||u[m]||o;return r?a.createElement(b,c(c({ref:t},d),{},{components:r})):a.createElement(b,c({ref:t},d))}));function b(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,c=new Array(o);c[0]=m;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l[p]="string"==typeof e?e:n,c[1]=l;for(var s=2;s{r.r(t),r.d(t,{Badge:()=>u,Bullet:()=>d,Details:()=>b,SpecifiedBy:()=>p,assets:()=>s,contentTitle:()=>l,default:()=>v,frontMatter:()=>c,metadata:()=>i,toc:()=>m});var a=r(87462),n=r(67294),o=r(3905);r(8209);const c={id:"oracle-services",title:"OracleServices",hide_table_of_contents:!1},l=void 0,i={unversionedId:"build/api/schema/objects/oracle-services",id:"build/api/schema/objects/oracle-services",title:"OracleServices",description:"No description",source:"@site/docs/build/api/schema/objects/oracle-services.mdx",sourceDirName:"build/api/schema/objects",slug:"/build/api/schema/objects/oracle-services",permalink:"/build/api/schema/objects/oracle-services",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"oracle-services",title:"OracleServices",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"OracleData",permalink:"/build/api/schema/objects/oracle-data"},next:{title:"Ownership",permalink:"/build/api/schema/objects/ownership"}},s={},d=()=>(0,o.kt)(n.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=e=>(0,o.kt)(n.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,o.kt)(n.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),m=[{value:"Fields",id:"fields",level:3},{value:'OracleServices.ucoUcoData ',id:"code-style-fontweight-normal-oracleservicesbucobcodeucodata-",level:4},{value:"Member of",id:"member-of",level:3}],b=e=>{let{dataOpen:t,dataClose:r,children:c,startOpen:l=!1}=e;const[i,s]=(0,n.useState)(l);return(0,o.kt)("details",(0,a.Z)({},i?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),s((e=>!e))},style:{listStyle:"none"}},i?t:r),i&&c)},f={Bullet:d,SpecifiedBy:p,Badge:u,toc:m,Details:b},y="wrapper";function v(e){let{components:t,...r}=e;return(0,o.kt)(y,(0,a.Z)({},f,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"No description"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"type OracleServices {\n uco: UcoData\n}\n")),(0,o.kt)("h3",{id:"fields"},"Fields"),(0,o.kt)("h4",{id:"code-style-fontweight-normal-oracleservicesbucobcodeucodata-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"OracleServices.",(0,o.kt)("b",null,"uco"))),(0,o.kt)(d,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/uco-data"},(0,o.kt)("inlineCode",{parentName:"a"},"UcoData"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h3",{id:"member-of"},"Member of"),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/oracle-data"},(0,o.kt)("inlineCode",{parentName:"a"},"OracleData"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}v.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file diff --git a/assets/js/4b0f8212.ff9f42a9.js b/assets/js/4b0f8212.cf4e77f6.js similarity index 98% rename from assets/js/4b0f8212.ff9f42a9.js rename to assets/js/4b0f8212.cf4e77f6.js index f055adf19..08a029618 100644 --- a/assets/js/4b0f8212.ff9f42a9.js +++ b/assets/js/4b0f8212.cf4e77f6.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9161],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>g});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),u=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(c.Provider,{value:t},e.children)},s="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,l=e.originalType,c=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),s=u(r),d=a,g=s["".concat(c,".").concat(d)]||s[d]||m[d]||l;return r?n.createElement(g,i(i({ref:t},p),{},{components:r})):n.createElement(g,i({ref:t},p))}));function g(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=r.length,i=new Array(l);i[0]=d;var o={};for(var c in t)hasOwnProperty.call(t,c)&&(o[c]=t[c]);o.originalType=e,o[s]="string"==typeof e?e:a,i[1]=o;for(var u=2;u{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>m,frontMatter:()=>l,metadata:()=>o,toc:()=>u});var n=r(87462),a=(r(67294),r(3905));r(8209);const l={id:"regex",title:"Regex module",sidebar_label:"Regex"},i=void 0,o={unversionedId:"build/smart-contracts/language/library/regex",id:"build/smart-contracts/language/library/regex",title:"Regex module",description:"The Regex module contains functions to extract data from strings via Regular Expressions.",source:"@site/docs/build/smart-contracts/language/library/regex.md",sourceDirName:"build/smart-contracts/language/library",slug:"/build/smart-contracts/language/library/regex",permalink:"/build/smart-contracts/language/library/regex",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"regex",title:"Regex module",sidebar_label:"Regex"},sidebar:"docs",previous:{title:"Math",permalink:"/build/smart-contracts/language/library/math"},next:{title:"State",permalink:"/build/smart-contracts/language/library/state"}},c={},u=[{value:"extract/2",id:"extract2",level:3},{value:"match?/2",id:"match2",level:3},{value:"scan/2",id:"scan2",level:3}],p={toc:u},s="wrapper";function m(e){let{components:t,...r}=e;return(0,a.kt)(s,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The ",(0,a.kt)("inlineCode",{parentName:"p"},"Regex")," module contains functions to extract data from strings via Regular Expressions."),(0,a.kt)("h3",{id:"extract2"},"extract/2"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},'Regex.extract("123456abc", "[0-9]+") # "123456"\nRegex.extract("voodoo", "[abc]") # ""\n')),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"text")," the list"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"pattern")," the element")),(0,a.kt)("p",null,"Returns the data from ",(0,a.kt)("inlineCode",{parentName:"p"},"text")," extract via the regex ",(0,a.kt)("inlineCode",{parentName:"p"},"pattern"),"."),(0,a.kt)("h3",{id:"match2"},"match?/2"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},'Regex.match?("123456", "^[0-9]+$") # true\nRegex.match?("123456abc", "^[0-9]+$") # false\n')),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"text")," the list"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"pattern")," the element")),(0,a.kt)("p",null,"Returns whether the ",(0,a.kt)("inlineCode",{parentName:"p"},"pattern")," matches the ",(0,a.kt)("inlineCode",{parentName:"p"},"text")," or not."),(0,a.kt)("h3",{id:"scan2"},"scan/2"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},'Regex.scan("foo", "bar") # []\nRegex.scan("toto,123\\ntutu,456\\n", "toto,([0-9]+)") # ["123"]\nRegex.scan("toto,123\\ntutu,456\\n", "t.t.,([0-9]+)") # ["123", "456"]\nRegex.scan("A0B1C2,123\\nD3E4F5,456\\n", "^(\\\\w+),(\\\\d+)$") # [["A0B1C2", "123"], ["D3E4F5", "456"]]\n\n')),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"text")," the list"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"pattern")," the element")),(0,a.kt)("p",null,"Returns the data from ",(0,a.kt)("inlineCode",{parentName:"p"},"text")," extract via the regex ",(0,a.kt)("inlineCode",{parentName:"p"},"pattern"),"."),(0,a.kt)("admonition",{type:"note"},(0,a.kt)("p",{parentName:"admonition"},"This function requires the usage of capture groups (subexpressions).")))}m.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9161],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>g});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),u=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(c.Provider,{value:t},e.children)},s="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,l=e.originalType,c=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),s=u(r),d=a,g=s["".concat(c,".").concat(d)]||s[d]||m[d]||l;return r?n.createElement(g,i(i({ref:t},p),{},{components:r})):n.createElement(g,i({ref:t},p))}));function g(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=r.length,i=new Array(l);i[0]=d;var o={};for(var c in t)hasOwnProperty.call(t,c)&&(o[c]=t[c]);o.originalType=e,o[s]="string"==typeof e?e:a,i[1]=o;for(var u=2;u{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>m,frontMatter:()=>l,metadata:()=>o,toc:()=>u});var n=r(87462),a=(r(67294),r(3905));r(8209);const l={id:"regex",title:"Regex module",sidebar_label:"Regex"},i=void 0,o={unversionedId:"build/smart-contracts/language/library/regex",id:"build/smart-contracts/language/library/regex",title:"Regex module",description:"The Regex module contains functions to extract data from strings via Regular Expressions.",source:"@site/docs/build/smart-contracts/language/library/regex.md",sourceDirName:"build/smart-contracts/language/library",slug:"/build/smart-contracts/language/library/regex",permalink:"/build/smart-contracts/language/library/regex",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"regex",title:"Regex module",sidebar_label:"Regex"},sidebar:"docs",previous:{title:"Math",permalink:"/build/smart-contracts/language/library/math"},next:{title:"State",permalink:"/build/smart-contracts/language/library/state"}},c={},u=[{value:"extract/2",id:"extract2",level:3},{value:"match?/2",id:"match2",level:3},{value:"scan/2",id:"scan2",level:3}],p={toc:u},s="wrapper";function m(e){let{components:t,...r}=e;return(0,a.kt)(s,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The ",(0,a.kt)("inlineCode",{parentName:"p"},"Regex")," module contains functions to extract data from strings via Regular Expressions."),(0,a.kt)("h3",{id:"extract2"},"extract/2"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},'Regex.extract("123456abc", "[0-9]+") # "123456"\nRegex.extract("voodoo", "[abc]") # ""\n')),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"text")," the list"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"pattern")," the element")),(0,a.kt)("p",null,"Returns the data from ",(0,a.kt)("inlineCode",{parentName:"p"},"text")," extract via the regex ",(0,a.kt)("inlineCode",{parentName:"p"},"pattern"),"."),(0,a.kt)("h3",{id:"match2"},"match?/2"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},'Regex.match?("123456", "^[0-9]+$") # true\nRegex.match?("123456abc", "^[0-9]+$") # false\n')),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"text")," the list"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"pattern")," the element")),(0,a.kt)("p",null,"Returns whether the ",(0,a.kt)("inlineCode",{parentName:"p"},"pattern")," matches the ",(0,a.kt)("inlineCode",{parentName:"p"},"text")," or not."),(0,a.kt)("h3",{id:"scan2"},"scan/2"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},'Regex.scan("foo", "bar") # []\nRegex.scan("toto,123\\ntutu,456\\n", "toto,([0-9]+)") # ["123"]\nRegex.scan("toto,123\\ntutu,456\\n", "t.t.,([0-9]+)") # ["123", "456"]\nRegex.scan("A0B1C2,123\\nD3E4F5,456\\n", "^(\\\\w+),(\\\\d+)$") # [["A0B1C2", "123"], ["D3E4F5", "456"]]\n\n')),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"text")," the list"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"pattern")," the element")),(0,a.kt)("p",null,"Returns the data from ",(0,a.kt)("inlineCode",{parentName:"p"},"text")," extract via the regex ",(0,a.kt)("inlineCode",{parentName:"p"},"pattern"),"."),(0,a.kt)("admonition",{type:"note"},(0,a.kt)("p",{parentName:"admonition"},"This function requires the usage of capture groups (subexpressions).")))}m.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file diff --git a/assets/js/4bf323b4.38bfdb5c.js b/assets/js/4bf323b4.ca536d46.js similarity index 99% rename from assets/js/4bf323b4.38bfdb5c.js rename to assets/js/4bf323b4.ca536d46.js index 3d7a187b1..b85795e38 100644 --- a/assets/js/4bf323b4.38bfdb5c.js +++ b/assets/js/4bf323b4.ca536d46.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1601],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>k});var a=n(67294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var s=a.createContext({}),p=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},c=function(e){var t=p(e.components);return a.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,i=e.mdxType,r=e.originalType,s=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),u=p(n),m=i,k=u["".concat(s,".").concat(m)]||u[m]||d[m]||r;return n?a.createElement(k,l(l({ref:t},c),{},{components:n})):a.createElement(k,l({ref:t},c))}));function k(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=n.length,l=new Array(r);l[0]=m;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[u]="string"==typeof e?e:i,l[1]=o;for(var p=2;p{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>d,frontMatter:()=>r,metadata:()=>o,toc:()=>p});var a=n(87462),i=(n(67294),n(3905));n(8209);const r={id:"language",title:"Smart Contracts - Language",sidebar_label:"Language",sidebar_position:2},l=void 0,o={unversionedId:"build/smart-contracts/language/language",id:"build/smart-contracts/language/language",title:"Smart Contracts - Language",description:"A Smart Contract is defined as followed:",source:"@site/docs/build/smart-contracts/language/README.md",sourceDirName:"build/smart-contracts/language",slug:"/build/smart-contracts/language/",permalink:"/build/smart-contracts/language/",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",sidebarPosition:2,frontMatter:{id:"language",title:"Smart Contracts - Language",sidebar_label:"Language",sidebar_position:2},sidebar:"docs",previous:{title:"Smart Contracts",permalink:"/build/smart-contracts/"},next:{title:"Triggers",permalink:"/build/smart-contracts/language/triggers"}},s={},p=[{value:"Version attribute",id:"version-attribute",level:2},{value:"Basic Types",id:"basic-types",level:2},{value:"Hexadecimals",id:"hexadecimals",level:2},{value:"ASCII character in string",id:"ascii-character-in-string",level:2},{value:"Comparaison",id:"comparaison",level:2},{value:"Arithmetic",id:"arithmetic",level:2},{value:"Ranges",id:"ranges",level:2},{value:"Loop",id:"loop",level:2},{value:"Variables & Scopes",id:"variables--scopes",level:2},{value:"Lists",id:"lists",level:2},{value:"Maps",id:"maps",level:2},{value:"Functions",id:"functions",level:2},{value:"Internal Functions",id:"internal-functions",level:3},{value:"Exported Functions",id:"exported-functions",level:3},{value:"Library",id:"library",level:2},{value:"Errors",id:"errors",level:2},{value:"Reserved keywords",id:"reserved-keywords",level:2}],c={toc:p},u="wrapper";function d(e){let{components:t,...n}=e;return(0,i.kt)(u,(0,a.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"A Smart Contract is defined as followed:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"1 version attribute"),(0,i.kt)("li",{parentName:"ul"},"n ",(0,i.kt)("a",{parentName:"li",href:"/build/smart-contracts/language/actions"},"actions")," block (maximum, one per ",(0,i.kt)("a",{parentName:"li",href:"/build/smart-contracts/language/triggers"},"trigger"),")"),(0,i.kt)("li",{parentName:"ul"},"0 or 1 ",(0,i.kt)("a",{parentName:"li",href:"/build/smart-contracts/language/condition#inherit"},"condition inherit")," block"),(0,i.kt)("li",{parentName:"ul"},"0 or 1 ",(0,i.kt)("a",{parentName:"li",href:"/build/smart-contracts/language/condition#transaction"},"condition transaction")," block"),(0,i.kt)("li",{parentName:"ul"},"n ",(0,i.kt)("a",{parentName:"li",href:"/build/smart-contracts/language/condition#transaction"},"condition transaction on")," block"),(0,i.kt)("li",{parentName:"ul"},"0 or 1 ",(0,i.kt)("a",{parentName:"li",href:"/build/smart-contracts/language/condition#oracle"},"condition oracle")," block")),(0,i.kt)("p",null,"The ",(0,i.kt)("inlineCode",{parentName:"p"},"actions")," blocks contain the code to execute when a specific event is triggered."),(0,i.kt)("p",null,"The ",(0,i.kt)("inlineCode",{parentName:"p"},"condition inherit")," block is used to check the outgoing transaction (result) of the contract."),(0,i.kt)("p",null,"The ",(0,i.kt)("inlineCode",{parentName:"p"},"condition transaction")," block is used to check the incoming transaction that triggered the contract."),(0,i.kt)("p",null,"The ",(0,i.kt)("inlineCode",{parentName:"p"},"condition oracle")," block is used to check the incoming oracle transaction when there is an action triggered by oracle."),(0,i.kt)("h2",{id:"version-attribute"},"Version attribute"),(0,i.kt)("p",null,"A version attribute must be specified on the first line of the code. This version is used by the interpreter to have the right behavior in case of breaking changes."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-elixir"},"@version 1\n# Rest of the code\n")),(0,i.kt)("h2",{id:"basic-types"},"Basic Types"),(0,i.kt)("p",null,"This language is based on a functional language (elixir), but we added some imperative twist to it, to make it friendlier!"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Comments are lines that start with a ",(0,i.kt)("inlineCode",{parentName:"li"},"#")),(0,i.kt)("li",{parentName:"ul"},"Strings are double quoted ",(0,i.kt)("inlineCode",{parentName:"li"},'"I am a string"')),(0,i.kt)("li",{parentName:"ul"},"String interpolation ",(0,i.kt)("inlineCode",{parentName:"li"},'"hello #{name}"')),(0,i.kt)("li",{parentName:"ul"},"Integers & Floats can use ",(0,i.kt)("inlineCode",{parentName:"li"},"_")," at your convenience ",(0,i.kt)("inlineCode",{parentName:"li"},"10_000")," ",(0,i.kt)("inlineCode",{parentName:"li"},"10_000.0")),(0,i.kt)("li",{parentName:"ul"},"Floats can use the scientific format: ",(0,i.kt)("inlineCode",{parentName:"li"},"1.0e2 == 100")),(0,i.kt)("li",{parentName:"ul"},"Booleans syntax: ",(0,i.kt)("inlineCode",{parentName:"li"},"true")," / ",(0,i.kt)("inlineCode",{parentName:"li"},"false")),(0,i.kt)("li",{parentName:"ul"},"The absence of value: ",(0,i.kt)("inlineCode",{parentName:"li"},"nil"))),(0,i.kt)("h2",{id:"hexadecimals"},"Hexadecimals"),(0,i.kt)("p",null,"In the Archethic blockchain, we extensively uses hexadecimals to convert all addresses, public keys or hashes on the user-facing interfaces. A Smart Contract is one of these interfaces."),(0,i.kt)("p",null,"To reduce the possibility of errors when comparing hexadecimals (",(0,i.kt)("inlineCode",{parentName:"p"},'"000ABCD" != "000abcd"')," even if it's actually the same value), we introduced a new syntax: ",(0,i.kt)("inlineCode",{parentName:"p"},"0x"),". The goal of this syntax is only to facilitate comparaison: ",(0,i.kt)("inlineCode",{parentName:"p"},"0x000ABCD == 0x000abcd"),"."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-elixir"},'# don\'t\ntransaction.address == "000ABCD123"\n\n# do\ntransaction.address == 0x000ABCD123 # no quotes!\n')),(0,i.kt)("p",null,"So whenever you write a hexadecimal value by hand, prefix it with ",(0,i.kt)("inlineCode",{parentName:"p"},"0x"),"."),(0,i.kt)("h2",{id:"ascii-character-in-string"},"ASCII character in string"),(0,i.kt)("p",null,"If you need to use some specific character in a string, you can use their hexadecimal representation by prefixing the hexadecimal with ",(0,i.kt)("inlineCode",{parentName:"p"},"\\x")),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-elixir"},'"hello" == "\\x68\\x65\\x6C\\x6C\\x6F"\n# true\n')),(0,i.kt)("h2",{id:"comparaison"},"Comparaison"),(0,i.kt)("p",null,"We compare by value, which means you can pretty much compare anything and it will work as you expect."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"1 == 1.0")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"[1,2] == [1,2]")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},'[name: "John"] == [name: "John"]')),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"!true == false")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"true != false")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"if do ... end")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"if do ... else ... end"))),(0,i.kt)("h2",{id:"arithmetic"},"Arithmetic"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"1 + 2 == 3")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"2.0 - 1.1 == 0.9")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"1 * 2.0 == 2")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"1 / 1 == 1.0")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"1 / 0")," contract failure")),(0,i.kt)("admonition",{type:"info"},(0,i.kt)("p",{parentName:"admonition"},"The arithmetic is done with the ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/ericmj/decimal"},"Decimal library")," to ensure there is no floating point precision issue.\n",(0,i.kt)("strong",{parentName:"p"},"The only thing to keep in mind is that we truncate at decimal 8."))),(0,i.kt)("h2",{id:"ranges"},"Ranges"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"1..5")," is equivalent to ",(0,i.kt)("inlineCode",{parentName:"li"},"[1,2,3,4,5]"))),(0,i.kt)("h2",{id:"loop"},"Loop"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"for name in names do ... end")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"for i in 1..10 do ... end"))),(0,i.kt)("h2",{id:"variables--scopes"},"Variables & Scopes"),(0,i.kt)("p",null,"Variables are not typed, you can assign any value to them."),(0,i.kt)("p",null,"Variables are mutable, if you update a variable declared in a parent scope, it will also update the value of this variable for the parent scope."),(0,i.kt)("p",null,"A new scope is created every time you enter a new block (",(0,i.kt)("inlineCode",{parentName:"p"},"do .. end"),"). A scope can access (read/write) the variables declared in its parent's scope, but not its child's scope."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-elixir"},'names = ["Tom", "Jerry", ""]\ntext = ""\nfor name in names do # ENTER SCOPE 1\n if name != "" do # ENTER SCOPE 1.1\n new_line = "\\n"\n text = "#{name}#{new_line}"\n end # EXIT SCOPE 1.1\n # new_line does not exists here\nend # EXIT SCOPE 1\n# test = "Tom\\nJerry\\n"\n# name and new_line does not exists here\n')),(0,i.kt)("p",null,"Here's the tree of scopes and variables for the above example:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre"},"[SCOPE 0]\n\u251c\u2500\u2500 names\n\u251c\u2500\u2500 text\n\u2514\u2500\u2500 [SCOPE 1]\n \u251c\u2500\u2500 name\n \u2514\u2500\u2500 [SCOPE 1.1]\n \u2514\u2500\u2500 new_line\n")),(0,i.kt)("h2",{id:"lists"},"Lists"),(0,i.kt)("p",null,"The list is the data structure to work with collections. The syntax is: ",(0,i.kt)("inlineCode",{parentName:"p"},"[1, 2]"),". An empty list is: ",(0,i.kt)("inlineCode",{parentName:"p"},"[]"),".\nThere is a ",(0,i.kt)("a",{parentName:"p",href:"/build/smart-contracts/language/library#list"},"List module")," in the library to manipulate lists."),(0,i.kt)("admonition",{type:"info"},(0,i.kt)("p",{parentName:"admonition"},"Lists are actually ",(0,i.kt)("a",{parentName:"p",href:"https://en.wikipedia.org/wiki/Linked_list"},"Linked Lists"),".")),(0,i.kt)("h2",{id:"maps"},"Maps"),(0,i.kt)("p",null,"The map is the key-value data structure in the Smart Contract language. The syntax is: ",(0,i.kt)("inlineCode",{parentName:"p"},"[key1: 1, key2: 2]")," or if key starts with a number: ",(0,i.kt)("inlineCode",{parentName:"p"},'["00001abc...": 1]'),". The keys must be strings.\nThere is 3 ways to retrieve a value:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"map.property")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},'map["property"]')),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},'Map.get(map, "property")'))),(0,i.kt)("p",null,"We suggest to use the 1st syntax as often as possible. Use the 2nd or 3rd when dealing with dynamic properties."),(0,i.kt)("p",null,"There is a ",(0,i.kt)("a",{parentName:"p",href:"/build/smart-contracts/language/library#map"},"Map module")," module in the library to manipulate maps."),(0,i.kt)("admonition",{type:"note"},(0,i.kt)("p",{parentName:"admonition"},"Since the maps and the lists have a very close syntax, it is impossible to differentiate an empty map from an empty list. So, for semantic reasons, to create an empty map, use the ",(0,i.kt)("inlineCode",{parentName:"p"},"Map.new()")," function call.")),(0,i.kt)("admonition",{type:"tip"},(0,i.kt)("p",{parentName:"admonition"},"The brackets are mostly optional! ",(0,i.kt)("inlineCode",{parentName:"p"},"key1: 1, key2: 2")," will work as well. But if you have a nested map, you cannot omit them!")),(0,i.kt)("h2",{id:"functions"},"Functions"),(0,i.kt)("p",null,"In the Archethic Smart Contract Language, you can declare 2 types of functions:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Internal Functions declared with the ",(0,i.kt)("inlineCode",{parentName:"li"},"fun")," keyword"),(0,i.kt)("li",{parentName:"ul"},"Exported Functions declared with the ",(0,i.kt)("inlineCode",{parentName:"li"},"export fun")," keyword")),(0,i.kt)("h3",{id:"internal-functions"},"Internal Functions"),(0,i.kt)("p",null,"Internal functions are functions that are only available in the Smart Contract. They are not callable from the outside."),(0,i.kt)("p",null,"They are declared with the ",(0,i.kt)("inlineCode",{parentName:"p"},"fun")," keyword and can be called from the ",(0,i.kt)("a",{parentName:"p",href:"/build/smart-contracts/language/actions"},"Action")," or ",(0,i.kt)("a",{parentName:"p",href:"/build/smart-contracts/language/condition"},"Condition")," blocks."),(0,i.kt)("p",null,"They can have 0 argument:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-elixir"},'fun hello() do\n "Hello World!"\nend\n')),(0,i.kt)("p",null,"Or more:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-elixir"},"fun sum(a, b) do\n a + b\nend\n")),(0,i.kt)("p",null,"You can also have the same function name with different signature:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-elixir"},"fun sum(a, b) do\n a + b\nend\n\nfun sum(list) do\n acc = 0\n for i in list do\n acc = acc + i\n end\n acc\nend\n")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"These functions aren't able to call another internal function")," but can call an Exported one."),(0,i.kt)("admonition",{type:"info"},(0,i.kt)("p",{parentName:"admonition"},"Internal functions are able to use ",(0,i.kt)("a",{parentName:"p",href:"/build/smart-contracts/language/library"},"library module")," functions tagged as ",(0,i.kt)("inlineCode",{parentName:"p"},"I/O")," but not the functions tagged as ",(0,i.kt)("inlineCode",{parentName:"p"},"UPDATE_CONTRACT"),".")),(0,i.kt)("h3",{id:"exported-functions"},"Exported Functions"),(0,i.kt)("p",null,"Exported functions are callable from the Smart Contract but also through the outside via the JSON-RPC API.\nThey are declared like internal function but with the ",(0,i.kt)("inlineCode",{parentName:"p"},"export fun")," syntax."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-elixir"},'export fun get_current_count() do\n State.get("count")\nend\n')),(0,i.kt)("p",null,"Unlike internal functions, they can be called from any block of code."),(0,i.kt)("admonition",{type:"info"},(0,i.kt)("p",{parentName:"admonition"},"External functions are not able to use ",(0,i.kt)("a",{parentName:"p",href:"/build/smart-contracts/language/library"},"library module")," functions tagged as ",(0,i.kt)("inlineCode",{parentName:"p"},"I/O")," or ",(0,i.kt)("inlineCode",{parentName:"p"},"Transaction"),".")),(0,i.kt)("h2",{id:"library"},"Library"),(0,i.kt)("p",null,"You may use any functions from the library. The syntax is ",(0,i.kt)("inlineCode",{parentName:"p"},"Module.function(arg1, arg2)"),"."),(0,i.kt)("admonition",{type:"tip"},(0,i.kt)("p",{parentName:"admonition"},"The parenthesis are actually optional! ",(0,i.kt)("inlineCode",{parentName:"p"},"Module.function arg1, arg2")," will work as well.")),(0,i.kt)("p",null,"To see the list of functions available in the Smart Contract Language, check the ",(0,i.kt)("a",{parentName:"p",href:"/build/smart-contracts/language/library"},"Library page"),"."),(0,i.kt)("h2",{id:"errors"},"Errors"),(0,i.kt)("p",null,"We introduced in v1.5.0 the ",(0,i.kt)("inlineCode",{parentName:"p"},"throw")," keyword. It's useful to provide insightful errors to the end users and helps the dApp developers interacting with contracts."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-elixir"},'if Crypto.hash(secret) != State.get("secret_hash") do\n throw code: 1, message: "invalid secret", data: secret\nend\n')),(0,i.kt)("p",null,"The ",(0,i.kt)("inlineCode",{parentName:"p"},"throw")," takes a map with the following keys:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"code"),": an integer of your choice that dApp developers may use to react on a specific error. ",(0,i.kt)("strong",{parentName:"li"},"It should be uniquely identifiable within the contract.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"message"),": a string describing the error."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"data")," ",(0,i.kt)("em",{parentName:"li"},"(opt)"),": some context relevant to the error (can be any type).")),(0,i.kt)("h2",{id:"reserved-keywords"},"Reserved keywords"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"for")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"do")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"end")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"if")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"else"))),(0,i.kt)("p",null,"... to be completed"))}d.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1601],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>k});var a=n(67294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var s=a.createContext({}),p=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},c=function(e){var t=p(e.components);return a.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,i=e.mdxType,r=e.originalType,s=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),u=p(n),m=i,k=u["".concat(s,".").concat(m)]||u[m]||d[m]||r;return n?a.createElement(k,l(l({ref:t},c),{},{components:n})):a.createElement(k,l({ref:t},c))}));function k(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=n.length,l=new Array(r);l[0]=m;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[u]="string"==typeof e?e:i,l[1]=o;for(var p=2;p{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>d,frontMatter:()=>r,metadata:()=>o,toc:()=>p});var a=n(87462),i=(n(67294),n(3905));n(8209);const r={id:"language",title:"Smart Contracts - Language",sidebar_label:"Language",sidebar_position:2},l=void 0,o={unversionedId:"build/smart-contracts/language/language",id:"build/smart-contracts/language/language",title:"Smart Contracts - Language",description:"A Smart Contract is defined as followed:",source:"@site/docs/build/smart-contracts/language/README.md",sourceDirName:"build/smart-contracts/language",slug:"/build/smart-contracts/language/",permalink:"/build/smart-contracts/language/",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",sidebarPosition:2,frontMatter:{id:"language",title:"Smart Contracts - Language",sidebar_label:"Language",sidebar_position:2},sidebar:"docs",previous:{title:"Smart Contracts",permalink:"/build/smart-contracts/"},next:{title:"Triggers",permalink:"/build/smart-contracts/language/triggers"}},s={},p=[{value:"Version attribute",id:"version-attribute",level:2},{value:"Basic Types",id:"basic-types",level:2},{value:"Hexadecimals",id:"hexadecimals",level:2},{value:"ASCII character in string",id:"ascii-character-in-string",level:2},{value:"Comparaison",id:"comparaison",level:2},{value:"Arithmetic",id:"arithmetic",level:2},{value:"Ranges",id:"ranges",level:2},{value:"Loop",id:"loop",level:2},{value:"Variables & Scopes",id:"variables--scopes",level:2},{value:"Lists",id:"lists",level:2},{value:"Maps",id:"maps",level:2},{value:"Functions",id:"functions",level:2},{value:"Internal Functions",id:"internal-functions",level:3},{value:"Exported Functions",id:"exported-functions",level:3},{value:"Library",id:"library",level:2},{value:"Errors",id:"errors",level:2},{value:"Reserved keywords",id:"reserved-keywords",level:2}],c={toc:p},u="wrapper";function d(e){let{components:t,...n}=e;return(0,i.kt)(u,(0,a.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"A Smart Contract is defined as followed:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"1 version attribute"),(0,i.kt)("li",{parentName:"ul"},"n ",(0,i.kt)("a",{parentName:"li",href:"/build/smart-contracts/language/actions"},"actions")," block (maximum, one per ",(0,i.kt)("a",{parentName:"li",href:"/build/smart-contracts/language/triggers"},"trigger"),")"),(0,i.kt)("li",{parentName:"ul"},"0 or 1 ",(0,i.kt)("a",{parentName:"li",href:"/build/smart-contracts/language/condition#inherit"},"condition inherit")," block"),(0,i.kt)("li",{parentName:"ul"},"0 or 1 ",(0,i.kt)("a",{parentName:"li",href:"/build/smart-contracts/language/condition#transaction"},"condition transaction")," block"),(0,i.kt)("li",{parentName:"ul"},"n ",(0,i.kt)("a",{parentName:"li",href:"/build/smart-contracts/language/condition#transaction"},"condition transaction on")," block"),(0,i.kt)("li",{parentName:"ul"},"0 or 1 ",(0,i.kt)("a",{parentName:"li",href:"/build/smart-contracts/language/condition#oracle"},"condition oracle")," block")),(0,i.kt)("p",null,"The ",(0,i.kt)("inlineCode",{parentName:"p"},"actions")," blocks contain the code to execute when a specific event is triggered."),(0,i.kt)("p",null,"The ",(0,i.kt)("inlineCode",{parentName:"p"},"condition inherit")," block is used to check the outgoing transaction (result) of the contract."),(0,i.kt)("p",null,"The ",(0,i.kt)("inlineCode",{parentName:"p"},"condition transaction")," block is used to check the incoming transaction that triggered the contract."),(0,i.kt)("p",null,"The ",(0,i.kt)("inlineCode",{parentName:"p"},"condition oracle")," block is used to check the incoming oracle transaction when there is an action triggered by oracle."),(0,i.kt)("h2",{id:"version-attribute"},"Version attribute"),(0,i.kt)("p",null,"A version attribute must be specified on the first line of the code. This version is used by the interpreter to have the right behavior in case of breaking changes."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-elixir"},"@version 1\n# Rest of the code\n")),(0,i.kt)("h2",{id:"basic-types"},"Basic Types"),(0,i.kt)("p",null,"This language is based on a functional language (elixir), but we added some imperative twist to it, to make it friendlier!"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Comments are lines that start with a ",(0,i.kt)("inlineCode",{parentName:"li"},"#")),(0,i.kt)("li",{parentName:"ul"},"Strings are double quoted ",(0,i.kt)("inlineCode",{parentName:"li"},'"I am a string"')),(0,i.kt)("li",{parentName:"ul"},"String interpolation ",(0,i.kt)("inlineCode",{parentName:"li"},'"hello #{name}"')),(0,i.kt)("li",{parentName:"ul"},"Integers & Floats can use ",(0,i.kt)("inlineCode",{parentName:"li"},"_")," at your convenience ",(0,i.kt)("inlineCode",{parentName:"li"},"10_000")," ",(0,i.kt)("inlineCode",{parentName:"li"},"10_000.0")),(0,i.kt)("li",{parentName:"ul"},"Floats can use the scientific format: ",(0,i.kt)("inlineCode",{parentName:"li"},"1.0e2 == 100")),(0,i.kt)("li",{parentName:"ul"},"Booleans syntax: ",(0,i.kt)("inlineCode",{parentName:"li"},"true")," / ",(0,i.kt)("inlineCode",{parentName:"li"},"false")),(0,i.kt)("li",{parentName:"ul"},"The absence of value: ",(0,i.kt)("inlineCode",{parentName:"li"},"nil"))),(0,i.kt)("h2",{id:"hexadecimals"},"Hexadecimals"),(0,i.kt)("p",null,"In the Archethic blockchain, we extensively uses hexadecimals to convert all addresses, public keys or hashes on the user-facing interfaces. A Smart Contract is one of these interfaces."),(0,i.kt)("p",null,"To reduce the possibility of errors when comparing hexadecimals (",(0,i.kt)("inlineCode",{parentName:"p"},'"000ABCD" != "000abcd"')," even if it's actually the same value), we introduced a new syntax: ",(0,i.kt)("inlineCode",{parentName:"p"},"0x"),". The goal of this syntax is only to facilitate comparaison: ",(0,i.kt)("inlineCode",{parentName:"p"},"0x000ABCD == 0x000abcd"),"."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-elixir"},'# don\'t\ntransaction.address == "000ABCD123"\n\n# do\ntransaction.address == 0x000ABCD123 # no quotes!\n')),(0,i.kt)("p",null,"So whenever you write a hexadecimal value by hand, prefix it with ",(0,i.kt)("inlineCode",{parentName:"p"},"0x"),"."),(0,i.kt)("h2",{id:"ascii-character-in-string"},"ASCII character in string"),(0,i.kt)("p",null,"If you need to use some specific character in a string, you can use their hexadecimal representation by prefixing the hexadecimal with ",(0,i.kt)("inlineCode",{parentName:"p"},"\\x")),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-elixir"},'"hello" == "\\x68\\x65\\x6C\\x6C\\x6F"\n# true\n')),(0,i.kt)("h2",{id:"comparaison"},"Comparaison"),(0,i.kt)("p",null,"We compare by value, which means you can pretty much compare anything and it will work as you expect."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"1 == 1.0")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"[1,2] == [1,2]")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},'[name: "John"] == [name: "John"]')),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"!true == false")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"true != false")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"if do ... end")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"if do ... else ... end"))),(0,i.kt)("h2",{id:"arithmetic"},"Arithmetic"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"1 + 2 == 3")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"2.0 - 1.1 == 0.9")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"1 * 2.0 == 2")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"1 / 1 == 1.0")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"1 / 0")," contract failure")),(0,i.kt)("admonition",{type:"info"},(0,i.kt)("p",{parentName:"admonition"},"The arithmetic is done with the ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/ericmj/decimal"},"Decimal library")," to ensure there is no floating point precision issue.\n",(0,i.kt)("strong",{parentName:"p"},"The only thing to keep in mind is that we truncate at decimal 8."))),(0,i.kt)("h2",{id:"ranges"},"Ranges"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"1..5")," is equivalent to ",(0,i.kt)("inlineCode",{parentName:"li"},"[1,2,3,4,5]"))),(0,i.kt)("h2",{id:"loop"},"Loop"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"for name in names do ... end")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"for i in 1..10 do ... end"))),(0,i.kt)("h2",{id:"variables--scopes"},"Variables & Scopes"),(0,i.kt)("p",null,"Variables are not typed, you can assign any value to them."),(0,i.kt)("p",null,"Variables are mutable, if you update a variable declared in a parent scope, it will also update the value of this variable for the parent scope."),(0,i.kt)("p",null,"A new scope is created every time you enter a new block (",(0,i.kt)("inlineCode",{parentName:"p"},"do .. end"),"). A scope can access (read/write) the variables declared in its parent's scope, but not its child's scope."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-elixir"},'names = ["Tom", "Jerry", ""]\ntext = ""\nfor name in names do # ENTER SCOPE 1\n if name != "" do # ENTER SCOPE 1.1\n new_line = "\\n"\n text = "#{name}#{new_line}"\n end # EXIT SCOPE 1.1\n # new_line does not exists here\nend # EXIT SCOPE 1\n# test = "Tom\\nJerry\\n"\n# name and new_line does not exists here\n')),(0,i.kt)("p",null,"Here's the tree of scopes and variables for the above example:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre"},"[SCOPE 0]\n\u251c\u2500\u2500 names\n\u251c\u2500\u2500 text\n\u2514\u2500\u2500 [SCOPE 1]\n \u251c\u2500\u2500 name\n \u2514\u2500\u2500 [SCOPE 1.1]\n \u2514\u2500\u2500 new_line\n")),(0,i.kt)("h2",{id:"lists"},"Lists"),(0,i.kt)("p",null,"The list is the data structure to work with collections. The syntax is: ",(0,i.kt)("inlineCode",{parentName:"p"},"[1, 2]"),". An empty list is: ",(0,i.kt)("inlineCode",{parentName:"p"},"[]"),".\nThere is a ",(0,i.kt)("a",{parentName:"p",href:"/build/smart-contracts/language/library#list"},"List module")," in the library to manipulate lists."),(0,i.kt)("admonition",{type:"info"},(0,i.kt)("p",{parentName:"admonition"},"Lists are actually ",(0,i.kt)("a",{parentName:"p",href:"https://en.wikipedia.org/wiki/Linked_list"},"Linked Lists"),".")),(0,i.kt)("h2",{id:"maps"},"Maps"),(0,i.kt)("p",null,"The map is the key-value data structure in the Smart Contract language. The syntax is: ",(0,i.kt)("inlineCode",{parentName:"p"},"[key1: 1, key2: 2]")," or if key starts with a number: ",(0,i.kt)("inlineCode",{parentName:"p"},'["00001abc...": 1]'),". The keys must be strings.\nThere is 3 ways to retrieve a value:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"map.property")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},'map["property"]')),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},'Map.get(map, "property")'))),(0,i.kt)("p",null,"We suggest to use the 1st syntax as often as possible. Use the 2nd or 3rd when dealing with dynamic properties."),(0,i.kt)("p",null,"There is a ",(0,i.kt)("a",{parentName:"p",href:"/build/smart-contracts/language/library#map"},"Map module")," module in the library to manipulate maps."),(0,i.kt)("admonition",{type:"note"},(0,i.kt)("p",{parentName:"admonition"},"Since the maps and the lists have a very close syntax, it is impossible to differentiate an empty map from an empty list. So, for semantic reasons, to create an empty map, use the ",(0,i.kt)("inlineCode",{parentName:"p"},"Map.new()")," function call.")),(0,i.kt)("admonition",{type:"tip"},(0,i.kt)("p",{parentName:"admonition"},"The brackets are mostly optional! ",(0,i.kt)("inlineCode",{parentName:"p"},"key1: 1, key2: 2")," will work as well. But if you have a nested map, you cannot omit them!")),(0,i.kt)("h2",{id:"functions"},"Functions"),(0,i.kt)("p",null,"In the Archethic Smart Contract Language, you can declare 2 types of functions:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Internal Functions declared with the ",(0,i.kt)("inlineCode",{parentName:"li"},"fun")," keyword"),(0,i.kt)("li",{parentName:"ul"},"Exported Functions declared with the ",(0,i.kt)("inlineCode",{parentName:"li"},"export fun")," keyword")),(0,i.kt)("h3",{id:"internal-functions"},"Internal Functions"),(0,i.kt)("p",null,"Internal functions are functions that are only available in the Smart Contract. They are not callable from the outside."),(0,i.kt)("p",null,"They are declared with the ",(0,i.kt)("inlineCode",{parentName:"p"},"fun")," keyword and can be called from the ",(0,i.kt)("a",{parentName:"p",href:"/build/smart-contracts/language/actions"},"Action")," or ",(0,i.kt)("a",{parentName:"p",href:"/build/smart-contracts/language/condition"},"Condition")," blocks."),(0,i.kt)("p",null,"They can have 0 argument:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-elixir"},'fun hello() do\n "Hello World!"\nend\n')),(0,i.kt)("p",null,"Or more:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-elixir"},"fun sum(a, b) do\n a + b\nend\n")),(0,i.kt)("p",null,"You can also have the same function name with different signature:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-elixir"},"fun sum(a, b) do\n a + b\nend\n\nfun sum(list) do\n acc = 0\n for i in list do\n acc = acc + i\n end\n acc\nend\n")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"These functions aren't able to call another internal function")," but can call an Exported one."),(0,i.kt)("admonition",{type:"info"},(0,i.kt)("p",{parentName:"admonition"},"Internal functions are able to use ",(0,i.kt)("a",{parentName:"p",href:"/build/smart-contracts/language/library"},"library module")," functions tagged as ",(0,i.kt)("inlineCode",{parentName:"p"},"I/O")," but not the functions tagged as ",(0,i.kt)("inlineCode",{parentName:"p"},"UPDATE_CONTRACT"),".")),(0,i.kt)("h3",{id:"exported-functions"},"Exported Functions"),(0,i.kt)("p",null,"Exported functions are callable from the Smart Contract but also through the outside via the JSON-RPC API.\nThey are declared like internal function but with the ",(0,i.kt)("inlineCode",{parentName:"p"},"export fun")," syntax."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-elixir"},'export fun get_current_count() do\n State.get("count")\nend\n')),(0,i.kt)("p",null,"Unlike internal functions, they can be called from any block of code."),(0,i.kt)("admonition",{type:"info"},(0,i.kt)("p",{parentName:"admonition"},"External functions are not able to use ",(0,i.kt)("a",{parentName:"p",href:"/build/smart-contracts/language/library"},"library module")," functions tagged as ",(0,i.kt)("inlineCode",{parentName:"p"},"I/O")," or ",(0,i.kt)("inlineCode",{parentName:"p"},"Transaction"),".")),(0,i.kt)("h2",{id:"library"},"Library"),(0,i.kt)("p",null,"You may use any functions from the library. The syntax is ",(0,i.kt)("inlineCode",{parentName:"p"},"Module.function(arg1, arg2)"),"."),(0,i.kt)("admonition",{type:"tip"},(0,i.kt)("p",{parentName:"admonition"},"The parenthesis are actually optional! ",(0,i.kt)("inlineCode",{parentName:"p"},"Module.function arg1, arg2")," will work as well.")),(0,i.kt)("p",null,"To see the list of functions available in the Smart Contract Language, check the ",(0,i.kt)("a",{parentName:"p",href:"/build/smart-contracts/language/library"},"Library page"),"."),(0,i.kt)("h2",{id:"errors"},"Errors"),(0,i.kt)("p",null,"We introduced in v1.5.0 the ",(0,i.kt)("inlineCode",{parentName:"p"},"throw")," keyword. It's useful to provide insightful errors to the end users and helps the dApp developers interacting with contracts."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-elixir"},'if Crypto.hash(secret) != State.get("secret_hash") do\n throw code: 1, message: "invalid secret", data: secret\nend\n')),(0,i.kt)("p",null,"The ",(0,i.kt)("inlineCode",{parentName:"p"},"throw")," takes a map with the following keys:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"code"),": an integer of your choice that dApp developers may use to react on a specific error. ",(0,i.kt)("strong",{parentName:"li"},"It should be uniquely identifiable within the contract.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"message"),": a string describing the error."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"data")," ",(0,i.kt)("em",{parentName:"li"},"(opt)"),": some context relevant to the error (can be any type).")),(0,i.kt)("h2",{id:"reserved-keywords"},"Reserved keywords"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"for")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"do")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"end")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"if")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"else"))),(0,i.kt)("p",null,"... to be completed"))}d.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/4c0f205c.b92ccc05.js b/assets/js/4c0f205c.4076354d.js similarity index 98% rename from assets/js/4c0f205c.b92ccc05.js rename to assets/js/4c0f205c.4076354d.js index 5d69dc6cd..42e4c0c7a 100644 --- a/assets/js/4c0f205c.b92ccc05.js +++ b/assets/js/4c0f205c.4076354d.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2217],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>k});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),d=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},c=function(e){var t=d(e.components);return a.createElement(s.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,s=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),p=d(n),m=r,k=p["".concat(s,".").concat(m)]||p[m]||u[m]||o;return n?a.createElement(k,l(l({ref:t},c),{},{components:n})):a.createElement(k,l({ref:t},c))}));function k(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,l=new Array(o);l[0]=m;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:r,l[1]=i;for(var d=2;d{n.r(t),n.d(t,{Badge:()=>u,Bullet:()=>c,Details:()=>k,SpecifiedBy:()=>p,assets:()=>d,contentTitle:()=>i,default:()=>y,frontMatter:()=>l,metadata:()=>s,toc:()=>m});var a=n(87462),r=n(67294),o=n(3905);n(8209);const l={id:"token",title:"token",hide_table_of_contents:!1},i=void 0,s={unversionedId:"build/api/schema/queries/token",id:"build/api/schema/queries/token",title:"token",description:"Query the network to find a token's data",source:"@site/docs/build/api/schema/queries/token.mdx",sourceDirName:"build/api/schema/queries",slug:"/build/api/schema/queries/token",permalink:"/build/api/schema/queries/token",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"token",title:"token",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"sharedSecrets",permalink:"/build/api/schema/queries/shared-secrets"},next:{title:"transactionChain",permalink:"/build/api/schema/queries/transaction-chain"}},d={},c=()=>(0,o.kt)(r.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=e=>(0,o.kt)(r.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,o.kt)(r.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),m=[{value:"Arguments",id:"arguments",level:3},{value:'token.addressAddress! ',id:"code-style-fontweight-normal-tokenbaddressbcodeaddress--",level:4},{value:"Type",id:"type",level:3},{value:'Token ',id:"token-",level:4}],k=e=>{let{dataOpen:t,dataClose:n,children:l,startOpen:i=!1}=e;const[s,d]=(0,r.useState)(i);return(0,o.kt)("details",(0,a.Z)({},s?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),d((e=>!e))},style:{listStyle:"none"}},s?t:n),s&&l)},f={Bullet:c,SpecifiedBy:p,Badge:u,toc:m,Details:k},b="wrapper";function y(e){let{components:t,...n}=e;return(0,o.kt)(b,(0,a.Z)({},f,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Query the network to find a token's data"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"token(\n address: Address!\n): Token\n")),(0,o.kt)("h3",{id:"arguments"},"Arguments"),(0,o.kt)("h4",{id:"code-style-fontweight-normal-tokenbaddressbcodeaddress--"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"token.",(0,o.kt)("b",null,"address"))),(0,o.kt)(c,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/address"},(0,o.kt)("inlineCode",{parentName:"a"},"Address!"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"non-null",mdxType:"Badge"})," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h3",{id:"type"},"Type"),(0,o.kt)("h4",{id:"token-"},(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/token"},(0,o.kt)("inlineCode",{parentName:"a"},"Token"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,o.kt)("blockquote",null,(0,o.kt)("p",{parentName:"blockquote"},"[token]"," represents a token metadata.\nIt includes:"),(0,o.kt)("ul",{parentName:"blockquote"},(0,o.kt)("li",{parentName:"ul"},"genesis: Genesis address to the token"),(0,o.kt)("li",{parentName:"ul"},"name: Name of the token"),(0,o.kt)("li",{parentName:"ul"},"symbol: Symbol of the token"),(0,o.kt)("li",{parentName:"ul"},"supply: Supply of the token"),(0,o.kt)("li",{parentName:"ul"},"type: Type of the token"),(0,o.kt)("li",{parentName:"ul"},"decimals: Number of decimals of the token"),(0,o.kt)("li",{parentName:"ul"},"properties: Properties of the token (if any)"),(0,o.kt)("li",{parentName:"ul"},"collection: List of properties for a collection (if any)"),(0,o.kt)("li",{parentName:"ul"},"ownerships: authorization/delegations containing list of secrets and their authorized public keys to proof the ownership"),(0,o.kt)("li",{parentName:"ul"},"id: Unique identification of the token on the chain"))))}y.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2217],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>k});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),d=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},c=function(e){var t=d(e.components);return a.createElement(s.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,s=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),p=d(n),m=r,k=p["".concat(s,".").concat(m)]||p[m]||u[m]||o;return n?a.createElement(k,l(l({ref:t},c),{},{components:n})):a.createElement(k,l({ref:t},c))}));function k(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,l=new Array(o);l[0]=m;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:r,l[1]=i;for(var d=2;d{n.r(t),n.d(t,{Badge:()=>u,Bullet:()=>c,Details:()=>k,SpecifiedBy:()=>p,assets:()=>d,contentTitle:()=>i,default:()=>y,frontMatter:()=>l,metadata:()=>s,toc:()=>m});var a=n(87462),r=n(67294),o=n(3905);n(8209);const l={id:"token",title:"token",hide_table_of_contents:!1},i=void 0,s={unversionedId:"build/api/schema/queries/token",id:"build/api/schema/queries/token",title:"token",description:"Query the network to find a token's data",source:"@site/docs/build/api/schema/queries/token.mdx",sourceDirName:"build/api/schema/queries",slug:"/build/api/schema/queries/token",permalink:"/build/api/schema/queries/token",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"token",title:"token",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"sharedSecrets",permalink:"/build/api/schema/queries/shared-secrets"},next:{title:"transactionChain",permalink:"/build/api/schema/queries/transaction-chain"}},d={},c=()=>(0,o.kt)(r.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=e=>(0,o.kt)(r.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,o.kt)(r.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),m=[{value:"Arguments",id:"arguments",level:3},{value:'token.addressAddress! ',id:"code-style-fontweight-normal-tokenbaddressbcodeaddress--",level:4},{value:"Type",id:"type",level:3},{value:'Token ',id:"token-",level:4}],k=e=>{let{dataOpen:t,dataClose:n,children:l,startOpen:i=!1}=e;const[s,d]=(0,r.useState)(i);return(0,o.kt)("details",(0,a.Z)({},s?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),d((e=>!e))},style:{listStyle:"none"}},s?t:n),s&&l)},f={Bullet:c,SpecifiedBy:p,Badge:u,toc:m,Details:k},b="wrapper";function y(e){let{components:t,...n}=e;return(0,o.kt)(b,(0,a.Z)({},f,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Query the network to find a token's data"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"token(\n address: Address!\n): Token\n")),(0,o.kt)("h3",{id:"arguments"},"Arguments"),(0,o.kt)("h4",{id:"code-style-fontweight-normal-tokenbaddressbcodeaddress--"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"token.",(0,o.kt)("b",null,"address"))),(0,o.kt)(c,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/address"},(0,o.kt)("inlineCode",{parentName:"a"},"Address!"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"non-null",mdxType:"Badge"})," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h3",{id:"type"},"Type"),(0,o.kt)("h4",{id:"token-"},(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/token"},(0,o.kt)("inlineCode",{parentName:"a"},"Token"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,o.kt)("blockquote",null,(0,o.kt)("p",{parentName:"blockquote"},"[token]"," represents a token metadata.\nIt includes:"),(0,o.kt)("ul",{parentName:"blockquote"},(0,o.kt)("li",{parentName:"ul"},"genesis: Genesis address to the token"),(0,o.kt)("li",{parentName:"ul"},"name: Name of the token"),(0,o.kt)("li",{parentName:"ul"},"symbol: Symbol of the token"),(0,o.kt)("li",{parentName:"ul"},"supply: Supply of the token"),(0,o.kt)("li",{parentName:"ul"},"type: Type of the token"),(0,o.kt)("li",{parentName:"ul"},"decimals: Number of decimals of the token"),(0,o.kt)("li",{parentName:"ul"},"properties: Properties of the token (if any)"),(0,o.kt)("li",{parentName:"ul"},"collection: List of properties for a collection (if any)"),(0,o.kt)("li",{parentName:"ul"},"ownerships: authorization/delegations containing list of secrets and their authorized public keys to proof the ownership"),(0,o.kt)("li",{parentName:"ul"},"id: Unique identification of the token on the chain"))))}y.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/4d54d076.f650cb94.js b/assets/js/4d54d076.51b2ce18.js similarity index 98% rename from assets/js/4d54d076.f650cb94.js rename to assets/js/4d54d076.51b2ce18.js index 6ccc733d7..f39cb95bb 100644 --- a/assets/js/4d54d076.f650cb94.js +++ b/assets/js/4d54d076.51b2ce18.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7080],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>h});var r=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),u=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},c=function(e){var t=u(e.components);return r.createElement(s.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),d=u(n),m=o,h=d["".concat(s,".").concat(m)]||d[m]||p[m]||i;return n?r.createElement(h,a(a({ref:t},c),{},{components:n})):r.createElement(h,a({ref:t},c))}));function h(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,a=new Array(i);a[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[d]="string"==typeof e?e:o,a[1]=l;for(var u=2;u{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>a,default:()=>p,frontMatter:()=>i,metadata:()=>l,toc:()=>u});var r=n(87462),o=(n(67294),n(3905));n(8209);const i={id:"contributing",title:"Contributing"},a=void 0,l={unversionedId:"contributing",id:"contributing",title:"Contributing",description:"This documentation is maintained by the Archethic Foundation. It's an open source project and aims to be the most extensive",source:"@site/docs/contributing.md",sourceDirName:".",slug:"/contributing",permalink:"/contributing",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"contributing",title:"Contributing"},sidebar:"docs",previous:{title:"aeWallet",permalink:"/FAQ/wallet"}},s={},u=[{value:"How to contribute",id:"how-to-contribute",level:2},{value:"Guidelines",id:"guidelines",level:3},{value:"Diagrams",id:"diagrams",level:3}],c={toc:u},d="wrapper";function p(e){let{components:t,...n}=e;return(0,o.kt)(d,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"This documentation is maintained by the Archethic Foundation. It's an open source project and aims to be the most extensive\nresources of knowledge on Archethic and its ecosystem."),(0,o.kt)("p",null,"We welcome contributions from anyone and are grateful for even the smallest of improvement from typo issues, to proposals, to enhance explaination or create diagrams, etc.\nTherefore, pull requests, discussions, and contributions from the community are encouraged."),(0,o.kt)("h2",{id:"how-to-contribute"},"How to contribute"),(0,o.kt)("p",null,"You can contribute on the ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/archethic-docs"},"archethic-foundation/archethic-docs repository"),". The documentation is build with ",(0,o.kt)("a",{parentName:"p",href:"https://docusaurus.io"},"Docusaurus")," and each page is written in Markdown which is an easy to learn syntax extension to plain text that make creating links, rendering images and nice looking formatting example."),(0,o.kt)("h3",{id:"guidelines"},"Guidelines"),(0,o.kt)("p",null,"There are few basic ground-rules for contributing:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"No ",(0,o.kt)("inlineCode",{parentName:"li"},"--force")," pushes or modifying the Git history"),(0,o.kt)("li",{parentName:"ol"},"Pull requests are preferred to issues, especially for small changes such as typos. Issues should be used for generic or broad-based changes or missing content. Suggestions and requests are encouraged."),(0,o.kt)("li",{parentName:"ol"},"Please ",(0,o.kt)("inlineCode",{parentName:"li"},"fork")," or use ",(0,o.kt)("inlineCode",{parentName:"li"},"non-main branches"),"."),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("inlineCode",{parentName:"li"},"Significant modifications"),", even by contributors, ought to be subject to a pull request to solicit feedback from other contributors."),(0,o.kt)("li",{parentName:"ol"},"Pull requests to solicit feedback are encouraged for any other non-trivial contribution but left to the discretion of the contributor."),(0,o.kt)("li",{parentName:"ol"},"Contributors should attempt to adhere to the prevailing MarkDown style, language, and layout."),(0,o.kt)("li",{parentName:"ol"},"Correct grammar should be used at all times. Pull requests with typos will not be merged until fixed."),(0,o.kt)("li",{parentName:"ol"},"Care should be taken to remain as objective and informative as possible. There should be no editorializing, and external bias should not be present.")),(0,o.kt)("h3",{id:"diagrams"},"Diagrams"),(0,o.kt)("p",null,"The documentation supports also diagram through the use or ",(0,o.kt)("a",{parentName:"p",href:"https://mermaid-js.github.io"},"Mermaid")," which permits to create diagram with markdown code:"),(0,o.kt)("p",null,"Inserting this code:"),(0,o.kt)("p",null,"```mermaid",(0,o.kt)("br",null),"sequenceDiagram",(0,o.kt)("br",null),"\xa0\xa0\xa0Alice->>John: Hello John, how are you? ",(0,o.kt)("br",null),"\xa0\xa0\xa0John--\x3e>Alice: Great!",(0,o.kt)("br",null),"\xa0\xa0\xa0Alice-)John: See you later!",(0,o.kt)("br",null),"```"),(0,o.kt)("p",null,"will output this diagram"),(0,o.kt)("mermaid",{value:"sequenceDiagram\n Alice->>John: Hello John, how are you?\n John--\x3e>Alice: Great!\n Alice-)John: See you later!"}),(0,o.kt)("p",null,"To help you design them you can leverage an ",(0,o.kt)("a",{parentName:"p",href:"https://mermaid.live/"},"editor")," to visualize the diagrams."))}p.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7080],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>h});var r=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),u=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},c=function(e){var t=u(e.components);return r.createElement(s.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),d=u(n),m=o,h=d["".concat(s,".").concat(m)]||d[m]||p[m]||i;return n?r.createElement(h,a(a({ref:t},c),{},{components:n})):r.createElement(h,a({ref:t},c))}));function h(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,a=new Array(i);a[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[d]="string"==typeof e?e:o,a[1]=l;for(var u=2;u{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>a,default:()=>p,frontMatter:()=>i,metadata:()=>l,toc:()=>u});var r=n(87462),o=(n(67294),n(3905));n(8209);const i={id:"contributing",title:"Contributing"},a=void 0,l={unversionedId:"contributing",id:"contributing",title:"Contributing",description:"This documentation is maintained by the Archethic Foundation. It's an open source project and aims to be the most extensive",source:"@site/docs/contributing.md",sourceDirName:".",slug:"/contributing",permalink:"/contributing",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"contributing",title:"Contributing"},sidebar:"docs",previous:{title:"aeWallet",permalink:"/FAQ/wallet"}},s={},u=[{value:"How to contribute",id:"how-to-contribute",level:2},{value:"Guidelines",id:"guidelines",level:3},{value:"Diagrams",id:"diagrams",level:3}],c={toc:u},d="wrapper";function p(e){let{components:t,...n}=e;return(0,o.kt)(d,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"This documentation is maintained by the Archethic Foundation. It's an open source project and aims to be the most extensive\nresources of knowledge on Archethic and its ecosystem."),(0,o.kt)("p",null,"We welcome contributions from anyone and are grateful for even the smallest of improvement from typo issues, to proposals, to enhance explaination or create diagrams, etc.\nTherefore, pull requests, discussions, and contributions from the community are encouraged."),(0,o.kt)("h2",{id:"how-to-contribute"},"How to contribute"),(0,o.kt)("p",null,"You can contribute on the ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/archethic-docs"},"archethic-foundation/archethic-docs repository"),". The documentation is build with ",(0,o.kt)("a",{parentName:"p",href:"https://docusaurus.io"},"Docusaurus")," and each page is written in Markdown which is an easy to learn syntax extension to plain text that make creating links, rendering images and nice looking formatting example."),(0,o.kt)("h3",{id:"guidelines"},"Guidelines"),(0,o.kt)("p",null,"There are few basic ground-rules for contributing:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"No ",(0,o.kt)("inlineCode",{parentName:"li"},"--force")," pushes or modifying the Git history"),(0,o.kt)("li",{parentName:"ol"},"Pull requests are preferred to issues, especially for small changes such as typos. Issues should be used for generic or broad-based changes or missing content. Suggestions and requests are encouraged."),(0,o.kt)("li",{parentName:"ol"},"Please ",(0,o.kt)("inlineCode",{parentName:"li"},"fork")," or use ",(0,o.kt)("inlineCode",{parentName:"li"},"non-main branches"),"."),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("inlineCode",{parentName:"li"},"Significant modifications"),", even by contributors, ought to be subject to a pull request to solicit feedback from other contributors."),(0,o.kt)("li",{parentName:"ol"},"Pull requests to solicit feedback are encouraged for any other non-trivial contribution but left to the discretion of the contributor."),(0,o.kt)("li",{parentName:"ol"},"Contributors should attempt to adhere to the prevailing MarkDown style, language, and layout."),(0,o.kt)("li",{parentName:"ol"},"Correct grammar should be used at all times. Pull requests with typos will not be merged until fixed."),(0,o.kt)("li",{parentName:"ol"},"Care should be taken to remain as objective and informative as possible. There should be no editorializing, and external bias should not be present.")),(0,o.kt)("h3",{id:"diagrams"},"Diagrams"),(0,o.kt)("p",null,"The documentation supports also diagram through the use or ",(0,o.kt)("a",{parentName:"p",href:"https://mermaid-js.github.io"},"Mermaid")," which permits to create diagram with markdown code:"),(0,o.kt)("p",null,"Inserting this code:"),(0,o.kt)("p",null,"```mermaid",(0,o.kt)("br",null),"sequenceDiagram",(0,o.kt)("br",null),"\xa0\xa0\xa0Alice->>John: Hello John, how are you? ",(0,o.kt)("br",null),"\xa0\xa0\xa0John--\x3e>Alice: Great!",(0,o.kt)("br",null),"\xa0\xa0\xa0Alice-)John: See you later!",(0,o.kt)("br",null),"```"),(0,o.kt)("p",null,"will output this diagram"),(0,o.kt)("mermaid",{value:"sequenceDiagram\n Alice->>John: Hello John, how are you?\n John--\x3e>Alice: Great!\n Alice-)John: See you later!"}),(0,o.kt)("p",null,"To help you design them you can leverage an ",(0,o.kt)("a",{parentName:"p",href:"https://mermaid.live/"},"editor")," to visualize the diagrams."))}p.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/5037eb2b.8f83e448.js b/assets/js/5037eb2b.27255450.js similarity index 98% rename from assets/js/5037eb2b.8f83e448.js rename to assets/js/5037eb2b.27255450.js index 06eb84a6e..05fde5d23 100644 --- a/assets/js/5037eb2b.8f83e448.js +++ b/assets/js/5037eb2b.27255450.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[246],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>f});var n=r(67294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var c=n.createContext({}),s=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},u=function(e){var t=s(e.components);return n.createElement(c.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,i=e.mdxType,o=e.originalType,c=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),p=s(r),m=i,f=p["".concat(c,".").concat(m)]||p[m]||d[m]||o;return r?n.createElement(f,a(a({ref:t},u),{},{components:r})):n.createElement(f,a({ref:t},u))}));function f(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=r.length,a=new Array(o);a[0]=m;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[p]="string"==typeof e?e:i,a[1]=l;for(var s=2;s{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>d,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var n=r(87462),i=(r(67294),r(3905));r(8209);const o={id:"election",title:"Election"},a=void 0,l={unversionedId:"build/core/election",id:"build/core/election",title:"Election",description:"Archethic provides rotating algorithm to elect validation and storage nodes.",source:"@site/docs/build/core/election.md",sourceDirName:"build/core",slug:"/build/core/election",permalink:"/build/core/election",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"election",title:"Election"},sidebar:"docs",previous:{title:"Archethic's database",permalink:"/build/core/database"},next:{title:"CD",permalink:"/build/core/governance/code-proposals-cd"}},c={},s=[{value:"Heuristic constraints",id:"heuristic-constraints",level:2},{value:"Low-Level integrations",id:"low-level-integrations",level:2},{value:"Hypergeomtric distribution",id:"hypergeomtric-distribution",level:3}],u={toc:s},p="wrapper";function d(e){let{components:t,...r}=e;return(0,i.kt)(p,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"Archethic provides rotating algorithm to elect validation and storage nodes. "),(0,i.kt)("p",null,"Validation and Storage Election algorithm provides also list of heuristic constraints to fine grained elections. "),(0,i.kt)("h2",{id:"heuristic-constraints"},"Heuristic constraints"),(0,i.kt)("p",null,"An ETS table is used to store the last constraints values for a faster lookup."),(0,i.kt)("p",null,"Storage constraints are defined by:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"minimum storage geographical patches"),(0,i.kt)("li",{parentName:"ul"},"minimum storage average by geographical patch"),(0,i.kt)("li",{parentName:"ul"},"number of replicast")),(0,i.kt)("p",null,"Validation constraints are defined by:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"minimum validation geographical patch distribution"),(0,i.kt)("li",{parentName:"ul"},"minimum validation nodes"),(0,i.kt)("li",{parentName:"ul"},"validation number based on a given transaction")),(0,i.kt)("h2",{id:"low-level-integrations"},"Low-Level integrations"),(0,i.kt)("p",null,"Sometimes for performance issue, we are leveraging low-level programming in C, to perform fast computation."),(0,i.kt)("h3",{id:"hypergeomtric-distribution"},"Hypergeomtric distribution"),(0,i.kt)("p",null,"For example, the Hypergeometric Distribution simulation is computed in C and wrapped in an Erlang port communication.\nBut for better simulation lookup, a cache is provided as process to hold the last value for a given number of nodes.\nIf the number of nodes changes, the hypergeometric distribution will be trigger."),(0,i.kt)("p",null,"The C program is using ",(0,i.kt)("inlineCode",{parentName:"p"},"GMP")," for big float arithemetic operations and ",(0,i.kt)("inlineCode",{parentName:"p"},"OMP")," for parallel computations to make it efficient."),(0,i.kt)("mermaid",{value:"sequenceDiagram\n Election->>+Process: Run simulation for N nodes\n alt with cache value\n Process--\x3e>Election: Retrieve cached value\n else without cache value\n Process->>C: Run simultation\n end\n"}))}d.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[246],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>f});var n=r(67294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var c=n.createContext({}),s=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},u=function(e){var t=s(e.components);return n.createElement(c.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,i=e.mdxType,o=e.originalType,c=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),p=s(r),m=i,f=p["".concat(c,".").concat(m)]||p[m]||d[m]||o;return r?n.createElement(f,a(a({ref:t},u),{},{components:r})):n.createElement(f,a({ref:t},u))}));function f(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=r.length,a=new Array(o);a[0]=m;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[p]="string"==typeof e?e:i,a[1]=l;for(var s=2;s{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>d,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var n=r(87462),i=(r(67294),r(3905));r(8209);const o={id:"election",title:"Election"},a=void 0,l={unversionedId:"build/core/election",id:"build/core/election",title:"Election",description:"Archethic provides rotating algorithm to elect validation and storage nodes.",source:"@site/docs/build/core/election.md",sourceDirName:"build/core",slug:"/build/core/election",permalink:"/build/core/election",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"election",title:"Election"},sidebar:"docs",previous:{title:"Archethic's database",permalink:"/build/core/database"},next:{title:"CD",permalink:"/build/core/governance/code-proposals-cd"}},c={},s=[{value:"Heuristic constraints",id:"heuristic-constraints",level:2},{value:"Low-Level integrations",id:"low-level-integrations",level:2},{value:"Hypergeomtric distribution",id:"hypergeomtric-distribution",level:3}],u={toc:s},p="wrapper";function d(e){let{components:t,...r}=e;return(0,i.kt)(p,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"Archethic provides rotating algorithm to elect validation and storage nodes. "),(0,i.kt)("p",null,"Validation and Storage Election algorithm provides also list of heuristic constraints to fine grained elections. "),(0,i.kt)("h2",{id:"heuristic-constraints"},"Heuristic constraints"),(0,i.kt)("p",null,"An ETS table is used to store the last constraints values for a faster lookup."),(0,i.kt)("p",null,"Storage constraints are defined by:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"minimum storage geographical patches"),(0,i.kt)("li",{parentName:"ul"},"minimum storage average by geographical patch"),(0,i.kt)("li",{parentName:"ul"},"number of replicast")),(0,i.kt)("p",null,"Validation constraints are defined by:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"minimum validation geographical patch distribution"),(0,i.kt)("li",{parentName:"ul"},"minimum validation nodes"),(0,i.kt)("li",{parentName:"ul"},"validation number based on a given transaction")),(0,i.kt)("h2",{id:"low-level-integrations"},"Low-Level integrations"),(0,i.kt)("p",null,"Sometimes for performance issue, we are leveraging low-level programming in C, to perform fast computation."),(0,i.kt)("h3",{id:"hypergeomtric-distribution"},"Hypergeomtric distribution"),(0,i.kt)("p",null,"For example, the Hypergeometric Distribution simulation is computed in C and wrapped in an Erlang port communication.\nBut for better simulation lookup, a cache is provided as process to hold the last value for a given number of nodes.\nIf the number of nodes changes, the hypergeometric distribution will be trigger."),(0,i.kt)("p",null,"The C program is using ",(0,i.kt)("inlineCode",{parentName:"p"},"GMP")," for big float arithemetic operations and ",(0,i.kt)("inlineCode",{parentName:"p"},"OMP")," for parallel computations to make it efficient."),(0,i.kt)("mermaid",{value:"sequenceDiagram\n Election->>+Process: Run simulation for N nodes\n alt with cache value\n Process--\x3e>Election: Retrieve cached value\n else without cache value\n Process->>C: Run simultation\n end\n"}))}d.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file diff --git a/assets/js/5185999b.07ca23cd.js b/assets/js/5185999b.1d684353.js similarity index 96% rename from assets/js/5185999b.07ca23cd.js rename to assets/js/5185999b.1d684353.js index e1d13e91a..3f2bec470 100644 --- a/assets/js/5185999b.07ca23cd.js +++ b/assets/js/5185999b.1d684353.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1714],{3905:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>f});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},l=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,l=i(e,["components","mdxType","originalType","parentName"]),m=p(r),d=a,f=m["".concat(s,".").concat(d)]||m[d]||u[d]||o;return r?n.createElement(f,c(c({ref:t},l),{},{components:r})):n.createElement(f,c({ref:t},l))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,c=new Array(o);c[0]=d;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[m]="string"==typeof e?e:a,c[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var n=r(87462),a=(r(67294),r(3905));r(8209);const o={title:"Smart Contracts",id:"smart-contracts",sidebar_label:"Smart Contracts"},c=void 0,i={unversionedId:"participate/dex/Overview/smart_contracts/smart-contracts",id:"participate/dex/Overview/smart_contracts/smart-contracts",title:"Smart Contracts",description:"",source:"@site/docs/participate/dex/03-Overview/04-smart_contracts/README.md",sourceDirName:"participate/dex/03-Overview/04-smart_contracts",slug:"/participate/dex/Overview/smart_contracts/",permalink:"/participate/dex/Overview/smart_contracts/",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{title:"Smart Contracts",id:"smart-contracts",sidebar_label:"Smart Contracts"},sidebar:"docs",previous:{title:"Glossary",permalink:"/participate/dex/Overview/glossary"},next:{title:"Farm Lock",permalink:"/participate/dex/Overview/smart_contracts/farm-lock"}},s={},p=[],l={toc:p},m="wrapper";function u(e){let{components:t,...r}=e;return(0,a.kt)(m,(0,n.Z)({},l,r,{components:t,mdxType:"MDXLayout"}))}u.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1714],{3905:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>f});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},l=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,l=i(e,["components","mdxType","originalType","parentName"]),m=p(r),d=a,f=m["".concat(s,".").concat(d)]||m[d]||u[d]||o;return r?n.createElement(f,c(c({ref:t},l),{},{components:r})):n.createElement(f,c({ref:t},l))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,c=new Array(o);c[0]=d;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[m]="string"==typeof e?e:a,c[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var n=r(87462),a=(r(67294),r(3905));r(8209);const o={title:"Smart Contracts",id:"smart-contracts",sidebar_label:"Smart Contracts"},c=void 0,i={unversionedId:"participate/dex/Overview/smart_contracts/smart-contracts",id:"participate/dex/Overview/smart_contracts/smart-contracts",title:"Smart Contracts",description:"",source:"@site/docs/participate/dex/03-Overview/04-smart_contracts/README.md",sourceDirName:"participate/dex/03-Overview/04-smart_contracts",slug:"/participate/dex/Overview/smart_contracts/",permalink:"/participate/dex/Overview/smart_contracts/",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{title:"Smart Contracts",id:"smart-contracts",sidebar_label:"Smart Contracts"},sidebar:"docs",previous:{title:"Glossary",permalink:"/participate/dex/Overview/glossary"},next:{title:"Farm Lock",permalink:"/participate/dex/Overview/smart_contracts/farm-lock"}},s={},p=[],l={toc:p},m="wrapper";function u(e){let{components:t,...r}=e;return(0,a.kt)(m,(0,n.Z)({},l,r,{components:t,mdxType:"MDXLayout"}))}u.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file diff --git a/assets/js/55620597.2fb97967.js b/assets/js/55620597.87e09165.js similarity index 97% rename from assets/js/55620597.2fb97967.js rename to assets/js/55620597.87e09165.js index 276e6f39d..6bf5e45ae 100644 --- a/assets/js/55620597.2fb97967.js +++ b/assets/js/55620597.87e09165.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8342],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>f});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function l(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var i=r.createContext({}),s=function(e){var t=r.useContext(i),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},p=function(e){var t=s(e.components);return r.createElement(i.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},b=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,i=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),d=s(a),b=n,f=d["".concat(i,".").concat(b)]||d[b]||u[b]||o;return a?r.createElement(f,l(l({ref:t},p),{},{components:a})):r.createElement(f,l({ref:t},p))}));function f(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,l=new Array(o);l[0]=b;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[d]="string"==typeof e?e:n,l[1]=c;for(var s=2;s{a.r(t),a.d(t,{Badge:()=>u,Bullet:()=>p,Details:()=>f,SpecifiedBy:()=>d,assets:()=>s,contentTitle:()=>c,default:()=>g,frontMatter:()=>l,metadata:()=>i,toc:()=>b});var r=a(87462),n=a(67294),o=a(3905);a(8209);const l={id:"oracle-update",title:"oracleUpdate",hide_table_of_contents:!1},c=void 0,i={unversionedId:"build/api/schema/subscriptions/oracle-update",id:"build/api/schema/subscriptions/oracle-update",title:"oracleUpdate",description:"Subscribe to be notified when a new oracle data is stored",source:"@site/docs/build/api/schema/subscriptions/oracle-update.mdx",sourceDirName:"build/api/schema/subscriptions",slug:"/build/api/schema/subscriptions/oracle-update",permalink:"/build/api/schema/subscriptions/oracle-update",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"oracle-update",title:"oracleUpdate",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"VersionedHash",permalink:"/build/api/schema/scalars/versioned-hash"},next:{title:"transactionConfirmed",permalink:"/build/api/schema/subscriptions/transaction-confirmed"}},s={},p=()=>(0,o.kt)(n.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),d=e=>(0,o.kt)(n.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,o.kt)(n.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),b=[{value:"Type",id:"type",level:3},{value:'OracleData ',id:"oracledata-",level:4}],f=e=>{let{dataOpen:t,dataClose:a,children:l,startOpen:c=!1}=e;const[i,s]=(0,n.useState)(c);return(0,o.kt)("details",(0,r.Z)({},i?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),s((e=>!e))},style:{listStyle:"none"}},i?t:a),i&&l)},m={Bullet:p,SpecifiedBy:d,Badge:u,toc:b,Details:f},y="wrapper";function g(e){let{components:t,...a}=e;return(0,o.kt)(y,(0,r.Z)({},m,a,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Subscribe to be notified when a new oracle data is stored"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"oracleUpdate: OracleData\n")),(0,o.kt)("h3",{id:"type"},"Type"),(0,o.kt)("h4",{id:"oracledata-"},(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/oracle-data"},(0,o.kt)("inlineCode",{parentName:"a"},"OracleData"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,o.kt)("blockquote",null,(0,o.kt)("p",{parentName:"blockquote"},"[OracleData]"," represents an oracle data.")))}g.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8342],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>f});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function l(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var i=r.createContext({}),s=function(e){var t=r.useContext(i),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},p=function(e){var t=s(e.components);return r.createElement(i.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},b=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,i=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),d=s(a),b=n,f=d["".concat(i,".").concat(b)]||d[b]||u[b]||o;return a?r.createElement(f,l(l({ref:t},p),{},{components:a})):r.createElement(f,l({ref:t},p))}));function f(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,l=new Array(o);l[0]=b;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[d]="string"==typeof e?e:n,l[1]=c;for(var s=2;s{a.r(t),a.d(t,{Badge:()=>u,Bullet:()=>p,Details:()=>f,SpecifiedBy:()=>d,assets:()=>s,contentTitle:()=>c,default:()=>g,frontMatter:()=>l,metadata:()=>i,toc:()=>b});var r=a(87462),n=a(67294),o=a(3905);a(8209);const l={id:"oracle-update",title:"oracleUpdate",hide_table_of_contents:!1},c=void 0,i={unversionedId:"build/api/schema/subscriptions/oracle-update",id:"build/api/schema/subscriptions/oracle-update",title:"oracleUpdate",description:"Subscribe to be notified when a new oracle data is stored",source:"@site/docs/build/api/schema/subscriptions/oracle-update.mdx",sourceDirName:"build/api/schema/subscriptions",slug:"/build/api/schema/subscriptions/oracle-update",permalink:"/build/api/schema/subscriptions/oracle-update",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"oracle-update",title:"oracleUpdate",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"VersionedHash",permalink:"/build/api/schema/scalars/versioned-hash"},next:{title:"transactionConfirmed",permalink:"/build/api/schema/subscriptions/transaction-confirmed"}},s={},p=()=>(0,o.kt)(n.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),d=e=>(0,o.kt)(n.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,o.kt)(n.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),b=[{value:"Type",id:"type",level:3},{value:'OracleData ',id:"oracledata-",level:4}],f=e=>{let{dataOpen:t,dataClose:a,children:l,startOpen:c=!1}=e;const[i,s]=(0,n.useState)(c);return(0,o.kt)("details",(0,r.Z)({},i?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),s((e=>!e))},style:{listStyle:"none"}},i?t:a),i&&l)},m={Bullet:p,SpecifiedBy:d,Badge:u,toc:b,Details:f},y="wrapper";function g(e){let{components:t,...a}=e;return(0,o.kt)(y,(0,r.Z)({},m,a,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Subscribe to be notified when a new oracle data is stored"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"oracleUpdate: OracleData\n")),(0,o.kt)("h3",{id:"type"},"Type"),(0,o.kt)("h4",{id:"oracledata-"},(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/oracle-data"},(0,o.kt)("inlineCode",{parentName:"a"},"OracleData"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,o.kt)("blockquote",null,(0,o.kt)("p",{parentName:"blockquote"},"[OracleData]"," represents an oracle data.")))}g.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file diff --git a/assets/js/56f0859a.a1b705b4.js b/assets/js/56f0859a.08f83872.js similarity index 99% rename from assets/js/56f0859a.a1b705b4.js rename to assets/js/56f0859a.08f83872.js index 752ce7777..14fa28624 100644 --- a/assets/js/56f0859a.a1b705b4.js +++ b/assets/js/56f0859a.08f83872.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5050],{3905:(t,e,a)=>{a.d(e,{Zo:()=>d,kt:()=>b});var n=a(67294);function r(t,e,a){return e in t?Object.defineProperty(t,e,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[e]=a,t}function o(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,n)}return a}function s(t){for(var e=1;e=0||(r[a]=t[a]);return r}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(r[a]=t[a])}return r}var l=n.createContext({}),c=function(t){var e=n.useContext(l),a=e;return t&&(a="function"==typeof t?t(e):s(s({},e),t)),a},d=function(t){var e=c(t.components);return n.createElement(l.Provider,{value:e},t.children)},p="mdxType",u={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},m=n.forwardRef((function(t,e){var a=t.components,r=t.mdxType,o=t.originalType,l=t.parentName,d=i(t,["components","mdxType","originalType","parentName"]),p=c(a),m=r,b=p["".concat(l,".").concat(m)]||p[m]||u[m]||o;return a?n.createElement(b,s(s({ref:e},d),{},{components:a})):n.createElement(b,s({ref:e},d))}));function b(t,e){var a=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var o=a.length,s=new Array(o);s[0]=m;var i={};for(var l in e)hasOwnProperty.call(e,l)&&(i[l]=e[l]);i.originalType=t,i[p]="string"==typeof t?t:r,s[1]=i;for(var c=2;c{a.r(e),a.d(e,{Badge:()=>u,Bullet:()=>d,Details:()=>b,SpecifiedBy:()=>p,assets:()=>c,contentTitle:()=>i,default:()=>g,frontMatter:()=>s,metadata:()=>l,toc:()=>m});var n=a(87462),r=a(67294),o=a(3905);a(8209);const s={id:"transaction-attestation",title:"TransactionAttestation",hide_table_of_contents:!1},i=void 0,l={unversionedId:"build/api/schema/objects/transaction-attestation",id:"build/api/schema/objects/transaction-attestation",title:"TransactionAttestation",description:"[TransactionAttestation] represents an attestation when a transaction is successfully validated and stored.",source:"@site/docs/build/api/schema/objects/transaction-attestation.mdx",sourceDirName:"build/api/schema/objects",slug:"/build/api/schema/objects/transaction-attestation",permalink:"/build/api/schema/objects/transaction-attestation",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"transaction-attestation",title:"TransactionAttestation",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"Token",permalink:"/build/api/schema/objects/token"},next:{title:"TransactionError",permalink:"/build/api/schema/objects/transaction-error"}},c={},d=()=>(0,o.kt)(r.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=t=>(0,o.kt)(r.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:t.url,title:"Specified by "+t.url},"\u2398")),u=t=>(0,o.kt)(r.Fragment,null,(0,o.kt)("span",{className:t.class},t.text)),m=[{value:"Fields",id:"fields",level:3},{value:'TransactionAttestation.addressAddress ',id:"code-style-fontweight-normal-transactionattestationbaddressbcodeaddress-",level:4},{value:'TransactionAttestation.maxConfirmationsInt ',id:"code-style-fontweight-normal-transactionattestationbmaxconfirmationsbcodeint-",level:4},{value:'TransactionAttestation.nbConfirmationsInt ',id:"code-style-fontweight-normal-transactionattestationbnbconfirmationsbcodeint-",level:4},{value:"Returned by",id:"returned-by",level:3}],b=t=>{let{dataOpen:e,dataClose:a,children:s,startOpen:i=!1}=t;const[l,c]=(0,r.useState)(i);return(0,o.kt)("details",(0,n.Z)({},l?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:t=>{t.preventDefault(),c((t=>!t))},style:{listStyle:"none"}},l?e:a),l&&s)},f={Bullet:d,SpecifiedBy:p,Badge:u,toc:m,Details:b},y="wrapper";function g(t){let{components:e,...a}=t;return(0,o.kt)(y,(0,n.Z)({},f,a,{components:e,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"[TransactionAttestation]"," represents an attestation when a transaction is successfully validated and stored.\nFew attestations can be received with differents confirmations to ensure a better security of the replication."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"type TransactionAttestation {\n address: Address\n maxConfirmations: Int\n nbConfirmations: Int\n}\n")),(0,o.kt)("h3",{id:"fields"},"Fields"),(0,o.kt)("h4",{id:"code-style-fontweight-normal-transactionattestationbaddressbcodeaddress-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"TransactionAttestation.",(0,o.kt)("b",null,"address"))),(0,o.kt)(d,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/address"},(0,o.kt)("inlineCode",{parentName:"a"},"Address"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h4",{id:"code-style-fontweight-normal-transactionattestationbmaxconfirmationsbcodeint-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"TransactionAttestation.",(0,o.kt)("b",null,"maxConfirmations"))),(0,o.kt)(d,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/int"},(0,o.kt)("inlineCode",{parentName:"a"},"Int"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h4",{id:"code-style-fontweight-normal-transactionattestationbnbconfirmationsbcodeint-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"TransactionAttestation.",(0,o.kt)("b",null,"nbConfirmations"))),(0,o.kt)(d,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/int"},(0,o.kt)("inlineCode",{parentName:"a"},"Int"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h3",{id:"returned-by"},"Returned by"),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/subscriptions/transaction-confirmed"},(0,o.kt)("inlineCode",{parentName:"a"},"transactionConfirmed"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"subscription",mdxType:"Badge"})))}g.isMDXComponent=!0},8209:(t,e,a)=>{a(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5050],{3905:(t,e,a)=>{a.d(e,{Zo:()=>d,kt:()=>b});var n=a(67294);function r(t,e,a){return e in t?Object.defineProperty(t,e,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[e]=a,t}function o(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,n)}return a}function s(t){for(var e=1;e=0||(r[a]=t[a]);return r}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(r[a]=t[a])}return r}var l=n.createContext({}),c=function(t){var e=n.useContext(l),a=e;return t&&(a="function"==typeof t?t(e):s(s({},e),t)),a},d=function(t){var e=c(t.components);return n.createElement(l.Provider,{value:e},t.children)},p="mdxType",u={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},m=n.forwardRef((function(t,e){var a=t.components,r=t.mdxType,o=t.originalType,l=t.parentName,d=i(t,["components","mdxType","originalType","parentName"]),p=c(a),m=r,b=p["".concat(l,".").concat(m)]||p[m]||u[m]||o;return a?n.createElement(b,s(s({ref:e},d),{},{components:a})):n.createElement(b,s({ref:e},d))}));function b(t,e){var a=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var o=a.length,s=new Array(o);s[0]=m;var i={};for(var l in e)hasOwnProperty.call(e,l)&&(i[l]=e[l]);i.originalType=t,i[p]="string"==typeof t?t:r,s[1]=i;for(var c=2;c{a.r(e),a.d(e,{Badge:()=>u,Bullet:()=>d,Details:()=>b,SpecifiedBy:()=>p,assets:()=>c,contentTitle:()=>i,default:()=>g,frontMatter:()=>s,metadata:()=>l,toc:()=>m});var n=a(87462),r=a(67294),o=a(3905);a(8209);const s={id:"transaction-attestation",title:"TransactionAttestation",hide_table_of_contents:!1},i=void 0,l={unversionedId:"build/api/schema/objects/transaction-attestation",id:"build/api/schema/objects/transaction-attestation",title:"TransactionAttestation",description:"[TransactionAttestation] represents an attestation when a transaction is successfully validated and stored.",source:"@site/docs/build/api/schema/objects/transaction-attestation.mdx",sourceDirName:"build/api/schema/objects",slug:"/build/api/schema/objects/transaction-attestation",permalink:"/build/api/schema/objects/transaction-attestation",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"transaction-attestation",title:"TransactionAttestation",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"Token",permalink:"/build/api/schema/objects/token"},next:{title:"TransactionError",permalink:"/build/api/schema/objects/transaction-error"}},c={},d=()=>(0,o.kt)(r.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=t=>(0,o.kt)(r.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:t.url,title:"Specified by "+t.url},"\u2398")),u=t=>(0,o.kt)(r.Fragment,null,(0,o.kt)("span",{className:t.class},t.text)),m=[{value:"Fields",id:"fields",level:3},{value:'TransactionAttestation.addressAddress ',id:"code-style-fontweight-normal-transactionattestationbaddressbcodeaddress-",level:4},{value:'TransactionAttestation.maxConfirmationsInt ',id:"code-style-fontweight-normal-transactionattestationbmaxconfirmationsbcodeint-",level:4},{value:'TransactionAttestation.nbConfirmationsInt ',id:"code-style-fontweight-normal-transactionattestationbnbconfirmationsbcodeint-",level:4},{value:"Returned by",id:"returned-by",level:3}],b=t=>{let{dataOpen:e,dataClose:a,children:s,startOpen:i=!1}=t;const[l,c]=(0,r.useState)(i);return(0,o.kt)("details",(0,n.Z)({},l?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:t=>{t.preventDefault(),c((t=>!t))},style:{listStyle:"none"}},l?e:a),l&&s)},f={Bullet:d,SpecifiedBy:p,Badge:u,toc:m,Details:b},y="wrapper";function g(t){let{components:e,...a}=t;return(0,o.kt)(y,(0,n.Z)({},f,a,{components:e,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"[TransactionAttestation]"," represents an attestation when a transaction is successfully validated and stored.\nFew attestations can be received with differents confirmations to ensure a better security of the replication."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"type TransactionAttestation {\n address: Address\n maxConfirmations: Int\n nbConfirmations: Int\n}\n")),(0,o.kt)("h3",{id:"fields"},"Fields"),(0,o.kt)("h4",{id:"code-style-fontweight-normal-transactionattestationbaddressbcodeaddress-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"TransactionAttestation.",(0,o.kt)("b",null,"address"))),(0,o.kt)(d,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/address"},(0,o.kt)("inlineCode",{parentName:"a"},"Address"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h4",{id:"code-style-fontweight-normal-transactionattestationbmaxconfirmationsbcodeint-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"TransactionAttestation.",(0,o.kt)("b",null,"maxConfirmations"))),(0,o.kt)(d,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/int"},(0,o.kt)("inlineCode",{parentName:"a"},"Int"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h4",{id:"code-style-fontweight-normal-transactionattestationbnbconfirmationsbcodeint-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"TransactionAttestation.",(0,o.kt)("b",null,"nbConfirmations"))),(0,o.kt)(d,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/int"},(0,o.kt)("inlineCode",{parentName:"a"},"Int"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h3",{id:"returned-by"},"Returned by"),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/subscriptions/transaction-confirmed"},(0,o.kt)("inlineCode",{parentName:"a"},"transactionConfirmed"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"subscription",mdxType:"Badge"})))}g.isMDXComponent=!0},8209:(t,e,a)=>{a(67294)}}]); \ No newline at end of file diff --git a/assets/js/57fb9911.33e0dca6.js b/assets/js/57fb9911.42177e78.js similarity index 99% rename from assets/js/57fb9911.33e0dca6.js rename to assets/js/57fb9911.42177e78.js index 5c321b3dd..418c7299d 100644 --- a/assets/js/57fb9911.33e0dca6.js +++ b/assets/js/57fb9911.42177e78.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4889],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>b});var a=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function s(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var d=a.createContext({}),i=function(e){var t=a.useContext(d),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},c=function(e){var t=i(e.components);return a.createElement(d.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,d=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),p=i(n),m=o,b=p["".concat(d,".").concat(m)]||p[m]||u[m]||r;return n?a.createElement(b,s(s({ref:t},c),{},{components:n})):a.createElement(b,s({ref:t},c))}));function b(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,s=new Array(r);s[0]=m;var l={};for(var d in t)hasOwnProperty.call(t,d)&&(l[d]=t[d]);l.originalType=e,l[p]="string"==typeof e?e:o,s[1]=l;for(var i=2;i{n.r(t),n.d(t,{Badge:()=>u,Bullet:()=>c,Details:()=>b,SpecifiedBy:()=>p,assets:()=>i,contentTitle:()=>l,default:()=>y,frontMatter:()=>s,metadata:()=>d,toc:()=>m});var a=n(87462),o=n(67294),r=n(3905);n(8209);const s={id:"ledger-operations",title:"LedgerOperations",hide_table_of_contents:!1},l=void 0,d={unversionedId:"build/api/schema/objects/ledger-operations",id:"build/api/schema/objects/ledger-operations",title:"LedgerOperations",description:"[LedgerOperations] represents the ledger operations performed by the transaction",source:"@site/docs/build/api/schema/objects/ledger-operations.mdx",sourceDirName:"build/api/schema/objects",slug:"/build/api/schema/objects/ledger-operations",permalink:"/build/api/schema/objects/ledger-operations",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"ledger-operations",title:"LedgerOperations",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"ErrorDetails",permalink:"/build/api/schema/objects/error-details"},next:{title:"Ledger",permalink:"/build/api/schema/objects/ledger"}},i={},c=()=>(0,r.kt)(o.Fragment,null,(0,r.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=e=>(0,r.kt)(o.Fragment,null,"Specification",(0,r.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,r.kt)(o.Fragment,null,(0,r.kt)("span",{className:e.class},e.text)),m=[{value:"Fields",id:"fields",level:3},{value:'LedgerOperations.consumedInputs[ConsumedInputs] ',id:"code-style-fontweight-normal-ledgeroperationsbconsumedinputsbcodeconsumedinputs--",level:4},{value:'LedgerOperations.feeInt ',id:"code-style-fontweight-normal-ledgeroperationsbfeebcodeint-",level:4},{value:'LedgerOperations.transactionMovements[TransactionMovement] ',id:"code-style-fontweight-normal-ledgeroperationsbtransactionmovementsbcodetransactionmovement--",level:4},{value:'LedgerOperations.unspentOutputs[UnspentOutput] ',id:"code-style-fontweight-normal-ledgeroperationsbunspentoutputsbcodeunspentoutput--",level:4},{value:"Member of",id:"member-of",level:3}],b=e=>{let{dataOpen:t,dataClose:n,children:s,startOpen:l=!1}=e;const[d,i]=(0,o.useState)(l);return(0,r.kt)("details",(0,a.Z)({},d?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,r.kt)("summary",{onClick:e=>{e.preventDefault(),i((e=>!e))},style:{listStyle:"none"}},d?t:n),d&&s)},g={Bullet:c,SpecifiedBy:p,Badge:u,toc:m,Details:b},f="wrapper";function y(e){let{components:t,...n}=e;return(0,r.kt)(f,(0,a.Z)({},g,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"[LedgerOperations]"," represents the ledger operations performed by the transaction\nIt includes:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Transaction movements: assets transfers"),(0,r.kt)("li",{parentName:"ul"},"Unspent outputs: remaining unspent outputs"),(0,r.kt)("li",{parentName:"ul"},"Fee: transaction fee")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-graphql"},"type LedgerOperations {\n consumedInputs: [ConsumedInputs]\n fee: Int\n transactionMovements: [TransactionMovement]\n unspentOutputs: [UnspentOutput]\n}\n")),(0,r.kt)("h3",{id:"fields"},"Fields"),(0,r.kt)("h4",{id:"code-style-fontweight-normal-ledgeroperationsbconsumedinputsbcodeconsumedinputs--"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"LedgerOperations.",(0,r.kt)("b",null,"consumedInputs"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/consumed-inputs"},(0,r.kt)("inlineCode",{parentName:"a"},"[ConsumedInputs]"))," ",(0,r.kt)(u,{class:"badge badge--secondary",text:"list",mdxType:"Badge"})," ",(0,r.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-ledgeroperationsbfeebcodeint-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"LedgerOperations.",(0,r.kt)("b",null,"fee"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/int"},(0,r.kt)("inlineCode",{parentName:"a"},"Int"))," ",(0,r.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-ledgeroperationsbtransactionmovementsbcodetransactionmovement--"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"LedgerOperations.",(0,r.kt)("b",null,"transactionMovements"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/transaction-movement"},(0,r.kt)("inlineCode",{parentName:"a"},"[TransactionMovement]"))," ",(0,r.kt)(u,{class:"badge badge--secondary",text:"list",mdxType:"Badge"})," ",(0,r.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-ledgeroperationsbunspentoutputsbcodeunspentoutput--"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"LedgerOperations.",(0,r.kt)("b",null,"unspentOutputs"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/unspent-output"},(0,r.kt)("inlineCode",{parentName:"a"},"[UnspentOutput]"))," ",(0,r.kt)(u,{class:"badge badge--secondary",text:"list",mdxType:"Badge"})," ",(0,r.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h3",{id:"member-of"},"Member of"),(0,r.kt)("p",null,(0,r.kt)("a",{parentName:"p",href:"/build/api/schema/objects/validation-stamp"},(0,r.kt)("inlineCode",{parentName:"a"},"ValidationStamp"))," ",(0,r.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}y.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4889],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>b});var a=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function s(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var d=a.createContext({}),i=function(e){var t=a.useContext(d),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},c=function(e){var t=i(e.components);return a.createElement(d.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,d=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),p=i(n),m=o,b=p["".concat(d,".").concat(m)]||p[m]||u[m]||r;return n?a.createElement(b,s(s({ref:t},c),{},{components:n})):a.createElement(b,s({ref:t},c))}));function b(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,s=new Array(r);s[0]=m;var l={};for(var d in t)hasOwnProperty.call(t,d)&&(l[d]=t[d]);l.originalType=e,l[p]="string"==typeof e?e:o,s[1]=l;for(var i=2;i{n.r(t),n.d(t,{Badge:()=>u,Bullet:()=>c,Details:()=>b,SpecifiedBy:()=>p,assets:()=>i,contentTitle:()=>l,default:()=>y,frontMatter:()=>s,metadata:()=>d,toc:()=>m});var a=n(87462),o=n(67294),r=n(3905);n(8209);const s={id:"ledger-operations",title:"LedgerOperations",hide_table_of_contents:!1},l=void 0,d={unversionedId:"build/api/schema/objects/ledger-operations",id:"build/api/schema/objects/ledger-operations",title:"LedgerOperations",description:"[LedgerOperations] represents the ledger operations performed by the transaction",source:"@site/docs/build/api/schema/objects/ledger-operations.mdx",sourceDirName:"build/api/schema/objects",slug:"/build/api/schema/objects/ledger-operations",permalink:"/build/api/schema/objects/ledger-operations",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"ledger-operations",title:"LedgerOperations",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"ErrorDetails",permalink:"/build/api/schema/objects/error-details"},next:{title:"Ledger",permalink:"/build/api/schema/objects/ledger"}},i={},c=()=>(0,r.kt)(o.Fragment,null,(0,r.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=e=>(0,r.kt)(o.Fragment,null,"Specification",(0,r.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,r.kt)(o.Fragment,null,(0,r.kt)("span",{className:e.class},e.text)),m=[{value:"Fields",id:"fields",level:3},{value:'LedgerOperations.consumedInputs[ConsumedInputs] ',id:"code-style-fontweight-normal-ledgeroperationsbconsumedinputsbcodeconsumedinputs--",level:4},{value:'LedgerOperations.feeInt ',id:"code-style-fontweight-normal-ledgeroperationsbfeebcodeint-",level:4},{value:'LedgerOperations.transactionMovements[TransactionMovement] ',id:"code-style-fontweight-normal-ledgeroperationsbtransactionmovementsbcodetransactionmovement--",level:4},{value:'LedgerOperations.unspentOutputs[UnspentOutput] ',id:"code-style-fontweight-normal-ledgeroperationsbunspentoutputsbcodeunspentoutput--",level:4},{value:"Member of",id:"member-of",level:3}],b=e=>{let{dataOpen:t,dataClose:n,children:s,startOpen:l=!1}=e;const[d,i]=(0,o.useState)(l);return(0,r.kt)("details",(0,a.Z)({},d?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,r.kt)("summary",{onClick:e=>{e.preventDefault(),i((e=>!e))},style:{listStyle:"none"}},d?t:n),d&&s)},g={Bullet:c,SpecifiedBy:p,Badge:u,toc:m,Details:b},f="wrapper";function y(e){let{components:t,...n}=e;return(0,r.kt)(f,(0,a.Z)({},g,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"[LedgerOperations]"," represents the ledger operations performed by the transaction\nIt includes:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Transaction movements: assets transfers"),(0,r.kt)("li",{parentName:"ul"},"Unspent outputs: remaining unspent outputs"),(0,r.kt)("li",{parentName:"ul"},"Fee: transaction fee")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-graphql"},"type LedgerOperations {\n consumedInputs: [ConsumedInputs]\n fee: Int\n transactionMovements: [TransactionMovement]\n unspentOutputs: [UnspentOutput]\n}\n")),(0,r.kt)("h3",{id:"fields"},"Fields"),(0,r.kt)("h4",{id:"code-style-fontweight-normal-ledgeroperationsbconsumedinputsbcodeconsumedinputs--"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"LedgerOperations.",(0,r.kt)("b",null,"consumedInputs"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/consumed-inputs"},(0,r.kt)("inlineCode",{parentName:"a"},"[ConsumedInputs]"))," ",(0,r.kt)(u,{class:"badge badge--secondary",text:"list",mdxType:"Badge"})," ",(0,r.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-ledgeroperationsbfeebcodeint-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"LedgerOperations.",(0,r.kt)("b",null,"fee"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/int"},(0,r.kt)("inlineCode",{parentName:"a"},"Int"))," ",(0,r.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-ledgeroperationsbtransactionmovementsbcodetransactionmovement--"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"LedgerOperations.",(0,r.kt)("b",null,"transactionMovements"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/transaction-movement"},(0,r.kt)("inlineCode",{parentName:"a"},"[TransactionMovement]"))," ",(0,r.kt)(u,{class:"badge badge--secondary",text:"list",mdxType:"Badge"})," ",(0,r.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-ledgeroperationsbunspentoutputsbcodeunspentoutput--"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"LedgerOperations.",(0,r.kt)("b",null,"unspentOutputs"))),(0,r.kt)(c,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/unspent-output"},(0,r.kt)("inlineCode",{parentName:"a"},"[UnspentOutput]"))," ",(0,r.kt)(u,{class:"badge badge--secondary",text:"list",mdxType:"Badge"})," ",(0,r.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h3",{id:"member-of"},"Member of"),(0,r.kt)("p",null,(0,r.kt)("a",{parentName:"p",href:"/build/api/schema/objects/validation-stamp"},(0,r.kt)("inlineCode",{parentName:"a"},"ValidationStamp"))," ",(0,r.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}y.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/59ac5e04.1e3bcaf9.js b/assets/js/59ac5e04.93027639.js similarity index 98% rename from assets/js/59ac5e04.1e3bcaf9.js rename to assets/js/59ac5e04.93027639.js index 46839a634..ea00462d6 100644 --- a/assets/js/59ac5e04.1e3bcaf9.js +++ b/assets/js/59ac5e04.93027639.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9199],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var o=r.createContext({}),s=function(e){var t=r.useContext(o),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=s(e.components);return r.createElement(o.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,l=e.originalType,o=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),u=s(n),m=a,h=u["".concat(o,".").concat(m)]||u[m]||p[m]||l;return n?r.createElement(h,i(i({ref:t},d),{},{components:n})):r.createElement(h,i({ref:t},d))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=n.length,i=new Array(l);i[0]=m;var c={};for(var o in t)hasOwnProperty.call(t,o)&&(c[o]=t[o]);c.originalType=e,c[u]="string"==typeof e?e:a,i[1]=c;for(var s=2;s{n.r(t),n.d(t,{assets:()=>o,contentTitle:()=>i,default:()=>p,frontMatter:()=>l,metadata:()=>c,toc:()=>s});var r=n(87462),a=(n(67294),n(3905));n(8209);const l={id:"commands",title:"ADPU commands"},i=void 0,c={unversionedId:"build/clients/ledger-wallet/commands",id:"build/clients/ledger-wallet/commands",title:"ADPU commands",description:"APDU commands",source:"@site/docs/build/clients/ledger-wallet/commands.md",sourceDirName:"build/clients/ledger-wallet",slug:"/build/clients/ledger-wallet/commands",permalink:"/build/clients/ledger-wallet/commands",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"commands",title:"ADPU commands"},sidebar:"docs",previous:{title:"Ledger Application API",permalink:"/build/clients/ledger-wallet/api"},next:{title:"Archethic's wallet access",permalink:"/build/clients/wallet-access"}},o={},s=[{value:"APDU commands",id:"apdu-commands",level:2},{value:"Get Origin Public Key",id:"get-origin-public-key",level:3},{value:"Get Archethic Account Address",id:"get-archethic-account-address",level:3},{value:"Get Signature",id:"get-signature",level:3}],d={toc:s},u="wrapper";function p(e){let{components:t,...n}=e;return(0,a.kt)(u,(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"apdu-commands"},"APDU commands"),(0,a.kt)("h3",{id:"get-origin-public-key"},"Get Origin Public Key"),(0,a.kt)("p",null,"APDU Command ","[bytes]",":"),(0,a.kt)("table",null,(0,a.kt)("thead",{parentName:"table"},(0,a.kt)("tr",{parentName:"thead"},(0,a.kt)("th",{parentName:"tr",align:null},"CLA = E0"),(0,a.kt)("th",{parentName:"tr",align:null},"INS = 02"),(0,a.kt)("th",{parentName:"tr",align:null},"P1 = 00"),(0,a.kt)("th",{parentName:"tr",align:null},"P2 = 00"),(0,a.kt)("th",{parentName:"tr",align:null},"Lc = 00")))),(0,a.kt)("p",null,"APDU Response = Encoded Origin Public Key i.e., encode(o_{pub}) "),(0,a.kt)("h3",{id:"get-archethic-account-address"},"Get Archethic Account Address"),(0,a.kt)("p",null,"APDU Command ","[bytes]"," = "),(0,a.kt)("table",null,(0,a.kt)("thead",{parentName:"table"},(0,a.kt)("tr",{parentName:"thead"},(0,a.kt)("th",{parentName:"tr",align:null},"CLA = E0"),(0,a.kt)("th",{parentName:"tr",align:null},"INS = 04"),(0,a.kt)("th",{parentName:"tr",align:null},"P1 = hash_type (for addr) ","[1 byte]"),(0,a.kt)("th",{parentName:"tr",align:null},"P2 = address_index (for bip44) ","[4 bytes]"),(0,a.kt)("th",{parentName:"tr",align:null},"Lc = len(ewk",(0,a.kt)("em",{parentName:"th"},"{aes}+ew"),"{aes}) ","[1 byte]"),(0,a.kt)("th",{parentName:"tr",align:null},"ewk_{aes} ","[bytes]"),(0,a.kt)("th",{parentName:"tr",align:null},"ew_{aes} ","[bytes]")))),(0,a.kt)("p",null,"APDU Response = Encoded Archethic Account Address i.e., arch_address "),(0,a.kt)("h3",{id:"get-signature"},"Get Signature"),(0,a.kt)("table",null,(0,a.kt)("thead",{parentName:"table"},(0,a.kt)("tr",{parentName:"thead"},(0,a.kt)("th",{parentName:"tr",align:null},"CLA = E0"),(0,a.kt)("th",{parentName:"tr",align:null},"INS = 08"),(0,a.kt)("th",{parentName:"tr",align:null},"P1 = hash_type (of tx_hash) ","[1 byte]"),(0,a.kt)("th",{parentName:"tr",align:null},"P2 = address_index (for bip44) ","[4 bytes]"),(0,a.kt)("th",{parentName:"tr",align:null},"Lc = len(tx",(0,a.kt)("em",{parentName:"th"},"hash+ewk"),"{aes}+ew_{aes}) ","[1 byte]"),(0,a.kt)("th",{parentName:"tr",align:null},"tx_hash ","[bytes]"),(0,a.kt)("th",{parentName:"tr",align:null},"ewk_{aes} ","[bytes]"),(0,a.kt)("th",{parentName:"tr",align:null},"ew_{aes} ","[bytes]")))),(0,a.kt)("p",null,"APDU Response = ASN DER Signature || Corresponding public key from whose private key the signature was made, i.e., encode(pub_key)"))}p.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9199],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var o=r.createContext({}),s=function(e){var t=r.useContext(o),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=s(e.components);return r.createElement(o.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,l=e.originalType,o=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),u=s(n),m=a,h=u["".concat(o,".").concat(m)]||u[m]||p[m]||l;return n?r.createElement(h,i(i({ref:t},d),{},{components:n})):r.createElement(h,i({ref:t},d))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=n.length,i=new Array(l);i[0]=m;var c={};for(var o in t)hasOwnProperty.call(t,o)&&(c[o]=t[o]);c.originalType=e,c[u]="string"==typeof e?e:a,i[1]=c;for(var s=2;s{n.r(t),n.d(t,{assets:()=>o,contentTitle:()=>i,default:()=>p,frontMatter:()=>l,metadata:()=>c,toc:()=>s});var r=n(87462),a=(n(67294),n(3905));n(8209);const l={id:"commands",title:"ADPU commands"},i=void 0,c={unversionedId:"build/clients/ledger-wallet/commands",id:"build/clients/ledger-wallet/commands",title:"ADPU commands",description:"APDU commands",source:"@site/docs/build/clients/ledger-wallet/commands.md",sourceDirName:"build/clients/ledger-wallet",slug:"/build/clients/ledger-wallet/commands",permalink:"/build/clients/ledger-wallet/commands",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"commands",title:"ADPU commands"},sidebar:"docs",previous:{title:"Ledger Application API",permalink:"/build/clients/ledger-wallet/api"},next:{title:"Archethic's wallet access",permalink:"/build/clients/wallet-access"}},o={},s=[{value:"APDU commands",id:"apdu-commands",level:2},{value:"Get Origin Public Key",id:"get-origin-public-key",level:3},{value:"Get Archethic Account Address",id:"get-archethic-account-address",level:3},{value:"Get Signature",id:"get-signature",level:3}],d={toc:s},u="wrapper";function p(e){let{components:t,...n}=e;return(0,a.kt)(u,(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"apdu-commands"},"APDU commands"),(0,a.kt)("h3",{id:"get-origin-public-key"},"Get Origin Public Key"),(0,a.kt)("p",null,"APDU Command ","[bytes]",":"),(0,a.kt)("table",null,(0,a.kt)("thead",{parentName:"table"},(0,a.kt)("tr",{parentName:"thead"},(0,a.kt)("th",{parentName:"tr",align:null},"CLA = E0"),(0,a.kt)("th",{parentName:"tr",align:null},"INS = 02"),(0,a.kt)("th",{parentName:"tr",align:null},"P1 = 00"),(0,a.kt)("th",{parentName:"tr",align:null},"P2 = 00"),(0,a.kt)("th",{parentName:"tr",align:null},"Lc = 00")))),(0,a.kt)("p",null,"APDU Response = Encoded Origin Public Key i.e., encode(o_{pub}) "),(0,a.kt)("h3",{id:"get-archethic-account-address"},"Get Archethic Account Address"),(0,a.kt)("p",null,"APDU Command ","[bytes]"," = "),(0,a.kt)("table",null,(0,a.kt)("thead",{parentName:"table"},(0,a.kt)("tr",{parentName:"thead"},(0,a.kt)("th",{parentName:"tr",align:null},"CLA = E0"),(0,a.kt)("th",{parentName:"tr",align:null},"INS = 04"),(0,a.kt)("th",{parentName:"tr",align:null},"P1 = hash_type (for addr) ","[1 byte]"),(0,a.kt)("th",{parentName:"tr",align:null},"P2 = address_index (for bip44) ","[4 bytes]"),(0,a.kt)("th",{parentName:"tr",align:null},"Lc = len(ewk",(0,a.kt)("em",{parentName:"th"},"{aes}+ew"),"{aes}) ","[1 byte]"),(0,a.kt)("th",{parentName:"tr",align:null},"ewk_{aes} ","[bytes]"),(0,a.kt)("th",{parentName:"tr",align:null},"ew_{aes} ","[bytes]")))),(0,a.kt)("p",null,"APDU Response = Encoded Archethic Account Address i.e., arch_address "),(0,a.kt)("h3",{id:"get-signature"},"Get Signature"),(0,a.kt)("table",null,(0,a.kt)("thead",{parentName:"table"},(0,a.kt)("tr",{parentName:"thead"},(0,a.kt)("th",{parentName:"tr",align:null},"CLA = E0"),(0,a.kt)("th",{parentName:"tr",align:null},"INS = 08"),(0,a.kt)("th",{parentName:"tr",align:null},"P1 = hash_type (of tx_hash) ","[1 byte]"),(0,a.kt)("th",{parentName:"tr",align:null},"P2 = address_index (for bip44) ","[4 bytes]"),(0,a.kt)("th",{parentName:"tr",align:null},"Lc = len(tx",(0,a.kt)("em",{parentName:"th"},"hash+ewk"),"{aes}+ew_{aes}) ","[1 byte]"),(0,a.kt)("th",{parentName:"tr",align:null},"tx_hash ","[bytes]"),(0,a.kt)("th",{parentName:"tr",align:null},"ewk_{aes} ","[bytes]"),(0,a.kt)("th",{parentName:"tr",align:null},"ew_{aes} ","[bytes]")))),(0,a.kt)("p",null,"APDU Response = ASN DER Signature || Corresponding public key from whose private key the signature was made, i.e., encode(pub_key)"))}p.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/5b112661.acc620d4.js b/assets/js/5b112661.bd427609.js similarity index 98% rename from assets/js/5b112661.acc620d4.js rename to assets/js/5b112661.bd427609.js index 9bfabdb4a..bd70a4859 100644 --- a/assets/js/5b112661.acc620d4.js +++ b/assets/js/5b112661.bd427609.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3849],{3905:(e,t,i)=>{i.d(t,{Zo:()=>p,kt:()=>h});var r=i(67294);function a(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function n(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,r)}return i}function o(e){for(var t=1;t=0||(a[i]=e[i]);return a}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(a[i]=e[i])}return a}var c=r.createContext({}),l=function(e){var t=r.useContext(c),i=t;return e&&(i="function"==typeof e?e(t):o(o({},t),e)),i},p=function(e){var t=l(e.components);return r.createElement(c.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var i=e.components,a=e.mdxType,n=e.originalType,c=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=l(i),m=a,h=d["".concat(c,".").concat(m)]||d[m]||u[m]||n;return i?r.createElement(h,o(o({ref:t},p),{},{components:i})):r.createElement(h,o({ref:t},p))}));function h(e,t){var i=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var n=i.length,o=new Array(n);o[0]=m;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[d]="string"==typeof e?e:a,o[1]=s;for(var l=2;l{i.r(t),i.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>u,frontMatter:()=>n,metadata:()=>s,toc:()=>l});var r=i(87462),a=(i(67294),i(3905));i(8209);const n={title:"Ecosystem Participants",id:"ecosystem_participants",sidebar_label:"Ecosystem Participants"},o="Ecosystem Participants",s={unversionedId:"participate/dex/Overview/ecosystem_participants",id:"participate/dex/Overview/ecosystem_participants",title:"Ecosystem Participants",description:"The aeSwap ecosystem, built on the Archethic Public Blockchain, introduces a decentralized finance (DeFi) environment that is supported by three primary types of participants: liquidity providers, traders, and developers. Each group plays a crucial role in the ecosystem's functionality and growth, contributing to a vibrant and dynamic DeFi landscape.",source:"@site/docs/participate/dex/03-Overview/02-protocol_overview_Ecosystem_Participants.md",sourceDirName:"participate/dex/03-Overview",slug:"/participate/dex/Overview/ecosystem_participants",permalink:"/participate/dex/Overview/ecosystem_participants",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",sidebarPosition:2,frontMatter:{title:"Ecosystem Participants",id:"ecosystem_participants",sidebar_label:"Ecosystem Participants"},sidebar:"docs",previous:{title:"Protocol Overview",permalink:"/participate/dex/Overview/protocol_overview"},next:{title:"Glossary",permalink:"/participate/dex/Overview/glossary"}},c={},l=[{value:"Liquidity Providers (LPs)",id:"liquidity-providers-lps",level:2},{value:"Traders",id:"traders",level:2},{value:"Developers",id:"developers",level:2}],p={toc:l},d="wrapper";function u(e){let{components:t,...i}=e;return(0,a.kt)(d,(0,r.Z)({},p,i,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"ecosystem-participants"},"Ecosystem Participants"),(0,a.kt)("p",null,"The aeSwap ecosystem, built on the Archethic Public Blockchain, introduces a decentralized finance (DeFi) environment that is supported by three primary types of participants: liquidity providers, traders, and developers. Each group plays a crucial role in the ecosystem's functionality and growth, contributing to a vibrant and dynamic DeFi landscape."),(0,a.kt)("h2",{id:"liquidity-providers-lps"},"Liquidity Providers (LPs)"),(0,a.kt)("p",null,"Liquidity providers are pivotal to the aeSwap ecosystem, offering their assets to the pools and in return, they receive LP tokens. These participants can be categorized as:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Passive LPs"),": Individuals or entities that contribute their tokens to liquidity pools to earn fees from trading activities without active management."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Professional LPs"),": Those who engage in liquidity provision as their main strategy, often utilizing advanced tools and methodologies to optimize their returns across various DeFi platforms."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Token Projects"),": Projects that provide liquidity for their own tokens to ensure a stable and liquid market, facilitating easier exchange and integration within the wider DeFi ecosystem."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Innovative LPs"),": Pioneers exploring new models of liquidity provision, such as incentivized liquidity positions, using liquidity as collateral, among other experimental approaches.")),(0,a.kt)("h2",{id:"traders"},"Traders"),(0,a.kt)("p",null,"Traders interact with aeSwap to exchange tokens, leveraging the liquidity provided by LPs. Traders are essential for maintaining the dynamic pricing mechanism of the DEX and can be classified into:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Speculators"),": Users who rely on community tools and insights to make trades based on market trends and predictions."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Arbitrageurs"),": Participants who seek to profit from price discrepancies across different exchanges, thereby contributing to market efficiency."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"DApp Users"),": Individuals purchasing tokens for use within various applications on the Archethic Public Blockchain and wider DeFi landscape."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Smart Contract Integrators"),": Developers or projects that implement aeSwap's functionalities within their contracts for purposes such as decentralized exchanges (DEXes), aggregators, or other DeFi services.")),(0,a.kt)("h2",{id:"developers"},"Developers"),(0,a.kt)("p",null,"Developers are the backbone of the aeSwap ecosystem, innovating and creating new applications that integrate with or build upon aeSwap's functionalities. This includes:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Interface and Frontend Developers"),": Those who create user-friendly interfaces and applications to access aeSwap's services, ranging from basic trading interfaces to complex DeFi platforms."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Smart Contract Developers"),": Innovators who utilize aeSwap's smart contracts to develop new DeFi products, tools, and services, contributing to the ecosystem's growth and diversification."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Wallet and DApp Integrators"),": Projects that incorporate aeSwap functionalities into wallets or other decentralized applications, enhancing user experience and utility.")),(0,a.kt)("p",null,"Together, these participants form a symbiotic relationship that drives the growth, innovation, and stability of the aeSwap ecosystem, making it a cornerstone of the Archethic Public Blockchain's DeFi offering."))}u.isMDXComponent=!0},8209:(e,t,i)=>{i(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3849],{3905:(e,t,i)=>{i.d(t,{Zo:()=>p,kt:()=>h});var r=i(67294);function a(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function n(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,r)}return i}function o(e){for(var t=1;t=0||(a[i]=e[i]);return a}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(a[i]=e[i])}return a}var c=r.createContext({}),l=function(e){var t=r.useContext(c),i=t;return e&&(i="function"==typeof e?e(t):o(o({},t),e)),i},p=function(e){var t=l(e.components);return r.createElement(c.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var i=e.components,a=e.mdxType,n=e.originalType,c=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=l(i),m=a,h=d["".concat(c,".").concat(m)]||d[m]||u[m]||n;return i?r.createElement(h,o(o({ref:t},p),{},{components:i})):r.createElement(h,o({ref:t},p))}));function h(e,t){var i=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var n=i.length,o=new Array(n);o[0]=m;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[d]="string"==typeof e?e:a,o[1]=s;for(var l=2;l{i.r(t),i.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>u,frontMatter:()=>n,metadata:()=>s,toc:()=>l});var r=i(87462),a=(i(67294),i(3905));i(8209);const n={title:"Ecosystem Participants",id:"ecosystem_participants",sidebar_label:"Ecosystem Participants"},o="Ecosystem Participants",s={unversionedId:"participate/dex/Overview/ecosystem_participants",id:"participate/dex/Overview/ecosystem_participants",title:"Ecosystem Participants",description:"The aeSwap ecosystem, built on the Archethic Public Blockchain, introduces a decentralized finance (DeFi) environment that is supported by three primary types of participants: liquidity providers, traders, and developers. Each group plays a crucial role in the ecosystem's functionality and growth, contributing to a vibrant and dynamic DeFi landscape.",source:"@site/docs/participate/dex/03-Overview/02-protocol_overview_Ecosystem_Participants.md",sourceDirName:"participate/dex/03-Overview",slug:"/participate/dex/Overview/ecosystem_participants",permalink:"/participate/dex/Overview/ecosystem_participants",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",sidebarPosition:2,frontMatter:{title:"Ecosystem Participants",id:"ecosystem_participants",sidebar_label:"Ecosystem Participants"},sidebar:"docs",previous:{title:"Protocol Overview",permalink:"/participate/dex/Overview/protocol_overview"},next:{title:"Glossary",permalink:"/participate/dex/Overview/glossary"}},c={},l=[{value:"Liquidity Providers (LPs)",id:"liquidity-providers-lps",level:2},{value:"Traders",id:"traders",level:2},{value:"Developers",id:"developers",level:2}],p={toc:l},d="wrapper";function u(e){let{components:t,...i}=e;return(0,a.kt)(d,(0,r.Z)({},p,i,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"ecosystem-participants"},"Ecosystem Participants"),(0,a.kt)("p",null,"The aeSwap ecosystem, built on the Archethic Public Blockchain, introduces a decentralized finance (DeFi) environment that is supported by three primary types of participants: liquidity providers, traders, and developers. Each group plays a crucial role in the ecosystem's functionality and growth, contributing to a vibrant and dynamic DeFi landscape."),(0,a.kt)("h2",{id:"liquidity-providers-lps"},"Liquidity Providers (LPs)"),(0,a.kt)("p",null,"Liquidity providers are pivotal to the aeSwap ecosystem, offering their assets to the pools and in return, they receive LP tokens. These participants can be categorized as:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Passive LPs"),": Individuals or entities that contribute their tokens to liquidity pools to earn fees from trading activities without active management."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Professional LPs"),": Those who engage in liquidity provision as their main strategy, often utilizing advanced tools and methodologies to optimize their returns across various DeFi platforms."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Token Projects"),": Projects that provide liquidity for their own tokens to ensure a stable and liquid market, facilitating easier exchange and integration within the wider DeFi ecosystem."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Innovative LPs"),": Pioneers exploring new models of liquidity provision, such as incentivized liquidity positions, using liquidity as collateral, among other experimental approaches.")),(0,a.kt)("h2",{id:"traders"},"Traders"),(0,a.kt)("p",null,"Traders interact with aeSwap to exchange tokens, leveraging the liquidity provided by LPs. Traders are essential for maintaining the dynamic pricing mechanism of the DEX and can be classified into:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Speculators"),": Users who rely on community tools and insights to make trades based on market trends and predictions."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Arbitrageurs"),": Participants who seek to profit from price discrepancies across different exchanges, thereby contributing to market efficiency."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"DApp Users"),": Individuals purchasing tokens for use within various applications on the Archethic Public Blockchain and wider DeFi landscape."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Smart Contract Integrators"),": Developers or projects that implement aeSwap's functionalities within their contracts for purposes such as decentralized exchanges (DEXes), aggregators, or other DeFi services.")),(0,a.kt)("h2",{id:"developers"},"Developers"),(0,a.kt)("p",null,"Developers are the backbone of the aeSwap ecosystem, innovating and creating new applications that integrate with or build upon aeSwap's functionalities. This includes:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Interface and Frontend Developers"),": Those who create user-friendly interfaces and applications to access aeSwap's services, ranging from basic trading interfaces to complex DeFi platforms."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Smart Contract Developers"),": Innovators who utilize aeSwap's smart contracts to develop new DeFi products, tools, and services, contributing to the ecosystem's growth and diversification."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Wallet and DApp Integrators"),": Projects that incorporate aeSwap functionalities into wallets or other decentralized applications, enhancing user experience and utility.")),(0,a.kt)("p",null,"Together, these participants form a symbiotic relationship that drives the growth, innovation, and stability of the aeSwap ecosystem, making it a cornerstone of the Archethic Public Blockchain's DeFi offering."))}u.isMDXComponent=!0},8209:(e,t,i)=>{i(67294)}}]); \ No newline at end of file diff --git a/assets/js/5c6aa1cd.577dec07.js b/assets/js/5c6aa1cd.20d45c63.js similarity index 98% rename from assets/js/5c6aa1cd.577dec07.js rename to assets/js/5c6aa1cd.20d45c63.js index 2ec3bda19..931f847eb 100644 --- a/assets/js/5c6aa1cd.577dec07.js +++ b/assets/js/5c6aa1cd.20d45c63.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9156],{3905:(e,t,n)=>{n.d(t,{Zo:()=>l,kt:()=>m});var r=n(67294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var c=r.createContext({}),p=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},l=function(e){var t=p(e.components);return r.createElement(c.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},f=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,a=e.originalType,c=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),d=p(n),f=i,m=d["".concat(c,".").concat(f)]||d[f]||u[f]||a;return n?r.createElement(m,o(o({ref:t},l),{},{components:n})):r.createElement(m,o({ref:t},l))}));function m(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=n.length,o=new Array(a);o[0]=f;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[d]="string"==typeof e?e:i,o[1]=s;for(var p=2;p{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>u,frontMatter:()=>a,metadata:()=>s,toc:()=>p});var r=n(87462),i=(n(67294),n(3905));n(8209);const a={title:"Financials, Fees, APR",id:"core_concepts_2",sidebar_label:"Financials, Fees, APR"},o="Financials: Fees, APR, Understanding Returns",s={unversionedId:"participate/dex/Core Concepts/core_concepts_2",id:"participate/dex/Core Concepts/core_concepts_2",title:"Financials, Fees, APR",description:"Fees",source:"@site/docs/participate/dex/04-Core Concepts/02-core_concepts_2.md",sourceDirName:"participate/dex/04-Core Concepts",slug:"/participate/dex/Core Concepts/core_concepts_2",permalink:"/participate/dex/Core Concepts/core_concepts_2",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",sidebarPosition:2,frontMatter:{title:"Financials, Fees, APR",id:"core_concepts_2",sidebar_label:"Financials, Fees, APR"},sidebar:"docs",previous:{title:"Swaps, Liquidity, Farming",permalink:"/participate/dex/Core Concepts/core_concepts_1"},next:{title:"Security, Research & Math",permalink:"/participate/dex/Core Concepts/core_concepts_3"}},c={},p=[{value:"Fees",id:"fees",level:2},{value:"APR and Understanding Returns",id:"apr-and-understanding-returns",level:2}],l={toc:p},d="wrapper";function u(e){let{components:t,...n}=e;return(0,i.kt)(d,(0,r.Z)({},l,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"financials-fees-apr-understanding-returns"},"Financials: Fees, APR, Understanding Returns"),(0,i.kt)("h2",{id:"fees"},"Fees"),(0,i.kt)("p",null,"aeSwap charges transaction fees for swaps and liquidity provision. These fees compensate liquidity providers for supplying capital and taking on the risk of impermanent loss. Fees are set as a percentage of the trade value and are directly added to the liquidity pool, proportionally benefitting all liquidity providers."),(0,i.kt)("admonition",{type:"info"},(0,i.kt)("p",{parentName:"admonition"},"The fees breakdown is as follows: 0.25% for liquidity providers (LP), and a variable fee ranging from 0.1% to 0.25% for Archethic transactions, culminating in a total fee range of 0.35% to 0.5%. "),(0,i.kt)("p",{parentName:"admonition"},"The fees section will be updated soon with more detailed information.")),(0,i.kt)("h2",{id:"apr-and-understanding-returns"},"APR and Understanding Returns"),(0,i.kt)("p",null,"The Annual Percentage Rate (APR) represents the rate of return on liquidity provision and farming over a year without accounting for compounding interest. It offers a straightforward picture of potential earnings from liquidity and farming activities. aeSwap's APR calculation takes into account the distribution of rewards and the impact of trading fees, providing a clear measure of profitability. Returns from liquidity provision come from trading fees and potentially, farming rewards. "),(0,i.kt)("p",null,"Liquidity providers must be aware of impermanent loss, a unique risk where the value of deposited assets could diverge from holding them outside the pool. Understanding these elements is crucial for assessing the overall profitability of participating in aeSwap. "),(0,i.kt)("p",null,"The returns on aeSwap are dynamic, depending on the yield farming activities and the amount in the liquidity pool. It is important to note that the APR is calculated from second to second, ensuring even the smallest units of time are considered in the profitability analysis."))}u.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9156],{3905:(e,t,n)=>{n.d(t,{Zo:()=>l,kt:()=>m});var r=n(67294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var c=r.createContext({}),p=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},l=function(e){var t=p(e.components);return r.createElement(c.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},f=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,a=e.originalType,c=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),d=p(n),f=i,m=d["".concat(c,".").concat(f)]||d[f]||u[f]||a;return n?r.createElement(m,o(o({ref:t},l),{},{components:n})):r.createElement(m,o({ref:t},l))}));function m(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=n.length,o=new Array(a);o[0]=f;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[d]="string"==typeof e?e:i,o[1]=s;for(var p=2;p{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>u,frontMatter:()=>a,metadata:()=>s,toc:()=>p});var r=n(87462),i=(n(67294),n(3905));n(8209);const a={title:"Financials, Fees, APR",id:"core_concepts_2",sidebar_label:"Financials, Fees, APR"},o="Financials: Fees, APR, Understanding Returns",s={unversionedId:"participate/dex/Core Concepts/core_concepts_2",id:"participate/dex/Core Concepts/core_concepts_2",title:"Financials, Fees, APR",description:"Fees",source:"@site/docs/participate/dex/04-Core Concepts/02-core_concepts_2.md",sourceDirName:"participate/dex/04-Core Concepts",slug:"/participate/dex/Core Concepts/core_concepts_2",permalink:"/participate/dex/Core Concepts/core_concepts_2",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",sidebarPosition:2,frontMatter:{title:"Financials, Fees, APR",id:"core_concepts_2",sidebar_label:"Financials, Fees, APR"},sidebar:"docs",previous:{title:"Swaps, Liquidity, Farming",permalink:"/participate/dex/Core Concepts/core_concepts_1"},next:{title:"Security, Research & Math",permalink:"/participate/dex/Core Concepts/core_concepts_3"}},c={},p=[{value:"Fees",id:"fees",level:2},{value:"APR and Understanding Returns",id:"apr-and-understanding-returns",level:2}],l={toc:p},d="wrapper";function u(e){let{components:t,...n}=e;return(0,i.kt)(d,(0,r.Z)({},l,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"financials-fees-apr-understanding-returns"},"Financials: Fees, APR, Understanding Returns"),(0,i.kt)("h2",{id:"fees"},"Fees"),(0,i.kt)("p",null,"aeSwap charges transaction fees for swaps and liquidity provision. These fees compensate liquidity providers for supplying capital and taking on the risk of impermanent loss. Fees are set as a percentage of the trade value and are directly added to the liquidity pool, proportionally benefitting all liquidity providers."),(0,i.kt)("admonition",{type:"info"},(0,i.kt)("p",{parentName:"admonition"},"The fees breakdown is as follows: 0.25% for liquidity providers (LP), and a variable fee ranging from 0.1% to 0.25% for Archethic transactions, culminating in a total fee range of 0.35% to 0.5%. "),(0,i.kt)("p",{parentName:"admonition"},"The fees section will be updated soon with more detailed information.")),(0,i.kt)("h2",{id:"apr-and-understanding-returns"},"APR and Understanding Returns"),(0,i.kt)("p",null,"The Annual Percentage Rate (APR) represents the rate of return on liquidity provision and farming over a year without accounting for compounding interest. It offers a straightforward picture of potential earnings from liquidity and farming activities. aeSwap's APR calculation takes into account the distribution of rewards and the impact of trading fees, providing a clear measure of profitability. Returns from liquidity provision come from trading fees and potentially, farming rewards. "),(0,i.kt)("p",null,"Liquidity providers must be aware of impermanent loss, a unique risk where the value of deposited assets could diverge from holding them outside the pool. Understanding these elements is crucial for assessing the overall profitability of participating in aeSwap. "),(0,i.kt)("p",null,"The returns on aeSwap are dynamic, depending on the yield farming activities and the amount in the liquidity pool. It is important to note that the APR is calculated from second to second, ensuring even the smallest units of time are considered in the profitability analysis."))}u.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/5eea7269.2a76ce22.js b/assets/js/5eea7269.12d9a147.js similarity index 98% rename from assets/js/5eea7269.2a76ce22.js rename to assets/js/5eea7269.12d9a147.js index 19eab8c04..3f3dc1e1e 100644 --- a/assets/js/5eea7269.2a76ce22.js +++ b/assets/js/5eea7269.12d9a147.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6748],{3905:(e,t,a)=>{a.d(t,{Zo:()=>i,kt:()=>b});var n=a(67294);function o(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e){for(var t=1;t=0||(o[a]=e[a]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(o[a]=e[a])}return o}var d=n.createContext({}),u=function(e){var t=n.useContext(d),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},i=function(e){var t=u(e.components);return n.createElement(d.Provider,{value:t},e.children)},p="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,o=e.mdxType,r=e.originalType,d=e.parentName,i=s(e,["components","mdxType","originalType","parentName"]),p=u(a),m=o,b=p["".concat(d,".").concat(m)]||p[m]||c[m]||r;return a?n.createElement(b,l(l({ref:t},i),{},{components:a})):n.createElement(b,l({ref:t},i))}));function b(e,t){var a=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=a.length,l=new Array(r);l[0]=m;var s={};for(var d in t)hasOwnProperty.call(t,d)&&(s[d]=t[d]);s.originalType=e,s[p]="string"==typeof e?e:o,l[1]=s;for(var u=2;u{a.r(t),a.d(t,{Badge:()=>c,Bullet:()=>i,Details:()=>b,SpecifiedBy:()=>p,assets:()=>u,contentTitle:()=>s,default:()=>h,frontMatter:()=>l,metadata:()=>d,toc:()=>m});var n=a(87462),o=a(67294),r=a(3905);a(8209);const l={id:"unspent-output",title:"UnspentOutput",hide_table_of_contents:!1},s=void 0,d={unversionedId:"build/api/schema/objects/unspent-output",id:"build/api/schema/objects/unspent-output",title:"UnspentOutput",description:"[UnspentOutput] represents the remaining unspent output of the transaction.",source:"@site/docs/build/api/schema/objects/unspent-output.mdx",sourceDirName:"build/api/schema/objects",slug:"/build/api/schema/objects/unspent-output",permalink:"/build/api/schema/objects/unspent-output",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"unspent-output",title:"UnspentOutput",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"UcoTransfer",permalink:"/build/api/schema/objects/uco-transfer"},next:{title:"ValidationStamp",permalink:"/build/api/schema/objects/validation-stamp"}},u={},i=()=>(0,r.kt)(o.Fragment,null,(0,r.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=e=>(0,r.kt)(o.Fragment,null,"Specification",(0,r.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),c=e=>(0,r.kt)(o.Fragment,null,(0,r.kt)("span",{className:e.class},e.text)),m=[{value:"Fields",id:"fields",level:3},{value:'UnspentOutput.amountInt ',id:"code-style-fontweight-normal-unspentoutputbamountbcodeint-",level:4},{value:'UnspentOutput.fromAddress ',id:"code-style-fontweight-normal-unspentoutputbfrombcodeaddress-",level:4},{value:'UnspentOutput.stateState ',id:"code-style-fontweight-normal-unspentoutputbstatebcodestate-",level:4},{value:'UnspentOutput.timestampTimestamp ',id:"code-style-fontweight-normal-unspentoutputbtimestampbcodetimestamp-",level:4},{value:'UnspentOutput.tokenAddressAddress ',id:"code-style-fontweight-normal-unspentoutputbtokenaddressbcodeaddress-",level:4},{value:'UnspentOutput.tokenIdInt ',id:"code-style-fontweight-normal-unspentoutputbtokenidbcodeint-",level:4},{value:'UnspentOutput.typeString ',id:"code-style-fontweight-normal-unspentoutputbtypebcodestring-",level:4},{value:"Returned by",id:"returned-by",level:3},{value:"Member of",id:"member-of",level:3}],b=e=>{let{dataOpen:t,dataClose:a,children:l,startOpen:s=!1}=e;const[d,u]=(0,o.useState)(s);return(0,r.kt)("details",(0,n.Z)({},d?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,r.kt)("summary",{onClick:e=>{e.preventDefault(),u((e=>!e))},style:{listStyle:"none"}},d?t:a),d&&l)},k={Bullet:i,SpecifiedBy:p,Badge:c,toc:m,Details:b},f="wrapper";function h(e){let{components:t,...a}=e;return(0,r.kt)(f,(0,n.Z)({},k,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"[UnspentOutput]"," represents the remaining unspent output of the transaction.\nIt includes:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"From: transaction which send the amount of assets"),(0,r.kt)("li",{parentName:"ul"},"Amount: asset amount"),(0,r.kt)("li",{parentName:"ul"},"Type: UCO / token / state"),(0,r.kt)("li",{parentName:"ul"},"token address: address of the token if the type is token"),(0,r.kt)("li",{parentName:"ul"},"token id: It is the id for a token which is allocated when the token is minted."),(0,r.kt)("li",{parentName:"ul"},"Timestamp: Date time when the UTXO created/manipulated"),(0,r.kt)("li",{parentName:"ul"},"State: It is the state of a smart contract")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-graphql"},"type UnspentOutput {\n amount: Int\n from: Address\n state: State\n timestamp: Timestamp\n tokenAddress: Address\n tokenId: Int\n type: String\n}\n")),(0,r.kt)("h3",{id:"fields"},"Fields"),(0,r.kt)("h4",{id:"code-style-fontweight-normal-unspentoutputbamountbcodeint-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"UnspentOutput.",(0,r.kt)("b",null,"amount"))),(0,r.kt)(i,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/int"},(0,r.kt)("inlineCode",{parentName:"a"},"Int"))," ",(0,r.kt)(c,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-unspentoutputbfrombcodeaddress-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"UnspentOutput.",(0,r.kt)("b",null,"from"))),(0,r.kt)(i,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/address"},(0,r.kt)("inlineCode",{parentName:"a"},"Address"))," ",(0,r.kt)(c,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-unspentoutputbstatebcodestate-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"UnspentOutput.",(0,r.kt)("b",null,"state"))),(0,r.kt)(i,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/state"},(0,r.kt)("inlineCode",{parentName:"a"},"State"))," ",(0,r.kt)(c,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-unspentoutputbtimestampbcodetimestamp-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"UnspentOutput.",(0,r.kt)("b",null,"timestamp"))),(0,r.kt)(i,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/timestamp"},(0,r.kt)("inlineCode",{parentName:"a"},"Timestamp"))," ",(0,r.kt)(c,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-unspentoutputbtokenaddressbcodeaddress-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"UnspentOutput.",(0,r.kt)("b",null,"tokenAddress"))),(0,r.kt)(i,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/address"},(0,r.kt)("inlineCode",{parentName:"a"},"Address"))," ",(0,r.kt)(c,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-unspentoutputbtokenidbcodeint-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"UnspentOutput.",(0,r.kt)("b",null,"tokenId"))),(0,r.kt)(i,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/int"},(0,r.kt)("inlineCode",{parentName:"a"},"Int"))," ",(0,r.kt)(c,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-unspentoutputbtypebcodestring-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"UnspentOutput.",(0,r.kt)("b",null,"type"))),(0,r.kt)(i,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/string"},(0,r.kt)("inlineCode",{parentName:"a"},"String"))," ",(0,r.kt)(c,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h3",{id:"returned-by"},"Returned by"),(0,r.kt)("p",null,(0,r.kt)("a",{parentName:"p",href:"/build/api/schema/queries/chain-unspent-outputs"},(0,r.kt)("inlineCode",{parentName:"a"},"chainUnspentOutputs"))," ",(0,r.kt)(c,{class:"badge badge--secondary",text:"query",mdxType:"Badge"})),(0,r.kt)("h3",{id:"member-of"},"Member of"),(0,r.kt)("p",null,(0,r.kt)("a",{parentName:"p",href:"/build/api/schema/objects/ledger-operations"},(0,r.kt)("inlineCode",{parentName:"a"},"LedgerOperations"))," ",(0,r.kt)(c,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}h.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6748],{3905:(e,t,a)=>{a.d(t,{Zo:()=>i,kt:()=>b});var n=a(67294);function o(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e){for(var t=1;t=0||(o[a]=e[a]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(o[a]=e[a])}return o}var d=n.createContext({}),u=function(e){var t=n.useContext(d),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},i=function(e){var t=u(e.components);return n.createElement(d.Provider,{value:t},e.children)},p="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,o=e.mdxType,r=e.originalType,d=e.parentName,i=s(e,["components","mdxType","originalType","parentName"]),p=u(a),m=o,b=p["".concat(d,".").concat(m)]||p[m]||c[m]||r;return a?n.createElement(b,l(l({ref:t},i),{},{components:a})):n.createElement(b,l({ref:t},i))}));function b(e,t){var a=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=a.length,l=new Array(r);l[0]=m;var s={};for(var d in t)hasOwnProperty.call(t,d)&&(s[d]=t[d]);s.originalType=e,s[p]="string"==typeof e?e:o,l[1]=s;for(var u=2;u{a.r(t),a.d(t,{Badge:()=>c,Bullet:()=>i,Details:()=>b,SpecifiedBy:()=>p,assets:()=>u,contentTitle:()=>s,default:()=>h,frontMatter:()=>l,metadata:()=>d,toc:()=>m});var n=a(87462),o=a(67294),r=a(3905);a(8209);const l={id:"unspent-output",title:"UnspentOutput",hide_table_of_contents:!1},s=void 0,d={unversionedId:"build/api/schema/objects/unspent-output",id:"build/api/schema/objects/unspent-output",title:"UnspentOutput",description:"[UnspentOutput] represents the remaining unspent output of the transaction.",source:"@site/docs/build/api/schema/objects/unspent-output.mdx",sourceDirName:"build/api/schema/objects",slug:"/build/api/schema/objects/unspent-output",permalink:"/build/api/schema/objects/unspent-output",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"unspent-output",title:"UnspentOutput",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"UcoTransfer",permalink:"/build/api/schema/objects/uco-transfer"},next:{title:"ValidationStamp",permalink:"/build/api/schema/objects/validation-stamp"}},u={},i=()=>(0,r.kt)(o.Fragment,null,(0,r.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=e=>(0,r.kt)(o.Fragment,null,"Specification",(0,r.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),c=e=>(0,r.kt)(o.Fragment,null,(0,r.kt)("span",{className:e.class},e.text)),m=[{value:"Fields",id:"fields",level:3},{value:'UnspentOutput.amountInt ',id:"code-style-fontweight-normal-unspentoutputbamountbcodeint-",level:4},{value:'UnspentOutput.fromAddress ',id:"code-style-fontweight-normal-unspentoutputbfrombcodeaddress-",level:4},{value:'UnspentOutput.stateState ',id:"code-style-fontweight-normal-unspentoutputbstatebcodestate-",level:4},{value:'UnspentOutput.timestampTimestamp ',id:"code-style-fontweight-normal-unspentoutputbtimestampbcodetimestamp-",level:4},{value:'UnspentOutput.tokenAddressAddress ',id:"code-style-fontweight-normal-unspentoutputbtokenaddressbcodeaddress-",level:4},{value:'UnspentOutput.tokenIdInt ',id:"code-style-fontweight-normal-unspentoutputbtokenidbcodeint-",level:4},{value:'UnspentOutput.typeString ',id:"code-style-fontweight-normal-unspentoutputbtypebcodestring-",level:4},{value:"Returned by",id:"returned-by",level:3},{value:"Member of",id:"member-of",level:3}],b=e=>{let{dataOpen:t,dataClose:a,children:l,startOpen:s=!1}=e;const[d,u]=(0,o.useState)(s);return(0,r.kt)("details",(0,n.Z)({},d?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,r.kt)("summary",{onClick:e=>{e.preventDefault(),u((e=>!e))},style:{listStyle:"none"}},d?t:a),d&&l)},k={Bullet:i,SpecifiedBy:p,Badge:c,toc:m,Details:b},f="wrapper";function h(e){let{components:t,...a}=e;return(0,r.kt)(f,(0,n.Z)({},k,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"[UnspentOutput]"," represents the remaining unspent output of the transaction.\nIt includes:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"From: transaction which send the amount of assets"),(0,r.kt)("li",{parentName:"ul"},"Amount: asset amount"),(0,r.kt)("li",{parentName:"ul"},"Type: UCO / token / state"),(0,r.kt)("li",{parentName:"ul"},"token address: address of the token if the type is token"),(0,r.kt)("li",{parentName:"ul"},"token id: It is the id for a token which is allocated when the token is minted."),(0,r.kt)("li",{parentName:"ul"},"Timestamp: Date time when the UTXO created/manipulated"),(0,r.kt)("li",{parentName:"ul"},"State: It is the state of a smart contract")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-graphql"},"type UnspentOutput {\n amount: Int\n from: Address\n state: State\n timestamp: Timestamp\n tokenAddress: Address\n tokenId: Int\n type: String\n}\n")),(0,r.kt)("h3",{id:"fields"},"Fields"),(0,r.kt)("h4",{id:"code-style-fontweight-normal-unspentoutputbamountbcodeint-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"UnspentOutput.",(0,r.kt)("b",null,"amount"))),(0,r.kt)(i,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/int"},(0,r.kt)("inlineCode",{parentName:"a"},"Int"))," ",(0,r.kt)(c,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-unspentoutputbfrombcodeaddress-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"UnspentOutput.",(0,r.kt)("b",null,"from"))),(0,r.kt)(i,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/address"},(0,r.kt)("inlineCode",{parentName:"a"},"Address"))," ",(0,r.kt)(c,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-unspentoutputbstatebcodestate-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"UnspentOutput.",(0,r.kt)("b",null,"state"))),(0,r.kt)(i,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/state"},(0,r.kt)("inlineCode",{parentName:"a"},"State"))," ",(0,r.kt)(c,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-unspentoutputbtimestampbcodetimestamp-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"UnspentOutput.",(0,r.kt)("b",null,"timestamp"))),(0,r.kt)(i,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/timestamp"},(0,r.kt)("inlineCode",{parentName:"a"},"Timestamp"))," ",(0,r.kt)(c,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-unspentoutputbtokenaddressbcodeaddress-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"UnspentOutput.",(0,r.kt)("b",null,"tokenAddress"))),(0,r.kt)(i,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/address"},(0,r.kt)("inlineCode",{parentName:"a"},"Address"))," ",(0,r.kt)(c,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-unspentoutputbtokenidbcodeint-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"UnspentOutput.",(0,r.kt)("b",null,"tokenId"))),(0,r.kt)(i,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/int"},(0,r.kt)("inlineCode",{parentName:"a"},"Int"))," ",(0,r.kt)(c,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-unspentoutputbtypebcodestring-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"UnspentOutput.",(0,r.kt)("b",null,"type"))),(0,r.kt)(i,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/string"},(0,r.kt)("inlineCode",{parentName:"a"},"String"))," ",(0,r.kt)(c,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h3",{id:"returned-by"},"Returned by"),(0,r.kt)("p",null,(0,r.kt)("a",{parentName:"p",href:"/build/api/schema/queries/chain-unspent-outputs"},(0,r.kt)("inlineCode",{parentName:"a"},"chainUnspentOutputs"))," ",(0,r.kt)(c,{class:"badge badge--secondary",text:"query",mdxType:"Badge"})),(0,r.kt)("h3",{id:"member-of"},"Member of"),(0,r.kt)("p",null,(0,r.kt)("a",{parentName:"p",href:"/build/api/schema/objects/ledger-operations"},(0,r.kt)("inlineCode",{parentName:"a"},"LedgerOperations"))," ",(0,r.kt)(c,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}h.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file diff --git a/assets/js/5fe1ab02.913aec32.js b/assets/js/5fe1ab02.c642eb7f.js similarity index 98% rename from assets/js/5fe1ab02.913aec32.js rename to assets/js/5fe1ab02.c642eb7f.js index 0cdb7176b..1d5771de4 100644 --- a/assets/js/5fe1ab02.913aec32.js +++ b/assets/js/5fe1ab02.c642eb7f.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2926],{3905:(t,n,e)=>{e.d(n,{Zo:()=>c,kt:()=>u});var a=e(67294);function i(t,n,e){return n in t?Object.defineProperty(t,n,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[n]=e,t}function o(t,n){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable}))),e.push.apply(e,a)}return e}function r(t){for(var n=1;n=0||(i[e]=t[e]);return i}(t,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(t,e)&&(i[e]=t[e])}return i}var d=a.createContext({}),l=function(t){var n=a.useContext(d),e=n;return t&&(e="function"==typeof t?t(n):r(r({},n),t)),e},c=function(t){var n=l(t.components);return a.createElement(d.Provider,{value:n},t.children)},m="mdxType",p={inlineCode:"code",wrapper:function(t){var n=t.children;return a.createElement(a.Fragment,{},n)}},f=a.forwardRef((function(t,n){var e=t.components,i=t.mdxType,o=t.originalType,d=t.parentName,c=s(t,["components","mdxType","originalType","parentName"]),m=l(e),f=i,u=m["".concat(d,".").concat(f)]||m[f]||p[f]||o;return e?a.createElement(u,r(r({ref:n},c),{},{components:e})):a.createElement(u,r({ref:n},c))}));function u(t,n){var e=arguments,i=n&&n.mdxType;if("string"==typeof t||i){var o=e.length,r=new Array(o);r[0]=f;var s={};for(var d in n)hasOwnProperty.call(n,d)&&(s[d]=n[d]);s.originalType=t,s[m]="string"==typeof t?t:i,r[1]=s;for(var l=2;l{e.r(n),e.d(n,{assets:()=>d,contentTitle:()=>r,default:()=>p,frontMatter:()=>o,metadata:()=>s,toc:()=>l});var a=e(87462),i=(e(67294),e(3905));e(8209);const o={id:"mining",title:"Mining"},r=void 0,s={unversionedId:"build/core/mining/mining",id:"build/core/mining/mining",title:"Mining",description:"Transaction validation (aka Mining) defines processes and validations algorithms.",source:"@site/docs/build/core/mining/README.md",sourceDirName:"build/core/mining",slug:"/build/core/mining/",permalink:"/build/core/mining/",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"mining",title:"Mining"},sidebar:"docs",previous:{title:"Code Proposals",permalink:"/build/core/governance/code-proposals"},next:{title:"Pending transaction validation",permalink:"/build/core/mining/transaction-validation"}},d={},l=[{value:"Standalone validation workflow",id:"standalone-validation-workflow",level:2},{value:"Distributed validation",id:"distributed-validation",level:2},{value:"Worflow",id:"worflow",level:3},{value:"FSM",id:"fsm",level:3}],c={toc:l},m="wrapper";function p(t){let{components:n,...e}=t;return(0,i.kt)(m,(0,a.Z)({},c,e,{components:n,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"Transaction validation (aka Mining) defines processes and validations algorithms."),(0,i.kt)("p",null,"Once a transaction is under validation a given process is dedicated to this transaction.\nDepending of the number of validation nodes several validation implementation are defined."),(0,i.kt)("p",null,"Along with validation workflow and processes, this context defines high levels functions to get the validation nodes and to assert their election."),(0,i.kt)("h2",{id:"standalone-validation-workflow"},"Standalone validation workflow"),(0,i.kt)("p",null,"When there is not only a single validation nodes (during the network initialization), a process is spawn to manage the transaction validation as a Task to run it (fire-off)"),(0,i.kt)("mermaid",{value:"stateDiagram-v2\n direction LR\n [*] --\x3e Idle\n Idle --\x3e ValidateTransaction\n ValidateTransaction: Validate transaction\n ValidateTransaction --\x3e Replicate\n Replicate --\x3e Replicate: Wait confirmations\n Replicate --\x3e NotifyAttestation\n NotifyAttestation: Notify transaction attestation\n NotifyAttestation --\x3e [*]\n"}),(0,i.kt)("h2",{id:"distributed-validation"},"Distributed validation"),(0,i.kt)("h3",{id:"worflow"},"Worflow"),(0,i.kt)("mermaid",{value:"sequenceDiagram\n Client->>+WelcomeNode: Submit new transaction\n par send transaction\n WelcomeNode->>+Coordinator: \n and \n WelcomeNode->>+CrossValidationNode: \n end\n WelcomeNode ->>-Client: Transaction submited\n\n par build context \n Coordinator ->>+PreviousStorageNode: Fetch previous transaction\n Coordinator ->>+PreviousStorageNode: Fetch unspent outputs\n and\n CrossValidationNode ->>+PreviousStorageNode: Fetch previous transaction\n CrossValidationNode ->>+PreviousStorageNode: Fetch unspent outputs\n CrossValidationNode ->>+Coordinator: Notify context and availability\n end\n \n \n Coordinator ->>+Coordinator: Build validation stamp\n Coordinator ->>+CrossValidationNode: Send validation stamp\n\n par wait validation stamp\n CrossValidationNode ->>+CrossValidationNode: Cross validate the stamp\n CrossValidationNode ->>+CrossValidationNode: Notify cross validation stamp\n CrossValidationNode ->>+Coordinator: Notify cross validation stamp\n end\n\n par chain replication \n Coordinator ->>+ChainStorageNode: Replicate transaction\n CrossValidationNode ->>+ChainStorageNode: Replicate transaction\n end\n\n ChainStorageNode ->>+ChainStorageNode: Validate transaction and store transaction\n alt transaction valid \n ChainStorageNode ->>+ CrossValidationNode: Replication confirmation\n ChainStorageNode ->>+ Coordinator: Replication confirmation\n end\n\n par notify replication\n CrossValidationNode--\x3e+WelcomeNode: Confirm replication\n Coordinator--\x3e+WelcomeNode: Confirm replication\n CrossValidationNode--\x3e+PreviousStorageNode: Confirm replication\n Coordinator--\x3e+PreviousStorageNode: Confirm replication\n CrossValidationNode--\x3e+BeaconChain: Confirm replication\n Coordinator--\x3e+BeaconChain: Confirm replication\n end\n\n WelcomeNode--\x3eClient: Notify replication confirmations"}),(0,i.kt)("h3",{id:"fsm"},"FSM"),(0,i.kt)("p",null,"When there are multiple validation nodes, a distributed workflow process is spawn as FSM to define the states and evolution of the ARCH consensus algorithm."),(0,i.kt)("p",null,"This FSM process is ran by all the validation nodes."),(0,i.kt)("p",null,"Therefore each validation maintains a ",(0,i.kt)("inlineCode",{parentName:"p"},"Registry")," of all the pending transaction validation processes, to be able to redirect P2P messages to the right process."),(0,i.kt)("mermaid",{value:"stateDiagram-v2\n state role_state <>\n state join_state <>\n\n [*] --\x3e Idle\n\n Idle --\x3e Idle: Prevalidate transaction & Build context\n Idle --\x3e role_state\n\n role_state --\x3e Coordinator: first of elected validation nodes\n role_state --\x3e CrossValidationNode: other node\n\n state Coordinator {\n state if_state_enough_context <>\n [*] --\x3e WaitContext\n\n WaitContext: Waiting context and confirmations\n WaitContext --\x3e WaitContext: Add context and node confirmation\n\n EnoughContextAndConfirmations: Enough context and confirmations ?\n\n WaitContext --\x3e EnoughContextAndConfirmations\n EnoughContextAndConfirmations --\x3e if_state_enough_context\n\n if_state_enough_context --\x3e CreateValidationStamp: yes\n if_state_enough_context --\x3e WaitContext: no\n\n CreateValidationStamp: Create validation stamp\n CreateValidationStamp --\x3e NotifyValidationStamp\n NotifyValidationStamp: Notify validation stamp \n NotifyValidationStamp --\x3e [*]\n }\n\n CrossValidationNode: Cross Validation Node\n state CrossValidationNode {\n [*] --\x3e NotifyContext\n NotifyContext: Notify transaction context\n\n NotifyContext --\x3e WaitValidationStamp\n WaitValidationStamp: Wait validation stamp to validate\n\n WaitValidationStamp --\x3e ValidateValidationStamp\n ValidateValidationStamp: Verify validations tamp\n\n ValidateValidationStamp --\x3e ValidateValidationStamp: create cross validation stamp\n ValidateValidationStamp --\x3e SendCrossValidationStamp\n SendCrossValidationStamp: Send the cross validation stamp to all\n SendCrossValidationStamp --\x3e [*]\n }\n\n Coordinator --\x3e join_state\n CrossValidationNode --\x3e join_state\n\n\n join_state --\x3e WaitCrossValidationStamps\n\n WaitCrossValidationStamps: Wait cross validation stamps\n state WaitCrossValidationStamps {\n state if_state_enough <>\n state if_state_atomic_commitment <>\n \n [*] --\x3e WaitingStamps\n WaitingStamps: Wait\n\n WaitingStamps --\x3e WaitingStamps: Add cross validation stamp\n WaitingStamps --\x3e EnoughStamps\n\n EnoughStamps: Enough cross validation stamps ?\n\n EnoughStamps --\x3e if_state_enough\n\n if_state_enough --\x3e AtomicCommitmentReached: yes \n if_state_enough --\x3e WaitingStamps: no \n \n AtomicCommitmentReached: Atomic commitment reached ? \n \n AtomicCommitmentReached --\x3e if_state_atomic_commitment \n \n if_state_atomic_commitment --\x3e [*]: yes \n if_state_atomic_commitment --\x3e [*]: no\n }\n\n WaitCrossValidationStamps --\x3e Replication\n\n state Replication {\n [*] --\x3e NotifyTransaction\n NotifyTransaction: Notify transaction\n WaitAck: Waiting replicas confirmations\n WaitAck --\x3e WaitAck: Add ack\n\n NotifyTransaction --\x3e WaitAck\n\n state if_state_enough_replicas <>\n EnoughConfirmations: Enough confirmations ?\n WaitAck --\x3e EnoughConfirmations\n\n EnoughConfirmations --\x3e if_state_enough_replicas\n NotifyAttestation: Notify replication attestation\n if_state_enough_replicas --\x3e NotifyAttestation: yes\n if_state_enough_replicas --\x3e WaitAck: no\n NotifyAttestation --\x3e [*]\n }\n"}))}p.isMDXComponent=!0},8209:(t,n,e)=>{e(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2926],{3905:(t,n,e)=>{e.d(n,{Zo:()=>c,kt:()=>u});var a=e(67294);function i(t,n,e){return n in t?Object.defineProperty(t,n,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[n]=e,t}function o(t,n){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable}))),e.push.apply(e,a)}return e}function r(t){for(var n=1;n=0||(i[e]=t[e]);return i}(t,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(t,e)&&(i[e]=t[e])}return i}var d=a.createContext({}),l=function(t){var n=a.useContext(d),e=n;return t&&(e="function"==typeof t?t(n):r(r({},n),t)),e},c=function(t){var n=l(t.components);return a.createElement(d.Provider,{value:n},t.children)},m="mdxType",p={inlineCode:"code",wrapper:function(t){var n=t.children;return a.createElement(a.Fragment,{},n)}},f=a.forwardRef((function(t,n){var e=t.components,i=t.mdxType,o=t.originalType,d=t.parentName,c=s(t,["components","mdxType","originalType","parentName"]),m=l(e),f=i,u=m["".concat(d,".").concat(f)]||m[f]||p[f]||o;return e?a.createElement(u,r(r({ref:n},c),{},{components:e})):a.createElement(u,r({ref:n},c))}));function u(t,n){var e=arguments,i=n&&n.mdxType;if("string"==typeof t||i){var o=e.length,r=new Array(o);r[0]=f;var s={};for(var d in n)hasOwnProperty.call(n,d)&&(s[d]=n[d]);s.originalType=t,s[m]="string"==typeof t?t:i,r[1]=s;for(var l=2;l{e.r(n),e.d(n,{assets:()=>d,contentTitle:()=>r,default:()=>p,frontMatter:()=>o,metadata:()=>s,toc:()=>l});var a=e(87462),i=(e(67294),e(3905));e(8209);const o={id:"mining",title:"Mining"},r=void 0,s={unversionedId:"build/core/mining/mining",id:"build/core/mining/mining",title:"Mining",description:"Transaction validation (aka Mining) defines processes and validations algorithms.",source:"@site/docs/build/core/mining/README.md",sourceDirName:"build/core/mining",slug:"/build/core/mining/",permalink:"/build/core/mining/",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"mining",title:"Mining"},sidebar:"docs",previous:{title:"Code Proposals",permalink:"/build/core/governance/code-proposals"},next:{title:"Pending transaction validation",permalink:"/build/core/mining/transaction-validation"}},d={},l=[{value:"Standalone validation workflow",id:"standalone-validation-workflow",level:2},{value:"Distributed validation",id:"distributed-validation",level:2},{value:"Worflow",id:"worflow",level:3},{value:"FSM",id:"fsm",level:3}],c={toc:l},m="wrapper";function p(t){let{components:n,...e}=t;return(0,i.kt)(m,(0,a.Z)({},c,e,{components:n,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"Transaction validation (aka Mining) defines processes and validations algorithms."),(0,i.kt)("p",null,"Once a transaction is under validation a given process is dedicated to this transaction.\nDepending of the number of validation nodes several validation implementation are defined."),(0,i.kt)("p",null,"Along with validation workflow and processes, this context defines high levels functions to get the validation nodes and to assert their election."),(0,i.kt)("h2",{id:"standalone-validation-workflow"},"Standalone validation workflow"),(0,i.kt)("p",null,"When there is not only a single validation nodes (during the network initialization), a process is spawn to manage the transaction validation as a Task to run it (fire-off)"),(0,i.kt)("mermaid",{value:"stateDiagram-v2\n direction LR\n [*] --\x3e Idle\n Idle --\x3e ValidateTransaction\n ValidateTransaction: Validate transaction\n ValidateTransaction --\x3e Replicate\n Replicate --\x3e Replicate: Wait confirmations\n Replicate --\x3e NotifyAttestation\n NotifyAttestation: Notify transaction attestation\n NotifyAttestation --\x3e [*]\n"}),(0,i.kt)("h2",{id:"distributed-validation"},"Distributed validation"),(0,i.kt)("h3",{id:"worflow"},"Worflow"),(0,i.kt)("mermaid",{value:"sequenceDiagram\n Client->>+WelcomeNode: Submit new transaction\n par send transaction\n WelcomeNode->>+Coordinator: \n and \n WelcomeNode->>+CrossValidationNode: \n end\n WelcomeNode ->>-Client: Transaction submited\n\n par build context \n Coordinator ->>+PreviousStorageNode: Fetch previous transaction\n Coordinator ->>+PreviousStorageNode: Fetch unspent outputs\n and\n CrossValidationNode ->>+PreviousStorageNode: Fetch previous transaction\n CrossValidationNode ->>+PreviousStorageNode: Fetch unspent outputs\n CrossValidationNode ->>+Coordinator: Notify context and availability\n end\n \n \n Coordinator ->>+Coordinator: Build validation stamp\n Coordinator ->>+CrossValidationNode: Send validation stamp\n\n par wait validation stamp\n CrossValidationNode ->>+CrossValidationNode: Cross validate the stamp\n CrossValidationNode ->>+CrossValidationNode: Notify cross validation stamp\n CrossValidationNode ->>+Coordinator: Notify cross validation stamp\n end\n\n par chain replication \n Coordinator ->>+ChainStorageNode: Replicate transaction\n CrossValidationNode ->>+ChainStorageNode: Replicate transaction\n end\n\n ChainStorageNode ->>+ChainStorageNode: Validate transaction and store transaction\n alt transaction valid \n ChainStorageNode ->>+ CrossValidationNode: Replication confirmation\n ChainStorageNode ->>+ Coordinator: Replication confirmation\n end\n\n par notify replication\n CrossValidationNode--\x3e+WelcomeNode: Confirm replication\n Coordinator--\x3e+WelcomeNode: Confirm replication\n CrossValidationNode--\x3e+PreviousStorageNode: Confirm replication\n Coordinator--\x3e+PreviousStorageNode: Confirm replication\n CrossValidationNode--\x3e+BeaconChain: Confirm replication\n Coordinator--\x3e+BeaconChain: Confirm replication\n end\n\n WelcomeNode--\x3eClient: Notify replication confirmations"}),(0,i.kt)("h3",{id:"fsm"},"FSM"),(0,i.kt)("p",null,"When there are multiple validation nodes, a distributed workflow process is spawn as FSM to define the states and evolution of the ARCH consensus algorithm."),(0,i.kt)("p",null,"This FSM process is ran by all the validation nodes."),(0,i.kt)("p",null,"Therefore each validation maintains a ",(0,i.kt)("inlineCode",{parentName:"p"},"Registry")," of all the pending transaction validation processes, to be able to redirect P2P messages to the right process."),(0,i.kt)("mermaid",{value:"stateDiagram-v2\n state role_state <>\n state join_state <>\n\n [*] --\x3e Idle\n\n Idle --\x3e Idle: Prevalidate transaction & Build context\n Idle --\x3e role_state\n\n role_state --\x3e Coordinator: first of elected validation nodes\n role_state --\x3e CrossValidationNode: other node\n\n state Coordinator {\n state if_state_enough_context <>\n [*] --\x3e WaitContext\n\n WaitContext: Waiting context and confirmations\n WaitContext --\x3e WaitContext: Add context and node confirmation\n\n EnoughContextAndConfirmations: Enough context and confirmations ?\n\n WaitContext --\x3e EnoughContextAndConfirmations\n EnoughContextAndConfirmations --\x3e if_state_enough_context\n\n if_state_enough_context --\x3e CreateValidationStamp: yes\n if_state_enough_context --\x3e WaitContext: no\n\n CreateValidationStamp: Create validation stamp\n CreateValidationStamp --\x3e NotifyValidationStamp\n NotifyValidationStamp: Notify validation stamp \n NotifyValidationStamp --\x3e [*]\n }\n\n CrossValidationNode: Cross Validation Node\n state CrossValidationNode {\n [*] --\x3e NotifyContext\n NotifyContext: Notify transaction context\n\n NotifyContext --\x3e WaitValidationStamp\n WaitValidationStamp: Wait validation stamp to validate\n\n WaitValidationStamp --\x3e ValidateValidationStamp\n ValidateValidationStamp: Verify validations tamp\n\n ValidateValidationStamp --\x3e ValidateValidationStamp: create cross validation stamp\n ValidateValidationStamp --\x3e SendCrossValidationStamp\n SendCrossValidationStamp: Send the cross validation stamp to all\n SendCrossValidationStamp --\x3e [*]\n }\n\n Coordinator --\x3e join_state\n CrossValidationNode --\x3e join_state\n\n\n join_state --\x3e WaitCrossValidationStamps\n\n WaitCrossValidationStamps: Wait cross validation stamps\n state WaitCrossValidationStamps {\n state if_state_enough <>\n state if_state_atomic_commitment <>\n \n [*] --\x3e WaitingStamps\n WaitingStamps: Wait\n\n WaitingStamps --\x3e WaitingStamps: Add cross validation stamp\n WaitingStamps --\x3e EnoughStamps\n\n EnoughStamps: Enough cross validation stamps ?\n\n EnoughStamps --\x3e if_state_enough\n\n if_state_enough --\x3e AtomicCommitmentReached: yes \n if_state_enough --\x3e WaitingStamps: no \n \n AtomicCommitmentReached: Atomic commitment reached ? \n \n AtomicCommitmentReached --\x3e if_state_atomic_commitment \n \n if_state_atomic_commitment --\x3e [*]: yes \n if_state_atomic_commitment --\x3e [*]: no\n }\n\n WaitCrossValidationStamps --\x3e Replication\n\n state Replication {\n [*] --\x3e NotifyTransaction\n NotifyTransaction: Notify transaction\n WaitAck: Waiting replicas confirmations\n WaitAck --\x3e WaitAck: Add ack\n\n NotifyTransaction --\x3e WaitAck\n\n state if_state_enough_replicas <>\n EnoughConfirmations: Enough confirmations ?\n WaitAck --\x3e EnoughConfirmations\n\n EnoughConfirmations --\x3e if_state_enough_replicas\n NotifyAttestation: Notify replication attestation\n if_state_enough_replicas --\x3e NotifyAttestation: yes\n if_state_enough_replicas --\x3e WaitAck: no\n NotifyAttestation --\x3e [*]\n }\n"}))}p.isMDXComponent=!0},8209:(t,n,e)=>{e(67294)}}]); \ No newline at end of file diff --git a/assets/js/61e43ac9.e762bd90.js b/assets/js/61e43ac9.771105f6.js similarity index 97% rename from assets/js/61e43ac9.e762bd90.js rename to assets/js/61e43ac9.771105f6.js index d370f985b..40d115a67 100644 --- a/assets/js/61e43ac9.e762bd90.js +++ b/assets/js/61e43ac9.771105f6.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[81],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function l(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=r.createContext({}),c=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},p=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},f=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,s=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),d=c(a),f=n,m=d["".concat(s,".").concat(f)]||d[f]||u[f]||o;return a?r.createElement(m,l(l({ref:t},p),{},{components:a})):r.createElement(m,l({ref:t},p))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,l=new Array(o);l[0]=f;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[d]="string"==typeof e?e:n,l[1]=i;for(var c=2;c{a.r(t),a.d(t,{Badge:()=>u,Bullet:()=>p,Details:()=>m,SpecifiedBy:()=>d,assets:()=>c,contentTitle:()=>i,default:()=>g,frontMatter:()=>l,metadata:()=>s,toc:()=>f});var r=a(87462),n=a(67294),o=a(3905);a(8209);const l={id:"float",title:"Float",hide_table_of_contents:!1},i=void 0,s={unversionedId:"build/api/schema/scalars/float",id:"build/api/schema/scalars/float",title:"Float",description:"The Float scalar type represents signed double-precision fractional values as specified by IEEE 754.",source:"@site/docs/build/api/schema/scalars/float.mdx",sourceDirName:"build/api/schema/scalars",slug:"/build/api/schema/scalars/float",permalink:"/build/api/schema/scalars/float",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"float",title:"Float",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"ErrorData",permalink:"/build/api/schema/scalars/error-data"},next:{title:"Hash",permalink:"/build/api/schema/scalars/hash"}},c={},p=()=>(0,o.kt)(n.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),d=e=>(0,o.kt)(n.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,o.kt)(n.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),f=[{value:"Member of",id:"member-of",level:3}],m=e=>{let{dataOpen:t,dataClose:a,children:l,startOpen:i=!1}=e;const[s,c]=(0,n.useState)(i);return(0,o.kt)("details",(0,r.Z)({},s?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),c((e=>!e))},style:{listStyle:"none"}},s?t:a),s&&l)},b={Bullet:p,SpecifiedBy:d,Badge:u,toc:f,Details:m},y="wrapper";function g(e){let{components:t,...a}=e;return(0,o.kt)(y,(0,r.Z)({},b,a,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"The ",(0,o.kt)("inlineCode",{parentName:"p"},"Float")," scalar type represents signed double-precision fractional values as specified by ",(0,o.kt)("a",{parentName:"p",href:"https://en.wikipedia.org/wiki/IEEE_floating_point"},"IEEE 754"),"."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"scalar Float\n")),(0,o.kt)("h3",{id:"member-of"},"Member of"),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/node"},(0,o.kt)("inlineCode",{parentName:"a"},"Node"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,o.kt)(p,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/uco-data"},(0,o.kt)("inlineCode",{parentName:"a"},"UcoData"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}g.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[81],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function l(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=r.createContext({}),c=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},p=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},f=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,s=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),d=c(a),f=n,m=d["".concat(s,".").concat(f)]||d[f]||u[f]||o;return a?r.createElement(m,l(l({ref:t},p),{},{components:a})):r.createElement(m,l({ref:t},p))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,l=new Array(o);l[0]=f;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[d]="string"==typeof e?e:n,l[1]=i;for(var c=2;c{a.r(t),a.d(t,{Badge:()=>u,Bullet:()=>p,Details:()=>m,SpecifiedBy:()=>d,assets:()=>c,contentTitle:()=>i,default:()=>g,frontMatter:()=>l,metadata:()=>s,toc:()=>f});var r=a(87462),n=a(67294),o=a(3905);a(8209);const l={id:"float",title:"Float",hide_table_of_contents:!1},i=void 0,s={unversionedId:"build/api/schema/scalars/float",id:"build/api/schema/scalars/float",title:"Float",description:"The Float scalar type represents signed double-precision fractional values as specified by IEEE 754.",source:"@site/docs/build/api/schema/scalars/float.mdx",sourceDirName:"build/api/schema/scalars",slug:"/build/api/schema/scalars/float",permalink:"/build/api/schema/scalars/float",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"float",title:"Float",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"ErrorData",permalink:"/build/api/schema/scalars/error-data"},next:{title:"Hash",permalink:"/build/api/schema/scalars/hash"}},c={},p=()=>(0,o.kt)(n.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),d=e=>(0,o.kt)(n.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,o.kt)(n.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),f=[{value:"Member of",id:"member-of",level:3}],m=e=>{let{dataOpen:t,dataClose:a,children:l,startOpen:i=!1}=e;const[s,c]=(0,n.useState)(i);return(0,o.kt)("details",(0,r.Z)({},s?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),c((e=>!e))},style:{listStyle:"none"}},s?t:a),s&&l)},b={Bullet:p,SpecifiedBy:d,Badge:u,toc:f,Details:m},y="wrapper";function g(e){let{components:t,...a}=e;return(0,o.kt)(y,(0,r.Z)({},b,a,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"The ",(0,o.kt)("inlineCode",{parentName:"p"},"Float")," scalar type represents signed double-precision fractional values as specified by ",(0,o.kt)("a",{parentName:"p",href:"https://en.wikipedia.org/wiki/IEEE_floating_point"},"IEEE 754"),"."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"scalar Float\n")),(0,o.kt)("h3",{id:"member-of"},"Member of"),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/node"},(0,o.kt)("inlineCode",{parentName:"a"},"Node"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,o.kt)(p,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/uco-data"},(0,o.kt)("inlineCode",{parentName:"a"},"UcoData"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}g.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file diff --git a/assets/js/638e4778.99783ffd.js b/assets/js/638e4778.3fd92f7d.js similarity index 98% rename from assets/js/638e4778.99783ffd.js rename to assets/js/638e4778.3fd92f7d.js index 44169c06e..3d454861f 100644 --- a/assets/js/638e4778.99783ffd.js +++ b/assets/js/638e4778.3fd92f7d.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3561],{3905:(t,e,a)=>{a.d(e,{Zo:()=>u,kt:()=>b});var r=a(67294);function n(t,e,a){return e in t?Object.defineProperty(t,e,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[e]=a,t}function i(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,r)}return a}function l(t){for(var e=1;e=0||(n[a]=t[a]);return n}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(n[a]=t[a])}return n}var s=r.createContext({}),c=function(t){var e=r.useContext(s),a=e;return t&&(a="function"==typeof t?t(e):l(l({},e),t)),a},u=function(t){var e=c(t.components);return r.createElement(s.Provider,{value:e},t.children)},m="mdxType",p={inlineCode:"code",wrapper:function(t){var e=t.children;return r.createElement(r.Fragment,{},e)}},d=r.forwardRef((function(t,e){var a=t.components,n=t.mdxType,i=t.originalType,s=t.parentName,u=o(t,["components","mdxType","originalType","parentName"]),m=c(a),d=n,b=m["".concat(s,".").concat(d)]||m[d]||p[d]||i;return a?r.createElement(b,l(l({ref:e},u),{},{components:a})):r.createElement(b,l({ref:e},u))}));function b(t,e){var a=arguments,n=e&&e.mdxType;if("string"==typeof t||n){var i=a.length,l=new Array(i);l[0]=d;var o={};for(var s in e)hasOwnProperty.call(e,s)&&(o[s]=e[s]);o.originalType=t,o[m]="string"==typeof t?t:n,l[1]=o;for(var c=2;c{a.r(e),a.d(e,{assets:()=>s,contentTitle:()=>l,default:()=>p,frontMatter:()=>i,metadata:()=>o,toc:()=>c});var r=a(87462),n=(a(67294),a(3905));a(8209);const i={id:"library",title:"Smart Contracts - Library",sidebar_label:"Library",sidebar_position:4},l=void 0,o={unversionedId:"build/smart-contracts/language/library/library",id:"build/smart-contracts/language/library/library",title:"Smart Contracts - Library",description:"The Smart Contract library is composed of many modules with many functions in each.",source:"@site/docs/build/smart-contracts/language/library/README.md",sourceDirName:"build/smart-contracts/language/library",slug:"/build/smart-contracts/language/library/",permalink:"/build/smart-contracts/language/library/",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",sidebarPosition:4,frontMatter:{id:"library",title:"Smart Contracts - Library",sidebar_label:"Library",sidebar_position:4},sidebar:"docs",previous:{title:"Actions",permalink:"/build/smart-contracts/language/actions"},next:{title:"Chain",permalink:"/build/smart-contracts/language/library/chain"}},s={},c=[{value:"Function's arity",id:"functions-arity",level:2},{value:"Tagged functions",id:"tagged-functions",level:2},{value:"Modules list",id:"modules-list",level:2}],u={toc:c},m="wrapper";function p(t){let{components:e,...a}=t;return(0,n.kt)(m,(0,r.Z)({},u,a,{components:e,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"The Smart Contract library is composed of many modules with many functions in each.\n",(0,n.kt)("strong",{parentName:"p"},"Unless it is explicitely written, the functions will not mutate their arguments"),":"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-elixir"},"# Don't\nsold_items = [1,2,3]\nList.concat(sold_items, [4,5,6])\n\n# Do\nsold_items = [1,2,3]\nsold_items = List.concat(sold_items, [4,5,6])\n")),(0,n.kt)("h2",{id:"functions-arity"},"Function's arity"),(0,n.kt)("p",null,"In this section, the number after the slash indicates the arity of the function (number or arguments)."),(0,n.kt)("p",null,"For example ",(0,n.kt)("inlineCode",{parentName:"p"},"size/1")," means the function ",(0,n.kt)("inlineCode",{parentName:"p"},"size")," has 1 argument."),(0,n.kt)("h2",{id:"tagged-functions"},"Tagged functions"),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},"Transaction"),":"),(0,n.kt)("p",null,"Functions tagged as ",(0,n.kt)("inlineCode",{parentName:"p"},"[Transaction]")," are very special:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"They are only available in the ",(0,n.kt)("inlineCode",{parentName:"li"},"actions")," block."),(0,n.kt)("li",{parentName:"ul"},'They mutate an internal state, the "next transaction".'),(0,n.kt)("li",{parentName:"ul"},'This "next transaction" is initiated with current contract (all values but transfers are copied)')),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},"I/O"),":"),(0,n.kt)("p",null,"Functions tagged as ",(0,n.kt)("inlineCode",{parentName:"p"},"[I/O]")," means they are accessing data outside of the node (inside or outside the blockchain). There is an impact in performance and in fees."),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"They are not available in public functions.")),(0,n.kt)("h2",{id:"modules-list"},"Modules list"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/build/smart-contracts/language/library/chain"},"Chain")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/build/smart-contracts/language/library/code"},"Code")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/build/smart-contracts/language/library/contract"},"Contract")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/build/smart-contracts/language/library/crypto"},"Crypto")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/build/smart-contracts/language/library/evm"},"Evm")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/build/smart-contracts/language/library/http"},"Http")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/build/smart-contracts/language/library/json"},"Json")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/build/smart-contracts/language/library/list"},"List")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/build/smart-contracts/language/library/map"},"Map")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/build/smart-contracts/language/library/math"},"Math")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/build/smart-contracts/language/library/regex"},"Regex")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/build/smart-contracts/language/library/state"},"State")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/build/smart-contracts/language/library/string"},"String")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/build/smart-contracts/language/library/time"},"Time")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/build/smart-contracts/language/library/token"},"Token"))))}p.isMDXComponent=!0},8209:(t,e,a)=>{a(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3561],{3905:(t,e,a)=>{a.d(e,{Zo:()=>u,kt:()=>b});var r=a(67294);function n(t,e,a){return e in t?Object.defineProperty(t,e,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[e]=a,t}function i(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,r)}return a}function l(t){for(var e=1;e=0||(n[a]=t[a]);return n}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(n[a]=t[a])}return n}var s=r.createContext({}),c=function(t){var e=r.useContext(s),a=e;return t&&(a="function"==typeof t?t(e):l(l({},e),t)),a},u=function(t){var e=c(t.components);return r.createElement(s.Provider,{value:e},t.children)},m="mdxType",p={inlineCode:"code",wrapper:function(t){var e=t.children;return r.createElement(r.Fragment,{},e)}},d=r.forwardRef((function(t,e){var a=t.components,n=t.mdxType,i=t.originalType,s=t.parentName,u=o(t,["components","mdxType","originalType","parentName"]),m=c(a),d=n,b=m["".concat(s,".").concat(d)]||m[d]||p[d]||i;return a?r.createElement(b,l(l({ref:e},u),{},{components:a})):r.createElement(b,l({ref:e},u))}));function b(t,e){var a=arguments,n=e&&e.mdxType;if("string"==typeof t||n){var i=a.length,l=new Array(i);l[0]=d;var o={};for(var s in e)hasOwnProperty.call(e,s)&&(o[s]=e[s]);o.originalType=t,o[m]="string"==typeof t?t:n,l[1]=o;for(var c=2;c{a.r(e),a.d(e,{assets:()=>s,contentTitle:()=>l,default:()=>p,frontMatter:()=>i,metadata:()=>o,toc:()=>c});var r=a(87462),n=(a(67294),a(3905));a(8209);const i={id:"library",title:"Smart Contracts - Library",sidebar_label:"Library",sidebar_position:4},l=void 0,o={unversionedId:"build/smart-contracts/language/library/library",id:"build/smart-contracts/language/library/library",title:"Smart Contracts - Library",description:"The Smart Contract library is composed of many modules with many functions in each.",source:"@site/docs/build/smart-contracts/language/library/README.md",sourceDirName:"build/smart-contracts/language/library",slug:"/build/smart-contracts/language/library/",permalink:"/build/smart-contracts/language/library/",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",sidebarPosition:4,frontMatter:{id:"library",title:"Smart Contracts - Library",sidebar_label:"Library",sidebar_position:4},sidebar:"docs",previous:{title:"Actions",permalink:"/build/smart-contracts/language/actions"},next:{title:"Chain",permalink:"/build/smart-contracts/language/library/chain"}},s={},c=[{value:"Function's arity",id:"functions-arity",level:2},{value:"Tagged functions",id:"tagged-functions",level:2},{value:"Modules list",id:"modules-list",level:2}],u={toc:c},m="wrapper";function p(t){let{components:e,...a}=t;return(0,n.kt)(m,(0,r.Z)({},u,a,{components:e,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"The Smart Contract library is composed of many modules with many functions in each.\n",(0,n.kt)("strong",{parentName:"p"},"Unless it is explicitely written, the functions will not mutate their arguments"),":"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-elixir"},"# Don't\nsold_items = [1,2,3]\nList.concat(sold_items, [4,5,6])\n\n# Do\nsold_items = [1,2,3]\nsold_items = List.concat(sold_items, [4,5,6])\n")),(0,n.kt)("h2",{id:"functions-arity"},"Function's arity"),(0,n.kt)("p",null,"In this section, the number after the slash indicates the arity of the function (number or arguments)."),(0,n.kt)("p",null,"For example ",(0,n.kt)("inlineCode",{parentName:"p"},"size/1")," means the function ",(0,n.kt)("inlineCode",{parentName:"p"},"size")," has 1 argument."),(0,n.kt)("h2",{id:"tagged-functions"},"Tagged functions"),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},"Transaction"),":"),(0,n.kt)("p",null,"Functions tagged as ",(0,n.kt)("inlineCode",{parentName:"p"},"[Transaction]")," are very special:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"They are only available in the ",(0,n.kt)("inlineCode",{parentName:"li"},"actions")," block."),(0,n.kt)("li",{parentName:"ul"},'They mutate an internal state, the "next transaction".'),(0,n.kt)("li",{parentName:"ul"},'This "next transaction" is initiated with current contract (all values but transfers are copied)')),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},"I/O"),":"),(0,n.kt)("p",null,"Functions tagged as ",(0,n.kt)("inlineCode",{parentName:"p"},"[I/O]")," means they are accessing data outside of the node (inside or outside the blockchain). There is an impact in performance and in fees."),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"They are not available in public functions.")),(0,n.kt)("h2",{id:"modules-list"},"Modules list"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/build/smart-contracts/language/library/chain"},"Chain")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/build/smart-contracts/language/library/code"},"Code")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/build/smart-contracts/language/library/contract"},"Contract")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/build/smart-contracts/language/library/crypto"},"Crypto")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/build/smart-contracts/language/library/evm"},"Evm")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/build/smart-contracts/language/library/http"},"Http")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/build/smart-contracts/language/library/json"},"Json")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/build/smart-contracts/language/library/list"},"List")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/build/smart-contracts/language/library/map"},"Map")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/build/smart-contracts/language/library/math"},"Math")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/build/smart-contracts/language/library/regex"},"Regex")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/build/smart-contracts/language/library/state"},"State")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/build/smart-contracts/language/library/string"},"String")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/build/smart-contracts/language/library/time"},"Time")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/build/smart-contracts/language/library/token"},"Token"))))}p.isMDXComponent=!0},8209:(t,e,a)=>{a(67294)}}]); \ No newline at end of file diff --git a/assets/js/65c808a4.ad3a6bd9.js b/assets/js/65c808a4.4e45a456.js similarity index 98% rename from assets/js/65c808a4.ad3a6bd9.js rename to assets/js/65c808a4.4e45a456.js index 934047de2..79a25ce25 100644 --- a/assets/js/65c808a4.ad3a6bd9.js +++ b/assets/js/65c808a4.4e45a456.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5630],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>f});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function s(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),c=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},d=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,l=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),p=c(n),m=r,f=p["".concat(l,".").concat(m)]||p[m]||u[m]||o;return n?a.createElement(f,s(s({ref:t},d),{},{components:n})):a.createElement(f,s({ref:t},d))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,s=new Array(o);s[0]=m;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[p]="string"==typeof e?e:r,s[1]=i;for(var c=2;c{n.r(t),n.d(t,{Badge:()=>u,Bullet:()=>d,Details:()=>f,SpecifiedBy:()=>p,assets:()=>c,contentTitle:()=>i,default:()=>g,frontMatter:()=>s,metadata:()=>l,toc:()=>m});var a=n(87462),r=n(67294),o=n(3905);n(8209);const s={id:"transactions",title:"transactions",hide_table_of_contents:!1},i=void 0,l={unversionedId:"build/api/schema/queries/transactions",id:"build/api/schema/queries/transactions",title:"transactions",description:"Query the network to find all the transactions locally stored",source:"@site/docs/build/api/schema/queries/transactions.mdx",sourceDirName:"build/api/schema/queries",slug:"/build/api/schema/queries/transactions",permalink:"/build/api/schema/queries/transactions",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"transactions",title:"transactions",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"transaction",permalink:"/build/api/schema/queries/transaction"},next:{title:"version",permalink:"/build/api/schema/queries/version"}},c={},d=()=>(0,o.kt)(r.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=e=>(0,o.kt)(r.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,o.kt)(r.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),m=[{value:"Arguments",id:"arguments",level:3},{value:'transactions.pagePosInteger ',id:"code-style-fontweight-normal-transactionsbpagebcodeposinteger-",level:4},{value:"Type",id:"type",level:3},{value:'Transaction ',id:"transaction-",level:4}],f=e=>{let{dataOpen:t,dataClose:n,children:s,startOpen:i=!1}=e;const[l,c]=(0,r.useState)(i);return(0,o.kt)("details",(0,a.Z)({},l?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),c((e=>!e))},style:{listStyle:"none"}},l?t:n),l&&s)},b={Bullet:d,SpecifiedBy:p,Badge:u,toc:m,Details:f},y="wrapper";function g(e){let{components:t,...n}=e;return(0,o.kt)(y,(0,a.Z)({},b,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Query the network to find all the transactions locally stored"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"transactions(\n page: PosInteger\n): [Transaction]\n")),(0,o.kt)("h3",{id:"arguments"},"Arguments"),(0,o.kt)("h4",{id:"code-style-fontweight-normal-transactionsbpagebcodeposinteger-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"transactions.",(0,o.kt)("b",null,"page"))),(0,o.kt)(d,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/pos-integer"},(0,o.kt)("inlineCode",{parentName:"a"},"PosInteger"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h3",{id:"type"},"Type"),(0,o.kt)("h4",{id:"transaction-"},(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/transaction"},(0,o.kt)("inlineCode",{parentName:"a"},"Transaction"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,o.kt)("blockquote",null,(0,o.kt)("p",{parentName:"blockquote"},"[Transaction]"," represents a unitary transaction in the Archethic network.")))}g.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5630],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>f});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function s(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),c=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},d=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,l=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),p=c(n),m=r,f=p["".concat(l,".").concat(m)]||p[m]||u[m]||o;return n?a.createElement(f,s(s({ref:t},d),{},{components:n})):a.createElement(f,s({ref:t},d))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,s=new Array(o);s[0]=m;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[p]="string"==typeof e?e:r,s[1]=i;for(var c=2;c{n.r(t),n.d(t,{Badge:()=>u,Bullet:()=>d,Details:()=>f,SpecifiedBy:()=>p,assets:()=>c,contentTitle:()=>i,default:()=>g,frontMatter:()=>s,metadata:()=>l,toc:()=>m});var a=n(87462),r=n(67294),o=n(3905);n(8209);const s={id:"transactions",title:"transactions",hide_table_of_contents:!1},i=void 0,l={unversionedId:"build/api/schema/queries/transactions",id:"build/api/schema/queries/transactions",title:"transactions",description:"Query the network to find all the transactions locally stored",source:"@site/docs/build/api/schema/queries/transactions.mdx",sourceDirName:"build/api/schema/queries",slug:"/build/api/schema/queries/transactions",permalink:"/build/api/schema/queries/transactions",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"transactions",title:"transactions",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"transaction",permalink:"/build/api/schema/queries/transaction"},next:{title:"version",permalink:"/build/api/schema/queries/version"}},c={},d=()=>(0,o.kt)(r.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=e=>(0,o.kt)(r.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,o.kt)(r.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),m=[{value:"Arguments",id:"arguments",level:3},{value:'transactions.pagePosInteger ',id:"code-style-fontweight-normal-transactionsbpagebcodeposinteger-",level:4},{value:"Type",id:"type",level:3},{value:'Transaction ',id:"transaction-",level:4}],f=e=>{let{dataOpen:t,dataClose:n,children:s,startOpen:i=!1}=e;const[l,c]=(0,r.useState)(i);return(0,o.kt)("details",(0,a.Z)({},l?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),c((e=>!e))},style:{listStyle:"none"}},l?t:n),l&&s)},b={Bullet:d,SpecifiedBy:p,Badge:u,toc:m,Details:f},y="wrapper";function g(e){let{components:t,...n}=e;return(0,o.kt)(y,(0,a.Z)({},b,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Query the network to find all the transactions locally stored"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"transactions(\n page: PosInteger\n): [Transaction]\n")),(0,o.kt)("h3",{id:"arguments"},"Arguments"),(0,o.kt)("h4",{id:"code-style-fontweight-normal-transactionsbpagebcodeposinteger-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"transactions.",(0,o.kt)("b",null,"page"))),(0,o.kt)(d,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/pos-integer"},(0,o.kt)("inlineCode",{parentName:"a"},"PosInteger"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h3",{id:"type"},"Type"),(0,o.kt)("h4",{id:"transaction-"},(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/transaction"},(0,o.kt)("inlineCode",{parentName:"a"},"Transaction"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,o.kt)("blockquote",null,(0,o.kt)("p",{parentName:"blockquote"},"[Transaction]"," represents a unitary transaction in the Archethic network.")))}g.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/66076425.32639d65.js b/assets/js/66076425.47bbefd4.js similarity index 98% rename from assets/js/66076425.32639d65.js rename to assets/js/66076425.47bbefd4.js index 8974e6172..f7c54328d 100644 --- a/assets/js/66076425.32639d65.js +++ b/assets/js/66076425.47bbefd4.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3168],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>b});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function s(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var o=n.createContext({}),c=function(e){var t=n.useContext(o),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},p=function(e){var t=c(e.components);return n.createElement(o.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,s=e.originalType,o=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),d=c(a),u=r,b=d["".concat(o,".").concat(u)]||d[u]||m[u]||s;return a?n.createElement(b,i(i({ref:t},p),{},{components:a})):n.createElement(b,i({ref:t},p))}));function b(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var s=a.length,i=new Array(s);i[0]=u;var l={};for(var o in t)hasOwnProperty.call(t,o)&&(l[o]=t[o]);l.originalType=e,l[d]="string"==typeof e?e:r,i[1]=l;for(var c=2;c{a.r(t),a.d(t,{Badge:()=>m,Bullet:()=>p,Details:()=>b,SpecifiedBy:()=>d,assets:()=>c,contentTitle:()=>l,default:()=>k,frontMatter:()=>i,metadata:()=>o,toc:()=>u});var n=a(87462),r=a(67294),s=a(3905);a(8209);const i={id:"timestamp",title:"Timestamp",hide_table_of_contents:!1},l=void 0,o={unversionedId:"build/api/schema/scalars/timestamp",id:"build/api/schema/scalars/timestamp",title:"Timestamp",description:"The [Timestamp] scalar type represents a UNIX timestamp in seconds",source:"@site/docs/build/api/schema/scalars/timestamp.mdx",sourceDirName:"build/api/schema/scalars",slug:"/build/api/schema/scalars/timestamp",permalink:"/build/api/schema/scalars/timestamp",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"timestamp",title:"Timestamp",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"String",permalink:"/build/api/schema/scalars/string"},next:{title:"TokenProperties",permalink:"/build/api/schema/scalars/token-properties"}},c={},p=()=>(0,s.kt)(r.Fragment,null,(0,s.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),d=e=>(0,s.kt)(r.Fragment,null,"Specification",(0,s.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),m=e=>(0,s.kt)(r.Fragment,null,(0,s.kt)("span",{className:e.class},e.text)),u=[{value:"Member of",id:"member-of",level:3}],b=e=>{let{dataOpen:t,dataClose:a,children:i,startOpen:l=!1}=e;const[o,c]=(0,r.useState)(l);return(0,s.kt)("details",(0,n.Z)({},o?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,s.kt)("summary",{onClick:e=>{e.preventDefault(),c((e=>!e))},style:{listStyle:"none"}},o?t:a),o&&i)},y={Bullet:p,SpecifiedBy:d,Badge:m,toc:u,Details:b},f="wrapper";function k(e){let{components:t,...a}=e;return(0,s.kt)(f,(0,n.Z)({},y,a,{components:t,mdxType:"MDXLayout"}),(0,s.kt)("p",null,"The ","[Timestamp]"," scalar type represents a UNIX timestamp in seconds"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-graphql"},"scalar Timestamp\n")),(0,s.kt)("h3",{id:"member-of"},"Member of"),(0,s.kt)("p",null,(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/beacon-chain-summary"},(0,s.kt)("inlineCode",{parentName:"a"},"BeaconChainSummary"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/queries/beacon-chain-summary"},(0,s.kt)("inlineCode",{parentName:"a"},"beaconChainSummary"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"query",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/consumed-inputs"},(0,s.kt)("inlineCode",{parentName:"a"},"ConsumedInputs"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/node"},(0,s.kt)("inlineCode",{parentName:"a"},"Node"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/oracle-data"},(0,s.kt)("inlineCode",{parentName:"a"},"OracleData"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/queries/oracle-data"},(0,s.kt)("inlineCode",{parentName:"a"},"oracleData"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"query",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/queries/transaction-chain"},(0,s.kt)("inlineCode",{parentName:"a"},"transactionChain"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"query",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/transaction-input"},(0,s.kt)("inlineCode",{parentName:"a"},"TransactionInput"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/transaction-summary"},(0,s.kt)("inlineCode",{parentName:"a"},"TransactionSummary"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/unspent-output"},(0,s.kt)("inlineCode",{parentName:"a"},"UnspentOutput"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/validation-stamp"},(0,s.kt)("inlineCode",{parentName:"a"},"ValidationStamp"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}k.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3168],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>b});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function s(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var o=n.createContext({}),c=function(e){var t=n.useContext(o),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},p=function(e){var t=c(e.components);return n.createElement(o.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,s=e.originalType,o=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),d=c(a),u=r,b=d["".concat(o,".").concat(u)]||d[u]||m[u]||s;return a?n.createElement(b,i(i({ref:t},p),{},{components:a})):n.createElement(b,i({ref:t},p))}));function b(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var s=a.length,i=new Array(s);i[0]=u;var l={};for(var o in t)hasOwnProperty.call(t,o)&&(l[o]=t[o]);l.originalType=e,l[d]="string"==typeof e?e:r,i[1]=l;for(var c=2;c{a.r(t),a.d(t,{Badge:()=>m,Bullet:()=>p,Details:()=>b,SpecifiedBy:()=>d,assets:()=>c,contentTitle:()=>l,default:()=>k,frontMatter:()=>i,metadata:()=>o,toc:()=>u});var n=a(87462),r=a(67294),s=a(3905);a(8209);const i={id:"timestamp",title:"Timestamp",hide_table_of_contents:!1},l=void 0,o={unversionedId:"build/api/schema/scalars/timestamp",id:"build/api/schema/scalars/timestamp",title:"Timestamp",description:"The [Timestamp] scalar type represents a UNIX timestamp in seconds",source:"@site/docs/build/api/schema/scalars/timestamp.mdx",sourceDirName:"build/api/schema/scalars",slug:"/build/api/schema/scalars/timestamp",permalink:"/build/api/schema/scalars/timestamp",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"timestamp",title:"Timestamp",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"String",permalink:"/build/api/schema/scalars/string"},next:{title:"TokenProperties",permalink:"/build/api/schema/scalars/token-properties"}},c={},p=()=>(0,s.kt)(r.Fragment,null,(0,s.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),d=e=>(0,s.kt)(r.Fragment,null,"Specification",(0,s.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),m=e=>(0,s.kt)(r.Fragment,null,(0,s.kt)("span",{className:e.class},e.text)),u=[{value:"Member of",id:"member-of",level:3}],b=e=>{let{dataOpen:t,dataClose:a,children:i,startOpen:l=!1}=e;const[o,c]=(0,r.useState)(l);return(0,s.kt)("details",(0,n.Z)({},o?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,s.kt)("summary",{onClick:e=>{e.preventDefault(),c((e=>!e))},style:{listStyle:"none"}},o?t:a),o&&i)},y={Bullet:p,SpecifiedBy:d,Badge:m,toc:u,Details:b},f="wrapper";function k(e){let{components:t,...a}=e;return(0,s.kt)(f,(0,n.Z)({},y,a,{components:t,mdxType:"MDXLayout"}),(0,s.kt)("p",null,"The ","[Timestamp]"," scalar type represents a UNIX timestamp in seconds"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-graphql"},"scalar Timestamp\n")),(0,s.kt)("h3",{id:"member-of"},"Member of"),(0,s.kt)("p",null,(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/beacon-chain-summary"},(0,s.kt)("inlineCode",{parentName:"a"},"BeaconChainSummary"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/queries/beacon-chain-summary"},(0,s.kt)("inlineCode",{parentName:"a"},"beaconChainSummary"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"query",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/consumed-inputs"},(0,s.kt)("inlineCode",{parentName:"a"},"ConsumedInputs"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/node"},(0,s.kt)("inlineCode",{parentName:"a"},"Node"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/oracle-data"},(0,s.kt)("inlineCode",{parentName:"a"},"OracleData"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/queries/oracle-data"},(0,s.kt)("inlineCode",{parentName:"a"},"oracleData"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"query",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/queries/transaction-chain"},(0,s.kt)("inlineCode",{parentName:"a"},"transactionChain"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"query",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/transaction-input"},(0,s.kt)("inlineCode",{parentName:"a"},"TransactionInput"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/transaction-summary"},(0,s.kt)("inlineCode",{parentName:"a"},"TransactionSummary"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/unspent-output"},(0,s.kt)("inlineCode",{parentName:"a"},"UnspentOutput"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/validation-stamp"},(0,s.kt)("inlineCode",{parentName:"a"},"ValidationStamp"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}k.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file diff --git a/assets/js/6638f55a.3495400f.js b/assets/js/6638f55a.566befd3.js similarity index 98% rename from assets/js/6638f55a.3495400f.js rename to assets/js/6638f55a.566befd3.js index cd53ffc62..88e74f195 100644 --- a/assets/js/6638f55a.3495400f.js +++ b/assets/js/6638f55a.566befd3.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7486],{3905:(e,t,n)=>{n.d(t,{Zo:()=>s,kt:()=>f});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var c=r.createContext({}),d=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},s=function(e){var t=d(e.components);return r.createElement(c.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,l=e.originalType,c=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),u=d(n),m=a,f=u["".concat(c,".").concat(m)]||u[m]||p[m]||l;return n?r.createElement(f,i(i({ref:t},s),{},{components:n})):r.createElement(f,i({ref:t},s))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=n.length,i=new Array(l);i[0]=m;var o={};for(var c in t)hasOwnProperty.call(t,c)&&(o[c]=t[c]);o.originalType=e,o[u]="string"==typeof e?e:a,i[1]=o;for(var d=2;d{n.r(t),n.d(t,{Badge:()=>p,Bullet:()=>s,Details:()=>f,SpecifiedBy:()=>u,assets:()=>d,contentTitle:()=>o,default:()=>g,frontMatter:()=>i,metadata:()=>c,toc:()=>m});var r=n(87462),a=n(67294),l=n(3905);n(8209);const i={id:"include",title:"include",hide_table_of_contents:!1},o=void 0,c={unversionedId:"build/api/schema/directives/include",id:"build/api/schema/directives/include",title:"include",description:"Directs the executor to include this field or fragment only when the if argument is true.",source:"@site/docs/build/api/schema/directives/include.mdx",sourceDirName:"build/api/schema/directives",slug:"/build/api/schema/directives/include",permalink:"/build/api/schema/directives/include",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"include",title:"include",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"Schema Documentation",permalink:"/schema"},next:{title:"skip",permalink:"/build/api/schema/directives/skip"}},d={},s=()=>(0,l.kt)(a.Fragment,null,(0,l.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),u=e=>(0,l.kt)(a.Fragment,null,"Specification",(0,l.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),p=e=>(0,l.kt)(a.Fragment,null,(0,l.kt)("span",{className:e.class},e.text)),m=[{value:"Arguments",id:"arguments",level:3},{value:'include.ifBoolean! ',id:"code-style-fontweight-normal-includebifbcodeboolean--",level:4}],f=e=>{let{dataOpen:t,dataClose:n,children:i,startOpen:o=!1}=e;const[c,d]=(0,a.useState)(o);return(0,l.kt)("details",(0,r.Z)({},c?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,l.kt)("summary",{onClick:e=>{e.preventDefault(),d((e=>!e))},style:{listStyle:"none"}},c?t:n),c&&i)},b={Bullet:s,SpecifiedBy:u,Badge:p,toc:m,Details:f},y="wrapper";function g(e){let{components:t,...n}=e;return(0,l.kt)(y,(0,r.Z)({},b,n,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("p",null,"Directs the executor to include this field or fragment only when the ",(0,l.kt)("inlineCode",{parentName:"p"},"if")," argument is true."),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-graphql"},"directive @include(\n if: Boolean!\n) on \n | FIELD\n | FRAGMENT_SPREAD\n | INLINE_FRAGMENT\n")),(0,l.kt)("h3",{id:"arguments"},"Arguments"),(0,l.kt)("h4",{id:"code-style-fontweight-normal-includebifbcodeboolean--"},(0,l.kt)("a",{parentName:"h4",href:"#"},(0,l.kt)("code",{style:{fontWeight:"normal"}},"include.",(0,l.kt)("b",null,"if"))),(0,l.kt)(s,{mdxType:"Bullet"}),(0,l.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/boolean"},(0,l.kt)("inlineCode",{parentName:"a"},"Boolean!"))," ",(0,l.kt)(p,{class:"badge badge--secondary",text:"non-null",mdxType:"Badge"})," ",(0,l.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Included when true.")))}g.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7486],{3905:(e,t,n)=>{n.d(t,{Zo:()=>s,kt:()=>f});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var c=r.createContext({}),d=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},s=function(e){var t=d(e.components);return r.createElement(c.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,l=e.originalType,c=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),u=d(n),m=a,f=u["".concat(c,".").concat(m)]||u[m]||p[m]||l;return n?r.createElement(f,i(i({ref:t},s),{},{components:n})):r.createElement(f,i({ref:t},s))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=n.length,i=new Array(l);i[0]=m;var o={};for(var c in t)hasOwnProperty.call(t,c)&&(o[c]=t[c]);o.originalType=e,o[u]="string"==typeof e?e:a,i[1]=o;for(var d=2;d{n.r(t),n.d(t,{Badge:()=>p,Bullet:()=>s,Details:()=>f,SpecifiedBy:()=>u,assets:()=>d,contentTitle:()=>o,default:()=>g,frontMatter:()=>i,metadata:()=>c,toc:()=>m});var r=n(87462),a=n(67294),l=n(3905);n(8209);const i={id:"include",title:"include",hide_table_of_contents:!1},o=void 0,c={unversionedId:"build/api/schema/directives/include",id:"build/api/schema/directives/include",title:"include",description:"Directs the executor to include this field or fragment only when the if argument is true.",source:"@site/docs/build/api/schema/directives/include.mdx",sourceDirName:"build/api/schema/directives",slug:"/build/api/schema/directives/include",permalink:"/build/api/schema/directives/include",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"include",title:"include",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"Schema Documentation",permalink:"/schema"},next:{title:"skip",permalink:"/build/api/schema/directives/skip"}},d={},s=()=>(0,l.kt)(a.Fragment,null,(0,l.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),u=e=>(0,l.kt)(a.Fragment,null,"Specification",(0,l.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),p=e=>(0,l.kt)(a.Fragment,null,(0,l.kt)("span",{className:e.class},e.text)),m=[{value:"Arguments",id:"arguments",level:3},{value:'include.ifBoolean! ',id:"code-style-fontweight-normal-includebifbcodeboolean--",level:4}],f=e=>{let{dataOpen:t,dataClose:n,children:i,startOpen:o=!1}=e;const[c,d]=(0,a.useState)(o);return(0,l.kt)("details",(0,r.Z)({},c?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,l.kt)("summary",{onClick:e=>{e.preventDefault(),d((e=>!e))},style:{listStyle:"none"}},c?t:n),c&&i)},b={Bullet:s,SpecifiedBy:u,Badge:p,toc:m,Details:f},y="wrapper";function g(e){let{components:t,...n}=e;return(0,l.kt)(y,(0,r.Z)({},b,n,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("p",null,"Directs the executor to include this field or fragment only when the ",(0,l.kt)("inlineCode",{parentName:"p"},"if")," argument is true."),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-graphql"},"directive @include(\n if: Boolean!\n) on \n | FIELD\n | FRAGMENT_SPREAD\n | INLINE_FRAGMENT\n")),(0,l.kt)("h3",{id:"arguments"},"Arguments"),(0,l.kt)("h4",{id:"code-style-fontweight-normal-includebifbcodeboolean--"},(0,l.kt)("a",{parentName:"h4",href:"#"},(0,l.kt)("code",{style:{fontWeight:"normal"}},"include.",(0,l.kt)("b",null,"if"))),(0,l.kt)(s,{mdxType:"Bullet"}),(0,l.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/boolean"},(0,l.kt)("inlineCode",{parentName:"a"},"Boolean!"))," ",(0,l.kt)(p,{class:"badge badge--secondary",text:"non-null",mdxType:"Badge"})," ",(0,l.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Included when true.")))}g.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/66545c3d.b432ed58.js b/assets/js/66545c3d.4c401298.js similarity index 99% rename from assets/js/66545c3d.b432ed58.js rename to assets/js/66545c3d.4c401298.js index aa22ab806..fbf935f11 100644 --- a/assets/js/66545c3d.b432ed58.js +++ b/assets/js/66545c3d.4c401298.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7045],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>m});var n=a(67294);function o(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function r(e){for(var t=1;t=0||(o[a]=e[a]);return o}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(o[a]=e[a])}return o}var d=n.createContext({}),i=function(e){var t=n.useContext(d),a=t;return e&&(a="function"==typeof e?e(t):r(r({},t),e)),a},c=function(e){var t=i(e.components);return n.createElement(d.Provider,{value:t},e.children)},p="mdxType",k={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},b=n.forwardRef((function(e,t){var a=e.components,o=e.mdxType,l=e.originalType,d=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),p=i(a),b=o,m=p["".concat(d,".").concat(b)]||p[b]||k[b]||l;return a?n.createElement(m,r(r({ref:t},c),{},{components:a})):n.createElement(m,r({ref:t},c))}));function m(e,t){var a=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var l=a.length,r=new Array(l);r[0]=b;var s={};for(var d in t)hasOwnProperty.call(t,d)&&(s[d]=t[d]);s.originalType=e,s[p]="string"==typeof e?e:o,r[1]=s;for(var i=2;i{a.r(t),a.d(t,{Badge:()=>k,Bullet:()=>c,Details:()=>m,SpecifiedBy:()=>p,assets:()=>i,contentTitle:()=>s,default:()=>y,frontMatter:()=>r,metadata:()=>d,toc:()=>b});var n=a(87462),o=a(67294),l=a(3905);a(8209);const r={id:"token",title:"Token",hide_table_of_contents:!1},s=void 0,d={unversionedId:"build/api/schema/objects/token",id:"build/api/schema/objects/token",title:"Token",description:"[token] represents a token metadata.",source:"@site/docs/build/api/schema/objects/token.mdx",sourceDirName:"build/api/schema/objects",slug:"/build/api/schema/objects/token",permalink:"/build/api/schema/objects/token",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"token",title:"Token",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"TokenTransfer",permalink:"/build/api/schema/objects/token-transfer"},next:{title:"TransactionAttestation",permalink:"/build/api/schema/objects/transaction-attestation"}},i={},c=()=>(0,l.kt)(o.Fragment,null,(0,l.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=e=>(0,l.kt)(o.Fragment,null,"Specification",(0,l.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),k=e=>(0,l.kt)(o.Fragment,null,(0,l.kt)("span",{className:e.class},e.text)),b=[{value:"Fields",id:"fields",level:3},{value:'Token.collection[TokenProperties] ',id:"code-style-fontweight-normal-tokenbcollectionbcodetokenproperties--",level:4},{value:'Token.decimalsInt ',id:"code-style-fontweight-normal-tokenbdecimalsbcodeint-",level:4},{value:'Token.genesisAddress ',id:"code-style-fontweight-normal-tokenbgenesisbcodeaddress-",level:4},{value:'Token.idString ',id:"code-style-fontweight-normal-tokenbidbcodestring-",level:4},{value:'Token.nameString ',id:"code-style-fontweight-normal-tokenbnamebcodestring-",level:4},{value:'Token.ownerships[Ownership] ',id:"code-style-fontweight-normal-tokenbownershipsbcodeownership--",level:4},{value:'Token.propertiesTokenProperties ',id:"code-style-fontweight-normal-tokenbpropertiesbcodetokenproperties-",level:4},{value:'Token.supplyInt ',id:"code-style-fontweight-normal-tokenbsupplybcodeint-",level:4},{value:'Token.symbolString ',id:"code-style-fontweight-normal-tokenbsymbolbcodestring-",level:4},{value:'Token.typeString ',id:"code-style-fontweight-normal-tokenbtypebcodestring-",level:4},{value:"Returned by",id:"returned-by",level:3}],m=e=>{let{dataOpen:t,dataClose:a,children:r,startOpen:s=!1}=e;const[d,i]=(0,o.useState)(s);return(0,l.kt)("details",(0,n.Z)({},d?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,l.kt)("summary",{onClick:e=>{e.preventDefault(),i((e=>!e))},style:{listStyle:"none"}},d?t:a),d&&r)},u={Bullet:c,SpecifiedBy:p,Badge:k,toc:b,Details:m},g="wrapper";function y(e){let{components:t,...a}=e;return(0,l.kt)(g,(0,n.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("p",null,"[token]"," represents a token metadata.\nIt includes:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"genesis: Genesis address to the token"),(0,l.kt)("li",{parentName:"ul"},"name: Name of the token"),(0,l.kt)("li",{parentName:"ul"},"symbol: Symbol of the token"),(0,l.kt)("li",{parentName:"ul"},"supply: Supply of the token"),(0,l.kt)("li",{parentName:"ul"},"type: Type of the token"),(0,l.kt)("li",{parentName:"ul"},"decimals: Number of decimals of the token"),(0,l.kt)("li",{parentName:"ul"},"properties: Properties of the token (if any)"),(0,l.kt)("li",{parentName:"ul"},"collection: List of properties for a collection (if any)"),(0,l.kt)("li",{parentName:"ul"},"ownerships: authorization/delegations containing list of secrets and their authorized public keys to proof the ownership"),(0,l.kt)("li",{parentName:"ul"},"id: Unique identification of the token on the chain")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-graphql"},"type Token {\n collection: [TokenProperties]\n decimals: Int\n genesis: Address\n id: String\n name: String\n ownerships: [Ownership]\n properties: TokenProperties\n supply: Int\n symbol: String\n type: String\n}\n")),(0,l.kt)("h3",{id:"fields"},"Fields"),(0,l.kt)("h4",{id:"code-style-fontweight-normal-tokenbcollectionbcodetokenproperties--"},(0,l.kt)("a",{parentName:"h4",href:"#"},(0,l.kt)("code",{style:{fontWeight:"normal"}},"Token.",(0,l.kt)("b",null,"collection"))),(0,l.kt)(c,{mdxType:"Bullet"}),(0,l.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/token-properties"},(0,l.kt)("inlineCode",{parentName:"a"},"[TokenProperties]"))," ",(0,l.kt)(k,{class:"badge badge--secondary",text:"list",mdxType:"Badge"})," ",(0,l.kt)(k,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,l.kt)("blockquote",null),(0,l.kt)("h4",{id:"code-style-fontweight-normal-tokenbdecimalsbcodeint-"},(0,l.kt)("a",{parentName:"h4",href:"#"},(0,l.kt)("code",{style:{fontWeight:"normal"}},"Token.",(0,l.kt)("b",null,"decimals"))),(0,l.kt)(c,{mdxType:"Bullet"}),(0,l.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/int"},(0,l.kt)("inlineCode",{parentName:"a"},"Int"))," ",(0,l.kt)(k,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,l.kt)("blockquote",null),(0,l.kt)("h4",{id:"code-style-fontweight-normal-tokenbgenesisbcodeaddress-"},(0,l.kt)("a",{parentName:"h4",href:"#"},(0,l.kt)("code",{style:{fontWeight:"normal"}},"Token.",(0,l.kt)("b",null,"genesis"))),(0,l.kt)(c,{mdxType:"Bullet"}),(0,l.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/address"},(0,l.kt)("inlineCode",{parentName:"a"},"Address"))," ",(0,l.kt)(k,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,l.kt)("blockquote",null),(0,l.kt)("h4",{id:"code-style-fontweight-normal-tokenbidbcodestring-"},(0,l.kt)("a",{parentName:"h4",href:"#"},(0,l.kt)("code",{style:{fontWeight:"normal"}},"Token.",(0,l.kt)("b",null,"id"))),(0,l.kt)(c,{mdxType:"Bullet"}),(0,l.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/string"},(0,l.kt)("inlineCode",{parentName:"a"},"String"))," ",(0,l.kt)(k,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,l.kt)("blockquote",null),(0,l.kt)("h4",{id:"code-style-fontweight-normal-tokenbnamebcodestring-"},(0,l.kt)("a",{parentName:"h4",href:"#"},(0,l.kt)("code",{style:{fontWeight:"normal"}},"Token.",(0,l.kt)("b",null,"name"))),(0,l.kt)(c,{mdxType:"Bullet"}),(0,l.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/string"},(0,l.kt)("inlineCode",{parentName:"a"},"String"))," ",(0,l.kt)(k,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,l.kt)("blockquote",null),(0,l.kt)("h4",{id:"code-style-fontweight-normal-tokenbownershipsbcodeownership--"},(0,l.kt)("a",{parentName:"h4",href:"#"},(0,l.kt)("code",{style:{fontWeight:"normal"}},"Token.",(0,l.kt)("b",null,"ownerships"))),(0,l.kt)(c,{mdxType:"Bullet"}),(0,l.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/ownership"},(0,l.kt)("inlineCode",{parentName:"a"},"[Ownership]"))," ",(0,l.kt)(k,{class:"badge badge--secondary",text:"list",mdxType:"Badge"})," ",(0,l.kt)(k,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,l.kt)("blockquote",null),(0,l.kt)("h4",{id:"code-style-fontweight-normal-tokenbpropertiesbcodetokenproperties-"},(0,l.kt)("a",{parentName:"h4",href:"#"},(0,l.kt)("code",{style:{fontWeight:"normal"}},"Token.",(0,l.kt)("b",null,"properties"))),(0,l.kt)(c,{mdxType:"Bullet"}),(0,l.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/token-properties"},(0,l.kt)("inlineCode",{parentName:"a"},"TokenProperties"))," ",(0,l.kt)(k,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,l.kt)("blockquote",null),(0,l.kt)("h4",{id:"code-style-fontweight-normal-tokenbsupplybcodeint-"},(0,l.kt)("a",{parentName:"h4",href:"#"},(0,l.kt)("code",{style:{fontWeight:"normal"}},"Token.",(0,l.kt)("b",null,"supply"))),(0,l.kt)(c,{mdxType:"Bullet"}),(0,l.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/int"},(0,l.kt)("inlineCode",{parentName:"a"},"Int"))," ",(0,l.kt)(k,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,l.kt)("blockquote",null),(0,l.kt)("h4",{id:"code-style-fontweight-normal-tokenbsymbolbcodestring-"},(0,l.kt)("a",{parentName:"h4",href:"#"},(0,l.kt)("code",{style:{fontWeight:"normal"}},"Token.",(0,l.kt)("b",null,"symbol"))),(0,l.kt)(c,{mdxType:"Bullet"}),(0,l.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/string"},(0,l.kt)("inlineCode",{parentName:"a"},"String"))," ",(0,l.kt)(k,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,l.kt)("blockquote",null),(0,l.kt)("h4",{id:"code-style-fontweight-normal-tokenbtypebcodestring-"},(0,l.kt)("a",{parentName:"h4",href:"#"},(0,l.kt)("code",{style:{fontWeight:"normal"}},"Token.",(0,l.kt)("b",null,"type"))),(0,l.kt)(c,{mdxType:"Bullet"}),(0,l.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/string"},(0,l.kt)("inlineCode",{parentName:"a"},"String"))," ",(0,l.kt)(k,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,l.kt)("blockquote",null),(0,l.kt)("h3",{id:"returned-by"},"Returned by"),(0,l.kt)("p",null,(0,l.kt)("a",{parentName:"p",href:"/build/api/schema/queries/token"},(0,l.kt)("inlineCode",{parentName:"a"},"token"))," ",(0,l.kt)(k,{class:"badge badge--secondary",text:"query",mdxType:"Badge"})))}y.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7045],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>m});var n=a(67294);function o(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function r(e){for(var t=1;t=0||(o[a]=e[a]);return o}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(o[a]=e[a])}return o}var d=n.createContext({}),i=function(e){var t=n.useContext(d),a=t;return e&&(a="function"==typeof e?e(t):r(r({},t),e)),a},c=function(e){var t=i(e.components);return n.createElement(d.Provider,{value:t},e.children)},p="mdxType",k={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},b=n.forwardRef((function(e,t){var a=e.components,o=e.mdxType,l=e.originalType,d=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),p=i(a),b=o,m=p["".concat(d,".").concat(b)]||p[b]||k[b]||l;return a?n.createElement(m,r(r({ref:t},c),{},{components:a})):n.createElement(m,r({ref:t},c))}));function m(e,t){var a=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var l=a.length,r=new Array(l);r[0]=b;var s={};for(var d in t)hasOwnProperty.call(t,d)&&(s[d]=t[d]);s.originalType=e,s[p]="string"==typeof e?e:o,r[1]=s;for(var i=2;i{a.r(t),a.d(t,{Badge:()=>k,Bullet:()=>c,Details:()=>m,SpecifiedBy:()=>p,assets:()=>i,contentTitle:()=>s,default:()=>y,frontMatter:()=>r,metadata:()=>d,toc:()=>b});var n=a(87462),o=a(67294),l=a(3905);a(8209);const r={id:"token",title:"Token",hide_table_of_contents:!1},s=void 0,d={unversionedId:"build/api/schema/objects/token",id:"build/api/schema/objects/token",title:"Token",description:"[token] represents a token metadata.",source:"@site/docs/build/api/schema/objects/token.mdx",sourceDirName:"build/api/schema/objects",slug:"/build/api/schema/objects/token",permalink:"/build/api/schema/objects/token",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"token",title:"Token",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"TokenTransfer",permalink:"/build/api/schema/objects/token-transfer"},next:{title:"TransactionAttestation",permalink:"/build/api/schema/objects/transaction-attestation"}},i={},c=()=>(0,l.kt)(o.Fragment,null,(0,l.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=e=>(0,l.kt)(o.Fragment,null,"Specification",(0,l.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),k=e=>(0,l.kt)(o.Fragment,null,(0,l.kt)("span",{className:e.class},e.text)),b=[{value:"Fields",id:"fields",level:3},{value:'Token.collection[TokenProperties] ',id:"code-style-fontweight-normal-tokenbcollectionbcodetokenproperties--",level:4},{value:'Token.decimalsInt ',id:"code-style-fontweight-normal-tokenbdecimalsbcodeint-",level:4},{value:'Token.genesisAddress ',id:"code-style-fontweight-normal-tokenbgenesisbcodeaddress-",level:4},{value:'Token.idString ',id:"code-style-fontweight-normal-tokenbidbcodestring-",level:4},{value:'Token.nameString ',id:"code-style-fontweight-normal-tokenbnamebcodestring-",level:4},{value:'Token.ownerships[Ownership] ',id:"code-style-fontweight-normal-tokenbownershipsbcodeownership--",level:4},{value:'Token.propertiesTokenProperties ',id:"code-style-fontweight-normal-tokenbpropertiesbcodetokenproperties-",level:4},{value:'Token.supplyInt ',id:"code-style-fontweight-normal-tokenbsupplybcodeint-",level:4},{value:'Token.symbolString ',id:"code-style-fontweight-normal-tokenbsymbolbcodestring-",level:4},{value:'Token.typeString ',id:"code-style-fontweight-normal-tokenbtypebcodestring-",level:4},{value:"Returned by",id:"returned-by",level:3}],m=e=>{let{dataOpen:t,dataClose:a,children:r,startOpen:s=!1}=e;const[d,i]=(0,o.useState)(s);return(0,l.kt)("details",(0,n.Z)({},d?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,l.kt)("summary",{onClick:e=>{e.preventDefault(),i((e=>!e))},style:{listStyle:"none"}},d?t:a),d&&r)},u={Bullet:c,SpecifiedBy:p,Badge:k,toc:b,Details:m},g="wrapper";function y(e){let{components:t,...a}=e;return(0,l.kt)(g,(0,n.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("p",null,"[token]"," represents a token metadata.\nIt includes:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"genesis: Genesis address to the token"),(0,l.kt)("li",{parentName:"ul"},"name: Name of the token"),(0,l.kt)("li",{parentName:"ul"},"symbol: Symbol of the token"),(0,l.kt)("li",{parentName:"ul"},"supply: Supply of the token"),(0,l.kt)("li",{parentName:"ul"},"type: Type of the token"),(0,l.kt)("li",{parentName:"ul"},"decimals: Number of decimals of the token"),(0,l.kt)("li",{parentName:"ul"},"properties: Properties of the token (if any)"),(0,l.kt)("li",{parentName:"ul"},"collection: List of properties for a collection (if any)"),(0,l.kt)("li",{parentName:"ul"},"ownerships: authorization/delegations containing list of secrets and their authorized public keys to proof the ownership"),(0,l.kt)("li",{parentName:"ul"},"id: Unique identification of the token on the chain")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-graphql"},"type Token {\n collection: [TokenProperties]\n decimals: Int\n genesis: Address\n id: String\n name: String\n ownerships: [Ownership]\n properties: TokenProperties\n supply: Int\n symbol: String\n type: String\n}\n")),(0,l.kt)("h3",{id:"fields"},"Fields"),(0,l.kt)("h4",{id:"code-style-fontweight-normal-tokenbcollectionbcodetokenproperties--"},(0,l.kt)("a",{parentName:"h4",href:"#"},(0,l.kt)("code",{style:{fontWeight:"normal"}},"Token.",(0,l.kt)("b",null,"collection"))),(0,l.kt)(c,{mdxType:"Bullet"}),(0,l.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/token-properties"},(0,l.kt)("inlineCode",{parentName:"a"},"[TokenProperties]"))," ",(0,l.kt)(k,{class:"badge badge--secondary",text:"list",mdxType:"Badge"})," ",(0,l.kt)(k,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,l.kt)("blockquote",null),(0,l.kt)("h4",{id:"code-style-fontweight-normal-tokenbdecimalsbcodeint-"},(0,l.kt)("a",{parentName:"h4",href:"#"},(0,l.kt)("code",{style:{fontWeight:"normal"}},"Token.",(0,l.kt)("b",null,"decimals"))),(0,l.kt)(c,{mdxType:"Bullet"}),(0,l.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/int"},(0,l.kt)("inlineCode",{parentName:"a"},"Int"))," ",(0,l.kt)(k,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,l.kt)("blockquote",null),(0,l.kt)("h4",{id:"code-style-fontweight-normal-tokenbgenesisbcodeaddress-"},(0,l.kt)("a",{parentName:"h4",href:"#"},(0,l.kt)("code",{style:{fontWeight:"normal"}},"Token.",(0,l.kt)("b",null,"genesis"))),(0,l.kt)(c,{mdxType:"Bullet"}),(0,l.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/address"},(0,l.kt)("inlineCode",{parentName:"a"},"Address"))," ",(0,l.kt)(k,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,l.kt)("blockquote",null),(0,l.kt)("h4",{id:"code-style-fontweight-normal-tokenbidbcodestring-"},(0,l.kt)("a",{parentName:"h4",href:"#"},(0,l.kt)("code",{style:{fontWeight:"normal"}},"Token.",(0,l.kt)("b",null,"id"))),(0,l.kt)(c,{mdxType:"Bullet"}),(0,l.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/string"},(0,l.kt)("inlineCode",{parentName:"a"},"String"))," ",(0,l.kt)(k,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,l.kt)("blockquote",null),(0,l.kt)("h4",{id:"code-style-fontweight-normal-tokenbnamebcodestring-"},(0,l.kt)("a",{parentName:"h4",href:"#"},(0,l.kt)("code",{style:{fontWeight:"normal"}},"Token.",(0,l.kt)("b",null,"name"))),(0,l.kt)(c,{mdxType:"Bullet"}),(0,l.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/string"},(0,l.kt)("inlineCode",{parentName:"a"},"String"))," ",(0,l.kt)(k,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,l.kt)("blockquote",null),(0,l.kt)("h4",{id:"code-style-fontweight-normal-tokenbownershipsbcodeownership--"},(0,l.kt)("a",{parentName:"h4",href:"#"},(0,l.kt)("code",{style:{fontWeight:"normal"}},"Token.",(0,l.kt)("b",null,"ownerships"))),(0,l.kt)(c,{mdxType:"Bullet"}),(0,l.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/ownership"},(0,l.kt)("inlineCode",{parentName:"a"},"[Ownership]"))," ",(0,l.kt)(k,{class:"badge badge--secondary",text:"list",mdxType:"Badge"})," ",(0,l.kt)(k,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,l.kt)("blockquote",null),(0,l.kt)("h4",{id:"code-style-fontweight-normal-tokenbpropertiesbcodetokenproperties-"},(0,l.kt)("a",{parentName:"h4",href:"#"},(0,l.kt)("code",{style:{fontWeight:"normal"}},"Token.",(0,l.kt)("b",null,"properties"))),(0,l.kt)(c,{mdxType:"Bullet"}),(0,l.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/token-properties"},(0,l.kt)("inlineCode",{parentName:"a"},"TokenProperties"))," ",(0,l.kt)(k,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,l.kt)("blockquote",null),(0,l.kt)("h4",{id:"code-style-fontweight-normal-tokenbsupplybcodeint-"},(0,l.kt)("a",{parentName:"h4",href:"#"},(0,l.kt)("code",{style:{fontWeight:"normal"}},"Token.",(0,l.kt)("b",null,"supply"))),(0,l.kt)(c,{mdxType:"Bullet"}),(0,l.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/int"},(0,l.kt)("inlineCode",{parentName:"a"},"Int"))," ",(0,l.kt)(k,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,l.kt)("blockquote",null),(0,l.kt)("h4",{id:"code-style-fontweight-normal-tokenbsymbolbcodestring-"},(0,l.kt)("a",{parentName:"h4",href:"#"},(0,l.kt)("code",{style:{fontWeight:"normal"}},"Token.",(0,l.kt)("b",null,"symbol"))),(0,l.kt)(c,{mdxType:"Bullet"}),(0,l.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/string"},(0,l.kt)("inlineCode",{parentName:"a"},"String"))," ",(0,l.kt)(k,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,l.kt)("blockquote",null),(0,l.kt)("h4",{id:"code-style-fontweight-normal-tokenbtypebcodestring-"},(0,l.kt)("a",{parentName:"h4",href:"#"},(0,l.kt)("code",{style:{fontWeight:"normal"}},"Token.",(0,l.kt)("b",null,"type"))),(0,l.kt)(c,{mdxType:"Bullet"}),(0,l.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/string"},(0,l.kt)("inlineCode",{parentName:"a"},"String"))," ",(0,l.kt)(k,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,l.kt)("blockquote",null),(0,l.kt)("h3",{id:"returned-by"},"Returned by"),(0,l.kt)("p",null,(0,l.kt)("a",{parentName:"p",href:"/build/api/schema/queries/token"},(0,l.kt)("inlineCode",{parentName:"a"},"token"))," ",(0,l.kt)(k,{class:"badge badge--secondary",text:"query",mdxType:"Badge"})))}y.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file diff --git a/assets/js/6aade8bf.c26e6f4b.js b/assets/js/6aade8bf.38f4fb8f.js similarity index 97% rename from assets/js/6aade8bf.c26e6f4b.js rename to assets/js/6aade8bf.38f4fb8f.js index 1ac96e22d..14d86bcfb 100644 --- a/assets/js/6aade8bf.c26e6f4b.js +++ b/assets/js/6aade8bf.38f4fb8f.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6518],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>h});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function l(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var c=a.createContext({}),p=function(e){var t=a.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},u=function(e){var t=p(e.components);return a.createElement(c.Provider,{value:t},e.children)},m="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,c=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),m=p(r),d=n,h=m["".concat(c,".").concat(d)]||m[d]||s[d]||o;return r?a.createElement(h,l(l({ref:t},u),{},{components:r})):a.createElement(h,l({ref:t},u))}));function h(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,l=new Array(o);l[0]=d;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[m]="string"==typeof e?e:n,l[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>s,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var a=r(87462),n=(r(67294),r(3905));r(8209);const o={id:"memory-table",title:"OracleChain Memory Tables",sidebar_label:"Memory database"},l=void 0,i={unversionedId:"build/core/oracle-chain/memory-table",id:"build/core/oracle-chain/memory-table",title:"OracleChain Memory Tables",description:"OracleChain component provides scheduler and services to maintain transaction chain and real world data integration.",source:"@site/docs/build/core/oracle-chain/mem_table.md",sourceDirName:"build/core/oracle-chain",slug:"/build/core/oracle-chain/memory-table",permalink:"/build/core/oracle-chain/memory-table",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"memory-table",title:"OracleChain Memory Tables",sidebar_label:"Memory database"},sidebar:"docs",previous:{title:"OracleChain",permalink:"/build/core/oracle-chain/"},next:{title:"Scheduler",permalink:"/build/core/oracle-chain/scheduler"}},c={},p=[],u={toc:p},m="wrapper";function s(e){let{components:t,...r}=e;return(0,n.kt)(m,(0,a.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"OracleChain component provides ",(0,n.kt)("a",{parentName:"p",href:"/build/core/oracle-chain/scheduler"},"scheduler")," and ",(0,n.kt)("a",{parentName:"p",href:"/build/core/oracle-chain/service"},"services")," to maintain transaction chain and real world data integration."),(0,n.kt)("p",null,"But we need a way to access quickly this information for better computation latency."),(0,n.kt)("p",null,"For this purpose, the OracleChain service maintains a memory table using ETS to hold the information according to their date."),(0,n.kt)("p",null,"It represented in that way:"),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:null},"Timestamp"),(0,n.kt)("th",{parentName:"tr",align:null},"Service"),(0,n.kt)("th",{parentName:"tr",align:null},"Data")))),(0,n.kt)("p",null,"For example for the UCO service we may have:"),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:null},"Timestamp"),(0,n.kt)("th",{parentName:"tr",align:null},"Service"),(0,n.kt)("th",{parentName:"tr",align:null},"Data"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},"1622801400"),(0,n.kt)("td",{parentName:"tr",align:null},"UCO"),(0,n.kt)("td",{parentName:"tr",align:null},'%{ "eur" => 0.02 }')))),(0,n.kt)("p",null,"The table is loading after each oracle or oracle summary transaction and during the bootstrap for faster computation."),(0,n.kt)("admonition",{type:"info"},(0,n.kt)("p",{parentName:"admonition"},"The transaction's fee algorithm is using this cached information to provide this computation quickly")))}s.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6518],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>h});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function l(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var c=a.createContext({}),p=function(e){var t=a.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},u=function(e){var t=p(e.components);return a.createElement(c.Provider,{value:t},e.children)},m="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,c=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),m=p(r),d=n,h=m["".concat(c,".").concat(d)]||m[d]||s[d]||o;return r?a.createElement(h,l(l({ref:t},u),{},{components:r})):a.createElement(h,l({ref:t},u))}));function h(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,l=new Array(o);l[0]=d;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[m]="string"==typeof e?e:n,l[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>s,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var a=r(87462),n=(r(67294),r(3905));r(8209);const o={id:"memory-table",title:"OracleChain Memory Tables",sidebar_label:"Memory database"},l=void 0,i={unversionedId:"build/core/oracle-chain/memory-table",id:"build/core/oracle-chain/memory-table",title:"OracleChain Memory Tables",description:"OracleChain component provides scheduler and services to maintain transaction chain and real world data integration.",source:"@site/docs/build/core/oracle-chain/mem_table.md",sourceDirName:"build/core/oracle-chain",slug:"/build/core/oracle-chain/memory-table",permalink:"/build/core/oracle-chain/memory-table",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"memory-table",title:"OracleChain Memory Tables",sidebar_label:"Memory database"},sidebar:"docs",previous:{title:"OracleChain",permalink:"/build/core/oracle-chain/"},next:{title:"Scheduler",permalink:"/build/core/oracle-chain/scheduler"}},c={},p=[],u={toc:p},m="wrapper";function s(e){let{components:t,...r}=e;return(0,n.kt)(m,(0,a.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"OracleChain component provides ",(0,n.kt)("a",{parentName:"p",href:"/build/core/oracle-chain/scheduler"},"scheduler")," and ",(0,n.kt)("a",{parentName:"p",href:"/build/core/oracle-chain/service"},"services")," to maintain transaction chain and real world data integration."),(0,n.kt)("p",null,"But we need a way to access quickly this information for better computation latency."),(0,n.kt)("p",null,"For this purpose, the OracleChain service maintains a memory table using ETS to hold the information according to their date."),(0,n.kt)("p",null,"It represented in that way:"),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:null},"Timestamp"),(0,n.kt)("th",{parentName:"tr",align:null},"Service"),(0,n.kt)("th",{parentName:"tr",align:null},"Data")))),(0,n.kt)("p",null,"For example for the UCO service we may have:"),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:null},"Timestamp"),(0,n.kt)("th",{parentName:"tr",align:null},"Service"),(0,n.kt)("th",{parentName:"tr",align:null},"Data"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},"1622801400"),(0,n.kt)("td",{parentName:"tr",align:null},"UCO"),(0,n.kt)("td",{parentName:"tr",align:null},'%{ "eur" => 0.02 }')))),(0,n.kt)("p",null,"The table is loading after each oracle or oracle summary transaction and during the bootstrap for faster computation."),(0,n.kt)("admonition",{type:"info"},(0,n.kt)("p",{parentName:"admonition"},"The transaction's fee algorithm is using this cached information to provide this computation quickly")))}s.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file diff --git a/assets/js/6efc9e6d.9c42a23c.js b/assets/js/6efc9e6d.c4984ba5.js similarity index 97% rename from assets/js/6efc9e6d.9c42a23c.js rename to assets/js/6efc9e6d.c4984ba5.js index 40b71c735..b7ec8c91d 100644 --- a/assets/js/6efc9e6d.9c42a23c.js +++ b/assets/js/6efc9e6d.c4984ba5.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[844],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>b});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var o=r.createContext({}),s=function(e){var t=r.useContext(o),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},p=function(e){var t=s(e.components);return r.createElement(o.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,l=e.originalType,o=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),d=s(a),m=n,b=d["".concat(o,".").concat(m)]||d[m]||u[m]||l;return a?r.createElement(b,i(i({ref:t},p),{},{components:a})):r.createElement(b,i({ref:t},p))}));function b(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=a.length,i=new Array(l);i[0]=m;var c={};for(var o in t)hasOwnProperty.call(t,o)&&(c[o]=t[o]);c.originalType=e,c[d]="string"==typeof e?e:n,i[1]=c;for(var s=2;s{a.r(t),a.d(t,{Badge:()=>u,Bullet:()=>p,Details:()=>b,SpecifiedBy:()=>d,assets:()=>s,contentTitle:()=>c,default:()=>k,frontMatter:()=>i,metadata:()=>o,toc:()=>m});var r=a(87462),n=a(67294),l=a(3905);a(8209);const i={id:"public-key",title:"PublicKey",hide_table_of_contents:!1},c=void 0,o={unversionedId:"build/api/schema/scalars/public-key",id:"build/api/schema/scalars/public-key",title:"PublicKey",description:"The [PublicKey] scalar type represents a public key.",source:"@site/docs/build/api/schema/scalars/public-key.mdx",sourceDirName:"build/api/schema/scalars",slug:"/build/api/schema/scalars/public-key",permalink:"/build/api/schema/scalars/public-key",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"public-key",title:"PublicKey",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"PosInteger",permalink:"/build/api/schema/scalars/pos-integer"},next:{title:"RecipientArgs",permalink:"/build/api/schema/scalars/recipient-args"}},s={},p=()=>(0,l.kt)(n.Fragment,null,(0,l.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),d=e=>(0,l.kt)(n.Fragment,null,"Specification",(0,l.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,l.kt)(n.Fragment,null,(0,l.kt)("span",{className:e.class},e.text)),m=[{value:"Member of",id:"member-of",level:3}],b=e=>{let{dataOpen:t,dataClose:a,children:i,startOpen:c=!1}=e;const[o,s]=(0,n.useState)(c);return(0,l.kt)("details",(0,r.Z)({},o?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,l.kt)("summary",{onClick:e=>{e.preventDefault(),s((e=>!e))},style:{listStyle:"none"}},o?t:a),o&&i)},y={Bullet:p,SpecifiedBy:d,Badge:u,toc:m,Details:b},f="wrapper";function k(e){let{components:t,...a}=e;return(0,l.kt)(f,(0,r.Z)({},y,a,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("p",null,"The ","[PublicKey]"," scalar type represents a public key.\nThe PublicKey appears in a JSON response as Base16 formatted string. The parsed public key will\nbe converted to a binary and any invalid address with an invalid algorithm or invalid size will be rejected"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-graphql"},"scalar PublicKey\n")),(0,l.kt)("h3",{id:"member-of"},"Member of"),(0,l.kt)("p",null,(0,l.kt)("a",{parentName:"p",href:"/build/api/schema/objects/authorized-key"},(0,l.kt)("inlineCode",{parentName:"a"},"AuthorizedKey"))," ",(0,l.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,l.kt)(p,{mdxType:"Bullet"}),(0,l.kt)("a",{parentName:"p",href:"/build/api/schema/objects/cross-validation-stamp"},(0,l.kt)("inlineCode",{parentName:"a"},"CrossValidationStamp"))," ",(0,l.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,l.kt)(p,{mdxType:"Bullet"}),(0,l.kt)("a",{parentName:"p",href:"/build/api/schema/objects/node"},(0,l.kt)("inlineCode",{parentName:"a"},"Node"))," ",(0,l.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,l.kt)(p,{mdxType:"Bullet"}),(0,l.kt)("a",{parentName:"p",href:"/build/api/schema/objects/shared-secrets"},(0,l.kt)("inlineCode",{parentName:"a"},"SharedSecrets"))," ",(0,l.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,l.kt)(p,{mdxType:"Bullet"}),(0,l.kt)("a",{parentName:"p",href:"/build/api/schema/objects/transaction"},(0,l.kt)("inlineCode",{parentName:"a"},"Transaction"))," ",(0,l.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,l.kt)(p,{mdxType:"Bullet"}),(0,l.kt)("a",{parentName:"p",href:"/build/api/schema/objects/validation-stamp"},(0,l.kt)("inlineCode",{parentName:"a"},"ValidationStamp"))," ",(0,l.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}k.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[844],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>b});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var o=r.createContext({}),s=function(e){var t=r.useContext(o),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},p=function(e){var t=s(e.components);return r.createElement(o.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,l=e.originalType,o=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),d=s(a),m=n,b=d["".concat(o,".").concat(m)]||d[m]||u[m]||l;return a?r.createElement(b,i(i({ref:t},p),{},{components:a})):r.createElement(b,i({ref:t},p))}));function b(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=a.length,i=new Array(l);i[0]=m;var c={};for(var o in t)hasOwnProperty.call(t,o)&&(c[o]=t[o]);c.originalType=e,c[d]="string"==typeof e?e:n,i[1]=c;for(var s=2;s{a.r(t),a.d(t,{Badge:()=>u,Bullet:()=>p,Details:()=>b,SpecifiedBy:()=>d,assets:()=>s,contentTitle:()=>c,default:()=>k,frontMatter:()=>i,metadata:()=>o,toc:()=>m});var r=a(87462),n=a(67294),l=a(3905);a(8209);const i={id:"public-key",title:"PublicKey",hide_table_of_contents:!1},c=void 0,o={unversionedId:"build/api/schema/scalars/public-key",id:"build/api/schema/scalars/public-key",title:"PublicKey",description:"The [PublicKey] scalar type represents a public key.",source:"@site/docs/build/api/schema/scalars/public-key.mdx",sourceDirName:"build/api/schema/scalars",slug:"/build/api/schema/scalars/public-key",permalink:"/build/api/schema/scalars/public-key",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"public-key",title:"PublicKey",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"PosInteger",permalink:"/build/api/schema/scalars/pos-integer"},next:{title:"RecipientArgs",permalink:"/build/api/schema/scalars/recipient-args"}},s={},p=()=>(0,l.kt)(n.Fragment,null,(0,l.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),d=e=>(0,l.kt)(n.Fragment,null,"Specification",(0,l.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,l.kt)(n.Fragment,null,(0,l.kt)("span",{className:e.class},e.text)),m=[{value:"Member of",id:"member-of",level:3}],b=e=>{let{dataOpen:t,dataClose:a,children:i,startOpen:c=!1}=e;const[o,s]=(0,n.useState)(c);return(0,l.kt)("details",(0,r.Z)({},o?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,l.kt)("summary",{onClick:e=>{e.preventDefault(),s((e=>!e))},style:{listStyle:"none"}},o?t:a),o&&i)},y={Bullet:p,SpecifiedBy:d,Badge:u,toc:m,Details:b},f="wrapper";function k(e){let{components:t,...a}=e;return(0,l.kt)(f,(0,r.Z)({},y,a,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("p",null,"The ","[PublicKey]"," scalar type represents a public key.\nThe PublicKey appears in a JSON response as Base16 formatted string. The parsed public key will\nbe converted to a binary and any invalid address with an invalid algorithm or invalid size will be rejected"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-graphql"},"scalar PublicKey\n")),(0,l.kt)("h3",{id:"member-of"},"Member of"),(0,l.kt)("p",null,(0,l.kt)("a",{parentName:"p",href:"/build/api/schema/objects/authorized-key"},(0,l.kt)("inlineCode",{parentName:"a"},"AuthorizedKey"))," ",(0,l.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,l.kt)(p,{mdxType:"Bullet"}),(0,l.kt)("a",{parentName:"p",href:"/build/api/schema/objects/cross-validation-stamp"},(0,l.kt)("inlineCode",{parentName:"a"},"CrossValidationStamp"))," ",(0,l.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,l.kt)(p,{mdxType:"Bullet"}),(0,l.kt)("a",{parentName:"p",href:"/build/api/schema/objects/node"},(0,l.kt)("inlineCode",{parentName:"a"},"Node"))," ",(0,l.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,l.kt)(p,{mdxType:"Bullet"}),(0,l.kt)("a",{parentName:"p",href:"/build/api/schema/objects/shared-secrets"},(0,l.kt)("inlineCode",{parentName:"a"},"SharedSecrets"))," ",(0,l.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,l.kt)(p,{mdxType:"Bullet"}),(0,l.kt)("a",{parentName:"p",href:"/build/api/schema/objects/transaction"},(0,l.kt)("inlineCode",{parentName:"a"},"Transaction"))," ",(0,l.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,l.kt)(p,{mdxType:"Bullet"}),(0,l.kt)("a",{parentName:"p",href:"/build/api/schema/objects/validation-stamp"},(0,l.kt)("inlineCode",{parentName:"a"},"ValidationStamp"))," ",(0,l.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}k.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file diff --git a/assets/js/6fa4dae1.f20fd867.js b/assets/js/6fa4dae1.878847e3.js similarity index 99% rename from assets/js/6fa4dae1.f20fd867.js rename to assets/js/6fa4dae1.878847e3.js index 19b6fbdea..62a343f3a 100644 --- a/assets/js/6fa4dae1.f20fd867.js +++ b/assets/js/6fa4dae1.878847e3.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9255],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>f});var a=n(67294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l=a.createContext({}),s=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},d=function(e){var t=s(e.components);return a.createElement(l.Provider,{value:t},e.children)},p="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var n=e.components,i=e.mdxType,r=e.originalType,l=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),p=s(n),u=i,f=p["".concat(l,".").concat(u)]||p[u]||h[u]||r;return n?a.createElement(f,o(o({ref:t},d),{},{components:n})):a.createElement(f,o({ref:t},d))}));function f(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=n.length,o=new Array(r);o[0]=u;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[p]="string"==typeof e?e:i,o[1]=c;for(var s=2;s{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>c,toc:()=>s});var a=n(87462),i=(n(67294),n(3905));n(8209);const r={id:"transaction-validation",title:"Pending transaction validation"},o=void 0,c={unversionedId:"build/core/mining/transaction-validation",id:"build/core/mining/transaction-validation",title:"Pending transaction validation",description:"When a transaction is under validation a process is started to perform the ARCH consensus workflow.",source:"@site/docs/build/core/mining/pending-transaction-validation.md",sourceDirName:"build/core/mining",slug:"/build/core/mining/transaction-validation",permalink:"/build/core/mining/transaction-validation",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"transaction-validation",title:"Pending transaction validation"},sidebar:"docs",previous:{title:"Mining",permalink:"/build/core/mining/"},next:{title:"Proof of Work algorithm",permalink:"/build/core/mining/proof-of-work"}},l={},s=[{value:"Smart contract verification",id:"smart-contract-verification",level:2},{value:"Transaction type verification",id:"transaction-type-verification",level:2},{value:"Node transaction verification",id:"node-transaction-verification",level:3},{value:"Node shared secrets transaction verification",id:"node-shared-secrets-transaction-verification",level:3},{value:"Token transaction verification",id:"token-transaction-verification",level:3},{value:"Oracle transaction verification",id:"oracle-transaction-verification",level:3},{value:"OracleSummary transaction verification",id:"oraclesummary-transaction-verification",level:3},{value:"Code proposal transaction verification",id:"code-proposal-transaction-verification",level:3},{value:"Code approval transaction verification",id:"code-approval-transaction-verification",level:3}],d={toc:s},p="wrapper";function h(e){let{components:t,...n}=e;return(0,i.kt)(p,(0,a.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"When a transaction is under validation a process is started to perform the ARCH consensus workflow."),(0,i.kt)("p",null,"At the beginning of this workflow, a prior validation is done to detect if the transaction is errornous according of several implementations based on the type of the transactions and other criterias."),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Check of the previous signature"),(0,i.kt)("li",{parentName:"ol"},"Check if there is smart contract, of its validity"),(0,i.kt)("li",{parentName:"ol"},"Check the content size does not exceed the threshold defined in the configuration"),(0,i.kt)("li",{parentName:"ol"},"Provide verification based on the transaction type")),(0,i.kt)("h2",{id:"smart-contract-verification"},"Smart contract verification"),(0,i.kt)("p",null,"If a transaction contains smart contract, it needs to verify certains things to be sure the smart contract is valid and the nodes will be able to interpret the contract, for example:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Parse the contract and determines its validity"),(0,i.kt)("li",{parentName:"ul"},"If an ownership and its secret have been encoded for the node shared storage nonce public key, so they will be able create new transaction on the chain")),(0,i.kt)("h2",{id:"transaction-type-verification"},"Transaction type verification"),(0,i.kt)("h3",{id:"node-transaction-verification"},"Node transaction verification"),(0,i.kt)("p",null,'Before to join the network, node must submit a transaction with a type "node".\nThe following checks are performed:'),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Decoding of the transaction's content"),(0,i.kt)("li",{parentName:"ul"},"Assert the origin key is authorized along with the certification. (See ",(0,i.kt)("a",{parentName:"li",href:"/learn/cryptography/hardware-root-of-trust"},"Hardware Root of Trust"),")"),(0,i.kt)("li",{parentName:"ul"},"Check if there are not already existing nodes with the same ip, port and public key")),(0,i.kt)("h3",{id:"node-shared-secrets-transaction-verification"},"Node shared secrets transaction verification"),(0,i.kt)("p",null,"Periodically the nodes submit a renewal of node shared secrets through a transaction.\nThe following checks are performed:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Decoding of the transactio's content"),(0,i.kt)("li",{parentName:"ul"},"Check is the new authorized node proposed are available")),(0,i.kt)("h3",{id:"token-transaction-verification"},"Token transaction verification"),(0,i.kt)("p",null,'To create a new asset (Token), a transaction with a type "token" is submitted to the network.'),(0,i.kt)("p",null,"The nodes asserts the content of the Token transactions respects the formatting to be able for the node to interpret it and mint tokens."),(0,i.kt)("h3",{id:"oracle-transaction-verification"},"Oracle transaction verification"),(0,i.kt)("p",null,"When the OracleChain polled some external data and build a transaction to propose the new changes, the nodes will assert the content from the services data are correct regarding the service SLA. (See ",(0,i.kt)("a",{parentName:"p",href:"/build/core/oracle-chain/service"},"OracleChain Service"),")"),(0,i.kt)("h3",{id:"oraclesummary-transaction-verification"},"OracleSummary transaction verification"),(0,i.kt)("p",null,"Periodically, after a cycle/epoch, the nodes submit a transaction which summarizes the entire oracle chain data for this epoch.\nThen the nodes have to assert the changes through:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Fetching the entire oracle chain for this epoch"),(0,i.kt)("li",{parentName:"ul"},"Assert the aggregated content in the oracle chain summary matches the data from all the transaction in the oracle chain ")),(0,i.kt)("h3",{id:"code-proposal-transaction-verification"},"Code proposal transaction verification"),(0,i.kt)("p",null,"When a new upgrade of the network is proposed, a transaction embeds the changes and is sent to the network. (See: On-Chain Governance "),(0,i.kt)("p",null,"The following checks are performed:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Decoding the proposal changes (like Git patch)"),(0,i.kt)("li",{parentName:"ul"},"Assert the validity of the changes: format, conformity with the latest Git commit")),(0,i.kt)("h3",{id:"code-approval-transaction-verification"},"Code approval transaction verification"),(0,i.kt)("p",null,"When an updated have been proposed, technical commitee member can vote for a proposal, then a transaction is sent. (See: On-Chain Governance)"),(0,i.kt)("p",null,"The following checks are performed:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Check if the approver is a member of the technical commitee,"),(0,i.kt)("li",{parentName:"ul"},"Check if the proposal exists"),(0,i.kt)("li",{parentName:"ul"},"Check if the proposal hasn't been signed by the approver earlier")))}h.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9255],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>f});var a=n(67294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l=a.createContext({}),s=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},d=function(e){var t=s(e.components);return a.createElement(l.Provider,{value:t},e.children)},p="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var n=e.components,i=e.mdxType,r=e.originalType,l=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),p=s(n),u=i,f=p["".concat(l,".").concat(u)]||p[u]||h[u]||r;return n?a.createElement(f,o(o({ref:t},d),{},{components:n})):a.createElement(f,o({ref:t},d))}));function f(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=n.length,o=new Array(r);o[0]=u;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[p]="string"==typeof e?e:i,o[1]=c;for(var s=2;s{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>c,toc:()=>s});var a=n(87462),i=(n(67294),n(3905));n(8209);const r={id:"transaction-validation",title:"Pending transaction validation"},o=void 0,c={unversionedId:"build/core/mining/transaction-validation",id:"build/core/mining/transaction-validation",title:"Pending transaction validation",description:"When a transaction is under validation a process is started to perform the ARCH consensus workflow.",source:"@site/docs/build/core/mining/pending-transaction-validation.md",sourceDirName:"build/core/mining",slug:"/build/core/mining/transaction-validation",permalink:"/build/core/mining/transaction-validation",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"transaction-validation",title:"Pending transaction validation"},sidebar:"docs",previous:{title:"Mining",permalink:"/build/core/mining/"},next:{title:"Proof of Work algorithm",permalink:"/build/core/mining/proof-of-work"}},l={},s=[{value:"Smart contract verification",id:"smart-contract-verification",level:2},{value:"Transaction type verification",id:"transaction-type-verification",level:2},{value:"Node transaction verification",id:"node-transaction-verification",level:3},{value:"Node shared secrets transaction verification",id:"node-shared-secrets-transaction-verification",level:3},{value:"Token transaction verification",id:"token-transaction-verification",level:3},{value:"Oracle transaction verification",id:"oracle-transaction-verification",level:3},{value:"OracleSummary transaction verification",id:"oraclesummary-transaction-verification",level:3},{value:"Code proposal transaction verification",id:"code-proposal-transaction-verification",level:3},{value:"Code approval transaction verification",id:"code-approval-transaction-verification",level:3}],d={toc:s},p="wrapper";function h(e){let{components:t,...n}=e;return(0,i.kt)(p,(0,a.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"When a transaction is under validation a process is started to perform the ARCH consensus workflow."),(0,i.kt)("p",null,"At the beginning of this workflow, a prior validation is done to detect if the transaction is errornous according of several implementations based on the type of the transactions and other criterias."),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Check of the previous signature"),(0,i.kt)("li",{parentName:"ol"},"Check if there is smart contract, of its validity"),(0,i.kt)("li",{parentName:"ol"},"Check the content size does not exceed the threshold defined in the configuration"),(0,i.kt)("li",{parentName:"ol"},"Provide verification based on the transaction type")),(0,i.kt)("h2",{id:"smart-contract-verification"},"Smart contract verification"),(0,i.kt)("p",null,"If a transaction contains smart contract, it needs to verify certains things to be sure the smart contract is valid and the nodes will be able to interpret the contract, for example:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Parse the contract and determines its validity"),(0,i.kt)("li",{parentName:"ul"},"If an ownership and its secret have been encoded for the node shared storage nonce public key, so they will be able create new transaction on the chain")),(0,i.kt)("h2",{id:"transaction-type-verification"},"Transaction type verification"),(0,i.kt)("h3",{id:"node-transaction-verification"},"Node transaction verification"),(0,i.kt)("p",null,'Before to join the network, node must submit a transaction with a type "node".\nThe following checks are performed:'),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Decoding of the transaction's content"),(0,i.kt)("li",{parentName:"ul"},"Assert the origin key is authorized along with the certification. (See ",(0,i.kt)("a",{parentName:"li",href:"/learn/cryptography/hardware-root-of-trust"},"Hardware Root of Trust"),")"),(0,i.kt)("li",{parentName:"ul"},"Check if there are not already existing nodes with the same ip, port and public key")),(0,i.kt)("h3",{id:"node-shared-secrets-transaction-verification"},"Node shared secrets transaction verification"),(0,i.kt)("p",null,"Periodically the nodes submit a renewal of node shared secrets through a transaction.\nThe following checks are performed:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Decoding of the transactio's content"),(0,i.kt)("li",{parentName:"ul"},"Check is the new authorized node proposed are available")),(0,i.kt)("h3",{id:"token-transaction-verification"},"Token transaction verification"),(0,i.kt)("p",null,'To create a new asset (Token), a transaction with a type "token" is submitted to the network.'),(0,i.kt)("p",null,"The nodes asserts the content of the Token transactions respects the formatting to be able for the node to interpret it and mint tokens."),(0,i.kt)("h3",{id:"oracle-transaction-verification"},"Oracle transaction verification"),(0,i.kt)("p",null,"When the OracleChain polled some external data and build a transaction to propose the new changes, the nodes will assert the content from the services data are correct regarding the service SLA. (See ",(0,i.kt)("a",{parentName:"p",href:"/build/core/oracle-chain/service"},"OracleChain Service"),")"),(0,i.kt)("h3",{id:"oraclesummary-transaction-verification"},"OracleSummary transaction verification"),(0,i.kt)("p",null,"Periodically, after a cycle/epoch, the nodes submit a transaction which summarizes the entire oracle chain data for this epoch.\nThen the nodes have to assert the changes through:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Fetching the entire oracle chain for this epoch"),(0,i.kt)("li",{parentName:"ul"},"Assert the aggregated content in the oracle chain summary matches the data from all the transaction in the oracle chain ")),(0,i.kt)("h3",{id:"code-proposal-transaction-verification"},"Code proposal transaction verification"),(0,i.kt)("p",null,"When a new upgrade of the network is proposed, a transaction embeds the changes and is sent to the network. (See: On-Chain Governance "),(0,i.kt)("p",null,"The following checks are performed:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Decoding the proposal changes (like Git patch)"),(0,i.kt)("li",{parentName:"ul"},"Assert the validity of the changes: format, conformity with the latest Git commit")),(0,i.kt)("h3",{id:"code-approval-transaction-verification"},"Code approval transaction verification"),(0,i.kt)("p",null,"When an updated have been proposed, technical commitee member can vote for a proposal, then a transaction is sent. (See: On-Chain Governance)"),(0,i.kt)("p",null,"The following checks are performed:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Check if the approver is a member of the technical commitee,"),(0,i.kt)("li",{parentName:"ul"},"Check if the proposal exists"),(0,i.kt)("li",{parentName:"ul"},"Check if the proposal hasn't been signed by the approver earlier")))}h.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/70d0ac84.f87d7e46.js b/assets/js/70d0ac84.93b364bc.js similarity index 98% rename from assets/js/70d0ac84.f87d7e46.js rename to assets/js/70d0ac84.93b364bc.js index 23927619c..11742a142 100644 --- a/assets/js/70d0ac84.f87d7e46.js +++ b/assets/js/70d0ac84.93b364bc.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8574],{3905:(t,e,n)=>{n.d(e,{Zo:()=>u,kt:()=>f});var a=n(67294);function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function o(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,a)}return n}function s(t){for(var e=1;e=0||(r[n]=t[n]);return r}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}var c=a.createContext({}),l=function(t){var e=a.useContext(c),n=e;return t&&(n="function"==typeof t?t(e):s(s({},e),t)),n},u=function(t){var e=l(t.components);return a.createElement(c.Provider,{value:e},t.children)},p="mdxType",d={inlineCode:"code",wrapper:function(t){var e=t.children;return a.createElement(a.Fragment,{},e)}},m=a.forwardRef((function(t,e){var n=t.components,r=t.mdxType,o=t.originalType,c=t.parentName,u=i(t,["components","mdxType","originalType","parentName"]),p=l(n),m=r,f=p["".concat(c,".").concat(m)]||p[m]||d[m]||o;return n?a.createElement(f,s(s({ref:e},u),{},{components:n})):a.createElement(f,s({ref:e},u))}));function f(t,e){var n=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var o=n.length,s=new Array(o);s[0]=m;var i={};for(var c in e)hasOwnProperty.call(e,c)&&(i[c]=e[c]);i.originalType=t,i[p]="string"==typeof t?t:r,s[1]=i;for(var l=2;l{n.r(e),n.d(e,{assets:()=>c,contentTitle:()=>s,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>l});var a=n(87462),r=(n(67294),n(3905));n(8209);const o={id:"state",title:"Smart Contracts - State",sidebar_label:"State",sidebar_position:3},s=void 0,i={unversionedId:"build/smart-contracts/state",id:"build/smart-contracts/state",title:"Smart Contracts - State",description:"A Smart Contract's state is persisted as an UTXO (unspent output) of the resulting transaction. Because of this, any state modification will result in a new transaction on the Smart Contract's transaction chain.",source:"@site/docs/build/smart-contracts/state.md",sourceDirName:"build/smart-contracts",slug:"/build/smart-contracts/state",permalink:"/build/smart-contracts/state",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",sidebarPosition:3,frontMatter:{id:"state",title:"Smart Contracts - State",sidebar_label:"State",sidebar_position:3},sidebar:"docs",previous:{title:"Language",permalink:"/build/smart-contracts/language/legacy/language"},next:{title:"Fees",permalink:"/build/smart-contracts/fees"}},c={},l=[],u={toc:l},p="wrapper";function d(t){let{components:e,...n}=t;return(0,r.kt)(p,(0,a.Z)({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"A Smart Contract's state is persisted as an UTXO (unspent output) of the resulting transaction. Because of this, any state modification will result in a new transaction on the Smart Contract's transaction chain."),(0,r.kt)("p",null,"A state is a map with string as keys. You cannot access that map directly, instead, you have to use the module ",(0,r.kt)("a",{parentName:"p",href:"/build/smart-contracts/language/library/state"},"State")," that provides the functions to read and write the state."),(0,r.kt)("p",null,"When a contract is deployed, ",(0,r.kt)("strong",{parentName:"p"},"it cannot have a state"),". There is no initial state. So it's always good to deal with this case by using ",(0,r.kt)("a",{parentName:"p",href:"/build/smart-contracts/language/library/state#get2"},"State.get/2")," where you provide a default value. Here's an example to give you an idea:"),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},"Counter example")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},'@version 1\n\ncondition triggered_by: transaction, as: []\nactions triggered_by: transaction do\n # Retrieve the count from previous contract\'s transaction or default to 0\n count = State.get("count", 0)\n\n # Increment the count\n new_count = count + 1\n\n # Write the new value in the state\n State.set("count", new_count)\nend\n')))}d.isMDXComponent=!0},8209:(t,e,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8574],{3905:(t,e,n)=>{n.d(e,{Zo:()=>u,kt:()=>f});var a=n(67294);function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function o(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,a)}return n}function s(t){for(var e=1;e=0||(r[n]=t[n]);return r}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}var c=a.createContext({}),l=function(t){var e=a.useContext(c),n=e;return t&&(n="function"==typeof t?t(e):s(s({},e),t)),n},u=function(t){var e=l(t.components);return a.createElement(c.Provider,{value:e},t.children)},p="mdxType",d={inlineCode:"code",wrapper:function(t){var e=t.children;return a.createElement(a.Fragment,{},e)}},m=a.forwardRef((function(t,e){var n=t.components,r=t.mdxType,o=t.originalType,c=t.parentName,u=i(t,["components","mdxType","originalType","parentName"]),p=l(n),m=r,f=p["".concat(c,".").concat(m)]||p[m]||d[m]||o;return n?a.createElement(f,s(s({ref:e},u),{},{components:n})):a.createElement(f,s({ref:e},u))}));function f(t,e){var n=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var o=n.length,s=new Array(o);s[0]=m;var i={};for(var c in e)hasOwnProperty.call(e,c)&&(i[c]=e[c]);i.originalType=t,i[p]="string"==typeof t?t:r,s[1]=i;for(var l=2;l{n.r(e),n.d(e,{assets:()=>c,contentTitle:()=>s,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>l});var a=n(87462),r=(n(67294),n(3905));n(8209);const o={id:"state",title:"Smart Contracts - State",sidebar_label:"State",sidebar_position:3},s=void 0,i={unversionedId:"build/smart-contracts/state",id:"build/smart-contracts/state",title:"Smart Contracts - State",description:"A Smart Contract's state is persisted as an UTXO (unspent output) of the resulting transaction. Because of this, any state modification will result in a new transaction on the Smart Contract's transaction chain.",source:"@site/docs/build/smart-contracts/state.md",sourceDirName:"build/smart-contracts",slug:"/build/smart-contracts/state",permalink:"/build/smart-contracts/state",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",sidebarPosition:3,frontMatter:{id:"state",title:"Smart Contracts - State",sidebar_label:"State",sidebar_position:3},sidebar:"docs",previous:{title:"Language",permalink:"/build/smart-contracts/language/legacy/language"},next:{title:"Fees",permalink:"/build/smart-contracts/fees"}},c={},l=[],u={toc:l},p="wrapper";function d(t){let{components:e,...n}=t;return(0,r.kt)(p,(0,a.Z)({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"A Smart Contract's state is persisted as an UTXO (unspent output) of the resulting transaction. Because of this, any state modification will result in a new transaction on the Smart Contract's transaction chain."),(0,r.kt)("p",null,"A state is a map with string as keys. You cannot access that map directly, instead, you have to use the module ",(0,r.kt)("a",{parentName:"p",href:"/build/smart-contracts/language/library/state"},"State")," that provides the functions to read and write the state."),(0,r.kt)("p",null,"When a contract is deployed, ",(0,r.kt)("strong",{parentName:"p"},"it cannot have a state"),". There is no initial state. So it's always good to deal with this case by using ",(0,r.kt)("a",{parentName:"p",href:"/build/smart-contracts/language/library/state#get2"},"State.get/2")," where you provide a default value. Here's an example to give you an idea:"),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},"Counter example")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},'@version 1\n\ncondition triggered_by: transaction, as: []\nactions triggered_by: transaction do\n # Retrieve the count from previous contract\'s transaction or default to 0\n count = State.get("count", 0)\n\n # Increment the count\n new_count = count + 1\n\n # Write the new value in the state\n State.set("count", new_count)\nend\n')))}d.isMDXComponent=!0},8209:(t,e,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/70e1f15f.7042c701.js b/assets/js/70e1f15f.0d01de48.js similarity index 98% rename from assets/js/70e1f15f.7042c701.js rename to assets/js/70e1f15f.0d01de48.js index 1a51cd621..1b64d06fa 100644 --- a/assets/js/70e1f15f.7042c701.js +++ b/assets/js/70e1f15f.0d01de48.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1592],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>b});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),i=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},s=function(e){var t=i(e.components);return n.createElement(c.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},g=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,s=d(e,["components","mdxType","originalType","parentName"]),p=i(r),g=o,b=p["".concat(c,".").concat(g)]||p[g]||u[g]||a;return r?n.createElement(b,l(l({ref:t},s),{},{components:r})):n.createElement(b,l({ref:t},s))}));function b(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=g;var d={};for(var c in t)hasOwnProperty.call(t,c)&&(d[c]=t[c]);d.originalType=e,d[p]="string"==typeof e?e:o,l[1]=d;for(var i=2;i{r.r(t),r.d(t,{Badge:()=>u,Bullet:()=>s,Details:()=>b,SpecifiedBy:()=>p,assets:()=>i,contentTitle:()=>d,default:()=>k,frontMatter:()=>l,metadata:()=>c,toc:()=>g});var n=r(87462),o=r(67294),a=r(3905);r(8209);const l={id:"ledger",title:"Ledger",hide_table_of_contents:!1},d=void 0,c={unversionedId:"build/api/schema/objects/ledger",id:"build/api/schema/objects/ledger",title:"Ledger",description:"[Ledger] represents the ledger operations to perform",source:"@site/docs/build/api/schema/objects/ledger.mdx",sourceDirName:"build/api/schema/objects",slug:"/build/api/schema/objects/ledger",permalink:"/build/api/schema/objects/ledger",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"ledger",title:"Ledger",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"LedgerOperations",permalink:"/build/api/schema/objects/ledger-operations"},next:{title:"Node",permalink:"/build/api/schema/objects/node"}},i={},s=()=>(0,a.kt)(o.Fragment,null,(0,a.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=e=>(0,a.kt)(o.Fragment,null,"Specification",(0,a.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,a.kt)(o.Fragment,null,(0,a.kt)("span",{className:e.class},e.text)),g=[{value:"Fields",id:"fields",level:3},{value:'Ledger.tokenTokenLedger ',id:"code-style-fontweight-normal-ledgerbtokenbcodetokenledger-",level:4},{value:'Ledger.ucoUcoLedger ',id:"code-style-fontweight-normal-ledgerbucobcodeucoledger-",level:4},{value:"Member of",id:"member-of",level:3}],b=e=>{let{dataOpen:t,dataClose:r,children:l,startOpen:d=!1}=e;const[c,i]=(0,o.useState)(d);return(0,a.kt)("details",(0,n.Z)({},c?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,a.kt)("summary",{onClick:e=>{e.preventDefault(),i((e=>!e))},style:{listStyle:"none"}},c?t:r),c&&l)},m={Bullet:s,SpecifiedBy:p,Badge:u,toc:g,Details:b},f="wrapper";function k(e){let{components:t,...r}=e;return(0,a.kt)(f,(0,n.Z)({},m,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"[Ledger]"," represents the ledger operations to perform"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-graphql"},"type Ledger {\n token: TokenLedger\n uco: UcoLedger\n}\n")),(0,a.kt)("h3",{id:"fields"},"Fields"),(0,a.kt)("h4",{id:"code-style-fontweight-normal-ledgerbtokenbcodetokenledger-"},(0,a.kt)("a",{parentName:"h4",href:"#"},(0,a.kt)("code",{style:{fontWeight:"normal"}},"Ledger.",(0,a.kt)("b",null,"token"))),(0,a.kt)(s,{mdxType:"Bullet"}),(0,a.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/token-ledger"},(0,a.kt)("inlineCode",{parentName:"a"},"TokenLedger"))," ",(0,a.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,a.kt)("blockquote",null),(0,a.kt)("h4",{id:"code-style-fontweight-normal-ledgerbucobcodeucoledger-"},(0,a.kt)("a",{parentName:"h4",href:"#"},(0,a.kt)("code",{style:{fontWeight:"normal"}},"Ledger.",(0,a.kt)("b",null,"uco"))),(0,a.kt)(s,{mdxType:"Bullet"}),(0,a.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/uco-ledger"},(0,a.kt)("inlineCode",{parentName:"a"},"UcoLedger"))," ",(0,a.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,a.kt)("blockquote",null),(0,a.kt)("h3",{id:"member-of"},"Member of"),(0,a.kt)("p",null,(0,a.kt)("a",{parentName:"p",href:"/build/api/schema/objects/data"},(0,a.kt)("inlineCode",{parentName:"a"},"Data"))," ",(0,a.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}k.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1592],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>b});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),i=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},s=function(e){var t=i(e.components);return n.createElement(c.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},g=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,s=d(e,["components","mdxType","originalType","parentName"]),p=i(r),g=o,b=p["".concat(c,".").concat(g)]||p[g]||u[g]||a;return r?n.createElement(b,l(l({ref:t},s),{},{components:r})):n.createElement(b,l({ref:t},s))}));function b(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=g;var d={};for(var c in t)hasOwnProperty.call(t,c)&&(d[c]=t[c]);d.originalType=e,d[p]="string"==typeof e?e:o,l[1]=d;for(var i=2;i{r.r(t),r.d(t,{Badge:()=>u,Bullet:()=>s,Details:()=>b,SpecifiedBy:()=>p,assets:()=>i,contentTitle:()=>d,default:()=>k,frontMatter:()=>l,metadata:()=>c,toc:()=>g});var n=r(87462),o=r(67294),a=r(3905);r(8209);const l={id:"ledger",title:"Ledger",hide_table_of_contents:!1},d=void 0,c={unversionedId:"build/api/schema/objects/ledger",id:"build/api/schema/objects/ledger",title:"Ledger",description:"[Ledger] represents the ledger operations to perform",source:"@site/docs/build/api/schema/objects/ledger.mdx",sourceDirName:"build/api/schema/objects",slug:"/build/api/schema/objects/ledger",permalink:"/build/api/schema/objects/ledger",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"ledger",title:"Ledger",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"LedgerOperations",permalink:"/build/api/schema/objects/ledger-operations"},next:{title:"Node",permalink:"/build/api/schema/objects/node"}},i={},s=()=>(0,a.kt)(o.Fragment,null,(0,a.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=e=>(0,a.kt)(o.Fragment,null,"Specification",(0,a.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,a.kt)(o.Fragment,null,(0,a.kt)("span",{className:e.class},e.text)),g=[{value:"Fields",id:"fields",level:3},{value:'Ledger.tokenTokenLedger ',id:"code-style-fontweight-normal-ledgerbtokenbcodetokenledger-",level:4},{value:'Ledger.ucoUcoLedger ',id:"code-style-fontweight-normal-ledgerbucobcodeucoledger-",level:4},{value:"Member of",id:"member-of",level:3}],b=e=>{let{dataOpen:t,dataClose:r,children:l,startOpen:d=!1}=e;const[c,i]=(0,o.useState)(d);return(0,a.kt)("details",(0,n.Z)({},c?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,a.kt)("summary",{onClick:e=>{e.preventDefault(),i((e=>!e))},style:{listStyle:"none"}},c?t:r),c&&l)},m={Bullet:s,SpecifiedBy:p,Badge:u,toc:g,Details:b},f="wrapper";function k(e){let{components:t,...r}=e;return(0,a.kt)(f,(0,n.Z)({},m,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"[Ledger]"," represents the ledger operations to perform"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-graphql"},"type Ledger {\n token: TokenLedger\n uco: UcoLedger\n}\n")),(0,a.kt)("h3",{id:"fields"},"Fields"),(0,a.kt)("h4",{id:"code-style-fontweight-normal-ledgerbtokenbcodetokenledger-"},(0,a.kt)("a",{parentName:"h4",href:"#"},(0,a.kt)("code",{style:{fontWeight:"normal"}},"Ledger.",(0,a.kt)("b",null,"token"))),(0,a.kt)(s,{mdxType:"Bullet"}),(0,a.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/token-ledger"},(0,a.kt)("inlineCode",{parentName:"a"},"TokenLedger"))," ",(0,a.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,a.kt)("blockquote",null),(0,a.kt)("h4",{id:"code-style-fontweight-normal-ledgerbucobcodeucoledger-"},(0,a.kt)("a",{parentName:"h4",href:"#"},(0,a.kt)("code",{style:{fontWeight:"normal"}},"Ledger.",(0,a.kt)("b",null,"uco"))),(0,a.kt)(s,{mdxType:"Bullet"}),(0,a.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/uco-ledger"},(0,a.kt)("inlineCode",{parentName:"a"},"UcoLedger"))," ",(0,a.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,a.kt)("blockquote",null),(0,a.kt)("h3",{id:"member-of"},"Member of"),(0,a.kt)("p",null,(0,a.kt)("a",{parentName:"p",href:"/build/api/schema/objects/data"},(0,a.kt)("inlineCode",{parentName:"a"},"Data"))," ",(0,a.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}k.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file diff --git a/assets/js/710ae1bb.8c928fc6.js b/assets/js/710ae1bb.5c81f36c.js similarity index 98% rename from assets/js/710ae1bb.8c928fc6.js rename to assets/js/710ae1bb.5c81f36c.js index 6317c8dbf..d85467163 100644 --- a/assets/js/710ae1bb.8c928fc6.js +++ b/assets/js/710ae1bb.5c81f36c.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[847],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>y});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=r.createContext({}),p=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},c=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),d=p(a),h=n,y=d["".concat(s,".").concat(h)]||d[h]||u[h]||o;return a?r.createElement(y,i(i({ref:t},c),{},{components:a})):r.createElement(y,i({ref:t},c))}));function y(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,i=new Array(o);i[0]=h;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[d]="string"==typeof e?e:n,i[1]=l;for(var p=2;p{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var r=a(87462),n=(a(67294),a(3905));a(8209);const o={id:"cryptography",title:"Cryptography"},i=void 0,l={unversionedId:"learn/cryptography/cryptography",id:"learn/cryptography/cryptography",title:"Cryptography",description:"Archethic network through the usage of TransactionChains is leveraging an adaptative and quantum-safe cryptography.",source:"@site/docs/learn/cryptography/README.md",sourceDirName:"learn/cryptography",slug:"/learn/cryptography/",permalink:"/learn/cryptography/",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"cryptography",title:"Cryptography"},sidebar:"docs",previous:{title:"Proof of Work",permalink:"/learn/arch-consensus/proof-of-work"},next:{title:"Hardware Root of Trust",permalink:"/learn/cryptography/hardware-root-of-trust"}},s={},p=[{value:"Quantum-Safe",id:"quantum-safe",level:2},{value:"Non-Discolure of public keys",id:"non-discolure-of-public-keys",level:3},{value:"Origin Devices",id:"origin-devices",level:3},{value:"Adaptative",id:"adaptative",level:2},{value:"Public keys",id:"public-keys",level:3},{value:"Hashes",id:"hashes",level:3},{value:"Transaction addresses",id:"transaction-addresses",level:3},{value:"Default algorithms",id:"default-algorithms",level:2}],c={toc:p},d="wrapper";function u(e){let{components:t,...a}=e;return(0,n.kt)(d,(0,r.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"Archethic network through the usage of TransactionChains is leveraging an adaptative and quantum-safe cryptography."),(0,n.kt)("h2",{id:"quantum-safe"},"Quantum-Safe"),(0,n.kt)("h3",{id:"non-discolure-of-public-keys"},"Non-Discolure of public keys"),(0,n.kt)("p",null,"Archethic ",(0,n.kt)("a",{parentName:"p",href:"/learn/transaction-chain"},"TransactionChains")," uses a non-disclosure mechanism of public keys using chains of cryptography.\nEach transaction contains an address, which is a hash of the next public key and the previous public key.\nTherefore, we don't have way to know which public key is used for a given transaction until a next one is coming."),(0,n.kt)("h3",{id:"origin-devices"},"Origin Devices"),(0,n.kt)("p",null,"In order to build a transaction, we need to known multiple temporary private keys a key to provide a signature based on the previous private key and a signature based on an origin device private key.\nOrigin device can be categorized in several families: software, hardware, biometrics. (See ",(0,n.kt)("a",{parentName:"p",href:"/learn/arch-consensus/proof-of-work"},"Proof of Work"),")"),(0,n.kt)("p",null,"So to be allowed to generate a transaction, the task of a quantum computer potentially capable of ",(0,n.kt)("strong",{parentName:"p"},"breaking")," private keys should be considerably more complex"),(0,n.kt)("h2",{id:"adaptative"},"Adaptative"),(0,n.kt)("p",null,"In order to be backward compatible and to evolve the network as the cryptographic research progesses and to provide the choice of cryptographic algorithms to people, organizations or countries, Archethic is a versioned cryptography or metadata cryptography."),(0,n.kt)("p",null,"While this word sounds complex, it's not hard to get it."),(0,n.kt)("h3",{id:"public-keys"},"Public keys"),(0,n.kt)("p",null,"Each public key is prepended by some additional bytes to inform some metadata or algorithm versioning.\nThis includes:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"a byte to indicate the elliptic curve used (i.e Ed25519, NIST, secp256k1)"),(0,n.kt)("li",{parentName:"ul"},"a byte to indicate the origin of the generation (i.e software, hardware, ...)")),(0,n.kt)("h3",{id:"hashes"},"Hashes"),(0,n.kt)("p",null,"Like the public keys, cryptographic hashes are also versioned with a byte of to identify which algorithms is used (i.e SHA-256).\nThis information helps to determine the length of a hash and to perform some checks for the validition and for the encoding/decoding of the data."),(0,n.kt)("h3",{id:"transaction-addresses"},"Transaction addresses"),(0,n.kt)("p",null,"While transaction addresses are often represented as hashes, Archethic provide a new level of information inside the transaction's address. A byte is prepending the hash with an information regarding the elliptic curve used to generate the public key related."),(0,n.kt)("p",null,"You may be wondering why would we need this kind of information."),(0,n.kt)("p",null,"So, in order to be really adaptative and based on the non-disclosure mechanism offered by the transaction chain, we need to know which elliptic was used for a previous transaction to be able to reproduce the previous public key."),(0,n.kt)("p",null,"For example, imagine we have a transaction address encoded in that way, using a ",(0,n.kt)("inlineCode",{parentName:"p"},"secp256k1")," elliptic"),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:null},"Hash algorithm"),(0,n.kt)("th",{parentName:"tr",align:null},"Digest"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},"01"),(0,n.kt)("td",{parentName:"tr",align:null},"01309F1C765967AC7")))),(0,n.kt)("admonition",{type:"info"},(0,n.kt)("p",{parentName:"admonition"},"Reminder: a transaction address is the hash of the next public key")),(0,n.kt)("p",null,"For a new transaction coming after, if now, we want to use the ",(0,n.kt)("inlineCode",{parentName:"p"},"ed25519")," elliptic curve, we need to know which was used before. For this reason, we have two possibility:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"keep an history of the previous transaction and curves (",(0,n.kt)("em",{parentName:"li"},"not really pratical and not scalable"),")"),(0,n.kt)("li",{parentName:"ul"},"add a byte in front of each transaction's address to the curve used")),(0,n.kt)("p",null,"So with a new model:"),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:null},"Curve type"),(0,n.kt)("th",{parentName:"tr",align:null},"Hash algorithm"),(0,n.kt)("th",{parentName:"tr",align:null},"Digest"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},"01"),(0,n.kt)("td",{parentName:"tr",align:null},"01"),(0,n.kt)("td",{parentName:"tr",align:null},"01309F1C765967AC7")))),(0,n.kt)("p",null,"Now we are able to compute the previous public key, with the curve ",(0,n.kt)("inlineCode",{parentName:"p"},"secp256k1")," and continues with new elliptic curve along the way."),(0,n.kt)("p",null,"This will be even more pratical with On-Chain Decentralized Wallet (",(0,n.kt)("inlineCode",{parentName:"p"},"Keychain"),") to support multiple derived keys and custom algorithms."),(0,n.kt)("h2",{id:"default-algorithms"},"Default algorithms"),(0,n.kt)("p",null,"Except for hardware compatability issues (HSM, etc..), EdDSA signatures, Curve25519 and AES256 will be used by default on the network."))}u.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[847],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>y});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=r.createContext({}),p=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},c=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),d=p(a),h=n,y=d["".concat(s,".").concat(h)]||d[h]||u[h]||o;return a?r.createElement(y,i(i({ref:t},c),{},{components:a})):r.createElement(y,i({ref:t},c))}));function y(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,i=new Array(o);i[0]=h;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[d]="string"==typeof e?e:n,i[1]=l;for(var p=2;p{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var r=a(87462),n=(a(67294),a(3905));a(8209);const o={id:"cryptography",title:"Cryptography"},i=void 0,l={unversionedId:"learn/cryptography/cryptography",id:"learn/cryptography/cryptography",title:"Cryptography",description:"Archethic network through the usage of TransactionChains is leveraging an adaptative and quantum-safe cryptography.",source:"@site/docs/learn/cryptography/README.md",sourceDirName:"learn/cryptography",slug:"/learn/cryptography/",permalink:"/learn/cryptography/",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"cryptography",title:"Cryptography"},sidebar:"docs",previous:{title:"Proof of Work",permalink:"/learn/arch-consensus/proof-of-work"},next:{title:"Hardware Root of Trust",permalink:"/learn/cryptography/hardware-root-of-trust"}},s={},p=[{value:"Quantum-Safe",id:"quantum-safe",level:2},{value:"Non-Discolure of public keys",id:"non-discolure-of-public-keys",level:3},{value:"Origin Devices",id:"origin-devices",level:3},{value:"Adaptative",id:"adaptative",level:2},{value:"Public keys",id:"public-keys",level:3},{value:"Hashes",id:"hashes",level:3},{value:"Transaction addresses",id:"transaction-addresses",level:3},{value:"Default algorithms",id:"default-algorithms",level:2}],c={toc:p},d="wrapper";function u(e){let{components:t,...a}=e;return(0,n.kt)(d,(0,r.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"Archethic network through the usage of TransactionChains is leveraging an adaptative and quantum-safe cryptography."),(0,n.kt)("h2",{id:"quantum-safe"},"Quantum-Safe"),(0,n.kt)("h3",{id:"non-discolure-of-public-keys"},"Non-Discolure of public keys"),(0,n.kt)("p",null,"Archethic ",(0,n.kt)("a",{parentName:"p",href:"/learn/transaction-chain"},"TransactionChains")," uses a non-disclosure mechanism of public keys using chains of cryptography.\nEach transaction contains an address, which is a hash of the next public key and the previous public key.\nTherefore, we don't have way to know which public key is used for a given transaction until a next one is coming."),(0,n.kt)("h3",{id:"origin-devices"},"Origin Devices"),(0,n.kt)("p",null,"In order to build a transaction, we need to known multiple temporary private keys a key to provide a signature based on the previous private key and a signature based on an origin device private key.\nOrigin device can be categorized in several families: software, hardware, biometrics. (See ",(0,n.kt)("a",{parentName:"p",href:"/learn/arch-consensus/proof-of-work"},"Proof of Work"),")"),(0,n.kt)("p",null,"So to be allowed to generate a transaction, the task of a quantum computer potentially capable of ",(0,n.kt)("strong",{parentName:"p"},"breaking")," private keys should be considerably more complex"),(0,n.kt)("h2",{id:"adaptative"},"Adaptative"),(0,n.kt)("p",null,"In order to be backward compatible and to evolve the network as the cryptographic research progesses and to provide the choice of cryptographic algorithms to people, organizations or countries, Archethic is a versioned cryptography or metadata cryptography."),(0,n.kt)("p",null,"While this word sounds complex, it's not hard to get it."),(0,n.kt)("h3",{id:"public-keys"},"Public keys"),(0,n.kt)("p",null,"Each public key is prepended by some additional bytes to inform some metadata or algorithm versioning.\nThis includes:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"a byte to indicate the elliptic curve used (i.e Ed25519, NIST, secp256k1)"),(0,n.kt)("li",{parentName:"ul"},"a byte to indicate the origin of the generation (i.e software, hardware, ...)")),(0,n.kt)("h3",{id:"hashes"},"Hashes"),(0,n.kt)("p",null,"Like the public keys, cryptographic hashes are also versioned with a byte of to identify which algorithms is used (i.e SHA-256).\nThis information helps to determine the length of a hash and to perform some checks for the validition and for the encoding/decoding of the data."),(0,n.kt)("h3",{id:"transaction-addresses"},"Transaction addresses"),(0,n.kt)("p",null,"While transaction addresses are often represented as hashes, Archethic provide a new level of information inside the transaction's address. A byte is prepending the hash with an information regarding the elliptic curve used to generate the public key related."),(0,n.kt)("p",null,"You may be wondering why would we need this kind of information."),(0,n.kt)("p",null,"So, in order to be really adaptative and based on the non-disclosure mechanism offered by the transaction chain, we need to know which elliptic was used for a previous transaction to be able to reproduce the previous public key."),(0,n.kt)("p",null,"For example, imagine we have a transaction address encoded in that way, using a ",(0,n.kt)("inlineCode",{parentName:"p"},"secp256k1")," elliptic"),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:null},"Hash algorithm"),(0,n.kt)("th",{parentName:"tr",align:null},"Digest"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},"01"),(0,n.kt)("td",{parentName:"tr",align:null},"01309F1C765967AC7")))),(0,n.kt)("admonition",{type:"info"},(0,n.kt)("p",{parentName:"admonition"},"Reminder: a transaction address is the hash of the next public key")),(0,n.kt)("p",null,"For a new transaction coming after, if now, we want to use the ",(0,n.kt)("inlineCode",{parentName:"p"},"ed25519")," elliptic curve, we need to know which was used before. For this reason, we have two possibility:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"keep an history of the previous transaction and curves (",(0,n.kt)("em",{parentName:"li"},"not really pratical and not scalable"),")"),(0,n.kt)("li",{parentName:"ul"},"add a byte in front of each transaction's address to the curve used")),(0,n.kt)("p",null,"So with a new model:"),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:null},"Curve type"),(0,n.kt)("th",{parentName:"tr",align:null},"Hash algorithm"),(0,n.kt)("th",{parentName:"tr",align:null},"Digest"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},"01"),(0,n.kt)("td",{parentName:"tr",align:null},"01"),(0,n.kt)("td",{parentName:"tr",align:null},"01309F1C765967AC7")))),(0,n.kt)("p",null,"Now we are able to compute the previous public key, with the curve ",(0,n.kt)("inlineCode",{parentName:"p"},"secp256k1")," and continues with new elliptic curve along the way."),(0,n.kt)("p",null,"This will be even more pratical with On-Chain Decentralized Wallet (",(0,n.kt)("inlineCode",{parentName:"p"},"Keychain"),") to support multiple derived keys and custom algorithms."),(0,n.kt)("h2",{id:"default-algorithms"},"Default algorithms"),(0,n.kt)("p",null,"Except for hardware compatability issues (HSM, etc..), EdDSA signatures, Curve25519 and AES256 will be used by default on the network."))}u.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file diff --git a/assets/js/72ec880a.a3075658.js b/assets/js/72ec880a.731e5b9e.js similarity index 99% rename from assets/js/72ec880a.a3075658.js rename to assets/js/72ec880a.731e5b9e.js index a619749f5..99a4ab78a 100644 --- a/assets/js/72ec880a.a3075658.js +++ b/assets/js/72ec880a.731e5b9e.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[420],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>A});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),c=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),u=c(n),p=r,A=u["".concat(l,".").concat(p)]||u[p]||m[p]||o;return n?a.createElement(A,i(i({ref:t},d),{},{components:n})):a.createElement(A,i({ref:t},d))}));function A(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[u]="string"==typeof e?e:r,i[1]=s;for(var c=2;c{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>s,toc:()=>c});var a=n(87462),r=(n(67294),n(3905));n(8209);const o={id:"mock-form",title:"Smart Contracts Playground - Mock form",sidebar_label:"Mock form",sidebar_position:100},i=void 0,s={unversionedId:"build/smart-contracts/playground/mock-form",id:"build/smart-contracts/playground/mock-form",title:"Smart Contracts Playground - Mock form",description:"Mocks allow developers to simulate the behaviour of functions that have side-effects. A few examples of side-effect: retrieve the genesis address of a chain, retrieve the date, a random value etc.",source:"@site/docs/build/smart-contracts/playground/mock-form.md",sourceDirName:"build/smart-contracts/playground",slug:"/build/smart-contracts/playground/mock-form",permalink:"/build/smart-contracts/playground/mock-form",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",sidebarPosition:100,frontMatter:{id:"mock-form",title:"Smart Contracts Playground - Mock form",sidebar_label:"Mock form",sidebar_position:100},sidebar:"docs",previous:{title:"Transaction form",permalink:"/build/smart-contracts/playground/transaction-form"},next:{title:"Testnet",permalink:"/build/testnet"}},l={},c=[{value:"Example: Time.now/0",id:"example-timenow0",level:2},{value:"Example: Chain.get_genesis_address/1",id:"example-chainget_genesis_address1",level:2}],d={toc:c},u="wrapper";function m(e){let{components:t,...o}=e;return(0,r.kt)(u,(0,a.Z)({},d,o,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"Mocks allow developers to simulate the behaviour of functions that have side-effects. A few examples of side-effect: retrieve the genesis address of a chain, retrieve the date, a random value etc."),(0,r.kt)("p",null,"The mock form is part of the trigger panel."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"the mock form is display",src:n(1604).Z,width:"415",height:"96"})),(0,r.kt)("p",null,"These functions must be mocked to test Smart Contracts that use them:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"/build/smart-contracts/language/library#get_genesis_address1-io"},"Chain.get_genesis_address/1")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"/build/smart-contracts/language/library#get_first_transaction_address1-io"},"Chain.get_first_transaction_address/1")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"/build/smart-contracts/language/library#get_genesis_public_key1-io"},"Chain.get_genesis_public_key/1")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"/build/smart-contracts/language/library#now0"},"Time.now/0")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"/build/smart-contracts/language/library#fetch_id_from_address1-io"},"Token.fetch_id_from_address/1")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"/build/smart-contracts/language/library#fetch1-io"},"Http.fetch/1")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"/build/smart-contracts/language/library#fetch_many1-io"},"Http.fetch_many/1"))),(0,r.kt)("p",null,"A function can be mocked multiple times, for example to mock multiple different inputs."),(0,r.kt)("h2",{id:"example-timenow0"},"Example: Time.now/0"),(0,r.kt)("p",null,"Time.now/0 can be mocked to simulate a future execution of the contract. This one is actually optional, the playground will use current time if it is not set."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},'@version 1\nactions triggered_by: interval, at: "* * * * *" do \n Contract.set_content(Time.now())\nend\n')),(0,r.kt)("p",null,"All you need to do is fill the expected output (seconds since epoch):"),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"mocking the Time.now/0",src:n(52171).Z,width:"3600",height:"2390"})),(0,r.kt)("p",null,"Then click on the ",(0,r.kt)("inlineCode",{parentName:"p"},"Add")," button, then ",(0,r.kt)("inlineCode",{parentName:"p"},"trigger")," to test the Smart Contract:"),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"Time.now/0 is mocked",src:n(92537).Z,width:"3600",height:"2390"})),(0,r.kt)("p",null,"We can see via the console that the mock was called as expected."),(0,r.kt)("h2",{id:"example-chainget_genesis_address1"},"Example: Chain.get_genesis_address/1"),(0,r.kt)("p",null,"Let's see an example with a function that takes an argument.\nIn the form you specify the output for a given input. Let's try it!"),(0,r.kt)("p",null,"The screenshot below mocked the function with these values: "),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"input: ",(0,r.kt)("inlineCode",{parentName:"li"},"00002223BBD4EC3D64AE597696C7D7ADE1CEE65C639D885450AD2D7B75592AC76AFA")),(0,r.kt)("li",{parentName:"ul"},"output: ",(0,r.kt)("inlineCode",{parentName:"li"},"MOCKED"))),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},'@version 1\nactions triggered_by: interval, at: "* * * * *" do\n Contract.set_content(Chain.get_genesis_address(0x00002223bbd4ec3d64ae597696c7d7ade1cee65c639d885450ad2d7b75592ac76afa)) \nend\n')),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"a contract that used Chain.get_genesis_address/1 is tested",src:n(88745).Z,width:"3600",height:"2390"})),(0,r.kt)("p",null,"We can see via the console that the mock was called as expected."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"a contract that used Chain.get_genesis_address/1 is tested",src:n(4847).Z,width:"3600",height:"2390"})))}m.isMDXComponent=!0},1604:(e,t,n)=>{n.d(t,{Z:()=>a});const a="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZ8AAABgCAYAAADCUX/sAAAUTklEQVR4Xu3dB1xW1f8H8M/DRkBRwYGK4MItmjO3mKk4cY8cpakNzfpnZVauzMbvV64ys6zU3Bv31tyJe0uImjMVURkiPP/vucajCP64D6I943N9+Sp47nPuOe9z4eM59zz3GrzzlzKCGwUoQAEKUOAZChgeFz7OLs5wcnaGg6MTHB0dYDAYnmG1eCgKUIACFLBWAWNKClLkb3JyMu4lJSHpblK6pqQLHxU4bjncJXAcrbXdrDcFKEABCliQgAqhhLg4CaJ7plqlCR8XNze4ubtxlGNBncaqUIACFLAFAaPRiMT4eCQmJGrNMYWPq4SOm7u7LbSRbaAABShAAQsVUCMgFUBa+Dg5OyGHpydHPBbaWawWBShAAVsRUCOgO7duS/gUKGX0ypUTDg68xmMrnct2UIACFLBkgZSUZBh8i5Q35vD0sOR6sm4UoAAFKGBjAga/4pWNzi4uNtYsNocCFKAABSxZwFCkVFWjA5dVW3IfsW4UoAAFbE7A4B9UzWhwcLC5hrFBFKAABShguQKGomVq8PY6lts/rBkFKEABmxRg+Nhkt7JRFKAABSxbgOFj2f3D2lGAAhSwSQGGj012KxtFAQpQwLIFGD6W3T+sHQUoQAGbFDArfMJqD0H1oJa4cD0S4xf3yhDE1SkHhnVbBmdHFyzc9iV2n1iarXAjXlqNLYdmY/3+adlaLgujAAUoQIFnJ5Cl8FHV+8/8brgaezZdTSsFhqBLw+Ha9xk+z64jeSQKUIAC1iRgdvhUKhaCpOS72HZkPjYe+CVdW7s3GgW/vKWQx8uP4WNNZwLrSgEKUOAZCpgdPhUCGuBg1Eb45yuHcY9MvTk7uuLjbsux/eh81K/YLU34OBgc0Si4B8oVrY/cngVxJeYM9pwMl7/L0jQ3X64ANK8+AIV9yyIlOQmnL0Zg5Z7JuBX/t7bfo9NuvrmKon/oJFyOicJPq97BvZS78HD1xgvP9UFQoRrwdM+Na7cu4PfDc/HHqfBnSMtDUYACFKDA4wSyFD4zN36MPk2/xn8WdMfVm9GmsstLMHVtMByTl7+O11pOThM+3UNGo5x/PS1sLl6LRPFCVVBegmjD/p+xJuJHrYwC3sXQv8V3uH77IiJOroCriwfqlOuAG/L1xGWvymNZk9OET84cvhgQ+i3i78bi+xVvIjEpTitHfS+fdwAiTq/GjVsXUT6gPgIKVMS0NUNw4vwOng0UoAAFKPAvC2QpfEb+1gIfdlmC7UcWYMOBn01N6CLB4+GaCwu3f4UhHWabwiewQCX0az4Ry/d8i62HZpn2b1fnAwTLNN7n8zrhdvw19Gj8GfzylMTXC3sg8d79IKlZpi3a1HobP6wYhMhLEabw2X5sAfpLmQ4OTvhewu52wg1tfxVIQzsvxLKd47Ht6DztezlccqJfi0k4ELk+TX3/ZXsengIUoIDdCmQpfEbMbI6w2u+iiO+DqTcnBxd8JKvcVkjAnPrrjzTh07RqP9Qu1xEjZzSX60X3H6GqNjXSeSvsF8zeNAKHzmzCqB7rsfHgr1j7z0hI7eMkU3mVizdG9JXDMlUXrYXPzmOLtZFM0XzlZcTzBqIuHTCVqabchnVdij8v7ce8LZ8i5s5lu+1cNpwCFKCApQpkOXxK+FWTqbf/mqbeyvrXRfdGozFmTlu4OLmnCZ+uDUagYN6Ssm/XNA6OMmoZ3XODTLtNxeGoTXin/UwJopHY/+fax3qp8FGjnbiEm/B0y4PD0Zswa9PwNPuHBPdGSHAv7Xvn/j6KyAt/YL+Meq7cPGOp/cB6UYACFLArgSyHj1pAMLTLYtPUW8d6w5DLwxc/rBwkK90KpQmfbg1HokCeEunCRz09dXSPDdpU2OGozdoo6LeNn8iChg3/M3yS7iVq15VqlQmTEVV7fCf/H335YJr3+OQsItd6GqCEX1UE5K8IB4MBS3eNk1HTIrvqYDaWAhSggCUKZDl8VGPU1Ju/TH1NWPIKhnVZhtURU7Rf7o+GT7Oq/fF82fYYMTMU9x6adlOLAt4Om47Zm0fhyJnNGNVzHVbvnZpuCXfLGoNwSkYvx89t06bdth6eg3X7foK7a068234WrsuigolL+2i+bi5ect0nL67Fnkdyyj3te+o6UM/Gn8squ/wY+VuoJfYD60QBClDArgSeKHxSp96W75qEZtUGyJRbmLZw4NHwKVagMl5tPh7LdskigCP3FwGorV2d9xBcvAm+nNcZsXFX0a/ZROT08ME3i3qarg2VlOm9V2R6b/r6D3Ekeku6pdZq9NO61mC5vjMGe0+vRClZXv3yi19h/tbPZGn1CtOx1N0Z1Oo6ho9dnd9sLAUoYKECTxQ+aupNrXpzcXKTayvHMEWWO6vt0fBR31Mr2UoXfh47TyzGJVlqXbJQVVQIbChLrX/RrvmozV8WMPSVkLpyI0qCY6V27ahuhU64efsqJoX3TbfUWr1H1WFQm2kyCvLCV3JNySB/3gmbAQdHZy3o7iTEIDB/JVQq1lg+f7QA4bvHW2hXsFoUoAAF7EfgicJHMampt+pBrbBkxzfYIcufHxc+KiRCKveSD5nWk+mvAtrKtT0nwrH7ZNp7v/nlKYWm1fqjcN4gbfRz6q89WLX3exlRXdfKzujebqmjo40Hpsu03RRtFV3Tav1QyKc03Jw9ZFruAv6QUdG2I3O1AONGAQpQgAL/roBZ4fPvVpVHpwAFKEABWxFg+NhKT7IdFKAABaxIgOFjRZ3FqlKAAhSwFQGGj630JNtBAQpQwIoEGD5W1FmsKgUoQAFbEWD42EpPsh0UoAAFrEiA4WNFncWqUoACFLAVAYaPrfQk20EBClDAigQYPlbUWawqBShAAVsRYPjYSk+yHRSgAAWsSIDhY0WdxapSgAIUsBUBho+t9CTbQQEKUMCKBBg+VtRZrCoFKEABWxFg+NhKT7IdFKAABaxIgOFjRZ3FqlKAAhSwFQGGj630JNtBAQpQwIoEGD5W1FmsKgUoQAFbEWD42EpPsh0UoAAFrEiA4WNFncWqUoACFLAVAYaPrfQk20EBClDAigQYPlbUWawqBShAAVsRYPjYSk+yHRSgAAWsSCDL4fN82fYoXjAYvrmKIp93gBU1mVWlAAUoQIEnFbh0IwpXY6IReSkCO48tMrs4s8PHJ2dh9Gw8FldvnsOxc9vx17XjuHDtlNkH5hsoQAEKUMB6BQrlLYVCPkEo618HuTzy4ee17+HmnSu6G2RW+KhRTr/QCVi+cwL2/blW90G4IwUoQAEK2K5AjdJt0LDiS5i8/HXE3Lmkq6Fmhc97HeZiTcRU7Itco6tw7kQBClCAAvYhUFsuxVQp0QwTlr6iq8G6w6dO2Q4oUaiaDK2G6CqYO1GAAhSggH0JDGz9EzYdnIGDURsybbju8OnXbCK2HpmDo2e3Zlood6AABShAAfsTqCnTbwEFgjF70/BMG687fD7pvgJfzO2E+Lu3Mi2UO1CAAhSggP0J+OTyR+8XvsCX8ztn2njd4TP25a14/6e6mRbIHShAAQpQwH4F9GYFw8d+zxG2nAIUoEC2CzB8sp2UBVKAAhSgQGYCDJ/MhPg6BShAAQpkuwDDJ9tJWSAFKEABCmQmwPDJTIivU4ACFKBAtgswfLKdlAU+bYHcHgVx487FbD/MwDY/wy9Pcfy28RNdH35rUuUVFMlXDj+uejvDuhgMDvis92Z8F/4aoq8cyvb6Ps0Cw2oPgZOjC+ZuGf00D8Oy7ViA4WPHnW+tTdd70prTvvzegRgc9qt8Pu0Ooi5G4Nf1QzN9O8MnUyLuQIHHCuj9OeZSa55EFiOg96Q1p8IvPvcqqgW1xLbDcxFSuTc+ndVKguj2/yyC4WOOMPelQFoBvT/HDB+eORYjoPekNafCQ+RmuCf/2o0th2ZhSIfZWPD7WOw5udxUhKODE1RAVQhoCEdHJxyO3oKkpAT4+ZQ0TbsV8S2L0GqvI79M3f198yxW7ZmMvs3HPXba7Tm5uWL9Cl2RO6cf4hNv4+T5nViy82sk3UtIV/XgYi+gTvlOss8uqFuTGOXPgaj12LD/F7R9/v9QrEBlCctYLN0xDsfPb9fe7+meB6HV35TnaVWRr1IQeXE/wneOw53EGO11NxcvtKo5CCX8qsFgAI6f3YHluycgIekOHp12a1KlL6pLOE9ZORBXYs6YQ8t9KZChgN6fY4YPT6B/TaBgnhJwc/Y0HV89ruP75W+avk5Iuo2L109nuX5F81XAgBbfYsqKgfjz0j6oaz9x8TcwdfVgU5nql3H5gPryy3kSrsWeR42g1igf2ABnLh/Qwie3lx/eDpuOo9FbsfP4InluSX40q9pf/uubYfj45Q3CwNZTJTx+xvFzO5DbsyDa1H4X2+S+iOv2TcswfDrWGyb7bsPafT9K2FRBy5oDEZcQK3WaiMsSCM2qDUBer0IYO7edhIkD3pJ2JCTFYc3eH7TymjzXFy5Obhi3uLd8ZcQbLX9AUvJdrJU70HtJUL1Y9VVEXz6MOVtGpQmfxpVfRs0ybfGD+FyOicqyM99IgYcFGD48Hyxe4KWQMfKv9AfhU7xgZflX/L4H4SPTY9N1XKN5XENb13wb5QLqYszsMO2XcqNKvdBYpt4+m9MWt+Kvw9MtN4Z2XoQ5m0dpo437m0G7RhQbd1ULn1Y139JGGF8v6qmVobZKgSHo0nB4huGjAjVQbqy4/eh8U7W6NxqFu/cSM7zIr0Y+Het9iJEzQ7WRidqGdJiD0xf2YuG2L7Svy/rXRY/GY/DBtPrag7s6N/hE7rPYQWuD2jzd8+L9jvMwY/0wbeTUPWQ0PpfXb//zepkidVCjdCvtjvSpIx/1MMhGlV7CpGX9cOlGpMWfK6yg9QgwfKynr1jTfwT0nrR6wBwMjhjaZTEi5Zf4uoiftLfky10ML4WMwlKZolLhEJg/WHs44vAZzZHw0A1zVWj5eBfWwqdvs3G4dD0Sy3aNNx1WhdawrksfO+2mnupY0q+q9oj5gnlLoriMZg5ErXts+DSv/oYEZGtT+WrkcujMZmw+NEP7XuoIToVPw4o9tJHa+CVqlPNgGySjIfWcLdXuioGN0r2euqcKn3JF68FoTJHQyo1pa4bgxPkdeki5DwV0Cej9Oea0my5O7vQsBPSetHrqElS4Fno3uT9yeHSLvnJEgqM/iuaviAGhkzIIn8ESPkW08Onz4tcyMohC+O4H4ZPDNRc+7haeYfhUCGyIjnU/lEeP/K6NXtSoQl3LUdNlGS1vViOf0Oqv49PZbR4Jn00SPjMzDB8VHhOWvpymWQNbT8MheYaKg1zDKutfW17vk2HbVfiULlwT38s1npDgXgjIXwH/XdgD95IT9bByHwpkKqD355jhkykld3hWAnpPWj316Vz/YxSTabzP5rTT/pWfujWs1FMWGPSRaauO2nWTYV2WYNbmEfKLe6Npn8FtZdot/m8tfFrWGIjiMor55qFpNzWy6NpwRIbho8LqVkKMTOWNMJXXvdGnMu0Wny3hU06m4DrV/wifz+tomlZT13WGyLTbrI3DJXwctfAbK+2Ok4UKalPTdmr68Kv5XdCq1lumz/mohQvvhM3AjmML5AnFP+ph5T4UyFRA788xwydTSu7wrAQ61B2KeVvHPPHhnOXi+7AuS7WptdV7p6Qpz1sWDLwnv6hXy8X6TQenyzWQd1FWRhLhuybguiw4qC4LDqqWao5TF/Zo4ZNHFgwMbjcDR2QabPuxhfCWKbWWspJM/cLP6EOmnep9hMK+pTFvyxhZfRarXR9qFNxDFjAcxC/r3k+34s3ckY9BrkmpBQdxUvbqCGmb0YCmsqDA1cVDW3CQ+nps/DVZcPCjdj1IvX7x2in8tumTdKvd1IKDFrJybtyiXrgae/aJ7VkABRg+PAfsViC4WGPtovyX87vKCrZz6RzU6MRDrneMW9wLDy+1zu1VADG3r+DgmQ0oKMuqU+9w4C9LrZvLUutCPkFwdnLVlm1XkmOoOyY8eocDL3cftKszRBYdVMKtuGuIOL0GZ68eQWcZrUScXoUVe75NUx9zw0eN4lTwtZARWaAsw1abWskXLtekUhcYqNdb1hiEYn5VkJKSItd0tmOFrOZTn29Kf4cDg6yOmyLXvG6nWQVotycPG/7EAgyfJyZkAfYmoD4fkyTTY8kp9zJsurpu4y5Lw1Ons+zNh+2lgB4Bho8eJe5DAQpQgALZKsDwyVZOFkYBClCAAnoEGD56lLgPBShAAQpkqwDDJ1s5WRgFKEABCugRYPjoUeI+FKAABSiQrQLZHj4fdl6M8fKp6Vtxf2drRVkYBShAAQrYhoC68e6A0G+1m+Bmtun+kGnvJl8h4tTKh27AmFnRfJ0CFKAABexJoEqJptq9B39d90GmzdYdPjVKt5ZnnjTA1FUPbkefaencgQIUoAAF7EbgtRaTsfPEEm2gktmmO3xUQe+2n431+6fJJ7VXZ1YuX6cABShAATsSqFUmTG5P1Uq7c4iezazw8clZBP1bTNLug7U/cq2e8rkPBShAAQrYuIC6R2AjedzHpPB+uHnniq7WmhU+qkQVQL1eGKvdZl49qfHi9VP469pJXQfjThSgAAUoYBsChX1Ky010y6C83JhXPWZE3ThXb/AoAbPDJ5WtbvnOcmPDivDN6Q9f76K2oclWUIACFKCALoGL8pDFqzHR8vThvdh1Yqmu9zy8k8E/qJrR4OBg9hv5BgpQgAIUoEBWBQyFS1U1Ojo6ZvX9fB8FKEABClDAbAFDweKVjS4uLma/kW+gAAUoQAEKZFXA4FuknDGHp2dW38/3UYACFKAABcwWMHjnK2H0yu2tPfudGwUoQAEKUOBpCyQnJ0MLHyeZdvPw8nrax2P5FKAABShAAdy5GXs/fJSFq7s73HLkIAsFKEABClDgqQkkxMUhMT7+QfikBpAKIYPB8NQOzIIpQAEKUMD+BIxGIxLiE3A3Pk5r/P8DugmsR44LoDgAAAAASUVORK5CYII="},88745:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/playground_form_mock_chain_get_genesis_address-551bfba5c9fb4c85e95f5bc789767c9e.png"},4847:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/playground_form_mock_chain_get_genesis_address2-8f7ef34a1659021e6a7283d31014a6f5.png"},52171:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/playground_form_mock_time_now-d7694a9f2dd01c0a0010e8d18bfbe8e5.png"},92537:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/playground_form_mock_time_now2-5a73d7c10f300e12b9cc96892afaaa1d.png"},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[420],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>A});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),c=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),u=c(n),p=r,A=u["".concat(l,".").concat(p)]||u[p]||m[p]||o;return n?a.createElement(A,i(i({ref:t},d),{},{components:n})):a.createElement(A,i({ref:t},d))}));function A(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[u]="string"==typeof e?e:r,i[1]=s;for(var c=2;c{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>s,toc:()=>c});var a=n(87462),r=(n(67294),n(3905));n(8209);const o={id:"mock-form",title:"Smart Contracts Playground - Mock form",sidebar_label:"Mock form",sidebar_position:100},i=void 0,s={unversionedId:"build/smart-contracts/playground/mock-form",id:"build/smart-contracts/playground/mock-form",title:"Smart Contracts Playground - Mock form",description:"Mocks allow developers to simulate the behaviour of functions that have side-effects. A few examples of side-effect: retrieve the genesis address of a chain, retrieve the date, a random value etc.",source:"@site/docs/build/smart-contracts/playground/mock-form.md",sourceDirName:"build/smart-contracts/playground",slug:"/build/smart-contracts/playground/mock-form",permalink:"/build/smart-contracts/playground/mock-form",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",sidebarPosition:100,frontMatter:{id:"mock-form",title:"Smart Contracts Playground - Mock form",sidebar_label:"Mock form",sidebar_position:100},sidebar:"docs",previous:{title:"Transaction form",permalink:"/build/smart-contracts/playground/transaction-form"},next:{title:"Testnet",permalink:"/build/testnet"}},l={},c=[{value:"Example: Time.now/0",id:"example-timenow0",level:2},{value:"Example: Chain.get_genesis_address/1",id:"example-chainget_genesis_address1",level:2}],d={toc:c},u="wrapper";function m(e){let{components:t,...o}=e;return(0,r.kt)(u,(0,a.Z)({},d,o,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"Mocks allow developers to simulate the behaviour of functions that have side-effects. A few examples of side-effect: retrieve the genesis address of a chain, retrieve the date, a random value etc."),(0,r.kt)("p",null,"The mock form is part of the trigger panel."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"the mock form is display",src:n(1604).Z,width:"415",height:"96"})),(0,r.kt)("p",null,"These functions must be mocked to test Smart Contracts that use them:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"/build/smart-contracts/language/library#get_genesis_address1-io"},"Chain.get_genesis_address/1")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"/build/smart-contracts/language/library#get_first_transaction_address1-io"},"Chain.get_first_transaction_address/1")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"/build/smart-contracts/language/library#get_genesis_public_key1-io"},"Chain.get_genesis_public_key/1")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"/build/smart-contracts/language/library#now0"},"Time.now/0")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"/build/smart-contracts/language/library#fetch_id_from_address1-io"},"Token.fetch_id_from_address/1")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"/build/smart-contracts/language/library#fetch1-io"},"Http.fetch/1")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"/build/smart-contracts/language/library#fetch_many1-io"},"Http.fetch_many/1"))),(0,r.kt)("p",null,"A function can be mocked multiple times, for example to mock multiple different inputs."),(0,r.kt)("h2",{id:"example-timenow0"},"Example: Time.now/0"),(0,r.kt)("p",null,"Time.now/0 can be mocked to simulate a future execution of the contract. This one is actually optional, the playground will use current time if it is not set."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},'@version 1\nactions triggered_by: interval, at: "* * * * *" do \n Contract.set_content(Time.now())\nend\n')),(0,r.kt)("p",null,"All you need to do is fill the expected output (seconds since epoch):"),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"mocking the Time.now/0",src:n(52171).Z,width:"3600",height:"2390"})),(0,r.kt)("p",null,"Then click on the ",(0,r.kt)("inlineCode",{parentName:"p"},"Add")," button, then ",(0,r.kt)("inlineCode",{parentName:"p"},"trigger")," to test the Smart Contract:"),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"Time.now/0 is mocked",src:n(92537).Z,width:"3600",height:"2390"})),(0,r.kt)("p",null,"We can see via the console that the mock was called as expected."),(0,r.kt)("h2",{id:"example-chainget_genesis_address1"},"Example: Chain.get_genesis_address/1"),(0,r.kt)("p",null,"Let's see an example with a function that takes an argument.\nIn the form you specify the output for a given input. Let's try it!"),(0,r.kt)("p",null,"The screenshot below mocked the function with these values: "),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"input: ",(0,r.kt)("inlineCode",{parentName:"li"},"00002223BBD4EC3D64AE597696C7D7ADE1CEE65C639D885450AD2D7B75592AC76AFA")),(0,r.kt)("li",{parentName:"ul"},"output: ",(0,r.kt)("inlineCode",{parentName:"li"},"MOCKED"))),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},'@version 1\nactions triggered_by: interval, at: "* * * * *" do\n Contract.set_content(Chain.get_genesis_address(0x00002223bbd4ec3d64ae597696c7d7ade1cee65c639d885450ad2d7b75592ac76afa)) \nend\n')),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"a contract that used Chain.get_genesis_address/1 is tested",src:n(88745).Z,width:"3600",height:"2390"})),(0,r.kt)("p",null,"We can see via the console that the mock was called as expected."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"a contract that used Chain.get_genesis_address/1 is tested",src:n(4847).Z,width:"3600",height:"2390"})))}m.isMDXComponent=!0},1604:(e,t,n)=>{n.d(t,{Z:()=>a});const a="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZ8AAABgCAYAAADCUX/sAAAUTklEQVR4Xu3dB1xW1f8H8M/DRkBRwYGK4MItmjO3mKk4cY8cpakNzfpnZVauzMbvV64ys6zU3Bv31tyJe0uImjMVURkiPP/vucajCP64D6I943N9+Sp47nPuOe9z4eM59zz3GrzzlzKCGwUoQAEKUOAZChgeFz7OLs5wcnaGg6MTHB0dYDAYnmG1eCgKUIACFLBWAWNKClLkb3JyMu4lJSHpblK6pqQLHxU4bjncJXAcrbXdrDcFKEABCliQgAqhhLg4CaJ7plqlCR8XNze4ubtxlGNBncaqUIACFLAFAaPRiMT4eCQmJGrNMYWPq4SOm7u7LbSRbaAABShAAQsVUCMgFUBa+Dg5OyGHpydHPBbaWawWBShAAVsRUCOgO7duS/gUKGX0ypUTDg68xmMrnct2UIACFLBkgZSUZBh8i5Q35vD0sOR6sm4UoAAFKGBjAga/4pWNzi4uNtYsNocCFKAABSxZwFCkVFWjA5dVW3IfsW4UoAAFbE7A4B9UzWhwcLC5hrFBFKAABShguQKGomVq8PY6lts/rBkFKEABmxRg+Nhkt7JRFKAABSxbgOFj2f3D2lGAAhSwSQGGj012KxtFAQpQwLIFGD6W3T+sHQUoQAGbFDArfMJqD0H1oJa4cD0S4xf3yhDE1SkHhnVbBmdHFyzc9iV2n1iarXAjXlqNLYdmY/3+adlaLgujAAUoQIFnJ5Cl8FHV+8/8brgaezZdTSsFhqBLw+Ha9xk+z64jeSQKUIAC1iRgdvhUKhaCpOS72HZkPjYe+CVdW7s3GgW/vKWQx8uP4WNNZwLrSgEKUOAZCpgdPhUCGuBg1Eb45yuHcY9MvTk7uuLjbsux/eh81K/YLU34OBgc0Si4B8oVrY/cngVxJeYM9pwMl7/L0jQ3X64ANK8+AIV9yyIlOQmnL0Zg5Z7JuBX/t7bfo9NuvrmKon/oJFyOicJPq97BvZS78HD1xgvP9UFQoRrwdM+Na7cu4PfDc/HHqfBnSMtDUYACFKDA4wSyFD4zN36MPk2/xn8WdMfVm9GmsstLMHVtMByTl7+O11pOThM+3UNGo5x/PS1sLl6LRPFCVVBegmjD/p+xJuJHrYwC3sXQv8V3uH77IiJOroCriwfqlOuAG/L1xGWvymNZk9OET84cvhgQ+i3i78bi+xVvIjEpTitHfS+fdwAiTq/GjVsXUT6gPgIKVMS0NUNw4vwOng0UoAAFKPAvC2QpfEb+1gIfdlmC7UcWYMOBn01N6CLB4+GaCwu3f4UhHWabwiewQCX0az4Ry/d8i62HZpn2b1fnAwTLNN7n8zrhdvw19Gj8GfzylMTXC3sg8d79IKlZpi3a1HobP6wYhMhLEabw2X5sAfpLmQ4OTvhewu52wg1tfxVIQzsvxLKd47Ht6DztezlccqJfi0k4ELk+TX3/ZXsengIUoIDdCmQpfEbMbI6w2u+iiO+DqTcnBxd8JKvcVkjAnPrrjzTh07RqP9Qu1xEjZzSX60X3H6GqNjXSeSvsF8zeNAKHzmzCqB7rsfHgr1j7z0hI7eMkU3mVizdG9JXDMlUXrYXPzmOLtZFM0XzlZcTzBqIuHTCVqabchnVdij8v7ce8LZ8i5s5lu+1cNpwCFKCApQpkOXxK+FWTqbf/mqbeyvrXRfdGozFmTlu4OLmnCZ+uDUagYN6Ssm/XNA6OMmoZ3XODTLtNxeGoTXin/UwJopHY/+fax3qp8FGjnbiEm/B0y4PD0Zswa9PwNPuHBPdGSHAv7Xvn/j6KyAt/YL+Meq7cPGOp/cB6UYACFLArgSyHj1pAMLTLYtPUW8d6w5DLwxc/rBwkK90KpQmfbg1HokCeEunCRz09dXSPDdpU2OGozdoo6LeNn8iChg3/M3yS7iVq15VqlQmTEVV7fCf/H335YJr3+OQsItd6GqCEX1UE5K8IB4MBS3eNk1HTIrvqYDaWAhSggCUKZDl8VGPU1Ju/TH1NWPIKhnVZhtURU7Rf7o+GT7Oq/fF82fYYMTMU9x6adlOLAt4Om47Zm0fhyJnNGNVzHVbvnZpuCXfLGoNwSkYvx89t06bdth6eg3X7foK7a068234WrsuigolL+2i+bi5ect0nL67Fnkdyyj3te+o6UM/Gn8squ/wY+VuoJfYD60QBClDArgSeKHxSp96W75qEZtUGyJRbmLZw4NHwKVagMl5tPh7LdskigCP3FwGorV2d9xBcvAm+nNcZsXFX0a/ZROT08ME3i3qarg2VlOm9V2R6b/r6D3Ekeku6pdZq9NO61mC5vjMGe0+vRClZXv3yi19h/tbPZGn1CtOx1N0Z1Oo6ho9dnd9sLAUoYKECTxQ+aupNrXpzcXKTayvHMEWWO6vt0fBR31Mr2UoXfh47TyzGJVlqXbJQVVQIbChLrX/RrvmozV8WMPSVkLpyI0qCY6V27ahuhU64efsqJoX3TbfUWr1H1WFQm2kyCvLCV3JNySB/3gmbAQdHZy3o7iTEIDB/JVQq1lg+f7QA4bvHW2hXsFoUoAAF7EfgicJHMampt+pBrbBkxzfYIcufHxc+KiRCKveSD5nWk+mvAtrKtT0nwrH7ZNp7v/nlKYWm1fqjcN4gbfRz6q89WLX3exlRXdfKzujebqmjo40Hpsu03RRtFV3Tav1QyKc03Jw9ZFruAv6QUdG2I3O1AONGAQpQgAL/roBZ4fPvVpVHpwAFKEABWxFg+NhKT7IdFKAABaxIgOFjRZ3FqlKAAhSwFQGGj630JNtBAQpQwIoEGD5W1FmsKgUoQAFbEWD42EpPsh0UoAAFrEiA4WNFncWqUoACFLAVAYaPrfQk20EBClDAigQYPlbUWawqBShAAVsRYPjYSk+yHRSgAAWsSIDhY0WdxapSgAIUsBUBho+t9CTbQQEKUMCKBBg+VtRZrCoFKEABWxFg+NhKT7IdFKAABaxIgOFjRZ3FqlKAAhSwFQGGj630JNtBAQpQwIoEGD5W1FmsKgUoQAFbEWD42EpPsh0UoAAFrEiA4WNFncWqUoACFLAVAYaPrfQk20EBClDAigQYPlbUWawqBShAAVsRYPjYSk+yHRSgAAWsSCDL4fN82fYoXjAYvrmKIp93gBU1mVWlAAUoQIEnFbh0IwpXY6IReSkCO48tMrs4s8PHJ2dh9Gw8FldvnsOxc9vx17XjuHDtlNkH5hsoQAEKUMB6BQrlLYVCPkEo618HuTzy4ee17+HmnSu6G2RW+KhRTr/QCVi+cwL2/blW90G4IwUoQAEK2K5AjdJt0LDiS5i8/HXE3Lmkq6Fmhc97HeZiTcRU7Itco6tw7kQBClCAAvYhUFsuxVQp0QwTlr6iq8G6w6dO2Q4oUaiaDK2G6CqYO1GAAhSggH0JDGz9EzYdnIGDURsybbju8OnXbCK2HpmDo2e3Zlood6AABShAAfsTqCnTbwEFgjF70/BMG687fD7pvgJfzO2E+Lu3Mi2UO1CAAhSggP0J+OTyR+8XvsCX8ztn2njd4TP25a14/6e6mRbIHShAAQpQwH4F9GYFw8d+zxG2nAIUoEC2CzB8sp2UBVKAAhSgQGYCDJ/MhPg6BShAAQpkuwDDJ9tJWSAFKEABCmQmwPDJTIivU4ACFKBAtgswfLKdlAU+bYHcHgVx487FbD/MwDY/wy9Pcfy28RNdH35rUuUVFMlXDj+uejvDuhgMDvis92Z8F/4aoq8cyvb6Ps0Cw2oPgZOjC+ZuGf00D8Oy7ViA4WPHnW+tTdd70prTvvzegRgc9qt8Pu0Ooi5G4Nf1QzN9O8MnUyLuQIHHCuj9OeZSa55EFiOg96Q1p8IvPvcqqgW1xLbDcxFSuTc+ndVKguj2/yyC4WOOMPelQFoBvT/HDB+eORYjoPekNafCQ+RmuCf/2o0th2ZhSIfZWPD7WOw5udxUhKODE1RAVQhoCEdHJxyO3oKkpAT4+ZQ0TbsV8S2L0GqvI79M3f198yxW7ZmMvs3HPXba7Tm5uWL9Cl2RO6cf4hNv4+T5nViy82sk3UtIV/XgYi+gTvlOss8uqFuTGOXPgaj12LD/F7R9/v9QrEBlCctYLN0xDsfPb9fe7+meB6HV35TnaVWRr1IQeXE/wneOw53EGO11NxcvtKo5CCX8qsFgAI6f3YHluycgIekOHp12a1KlL6pLOE9ZORBXYs6YQ8t9KZChgN6fY4YPT6B/TaBgnhJwc/Y0HV89ruP75W+avk5Iuo2L109nuX5F81XAgBbfYsqKgfjz0j6oaz9x8TcwdfVgU5nql3H5gPryy3kSrsWeR42g1igf2ABnLh/Qwie3lx/eDpuOo9FbsfP4InluSX40q9pf/uubYfj45Q3CwNZTJTx+xvFzO5DbsyDa1H4X2+S+iOv2TcswfDrWGyb7bsPafT9K2FRBy5oDEZcQK3WaiMsSCM2qDUBer0IYO7edhIkD3pJ2JCTFYc3eH7TymjzXFy5Obhi3uLd8ZcQbLX9AUvJdrJU70HtJUL1Y9VVEXz6MOVtGpQmfxpVfRs0ybfGD+FyOicqyM99IgYcFGD48Hyxe4KWQMfKv9AfhU7xgZflX/L4H4SPTY9N1XKN5XENb13wb5QLqYszsMO2XcqNKvdBYpt4+m9MWt+Kvw9MtN4Z2XoQ5m0dpo437m0G7RhQbd1ULn1Y139JGGF8v6qmVobZKgSHo0nB4huGjAjVQbqy4/eh8U7W6NxqFu/cSM7zIr0Y+Het9iJEzQ7WRidqGdJiD0xf2YuG2L7Svy/rXRY/GY/DBtPrag7s6N/hE7rPYQWuD2jzd8+L9jvMwY/0wbeTUPWQ0PpfXb//zepkidVCjdCvtjvSpIx/1MMhGlV7CpGX9cOlGpMWfK6yg9QgwfKynr1jTfwT0nrR6wBwMjhjaZTEi5Zf4uoiftLfky10ML4WMwlKZolLhEJg/WHs44vAZzZHw0A1zVWj5eBfWwqdvs3G4dD0Sy3aNNx1WhdawrksfO+2mnupY0q+q9oj5gnlLoriMZg5ErXts+DSv/oYEZGtT+WrkcujMZmw+NEP7XuoIToVPw4o9tJHa+CVqlPNgGySjIfWcLdXuioGN0r2euqcKn3JF68FoTJHQyo1pa4bgxPkdeki5DwV0Cej9Oea0my5O7vQsBPSetHrqElS4Fno3uT9yeHSLvnJEgqM/iuaviAGhkzIIn8ESPkW08Onz4tcyMohC+O4H4ZPDNRc+7haeYfhUCGyIjnU/lEeP/K6NXtSoQl3LUdNlGS1vViOf0Oqv49PZbR4Jn00SPjMzDB8VHhOWvpymWQNbT8MheYaKg1zDKutfW17vk2HbVfiULlwT38s1npDgXgjIXwH/XdgD95IT9bByHwpkKqD355jhkykld3hWAnpPWj316Vz/YxSTabzP5rTT/pWfujWs1FMWGPSRaauO2nWTYV2WYNbmEfKLe6Npn8FtZdot/m8tfFrWGIjiMor55qFpNzWy6NpwRIbho8LqVkKMTOWNMJXXvdGnMu0Wny3hU06m4DrV/wifz+tomlZT13WGyLTbrI3DJXwctfAbK+2Ok4UKalPTdmr68Kv5XdCq1lumz/mohQvvhM3AjmML5AnFP+ph5T4UyFRA788xwydTSu7wrAQ61B2KeVvHPPHhnOXi+7AuS7WptdV7p6Qpz1sWDLwnv6hXy8X6TQenyzWQd1FWRhLhuybguiw4qC4LDqqWao5TF/Zo4ZNHFgwMbjcDR2QabPuxhfCWKbWWspJM/cLP6EOmnep9hMK+pTFvyxhZfRarXR9qFNxDFjAcxC/r3k+34s3ckY9BrkmpBQdxUvbqCGmb0YCmsqDA1cVDW3CQ+nps/DVZcPCjdj1IvX7x2in8tumTdKvd1IKDFrJybtyiXrgae/aJ7VkABRg+PAfsViC4WGPtovyX87vKCrZz6RzU6MRDrneMW9wLDy+1zu1VADG3r+DgmQ0oKMuqU+9w4C9LrZvLUutCPkFwdnLVlm1XkmOoOyY8eocDL3cftKszRBYdVMKtuGuIOL0GZ68eQWcZrUScXoUVe75NUx9zw0eN4lTwtZARWaAsw1abWskXLtekUhcYqNdb1hiEYn5VkJKSItd0tmOFrOZTn29Kf4cDg6yOmyLXvG6nWQVotycPG/7EAgyfJyZkAfYmoD4fkyTTY8kp9zJsurpu4y5Lw1Ons+zNh+2lgB4Bho8eJe5DAQpQgALZKsDwyVZOFkYBClCAAnoEGD56lLgPBShAAQpkqwDDJ1s5WRgFKEABCugRYPjoUeI+FKAABSiQrQLZHj4fdl6M8fKp6Vtxf2drRVkYBShAAQrYhoC68e6A0G+1m+Bmtun+kGnvJl8h4tTKh27AmFnRfJ0CFKAABexJoEqJptq9B39d90GmzdYdPjVKt5ZnnjTA1FUPbkefaencgQIUoAAF7EbgtRaTsfPEEm2gktmmO3xUQe+2n431+6fJJ7VXZ1YuX6cABShAATsSqFUmTG5P1Uq7c4iezazw8clZBP1bTNLug7U/cq2e8rkPBShAAQrYuIC6R2AjedzHpPB+uHnniq7WmhU+qkQVQL1eGKvdZl49qfHi9VP469pJXQfjThSgAAUoYBsChX1Ky010y6C83JhXPWZE3ThXb/AoAbPDJ5WtbvnOcmPDivDN6Q9f76K2oclWUIACFKCALoGL8pDFqzHR8vThvdh1Yqmu9zy8k8E/qJrR4OBg9hv5BgpQgAIUoEBWBQyFS1U1Ojo6ZvX9fB8FKEABClDAbAFDweKVjS4uLma/kW+gAAUoQAEKZFXA4FuknDGHp2dW38/3UYACFKAABcwWMHjnK2H0yu2tPfudGwUoQAEKUOBpCyQnJ0MLHyeZdvPw8nrax2P5FKAABShAAdy5GXs/fJSFq7s73HLkIAsFKEABClDgqQkkxMUhMT7+QfikBpAKIYPB8NQOzIIpQAEKUMD+BIxGIxLiE3A3Pk5r/P8DugmsR44LoDgAAAAASUVORK5CYII="},88745:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/playground_form_mock_chain_get_genesis_address-551bfba5c9fb4c85e95f5bc789767c9e.png"},4847:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/playground_form_mock_chain_get_genesis_address2-8f7ef34a1659021e6a7283d31014a6f5.png"},52171:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/playground_form_mock_time_now-d7694a9f2dd01c0a0010e8d18bfbe8e5.png"},92537:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/playground_form_mock_time_now2-5a73d7c10f300e12b9cc96892afaaa1d.png"},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/749f8745.3a4d1fae.js b/assets/js/749f8745.517d979d.js similarity index 98% rename from assets/js/749f8745.3a4d1fae.js rename to assets/js/749f8745.517d979d.js index 447d02288..31a0c74c9 100644 --- a/assets/js/749f8745.3a4d1fae.js +++ b/assets/js/749f8745.517d979d.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9712],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>m});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),s=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},p=function(e){var t=s(e.components);return n.createElement(c.Provider,{value:t},e.children)},u="mdxType",f={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,c=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=s(r),d=o,m=u["".concat(c,".").concat(d)]||u[d]||f[d]||i;return r?n.createElement(m,a(a({ref:t},p),{},{components:r})):n.createElement(m,a({ref:t},p))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=d;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[u]="string"==typeof e?e:o,a[1]=l;for(var s=2;s{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>f,frontMatter:()=>i,metadata:()=>l,toc:()=>s});var n=r(87462),o=(r(67294),r(3905));r(8209);const i={id:"proof-of-work",title:"Proof of Work algorithm"},a=void 0,l={unversionedId:"build/core/mining/proof-of-work",id:"build/core/mining/proof-of-work",title:"Proof of Work algorithm",description:"The Archethic's proof of work algorithm defines way to assert the validity of the origin signature.",source:"@site/docs/build/core/mining/proof_of_work.md",sourceDirName:"build/core/mining",slug:"/build/core/mining/proof-of-work",permalink:"/build/core/mining/proof-of-work",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"proof-of-work",title:"Proof of Work algorithm"},sidebar:"docs",previous:{title:"Pending transaction validation",permalink:"/build/core/mining/transaction-validation"},next:{title:"Transaction context retrieval",permalink:"/build/core/mining/transaction-context"}},c={},s=[{value:"Origin public key candidates",id:"origin-public-key-candidates",level:2},{value:"Lookup",id:"lookup",level:2}],p={toc:s},u="wrapper";function f(e){let{components:t,...r}=e;return(0,o.kt)(u,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"The Archethic's proof of work algorithm defines way to assert the validity of the origin signature."),(0,o.kt)("p",null,"It defines two main components:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"List of origin public key candidates"),(0,o.kt)("li",{parentName:"ul"},"Lookup of the origin public key to verify the signature")),(0,o.kt)("h2",{id:"origin-public-key-candidates"},"Origin public key candidates"),(0,o.kt)("p",null,"Origin public keys listed for a given transaction are known by the entire network and are shared between clients and nodes."),(0,o.kt)("p",null,"However, a given transaction can specify - through ",(0,o.kt)("a",{parentName:"p",href:"/build/smart-contracts/"},"smart-contract")," the origin family."),(0,o.kt)("p",null,"By this way, the nodes are able to extract the list of origin public keys to assert with the signature."),(0,o.kt)("h2",{id:"lookup"},"Lookup"),(0,o.kt)("p",null,"A simple algorithm is defined to scan the entire list of public keys candidates and verify the cryptographic origin signature."),(0,o.kt)("p",null,"Once the public key is found, it becomes the Proof of Work.\nIf no public key is found, the proof of work is invalid and the transaction as well."),(0,o.kt)("admonition",{type:"info"},(0,o.kt)("p",{parentName:"admonition"},"Telemetry timing is used for this algorithm to indicate how fast the algorithm is with a given number of public keys")))}f.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9712],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>m});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),s=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},p=function(e){var t=s(e.components);return n.createElement(c.Provider,{value:t},e.children)},u="mdxType",f={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,c=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=s(r),d=o,m=u["".concat(c,".").concat(d)]||u[d]||f[d]||i;return r?n.createElement(m,a(a({ref:t},p),{},{components:r})):n.createElement(m,a({ref:t},p))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=d;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[u]="string"==typeof e?e:o,a[1]=l;for(var s=2;s{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>f,frontMatter:()=>i,metadata:()=>l,toc:()=>s});var n=r(87462),o=(r(67294),r(3905));r(8209);const i={id:"proof-of-work",title:"Proof of Work algorithm"},a=void 0,l={unversionedId:"build/core/mining/proof-of-work",id:"build/core/mining/proof-of-work",title:"Proof of Work algorithm",description:"The Archethic's proof of work algorithm defines way to assert the validity of the origin signature.",source:"@site/docs/build/core/mining/proof_of_work.md",sourceDirName:"build/core/mining",slug:"/build/core/mining/proof-of-work",permalink:"/build/core/mining/proof-of-work",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"proof-of-work",title:"Proof of Work algorithm"},sidebar:"docs",previous:{title:"Pending transaction validation",permalink:"/build/core/mining/transaction-validation"},next:{title:"Transaction context retrieval",permalink:"/build/core/mining/transaction-context"}},c={},s=[{value:"Origin public key candidates",id:"origin-public-key-candidates",level:2},{value:"Lookup",id:"lookup",level:2}],p={toc:s},u="wrapper";function f(e){let{components:t,...r}=e;return(0,o.kt)(u,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"The Archethic's proof of work algorithm defines way to assert the validity of the origin signature."),(0,o.kt)("p",null,"It defines two main components:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"List of origin public key candidates"),(0,o.kt)("li",{parentName:"ul"},"Lookup of the origin public key to verify the signature")),(0,o.kt)("h2",{id:"origin-public-key-candidates"},"Origin public key candidates"),(0,o.kt)("p",null,"Origin public keys listed for a given transaction are known by the entire network and are shared between clients and nodes."),(0,o.kt)("p",null,"However, a given transaction can specify - through ",(0,o.kt)("a",{parentName:"p",href:"/build/smart-contracts/"},"smart-contract")," the origin family."),(0,o.kt)("p",null,"By this way, the nodes are able to extract the list of origin public keys to assert with the signature."),(0,o.kt)("h2",{id:"lookup"},"Lookup"),(0,o.kt)("p",null,"A simple algorithm is defined to scan the entire list of public keys candidates and verify the cryptographic origin signature."),(0,o.kt)("p",null,"Once the public key is found, it becomes the Proof of Work.\nIf no public key is found, the proof of work is invalid and the transaction as well."),(0,o.kt)("admonition",{type:"info"},(0,o.kt)("p",{parentName:"admonition"},"Telemetry timing is used for this algorithm to indicate how fast the algorithm is with a given number of public keys")))}f.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file diff --git a/assets/js/764c3c46.daf4a4a8.js b/assets/js/764c3c46.cae9aa2f.js similarity index 99% rename from assets/js/764c3c46.daf4a4a8.js rename to assets/js/764c3c46.cae9aa2f.js index 0af4b979e..b082ed8c5 100644 --- a/assets/js/764c3c46.daf4a4a8.js +++ b/assets/js/764c3c46.cae9aa2f.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1484],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>m});var i=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,i)}return a}function s(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var l=i.createContext({}),c=function(e){var t=i.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):s(s({},t),e)),a},p=function(e){var t=c(e.components);return i.createElement(l.Provider,{value:t},e.children)},d="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},u=i.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,l=e.parentName,p=r(e,["components","mdxType","originalType","parentName"]),d=c(a),u=n,m=d["".concat(l,".").concat(u)]||d[u]||h[u]||o;return a?i.createElement(m,s(s({ref:t},p),{},{components:a})):i.createElement(m,s({ref:t},p))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,s=new Array(o);s[0]=u;var r={};for(var l in t)hasOwnProperty.call(t,l)&&(r[l]=t[l]);r.originalType=e,r[d]="string"==typeof e?e:n,s[1]=r;for(var c=2;c{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>h,frontMatter:()=>o,metadata:()=>r,toc:()=>c});var i=a(87462),n=(a(67294),a(3905));a(8209);const o={id:"aeweb",title:"Archethic Web (aeHosting)"},s=void 0,r={unversionedId:"participate/aeweb/aeweb",id:"participate/aeweb/aeweb",title:"Archethic Web (aeHosting)",description:"Archethic has developed a new solution to host websites on a decentralized network to avoid censorship, increase security and have high-availability and resiliency.",source:"@site/docs/participate/aeweb/README.md",sourceDirName:"participate/aeweb",slug:"/participate/aeweb/",permalink:"/participate/aeweb/",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"aeweb",title:"Archethic Web (aeHosting)"},sidebar:"docs",previous:{title:"Tutoriel Archethic DeFi",permalink:"/participate/DeFi/"},next:{title:"How it works",permalink:"/participate/aeweb/how-it-works"}},l={},c=[{value:"Motivations",id:"motivations",level:2},{value:"Easy",id:"easy",level:3},{value:"Security",id:"security",level:3},{value:"Costly efficient",id:"costly-efficient",level:3},{value:"Target",id:"target",level:2},{value:"Try out",id:"try-out",level:2},{value:"Graphical interface",id:"graphical-interface",level:3},{value:"Developers",id:"developers",level:3},{value:"Roadmap",id:"roadmap",level:2}],p={toc:c},d="wrapper";function h(e){let{components:t,...a}=e;return(0,n.kt)(d,(0,i.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"Archethic has developed a new solution to host websites on a decentralized network to ",(0,n.kt)("strong",{parentName:"p"},"avoid censorship"),", ",(0,n.kt)("strong",{parentName:"p"},"increase security")," and ",(0,n.kt)("strong",{parentName:"p"},"have high-availability and resiliency"),"."),(0,n.kt)("h2",{id:"motivations"},"Motivations"),(0,n.kt)("p",null,"Web hosting is still a subject of innovation nowadays, even with the rise of Web3.\nExisting solutions provides P2P and distributed hosting, but it can lack some important aspects such as ease-of-use, fully on-chain and trust."),(0,n.kt)("h3",{id:"easy"},"Easy"),(0,n.kt)("p",null,"Since its design, ",(0,n.kt)("strong",{parentName:"p"},"AEWeb")," motivation was to allow deployment of websites in just a few steps. No need to transform your website to match our solution. The website you developed and know will be the same one deployed."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Your website will be transformed into transaction without additional work")),(0,n.kt)("h3",{id:"security"},"Security"),(0,n.kt)("p",null,"Web hosting solutions are either centralized and decentralized. The first doesn't provide security, as being centralized and subject to censorship. The latter would be quite often insecure because hosted out of the blockchain, like traditional P2P system (torrents, etc.)"),(0,n.kt)("p",null,"We wanted to make it completely secure and on-chain.\nHence, each of the websites will first be validated across the Archethic network with the ARCH consensus capable to handle even 90% of maliciousness.\nWhile being validated, the websites will be stored and split geographically across the globe for highest data availability and security."),(0,n.kt)("p",null,"Then each delivery of the websites will directly read the data on-chain to deliver to browsers and clients and provide a high confidence of the displayed website."),(0,n.kt)("h3",{id:"costly-efficient"},"Costly efficient"),(0,n.kt)("p",null,"There are rare situations when websites can be hosted on a blockchain due to its costs being based on virtual machine or high fee on a network."),(0,n.kt)("p",null,"Transactions on Archethic are cost-efficient, so hosting websites on-chain will be a cheap solution regarding existing centralized and decentralized protocols."),(0,n.kt)("p",null,"Because of the nature of Web3 and decentralized network, once a website is deployed there is no maintenance cost such as renting a VPS on a centralized system each month for a couple of bucks. As long as the website doesn't need to change, there will be not cost."),(0,n.kt)("admonition",{type:"info"},(0,n.kt)("p",{parentName:"admonition"},"Example: a VPS can cost around $5/month to host any website. On Archethic a website of 1MB could cost around $2 (with UCO at: $1 and with 200 replicas)."),(0,n.kt)("p",{parentName:"admonition"},"You might think it's more expensive, but the VPS was only a single instance. For the same data availability on centralized hosting you would have to pay around $500 + cost of maintenance")),(0,n.kt)("h2",{id:"target"},"Target"),(0,n.kt)("p",null,"Because of the Web is so wide, we have distinguished what AEWeb is capable to do or not."),(0,n.kt)("admonition",{title:"Website vs WebApp",type:"info"},(0,n.kt)("p",{parentName:"admonition"},"Website are usually not Web app."),(0,n.kt)("p",{parentName:"admonition"},"Websites are often simple static pages (HTML, stylesheets, images, scripts) to create beautiful frontend such a portal, showcase, corporate sites."),(0,n.kt)("p",{parentName:"admonition"},"On the other side Web app (Web Application) are far more complex and provide a complete suite of administration and back-office with authentication and databases.")),(0,n.kt)("p",null,"For now, AEWeb solution only provides website hosting. So any website which contains static files can be hosted on-chain."),(0,n.kt)("p",null,"For more complex web applications, the front-end can still be hosted with AEWeb but the backend or business logic have to be managed in other ways, such as:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"centralized servers and databases"),(0,n.kt)("li",{parentName:"ul"},"blockchain dApp & smart contracts")),(0,n.kt)("p",null,"For instance, today a lot of web apps are leveraging SPA (Single Page Application) with front-end frameworks which are talking to external backend servers (fetching data, or authenticate users, etc.).\nIn that case, once the front-end page have been build from the SPA tooling, instead of being deployed on centralized servers, the generated static files could be hosted on Archethic through AEWeb tooling."),(0,n.kt)("h2",{id:"try-out"},"Try out"),(0,n.kt)("h3",{id:"graphical-interface"},"Graphical interface"),(0,n.kt)("p",null,"To test the user interface to deploy websites, visit the ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/aeweb"},"project")," by downloading the app to make webhosting no only for developers but for anyone which have static website to deploy."),(0,n.kt)("h3",{id:"developers"},"Developers"),(0,n.kt)("p",null,"You can try the ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/aeweb-cli"},"CLI")," to help developers to test and deploy existing websites using terminal."),(0,n.kt)("h2",{id:"roadmap"},"Roadmap"),(0,n.kt)("ul",{className:"contains-task-list"},(0,n.kt)("li",{parentName:"ul",className:"task-list-item"},(0,n.kt)("input",{parentName:"li",type:"checkbox",checked:!0,disabled:!0})," ","Design"),(0,n.kt)("li",{parentName:"ul",className:"task-list-item"},(0,n.kt)("input",{parentName:"li",type:"checkbox",checked:!0,disabled:!0})," ","Blockchain integration",(0,n.kt)("ul",{parentName:"li",className:"contains-task-list"},(0,n.kt)("li",{parentName:"ul",className:"task-list-item"},(0,n.kt)("input",{parentName:"li",type:"checkbox",checked:!0,disabled:!0})," ","API"),(0,n.kt)("li",{parentName:"ul",className:"task-list-item"},(0,n.kt)("input",{parentName:"li",type:"checkbox",checked:!0,disabled:!0})," ","HTTPS & certificates"))),(0,n.kt)("li",{parentName:"ul",className:"task-list-item"},(0,n.kt)("input",{parentName:"li",type:"checkbox",checked:!0,disabled:!0})," ","Command Line Interface (CLI)",(0,n.kt)("ul",{parentName:"li",className:"contains-task-list"},(0,n.kt)("li",{parentName:"ul",className:"task-list-item"},(0,n.kt)("input",{parentName:"li",type:"checkbox",checked:!0,disabled:!0})," ","File"),(0,n.kt)("li",{parentName:"ul",className:"task-list-item"},(0,n.kt)("input",{parentName:"li",type:"checkbox",checked:!0,disabled:!0})," ","Folder"),(0,n.kt)("li",{parentName:"ul",className:"task-list-item"},(0,n.kt)("input",{parentName:"li",type:"checkbox",checked:!0,disabled:!0})," ","Complete website"),(0,n.kt)("li",{parentName:"ul",className:"task-list-item"},(0,n.kt)("input",{parentName:"li",type:"checkbox",checked:!0,disabled:!0})," ","Keychain integration"))),(0,n.kt)("li",{parentName:"ul",className:"task-list-item"},(0,n.kt)("input",{parentName:"li",type:"checkbox",checked:!0,disabled:!0})," ","User Interface",(0,n.kt)("ul",{parentName:"li",className:"contains-task-list"},(0,n.kt)("li",{parentName:"ul",className:"task-list-item"},(0,n.kt)("input",{parentName:"li",type:"checkbox",checked:!0,disabled:!0})," ","Web or Native application"))),(0,n.kt)("li",{parentName:"ul",className:"task-list-item"},(0,n.kt)("input",{parentName:"li",type:"checkbox",checked:!1,disabled:!0})," ","Domain Name System (DNS)",(0,n.kt)("ul",{parentName:"li",className:"contains-task-list"},(0,n.kt)("li",{parentName:"ul",className:"task-list-item"},(0,n.kt)("input",{parentName:"li",type:"checkbox",checked:!0,disabled:!0})," ","DNSLink integration"),(0,n.kt)("li",{parentName:"ul",className:"task-list-item"},(0,n.kt)("input",{parentName:"li",type:"checkbox",checked:!1,disabled:!0})," ","Automation")))))}h.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1484],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>m});var i=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,i)}return a}function s(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var l=i.createContext({}),c=function(e){var t=i.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):s(s({},t),e)),a},p=function(e){var t=c(e.components);return i.createElement(l.Provider,{value:t},e.children)},d="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},u=i.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,l=e.parentName,p=r(e,["components","mdxType","originalType","parentName"]),d=c(a),u=n,m=d["".concat(l,".").concat(u)]||d[u]||h[u]||o;return a?i.createElement(m,s(s({ref:t},p),{},{components:a})):i.createElement(m,s({ref:t},p))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,s=new Array(o);s[0]=u;var r={};for(var l in t)hasOwnProperty.call(t,l)&&(r[l]=t[l]);r.originalType=e,r[d]="string"==typeof e?e:n,s[1]=r;for(var c=2;c{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>h,frontMatter:()=>o,metadata:()=>r,toc:()=>c});var i=a(87462),n=(a(67294),a(3905));a(8209);const o={id:"aeweb",title:"Archethic Web (aeHosting)"},s=void 0,r={unversionedId:"participate/aeweb/aeweb",id:"participate/aeweb/aeweb",title:"Archethic Web (aeHosting)",description:"Archethic has developed a new solution to host websites on a decentralized network to avoid censorship, increase security and have high-availability and resiliency.",source:"@site/docs/participate/aeweb/README.md",sourceDirName:"participate/aeweb",slug:"/participate/aeweb/",permalink:"/participate/aeweb/",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"aeweb",title:"Archethic Web (aeHosting)"},sidebar:"docs",previous:{title:"Tutoriel Archethic DeFi",permalink:"/participate/DeFi/"},next:{title:"How it works",permalink:"/participate/aeweb/how-it-works"}},l={},c=[{value:"Motivations",id:"motivations",level:2},{value:"Easy",id:"easy",level:3},{value:"Security",id:"security",level:3},{value:"Costly efficient",id:"costly-efficient",level:3},{value:"Target",id:"target",level:2},{value:"Try out",id:"try-out",level:2},{value:"Graphical interface",id:"graphical-interface",level:3},{value:"Developers",id:"developers",level:3},{value:"Roadmap",id:"roadmap",level:2}],p={toc:c},d="wrapper";function h(e){let{components:t,...a}=e;return(0,n.kt)(d,(0,i.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"Archethic has developed a new solution to host websites on a decentralized network to ",(0,n.kt)("strong",{parentName:"p"},"avoid censorship"),", ",(0,n.kt)("strong",{parentName:"p"},"increase security")," and ",(0,n.kt)("strong",{parentName:"p"},"have high-availability and resiliency"),"."),(0,n.kt)("h2",{id:"motivations"},"Motivations"),(0,n.kt)("p",null,"Web hosting is still a subject of innovation nowadays, even with the rise of Web3.\nExisting solutions provides P2P and distributed hosting, but it can lack some important aspects such as ease-of-use, fully on-chain and trust."),(0,n.kt)("h3",{id:"easy"},"Easy"),(0,n.kt)("p",null,"Since its design, ",(0,n.kt)("strong",{parentName:"p"},"AEWeb")," motivation was to allow deployment of websites in just a few steps. No need to transform your website to match our solution. The website you developed and know will be the same one deployed."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Your website will be transformed into transaction without additional work")),(0,n.kt)("h3",{id:"security"},"Security"),(0,n.kt)("p",null,"Web hosting solutions are either centralized and decentralized. The first doesn't provide security, as being centralized and subject to censorship. The latter would be quite often insecure because hosted out of the blockchain, like traditional P2P system (torrents, etc.)"),(0,n.kt)("p",null,"We wanted to make it completely secure and on-chain.\nHence, each of the websites will first be validated across the Archethic network with the ARCH consensus capable to handle even 90% of maliciousness.\nWhile being validated, the websites will be stored and split geographically across the globe for highest data availability and security."),(0,n.kt)("p",null,"Then each delivery of the websites will directly read the data on-chain to deliver to browsers and clients and provide a high confidence of the displayed website."),(0,n.kt)("h3",{id:"costly-efficient"},"Costly efficient"),(0,n.kt)("p",null,"There are rare situations when websites can be hosted on a blockchain due to its costs being based on virtual machine or high fee on a network."),(0,n.kt)("p",null,"Transactions on Archethic are cost-efficient, so hosting websites on-chain will be a cheap solution regarding existing centralized and decentralized protocols."),(0,n.kt)("p",null,"Because of the nature of Web3 and decentralized network, once a website is deployed there is no maintenance cost such as renting a VPS on a centralized system each month for a couple of bucks. As long as the website doesn't need to change, there will be not cost."),(0,n.kt)("admonition",{type:"info"},(0,n.kt)("p",{parentName:"admonition"},"Example: a VPS can cost around $5/month to host any website. On Archethic a website of 1MB could cost around $2 (with UCO at: $1 and with 200 replicas)."),(0,n.kt)("p",{parentName:"admonition"},"You might think it's more expensive, but the VPS was only a single instance. For the same data availability on centralized hosting you would have to pay around $500 + cost of maintenance")),(0,n.kt)("h2",{id:"target"},"Target"),(0,n.kt)("p",null,"Because of the Web is so wide, we have distinguished what AEWeb is capable to do or not."),(0,n.kt)("admonition",{title:"Website vs WebApp",type:"info"},(0,n.kt)("p",{parentName:"admonition"},"Website are usually not Web app."),(0,n.kt)("p",{parentName:"admonition"},"Websites are often simple static pages (HTML, stylesheets, images, scripts) to create beautiful frontend such a portal, showcase, corporate sites."),(0,n.kt)("p",{parentName:"admonition"},"On the other side Web app (Web Application) are far more complex and provide a complete suite of administration and back-office with authentication and databases.")),(0,n.kt)("p",null,"For now, AEWeb solution only provides website hosting. So any website which contains static files can be hosted on-chain."),(0,n.kt)("p",null,"For more complex web applications, the front-end can still be hosted with AEWeb but the backend or business logic have to be managed in other ways, such as:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"centralized servers and databases"),(0,n.kt)("li",{parentName:"ul"},"blockchain dApp & smart contracts")),(0,n.kt)("p",null,"For instance, today a lot of web apps are leveraging SPA (Single Page Application) with front-end frameworks which are talking to external backend servers (fetching data, or authenticate users, etc.).\nIn that case, once the front-end page have been build from the SPA tooling, instead of being deployed on centralized servers, the generated static files could be hosted on Archethic through AEWeb tooling."),(0,n.kt)("h2",{id:"try-out"},"Try out"),(0,n.kt)("h3",{id:"graphical-interface"},"Graphical interface"),(0,n.kt)("p",null,"To test the user interface to deploy websites, visit the ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/aeweb"},"project")," by downloading the app to make webhosting no only for developers but for anyone which have static website to deploy."),(0,n.kt)("h3",{id:"developers"},"Developers"),(0,n.kt)("p",null,"You can try the ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/aeweb-cli"},"CLI")," to help developers to test and deploy existing websites using terminal."),(0,n.kt)("h2",{id:"roadmap"},"Roadmap"),(0,n.kt)("ul",{className:"contains-task-list"},(0,n.kt)("li",{parentName:"ul",className:"task-list-item"},(0,n.kt)("input",{parentName:"li",type:"checkbox",checked:!0,disabled:!0})," ","Design"),(0,n.kt)("li",{parentName:"ul",className:"task-list-item"},(0,n.kt)("input",{parentName:"li",type:"checkbox",checked:!0,disabled:!0})," ","Blockchain integration",(0,n.kt)("ul",{parentName:"li",className:"contains-task-list"},(0,n.kt)("li",{parentName:"ul",className:"task-list-item"},(0,n.kt)("input",{parentName:"li",type:"checkbox",checked:!0,disabled:!0})," ","API"),(0,n.kt)("li",{parentName:"ul",className:"task-list-item"},(0,n.kt)("input",{parentName:"li",type:"checkbox",checked:!0,disabled:!0})," ","HTTPS & certificates"))),(0,n.kt)("li",{parentName:"ul",className:"task-list-item"},(0,n.kt)("input",{parentName:"li",type:"checkbox",checked:!0,disabled:!0})," ","Command Line Interface (CLI)",(0,n.kt)("ul",{parentName:"li",className:"contains-task-list"},(0,n.kt)("li",{parentName:"ul",className:"task-list-item"},(0,n.kt)("input",{parentName:"li",type:"checkbox",checked:!0,disabled:!0})," ","File"),(0,n.kt)("li",{parentName:"ul",className:"task-list-item"},(0,n.kt)("input",{parentName:"li",type:"checkbox",checked:!0,disabled:!0})," ","Folder"),(0,n.kt)("li",{parentName:"ul",className:"task-list-item"},(0,n.kt)("input",{parentName:"li",type:"checkbox",checked:!0,disabled:!0})," ","Complete website"),(0,n.kt)("li",{parentName:"ul",className:"task-list-item"},(0,n.kt)("input",{parentName:"li",type:"checkbox",checked:!0,disabled:!0})," ","Keychain integration"))),(0,n.kt)("li",{parentName:"ul",className:"task-list-item"},(0,n.kt)("input",{parentName:"li",type:"checkbox",checked:!0,disabled:!0})," ","User Interface",(0,n.kt)("ul",{parentName:"li",className:"contains-task-list"},(0,n.kt)("li",{parentName:"ul",className:"task-list-item"},(0,n.kt)("input",{parentName:"li",type:"checkbox",checked:!0,disabled:!0})," ","Web or Native application"))),(0,n.kt)("li",{parentName:"ul",className:"task-list-item"},(0,n.kt)("input",{parentName:"li",type:"checkbox",checked:!1,disabled:!0})," ","Domain Name System (DNS)",(0,n.kt)("ul",{parentName:"li",className:"contains-task-list"},(0,n.kt)("li",{parentName:"ul",className:"task-list-item"},(0,n.kt)("input",{parentName:"li",type:"checkbox",checked:!0,disabled:!0})," ","DNSLink integration"),(0,n.kt)("li",{parentName:"ul",className:"task-list-item"},(0,n.kt)("input",{parentName:"li",type:"checkbox",checked:!1,disabled:!0})," ","Automation")))))}h.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file diff --git a/assets/js/76b1eb51.d6d4e386.js b/assets/js/76b1eb51.b3cf8030.js similarity index 98% rename from assets/js/76b1eb51.d6d4e386.js rename to assets/js/76b1eb51.b3cf8030.js index dc0cd793f..987efbe71 100644 --- a/assets/js/76b1eb51.d6d4e386.js +++ b/assets/js/76b1eb51.b3cf8030.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5258],{3905:(e,t,r)=>{r.d(t,{Zo:()=>d,kt:()=>m});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function l(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=a.createContext({}),c=function(e){var t=a.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},d=function(e){var t=c(e.components);return a.createElement(s.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},b=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,s=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),p=c(r),b=n,m=p["".concat(s,".").concat(b)]||p[b]||u[b]||o;return r?a.createElement(m,l(l({ref:t},d),{},{components:r})):a.createElement(m,l({ref:t},d))}));function m(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,l=new Array(o);l[0]=b;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:n,l[1]=i;for(var c=2;c{r.r(t),r.d(t,{Badge:()=>u,Bullet:()=>d,Details:()=>m,SpecifiedBy:()=>p,assets:()=>c,contentTitle:()=>i,default:()=>f,frontMatter:()=>l,metadata:()=>s,toc:()=>b});var a=r(87462),n=r(67294),o=r(3905);r(8209);const l={id:"ownership",title:"Ownership",hide_table_of_contents:!1},i=void 0,s={unversionedId:"build/api/schema/objects/ownership",id:"build/api/schema/objects/ownership",title:"Ownership",description:"[Ownership] represents a block to set a secret and the authorized public keys able to decrypt the secret",source:"@site/docs/build/api/schema/objects/ownership.mdx",sourceDirName:"build/api/schema/objects",slug:"/build/api/schema/objects/ownership",permalink:"/build/api/schema/objects/ownership",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"ownership",title:"Ownership",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"OracleServices",permalink:"/build/api/schema/objects/oracle-services"},next:{title:"Recipient",permalink:"/build/api/schema/objects/recipient"}},c={},d=()=>(0,o.kt)(n.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=e=>(0,o.kt)(n.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,o.kt)(n.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),b=[{value:"Fields",id:"fields",level:3},{value:'Ownership.authorizedPublicKeys[AuthorizedKey] ',id:"code-style-fontweight-normal-ownershipbauthorizedpublickeysbcodeauthorizedkey--",level:4},{value:'Ownership.secretHex ',id:"code-style-fontweight-normal-ownershipbsecretbcodehex-",level:4},{value:"Member of",id:"member-of",level:3}],m=e=>{let{dataOpen:t,dataClose:r,children:l,startOpen:i=!1}=e;const[s,c]=(0,n.useState)(i);return(0,o.kt)("details",(0,a.Z)({},s?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),c((e=>!e))},style:{listStyle:"none"}},s?t:r),s&&l)},h={Bullet:d,SpecifiedBy:p,Badge:u,toc:b,Details:m},y="wrapper";function f(e){let{components:t,...r}=e;return(0,o.kt)(y,(0,a.Z)({},h,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"[Ownership]"," represents a block to set a secret and the authorized public keys able to decrypt the secret"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"type Ownership {\n authorizedPublicKeys: [AuthorizedKey]\n secret: Hex\n}\n")),(0,o.kt)("h3",{id:"fields"},"Fields"),(0,o.kt)("h4",{id:"code-style-fontweight-normal-ownershipbauthorizedpublickeysbcodeauthorizedkey--"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"Ownership.",(0,o.kt)("b",null,"authorizedPublicKeys"))),(0,o.kt)(d,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/authorized-key"},(0,o.kt)("inlineCode",{parentName:"a"},"[AuthorizedKey]"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"list",mdxType:"Badge"})," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h4",{id:"code-style-fontweight-normal-ownershipbsecretbcodehex-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"Ownership.",(0,o.kt)("b",null,"secret"))),(0,o.kt)(d,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/hex"},(0,o.kt)("inlineCode",{parentName:"a"},"Hex"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h3",{id:"member-of"},"Member of"),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/data"},(0,o.kt)("inlineCode",{parentName:"a"},"Data"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,o.kt)(d,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/token"},(0,o.kt)("inlineCode",{parentName:"a"},"Token"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}f.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5258],{3905:(e,t,r)=>{r.d(t,{Zo:()=>d,kt:()=>m});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function l(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=a.createContext({}),c=function(e){var t=a.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},d=function(e){var t=c(e.components);return a.createElement(s.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},b=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,s=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),p=c(r),b=n,m=p["".concat(s,".").concat(b)]||p[b]||u[b]||o;return r?a.createElement(m,l(l({ref:t},d),{},{components:r})):a.createElement(m,l({ref:t},d))}));function m(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,l=new Array(o);l[0]=b;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:n,l[1]=i;for(var c=2;c{r.r(t),r.d(t,{Badge:()=>u,Bullet:()=>d,Details:()=>m,SpecifiedBy:()=>p,assets:()=>c,contentTitle:()=>i,default:()=>f,frontMatter:()=>l,metadata:()=>s,toc:()=>b});var a=r(87462),n=r(67294),o=r(3905);r(8209);const l={id:"ownership",title:"Ownership",hide_table_of_contents:!1},i=void 0,s={unversionedId:"build/api/schema/objects/ownership",id:"build/api/schema/objects/ownership",title:"Ownership",description:"[Ownership] represents a block to set a secret and the authorized public keys able to decrypt the secret",source:"@site/docs/build/api/schema/objects/ownership.mdx",sourceDirName:"build/api/schema/objects",slug:"/build/api/schema/objects/ownership",permalink:"/build/api/schema/objects/ownership",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"ownership",title:"Ownership",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"OracleServices",permalink:"/build/api/schema/objects/oracle-services"},next:{title:"Recipient",permalink:"/build/api/schema/objects/recipient"}},c={},d=()=>(0,o.kt)(n.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=e=>(0,o.kt)(n.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,o.kt)(n.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),b=[{value:"Fields",id:"fields",level:3},{value:'Ownership.authorizedPublicKeys[AuthorizedKey] ',id:"code-style-fontweight-normal-ownershipbauthorizedpublickeysbcodeauthorizedkey--",level:4},{value:'Ownership.secretHex ',id:"code-style-fontweight-normal-ownershipbsecretbcodehex-",level:4},{value:"Member of",id:"member-of",level:3}],m=e=>{let{dataOpen:t,dataClose:r,children:l,startOpen:i=!1}=e;const[s,c]=(0,n.useState)(i);return(0,o.kt)("details",(0,a.Z)({},s?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),c((e=>!e))},style:{listStyle:"none"}},s?t:r),s&&l)},h={Bullet:d,SpecifiedBy:p,Badge:u,toc:b,Details:m},y="wrapper";function f(e){let{components:t,...r}=e;return(0,o.kt)(y,(0,a.Z)({},h,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"[Ownership]"," represents a block to set a secret and the authorized public keys able to decrypt the secret"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"type Ownership {\n authorizedPublicKeys: [AuthorizedKey]\n secret: Hex\n}\n")),(0,o.kt)("h3",{id:"fields"},"Fields"),(0,o.kt)("h4",{id:"code-style-fontweight-normal-ownershipbauthorizedpublickeysbcodeauthorizedkey--"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"Ownership.",(0,o.kt)("b",null,"authorizedPublicKeys"))),(0,o.kt)(d,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/authorized-key"},(0,o.kt)("inlineCode",{parentName:"a"},"[AuthorizedKey]"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"list",mdxType:"Badge"})," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h4",{id:"code-style-fontweight-normal-ownershipbsecretbcodehex-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"Ownership.",(0,o.kt)("b",null,"secret"))),(0,o.kt)(d,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/hex"},(0,o.kt)("inlineCode",{parentName:"a"},"Hex"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h3",{id:"member-of"},"Member of"),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/data"},(0,o.kt)("inlineCode",{parentName:"a"},"Data"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,o.kt)(d,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/token"},(0,o.kt)("inlineCode",{parentName:"a"},"Token"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}f.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file diff --git a/assets/js/7746a795.3c38e694.js b/assets/js/7746a795.db3d9851.js similarity index 99% rename from assets/js/7746a795.3c38e694.js rename to assets/js/7746a795.db3d9851.js index 74fba79aa..7e2c6f643 100644 --- a/assets/js/7746a795.3c38e694.js +++ b/assets/js/7746a795.db3d9851.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5935],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>m});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var s=n.createContext({}),c=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},p=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=c(a),d=r,m=u["".concat(s,".").concat(d)]||u[d]||h[d]||i;return a?n.createElement(m,o(o({ref:t},p),{},{components:a})):n.createElement(m,o({ref:t},p))}));function m(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,o=new Array(i);o[0]=d;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:r,o[1]=l;for(var c=2;c{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>l,toc:()=>c});var n=a(87462),r=(a(67294),a(3905));a(8209);const i={id:"archethic-wallet",title:"Archethic Wallet (aeWallet)"},o=void 0,l={unversionedId:"participate/wallet/archethic-wallet",id:"participate/wallet/archethic-wallet",title:"Archethic Wallet (aeWallet)",description:"Archethic has developed a fully decentralized and non-custodial cryptocurrency hot wallet that enables users to safely manage assets on Layer 1 Archethic blockchain.",source:"@site/docs/participate/wallet/README.md",sourceDirName:"participate/wallet",slug:"/participate/wallet/",permalink:"/participate/wallet/",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"archethic-wallet",title:"Archethic Wallet (aeWallet)"},sidebar:"docs",previous:{title:"Farming",permalink:"/participate/dex/Guide_Usage/farming"},next:{title:"Communication with DApps",permalink:"/participate/wallet/dapps-communication"}},s={},c=[{value:"Features",id:"features",level:2},{value:"How to download the app",id:"how-to-download-the-app",level:2},{value:"Framework",id:"framework",level:2},{value:"Seed",id:"seed",level:2},{value:"Securing the application",id:"securing-the-application",level:2},{value:"Data store",id:"data-store",level:2},{value:"Interactions with the Archethic blockchain",id:"interactions-with-the-archethic-blockchain",level:2},{value:"Setup",id:"setup",level:2},{value:"Pre-requisites",id:"pre-requisites",level:3},{value:"Instructions",id:"instructions",level:3}],p={toc:c},u="wrapper";function h(e){let{components:t,...a}=e;return(0,r.kt)(u,(0,n.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Archethic has developed a fully decentralized and non-custodial cryptocurrency hot wallet that enables users to safely manage assets on Layer 1 Archethic blockchain.")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"No signup or KYC needed, users just control their services and access keychain, protected by different secure access methods like PIN Code, Password, YubiKey like devices and Biometrics.")),(0,r.kt)("h2",{id:"features"},"Features"),(0,r.kt)("p",null,"Archethic Wallet has implemented the following features:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Main features",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Decentralized keychain management"),(0,r.kt)("li",{parentName:"ul"},"Multiple accounts' management"),(0,r.kt)("li",{parentName:"ul"},"Support for transactions (Sending and Receiving UCO or Fungibles Tokens, NFTs)"),(0,r.kt)("li",{parentName:"ul"},"DeFi features: swap, liquidity management, farming with lock, bridge (soon)"),(0,r.kt)("li",{parentName:"ul"},"List of recent transactions"))),(0,r.kt)("li",{parentName:"ul"},"Security",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Security access with Password, PIN, Yubicloud OTP, Face ID, Touch ID"),(0,r.kt)("li",{parentName:"ul"},"Use of 24 Words Mnemonics"))),(0,r.kt)("li",{parentName:"ul"},"Customization",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Support for English and French Language"))),(0,r.kt)("li",{parentName:"ul"},"Other features",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Access to CEX and DEX to buy UCO"),(0,r.kt)("li",{parentName:"ul"},"Share address with QR Code or mobile share feature"),(0,r.kt)("li",{parentName:"ul"},"UCO and certified tokens Price chart")))),(0,r.kt)("h2",{id:"how-to-download-the-app"},"How to download the app"),(0,r.kt)("a",{href:"https://www.archethic.net/wallet.html",target:"_blank"},"Download the wallet")," version that corresponds to the platform you want to use it on from the Archethic website or the app stores.",(0,r.kt)("h2",{id:"framework"},"Framework"),(0,r.kt)("p",null,"Archethic developed the wallet using Flutter based on Dart language.\nFlutter is an open-source mobile application development framework from Google. The main reason for its popularity is that it supports the creation of cross-platform applications. Flutter is also used to create interactive apps that run on web pages or on the desktop."),(0,r.kt)("p",null,"Here are some of Flutter's features*"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Single code base for Android, iOS, Windows, Linux, macOS, Web, Extension"),": This approach simplifies and reduces the development time, cost, and maintenance is also an easy task. The Flutter-based user interface can be installed virtually on any platform. It has its own rendering engine that allows developers to keep the UI as it is while moving to another platform. As a result, application users can enjoy an excellent native-like experience on various platforms."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Open-source and made by Google"),": Flutter is a popular choice among developers because of the huge community support. Google designed the Flutter framework with all the security issues of modern applications in mind. One can find reliable and well-tested plugins in Flutter to mitigate security risks such as user authentication flaws, malicious code injections and data leaks."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Dart Programming"),": Flutter uses an easy to learn and implement programming language called Dart, which is Google's general purpose programming language."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Performance"),": As a cross-platform framework, Flutter offers unmatched performance compared to its competitors. Flutter compiles designs to native code. Unlike React Native, Flutter renders widgets directly from the native library rather than downloading libraries and components to the device before rendering.")),(0,r.kt)("p",null,(0,r.kt)("em",{parentName:"p"},"Source: ",(0,r.kt)("a",{parentName:"em",href:"https://mobiskill.fr/blog/conseils-emploi-tech/pourquoi-utiliser-flutter-en-2022/"},"https://mobiskill.fr/blog/conseils-emploi-tech/pourquoi-utiliser-flutter-en-2022/"))),(0,r.kt)("h2",{id:"seed"},"Seed"),(0,r.kt)("p",null,"When the wallet is created, a seed is randomly created from a cryptographically secure random number generator provided by Dart."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-dart"}," static String generateSeed() {\n String result = '';\n const String chars = 'abcdef0123456789';\n final Random rng = Random.secure();\n for (int i = 0; i < 64; i++) {\n result += chars[rng.nextInt(chars.length)];\n }\n return result.toUpperCase();\n }\n")),(0,r.kt)("p",null,"In order to make the seed more accessible, BIP39 is used and aims to provide a method of simplifying the reading of the seed using a series of mnemonic words. BIP39 takes random words (usually from the English language, although they can be from another language) and creates a long phrase with them, usually 12 to 24 words. In the case of the Archethic wallet, we use 24 words because the higher the number of words, the greater the entropy and security attributable to the resulting sentence. These words are chosen from a dictionary of 2048 words. The flutter library bip39_mnemonic is thus used with English and French dictionaries."),(0,r.kt)("p",null,"In the case of wallet restoration, the library bip39_mnemonic allows to find the seed from the seed phrase."),(0,r.kt)("h2",{id:"securing-the-application"},"Securing the application"),(0,r.kt)("p",null,"Access to the application and interactions with the blockchain are secured so that certain actions are not done beyond the user's control.\nFollowing are the ways to access:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"by ",(0,r.kt)("strong",{parentName:"li"},"PIN code"),", comprising of 6 digits, with the possibility to mix the numbers of the keyboard to reduce the risks of access to your code by observation,"),(0,r.kt)("li",{parentName:"ul"},"by ",(0,r.kt)("strong",{parentName:"li"},"password"),","),(0,r.kt)("li",{parentName:"ul"},"by using a ",(0,r.kt)("strong",{parentName:"li"},"YubiKey"),", it is an electronic authentication device to secure your access. Whether you are using NFC with your mobile or USB on your desktop, you can identify yourself with this key,"),(0,r.kt)("li",{parentName:"ul"},"by the ",(0,r.kt)("strong",{parentName:"li"},"touch ID or face ID system"),", depending on your device capabilities.")),(0,r.kt)("p",null,"In the case of ",(0,r.kt)("strong",{parentName:"p"},"PIN")," and ",(0,r.kt)("strong",{parentName:"p"},"password"),', authentication information is stored locally (see "What data is stored in my device?").\nIn the case of ',(0,r.kt)("strong",{parentName:"p"},"touch ID or Face ID"),", the ",(0,r.kt)("a",{parentName:"p",href:"https://pub.dev/packages/local_auth"},"Flutter Local Auth library")," provides the means to authenticate on devices supporting fingerprint or facial recognition authentication.\nFinally, for ",(0,r.kt)("strong",{parentName:"p"},"OTP via Yubicloud"),": Yubico OTP is a simple yet strong authentication mechanism that is supported by all ",(0,r.kt)("strong",{parentName:"p"},"YubiKeys")," out of the box. Yubico OTP can be used as the second factor in a 2-factor authentication scheme or on its own, providing 1-factor authentication. ",(0,r.kt)("a",{parentName:"p",href:"https://www.yubico.com/products/yubicloud/"},"YubiCloud")," is the name of Yubico\u2019s web service for verifying OTPs. Before using YubiCloud, you need to get an API key from ",(0,r.kt)("a",{parentName:"p",href:"https://upgrade.yubico.com/getapikey/"},"here")," -\u2009it is quick, free and helps us in preventing misuse of YubiCloud. "),(0,r.kt)("h2",{id:"data-store"},"Data store"),(0,r.kt)("p",null,"Archethic Wallet stores a set of information so that the application is functional in both online and offline mode."),(0,r.kt)("p",null,"The first group of information represents the globally available user preferences:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"First Launch"),": Allows to know if this is the first launch of the application in order to clear the keystore for iOS. Indeed, iOS key store is persistent, so if this is first launch then we will clear the keystore."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Authentification Method"),": Allows to know which authentication mode is used (PIN, password, YubiKey, biometrics)."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Current Currency"),": Allows you to know what currency is used in the application."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Current Language"),": Allows you to know which language is used in the application."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Current Primary Setting"),": Allows to know if the currency displayed in priority is Fiat or Crypto."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Current Network"),": Allows to know if the wallet is connected to mainnet, testnet or to a local node whose endpoint is recorded in the following information."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Current Network Endpoint"),": Allows to know the address of the local node."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Current Theme"),": Allows to know which theme is used in the application."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Lock"),": Allows to know if it is necessary to authenticate at the launching of the application."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Lock Timeout"),": Allows to know after how long the application requires authentication at its launch if the user has left the application open to browse for another one for example."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Auto Lock Date"),": Contains the timestamp of the last autolock."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Privacy Mask"),": Hides or unhides the application when switching applications"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Pin Pad Shuffle"),": Allows you to determine whether the PIN code keyboard should be shuffled when entering."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Last Interaction Date"),": Records the timestamp of the last interaction with the application to calculate the duration of inactivity."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Has Shown Root Warning"),": Finds out whether the user has been informed that the device has been rooted."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Show Balances"),": Allows you to determine if the financial information should be displayed."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Show Price Chart"),": Allows you to determine whether the graph and indicators of the UCO price chart should be displayed."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Price Chart Scale"),": Current scale of the price chart."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Active Vibrations"),": Allows to know if at each action, a small vibration is emitted on the mobiles."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Active Notifications"),": Allows to know if the notifications of reception of UCO are active or not."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Active RPC Server"),": Allows DApps connect to the wallet to get informations or send/sign transactions."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Language Seed"),": Allows to know if the seed phrase is composed of French or English words."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Current Version"),": Current version of the wallet app installed."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Main Screen Current Page"),": Current page selected on the main screen."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Current version"),": Current version of the installed application.")),(0,r.kt)("p",null,"The second group of information represents the sensitive elements related to security:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Seed"),": Allows to store the wallet seed needed to perform transactions on the Archethic blockchain."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"PIN"),": Allows to store the PIN code in case this authentication method has been chosen."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Password"),": Allows to keep the password in case this authentication method has been chosen."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Yubicloud ID and API Key"),": Allows to keep the authentication information for the management of the OTP with the YubiKey in case this authentication method has been chosen.\nThis information is stored securely."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Keychain secured informations"),": Keychain's informations like keychain's seed, keychain's version and the associated list of services."),(0,r.kt)("li",{parentName:"ul"},"And finally, ",(0,r.kt)("strong",{parentName:"li"},"a secure 256-bit (32 bytes) encryption key")," to secure data on the disk.")),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"Remember that Archethic will never pass on your data to a third party or use your data in any other way than that offered by the application")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"In the case of user preference data"),", we made the choice to store it in a local database ",(0,r.kt)("a",{parentName:"p",href:"https://pub.dev/packages/hive"},"Hive")," rather than the Flutter object ",(0,r.kt)("a",{parentName:"p",href:"https://pub.dev/packages/shared_preferences"},"SharedPreferences")," for performance reasons. All the information is available in this ",(0,r.kt)("a",{parentName:"p",href:"https://medium.com/flutter-community/using-hive-instead-of-sharedpreferences-for-storing-preferences-2d98c9db930f"},"medium article"),".\nThese data are stored in clear text because they are not sensitive."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"On the other hand, the information related to security management must be protected.")," Here again, Hive is used but the stored values are encrypted. Hive provides a helper function to generate a secure encryption key using the ",(0,r.kt)("a",{parentName:"p",href:"https://en.wikipedia.org/wiki/Fortuna_%28PRNG%29"},"Fortuna")," random number generator.\nThe key is stored base64 encoded in a secure space via the ",(0,r.kt)("a",{parentName:"p",href:"https://pub.dev/packages/flutter_secure_storage"},"FlutterSecureStorage library"),"."),(0,r.kt)("h2",{id:"interactions-with-the-archethic-blockchain"},"Interactions with the Archethic blockchain"),(0,r.kt)("p",null,"Based on the Archethic JS SDK, ",(0,r.kt)("a",{parentName:"p",href:"/build/sdk/dart"},(0,r.kt)("strong",{parentName:"a"},"a SDK has been developed in dart"))," and is maintained by the Archethic teams in order to offer internal or community-developed Flutter DApps to interact with the Archethic Blockchain."),(0,r.kt)("p",null,"This open-source SDK ",(0,r.kt)("strong",{parentName:"p"},'"archethic_lib_dart"'),", available on ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/libdart"},"GitHub"),", can be added as dependencies in Dart or Flutter projects via the Flutter libraries and packages sharing site ",(0,r.kt)("a",{parentName:"p",href:"https://pub.dev/"},"Pub.dev"),"."),(0,r.kt)("h2",{id:"setup"},"Setup"),(0,r.kt)("h3",{id:"pre-requisites"},"Pre-requisites"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Flutter 3.24+"),(0,r.kt)("li",{parentName:"ul"},"Dart 3.5+")),(0,r.kt)("h3",{id:"instructions"},"Instructions"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Download the ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/archethic-foundation/archethic-wallet"},"repo")," into a folder"),(0,r.kt)("li",{parentName:"ul"},"Goto the folder and from terminal run ",(0,r.kt)("inlineCode",{parentName:"li"},"flutter pub get")," to get the packages"),(0,r.kt)("li",{parentName:"ul"},"Once packages are installed ",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"You can build and run the program for emulator from VSCode Flutter SDK Tools"),(0,r.kt)("li",{parentName:"ul"},"You can build for android emulator if already installed."))),(0,r.kt)("li",{parentName:"ul"},"Once the packages and installed and application is built"),(0,r.kt)("li",{parentName:"ul"},"Run the program with ",(0,r.kt)("inlineCode",{parentName:"li"},"flutter run"))))}h.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5935],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>m});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var s=n.createContext({}),c=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},p=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=c(a),d=r,m=u["".concat(s,".").concat(d)]||u[d]||h[d]||i;return a?n.createElement(m,o(o({ref:t},p),{},{components:a})):n.createElement(m,o({ref:t},p))}));function m(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,o=new Array(i);o[0]=d;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:r,o[1]=l;for(var c=2;c{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>l,toc:()=>c});var n=a(87462),r=(a(67294),a(3905));a(8209);const i={id:"archethic-wallet",title:"Archethic Wallet (aeWallet)"},o=void 0,l={unversionedId:"participate/wallet/archethic-wallet",id:"participate/wallet/archethic-wallet",title:"Archethic Wallet (aeWallet)",description:"Archethic has developed a fully decentralized and non-custodial cryptocurrency hot wallet that enables users to safely manage assets on Layer 1 Archethic blockchain.",source:"@site/docs/participate/wallet/README.md",sourceDirName:"participate/wallet",slug:"/participate/wallet/",permalink:"/participate/wallet/",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"archethic-wallet",title:"Archethic Wallet (aeWallet)"},sidebar:"docs",previous:{title:"Farming",permalink:"/participate/dex/Guide_Usage/farming"},next:{title:"Communication with DApps",permalink:"/participate/wallet/dapps-communication"}},s={},c=[{value:"Features",id:"features",level:2},{value:"How to download the app",id:"how-to-download-the-app",level:2},{value:"Framework",id:"framework",level:2},{value:"Seed",id:"seed",level:2},{value:"Securing the application",id:"securing-the-application",level:2},{value:"Data store",id:"data-store",level:2},{value:"Interactions with the Archethic blockchain",id:"interactions-with-the-archethic-blockchain",level:2},{value:"Setup",id:"setup",level:2},{value:"Pre-requisites",id:"pre-requisites",level:3},{value:"Instructions",id:"instructions",level:3}],p={toc:c},u="wrapper";function h(e){let{components:t,...a}=e;return(0,r.kt)(u,(0,n.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Archethic has developed a fully decentralized and non-custodial cryptocurrency hot wallet that enables users to safely manage assets on Layer 1 Archethic blockchain.")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"No signup or KYC needed, users just control their services and access keychain, protected by different secure access methods like PIN Code, Password, YubiKey like devices and Biometrics.")),(0,r.kt)("h2",{id:"features"},"Features"),(0,r.kt)("p",null,"Archethic Wallet has implemented the following features:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Main features",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Decentralized keychain management"),(0,r.kt)("li",{parentName:"ul"},"Multiple accounts' management"),(0,r.kt)("li",{parentName:"ul"},"Support for transactions (Sending and Receiving UCO or Fungibles Tokens, NFTs)"),(0,r.kt)("li",{parentName:"ul"},"DeFi features: swap, liquidity management, farming with lock, bridge (soon)"),(0,r.kt)("li",{parentName:"ul"},"List of recent transactions"))),(0,r.kt)("li",{parentName:"ul"},"Security",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Security access with Password, PIN, Yubicloud OTP, Face ID, Touch ID"),(0,r.kt)("li",{parentName:"ul"},"Use of 24 Words Mnemonics"))),(0,r.kt)("li",{parentName:"ul"},"Customization",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Support for English and French Language"))),(0,r.kt)("li",{parentName:"ul"},"Other features",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Access to CEX and DEX to buy UCO"),(0,r.kt)("li",{parentName:"ul"},"Share address with QR Code or mobile share feature"),(0,r.kt)("li",{parentName:"ul"},"UCO and certified tokens Price chart")))),(0,r.kt)("h2",{id:"how-to-download-the-app"},"How to download the app"),(0,r.kt)("a",{href:"https://www.archethic.net/wallet.html",target:"_blank"},"Download the wallet")," version that corresponds to the platform you want to use it on from the Archethic website or the app stores.",(0,r.kt)("h2",{id:"framework"},"Framework"),(0,r.kt)("p",null,"Archethic developed the wallet using Flutter based on Dart language.\nFlutter is an open-source mobile application development framework from Google. The main reason for its popularity is that it supports the creation of cross-platform applications. Flutter is also used to create interactive apps that run on web pages or on the desktop."),(0,r.kt)("p",null,"Here are some of Flutter's features*"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Single code base for Android, iOS, Windows, Linux, macOS, Web, Extension"),": This approach simplifies and reduces the development time, cost, and maintenance is also an easy task. The Flutter-based user interface can be installed virtually on any platform. It has its own rendering engine that allows developers to keep the UI as it is while moving to another platform. As a result, application users can enjoy an excellent native-like experience on various platforms."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Open-source and made by Google"),": Flutter is a popular choice among developers because of the huge community support. Google designed the Flutter framework with all the security issues of modern applications in mind. One can find reliable and well-tested plugins in Flutter to mitigate security risks such as user authentication flaws, malicious code injections and data leaks."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Dart Programming"),": Flutter uses an easy to learn and implement programming language called Dart, which is Google's general purpose programming language."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Performance"),": As a cross-platform framework, Flutter offers unmatched performance compared to its competitors. Flutter compiles designs to native code. Unlike React Native, Flutter renders widgets directly from the native library rather than downloading libraries and components to the device before rendering.")),(0,r.kt)("p",null,(0,r.kt)("em",{parentName:"p"},"Source: ",(0,r.kt)("a",{parentName:"em",href:"https://mobiskill.fr/blog/conseils-emploi-tech/pourquoi-utiliser-flutter-en-2022/"},"https://mobiskill.fr/blog/conseils-emploi-tech/pourquoi-utiliser-flutter-en-2022/"))),(0,r.kt)("h2",{id:"seed"},"Seed"),(0,r.kt)("p",null,"When the wallet is created, a seed is randomly created from a cryptographically secure random number generator provided by Dart."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-dart"}," static String generateSeed() {\n String result = '';\n const String chars = 'abcdef0123456789';\n final Random rng = Random.secure();\n for (int i = 0; i < 64; i++) {\n result += chars[rng.nextInt(chars.length)];\n }\n return result.toUpperCase();\n }\n")),(0,r.kt)("p",null,"In order to make the seed more accessible, BIP39 is used and aims to provide a method of simplifying the reading of the seed using a series of mnemonic words. BIP39 takes random words (usually from the English language, although they can be from another language) and creates a long phrase with them, usually 12 to 24 words. In the case of the Archethic wallet, we use 24 words because the higher the number of words, the greater the entropy and security attributable to the resulting sentence. These words are chosen from a dictionary of 2048 words. The flutter library bip39_mnemonic is thus used with English and French dictionaries."),(0,r.kt)("p",null,"In the case of wallet restoration, the library bip39_mnemonic allows to find the seed from the seed phrase."),(0,r.kt)("h2",{id:"securing-the-application"},"Securing the application"),(0,r.kt)("p",null,"Access to the application and interactions with the blockchain are secured so that certain actions are not done beyond the user's control.\nFollowing are the ways to access:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"by ",(0,r.kt)("strong",{parentName:"li"},"PIN code"),", comprising of 6 digits, with the possibility to mix the numbers of the keyboard to reduce the risks of access to your code by observation,"),(0,r.kt)("li",{parentName:"ul"},"by ",(0,r.kt)("strong",{parentName:"li"},"password"),","),(0,r.kt)("li",{parentName:"ul"},"by using a ",(0,r.kt)("strong",{parentName:"li"},"YubiKey"),", it is an electronic authentication device to secure your access. Whether you are using NFC with your mobile or USB on your desktop, you can identify yourself with this key,"),(0,r.kt)("li",{parentName:"ul"},"by the ",(0,r.kt)("strong",{parentName:"li"},"touch ID or face ID system"),", depending on your device capabilities.")),(0,r.kt)("p",null,"In the case of ",(0,r.kt)("strong",{parentName:"p"},"PIN")," and ",(0,r.kt)("strong",{parentName:"p"},"password"),', authentication information is stored locally (see "What data is stored in my device?").\nIn the case of ',(0,r.kt)("strong",{parentName:"p"},"touch ID or Face ID"),", the ",(0,r.kt)("a",{parentName:"p",href:"https://pub.dev/packages/local_auth"},"Flutter Local Auth library")," provides the means to authenticate on devices supporting fingerprint or facial recognition authentication.\nFinally, for ",(0,r.kt)("strong",{parentName:"p"},"OTP via Yubicloud"),": Yubico OTP is a simple yet strong authentication mechanism that is supported by all ",(0,r.kt)("strong",{parentName:"p"},"YubiKeys")," out of the box. Yubico OTP can be used as the second factor in a 2-factor authentication scheme or on its own, providing 1-factor authentication. ",(0,r.kt)("a",{parentName:"p",href:"https://www.yubico.com/products/yubicloud/"},"YubiCloud")," is the name of Yubico\u2019s web service for verifying OTPs. Before using YubiCloud, you need to get an API key from ",(0,r.kt)("a",{parentName:"p",href:"https://upgrade.yubico.com/getapikey/"},"here")," -\u2009it is quick, free and helps us in preventing misuse of YubiCloud. "),(0,r.kt)("h2",{id:"data-store"},"Data store"),(0,r.kt)("p",null,"Archethic Wallet stores a set of information so that the application is functional in both online and offline mode."),(0,r.kt)("p",null,"The first group of information represents the globally available user preferences:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"First Launch"),": Allows to know if this is the first launch of the application in order to clear the keystore for iOS. Indeed, iOS key store is persistent, so if this is first launch then we will clear the keystore."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Authentification Method"),": Allows to know which authentication mode is used (PIN, password, YubiKey, biometrics)."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Current Currency"),": Allows you to know what currency is used in the application."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Current Language"),": Allows you to know which language is used in the application."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Current Primary Setting"),": Allows to know if the currency displayed in priority is Fiat or Crypto."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Current Network"),": Allows to know if the wallet is connected to mainnet, testnet or to a local node whose endpoint is recorded in the following information."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Current Network Endpoint"),": Allows to know the address of the local node."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Current Theme"),": Allows to know which theme is used in the application."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Lock"),": Allows to know if it is necessary to authenticate at the launching of the application."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Lock Timeout"),": Allows to know after how long the application requires authentication at its launch if the user has left the application open to browse for another one for example."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Auto Lock Date"),": Contains the timestamp of the last autolock."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Privacy Mask"),": Hides or unhides the application when switching applications"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Pin Pad Shuffle"),": Allows you to determine whether the PIN code keyboard should be shuffled when entering."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Last Interaction Date"),": Records the timestamp of the last interaction with the application to calculate the duration of inactivity."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Has Shown Root Warning"),": Finds out whether the user has been informed that the device has been rooted."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Show Balances"),": Allows you to determine if the financial information should be displayed."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Show Price Chart"),": Allows you to determine whether the graph and indicators of the UCO price chart should be displayed."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Price Chart Scale"),": Current scale of the price chart."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Active Vibrations"),": Allows to know if at each action, a small vibration is emitted on the mobiles."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Active Notifications"),": Allows to know if the notifications of reception of UCO are active or not."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Active RPC Server"),": Allows DApps connect to the wallet to get informations or send/sign transactions."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Language Seed"),": Allows to know if the seed phrase is composed of French or English words."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Current Version"),": Current version of the wallet app installed."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Main Screen Current Page"),": Current page selected on the main screen."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Current version"),": Current version of the installed application.")),(0,r.kt)("p",null,"The second group of information represents the sensitive elements related to security:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Seed"),": Allows to store the wallet seed needed to perform transactions on the Archethic blockchain."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"PIN"),": Allows to store the PIN code in case this authentication method has been chosen."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Password"),": Allows to keep the password in case this authentication method has been chosen."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Yubicloud ID and API Key"),": Allows to keep the authentication information for the management of the OTP with the YubiKey in case this authentication method has been chosen.\nThis information is stored securely."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Keychain secured informations"),": Keychain's informations like keychain's seed, keychain's version and the associated list of services."),(0,r.kt)("li",{parentName:"ul"},"And finally, ",(0,r.kt)("strong",{parentName:"li"},"a secure 256-bit (32 bytes) encryption key")," to secure data on the disk.")),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"Remember that Archethic will never pass on your data to a third party or use your data in any other way than that offered by the application")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"In the case of user preference data"),", we made the choice to store it in a local database ",(0,r.kt)("a",{parentName:"p",href:"https://pub.dev/packages/hive"},"Hive")," rather than the Flutter object ",(0,r.kt)("a",{parentName:"p",href:"https://pub.dev/packages/shared_preferences"},"SharedPreferences")," for performance reasons. All the information is available in this ",(0,r.kt)("a",{parentName:"p",href:"https://medium.com/flutter-community/using-hive-instead-of-sharedpreferences-for-storing-preferences-2d98c9db930f"},"medium article"),".\nThese data are stored in clear text because they are not sensitive."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"On the other hand, the information related to security management must be protected.")," Here again, Hive is used but the stored values are encrypted. Hive provides a helper function to generate a secure encryption key using the ",(0,r.kt)("a",{parentName:"p",href:"https://en.wikipedia.org/wiki/Fortuna_%28PRNG%29"},"Fortuna")," random number generator.\nThe key is stored base64 encoded in a secure space via the ",(0,r.kt)("a",{parentName:"p",href:"https://pub.dev/packages/flutter_secure_storage"},"FlutterSecureStorage library"),"."),(0,r.kt)("h2",{id:"interactions-with-the-archethic-blockchain"},"Interactions with the Archethic blockchain"),(0,r.kt)("p",null,"Based on the Archethic JS SDK, ",(0,r.kt)("a",{parentName:"p",href:"/build/sdk/dart"},(0,r.kt)("strong",{parentName:"a"},"a SDK has been developed in dart"))," and is maintained by the Archethic teams in order to offer internal or community-developed Flutter DApps to interact with the Archethic Blockchain."),(0,r.kt)("p",null,"This open-source SDK ",(0,r.kt)("strong",{parentName:"p"},'"archethic_lib_dart"'),", available on ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/libdart"},"GitHub"),", can be added as dependencies in Dart or Flutter projects via the Flutter libraries and packages sharing site ",(0,r.kt)("a",{parentName:"p",href:"https://pub.dev/"},"Pub.dev"),"."),(0,r.kt)("h2",{id:"setup"},"Setup"),(0,r.kt)("h3",{id:"pre-requisites"},"Pre-requisites"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Flutter 3.24+"),(0,r.kt)("li",{parentName:"ul"},"Dart 3.5+")),(0,r.kt)("h3",{id:"instructions"},"Instructions"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Download the ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/archethic-foundation/archethic-wallet"},"repo")," into a folder"),(0,r.kt)("li",{parentName:"ul"},"Goto the folder and from terminal run ",(0,r.kt)("inlineCode",{parentName:"li"},"flutter pub get")," to get the packages"),(0,r.kt)("li",{parentName:"ul"},"Once packages are installed ",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"You can build and run the program for emulator from VSCode Flutter SDK Tools"),(0,r.kt)("li",{parentName:"ul"},"You can build for android emulator if already installed."))),(0,r.kt)("li",{parentName:"ul"},"Once the packages and installed and application is built"),(0,r.kt)("li",{parentName:"ul"},"Run the program with ",(0,r.kt)("inlineCode",{parentName:"li"},"flutter run"))))}h.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file diff --git a/assets/js/7764509b.f2df9592.js b/assets/js/7764509b.51ebbb5f.js similarity index 99% rename from assets/js/7764509b.f2df9592.js rename to assets/js/7764509b.51ebbb5f.js index 31a51a9b3..c2d687e8c 100644 --- a/assets/js/7764509b.f2df9592.js +++ b/assets/js/7764509b.51ebbb5f.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1996],{3905:(e,a,t)=>{t.d(a,{Zo:()=>m,kt:()=>p});var n=t(67294);function r(e,a,t){return a in e?Object.defineProperty(e,a,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[a]=t,e}function i(e,a){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);a&&(n=n.filter((function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable}))),t.push.apply(t,n)}return t}function o(e){for(var a=1;a=0||(r[t]=e[t]);return r}(e,a);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var c=n.createContext({}),s=function(e){var a=n.useContext(c),t=a;return e&&(t="function"==typeof e?e(a):o(o({},a),e)),t},m=function(e){var a=s(e.components);return n.createElement(c.Provider,{value:a},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var a=e.children;return n.createElement(n.Fragment,{},a)}},b=n.forwardRef((function(e,a){var t=e.components,r=e.mdxType,i=e.originalType,c=e.parentName,m=l(e,["components","mdxType","originalType","parentName"]),d=s(t),b=r,p=d["".concat(c,".").concat(b)]||d[b]||u[b]||i;return t?n.createElement(p,o(o({ref:a},m),{},{components:t})):n.createElement(p,o({ref:a},m))}));function p(e,a){var t=arguments,r=a&&a.mdxType;if("string"==typeof e||r){var i=t.length,o=new Array(i);o[0]=b;var l={};for(var c in a)hasOwnProperty.call(a,c)&&(l[c]=a[c]);l.originalType=e,l[d]="string"==typeof e?e:r,o[1]=l;for(var s=2;s{t.r(a),t.d(a,{Badge:()=>u,Bullet:()=>m,Details:()=>p,SpecifiedBy:()=>d,assets:()=>s,contentTitle:()=>l,default:()=>h,frontMatter:()=>o,metadata:()=>c,toc:()=>b});var n=t(87462),r=t(67294),i=t(3905);t(8209);const o={id:"beacon-chain-summary",title:"BeaconChainSummary",hide_table_of_contents:!1},l=void 0,c={unversionedId:"build/api/schema/objects/beacon-chain-summary",id:"build/api/schema/objects/beacon-chain-summary",title:"BeaconChainSummary",description:"[Beacon Chain Summary] represents the beacon chain aggregate for a certain date",source:"@site/docs/build/api/schema/objects/beacon-chain-summary.mdx",sourceDirName:"build/api/schema/objects",slug:"/build/api/schema/objects/beacon-chain-summary",permalink:"/build/api/schema/objects/beacon-chain-summary",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"beacon-chain-summary",title:"BeaconChainSummary",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"Balance",permalink:"/build/api/schema/objects/balance"},next:{title:"ConsumedInputs",permalink:"/build/api/schema/objects/consumed-inputs"}},s={},m=()=>(0,i.kt)(r.Fragment,null,(0,i.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),d=e=>(0,i.kt)(r.Fragment,null,"Specification",(0,i.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,i.kt)(r.Fragment,null,(0,i.kt)("span",{className:e.class},e.text)),b=[{value:"Fields",id:"fields",level:3},{value:'BeaconChainSummary.availabilityAddingTimeInt ',id:"code-style-fontweight-normal-beaconchainsummarybavailabilityaddingtimebcodeint-",level:4},{value:'BeaconChainSummary.p2pAvailabilitiesP2pAvailabilities ',id:"code-style-fontweight-normal-beaconchainsummarybp2pavailabilitiesbcodep2pavailabilities-",level:4},{value:'BeaconChainSummary.summaryTimeTimestamp ',id:"code-style-fontweight-normal-beaconchainsummarybsummarytimebcodetimestamp-",level:4},{value:'BeaconChainSummary.transactionSummaries[TransactionSummary] ',id:"code-style-fontweight-normal-beaconchainsummarybtransactionsummariesbcodetransactionsummary--",level:4},{value:'BeaconChainSummary.transactionSummaries.pagingOffsetNonNegInteger ',id:"code-style-fontweight-normal-beaconchainsummarytransactionsummariesbpagingoffsetbcodenonneginteger-",level:5},{value:'BeaconChainSummary.versionInt ',id:"code-style-fontweight-normal-beaconchainsummarybversionbcodeint-",level:4},{value:"Returned by",id:"returned-by",level:3}],p=e=>{let{dataOpen:a,dataClose:t,children:o,startOpen:l=!1}=e;const[c,s]=(0,r.useState)(l);return(0,i.kt)("details",(0,n.Z)({},c?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,i.kt)("summary",{onClick:e=>{e.preventDefault(),s((e=>!e))},style:{listStyle:"none"}},c?a:t),c&&o)},y={Bullet:m,SpecifiedBy:d,Badge:u,toc:b,Details:p},g="wrapper";function h(e){let{components:a,...t}=e;return(0,i.kt)(g,(0,n.Z)({},y,t,{components:a,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"[Beacon Chain Summary]"," represents the beacon chain aggregate for a certain date"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-graphql"},"type BeaconChainSummary {\n availabilityAddingTime: Int\n p2pAvailabilities: P2pAvailabilities\n summaryTime: Timestamp\n transactionSummaries(\n limit: PosInteger\n pagingOffset: NonNegInteger\n ): [TransactionSummary]\n version: Int\n}\n")),(0,i.kt)("h3",{id:"fields"},"Fields"),(0,i.kt)("h4",{id:"code-style-fontweight-normal-beaconchainsummarybavailabilityaddingtimebcodeint-"},(0,i.kt)("a",{parentName:"h4",href:"#"},(0,i.kt)("code",{style:{fontWeight:"normal"}},"BeaconChainSummary.",(0,i.kt)("b",null,"availabilityAddingTime"))),(0,i.kt)(m,{mdxType:"Bullet"}),(0,i.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/int"},(0,i.kt)("inlineCode",{parentName:"a"},"Int"))," ",(0,i.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,i.kt)("blockquote",null),(0,i.kt)("h4",{id:"code-style-fontweight-normal-beaconchainsummarybp2pavailabilitiesbcodep2pavailabilities-"},(0,i.kt)("a",{parentName:"h4",href:"#"},(0,i.kt)("code",{style:{fontWeight:"normal"}},"BeaconChainSummary.",(0,i.kt)("b",null,"p2pAvailabilities"))),(0,i.kt)(m,{mdxType:"Bullet"}),(0,i.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/p2-p-availabilities"},(0,i.kt)("inlineCode",{parentName:"a"},"P2pAvailabilities"))," ",(0,i.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,i.kt)("blockquote",null),(0,i.kt)("h4",{id:"code-style-fontweight-normal-beaconchainsummarybsummarytimebcodetimestamp-"},(0,i.kt)("a",{parentName:"h4",href:"#"},(0,i.kt)("code",{style:{fontWeight:"normal"}},"BeaconChainSummary.",(0,i.kt)("b",null,"summaryTime"))),(0,i.kt)(m,{mdxType:"Bullet"}),(0,i.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/timestamp"},(0,i.kt)("inlineCode",{parentName:"a"},"Timestamp"))," ",(0,i.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,i.kt)("blockquote",null),(0,i.kt)("h4",{id:"code-style-fontweight-normal-beaconchainsummarybtransactionsummariesbcodetransactionsummary--"},(0,i.kt)("a",{parentName:"h4",href:"#"},(0,i.kt)("code",{style:{fontWeight:"normal"}},"BeaconChainSummary.",(0,i.kt)("b",null,"transactionSummaries"))),(0,i.kt)(m,{mdxType:"Bullet"}),(0,i.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/transaction-summary"},(0,i.kt)("inlineCode",{parentName:"a"},"[TransactionSummary]"))," ",(0,i.kt)(u,{class:"badge badge--secondary",text:"list",mdxType:"Badge"})," ",(0,i.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,i.kt)("blockquote",null,(0,i.kt)("h5",{parentName:"blockquote",id:"code-style-fontweight-normal-beaconchainsummarytransactionsummariesblimitbcodeposinteger-"},(0,i.kt)("a",{parentName:"h5",href:"#"},(0,i.kt)("code",{style:{fontWeight:"normal"}},"BeaconChainSummary.transactionSummaries.",(0,i.kt)("b",null,"limit"))),(0,i.kt)(m,{mdxType:"Bullet"}),(0,i.kt)("a",{parentName:"h5",href:"/build/api/schema/scalars/pos-integer"},(0,i.kt)("inlineCode",{parentName:"a"},"PosInteger"))," ",(0,i.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"}))),(0,i.kt)("h5",{id:"code-style-fontweight-normal-beaconchainsummarytransactionsummariesbpagingoffsetbcodenonneginteger-"},(0,i.kt)("a",{parentName:"h5",href:"#"},(0,i.kt)("code",{style:{fontWeight:"normal"}},"BeaconChainSummary.transactionSummaries.",(0,i.kt)("b",null,"pagingOffset"))),(0,i.kt)(m,{mdxType:"Bullet"}),(0,i.kt)("a",{parentName:"h5",href:"/build/api/schema/scalars/non-neg-integer"},(0,i.kt)("inlineCode",{parentName:"a"},"NonNegInteger"))," ",(0,i.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,i.kt)("blockquote",null),(0,i.kt)("h4",{id:"code-style-fontweight-normal-beaconchainsummarybversionbcodeint-"},(0,i.kt)("a",{parentName:"h4",href:"#"},(0,i.kt)("code",{style:{fontWeight:"normal"}},"BeaconChainSummary.",(0,i.kt)("b",null,"version"))),(0,i.kt)(m,{mdxType:"Bullet"}),(0,i.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/int"},(0,i.kt)("inlineCode",{parentName:"a"},"Int"))," ",(0,i.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,i.kt)("blockquote",null),(0,i.kt)("h3",{id:"returned-by"},"Returned by"),(0,i.kt)("p",null,(0,i.kt)("a",{parentName:"p",href:"/build/api/schema/queries/beacon-chain-summary"},(0,i.kt)("inlineCode",{parentName:"a"},"beaconChainSummary"))," ",(0,i.kt)(u,{class:"badge badge--secondary",text:"query",mdxType:"Badge"})))}h.isMDXComponent=!0},8209:(e,a,t)=>{t(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1996],{3905:(e,a,t)=>{t.d(a,{Zo:()=>m,kt:()=>p});var n=t(67294);function r(e,a,t){return a in e?Object.defineProperty(e,a,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[a]=t,e}function i(e,a){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);a&&(n=n.filter((function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable}))),t.push.apply(t,n)}return t}function o(e){for(var a=1;a=0||(r[t]=e[t]);return r}(e,a);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var c=n.createContext({}),s=function(e){var a=n.useContext(c),t=a;return e&&(t="function"==typeof e?e(a):o(o({},a),e)),t},m=function(e){var a=s(e.components);return n.createElement(c.Provider,{value:a},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var a=e.children;return n.createElement(n.Fragment,{},a)}},b=n.forwardRef((function(e,a){var t=e.components,r=e.mdxType,i=e.originalType,c=e.parentName,m=l(e,["components","mdxType","originalType","parentName"]),d=s(t),b=r,p=d["".concat(c,".").concat(b)]||d[b]||u[b]||i;return t?n.createElement(p,o(o({ref:a},m),{},{components:t})):n.createElement(p,o({ref:a},m))}));function p(e,a){var t=arguments,r=a&&a.mdxType;if("string"==typeof e||r){var i=t.length,o=new Array(i);o[0]=b;var l={};for(var c in a)hasOwnProperty.call(a,c)&&(l[c]=a[c]);l.originalType=e,l[d]="string"==typeof e?e:r,o[1]=l;for(var s=2;s{t.r(a),t.d(a,{Badge:()=>u,Bullet:()=>m,Details:()=>p,SpecifiedBy:()=>d,assets:()=>s,contentTitle:()=>l,default:()=>h,frontMatter:()=>o,metadata:()=>c,toc:()=>b});var n=t(87462),r=t(67294),i=t(3905);t(8209);const o={id:"beacon-chain-summary",title:"BeaconChainSummary",hide_table_of_contents:!1},l=void 0,c={unversionedId:"build/api/schema/objects/beacon-chain-summary",id:"build/api/schema/objects/beacon-chain-summary",title:"BeaconChainSummary",description:"[Beacon Chain Summary] represents the beacon chain aggregate for a certain date",source:"@site/docs/build/api/schema/objects/beacon-chain-summary.mdx",sourceDirName:"build/api/schema/objects",slug:"/build/api/schema/objects/beacon-chain-summary",permalink:"/build/api/schema/objects/beacon-chain-summary",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"beacon-chain-summary",title:"BeaconChainSummary",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"Balance",permalink:"/build/api/schema/objects/balance"},next:{title:"ConsumedInputs",permalink:"/build/api/schema/objects/consumed-inputs"}},s={},m=()=>(0,i.kt)(r.Fragment,null,(0,i.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),d=e=>(0,i.kt)(r.Fragment,null,"Specification",(0,i.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,i.kt)(r.Fragment,null,(0,i.kt)("span",{className:e.class},e.text)),b=[{value:"Fields",id:"fields",level:3},{value:'BeaconChainSummary.availabilityAddingTimeInt ',id:"code-style-fontweight-normal-beaconchainsummarybavailabilityaddingtimebcodeint-",level:4},{value:'BeaconChainSummary.p2pAvailabilitiesP2pAvailabilities ',id:"code-style-fontweight-normal-beaconchainsummarybp2pavailabilitiesbcodep2pavailabilities-",level:4},{value:'BeaconChainSummary.summaryTimeTimestamp ',id:"code-style-fontweight-normal-beaconchainsummarybsummarytimebcodetimestamp-",level:4},{value:'BeaconChainSummary.transactionSummaries[TransactionSummary] ',id:"code-style-fontweight-normal-beaconchainsummarybtransactionsummariesbcodetransactionsummary--",level:4},{value:'BeaconChainSummary.transactionSummaries.pagingOffsetNonNegInteger ',id:"code-style-fontweight-normal-beaconchainsummarytransactionsummariesbpagingoffsetbcodenonneginteger-",level:5},{value:'BeaconChainSummary.versionInt ',id:"code-style-fontweight-normal-beaconchainsummarybversionbcodeint-",level:4},{value:"Returned by",id:"returned-by",level:3}],p=e=>{let{dataOpen:a,dataClose:t,children:o,startOpen:l=!1}=e;const[c,s]=(0,r.useState)(l);return(0,i.kt)("details",(0,n.Z)({},c?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,i.kt)("summary",{onClick:e=>{e.preventDefault(),s((e=>!e))},style:{listStyle:"none"}},c?a:t),c&&o)},y={Bullet:m,SpecifiedBy:d,Badge:u,toc:b,Details:p},g="wrapper";function h(e){let{components:a,...t}=e;return(0,i.kt)(g,(0,n.Z)({},y,t,{components:a,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"[Beacon Chain Summary]"," represents the beacon chain aggregate for a certain date"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-graphql"},"type BeaconChainSummary {\n availabilityAddingTime: Int\n p2pAvailabilities: P2pAvailabilities\n summaryTime: Timestamp\n transactionSummaries(\n limit: PosInteger\n pagingOffset: NonNegInteger\n ): [TransactionSummary]\n version: Int\n}\n")),(0,i.kt)("h3",{id:"fields"},"Fields"),(0,i.kt)("h4",{id:"code-style-fontweight-normal-beaconchainsummarybavailabilityaddingtimebcodeint-"},(0,i.kt)("a",{parentName:"h4",href:"#"},(0,i.kt)("code",{style:{fontWeight:"normal"}},"BeaconChainSummary.",(0,i.kt)("b",null,"availabilityAddingTime"))),(0,i.kt)(m,{mdxType:"Bullet"}),(0,i.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/int"},(0,i.kt)("inlineCode",{parentName:"a"},"Int"))," ",(0,i.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,i.kt)("blockquote",null),(0,i.kt)("h4",{id:"code-style-fontweight-normal-beaconchainsummarybp2pavailabilitiesbcodep2pavailabilities-"},(0,i.kt)("a",{parentName:"h4",href:"#"},(0,i.kt)("code",{style:{fontWeight:"normal"}},"BeaconChainSummary.",(0,i.kt)("b",null,"p2pAvailabilities"))),(0,i.kt)(m,{mdxType:"Bullet"}),(0,i.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/p2-p-availabilities"},(0,i.kt)("inlineCode",{parentName:"a"},"P2pAvailabilities"))," ",(0,i.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,i.kt)("blockquote",null),(0,i.kt)("h4",{id:"code-style-fontweight-normal-beaconchainsummarybsummarytimebcodetimestamp-"},(0,i.kt)("a",{parentName:"h4",href:"#"},(0,i.kt)("code",{style:{fontWeight:"normal"}},"BeaconChainSummary.",(0,i.kt)("b",null,"summaryTime"))),(0,i.kt)(m,{mdxType:"Bullet"}),(0,i.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/timestamp"},(0,i.kt)("inlineCode",{parentName:"a"},"Timestamp"))," ",(0,i.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,i.kt)("blockquote",null),(0,i.kt)("h4",{id:"code-style-fontweight-normal-beaconchainsummarybtransactionsummariesbcodetransactionsummary--"},(0,i.kt)("a",{parentName:"h4",href:"#"},(0,i.kt)("code",{style:{fontWeight:"normal"}},"BeaconChainSummary.",(0,i.kt)("b",null,"transactionSummaries"))),(0,i.kt)(m,{mdxType:"Bullet"}),(0,i.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/transaction-summary"},(0,i.kt)("inlineCode",{parentName:"a"},"[TransactionSummary]"))," ",(0,i.kt)(u,{class:"badge badge--secondary",text:"list",mdxType:"Badge"})," ",(0,i.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,i.kt)("blockquote",null,(0,i.kt)("h5",{parentName:"blockquote",id:"code-style-fontweight-normal-beaconchainsummarytransactionsummariesblimitbcodeposinteger-"},(0,i.kt)("a",{parentName:"h5",href:"#"},(0,i.kt)("code",{style:{fontWeight:"normal"}},"BeaconChainSummary.transactionSummaries.",(0,i.kt)("b",null,"limit"))),(0,i.kt)(m,{mdxType:"Bullet"}),(0,i.kt)("a",{parentName:"h5",href:"/build/api/schema/scalars/pos-integer"},(0,i.kt)("inlineCode",{parentName:"a"},"PosInteger"))," ",(0,i.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"}))),(0,i.kt)("h5",{id:"code-style-fontweight-normal-beaconchainsummarytransactionsummariesbpagingoffsetbcodenonneginteger-"},(0,i.kt)("a",{parentName:"h5",href:"#"},(0,i.kt)("code",{style:{fontWeight:"normal"}},"BeaconChainSummary.transactionSummaries.",(0,i.kt)("b",null,"pagingOffset"))),(0,i.kt)(m,{mdxType:"Bullet"}),(0,i.kt)("a",{parentName:"h5",href:"/build/api/schema/scalars/non-neg-integer"},(0,i.kt)("inlineCode",{parentName:"a"},"NonNegInteger"))," ",(0,i.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,i.kt)("blockquote",null),(0,i.kt)("h4",{id:"code-style-fontweight-normal-beaconchainsummarybversionbcodeint-"},(0,i.kt)("a",{parentName:"h4",href:"#"},(0,i.kt)("code",{style:{fontWeight:"normal"}},"BeaconChainSummary.",(0,i.kt)("b",null,"version"))),(0,i.kt)(m,{mdxType:"Bullet"}),(0,i.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/int"},(0,i.kt)("inlineCode",{parentName:"a"},"Int"))," ",(0,i.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,i.kt)("blockquote",null),(0,i.kt)("h3",{id:"returned-by"},"Returned by"),(0,i.kt)("p",null,(0,i.kt)("a",{parentName:"p",href:"/build/api/schema/queries/beacon-chain-summary"},(0,i.kt)("inlineCode",{parentName:"a"},"beaconChainSummary"))," ",(0,i.kt)(u,{class:"badge badge--secondary",text:"query",mdxType:"Badge"})))}h.isMDXComponent=!0},8209:(e,a,t)=>{t(67294)}}]); \ No newline at end of file diff --git a/assets/js/777b0dfa.e2fe4569.js b/assets/js/777b0dfa.847d535a.js similarity index 97% rename from assets/js/777b0dfa.e2fe4569.js rename to assets/js/777b0dfa.847d535a.js index 06e2f4381..67fa15850 100644 --- a/assets/js/777b0dfa.e2fe4569.js +++ b/assets/js/777b0dfa.847d535a.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7849],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>h});var r=n(67294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l=r.createContext({}),s=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=s(e.components);return r.createElement(l.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,a=e.originalType,l=e.parentName,c=d(e,["components","mdxType","originalType","parentName"]),p=s(n),y=i,h=p["".concat(l,".").concat(y)]||p[y]||u[y]||a;return n?r.createElement(h,o(o({ref:t},c),{},{components:n})):r.createElement(h,o({ref:t},c))}));function h(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=n.length,o=new Array(a);o[0]=y;var d={};for(var l in t)hasOwnProperty.call(t,l)&&(d[l]=t[l]);d.originalType=e,d[p]="string"==typeof e?e:i,o[1]=d;for(var s=2;s{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>u,frontMatter:()=>a,metadata:()=>d,toc:()=>s});var r=n(87462),i=(n(67294),n(3905));n(8209);const a={id:"decentralized-id",title:"Decentralized Identity"},o=void 0,d={unversionedId:"learn/decentralized-id/decentralized-id",id:"learn/decentralized-id/decentralized-id",title:"Decentralized Identity",description:"Identity",source:"@site/docs/learn/decentralized-id/README.md",sourceDirName:"learn/decentralized-id",slug:"/learn/decentralized-id/",permalink:"/learn/decentralized-id/",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"decentralized-id",title:"Decentralized Identity"},sidebar:"docs",previous:{title:"Hardware Root of Trust",permalink:"/learn/cryptography/hardware-root-of-trust"},next:{title:"Keychain",permalink:"/learn/decentralized-id/keychain"}},l={},s=[{value:"Identity",id:"identity",level:2},{value:"Password-less",id:"password-less",level:2}],c={toc:s},p="wrapper";function u(e){let{components:t,...n}=e;return(0,i.kt)(p,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"identity"},"Identity"),(0,i.kt)("p",null,"Archethic was designed mainly to resolve one big issue that we are facing right now in the technology: provide an secure and easy way to identify ourselves."),(0,i.kt)("p",null,"Decentralized identity avoids the need of entrusting one's identity to a third party, who might find itself in a conflict of interest and exploit our identity without our knowledge.\nThis person retains sole control of his/her identity, which is stored on a multitude of nodes ensuring its durability and integrity."),(0,i.kt)("p",null,"Hence Archethic's decentralized identity is brought by the Archethic transaction chain which enables authorization, end to end encryption and upgradability in the decentralized network."),(0,i.kt)("p",null,"The identity is or will be compatible and interoperable with others standard in the industry such as W3C DID, FIDO2, WebAuthn, etc."),(0,i.kt)("h2",{id:"password-less"},"Password-less"),(0,i.kt)("p",null,"While digital identity is being standardized, we also designed a new way to connect and access this identy: password-less authentication."),(0,i.kt)("p",null,"Embedded in the blockchain, on-chain wallet access allows anyone to identify themselves using several methods: biometric, hardware (usb, ledger), or event password. (We don't want to prevent passphrase to being use, just keep it as the lowest secure authentication method)."),(0,i.kt)("p",null,"For this reason we have created a ",(0,i.kt)("a",{parentName:"p",href:"/learn/decentralized-id/keychain"},"Keychain"),", a new way to access our private keys for several services easily."),(0,i.kt)("p",null,"The idea of an on-chain wallet, end to end encrypted wallet, makes the password-less possible in a near future."))}u.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7849],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>h});var r=n(67294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l=r.createContext({}),s=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=s(e.components);return r.createElement(l.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,a=e.originalType,l=e.parentName,c=d(e,["components","mdxType","originalType","parentName"]),p=s(n),y=i,h=p["".concat(l,".").concat(y)]||p[y]||u[y]||a;return n?r.createElement(h,o(o({ref:t},c),{},{components:n})):r.createElement(h,o({ref:t},c))}));function h(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=n.length,o=new Array(a);o[0]=y;var d={};for(var l in t)hasOwnProperty.call(t,l)&&(d[l]=t[l]);d.originalType=e,d[p]="string"==typeof e?e:i,o[1]=d;for(var s=2;s{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>u,frontMatter:()=>a,metadata:()=>d,toc:()=>s});var r=n(87462),i=(n(67294),n(3905));n(8209);const a={id:"decentralized-id",title:"Decentralized Identity"},o=void 0,d={unversionedId:"learn/decentralized-id/decentralized-id",id:"learn/decentralized-id/decentralized-id",title:"Decentralized Identity",description:"Identity",source:"@site/docs/learn/decentralized-id/README.md",sourceDirName:"learn/decentralized-id",slug:"/learn/decentralized-id/",permalink:"/learn/decentralized-id/",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"decentralized-id",title:"Decentralized Identity"},sidebar:"docs",previous:{title:"Hardware Root of Trust",permalink:"/learn/cryptography/hardware-root-of-trust"},next:{title:"Keychain",permalink:"/learn/decentralized-id/keychain"}},l={},s=[{value:"Identity",id:"identity",level:2},{value:"Password-less",id:"password-less",level:2}],c={toc:s},p="wrapper";function u(e){let{components:t,...n}=e;return(0,i.kt)(p,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"identity"},"Identity"),(0,i.kt)("p",null,"Archethic was designed mainly to resolve one big issue that we are facing right now in the technology: provide an secure and easy way to identify ourselves."),(0,i.kt)("p",null,"Decentralized identity avoids the need of entrusting one's identity to a third party, who might find itself in a conflict of interest and exploit our identity without our knowledge.\nThis person retains sole control of his/her identity, which is stored on a multitude of nodes ensuring its durability and integrity."),(0,i.kt)("p",null,"Hence Archethic's decentralized identity is brought by the Archethic transaction chain which enables authorization, end to end encryption and upgradability in the decentralized network."),(0,i.kt)("p",null,"The identity is or will be compatible and interoperable with others standard in the industry such as W3C DID, FIDO2, WebAuthn, etc."),(0,i.kt)("h2",{id:"password-less"},"Password-less"),(0,i.kt)("p",null,"While digital identity is being standardized, we also designed a new way to connect and access this identy: password-less authentication."),(0,i.kt)("p",null,"Embedded in the blockchain, on-chain wallet access allows anyone to identify themselves using several methods: biometric, hardware (usb, ledger), or event password. (We don't want to prevent passphrase to being use, just keep it as the lowest secure authentication method)."),(0,i.kt)("p",null,"For this reason we have created a ",(0,i.kt)("a",{parentName:"p",href:"/learn/decentralized-id/keychain"},"Keychain"),", a new way to access our private keys for several services easily."),(0,i.kt)("p",null,"The idea of an on-chain wallet, end to end encrypted wallet, makes the password-less possible in a near future."))}u.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/79891879.39defe87.js b/assets/js/79891879.708b9981.js similarity index 98% rename from assets/js/79891879.39defe87.js rename to assets/js/79891879.708b9981.js index 3e7dadae7..d87074c28 100644 --- a/assets/js/79891879.39defe87.js +++ b/assets/js/79891879.708b9981.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1260],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>h});var o=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function i(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var c=o.createContext({}),l=function(e){var t=o.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=l(e.components);return o.createElement(c.Provider,{value:t},e.children)},d="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},u=o.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,c=e.parentName,s=p(e,["components","mdxType","originalType","parentName"]),d=l(r),u=n,h=d["".concat(c,".").concat(u)]||d[u]||y[u]||a;return r?o.createElement(h,i(i({ref:t},s),{},{components:r})):o.createElement(h,i({ref:t},s))}));function h(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,i=new Array(a);i[0]=u;var p={};for(var c in t)hasOwnProperty.call(t,c)&&(p[c]=t[c]);p.originalType=e,p[d]="string"==typeof e?e:n,i[1]=p;for(var l=2;l{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>y,frontMatter:()=>a,metadata:()=>p,toc:()=>l});var o=r(87462),n=(r(67294),r(3905));r(8209);const a={id:"cryptography",title:"Cryptography"},i=void 0,p={unversionedId:"build/core/cryptography/cryptography",id:"build/core/cryptography/cryptography",title:"Cryptography",description:"Node cryptography is maintains through keystores",source:"@site/docs/build/core/cryptography/README.md",sourceDirName:"build/core/cryptography",slug:"/build/core/cryptography/",permalink:"/build/core/cryptography/",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"cryptography",title:"Cryptography"},sidebar:"docs",previous:{title:"Bootstrap",permalink:"/build/core/bootstrap"},next:{title:"TPM Implementation",permalink:"/build/core/cryptography/tpm"}},c={},l=[{value:"Node Keystore",id:"node-keystore",level:2},{value:"Node Shared Secrets Keystore",id:"node-shared-secrets-keystore",level:2}],s={toc:l},d="wrapper";function y(e){let{components:t,...r}=e;return(0,n.kt)(d,(0,o.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"Node cryptography is maintains through keystores"),(0,n.kt)("h2",{id:"node-keystore"},"Node Keystore"),(0,n.kt)("p",null,"Node cryptography is maintain through keystore which stores the transaction index and reference to the public keys."),(0,n.kt)("p",null,"A behavior is defined to be able swap and test easily implementations."),(0,n.kt)("p",null,"There are several implementations of the node keystore:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Software implementation (used in dev mode and testnet)"),(0,n.kt)("li",{parentName:"ul"},"Hardware implementation",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/build/core/cryptography/tpm"},"TPM")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/build/core/cryptography/yubikey"},"Yubikey"))))),(0,n.kt)("p",null,"More details here: ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/archethic-node/blob/master/lib/archethic/crypto/keystore/node.ex"},"Node keystore")),(0,n.kt)("h2",{id:"node-shared-secrets-keystore"},"Node Shared Secrets Keystore"),(0,n.kt)("p",null,"Along with node keystore, node shared secrets have their own keystore as it used to store secrets as daily nonce, storage nonce and provide the API to leverage them for transaction validation, election algorithm, etc.."),(0,n.kt)("p",null,"A behavior is also provided to be able to swap implementations. Right now only the software implementation is supported."),(0,n.kt)("p",null,"More details here: ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/archethic-node/blob/master/lib/archethic/crypto/keystore/shared_secrets.ex"},"Shared Secrets keystore")))}y.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1260],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>h});var o=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function i(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var c=o.createContext({}),l=function(e){var t=o.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=l(e.components);return o.createElement(c.Provider,{value:t},e.children)},d="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},u=o.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,c=e.parentName,s=p(e,["components","mdxType","originalType","parentName"]),d=l(r),u=n,h=d["".concat(c,".").concat(u)]||d[u]||y[u]||a;return r?o.createElement(h,i(i({ref:t},s),{},{components:r})):o.createElement(h,i({ref:t},s))}));function h(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,i=new Array(a);i[0]=u;var p={};for(var c in t)hasOwnProperty.call(t,c)&&(p[c]=t[c]);p.originalType=e,p[d]="string"==typeof e?e:n,i[1]=p;for(var l=2;l{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>y,frontMatter:()=>a,metadata:()=>p,toc:()=>l});var o=r(87462),n=(r(67294),r(3905));r(8209);const a={id:"cryptography",title:"Cryptography"},i=void 0,p={unversionedId:"build/core/cryptography/cryptography",id:"build/core/cryptography/cryptography",title:"Cryptography",description:"Node cryptography is maintains through keystores",source:"@site/docs/build/core/cryptography/README.md",sourceDirName:"build/core/cryptography",slug:"/build/core/cryptography/",permalink:"/build/core/cryptography/",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"cryptography",title:"Cryptography"},sidebar:"docs",previous:{title:"Bootstrap",permalink:"/build/core/bootstrap"},next:{title:"TPM Implementation",permalink:"/build/core/cryptography/tpm"}},c={},l=[{value:"Node Keystore",id:"node-keystore",level:2},{value:"Node Shared Secrets Keystore",id:"node-shared-secrets-keystore",level:2}],s={toc:l},d="wrapper";function y(e){let{components:t,...r}=e;return(0,n.kt)(d,(0,o.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"Node cryptography is maintains through keystores"),(0,n.kt)("h2",{id:"node-keystore"},"Node Keystore"),(0,n.kt)("p",null,"Node cryptography is maintain through keystore which stores the transaction index and reference to the public keys."),(0,n.kt)("p",null,"A behavior is defined to be able swap and test easily implementations."),(0,n.kt)("p",null,"There are several implementations of the node keystore:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Software implementation (used in dev mode and testnet)"),(0,n.kt)("li",{parentName:"ul"},"Hardware implementation",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/build/core/cryptography/tpm"},"TPM")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/build/core/cryptography/yubikey"},"Yubikey"))))),(0,n.kt)("p",null,"More details here: ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/archethic-node/blob/master/lib/archethic/crypto/keystore/node.ex"},"Node keystore")),(0,n.kt)("h2",{id:"node-shared-secrets-keystore"},"Node Shared Secrets Keystore"),(0,n.kt)("p",null,"Along with node keystore, node shared secrets have their own keystore as it used to store secrets as daily nonce, storage nonce and provide the API to leverage them for transaction validation, election algorithm, etc.."),(0,n.kt)("p",null,"A behavior is also provided to be able to swap implementations. Right now only the software implementation is supported."),(0,n.kt)("p",null,"More details here: ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/archethic-node/blob/master/lib/archethic/crypto/keystore/shared_secrets.ex"},"Shared Secrets keystore")))}y.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file diff --git a/assets/js/7bfcff53.22e6cbfa.js b/assets/js/7bfcff53.b7480514.js similarity index 98% rename from assets/js/7bfcff53.22e6cbfa.js rename to assets/js/7bfcff53.b7480514.js index 973437554..8c016b9b0 100644 --- a/assets/js/7bfcff53.22e6cbfa.js +++ b/assets/js/7bfcff53.b7480514.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3592],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),c=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(l.Provider,{value:t},e.children)},d="mdxType",f={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=c(n),u=a,h=d["".concat(l,".").concat(u)]||d[u]||f[u]||i;return n?r.createElement(h,o(o({ref:t},p),{},{components:n})):r.createElement(h,o({ref:t},p))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=u;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[d]="string"==typeof e?e:a,o[1]=s;for(var c=2;c{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>f,frontMatter:()=>i,metadata:()=>s,toc:()=>c});var r=n(87462),a=(n(67294),n(3905));n(8209);const i={id:"self-repair",title:"Self Repair"},o=void 0,s={unversionedId:"learn/p2p/self-repair",id:"learn/p2p/self-repair",title:"Self Repair",description:"Archethic Blockchain is using a self-repair mechanism to be able to sync/re-sync missing transactions to be able",source:"@site/docs/learn/p2p/self-repair.md",sourceDirName:"learn/p2p",slug:"/learn/p2p/self-repair",permalink:"/learn/p2p/self-repair",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"self-repair",title:"Self Repair"},sidebar:"docs",previous:{title:"Bootstrapping",permalink:"/learn/p2p/bootstrapping"},next:{title:"Sharding",permalink:"/learn/sharding/"}},l={},c=[{value:"Identification",id:"identification",level:2},{value:"Synchronization",id:"synchronization",level:2}],p={toc:c},d="wrapper";function f(e){let{components:t,...n}=e;return(0,a.kt)(d,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"Archethic Blockchain is using a self-repair mechanism to be able to sync/re-sync missing transactions to be able\nto restore the state of a node."),(0,a.kt)("p",null,"Because Archethic is using a multidimensional sharding, a node needs to execute a self-repair on multiple occasions, to ensure data availability and security:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"When the node bootstraps"),(0,a.kt)("li",{parentName:"ul"},"When a node goes offline"),(0,a.kt)("li",{parentName:"ul"},"When the code and heuristic algorithms changes")),(0,a.kt)("h2",{id:"identification"},"Identification"),(0,a.kt)("p",null,"To be able to determine which transactions are missing, for each cycle of repair, a date of last sync is persisted.\nTherefore, we can decide from this date, the list of missing BeaconChain transactions to sync. (Reminder: BeaconChain summaries transactions across the entire network each day)"),(0,a.kt)("p",null,"The Self-Repair will then request BeaconChain storage pools to get the missing transactions from those missing days"),(0,a.kt)("h2",{id:"synchronization"},"Synchronization"),(0,a.kt)("p",null,"Because we are using rotating election, nodes need to perform the ",(0,a.kt)("inlineCode",{parentName:"p"},"Storage Node Election")," to determine if they need to store this transaction."),(0,a.kt)("p",null,"In that case, we will get the list of existing storage nodes from the transaction's address to sync and request from the closest nodes the transaction to be replicated."),(0,a.kt)("p",null,"Once finalized, a new last date of sync is persisted for the next cycle."))}f.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3592],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),c=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(l.Provider,{value:t},e.children)},d="mdxType",f={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=c(n),u=a,h=d["".concat(l,".").concat(u)]||d[u]||f[u]||i;return n?r.createElement(h,o(o({ref:t},p),{},{components:n})):r.createElement(h,o({ref:t},p))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=u;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[d]="string"==typeof e?e:a,o[1]=s;for(var c=2;c{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>f,frontMatter:()=>i,metadata:()=>s,toc:()=>c});var r=n(87462),a=(n(67294),n(3905));n(8209);const i={id:"self-repair",title:"Self Repair"},o=void 0,s={unversionedId:"learn/p2p/self-repair",id:"learn/p2p/self-repair",title:"Self Repair",description:"Archethic Blockchain is using a self-repair mechanism to be able to sync/re-sync missing transactions to be able",source:"@site/docs/learn/p2p/self-repair.md",sourceDirName:"learn/p2p",slug:"/learn/p2p/self-repair",permalink:"/learn/p2p/self-repair",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"self-repair",title:"Self Repair"},sidebar:"docs",previous:{title:"Bootstrapping",permalink:"/learn/p2p/bootstrapping"},next:{title:"Sharding",permalink:"/learn/sharding/"}},l={},c=[{value:"Identification",id:"identification",level:2},{value:"Synchronization",id:"synchronization",level:2}],p={toc:c},d="wrapper";function f(e){let{components:t,...n}=e;return(0,a.kt)(d,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"Archethic Blockchain is using a self-repair mechanism to be able to sync/re-sync missing transactions to be able\nto restore the state of a node."),(0,a.kt)("p",null,"Because Archethic is using a multidimensional sharding, a node needs to execute a self-repair on multiple occasions, to ensure data availability and security:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"When the node bootstraps"),(0,a.kt)("li",{parentName:"ul"},"When a node goes offline"),(0,a.kt)("li",{parentName:"ul"},"When the code and heuristic algorithms changes")),(0,a.kt)("h2",{id:"identification"},"Identification"),(0,a.kt)("p",null,"To be able to determine which transactions are missing, for each cycle of repair, a date of last sync is persisted.\nTherefore, we can decide from this date, the list of missing BeaconChain transactions to sync. (Reminder: BeaconChain summaries transactions across the entire network each day)"),(0,a.kt)("p",null,"The Self-Repair will then request BeaconChain storage pools to get the missing transactions from those missing days"),(0,a.kt)("h2",{id:"synchronization"},"Synchronization"),(0,a.kt)("p",null,"Because we are using rotating election, nodes need to perform the ",(0,a.kt)("inlineCode",{parentName:"p"},"Storage Node Election")," to determine if they need to store this transaction."),(0,a.kt)("p",null,"In that case, we will get the list of existing storage nodes from the transaction's address to sync and request from the closest nodes the transaction to be replicated."),(0,a.kt)("p",null,"Once finalized, a new last date of sync is persisted for the next cycle."))}f.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/7d24ac82.d7039c7e.js b/assets/js/7d24ac82.8f95171c.js similarity index 99% rename from assets/js/7d24ac82.d7039c7e.js rename to assets/js/7d24ac82.8f95171c.js index 298484e9d..eb32cbd07 100644 --- a/assets/js/7d24ac82.d7039c7e.js +++ b/assets/js/7d24ac82.8f95171c.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6691],{3905:(e,t,n)=>{n.d(t,{Zo:()=>h,kt:()=>u});var i=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=i.createContext({}),d=function(e){var t=i.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},h=function(e){var t=d(e.components);return i.createElement(l.Provider,{value:t},e.children)},p="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},y=i.forwardRef((function(e,t){var n=e.components,a=e.mdxType,r=e.originalType,l=e.parentName,h=s(e,["components","mdxType","originalType","parentName"]),p=d(n),y=a,u=p["".concat(l,".").concat(y)]||p[y]||c[y]||r;return n?i.createElement(u,o(o({ref:t},h),{},{components:n})):i.createElement(u,o({ref:t},h))}));function u(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=n.length,o=new Array(r);o[0]=y;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[p]="string"==typeof e?e:a,o[1]=s;for(var d=2;d{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>c,frontMatter:()=>r,metadata:()=>s,toc:()=>d});var i=n(87462),a=(n(67294),n(3905));n(8209);const r={id:"tpm",title:"TPM Implementation"},o=void 0,s={unversionedId:"build/core/cryptography/tpm",id:"build/core/cryptography/tpm",title:"TPM Implementation",description:"This section explains the HRT TPM Library implementation.",source:"@site/docs/build/core/cryptography/tpm.md",sourceDirName:"build/core/cryptography",slug:"/build/core/cryptography/tpm",permalink:"/build/core/cryptography/tpm",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"tpm",title:"TPM Implementation"},sidebar:"docs",previous:{title:"Cryptography",permalink:"/build/core/cryptography/"},next:{title:"Yubikey implementation",permalink:"/build/core/cryptography/yubikey"}},l={},d=[{value:"Global Variables",id:"global-variables",level:2},{value:"void keyToASN():",id:"void-keytoasn",level:2},{value:"void signToASN(BYTE r, INT sizeR, BYTE s, INT sizeS, INT *asnSignSize)",id:"void-signtoasnbyte-r-int-sizer-byte-s-int-sizes-int-asnsignsize",level:2},{value:"void generatePublicKey(INT keyIndex)",id:"void-generatepublickeyint-keyindex",level:2},{value:"setRootKey()",id:"setrootkey",level:2},{value:"updateHandlesIndexes()",id:"updatehandlesindexes",level:2},{value:"initializeTPM(INT keyIndex):",id:"initializetpmint-keyindex",level:2},{value:"getKeyIndex():",id:"getkeyindex",level:2},{value:"setKeyIndex(INT keyIndex):",id:"setkeyindexint-keyindex",level:2},{value:"getPublicKey(INT keyIndex, INT *publicKeySize):",id:"getpublickeyint-keyindex-int-publickeysize",level:2},{value:"signECDSA(INT keyIndex, BYTE hashToSign, INT eccSignSize, bool increment):",id:"signecdsaint-keyindex-byte-hashtosign-int-eccsignsize-bool-increment",level:2},{value:"getECDHPoint(INT keyIndex, BYTE *euphemeralKey):",id:"getecdhpointint-keyindex-byte-euphemeralkey",level:2}],h={toc:d},p="wrapper";function c(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,i.Z)({},h,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"This section explains the HRT TPM Library implementation. "),(0,a.kt)("admonition",{type:"success"},(0,a.kt)("p",{parentName:"admonition"},"Reference Files:\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/UNIRIS/tpm-core/blob/main/uniris-tpm.c"},"uniris-tpm.c"),"\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/UNIRIS/tpm-core/blob/main/uniris-tpm.h"},"uniris-tpm.h"))),(0,a.kt)("h2",{id:"global-variables"},"Global Variables"),(0,a.kt)("admonition",{type:"warning"},(0,a.kt)("p",{parentName:"admonition"},"The global variables are defined as static to maintain the static lifecycle of the global variable, to prevent data leak and external access of the variables.")),(0,a.kt)("h2",{id:"void-keytoasn"},"void keyToASN():"),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"This function converts raw elliptical public key generated by TPM to ASN1 DER encoding. ")),(0,a.kt)("p",null,"TPM generated uncompressed public key does not include the curve information required for elliptic key cryptography. keyToASN() encodes the raw public key by appending curve information to it."),(0,a.kt)("p",null,"The ASN DER Public Key is an outer structure which contains 2 inner structures. First inner structure having key type and curve type and second inner structure containning the raw key. The structure containning public key is a header containing ","[0x00 0x04 x coordinate y coordinate]","."),(0,a.kt)("p",null,"The following structure is the format of ASN DER: "),(0,a.kt)("admonition",{type:"danger"},(0,a.kt)("p",{parentName:"admonition"},"ASN DER Public Key = [ ","[ [keytype] [curvetype] ][publickey]"," ]")),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"Logic Flow:"),"\nThe function adds the headers squentially and then the raw x coordinate of public key and then the y coordinate finally the size is updated."),(0,a.kt)("h2",{id:"void-signtoasnbyte-r-int-sizer-byte-s-int-sizes-int-asnsignsize"},"void signToASN(BYTE ",(0,a.kt)("em",{parentName:"h2"},"r, INT sizeR, BYTE "),"s, INT sizeS, INT *asnSignSize)"),(0,a.kt)("admonition",{type:"success"},(0,a.kt)("p",{parentName:"admonition"},"Converts uncompressed signature values to ASN DER format.")),(0,a.kt)("p",null,"TPM generates the raw signature in form of integer values : R & S. signToASN() converts these raw values into ASN DER format. It first prepends the ASN sequence then checks the MSB of R . If it is 1 then it prepends a byte (0) to R otherwise it move on to increase the index pointed to the asn by the size of R.\nSimilarly, it does the above for S."),(0,a.kt)("h2",{id:"void-generatepublickeyint-keyindex"},"void generatePublicKey(INT keyIndex)"),(0,a.kt)("admonition",{type:"warning"},(0,a.kt)("p",{parentName:"admonition"},"Generates public key on the endorsement key hierarchy of TPM by taking one byte key index as input.")),(0,a.kt)("p",null,"Firstly, the template of the public key is defined in the inPublicECC which contains the endorsement key template such that certificate on the keys can be generated except modifying the endorsement key object attributes.\nThe inPublicECC structure defines the following sub-structure:"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"publicArea : defines the attributes of the public key to be generated. For endorsement key the signing operation is restricted due to privacy concern, defined under this structure. In this case we are generating key in the endordement hierarchy by using the template of the endorsement key.")),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"The object attributes of generating key are as follows:")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},'* TPMA_OBJECT_USERWITHAUTH: Signifies the approval of "USER" actions with associated with the public key with a password.\n* TPMA_OBJECT_ADMINWITHPOLICY: Signifies the Approval of "ADMIN" role actions with this object may only be done with a policy session.\n* TPMA_OBJECT_SIGN_ENCRYPT: For a symmetric cipher object, the private portion of the key be used to encrypt. For other objects, the private portion of the key can be used to sign.\n* TPMA_OBJECT_DECRYPT:The private portion of the key can be used to decrypt\n* TPMA_OBJECT_FIXEDTPM: Indicates that the hierarchy of the key genrated cannot be changed.\n* TPMA_OBJECT_FIXEDPARENT:Indicates that the parent of the object cannot be changed.\n* TPMA_OBJECT_SENSITIVEDATAORIGIN: Indicates that the sensitive data is generated by the TPM on the key generation except the authvalue.\n')),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},".objectAttributes = (TPMA_OBJECT_USERWITHAUTH |\n TPMA_OBJECT_ADMINWITHPOLICY |\n TPMA_OBJECT_SIGN_ENCRYPT |\n TPMA_OBJECT_DECRYPT |\n TPMA_OBJECT_FIXEDTPM |\n TPMA_OBJECT_FIXEDPARENT |\n TPMA_OBJECT_SENSITIVEDATAORIGIN),\n\n")),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Object attributes for generating under Endorsement key hierarchy:",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"TPMA_OBJECT_RESTRICTED: Key usage is restricted to manipulate structures of known format.")))),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"Endorsement key has same template except that there is no SIGN_ENCRYPT FLAG in the object attribute.")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},".objectAttributes = (TPMA_OBJECT_RESTRICTED |\n TPMA_OBJECT_ADMINWITHPOLICY |\n TPMA_OBJECT_DECRYPT |\n TPMA_OBJECT_FIXEDTPM |\n TPMA_OBJECT_FIXEDPARENT |\n TPMA_OBJECT_SENSITIVEDATAORIGIN),\n")),(0,a.kt)("ol",{start:2},(0,a.kt)("li",{parentName:"ol"},"authPolicy: this substructure contains a 32 byte buffer with values exactly same as endorsement key attributes. This parameter associates the generated key template to the TPM hence during certificate generation the CA is able to return the certificate for the public key generated under Endorsement key hierarchy.")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},".authPolicy = {\n .size = 32,\n .buffer = {0x83, 0x71, 0x97, 0x67, 0x44, 0x84, 0xB3, 0xF8, 0x1A, 0x90, 0xCC,\n 0x8D, 0x46, 0xA5, 0xD7, 0x24, 0xFD, 0x52, 0xD7, 0x6E, 0x06, 0x52,\n 0x0B, 0x64, 0xF2, 0xA1, 0xDA, 0x1B, 0x33, 0x14, 0x69, 0xAA}},\n")),(0,a.kt)("ol",{start:4},(0,a.kt)("li",{parentName:"ol"},"parameters: In the parameter structure we define the algorithm to be used for private key cryptography and public key cryptography operations.")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"}," .parameters.eccDetail = {.symmetric = {\n .algorithm = TPM2_ALG_AES,\n .keyBits.aes = 128,\n .mode.sym = TPM2_ALG_CFB,\n },\n .scheme = {.scheme = TPM2_ALG_NULL, .details = {.ecdsa = {.hashAlg = TPM2_ALG_SHA256}}},\n .curveID = TPM2_ECC_NIST_P256,\n .kdf = {.scheme = TPM2_ALG_NULL, .details = {}}},\n")),(0,a.kt)("p",null," After definning the template of the public key, a unique data is passed to each key in the unique structure of inPublicEC which is root key hash and key index. For the root key the root key hash is 0 and key index is 0. "),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},".unique.ecc = {.x = {.size = 32, .buffer = {0}}, .y = {.size = 32, .buffer = {0}}},\n")),(0,a.kt)("p",null,"The primary key is created by using Esys_CreatePrimary() function with the following parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"ESYS_TR_RH_ENDORSEMENT: To generate key in the endorsement hierarchy6."),(0,a.kt)("li",{parentName:"ul"},"ESYS_TR_PASSWORD: indicates a password authorization"),(0,a.kt)("li",{parentName:"ul"},"inPublicECC: the public key template defined is passed.")),(0,a.kt)("p",null,"Finally the created key is converted to ASN DER format."),(0,a.kt)("h2",{id:"setrootkey"},"setRootKey()"),(0,a.kt)("admonition",{type:"danger"},(0,a.kt)("p",{parentName:"admonition"},"Initializes root key by calling generatePublicKey(0) since 0 is the index of root key.")),(0,a.kt)("p",null,"It also sets the root key hash. It is calculated by concatenating the raw x and y part of the root key and then hashing it."),(0,a.kt)("p",null,"The rootkey hash is stored statically and is important for every new primary key generation since it is passed as parameter to the unique structure of inPublicEC.X part. The key index is passed as parameter to the inpublicEc.y."),(0,a.kt)("h2",{id:"updatehandlesindexes"},"updateHandlesIndexes()"),(0,a.kt)("admonition",{type:"success"},(0,a.kt)("p",{parentName:"admonition"},"Increments the current index value by 1 and also updates all the corresponding keys.")),(0,a.kt)("p",null,"Flushes the previous key handles index and points it to the nextKeyHandle then increments NEXT index by 1 to store it in the nextkeyindex. Then generates a new public key by sending nextkeyIndex as the parameter. Finally it assigns the currentKeyhandle to the nextkey handle ."),(0,a.kt)("h2",{id:"initializetpmint-keyindex"},"initializeTPM(INT keyIndex):"),(0,a.kt)("admonition",{type:"warning"},(0,a.kt)("p",{parentName:"admonition"},"Initializes TPM context by calling Esys_Initialize() function and sets the previous key handle and nextkey handle as null. Then it sets the root key and key index.")),(0,a.kt)("h2",{id:"getkeyindex"},"getKeyIndex():"),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},'Returns previous key index because that is the "current" key index used for performing signature.')),(0,a.kt)("h2",{id:"setkeyindexint-keyindex"},"setKeyIndex(INT keyIndex):"),(0,a.kt)("admonition",{type:"danger"},(0,a.kt)("p",{parentName:"admonition"},"Sets the previous key index (which is our current key) to the key index passed as parameter.")),(0,a.kt)("p",null,"Also sets keyIndex+1 as the nextKey index."),(0,a.kt)("p",null,"For the key generated at after first initialization it flushes the previous key handle and generates the key with keyIndex then points then populates the previous key handle with the current key handle value.\nNext it generates the public key with keyIndex+1 and stores it in the nextkey handle. "),(0,a.kt)("h2",{id:"getpublickeyint-keyindex-int-publickeysize"},"getPublicKey(INT keyIndex, INT *publicKeySize):"),(0,a.kt)("admonition",{type:"success"},(0,a.kt)("p",{parentName:"admonition"},"Returns the public key for the given index.")),(0,a.kt)("p",null,"Takes keyIndex and returns root key if the keyINDEX is 0, next key if the keyindex matches with the nextKey index, previous key if the keyINdex matches with the previous Key index. "),(0,a.kt)("p",null,"If it matches with none of these indexes, then it flushes the root key from the tpm (due to the limit of max 3 transient handles), generates the key for the corresponding keyIndex and copies it into temp key then flushes it from the TPM. Finally, it regenerates the root key and then returns temp key."),(0,a.kt)("h2",{id:"signecdsaint-keyindex-byte-hashtosign-int-eccsignsize-bool-increment"},"signECDSA(INT keyIndex, BYTE ",(0,a.kt)("em",{parentName:"h2"},"hashToSign, INT "),"eccSignSize, bool increment):"),(0,a.kt)("admonition",{type:"warning"},(0,a.kt)("p",{parentName:"admonition"},"Signs the given hash using the key referred by the key index.")),(0,a.kt)("p",null,"Converts the byte hash to TPM2B_hash object and then checks the key index . If it is root key or previous key then assigns it to the signing key handle otherwise; "),(0,a.kt)("p",null,"Sets the previous key index to the given keyindex by calling setkeyindex() function and assigns it to the signing handle. It signs the hash using Esys_Sign() function. Finally the signature is converted to ASN DER format which is returned by signECDSA()."),(0,a.kt)("h2",{id:"getecdhpointint-keyindex-byte-euphemeralkey"},"getECDHPoint(INT keyIndex, BYTE *euphemeralKey):"),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"Performs Elliptic Curve Diffe Hellmen Key Exchange using the private part of the key referred by the Key Index and public euphemeral key. Returns the derived shared secret uncompressed point.")),(0,a.kt)("p",null,"Takes the key index and checks whether it's previous key, next key or root key. If it's one of these then it assigns it to the ECDH key handle else it removes the root key and generates a new key for the given key index and use it in the ECDH handle. "),(0,a.kt)("p",null,"Next, it re-structures the euphemeral key with the format 04 x y and generates an ECDH point using the Esys_ECDH_ZGen() function and stores it 04 x y format in zPoint which is then returned by the function."))}c.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6691],{3905:(e,t,n)=>{n.d(t,{Zo:()=>h,kt:()=>u});var i=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=i.createContext({}),d=function(e){var t=i.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},h=function(e){var t=d(e.components);return i.createElement(l.Provider,{value:t},e.children)},p="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},y=i.forwardRef((function(e,t){var n=e.components,a=e.mdxType,r=e.originalType,l=e.parentName,h=s(e,["components","mdxType","originalType","parentName"]),p=d(n),y=a,u=p["".concat(l,".").concat(y)]||p[y]||c[y]||r;return n?i.createElement(u,o(o({ref:t},h),{},{components:n})):i.createElement(u,o({ref:t},h))}));function u(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=n.length,o=new Array(r);o[0]=y;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[p]="string"==typeof e?e:a,o[1]=s;for(var d=2;d{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>c,frontMatter:()=>r,metadata:()=>s,toc:()=>d});var i=n(87462),a=(n(67294),n(3905));n(8209);const r={id:"tpm",title:"TPM Implementation"},o=void 0,s={unversionedId:"build/core/cryptography/tpm",id:"build/core/cryptography/tpm",title:"TPM Implementation",description:"This section explains the HRT TPM Library implementation.",source:"@site/docs/build/core/cryptography/tpm.md",sourceDirName:"build/core/cryptography",slug:"/build/core/cryptography/tpm",permalink:"/build/core/cryptography/tpm",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"tpm",title:"TPM Implementation"},sidebar:"docs",previous:{title:"Cryptography",permalink:"/build/core/cryptography/"},next:{title:"Yubikey implementation",permalink:"/build/core/cryptography/yubikey"}},l={},d=[{value:"Global Variables",id:"global-variables",level:2},{value:"void keyToASN():",id:"void-keytoasn",level:2},{value:"void signToASN(BYTE r, INT sizeR, BYTE s, INT sizeS, INT *asnSignSize)",id:"void-signtoasnbyte-r-int-sizer-byte-s-int-sizes-int-asnsignsize",level:2},{value:"void generatePublicKey(INT keyIndex)",id:"void-generatepublickeyint-keyindex",level:2},{value:"setRootKey()",id:"setrootkey",level:2},{value:"updateHandlesIndexes()",id:"updatehandlesindexes",level:2},{value:"initializeTPM(INT keyIndex):",id:"initializetpmint-keyindex",level:2},{value:"getKeyIndex():",id:"getkeyindex",level:2},{value:"setKeyIndex(INT keyIndex):",id:"setkeyindexint-keyindex",level:2},{value:"getPublicKey(INT keyIndex, INT *publicKeySize):",id:"getpublickeyint-keyindex-int-publickeysize",level:2},{value:"signECDSA(INT keyIndex, BYTE hashToSign, INT eccSignSize, bool increment):",id:"signecdsaint-keyindex-byte-hashtosign-int-eccsignsize-bool-increment",level:2},{value:"getECDHPoint(INT keyIndex, BYTE *euphemeralKey):",id:"getecdhpointint-keyindex-byte-euphemeralkey",level:2}],h={toc:d},p="wrapper";function c(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,i.Z)({},h,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"This section explains the HRT TPM Library implementation. "),(0,a.kt)("admonition",{type:"success"},(0,a.kt)("p",{parentName:"admonition"},"Reference Files:\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/UNIRIS/tpm-core/blob/main/uniris-tpm.c"},"uniris-tpm.c"),"\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/UNIRIS/tpm-core/blob/main/uniris-tpm.h"},"uniris-tpm.h"))),(0,a.kt)("h2",{id:"global-variables"},"Global Variables"),(0,a.kt)("admonition",{type:"warning"},(0,a.kt)("p",{parentName:"admonition"},"The global variables are defined as static to maintain the static lifecycle of the global variable, to prevent data leak and external access of the variables.")),(0,a.kt)("h2",{id:"void-keytoasn"},"void keyToASN():"),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"This function converts raw elliptical public key generated by TPM to ASN1 DER encoding. ")),(0,a.kt)("p",null,"TPM generated uncompressed public key does not include the curve information required for elliptic key cryptography. keyToASN() encodes the raw public key by appending curve information to it."),(0,a.kt)("p",null,"The ASN DER Public Key is an outer structure which contains 2 inner structures. First inner structure having key type and curve type and second inner structure containning the raw key. The structure containning public key is a header containing ","[0x00 0x04 x coordinate y coordinate]","."),(0,a.kt)("p",null,"The following structure is the format of ASN DER: "),(0,a.kt)("admonition",{type:"danger"},(0,a.kt)("p",{parentName:"admonition"},"ASN DER Public Key = [ ","[ [keytype] [curvetype] ][publickey]"," ]")),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"Logic Flow:"),"\nThe function adds the headers squentially and then the raw x coordinate of public key and then the y coordinate finally the size is updated."),(0,a.kt)("h2",{id:"void-signtoasnbyte-r-int-sizer-byte-s-int-sizes-int-asnsignsize"},"void signToASN(BYTE ",(0,a.kt)("em",{parentName:"h2"},"r, INT sizeR, BYTE "),"s, INT sizeS, INT *asnSignSize)"),(0,a.kt)("admonition",{type:"success"},(0,a.kt)("p",{parentName:"admonition"},"Converts uncompressed signature values to ASN DER format.")),(0,a.kt)("p",null,"TPM generates the raw signature in form of integer values : R & S. signToASN() converts these raw values into ASN DER format. It first prepends the ASN sequence then checks the MSB of R . If it is 1 then it prepends a byte (0) to R otherwise it move on to increase the index pointed to the asn by the size of R.\nSimilarly, it does the above for S."),(0,a.kt)("h2",{id:"void-generatepublickeyint-keyindex"},"void generatePublicKey(INT keyIndex)"),(0,a.kt)("admonition",{type:"warning"},(0,a.kt)("p",{parentName:"admonition"},"Generates public key on the endorsement key hierarchy of TPM by taking one byte key index as input.")),(0,a.kt)("p",null,"Firstly, the template of the public key is defined in the inPublicECC which contains the endorsement key template such that certificate on the keys can be generated except modifying the endorsement key object attributes.\nThe inPublicECC structure defines the following sub-structure:"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"publicArea : defines the attributes of the public key to be generated. For endorsement key the signing operation is restricted due to privacy concern, defined under this structure. In this case we are generating key in the endordement hierarchy by using the template of the endorsement key.")),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"The object attributes of generating key are as follows:")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},'* TPMA_OBJECT_USERWITHAUTH: Signifies the approval of "USER" actions with associated with the public key with a password.\n* TPMA_OBJECT_ADMINWITHPOLICY: Signifies the Approval of "ADMIN" role actions with this object may only be done with a policy session.\n* TPMA_OBJECT_SIGN_ENCRYPT: For a symmetric cipher object, the private portion of the key be used to encrypt. For other objects, the private portion of the key can be used to sign.\n* TPMA_OBJECT_DECRYPT:The private portion of the key can be used to decrypt\n* TPMA_OBJECT_FIXEDTPM: Indicates that the hierarchy of the key genrated cannot be changed.\n* TPMA_OBJECT_FIXEDPARENT:Indicates that the parent of the object cannot be changed.\n* TPMA_OBJECT_SENSITIVEDATAORIGIN: Indicates that the sensitive data is generated by the TPM on the key generation except the authvalue.\n')),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},".objectAttributes = (TPMA_OBJECT_USERWITHAUTH |\n TPMA_OBJECT_ADMINWITHPOLICY |\n TPMA_OBJECT_SIGN_ENCRYPT |\n TPMA_OBJECT_DECRYPT |\n TPMA_OBJECT_FIXEDTPM |\n TPMA_OBJECT_FIXEDPARENT |\n TPMA_OBJECT_SENSITIVEDATAORIGIN),\n\n")),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Object attributes for generating under Endorsement key hierarchy:",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"TPMA_OBJECT_RESTRICTED: Key usage is restricted to manipulate structures of known format.")))),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"Endorsement key has same template except that there is no SIGN_ENCRYPT FLAG in the object attribute.")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},".objectAttributes = (TPMA_OBJECT_RESTRICTED |\n TPMA_OBJECT_ADMINWITHPOLICY |\n TPMA_OBJECT_DECRYPT |\n TPMA_OBJECT_FIXEDTPM |\n TPMA_OBJECT_FIXEDPARENT |\n TPMA_OBJECT_SENSITIVEDATAORIGIN),\n")),(0,a.kt)("ol",{start:2},(0,a.kt)("li",{parentName:"ol"},"authPolicy: this substructure contains a 32 byte buffer with values exactly same as endorsement key attributes. This parameter associates the generated key template to the TPM hence during certificate generation the CA is able to return the certificate for the public key generated under Endorsement key hierarchy.")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},".authPolicy = {\n .size = 32,\n .buffer = {0x83, 0x71, 0x97, 0x67, 0x44, 0x84, 0xB3, 0xF8, 0x1A, 0x90, 0xCC,\n 0x8D, 0x46, 0xA5, 0xD7, 0x24, 0xFD, 0x52, 0xD7, 0x6E, 0x06, 0x52,\n 0x0B, 0x64, 0xF2, 0xA1, 0xDA, 0x1B, 0x33, 0x14, 0x69, 0xAA}},\n")),(0,a.kt)("ol",{start:4},(0,a.kt)("li",{parentName:"ol"},"parameters: In the parameter structure we define the algorithm to be used for private key cryptography and public key cryptography operations.")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"}," .parameters.eccDetail = {.symmetric = {\n .algorithm = TPM2_ALG_AES,\n .keyBits.aes = 128,\n .mode.sym = TPM2_ALG_CFB,\n },\n .scheme = {.scheme = TPM2_ALG_NULL, .details = {.ecdsa = {.hashAlg = TPM2_ALG_SHA256}}},\n .curveID = TPM2_ECC_NIST_P256,\n .kdf = {.scheme = TPM2_ALG_NULL, .details = {}}},\n")),(0,a.kt)("p",null," After definning the template of the public key, a unique data is passed to each key in the unique structure of inPublicEC which is root key hash and key index. For the root key the root key hash is 0 and key index is 0. "),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},".unique.ecc = {.x = {.size = 32, .buffer = {0}}, .y = {.size = 32, .buffer = {0}}},\n")),(0,a.kt)("p",null,"The primary key is created by using Esys_CreatePrimary() function with the following parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"ESYS_TR_RH_ENDORSEMENT: To generate key in the endorsement hierarchy6."),(0,a.kt)("li",{parentName:"ul"},"ESYS_TR_PASSWORD: indicates a password authorization"),(0,a.kt)("li",{parentName:"ul"},"inPublicECC: the public key template defined is passed.")),(0,a.kt)("p",null,"Finally the created key is converted to ASN DER format."),(0,a.kt)("h2",{id:"setrootkey"},"setRootKey()"),(0,a.kt)("admonition",{type:"danger"},(0,a.kt)("p",{parentName:"admonition"},"Initializes root key by calling generatePublicKey(0) since 0 is the index of root key.")),(0,a.kt)("p",null,"It also sets the root key hash. It is calculated by concatenating the raw x and y part of the root key and then hashing it."),(0,a.kt)("p",null,"The rootkey hash is stored statically and is important for every new primary key generation since it is passed as parameter to the unique structure of inPublicEC.X part. The key index is passed as parameter to the inpublicEc.y."),(0,a.kt)("h2",{id:"updatehandlesindexes"},"updateHandlesIndexes()"),(0,a.kt)("admonition",{type:"success"},(0,a.kt)("p",{parentName:"admonition"},"Increments the current index value by 1 and also updates all the corresponding keys.")),(0,a.kt)("p",null,"Flushes the previous key handles index and points it to the nextKeyHandle then increments NEXT index by 1 to store it in the nextkeyindex. Then generates a new public key by sending nextkeyIndex as the parameter. Finally it assigns the currentKeyhandle to the nextkey handle ."),(0,a.kt)("h2",{id:"initializetpmint-keyindex"},"initializeTPM(INT keyIndex):"),(0,a.kt)("admonition",{type:"warning"},(0,a.kt)("p",{parentName:"admonition"},"Initializes TPM context by calling Esys_Initialize() function and sets the previous key handle and nextkey handle as null. Then it sets the root key and key index.")),(0,a.kt)("h2",{id:"getkeyindex"},"getKeyIndex():"),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},'Returns previous key index because that is the "current" key index used for performing signature.')),(0,a.kt)("h2",{id:"setkeyindexint-keyindex"},"setKeyIndex(INT keyIndex):"),(0,a.kt)("admonition",{type:"danger"},(0,a.kt)("p",{parentName:"admonition"},"Sets the previous key index (which is our current key) to the key index passed as parameter.")),(0,a.kt)("p",null,"Also sets keyIndex+1 as the nextKey index."),(0,a.kt)("p",null,"For the key generated at after first initialization it flushes the previous key handle and generates the key with keyIndex then points then populates the previous key handle with the current key handle value.\nNext it generates the public key with keyIndex+1 and stores it in the nextkey handle. "),(0,a.kt)("h2",{id:"getpublickeyint-keyindex-int-publickeysize"},"getPublicKey(INT keyIndex, INT *publicKeySize):"),(0,a.kt)("admonition",{type:"success"},(0,a.kt)("p",{parentName:"admonition"},"Returns the public key for the given index.")),(0,a.kt)("p",null,"Takes keyIndex and returns root key if the keyINDEX is 0, next key if the keyindex matches with the nextKey index, previous key if the keyINdex matches with the previous Key index. "),(0,a.kt)("p",null,"If it matches with none of these indexes, then it flushes the root key from the tpm (due to the limit of max 3 transient handles), generates the key for the corresponding keyIndex and copies it into temp key then flushes it from the TPM. Finally, it regenerates the root key and then returns temp key."),(0,a.kt)("h2",{id:"signecdsaint-keyindex-byte-hashtosign-int-eccsignsize-bool-increment"},"signECDSA(INT keyIndex, BYTE ",(0,a.kt)("em",{parentName:"h2"},"hashToSign, INT "),"eccSignSize, bool increment):"),(0,a.kt)("admonition",{type:"warning"},(0,a.kt)("p",{parentName:"admonition"},"Signs the given hash using the key referred by the key index.")),(0,a.kt)("p",null,"Converts the byte hash to TPM2B_hash object and then checks the key index . If it is root key or previous key then assigns it to the signing key handle otherwise; "),(0,a.kt)("p",null,"Sets the previous key index to the given keyindex by calling setkeyindex() function and assigns it to the signing handle. It signs the hash using Esys_Sign() function. Finally the signature is converted to ASN DER format which is returned by signECDSA()."),(0,a.kt)("h2",{id:"getecdhpointint-keyindex-byte-euphemeralkey"},"getECDHPoint(INT keyIndex, BYTE *euphemeralKey):"),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"Performs Elliptic Curve Diffe Hellmen Key Exchange using the private part of the key referred by the Key Index and public euphemeral key. Returns the derived shared secret uncompressed point.")),(0,a.kt)("p",null,"Takes the key index and checks whether it's previous key, next key or root key. If it's one of these then it assigns it to the ECDH key handle else it removes the root key and generates a new key for the given key index and use it in the ECDH handle. "),(0,a.kt)("p",null,"Next, it re-structures the euphemeral key with the format 04 x y and generates an ECDH point using the Esys_ECDH_ZGen() function and stores it 04 x y format in zPoint which is then returned by the function."))}c.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/7e96883b.4650e50a.js b/assets/js/7e96883b.382e4c9e.js similarity index 98% rename from assets/js/7e96883b.4650e50a.js rename to assets/js/7e96883b.382e4c9e.js index 288b00eb2..2a7718f5d 100644 --- a/assets/js/7e96883b.4650e50a.js +++ b/assets/js/7e96883b.382e4c9e.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7655],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>b});var a=n(67294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function s(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l=a.createContext({}),c=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},p=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},d="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var n=e.components,i=e.mdxType,r=e.originalType,l=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),d=c(n),u=i,b=d["".concat(l,".").concat(u)]||d[u]||h[u]||r;return n?a.createElement(b,s(s({ref:t},p),{},{components:n})):a.createElement(b,s({ref:t},p))}));function b(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=n.length,s=new Array(r);s[0]=u;var o={};for(var l in t)hasOwnProperty.call(t,l)&&(o[l]=t[l]);o.originalType=e,o[d]="string"==typeof e?e:i,s[1]=o;for(var c=2;c{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>h,frontMatter:()=>r,metadata:()=>o,toc:()=>c});var a=n(87462),i=(n(67294),n(3905));n(8209);const r={id:"how-it-works",title:"AEWeb - How it works",sidebar_label:"How it works",sidebar_position:1},s=void 0,o={unversionedId:"participate/aeweb/how-it-works",id:"participate/aeweb/how-it-works",title:"AEWeb - How it works",description:"Archethic Web (AEWeb) is using transaction chains to host any website on Archethic Blockchain.",source:"@site/docs/participate/aeweb/how-it-works.md",sourceDirName:"participate/aeweb",slug:"/participate/aeweb/how-it-works",permalink:"/participate/aeweb/how-it-works",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",sidebarPosition:1,frontMatter:{id:"how-it-works",title:"AEWeb - How it works",sidebar_label:"How it works",sidebar_position:1},sidebar:"docs",previous:{title:"Archethic Web (aeHosting)",permalink:"/participate/aeweb/"},next:{title:"Domain Names",permalink:"/participate/aeweb/dns"}},l={},c=[{value:"Transaction building",id:"transaction-building",level:2},{value:"Content delivery",id:"content-delivery",level:2},{value:"Website updates",id:"website-updates",level:2},{value:"Website unpublication",id:"website-unpublication",level:2}],p={toc:c},d="wrapper";function h(e){let{components:t,...r}=e;return(0,i.kt)(d,(0,a.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"Archethic Web (AEWeb) is using transaction chains to host any website on Archethic Blockchain."),(0,i.kt)("p",null,"We will describe the following process from the building until the delivery to the browser."),(0,i.kt)("h2",{id:"transaction-building"},"Transaction building"),(0,i.kt)("p",null,"On the beginning of any hosting, there is a website composed of:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"HTML pages"),(0,i.kt)("li",{parentName:"ul"},"CSS files"),(0,i.kt)("li",{parentName:"ul"},"Javascript files"),(0,i.kt)("li",{parentName:"ul"},"Images"),(0,i.kt)("li",{parentName:"ul"},"Videos")),(0,i.kt)("p",null,"When the folder of the website is passed to the AEWeb CLI, the files are analyzed and packaged into blob of 3MB (current limitation of transaction's content)."),(0,i.kt)("mermaid",{value:"graph TD\n\n HTML --\x3e AEWeb\n CSS --\x3e AEWeb\n Javascript --\x3e AEWeb\n Images --\x3e AEWeb\n\n AEWeb --\x3e Transaction#1\n AEWeb --\x3e Transaction#2\n AEWeb --\x3e Transaction#3\n"}),(0,i.kt)("p",null,"One of this transaction is called the ",(0,i.kt)("inlineCode",{parentName:"p"},"reference"),". Its goals is to act as a pointer to other transactions helping the retrieval of the files and allows upgrades to be transparent for the users."),(0,i.kt)("p",null,"The reference transaction's address will become the address of the website, hence managing its lifecycle."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-json"},'{\n "aewebVersion": 1,\n "hashFunction": "sha-1",\n "metaData": {\n "index.html": {\n "size": 68420,\n "hash": "ABC123F...",\n "encoding": "gzip",\n "addresses": ["0FB27DAC...."]\n },\n "scripts/main.js": {\n "size": 255121,\n "hash": "01AB2CD...",\n "encoding": "gzip",\n "addresses": ["0AC1BFA9..."]\n } \n }\n}\n')),(0,i.kt)("p",null,"The other transactions (called ",(0,i.kt)("inlineCode",{parentName:"p"},"data"),") will contain the content of the files encoded in base64"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-json"},'{\n "index.html": "b298kJKFS98dj7Xdnsq....", \n "scripts/main.js": "aGVsbG8gd29ybGQ=" \n}\n')),(0,i.kt)("p",null,"To leverage the maximum of the transaction size, all the content are grouped into the smallest amount of transaction possible.\nFor example, you could have a website which contains: 3 files:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"HTML page"),(0,i.kt)("li",{parentName:"ul"},"Image"),(0,i.kt)("li",{parentName:"ul"},"CSS")),(0,i.kt)("p",null,"3 transactions could be generated:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Reference:")),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-jsonc"},'{\n "aewebVersion": 1,\n "hashFunction": "sha-1",\n "metaData": {\n "index.html": {\n ...\n "addresses": ["0ac7fj..."]\n },\n "assets/app.css": {\n ...\n "addresses": ["0ac7fj..."]\n },\n "assets/image.jpg": {\n ...\n // image.jpg is too big to fit in a single data transaction\n "addresses": ["0ac7fj...", "1fb2ha..."] \n }\n}\n')),(0,i.kt)("ol",{start:2},(0,i.kt)("li",{parentName:"ol"},"HTML + CSS + Image (chunked by 30%)")),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-jsonc"},'// data transaction: "0ac7fj..."\n{\n "index.html": "...",\n "assets/app.css": "..."\n "assets/image.jpg": "..."\n}\n')),(0,i.kt)("ol",{start:3},(0,i.kt)("li",{parentName:"ol"},"Image (remaining chunks)")),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-jsonc"},'// data transaction: "1fb2ha..."\n{\n "assets/image.jpg": "..."\n}\n')),(0,i.kt)("h2",{id:"content-delivery"},"Content delivery"),(0,i.kt)("p",null,"On the other side, the transactions are validated and stored on the Archethic Blockchain.\nAny Archethic node exposes an API dedicated for the web hosting by AEWeb."),(0,i.kt)("p",null,"This API takes a reference address as a parameter, and then proceeds to take the path of the file, just like any web server would do."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-sh"},"https://mainnet.archethic.net/aeweb/0c19fd13......../image.jpg\n")),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"aeweb_CDN",src:n(94313).Z+"#gh-light-mode-only",width:"274",height:"215"}),"\n",(0,i.kt)("img",{alt:"aeweb_CDN",src:n(91951).Z+"#gh-dark-mode-only",width:"274",height:"215"})),(0,i.kt)("p",null,"The welcome node will request the reference transaction download to its related shard.\nIt will parse the reference content and detect the transactions to download for the requested file."),(0,i.kt)("p",null,"Once the file downloaded, the content will send back to the client and the browser will display the file."),(0,i.kt)("p",null,"Because websites rendering is composed of multiple HTTP requests for each file, the browser will be able to understand the responses and display the website entirely - while leveraging a single reference on-chain."),(0,i.kt)("admonition",{title:"Good to know",type:"info"},(0,i.kt)("p",{parentName:"admonition"},"Once the website retrieved, the data will be cached locally. So, the next time the same person will visit the website, no data will be fetched again."),(0,i.kt)("p",{parentName:"admonition"},"This will be true until the website and the reference chain evolves.")),(0,i.kt)("h2",{id:"website-updates"},"Website updates"),(0,i.kt)("p",null,"The first thing a node does when it receives an AEWeb request is to download the latest ",(0,i.kt)("inlineCode",{parentName:"p"},"reference")," transaction from the chain. This behaviour allows a user to update its website and to keep the same URL."),(0,i.kt)("p",null,"This means that updating a website is as simple as sending a new ",(0,i.kt)("inlineCode",{parentName:"p"},"reference")," transaction!"),(0,i.kt)("h2",{id:"website-unpublication"},"Website unpublication"),(0,i.kt)("p",null,"Introduced by ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/aeip/blob/main/AEIP-13.md"},"AEIP-13"),", a website can be unpublished by sending the following ",(0,i.kt)("inlineCode",{parentName:"p"},"reference")," transaction:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-json"},'{\n "aeip": [8, 13],\n "aewebVersion": 1,\n "publicationStatus": "UNPUBLISHED"\n}\n')),(0,i.kt)("p",null,"As long as this ",(0,i.kt)("inlineCode",{parentName:"p"},"reference")," transaction is the latest, the nodes will not serve the website. An HTTP status code 410 is sent."),(0,i.kt)("admonition",{title:"Data is permanent",type:"caution"},(0,i.kt)("p",{parentName:"admonition"},"The data from an unpublished website (and all previous version as a matter of fact) always remain in the blockchain. Here, we only disable the endpoint to access it.")))}h.isMDXComponent=!0},91951:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/aeweb_CDN-dark-a23984e644c6a6122b47d21df57208e0.svg"},94313:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/aeweb_CDN-a2976501bd49a6a0049eebd89e41f66c.svg"},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7655],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>b});var a=n(67294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function s(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l=a.createContext({}),c=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},p=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},d="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var n=e.components,i=e.mdxType,r=e.originalType,l=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),d=c(n),u=i,b=d["".concat(l,".").concat(u)]||d[u]||h[u]||r;return n?a.createElement(b,s(s({ref:t},p),{},{components:n})):a.createElement(b,s({ref:t},p))}));function b(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=n.length,s=new Array(r);s[0]=u;var o={};for(var l in t)hasOwnProperty.call(t,l)&&(o[l]=t[l]);o.originalType=e,o[d]="string"==typeof e?e:i,s[1]=o;for(var c=2;c{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>h,frontMatter:()=>r,metadata:()=>o,toc:()=>c});var a=n(87462),i=(n(67294),n(3905));n(8209);const r={id:"how-it-works",title:"AEWeb - How it works",sidebar_label:"How it works",sidebar_position:1},s=void 0,o={unversionedId:"participate/aeweb/how-it-works",id:"participate/aeweb/how-it-works",title:"AEWeb - How it works",description:"Archethic Web (AEWeb) is using transaction chains to host any website on Archethic Blockchain.",source:"@site/docs/participate/aeweb/how-it-works.md",sourceDirName:"participate/aeweb",slug:"/participate/aeweb/how-it-works",permalink:"/participate/aeweb/how-it-works",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",sidebarPosition:1,frontMatter:{id:"how-it-works",title:"AEWeb - How it works",sidebar_label:"How it works",sidebar_position:1},sidebar:"docs",previous:{title:"Archethic Web (aeHosting)",permalink:"/participate/aeweb/"},next:{title:"Domain Names",permalink:"/participate/aeweb/dns"}},l={},c=[{value:"Transaction building",id:"transaction-building",level:2},{value:"Content delivery",id:"content-delivery",level:2},{value:"Website updates",id:"website-updates",level:2},{value:"Website unpublication",id:"website-unpublication",level:2}],p={toc:c},d="wrapper";function h(e){let{components:t,...r}=e;return(0,i.kt)(d,(0,a.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"Archethic Web (AEWeb) is using transaction chains to host any website on Archethic Blockchain."),(0,i.kt)("p",null,"We will describe the following process from the building until the delivery to the browser."),(0,i.kt)("h2",{id:"transaction-building"},"Transaction building"),(0,i.kt)("p",null,"On the beginning of any hosting, there is a website composed of:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"HTML pages"),(0,i.kt)("li",{parentName:"ul"},"CSS files"),(0,i.kt)("li",{parentName:"ul"},"Javascript files"),(0,i.kt)("li",{parentName:"ul"},"Images"),(0,i.kt)("li",{parentName:"ul"},"Videos")),(0,i.kt)("p",null,"When the folder of the website is passed to the AEWeb CLI, the files are analyzed and packaged into blob of 3MB (current limitation of transaction's content)."),(0,i.kt)("mermaid",{value:"graph TD\n\n HTML --\x3e AEWeb\n CSS --\x3e AEWeb\n Javascript --\x3e AEWeb\n Images --\x3e AEWeb\n\n AEWeb --\x3e Transaction#1\n AEWeb --\x3e Transaction#2\n AEWeb --\x3e Transaction#3\n"}),(0,i.kt)("p",null,"One of this transaction is called the ",(0,i.kt)("inlineCode",{parentName:"p"},"reference"),". Its goals is to act as a pointer to other transactions helping the retrieval of the files and allows upgrades to be transparent for the users."),(0,i.kt)("p",null,"The reference transaction's address will become the address of the website, hence managing its lifecycle."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-json"},'{\n "aewebVersion": 1,\n "hashFunction": "sha-1",\n "metaData": {\n "index.html": {\n "size": 68420,\n "hash": "ABC123F...",\n "encoding": "gzip",\n "addresses": ["0FB27DAC...."]\n },\n "scripts/main.js": {\n "size": 255121,\n "hash": "01AB2CD...",\n "encoding": "gzip",\n "addresses": ["0AC1BFA9..."]\n } \n }\n}\n')),(0,i.kt)("p",null,"The other transactions (called ",(0,i.kt)("inlineCode",{parentName:"p"},"data"),") will contain the content of the files encoded in base64"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-json"},'{\n "index.html": "b298kJKFS98dj7Xdnsq....", \n "scripts/main.js": "aGVsbG8gd29ybGQ=" \n}\n')),(0,i.kt)("p",null,"To leverage the maximum of the transaction size, all the content are grouped into the smallest amount of transaction possible.\nFor example, you could have a website which contains: 3 files:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"HTML page"),(0,i.kt)("li",{parentName:"ul"},"Image"),(0,i.kt)("li",{parentName:"ul"},"CSS")),(0,i.kt)("p",null,"3 transactions could be generated:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Reference:")),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-jsonc"},'{\n "aewebVersion": 1,\n "hashFunction": "sha-1",\n "metaData": {\n "index.html": {\n ...\n "addresses": ["0ac7fj..."]\n },\n "assets/app.css": {\n ...\n "addresses": ["0ac7fj..."]\n },\n "assets/image.jpg": {\n ...\n // image.jpg is too big to fit in a single data transaction\n "addresses": ["0ac7fj...", "1fb2ha..."] \n }\n}\n')),(0,i.kt)("ol",{start:2},(0,i.kt)("li",{parentName:"ol"},"HTML + CSS + Image (chunked by 30%)")),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-jsonc"},'// data transaction: "0ac7fj..."\n{\n "index.html": "...",\n "assets/app.css": "..."\n "assets/image.jpg": "..."\n}\n')),(0,i.kt)("ol",{start:3},(0,i.kt)("li",{parentName:"ol"},"Image (remaining chunks)")),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-jsonc"},'// data transaction: "1fb2ha..."\n{\n "assets/image.jpg": "..."\n}\n')),(0,i.kt)("h2",{id:"content-delivery"},"Content delivery"),(0,i.kt)("p",null,"On the other side, the transactions are validated and stored on the Archethic Blockchain.\nAny Archethic node exposes an API dedicated for the web hosting by AEWeb."),(0,i.kt)("p",null,"This API takes a reference address as a parameter, and then proceeds to take the path of the file, just like any web server would do."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-sh"},"https://mainnet.archethic.net/aeweb/0c19fd13......../image.jpg\n")),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"aeweb_CDN",src:n(94313).Z+"#gh-light-mode-only",width:"274",height:"215"}),"\n",(0,i.kt)("img",{alt:"aeweb_CDN",src:n(91951).Z+"#gh-dark-mode-only",width:"274",height:"215"})),(0,i.kt)("p",null,"The welcome node will request the reference transaction download to its related shard.\nIt will parse the reference content and detect the transactions to download for the requested file."),(0,i.kt)("p",null,"Once the file downloaded, the content will send back to the client and the browser will display the file."),(0,i.kt)("p",null,"Because websites rendering is composed of multiple HTTP requests for each file, the browser will be able to understand the responses and display the website entirely - while leveraging a single reference on-chain."),(0,i.kt)("admonition",{title:"Good to know",type:"info"},(0,i.kt)("p",{parentName:"admonition"},"Once the website retrieved, the data will be cached locally. So, the next time the same person will visit the website, no data will be fetched again."),(0,i.kt)("p",{parentName:"admonition"},"This will be true until the website and the reference chain evolves.")),(0,i.kt)("h2",{id:"website-updates"},"Website updates"),(0,i.kt)("p",null,"The first thing a node does when it receives an AEWeb request is to download the latest ",(0,i.kt)("inlineCode",{parentName:"p"},"reference")," transaction from the chain. This behaviour allows a user to update its website and to keep the same URL."),(0,i.kt)("p",null,"This means that updating a website is as simple as sending a new ",(0,i.kt)("inlineCode",{parentName:"p"},"reference")," transaction!"),(0,i.kt)("h2",{id:"website-unpublication"},"Website unpublication"),(0,i.kt)("p",null,"Introduced by ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/aeip/blob/main/AEIP-13.md"},"AEIP-13"),", a website can be unpublished by sending the following ",(0,i.kt)("inlineCode",{parentName:"p"},"reference")," transaction:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-json"},'{\n "aeip": [8, 13],\n "aewebVersion": 1,\n "publicationStatus": "UNPUBLISHED"\n}\n')),(0,i.kt)("p",null,"As long as this ",(0,i.kt)("inlineCode",{parentName:"p"},"reference")," transaction is the latest, the nodes will not serve the website. An HTTP status code 410 is sent."),(0,i.kt)("admonition",{title:"Data is permanent",type:"caution"},(0,i.kt)("p",{parentName:"admonition"},"The data from an unpublished website (and all previous version as a matter of fact) always remain in the blockchain. Here, we only disable the endpoint to access it.")))}h.isMDXComponent=!0},91951:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/aeweb_CDN-dark-a23984e644c6a6122b47d21df57208e0.svg"},94313:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/aeweb_CDN-a2976501bd49a6a0049eebd89e41f66c.svg"},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/8153e280.73bcee29.js b/assets/js/8153e280.ac282253.js similarity index 97% rename from assets/js/8153e280.73bcee29.js rename to assets/js/8153e280.ac282253.js index f739ccbb9..962de5c48 100644 --- a/assets/js/8153e280.73bcee29.js +++ b/assets/js/8153e280.ac282253.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[711],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>f});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function s(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var i=n.createContext({}),c=function(e){var t=n.useContext(i),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},d=function(e){var t=c(e.components);return n.createElement(i.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,s=e.originalType,i=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),u=c(a),m=r,f=u["".concat(i,".").concat(m)]||u[m]||p[m]||s;return a?n.createElement(f,o(o({ref:t},d),{},{components:a})):n.createElement(f,o({ref:t},d))}));function f(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var s=a.length,o=new Array(s);o[0]=m;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l[u]="string"==typeof e?e:r,o[1]=l;for(var c=2;c{a.r(t),a.d(t,{Badge:()=>p,Bullet:()=>d,Details:()=>f,SpecifiedBy:()=>u,assets:()=>c,contentTitle:()=>l,default:()=>g,frontMatter:()=>o,metadata:()=>i,toc:()=>m});var n=a(87462),r=a(67294),s=a(3905);a(8209);const o={id:"last-transaction",title:"lastTransaction",hide_table_of_contents:!1},l=void 0,i={unversionedId:"build/api/schema/queries/last-transaction",id:"build/api/schema/queries/last-transaction",title:"lastTransaction",description:"Query the network to find the last transaction from an address",source:"@site/docs/build/api/schema/queries/last-transaction.mdx",sourceDirName:"build/api/schema/queries",slug:"/build/api/schema/queries/last-transaction",permalink:"/build/api/schema/queries/last-transaction",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"last-transaction",title:"lastTransaction",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"genesisAddress",permalink:"/build/api/schema/queries/genesis-address"},next:{title:"nearestEndpoints",permalink:"/build/api/schema/queries/nearest-endpoints"}},c={},d=()=>(0,s.kt)(r.Fragment,null,(0,s.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),u=e=>(0,s.kt)(r.Fragment,null,"Specification",(0,s.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),p=e=>(0,s.kt)(r.Fragment,null,(0,s.kt)("span",{className:e.class},e.text)),m=[{value:"Arguments",id:"arguments",level:3},{value:'lastTransaction.addressAddress! ',id:"code-style-fontweight-normal-lasttransactionbaddressbcodeaddress--",level:4},{value:"Type",id:"type",level:3},{value:'Transaction ',id:"transaction-",level:4}],f=e=>{let{dataOpen:t,dataClose:a,children:o,startOpen:l=!1}=e;const[i,c]=(0,r.useState)(l);return(0,s.kt)("details",(0,n.Z)({},i?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,s.kt)("summary",{onClick:e=>{e.preventDefault(),c((e=>!e))},style:{listStyle:"none"}},i?t:a),i&&o)},b={Bullet:d,SpecifiedBy:u,Badge:p,toc:m,Details:f},y="wrapper";function g(e){let{components:t,...a}=e;return(0,s.kt)(y,(0,n.Z)({},b,a,{components:t,mdxType:"MDXLayout"}),(0,s.kt)("p",null,"Query the network to find the last transaction from an address"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-graphql"},"lastTransaction(\n address: Address!\n): Transaction\n")),(0,s.kt)("h3",{id:"arguments"},"Arguments"),(0,s.kt)("h4",{id:"code-style-fontweight-normal-lasttransactionbaddressbcodeaddress--"},(0,s.kt)("a",{parentName:"h4",href:"#"},(0,s.kt)("code",{style:{fontWeight:"normal"}},"lastTransaction.",(0,s.kt)("b",null,"address"))),(0,s.kt)(d,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/address"},(0,s.kt)("inlineCode",{parentName:"a"},"Address!"))," ",(0,s.kt)(p,{class:"badge badge--secondary",text:"non-null",mdxType:"Badge"})," ",(0,s.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,s.kt)("blockquote",null),(0,s.kt)("h3",{id:"type"},"Type"),(0,s.kt)("h4",{id:"transaction-"},(0,s.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/transaction"},(0,s.kt)("inlineCode",{parentName:"a"},"Transaction"))," ",(0,s.kt)(p,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,s.kt)("blockquote",null,(0,s.kt)("p",{parentName:"blockquote"},"[Transaction]"," represents a unitary transaction in the Archethic network.")))}g.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[711],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>f});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function s(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var i=n.createContext({}),c=function(e){var t=n.useContext(i),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},d=function(e){var t=c(e.components);return n.createElement(i.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,s=e.originalType,i=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),u=c(a),m=r,f=u["".concat(i,".").concat(m)]||u[m]||p[m]||s;return a?n.createElement(f,o(o({ref:t},d),{},{components:a})):n.createElement(f,o({ref:t},d))}));function f(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var s=a.length,o=new Array(s);o[0]=m;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l[u]="string"==typeof e?e:r,o[1]=l;for(var c=2;c{a.r(t),a.d(t,{Badge:()=>p,Bullet:()=>d,Details:()=>f,SpecifiedBy:()=>u,assets:()=>c,contentTitle:()=>l,default:()=>g,frontMatter:()=>o,metadata:()=>i,toc:()=>m});var n=a(87462),r=a(67294),s=a(3905);a(8209);const o={id:"last-transaction",title:"lastTransaction",hide_table_of_contents:!1},l=void 0,i={unversionedId:"build/api/schema/queries/last-transaction",id:"build/api/schema/queries/last-transaction",title:"lastTransaction",description:"Query the network to find the last transaction from an address",source:"@site/docs/build/api/schema/queries/last-transaction.mdx",sourceDirName:"build/api/schema/queries",slug:"/build/api/schema/queries/last-transaction",permalink:"/build/api/schema/queries/last-transaction",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"last-transaction",title:"lastTransaction",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"genesisAddress",permalink:"/build/api/schema/queries/genesis-address"},next:{title:"nearestEndpoints",permalink:"/build/api/schema/queries/nearest-endpoints"}},c={},d=()=>(0,s.kt)(r.Fragment,null,(0,s.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),u=e=>(0,s.kt)(r.Fragment,null,"Specification",(0,s.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),p=e=>(0,s.kt)(r.Fragment,null,(0,s.kt)("span",{className:e.class},e.text)),m=[{value:"Arguments",id:"arguments",level:3},{value:'lastTransaction.addressAddress! ',id:"code-style-fontweight-normal-lasttransactionbaddressbcodeaddress--",level:4},{value:"Type",id:"type",level:3},{value:'Transaction ',id:"transaction-",level:4}],f=e=>{let{dataOpen:t,dataClose:a,children:o,startOpen:l=!1}=e;const[i,c]=(0,r.useState)(l);return(0,s.kt)("details",(0,n.Z)({},i?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,s.kt)("summary",{onClick:e=>{e.preventDefault(),c((e=>!e))},style:{listStyle:"none"}},i?t:a),i&&o)},b={Bullet:d,SpecifiedBy:u,Badge:p,toc:m,Details:f},y="wrapper";function g(e){let{components:t,...a}=e;return(0,s.kt)(y,(0,n.Z)({},b,a,{components:t,mdxType:"MDXLayout"}),(0,s.kt)("p",null,"Query the network to find the last transaction from an address"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-graphql"},"lastTransaction(\n address: Address!\n): Transaction\n")),(0,s.kt)("h3",{id:"arguments"},"Arguments"),(0,s.kt)("h4",{id:"code-style-fontweight-normal-lasttransactionbaddressbcodeaddress--"},(0,s.kt)("a",{parentName:"h4",href:"#"},(0,s.kt)("code",{style:{fontWeight:"normal"}},"lastTransaction.",(0,s.kt)("b",null,"address"))),(0,s.kt)(d,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/address"},(0,s.kt)("inlineCode",{parentName:"a"},"Address!"))," ",(0,s.kt)(p,{class:"badge badge--secondary",text:"non-null",mdxType:"Badge"})," ",(0,s.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,s.kt)("blockquote",null),(0,s.kt)("h3",{id:"type"},"Type"),(0,s.kt)("h4",{id:"transaction-"},(0,s.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/transaction"},(0,s.kt)("inlineCode",{parentName:"a"},"Transaction"))," ",(0,s.kt)(p,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,s.kt)("blockquote",null,(0,s.kt)("p",{parentName:"blockquote"},"[Transaction]"," represents a unitary transaction in the Archethic network.")))}g.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file diff --git a/assets/js/851bf865.26030a83.js b/assets/js/851bf865.63be9d7c.js similarity index 96% rename from assets/js/851bf865.26030a83.js rename to assets/js/851bf865.63be9d7c.js index 6f4c9bb59..d11c86475 100644 --- a/assets/js/851bf865.26030a83.js +++ b/assets/js/851bf865.63be9d7c.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[827],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>f});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),s=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=s(e.components);return r.createElement(l.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),p=s(n),d=a,f=p["".concat(l,".").concat(d)]||p[d]||m[d]||o;return n?r.createElement(f,i(i({ref:t},u),{},{components:n})):r.createElement(f,i({ref:t},u))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=d;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[p]="string"==typeof e?e:a,i[1]=c;for(var s=2;s{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>c,toc:()=>s});var r=n(87462),a=(n(67294),n(3905));n(8209);const o={id:"schema",slug:"/schema",title:"Schema Documentation",sidebar_position:1,hide_table_of_contents:!0,pagination_next:null,pagination_prev:null,sidebar_class_name:"navbar__toggle"},i=void 0,c={unversionedId:"build/api/schema/schema",id:"build/api/schema/schema",title:"Schema Documentation",description:"This documentation has been automatically generated from the GraphQL schema.",source:"@site/docs/build/api/schema/generated.md",sourceDirName:"build/api/schema",slug:"/schema",permalink:"/schema",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",sidebarPosition:1,frontMatter:{id:"schema",slug:"/schema",title:"Schema Documentation",sidebar_position:1,hide_table_of_contents:!0,pagination_next:null,pagination_prev:null,sidebar_class_name:"navbar__toggle"},sidebar:"docs"},l={},s=[],u={toc:s},p="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"This documentation has been automatically generated from the GraphQL schema."),(0,a.kt)("p",null,"Use the docs in the sidebar to find out how to use the schema:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Allowed operations"),": queries and mutations."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Schema-defined types"),": scalars, objects, enums, interfaces, unions, and input objects.")),(0,a.kt)("small",null,(0,a.kt)("i",null,"Generated on 6/20/2024, 4:15:30 PM.")))}m.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[827],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>f});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),s=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=s(e.components);return r.createElement(l.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),p=s(n),d=a,f=p["".concat(l,".").concat(d)]||p[d]||m[d]||o;return n?r.createElement(f,i(i({ref:t},u),{},{components:n})):r.createElement(f,i({ref:t},u))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=d;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[p]="string"==typeof e?e:a,i[1]=c;for(var s=2;s{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>c,toc:()=>s});var r=n(87462),a=(n(67294),n(3905));n(8209);const o={id:"schema",slug:"/schema",title:"Schema Documentation",sidebar_position:1,hide_table_of_contents:!0,pagination_next:null,pagination_prev:null,sidebar_class_name:"navbar__toggle"},i=void 0,c={unversionedId:"build/api/schema/schema",id:"build/api/schema/schema",title:"Schema Documentation",description:"This documentation has been automatically generated from the GraphQL schema.",source:"@site/docs/build/api/schema/generated.md",sourceDirName:"build/api/schema",slug:"/schema",permalink:"/schema",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",sidebarPosition:1,frontMatter:{id:"schema",slug:"/schema",title:"Schema Documentation",sidebar_position:1,hide_table_of_contents:!0,pagination_next:null,pagination_prev:null,sidebar_class_name:"navbar__toggle"},sidebar:"docs"},l={},s=[],u={toc:s},p="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"This documentation has been automatically generated from the GraphQL schema."),(0,a.kt)("p",null,"Use the docs in the sidebar to find out how to use the schema:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Allowed operations"),": queries and mutations."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Schema-defined types"),": scalars, objects, enums, interfaces, unions, and input objects.")),(0,a.kt)("small",null,(0,a.kt)("i",null,"Generated on 6/20/2024, 4:15:30 PM.")))}m.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/87dfbf5d.3cecfc4c.js b/assets/js/87dfbf5d.94afd6b0.js similarity index 97% rename from assets/js/87dfbf5d.3cecfc4c.js rename to assets/js/87dfbf5d.94afd6b0.js index 6bd3abce9..86d8abcd8 100644 --- a/assets/js/87dfbf5d.3cecfc4c.js +++ b/assets/js/87dfbf5d.94afd6b0.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1171],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>h});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function s(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var l=r.createContext({}),c=function(e){var t=r.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):s(s({},t),e)),a},p=function(e){var t=c(e.components);return r.createElement(l.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,l=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),d=c(a),m=n,h=d["".concat(l,".").concat(m)]||d[m]||u[m]||i;return a?r.createElement(h,s(s({ref:t},p),{},{components:a})):r.createElement(h,s({ref:t},p))}));function h(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,s=new Array(i);s[0]=m;var o={};for(var l in t)hasOwnProperty.call(t,l)&&(o[l]=t[l]);o.originalType=e,o[d]="string"==typeof e?e:n,s[1]=o;for(var c=2;c{a.r(t),a.d(t,{Badge:()=>m,Bullet:()=>d,SpecifiedBy:()=>u,assets:()=>c,contentTitle:()=>o,default:()=>y,frontMatter:()=>s,metadata:()=>l,toc:()=>p});var r=a(87462),n=a(67294),i=a(3905);a(8209);const s={id:"hash",title:"Hash",hide_table_of_contents:!1},o=void 0,l={unversionedId:"build/api/schema/scalars/hash",id:"build/api/schema/scalars/hash",title:"Hash",description:"The [Hash] scalar type represents a cryptographic hash used in",source:"@site/docs/build/api/schema/scalars/hash.mdx",sourceDirName:"build/api/schema/scalars",slug:"/build/api/schema/scalars/hash",permalink:"/build/api/schema/scalars/hash",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"hash",title:"Hash",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"Float",permalink:"/build/api/schema/scalars/float"},next:{title:"Hex",permalink:"/build/api/schema/scalars/hex"}},c={},p=[{value:"Member of",id:"member-of",level:3}],d=()=>(0,i.kt)(n.Fragment,null,(0,i.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),u=e=>(0,i.kt)(n.Fragment,null,"Specification",(0,i.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),m=e=>(0,i.kt)(n.Fragment,null,(0,i.kt)("span",{class:"badge badge--"+e.class},e.text)),h={toc:p,Bullet:d,SpecifiedBy:u,Badge:m},f="wrapper";function y(e){let{components:t,...a}=e;return(0,i.kt)(f,(0,r.Z)({},h,a,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"The ","[Hash]"," scalar type represents a cryptographic hash used in\nthe Archethic network with an identification byte to specify from which algorithm the hash was generated.\nThe Hash appears in a JSON response as Base16 formatted string. The parsed hash will\nbe converted to a binary and any invalid hash with an invalid algorithm or invalid size will be rejected"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-graphql"},"scalar Hash\n")),(0,i.kt)("h3",{id:"member-of"},"Member of"),(0,i.kt)("p",null,(0,i.kt)("a",{parentName:"p",href:"/build/api/schema/objects/transaction-summary"},(0,i.kt)("inlineCode",{parentName:"a"},"TransactionSummary"))," ",(0,i.kt)(m,{class:"secondary",text:"object",mdxType:"Badge"}),(0,i.kt)(d,{mdxType:"Bullet"}),(0,i.kt)("a",{parentName:"p",href:"/build/api/schema/objects/validation-stamp"},(0,i.kt)("inlineCode",{parentName:"a"},"ValidationStamp"))," ",(0,i.kt)(m,{class:"secondary",text:"object",mdxType:"Badge"})))}y.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1171],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>h});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function s(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var l=r.createContext({}),c=function(e){var t=r.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):s(s({},t),e)),a},p=function(e){var t=c(e.components);return r.createElement(l.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,l=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),d=c(a),m=n,h=d["".concat(l,".").concat(m)]||d[m]||u[m]||i;return a?r.createElement(h,s(s({ref:t},p),{},{components:a})):r.createElement(h,s({ref:t},p))}));function h(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,s=new Array(i);s[0]=m;var o={};for(var l in t)hasOwnProperty.call(t,l)&&(o[l]=t[l]);o.originalType=e,o[d]="string"==typeof e?e:n,s[1]=o;for(var c=2;c{a.r(t),a.d(t,{Badge:()=>m,Bullet:()=>d,SpecifiedBy:()=>u,assets:()=>c,contentTitle:()=>o,default:()=>y,frontMatter:()=>s,metadata:()=>l,toc:()=>p});var r=a(87462),n=a(67294),i=a(3905);a(8209);const s={id:"hash",title:"Hash",hide_table_of_contents:!1},o=void 0,l={unversionedId:"build/api/schema/scalars/hash",id:"build/api/schema/scalars/hash",title:"Hash",description:"The [Hash] scalar type represents a cryptographic hash used in",source:"@site/docs/build/api/schema/scalars/hash.mdx",sourceDirName:"build/api/schema/scalars",slug:"/build/api/schema/scalars/hash",permalink:"/build/api/schema/scalars/hash",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"hash",title:"Hash",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"Float",permalink:"/build/api/schema/scalars/float"},next:{title:"Hex",permalink:"/build/api/schema/scalars/hex"}},c={},p=[{value:"Member of",id:"member-of",level:3}],d=()=>(0,i.kt)(n.Fragment,null,(0,i.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),u=e=>(0,i.kt)(n.Fragment,null,"Specification",(0,i.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),m=e=>(0,i.kt)(n.Fragment,null,(0,i.kt)("span",{class:"badge badge--"+e.class},e.text)),h={toc:p,Bullet:d,SpecifiedBy:u,Badge:m},f="wrapper";function y(e){let{components:t,...a}=e;return(0,i.kt)(f,(0,r.Z)({},h,a,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"The ","[Hash]"," scalar type represents a cryptographic hash used in\nthe Archethic network with an identification byte to specify from which algorithm the hash was generated.\nThe Hash appears in a JSON response as Base16 formatted string. The parsed hash will\nbe converted to a binary and any invalid hash with an invalid algorithm or invalid size will be rejected"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-graphql"},"scalar Hash\n")),(0,i.kt)("h3",{id:"member-of"},"Member of"),(0,i.kt)("p",null,(0,i.kt)("a",{parentName:"p",href:"/build/api/schema/objects/transaction-summary"},(0,i.kt)("inlineCode",{parentName:"a"},"TransactionSummary"))," ",(0,i.kt)(m,{class:"secondary",text:"object",mdxType:"Badge"}),(0,i.kt)(d,{mdxType:"Bullet"}),(0,i.kt)("a",{parentName:"p",href:"/build/api/schema/objects/validation-stamp"},(0,i.kt)("inlineCode",{parentName:"a"},"ValidationStamp"))," ",(0,i.kt)(m,{class:"secondary",text:"object",mdxType:"Badge"})))}y.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file diff --git a/assets/js/89af9b08.e42b51a0.js b/assets/js/89af9b08.e5fe57ee.js similarity index 99% rename from assets/js/89af9b08.e42b51a0.js rename to assets/js/89af9b08.e5fe57ee.js index 45a4b982e..9b87064ff 100644 --- a/assets/js/89af9b08.e42b51a0.js +++ b/assets/js/89af9b08.e5fe57ee.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4230],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>m});var n=a(67294);function l(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t=0||(l[a]=e[a]);return l}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(l[a]=e[a])}return l}var i=n.createContext({}),d=function(e){var t=n.useContext(i),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},s=function(e){var t=d(e.components);return n.createElement(i.Provider,{value:t},e.children)},b="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},p=n.forwardRef((function(e,t){var a=e.components,l=e.mdxType,r=e.originalType,i=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),b=d(a),p=l,m=b["".concat(i,".").concat(p)]||b[p]||u[p]||r;return a?n.createElement(m,o(o({ref:t},s),{},{components:a})):n.createElement(m,o({ref:t},s))}));function m(e,t){var a=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var r=a.length,o=new Array(r);o[0]=p;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[b]="string"==typeof e?e:l,o[1]=c;for(var d=2;d{a.r(t),a.d(t,{Badge:()=>u,Bullet:()=>s,Details:()=>m,SpecifiedBy:()=>b,assets:()=>d,contentTitle:()=>c,default:()=>k,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var n=a(87462),l=a(67294),r=a(3905);a(8209);const o={id:"balance",title:"Balance",hide_table_of_contents:!1},c=void 0,i={unversionedId:"build/api/schema/objects/balance",id:"build/api/schema/objects/balance",title:"Balance",description:"[Balance] represents a ledger balance.",source:"@site/docs/build/api/schema/objects/balance.mdx",sourceDirName:"build/api/schema/objects",slug:"/build/api/schema/objects/balance",permalink:"/build/api/schema/objects/balance",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"balance",title:"Balance",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"AuthorizedKey",permalink:"/build/api/schema/objects/authorized-key"},next:{title:"BeaconChainSummary",permalink:"/build/api/schema/objects/beacon-chain-summary"}},d={},s=()=>(0,r.kt)(l.Fragment,null,(0,r.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),b=e=>(0,r.kt)(l.Fragment,null,"Specification",(0,r.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,r.kt)(l.Fragment,null,(0,r.kt)("span",{className:e.class},e.text)),p=[{value:"Fields",id:"fields",level:3},{value:'Balance.token[TokenBalance] ',id:"code-style-fontweight-normal-balancebtokenbcodetokenbalance--",level:4},{value:'Balance.ucoInt ',id:"code-style-fontweight-normal-balancebucobcodeint-",level:4},{value:"Returned by",id:"returned-by",level:3},{value:"Member of",id:"member-of",level:3}],m=e=>{let{dataOpen:t,dataClose:a,children:o,startOpen:c=!1}=e;const[i,d]=(0,l.useState)(c);return(0,r.kt)("details",(0,n.Z)({},i?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,r.kt)("summary",{onClick:e=>{e.preventDefault(),d((e=>!e))},style:{listStyle:"none"}},i?t:a),i&&o)},f={Bullet:s,SpecifiedBy:b,Badge:u,toc:p,Details:m},y="wrapper";function k(e){let{components:t,...a}=e;return(0,r.kt)(y,(0,n.Z)({},f,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"[Balance]"," represents a ledger balance.\nIt includes:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"UCO: uco balance"),(0,r.kt)("li",{parentName:"ul"},"token: token balances")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-graphql"},"type Balance {\n token: [TokenBalance]\n uco: Int\n}\n")),(0,r.kt)("h3",{id:"fields"},"Fields"),(0,r.kt)("h4",{id:"code-style-fontweight-normal-balancebtokenbcodetokenbalance--"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"Balance.",(0,r.kt)("b",null,"token"))),(0,r.kt)(s,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/token-balance"},(0,r.kt)("inlineCode",{parentName:"a"},"[TokenBalance]"))," ",(0,r.kt)(u,{class:"badge badge--secondary",text:"list",mdxType:"Badge"})," ",(0,r.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-balancebucobcodeint-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"Balance.",(0,r.kt)("b",null,"uco"))),(0,r.kt)(s,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/int"},(0,r.kt)("inlineCode",{parentName:"a"},"Int"))," ",(0,r.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h3",{id:"returned-by"},"Returned by"),(0,r.kt)("p",null,(0,r.kt)("a",{parentName:"p",href:"/build/api/schema/queries/balance"},(0,r.kt)("inlineCode",{parentName:"a"},"balance"))," ",(0,r.kt)(u,{class:"badge badge--secondary",text:"query",mdxType:"Badge"})),(0,r.kt)("h3",{id:"member-of"},"Member of"),(0,r.kt)("p",null,(0,r.kt)("a",{parentName:"p",href:"/build/api/schema/objects/transaction"},(0,r.kt)("inlineCode",{parentName:"a"},"Transaction"))," ",(0,r.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}k.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4230],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>m});var n=a(67294);function l(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t=0||(l[a]=e[a]);return l}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(l[a]=e[a])}return l}var i=n.createContext({}),d=function(e){var t=n.useContext(i),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},s=function(e){var t=d(e.components);return n.createElement(i.Provider,{value:t},e.children)},b="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},p=n.forwardRef((function(e,t){var a=e.components,l=e.mdxType,r=e.originalType,i=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),b=d(a),p=l,m=b["".concat(i,".").concat(p)]||b[p]||u[p]||r;return a?n.createElement(m,o(o({ref:t},s),{},{components:a})):n.createElement(m,o({ref:t},s))}));function m(e,t){var a=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var r=a.length,o=new Array(r);o[0]=p;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[b]="string"==typeof e?e:l,o[1]=c;for(var d=2;d{a.r(t),a.d(t,{Badge:()=>u,Bullet:()=>s,Details:()=>m,SpecifiedBy:()=>b,assets:()=>d,contentTitle:()=>c,default:()=>k,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var n=a(87462),l=a(67294),r=a(3905);a(8209);const o={id:"balance",title:"Balance",hide_table_of_contents:!1},c=void 0,i={unversionedId:"build/api/schema/objects/balance",id:"build/api/schema/objects/balance",title:"Balance",description:"[Balance] represents a ledger balance.",source:"@site/docs/build/api/schema/objects/balance.mdx",sourceDirName:"build/api/schema/objects",slug:"/build/api/schema/objects/balance",permalink:"/build/api/schema/objects/balance",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"balance",title:"Balance",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"AuthorizedKey",permalink:"/build/api/schema/objects/authorized-key"},next:{title:"BeaconChainSummary",permalink:"/build/api/schema/objects/beacon-chain-summary"}},d={},s=()=>(0,r.kt)(l.Fragment,null,(0,r.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),b=e=>(0,r.kt)(l.Fragment,null,"Specification",(0,r.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,r.kt)(l.Fragment,null,(0,r.kt)("span",{className:e.class},e.text)),p=[{value:"Fields",id:"fields",level:3},{value:'Balance.token[TokenBalance] ',id:"code-style-fontweight-normal-balancebtokenbcodetokenbalance--",level:4},{value:'Balance.ucoInt ',id:"code-style-fontweight-normal-balancebucobcodeint-",level:4},{value:"Returned by",id:"returned-by",level:3},{value:"Member of",id:"member-of",level:3}],m=e=>{let{dataOpen:t,dataClose:a,children:o,startOpen:c=!1}=e;const[i,d]=(0,l.useState)(c);return(0,r.kt)("details",(0,n.Z)({},i?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,r.kt)("summary",{onClick:e=>{e.preventDefault(),d((e=>!e))},style:{listStyle:"none"}},i?t:a),i&&o)},f={Bullet:s,SpecifiedBy:b,Badge:u,toc:p,Details:m},y="wrapper";function k(e){let{components:t,...a}=e;return(0,r.kt)(y,(0,n.Z)({},f,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"[Balance]"," represents a ledger balance.\nIt includes:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"UCO: uco balance"),(0,r.kt)("li",{parentName:"ul"},"token: token balances")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-graphql"},"type Balance {\n token: [TokenBalance]\n uco: Int\n}\n")),(0,r.kt)("h3",{id:"fields"},"Fields"),(0,r.kt)("h4",{id:"code-style-fontweight-normal-balancebtokenbcodetokenbalance--"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"Balance.",(0,r.kt)("b",null,"token"))),(0,r.kt)(s,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/token-balance"},(0,r.kt)("inlineCode",{parentName:"a"},"[TokenBalance]"))," ",(0,r.kt)(u,{class:"badge badge--secondary",text:"list",mdxType:"Badge"})," ",(0,r.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-balancebucobcodeint-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"Balance.",(0,r.kt)("b",null,"uco"))),(0,r.kt)(s,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/int"},(0,r.kt)("inlineCode",{parentName:"a"},"Int"))," ",(0,r.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h3",{id:"returned-by"},"Returned by"),(0,r.kt)("p",null,(0,r.kt)("a",{parentName:"p",href:"/build/api/schema/queries/balance"},(0,r.kt)("inlineCode",{parentName:"a"},"balance"))," ",(0,r.kt)(u,{class:"badge badge--secondary",text:"query",mdxType:"Badge"})),(0,r.kt)("h3",{id:"member-of"},"Member of"),(0,r.kt)("p",null,(0,r.kt)("a",{parentName:"p",href:"/build/api/schema/objects/transaction"},(0,r.kt)("inlineCode",{parentName:"a"},"Transaction"))," ",(0,r.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}k.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file diff --git a/assets/js/8a9337ba.d6f6d745.js b/assets/js/8a9337ba.d45b9719.js similarity index 98% rename from assets/js/8a9337ba.d6f6d745.js rename to assets/js/8a9337ba.d45b9719.js index 261f17440..cad212ce7 100644 --- a/assets/js/8a9337ba.d6f6d745.js +++ b/assets/js/8a9337ba.d45b9719.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1113],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>m});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var c=a.createContext({}),l=function(e){var t=a.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=l(e.components);return a.createElement(c.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,c=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),d=l(n),h=r,m=d["".concat(c,".").concat(h)]||d[h]||p[h]||o;return n?a.createElement(m,i(i({ref:t},u),{},{components:n})):a.createElement(m,i({ref:t},u))}));function m(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=h;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[d]="string"==typeof e?e:r,i[1]=s;for(var l=2;l{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>p,frontMatter:()=>o,metadata:()=>s,toc:()=>l});var a=n(87462),r=(n(67294),n(3905));n(8209);const o={id:"beacon-chain",title:"BeaconChain"},i=void 0,s={unversionedId:"build/core/beacon-chain/beacon-chain",id:"build/core/beacon-chain/beacon-chain",title:"BeaconChain",description:"BeaconChain helps the Archethic sharding network to be supervised and provided global view of the system.",source:"@site/docs/build/core/beacon-chain/README.md",sourceDirName:"build/core/beacon-chain",slug:"/build/core/beacon-chain/",permalink:"/build/core/beacon-chain/",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"beacon-chain",title:"BeaconChain"},sidebar:"docs",previous:{title:"Account",permalink:"/build/core/account"},next:{title:"P2P availability sampling",permalink:"/build/core/beacon-chain/p2p-sampling"}},c={},l=[{value:"Subsets",id:"subsets",level:2},{value:"Timers and schedulers",id:"timers-and-schedulers",level:2},{value:"Transaction loading",id:"transaction-loading",level:2},{value:"Supervisor",id:"supervisor",level:2}],u={toc:l},d="wrapper";function p(e){let{components:t,...n}=e;return(0,r.kt)(d,(0,a.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"BeaconChain helps the Archethic sharding network to be supervised and provided global view of the system."),(0,r.kt)("p",null,"To be able to manage it, few modules and functions are needed to make this possible."),(0,r.kt)("h2",{id:"subsets"},"Subsets"),(0,r.kt)("p",null,"The BeaconChain is divided into a set of subsets (shards of the BeaconChain) based on hexadecimal splits.\nCurrently the BeaconChain supports 256 subsets, from 0 to F (hex)"),(0,r.kt)("p",null,"Each subset is maintained by its own ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/archethic-node/blob/master/lib/archethic/beacon_chain/subset.ex"},"process")),(0,r.kt)("p",null,"This process is responsible of:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Add transaction replication confirmation to the current slot"),(0,r.kt)("li",{parentName:"ul"},"Check ",(0,r.kt)("a",{parentName:"li",href:"/build/core/beacon-chain/p2p-sampling"},"P2P availability")," of the nodes where their public key starts by the subset hexadecimal identifier "),(0,r.kt)("li",{parentName:"ul"},"Create beacon transaction and notify BeaconChain summary nodes (for the current epoch)"),(0,r.kt)("li",{parentName:"ul"},"Create beacon summary transaction (if it's one of the summary node)"),(0,r.kt)("li",{parentName:"ul"},"Notify explorer about the new transaction validated (See ",(0,r.kt)("a",{parentName:"li",href:"http://localhost:9001/archethic-docs/learn/sharding/beacon-chain/explorer"},"Sharded Explorer"),")")),(0,r.kt)("h2",{id:"timers-and-schedulers"},"Timers and schedulers"),(0,r.kt)("p",null,"Because each BeaconChain subsets change over time, we need a may to determine what are the current nodes for those subsets and so on. So we have two kind of timers and schedulers:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Slot timer: Manage the interval for the beacon slot creations"),(0,r.kt)("li",{parentName:"ul"},"Summary timer: Manage the interval for the beacon summary creations")),(0,r.kt)("p",null,"Each of those timer provides helpers to be able to generate previous or next dates"),(0,r.kt)("h2",{id:"transaction-loading"},"Transaction loading"),(0,r.kt)("p",null,"Before a transaction's confirmation is loaded into the BeaconChain, a phase of validation is performed to ensure the correctness of the replication:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"it asserts the transaction's address is the right one"),(0,r.kt)("li",{parentName:"ul"},"it asserts the transaction attestation (node election, signatures, etc.)")),(0,r.kt)("p",null,"For more details, ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/archethic-node/blob/master/lib/archethic/beacon_chain/slot/validation.ex"},"SlotValidation")),(0,r.kt)("p",null,"Then the slot is deserialized to be loaded into a cache, for a faster summary aggregation and computation"),(0,r.kt)("h2",{id:"supervisor"},"Supervisor"),(0,r.kt)("p",null,"To manage all those processes and isolation a proper supervision tree is defined"),(0,r.kt)("mermaid",{value:"graph TD\n A[BeaconChain Supervisor]\n A --\x3eB[Slot Timer]\n A --\x3eC[Summary Timer]\n A --\x3eD{Subset supervisor}\n D --\x3eE[Summary Cache]\n D --\x3eF[Subset 0]\n D --\x3eH[Subset ..F]\n D --\x3eI[Subset registry]"}))}p.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1113],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>m});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var c=a.createContext({}),l=function(e){var t=a.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=l(e.components);return a.createElement(c.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,c=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),d=l(n),h=r,m=d["".concat(c,".").concat(h)]||d[h]||p[h]||o;return n?a.createElement(m,i(i({ref:t},u),{},{components:n})):a.createElement(m,i({ref:t},u))}));function m(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=h;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[d]="string"==typeof e?e:r,i[1]=s;for(var l=2;l{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>p,frontMatter:()=>o,metadata:()=>s,toc:()=>l});var a=n(87462),r=(n(67294),n(3905));n(8209);const o={id:"beacon-chain",title:"BeaconChain"},i=void 0,s={unversionedId:"build/core/beacon-chain/beacon-chain",id:"build/core/beacon-chain/beacon-chain",title:"BeaconChain",description:"BeaconChain helps the Archethic sharding network to be supervised and provided global view of the system.",source:"@site/docs/build/core/beacon-chain/README.md",sourceDirName:"build/core/beacon-chain",slug:"/build/core/beacon-chain/",permalink:"/build/core/beacon-chain/",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"beacon-chain",title:"BeaconChain"},sidebar:"docs",previous:{title:"Account",permalink:"/build/core/account"},next:{title:"P2P availability sampling",permalink:"/build/core/beacon-chain/p2p-sampling"}},c={},l=[{value:"Subsets",id:"subsets",level:2},{value:"Timers and schedulers",id:"timers-and-schedulers",level:2},{value:"Transaction loading",id:"transaction-loading",level:2},{value:"Supervisor",id:"supervisor",level:2}],u={toc:l},d="wrapper";function p(e){let{components:t,...n}=e;return(0,r.kt)(d,(0,a.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"BeaconChain helps the Archethic sharding network to be supervised and provided global view of the system."),(0,r.kt)("p",null,"To be able to manage it, few modules and functions are needed to make this possible."),(0,r.kt)("h2",{id:"subsets"},"Subsets"),(0,r.kt)("p",null,"The BeaconChain is divided into a set of subsets (shards of the BeaconChain) based on hexadecimal splits.\nCurrently the BeaconChain supports 256 subsets, from 0 to F (hex)"),(0,r.kt)("p",null,"Each subset is maintained by its own ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/archethic-node/blob/master/lib/archethic/beacon_chain/subset.ex"},"process")),(0,r.kt)("p",null,"This process is responsible of:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Add transaction replication confirmation to the current slot"),(0,r.kt)("li",{parentName:"ul"},"Check ",(0,r.kt)("a",{parentName:"li",href:"/build/core/beacon-chain/p2p-sampling"},"P2P availability")," of the nodes where their public key starts by the subset hexadecimal identifier "),(0,r.kt)("li",{parentName:"ul"},"Create beacon transaction and notify BeaconChain summary nodes (for the current epoch)"),(0,r.kt)("li",{parentName:"ul"},"Create beacon summary transaction (if it's one of the summary node)"),(0,r.kt)("li",{parentName:"ul"},"Notify explorer about the new transaction validated (See ",(0,r.kt)("a",{parentName:"li",href:"http://localhost:9001/archethic-docs/learn/sharding/beacon-chain/explorer"},"Sharded Explorer"),")")),(0,r.kt)("h2",{id:"timers-and-schedulers"},"Timers and schedulers"),(0,r.kt)("p",null,"Because each BeaconChain subsets change over time, we need a may to determine what are the current nodes for those subsets and so on. So we have two kind of timers and schedulers:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Slot timer: Manage the interval for the beacon slot creations"),(0,r.kt)("li",{parentName:"ul"},"Summary timer: Manage the interval for the beacon summary creations")),(0,r.kt)("p",null,"Each of those timer provides helpers to be able to generate previous or next dates"),(0,r.kt)("h2",{id:"transaction-loading"},"Transaction loading"),(0,r.kt)("p",null,"Before a transaction's confirmation is loaded into the BeaconChain, a phase of validation is performed to ensure the correctness of the replication:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"it asserts the transaction's address is the right one"),(0,r.kt)("li",{parentName:"ul"},"it asserts the transaction attestation (node election, signatures, etc.)")),(0,r.kt)("p",null,"For more details, ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/archethic-node/blob/master/lib/archethic/beacon_chain/slot/validation.ex"},"SlotValidation")),(0,r.kt)("p",null,"Then the slot is deserialized to be loaded into a cache, for a faster summary aggregation and computation"),(0,r.kt)("h2",{id:"supervisor"},"Supervisor"),(0,r.kt)("p",null,"To manage all those processes and isolation a proper supervision tree is defined"),(0,r.kt)("mermaid",{value:"graph TD\n A[BeaconChain Supervisor]\n A --\x3eB[Slot Timer]\n A --\x3eC[Summary Timer]\n A --\x3eD{Subset supervisor}\n D --\x3eE[Summary Cache]\n D --\x3eF[Subset 0]\n D --\x3eH[Subset ..F]\n D --\x3eI[Subset registry]"}))}p.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/8b5bd275.9c85f86b.js b/assets/js/8b5bd275.fa6f3191.js similarity index 98% rename from assets/js/8b5bd275.9c85f86b.js rename to assets/js/8b5bd275.fa6f3191.js index b6e9541e3..a9f94abf9 100644 --- a/assets/js/8b5bd275.9c85f86b.js +++ b/assets/js/8b5bd275.fa6f3191.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6451],{3905:(e,t,r)=>{r.d(t,{Zo:()=>d,kt:()=>m});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function s(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),l=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):s(s({},t),e)),r},d=function(e){var t=l(e.components);return n.createElement(c.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},b=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),p=l(r),b=a,m=p["".concat(c,".").concat(b)]||p[b]||u[b]||o;return r?n.createElement(m,s(s({ref:t},d),{},{components:r})):n.createElement(m,s({ref:t},d))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,s=new Array(o);s[0]=b;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[p]="string"==typeof e?e:a,s[1]=i;for(var l=2;l{r.r(t),r.d(t,{Badge:()=>u,Bullet:()=>d,Details:()=>m,SpecifiedBy:()=>p,assets:()=>l,contentTitle:()=>i,default:()=>g,frontMatter:()=>s,metadata:()=>c,toc:()=>b});var n=r(87462),a=r(67294),o=r(3905);r(8209);const s={id:"transaction-error",title:"transactionError",hide_table_of_contents:!1},i=void 0,c={unversionedId:"build/api/schema/subscriptions/transaction-error",id:"build/api/schema/subscriptions/transaction-error",title:"transactionError",description:"Subscribe to be notified when a transaction is on error",source:"@site/docs/build/api/schema/subscriptions/transaction-error.mdx",sourceDirName:"build/api/schema/subscriptions",slug:"/build/api/schema/subscriptions/transaction-error",permalink:"/build/api/schema/subscriptions/transaction-error",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"transaction-error",title:"transactionError",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"transactionConfirmed",permalink:"/build/api/schema/subscriptions/transaction-confirmed"},next:{title:"Core development",permalink:"/build/core/"}},l={},d=()=>(0,o.kt)(a.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=e=>(0,o.kt)(a.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,o.kt)(a.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),b=[{value:"Arguments",id:"arguments",level:3},{value:'transactionError.addressAddress! ',id:"code-style-fontweight-normal-transactionerrorbaddressbcodeaddress--",level:4},{value:"Type",id:"type",level:3},{value:'TransactionError ',id:"transactionerror-",level:4}],m=e=>{let{dataOpen:t,dataClose:r,children:s,startOpen:i=!1}=e;const[c,l]=(0,a.useState)(i);return(0,o.kt)("details",(0,n.Z)({},c?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),l((e=>!e))},style:{listStyle:"none"}},c?t:r),c&&s)},f={Bullet:d,SpecifiedBy:p,Badge:u,toc:b,Details:m},y="wrapper";function g(e){let{components:t,...r}=e;return(0,o.kt)(y,(0,n.Z)({},f,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Subscribe to be notified when a transaction is on error"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"transactionError(\n address: Address!\n): TransactionError\n")),(0,o.kt)("h3",{id:"arguments"},"Arguments"),(0,o.kt)("h4",{id:"code-style-fontweight-normal-transactionerrorbaddressbcodeaddress--"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"transactionError.",(0,o.kt)("b",null,"address"))),(0,o.kt)(d,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/address"},(0,o.kt)("inlineCode",{parentName:"a"},"Address!"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"non-null",mdxType:"Badge"})," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h3",{id:"type"},"Type"),(0,o.kt)("h4",{id:"transactionerror-"},(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/transaction-error"},(0,o.kt)("inlineCode",{parentName:"a"},"TransactionError"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,o.kt)("blockquote",null,(0,o.kt)("p",{parentName:"blockquote"},"[TransactionError]"," represents an error.")))}g.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6451],{3905:(e,t,r)=>{r.d(t,{Zo:()=>d,kt:()=>m});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function s(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),l=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):s(s({},t),e)),r},d=function(e){var t=l(e.components);return n.createElement(c.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},b=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),p=l(r),b=a,m=p["".concat(c,".").concat(b)]||p[b]||u[b]||o;return r?n.createElement(m,s(s({ref:t},d),{},{components:r})):n.createElement(m,s({ref:t},d))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,s=new Array(o);s[0]=b;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[p]="string"==typeof e?e:a,s[1]=i;for(var l=2;l{r.r(t),r.d(t,{Badge:()=>u,Bullet:()=>d,Details:()=>m,SpecifiedBy:()=>p,assets:()=>l,contentTitle:()=>i,default:()=>g,frontMatter:()=>s,metadata:()=>c,toc:()=>b});var n=r(87462),a=r(67294),o=r(3905);r(8209);const s={id:"transaction-error",title:"transactionError",hide_table_of_contents:!1},i=void 0,c={unversionedId:"build/api/schema/subscriptions/transaction-error",id:"build/api/schema/subscriptions/transaction-error",title:"transactionError",description:"Subscribe to be notified when a transaction is on error",source:"@site/docs/build/api/schema/subscriptions/transaction-error.mdx",sourceDirName:"build/api/schema/subscriptions",slug:"/build/api/schema/subscriptions/transaction-error",permalink:"/build/api/schema/subscriptions/transaction-error",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"transaction-error",title:"transactionError",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"transactionConfirmed",permalink:"/build/api/schema/subscriptions/transaction-confirmed"},next:{title:"Core development",permalink:"/build/core/"}},l={},d=()=>(0,o.kt)(a.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=e=>(0,o.kt)(a.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,o.kt)(a.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),b=[{value:"Arguments",id:"arguments",level:3},{value:'transactionError.addressAddress! ',id:"code-style-fontweight-normal-transactionerrorbaddressbcodeaddress--",level:4},{value:"Type",id:"type",level:3},{value:'TransactionError ',id:"transactionerror-",level:4}],m=e=>{let{dataOpen:t,dataClose:r,children:s,startOpen:i=!1}=e;const[c,l]=(0,a.useState)(i);return(0,o.kt)("details",(0,n.Z)({},c?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),l((e=>!e))},style:{listStyle:"none"}},c?t:r),c&&s)},f={Bullet:d,SpecifiedBy:p,Badge:u,toc:b,Details:m},y="wrapper";function g(e){let{components:t,...r}=e;return(0,o.kt)(y,(0,n.Z)({},f,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Subscribe to be notified when a transaction is on error"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"transactionError(\n address: Address!\n): TransactionError\n")),(0,o.kt)("h3",{id:"arguments"},"Arguments"),(0,o.kt)("h4",{id:"code-style-fontweight-normal-transactionerrorbaddressbcodeaddress--"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"transactionError.",(0,o.kt)("b",null,"address"))),(0,o.kt)(d,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/address"},(0,o.kt)("inlineCode",{parentName:"a"},"Address!"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"non-null",mdxType:"Badge"})," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h3",{id:"type"},"Type"),(0,o.kt)("h4",{id:"transactionerror-"},(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/transaction-error"},(0,o.kt)("inlineCode",{parentName:"a"},"TransactionError"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,o.kt)("blockquote",null,(0,o.kt)("p",{parentName:"blockquote"},"[TransactionError]"," represents an error.")))}g.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file diff --git a/assets/js/8baedca9.ae7c17d2.js b/assets/js/8baedca9.56e7f07d.js similarity index 99% rename from assets/js/8baedca9.ae7c17d2.js rename to assets/js/8baedca9.56e7f07d.js index 8496b19a4..443f3912c 100644 --- a/assets/js/8baedca9.ae7c17d2.js +++ b/assets/js/8baedca9.56e7f07d.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3252],{3905:(e,t,i)=>{i.d(t,{Zo:()=>d,kt:()=>g});var n=i(67294);function a(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function r(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,n)}return i}function s(e){for(var t=1;t=0||(a[i]=e[i]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(a[i]=e[i])}return a}var l=n.createContext({}),c=function(e){var t=n.useContext(l),i=t;return e&&(i="function"==typeof e?e(t):s(s({},t),e)),i},d=function(e){var t=c(e.components);return n.createElement(l.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},h=n.forwardRef((function(e,t){var i=e.components,a=e.mdxType,r=e.originalType,l=e.parentName,d=o(e,["components","mdxType","originalType","parentName"]),p=c(i),h=a,g=p["".concat(l,".").concat(h)]||p[h]||u[h]||r;return i?n.createElement(g,s(s({ref:t},d),{},{components:i})):n.createElement(g,s({ref:t},d))}));function g(e,t){var i=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=i.length,s=new Array(r);s[0]=h;var o={};for(var l in t)hasOwnProperty.call(t,l)&&(o[l]=t[l]);o.originalType=e,o[p]="string"==typeof e?e:a,s[1]=o;for(var c=2;c{i.r(t),i.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>u,frontMatter:()=>r,metadata:()=>o,toc:()=>c});var n=i(87462),a=(i(67294),i(3905));i(8209);const r={id:"usage",title:"aeBridge - Usage",sidebar_label:"Usage",sidebar_position:4},s="aeBridge - Tutorial",o={unversionedId:"participate/bridge/usage",id:"participate/bridge/usage",title:"aeBridge - Usage",description:"The Archethic Bridge application is exclusively available as a web application accessible through internet browsers.",source:"@site/docs/participate/bridge/usage.md",sourceDirName:"participate/bridge",slug:"/participate/bridge/usage",permalink:"/participate/bridge/usage",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",sidebarPosition:4,frontMatter:{id:"usage",title:"aeBridge - Usage",sidebar_label:"Usage",sidebar_position:4},sidebar:"docs",previous:{title:"Archethic Bridge (aeBridge)",permalink:"/participate/bridge/"},next:{title:"Archethic's CLI",permalink:"/participate/cli/"}},l={},c=[{value:"Welcome Screen",id:"welcome-screen",level:2},{value:"Application Menu",id:"application-menu",level:3},{value:"Feature Access",id:"feature-access",level:3},{value:"Bridging Your Assets",id:"bridging-your-assets",level:2},{value:"Step 1: Initiating Transfer",id:"step-1-initiating-transfer",level:3},{value:"Step 2: Confirming Details",id:"step-2-confirming-details",level:3},{value:"Step 3: Executing Transfer",id:"step-3-executing-transfer",level:3},{value:"Local History and Management",id:"local-history-and-management",level:2},{value:"Options Include:",id:"options-include",level:3},{value:"Transfer Status Actions:",id:"transfer-status-actions",level:3},{value:"Refund Process",id:"refund-process",level:2}],d={toc:c},p="wrapper";function u(e){let{components:t,...r}=e;return(0,a.kt)(p,(0,n.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"aebridge---tutorial"},"aeBridge - Tutorial"),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"The Archethic Bridge application is exclusively available as a web application accessible through internet browsers.")),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"The application is compatible with extension chrome or with the desktop versions of the Archethic wallet, which include macOS, Linux, and Windows platforms.")),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"The application is not compatible with Edge, Internet explorer browsers")),(0,a.kt)("p",null,"Ensure that you have the appropriate version of the Archethic wallet installed on your system to interact with the application effectively. The Archethic wallet can be downloaded from ",(0,a.kt)("a",{parentName:"p",href:"https://www.archethic.net/wallet.html"},"here"),"."),(0,a.kt)("admonition",{type:"tip"},(0,a.kt)("p",{parentName:"admonition"},"For optimal performance, it is recommended to use the latest version of your internet browser and keep your desktop wallet updated.")),(0,a.kt)("p",null,"Access: ",(0,a.kt)("a",{parentName:"p",href:"https://bridge.archethic.net"},"https://bridge.archethic.net"),(0,a.kt)("br",null),"\nSource code: ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/bridge"},"https://github.com/archethic-foundation/bridge")," and ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/bridge-contracts"},"https://github.com/archethic-foundation/bridge-contracts")),(0,a.kt)("p",null,"This Flutter-built web application enables seamless asset deposits and withdrawals."),(0,a.kt)("admonition",{type:"success"},(0,a.kt)("p",{parentName:"admonition"},"Before proceeding, familiarize yourself with ",(0,a.kt)("a",{parentName:"p",href:"/participate/bridge/"},"Archethic's Bridge Key Concepts"),".")),(0,a.kt)("h2",{id:"welcome-screen"},"Welcome Screen"),(0,a.kt)("p",null,"Upon accessing aeBridge, you are greeted with a welcome screen. To begin, click on the 'Bridge' button."),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Welcome Screen",src:i(11126).Z,width:"2874",height:"1436"}),"\n",(0,a.kt)("img",{alt:"Bridge Button",src:i(87785).Z,width:"2874",height:"1434"})),(0,a.kt)("h3",{id:"application-menu"},"Application Menu"),(0,a.kt)("p",null,"A right-hand header menu provides links to essential information and application documentation. It includes an option to send logs to Archethic for troubleshooting purposes."),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Menu",src:i(55273).Z,width:"300",height:"359"})),(0,a.kt)("h3",{id:"feature-access"},"Feature Access"),(0,a.kt)("p",null,"The left-side menu grants access to various bridge functionalities:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Bridging between Archethic and EVM blockchains"),(0,a.kt)("li",{parentName:"ul"},"Viewing local history, resume or refund options, and transaction logs"),(0,a.kt)("li",{parentName:"ul"},"Refunding")),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Menu Features",src:i(14136).Z,width:"1334",height:"162"})),(0,a.kt)("h2",{id:"bridging-your-assets"},"Bridging Your Assets"),(0,a.kt)("p",null,"The bridge process involves multiple steps:"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Inputting information to initiate the transfer"),(0,a.kt)("li",{parentName:"ol"},"Confirming the entered details"),(0,a.kt)("li",{parentName:"ol"},"Executing the transfer, with progress tracking and transaction signing in both EVM and Archethic wallets")),(0,a.kt)("h3",{id:"step-1-initiating-transfer"},"Step 1: Initiating Transfer"),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"Transfer steps remain consistent across all blockchain types and directions.")),(0,a.kt)("p",null,"Firstly, select the originating and target blockchains."),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Blockchain Selection",src:i(71353).Z,width:"1326",height:"846"})),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"Ensure both Archethic and your chosen EVM wallets are connected before blockchain selection. Refer to the ",(0,a.kt)("a",{parentName:"p",href:"/category/faq"},"FAQ")," for connectivity issues.")),(0,a.kt)("admonition",{type:"tip"},(0,a.kt)("p",{parentName:"admonition"},"Select an EVM blockchain as the source automatically sets Archethic as the target.")),(0,a.kt)("p",null,"Post-selection, a field appears for token selection from available options."),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Token Selection",src:i(18962).Z,width:"1330",height:"604"})),(0,a.kt)("p",null,"Next, enter the following information:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"The destination address that will receive the bridged tokens (by default, the connected wallet address is filled in)"),(0,a.kt)("li",{parentName:"ul"},"The amount you wish to bridge (before fees are deducted).")),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Amount fill",src:i(15115).Z,width:"1382",height:"1026"})),(0,a.kt)("h3",{id:"step-2-confirming-details"},"Step 2: Confirming Details"),(0,a.kt)("p",null,"On the confirmation screen, review:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Entered information summary"),(0,a.kt)("li",{parentName:"ul"},"Fee details"),(0,a.kt)("li",{parentName:"ul"},"Post-fee token quantity")),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Confirmation Screen",src:i(17337).Z,width:"1362",height:"1090"})),(0,a.kt)("h3",{id:"step-3-executing-transfer"},"Step 3: Executing Transfer"),(0,a.kt)("p",null,"A transfer tracking popup guides you through the process, prompting for transaction confirmations in your wallets."),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Transfer Tracking",src:i(83513).Z,width:"650",height:"503"})),(0,a.kt)("admonition",{type:"note"},(0,a.kt)("p",{parentName:"admonition"},"Transaction signing methods vary per EVM wallet.")),(0,a.kt)("p",null,"In the Archethic wallet, confirmation prompts automatically appear when necessary."),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Archethic Wallet Confirmation",src:i(87310).Z,width:"369",height:"803"})),(0,a.kt)("p",null,"After some validations and a few seconds of waiting, a message will inform you that the transfer has completed successfully, and the bridged amount received in your wallet will be displayed"),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Archethic Wallet Confirmation",src:i(68458).Z,width:"1306",height:"1022"})),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"The transfer process halts if a transaction is declined or due to insufficient funds. However, it can be resumed later.")),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Transfer Resumption",src:i(59686).Z,width:"654",height:"499"})),(0,a.kt)("admonition",{type:"note"},(0,a.kt)("p",{parentName:"admonition"},"HTLC contract addresses are provided for ongoing process tracking.")),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"HTLC Information",src:i(36064).Z,width:"580",height:"100"})),(0,a.kt)("h2",{id:"local-history-and-management"},"Local History and Management"),(0,a.kt)("p",null,"View transfer history, successful or otherwise, through the application's local history feature."),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"This history is local to your device. Access is not available on other devices.\nAnd if you clear your browser's cache, this list will be emptied.")),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"History List",src:i(31411).Z,width:"1454",height:"1122"})),(0,a.kt)("h3",{id:"options-include"},"Options Include:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Deleting local history"),(0,a.kt)("li",{parentName:"ul"},"Filtering history entries")),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"History Filters",src:i(49751).Z,width:"2870",height:"356"})),(0,a.kt)("h3",{id:"transfer-status-actions"},"Transfer Status Actions:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Remove transfers from local history"),(0,a.kt)("li",{parentName:"ul"},"Resume interrupted transfers"),(0,a.kt)("li",{parentName:"ul"},"Refund for interrupted transfers"),(0,a.kt)("li",{parentName:"ul"},"Access transfer technical details for Archethic team analysis")),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"History Options",src:i(81914).Z,width:"260",height:"72"})),(0,a.kt)("h2",{id:"refund-process"},"Refund Process"),(0,a.kt)("p",null,"Retrieve your funds through the refund feature."),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Refund Form",src:i(98545).Z,width:"1346",height:"874"})),(0,a.kt)("p",null,"To retrieve your funds, you must wait 2 hours for the tokens to be released.\nAdditionally, you must always use the address of the source blockchain."),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Refund Process",src:i(62779).Z,width:"1262",height:"464"})),(0,a.kt)("p",null,"Upon wallet connection and address confirmation, refund eligibility and amount are displayed. Validate the refund to receive your funds, minus transaction fees."),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Refund Available",src:i(4861).Z,width:"1256",height:"472"})),(0,a.kt)("p",null,"Once the refund has been processed, you can find your funds in your wallet."),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Refund Ok",src:i(86483).Z,width:"1258",height:"896"})),(0,a.kt)("hr",null))}u.isMDXComponent=!0},87310:(e,t,i)=>{i.d(t,{Z:()=>n});const n=i.p+"assets/images/Bridge-2-AEWallet-confirm-a9cd42a1e76765fcb44c927a9be826f0.png"},15115:(e,t,i)=>{i.d(t,{Z:()=>n});const n=i.p+"assets/images/Bridge-2-Amount-fill-909234f54bebdf1fef4f2fe63e2ebd29.png"},71353:(e,t,i)=>{i.d(t,{Z:()=>n});const n=i.p+"assets/images/Bridge-2-BC-Selection-07b306e70c1eca7cd3f1e3ce5b5ab929.png"},87785:(e,t,i)=>{i.d(t,{Z:()=>n});const n=i.p+"assets/images/Bridge-2-Bridge-9eb7acde4ebea9c6521b7632e7db593a.png"},17337:(e,t,i)=>{i.d(t,{Z:()=>n});const n=i.p+"assets/images/Bridge-2-Confirmation-464af0279bee6af2733bf74c931465a1.png"},49751:(e,t,i)=>{i.d(t,{Z:()=>n});const n=i.p+"assets/images/Bridge-2-Filters-ad22375578ac7e00182a4930d8ae6ea7.png"},36064:(e,t,i)=>{i.d(t,{Z:()=>n});const n=i.p+"assets/images/Bridge-2-HTLC-infos-4d0fca3c3cfa62df41c2955dcc808440.png"},81914:(e,t,i)=>{i.d(t,{Z:()=>n});const n=i.p+"assets/images/Bridge-2-History-icons-23d5fe2c9b63339e6e4edd6996777b5c.png"},31411:(e,t,i)=>{i.d(t,{Z:()=>n});const n=i.p+"assets/images/Bridge-2-History-list-eebfa687d9c56acdcaae468f23f65d7e.png"},14136:(e,t,i)=>{i.d(t,{Z:()=>n});const n=i.p+"assets/images/Bridge-2-Menu-features-631dd161fd2344078b62b452861696dd.png"},55273:(e,t,i)=>{i.d(t,{Z:()=>n});const n=i.p+"assets/images/Bridge-2-Menu-c06df1c17eb34ace3cca5d09a6deb28b.png"},4861:(e,t,i)=>{i.d(t,{Z:()=>n});const n=i.p+"assets/images/Bridge-2-Refund-Available-39b848d76f76d0bcb8f3c910ddccb1f9.png"},98545:(e,t,i)=>{i.d(t,{Z:()=>n});const n=i.p+"assets/images/Bridge-2-Refund-Form-fa840e0ac1036ac868d4749bcad41ba2.png"},86483:(e,t,i)=>{i.d(t,{Z:()=>n});const n=i.p+"assets/images/Bridge-2-Refund-Ok-7c45f98fe755a47470515b641fa3d200.png"},62779:(e,t,i)=>{i.d(t,{Z:()=>n});const n=i.p+"assets/images/Bridge-2-Refund-Wait-d345498f7ac0b329cebc250cb7b08423.png"},59686:(e,t,i)=>{i.d(t,{Z:()=>n});const n=i.p+"assets/images/Bridge-2-Resume-dd1b525e16357a1b0e687287a52b3768.png"},68458:(e,t,i)=>{i.d(t,{Z:()=>n});const n=i.p+"assets/images/Bridge-2-Transfer-finish-4ed3b5a2e02fc7ad7dafa8812d38c646.png"},11126:(e,t,i)=>{i.d(t,{Z:()=>n});const n=i.p+"assets/images/Bridge-2-Welcome-1cefe915e52d4bc2b5d9925925a49a4d.png"},83513:(e,t,i)=>{i.d(t,{Z:()=>n});const n=i.p+"assets/images/Bridge-2-status-confirm-wallet-0beed6acd19580574afbe22c6a8876b9.png"},18962:(e,t,i)=>{i.d(t,{Z:()=>n});const n=i.p+"assets/images/Bridge-2-token-Selection-6eaeb7e1dc8f26d7439c9130bd552b9c.png"},8209:(e,t,i)=>{i(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3252],{3905:(e,t,i)=>{i.d(t,{Zo:()=>d,kt:()=>g});var n=i(67294);function a(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function r(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,n)}return i}function s(e){for(var t=1;t=0||(a[i]=e[i]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(a[i]=e[i])}return a}var l=n.createContext({}),c=function(e){var t=n.useContext(l),i=t;return e&&(i="function"==typeof e?e(t):s(s({},t),e)),i},d=function(e){var t=c(e.components);return n.createElement(l.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},h=n.forwardRef((function(e,t){var i=e.components,a=e.mdxType,r=e.originalType,l=e.parentName,d=o(e,["components","mdxType","originalType","parentName"]),p=c(i),h=a,g=p["".concat(l,".").concat(h)]||p[h]||u[h]||r;return i?n.createElement(g,s(s({ref:t},d),{},{components:i})):n.createElement(g,s({ref:t},d))}));function g(e,t){var i=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=i.length,s=new Array(r);s[0]=h;var o={};for(var l in t)hasOwnProperty.call(t,l)&&(o[l]=t[l]);o.originalType=e,o[p]="string"==typeof e?e:a,s[1]=o;for(var c=2;c{i.r(t),i.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>u,frontMatter:()=>r,metadata:()=>o,toc:()=>c});var n=i(87462),a=(i(67294),i(3905));i(8209);const r={id:"usage",title:"aeBridge - Usage",sidebar_label:"Usage",sidebar_position:4},s="aeBridge - Tutorial",o={unversionedId:"participate/bridge/usage",id:"participate/bridge/usage",title:"aeBridge - Usage",description:"The Archethic Bridge application is exclusively available as a web application accessible through internet browsers.",source:"@site/docs/participate/bridge/usage.md",sourceDirName:"participate/bridge",slug:"/participate/bridge/usage",permalink:"/participate/bridge/usage",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",sidebarPosition:4,frontMatter:{id:"usage",title:"aeBridge - Usage",sidebar_label:"Usage",sidebar_position:4},sidebar:"docs",previous:{title:"Archethic Bridge (aeBridge)",permalink:"/participate/bridge/"},next:{title:"Archethic's CLI",permalink:"/participate/cli/"}},l={},c=[{value:"Welcome Screen",id:"welcome-screen",level:2},{value:"Application Menu",id:"application-menu",level:3},{value:"Feature Access",id:"feature-access",level:3},{value:"Bridging Your Assets",id:"bridging-your-assets",level:2},{value:"Step 1: Initiating Transfer",id:"step-1-initiating-transfer",level:3},{value:"Step 2: Confirming Details",id:"step-2-confirming-details",level:3},{value:"Step 3: Executing Transfer",id:"step-3-executing-transfer",level:3},{value:"Local History and Management",id:"local-history-and-management",level:2},{value:"Options Include:",id:"options-include",level:3},{value:"Transfer Status Actions:",id:"transfer-status-actions",level:3},{value:"Refund Process",id:"refund-process",level:2}],d={toc:c},p="wrapper";function u(e){let{components:t,...r}=e;return(0,a.kt)(p,(0,n.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"aebridge---tutorial"},"aeBridge - Tutorial"),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"The Archethic Bridge application is exclusively available as a web application accessible through internet browsers.")),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"The application is compatible with extension chrome or with the desktop versions of the Archethic wallet, which include macOS, Linux, and Windows platforms.")),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"The application is not compatible with Edge, Internet explorer browsers")),(0,a.kt)("p",null,"Ensure that you have the appropriate version of the Archethic wallet installed on your system to interact with the application effectively. The Archethic wallet can be downloaded from ",(0,a.kt)("a",{parentName:"p",href:"https://www.archethic.net/wallet.html"},"here"),"."),(0,a.kt)("admonition",{type:"tip"},(0,a.kt)("p",{parentName:"admonition"},"For optimal performance, it is recommended to use the latest version of your internet browser and keep your desktop wallet updated.")),(0,a.kt)("p",null,"Access: ",(0,a.kt)("a",{parentName:"p",href:"https://bridge.archethic.net"},"https://bridge.archethic.net"),(0,a.kt)("br",null),"\nSource code: ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/bridge"},"https://github.com/archethic-foundation/bridge")," and ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/bridge-contracts"},"https://github.com/archethic-foundation/bridge-contracts")),(0,a.kt)("p",null,"This Flutter-built web application enables seamless asset deposits and withdrawals."),(0,a.kt)("admonition",{type:"success"},(0,a.kt)("p",{parentName:"admonition"},"Before proceeding, familiarize yourself with ",(0,a.kt)("a",{parentName:"p",href:"/participate/bridge/"},"Archethic's Bridge Key Concepts"),".")),(0,a.kt)("h2",{id:"welcome-screen"},"Welcome Screen"),(0,a.kt)("p",null,"Upon accessing aeBridge, you are greeted with a welcome screen. To begin, click on the 'Bridge' button."),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Welcome Screen",src:i(11126).Z,width:"2874",height:"1436"}),"\n",(0,a.kt)("img",{alt:"Bridge Button",src:i(87785).Z,width:"2874",height:"1434"})),(0,a.kt)("h3",{id:"application-menu"},"Application Menu"),(0,a.kt)("p",null,"A right-hand header menu provides links to essential information and application documentation. It includes an option to send logs to Archethic for troubleshooting purposes."),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Menu",src:i(55273).Z,width:"300",height:"359"})),(0,a.kt)("h3",{id:"feature-access"},"Feature Access"),(0,a.kt)("p",null,"The left-side menu grants access to various bridge functionalities:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Bridging between Archethic and EVM blockchains"),(0,a.kt)("li",{parentName:"ul"},"Viewing local history, resume or refund options, and transaction logs"),(0,a.kt)("li",{parentName:"ul"},"Refunding")),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Menu Features",src:i(14136).Z,width:"1334",height:"162"})),(0,a.kt)("h2",{id:"bridging-your-assets"},"Bridging Your Assets"),(0,a.kt)("p",null,"The bridge process involves multiple steps:"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Inputting information to initiate the transfer"),(0,a.kt)("li",{parentName:"ol"},"Confirming the entered details"),(0,a.kt)("li",{parentName:"ol"},"Executing the transfer, with progress tracking and transaction signing in both EVM and Archethic wallets")),(0,a.kt)("h3",{id:"step-1-initiating-transfer"},"Step 1: Initiating Transfer"),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"Transfer steps remain consistent across all blockchain types and directions.")),(0,a.kt)("p",null,"Firstly, select the originating and target blockchains."),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Blockchain Selection",src:i(71353).Z,width:"1326",height:"846"})),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"Ensure both Archethic and your chosen EVM wallets are connected before blockchain selection. Refer to the ",(0,a.kt)("a",{parentName:"p",href:"/category/faq"},"FAQ")," for connectivity issues.")),(0,a.kt)("admonition",{type:"tip"},(0,a.kt)("p",{parentName:"admonition"},"Select an EVM blockchain as the source automatically sets Archethic as the target.")),(0,a.kt)("p",null,"Post-selection, a field appears for token selection from available options."),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Token Selection",src:i(18962).Z,width:"1330",height:"604"})),(0,a.kt)("p",null,"Next, enter the following information:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"The destination address that will receive the bridged tokens (by default, the connected wallet address is filled in)"),(0,a.kt)("li",{parentName:"ul"},"The amount you wish to bridge (before fees are deducted).")),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Amount fill",src:i(15115).Z,width:"1382",height:"1026"})),(0,a.kt)("h3",{id:"step-2-confirming-details"},"Step 2: Confirming Details"),(0,a.kt)("p",null,"On the confirmation screen, review:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Entered information summary"),(0,a.kt)("li",{parentName:"ul"},"Fee details"),(0,a.kt)("li",{parentName:"ul"},"Post-fee token quantity")),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Confirmation Screen",src:i(17337).Z,width:"1362",height:"1090"})),(0,a.kt)("h3",{id:"step-3-executing-transfer"},"Step 3: Executing Transfer"),(0,a.kt)("p",null,"A transfer tracking popup guides you through the process, prompting for transaction confirmations in your wallets."),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Transfer Tracking",src:i(83513).Z,width:"650",height:"503"})),(0,a.kt)("admonition",{type:"note"},(0,a.kt)("p",{parentName:"admonition"},"Transaction signing methods vary per EVM wallet.")),(0,a.kt)("p",null,"In the Archethic wallet, confirmation prompts automatically appear when necessary."),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Archethic Wallet Confirmation",src:i(87310).Z,width:"369",height:"803"})),(0,a.kt)("p",null,"After some validations and a few seconds of waiting, a message will inform you that the transfer has completed successfully, and the bridged amount received in your wallet will be displayed"),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Archethic Wallet Confirmation",src:i(68458).Z,width:"1306",height:"1022"})),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"The transfer process halts if a transaction is declined or due to insufficient funds. However, it can be resumed later.")),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Transfer Resumption",src:i(59686).Z,width:"654",height:"499"})),(0,a.kt)("admonition",{type:"note"},(0,a.kt)("p",{parentName:"admonition"},"HTLC contract addresses are provided for ongoing process tracking.")),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"HTLC Information",src:i(36064).Z,width:"580",height:"100"})),(0,a.kt)("h2",{id:"local-history-and-management"},"Local History and Management"),(0,a.kt)("p",null,"View transfer history, successful or otherwise, through the application's local history feature."),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"This history is local to your device. Access is not available on other devices.\nAnd if you clear your browser's cache, this list will be emptied.")),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"History List",src:i(31411).Z,width:"1454",height:"1122"})),(0,a.kt)("h3",{id:"options-include"},"Options Include:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Deleting local history"),(0,a.kt)("li",{parentName:"ul"},"Filtering history entries")),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"History Filters",src:i(49751).Z,width:"2870",height:"356"})),(0,a.kt)("h3",{id:"transfer-status-actions"},"Transfer Status Actions:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Remove transfers from local history"),(0,a.kt)("li",{parentName:"ul"},"Resume interrupted transfers"),(0,a.kt)("li",{parentName:"ul"},"Refund for interrupted transfers"),(0,a.kt)("li",{parentName:"ul"},"Access transfer technical details for Archethic team analysis")),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"History Options",src:i(81914).Z,width:"260",height:"72"})),(0,a.kt)("h2",{id:"refund-process"},"Refund Process"),(0,a.kt)("p",null,"Retrieve your funds through the refund feature."),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Refund Form",src:i(98545).Z,width:"1346",height:"874"})),(0,a.kt)("p",null,"To retrieve your funds, you must wait 2 hours for the tokens to be released.\nAdditionally, you must always use the address of the source blockchain."),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Refund Process",src:i(62779).Z,width:"1262",height:"464"})),(0,a.kt)("p",null,"Upon wallet connection and address confirmation, refund eligibility and amount are displayed. Validate the refund to receive your funds, minus transaction fees."),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Refund Available",src:i(4861).Z,width:"1256",height:"472"})),(0,a.kt)("p",null,"Once the refund has been processed, you can find your funds in your wallet."),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Refund Ok",src:i(86483).Z,width:"1258",height:"896"})),(0,a.kt)("hr",null))}u.isMDXComponent=!0},87310:(e,t,i)=>{i.d(t,{Z:()=>n});const n=i.p+"assets/images/Bridge-2-AEWallet-confirm-a9cd42a1e76765fcb44c927a9be826f0.png"},15115:(e,t,i)=>{i.d(t,{Z:()=>n});const n=i.p+"assets/images/Bridge-2-Amount-fill-909234f54bebdf1fef4f2fe63e2ebd29.png"},71353:(e,t,i)=>{i.d(t,{Z:()=>n});const n=i.p+"assets/images/Bridge-2-BC-Selection-07b306e70c1eca7cd3f1e3ce5b5ab929.png"},87785:(e,t,i)=>{i.d(t,{Z:()=>n});const n=i.p+"assets/images/Bridge-2-Bridge-9eb7acde4ebea9c6521b7632e7db593a.png"},17337:(e,t,i)=>{i.d(t,{Z:()=>n});const n=i.p+"assets/images/Bridge-2-Confirmation-464af0279bee6af2733bf74c931465a1.png"},49751:(e,t,i)=>{i.d(t,{Z:()=>n});const n=i.p+"assets/images/Bridge-2-Filters-ad22375578ac7e00182a4930d8ae6ea7.png"},36064:(e,t,i)=>{i.d(t,{Z:()=>n});const n=i.p+"assets/images/Bridge-2-HTLC-infos-4d0fca3c3cfa62df41c2955dcc808440.png"},81914:(e,t,i)=>{i.d(t,{Z:()=>n});const n=i.p+"assets/images/Bridge-2-History-icons-23d5fe2c9b63339e6e4edd6996777b5c.png"},31411:(e,t,i)=>{i.d(t,{Z:()=>n});const n=i.p+"assets/images/Bridge-2-History-list-eebfa687d9c56acdcaae468f23f65d7e.png"},14136:(e,t,i)=>{i.d(t,{Z:()=>n});const n=i.p+"assets/images/Bridge-2-Menu-features-631dd161fd2344078b62b452861696dd.png"},55273:(e,t,i)=>{i.d(t,{Z:()=>n});const n=i.p+"assets/images/Bridge-2-Menu-c06df1c17eb34ace3cca5d09a6deb28b.png"},4861:(e,t,i)=>{i.d(t,{Z:()=>n});const n=i.p+"assets/images/Bridge-2-Refund-Available-39b848d76f76d0bcb8f3c910ddccb1f9.png"},98545:(e,t,i)=>{i.d(t,{Z:()=>n});const n=i.p+"assets/images/Bridge-2-Refund-Form-fa840e0ac1036ac868d4749bcad41ba2.png"},86483:(e,t,i)=>{i.d(t,{Z:()=>n});const n=i.p+"assets/images/Bridge-2-Refund-Ok-7c45f98fe755a47470515b641fa3d200.png"},62779:(e,t,i)=>{i.d(t,{Z:()=>n});const n=i.p+"assets/images/Bridge-2-Refund-Wait-d345498f7ac0b329cebc250cb7b08423.png"},59686:(e,t,i)=>{i.d(t,{Z:()=>n});const n=i.p+"assets/images/Bridge-2-Resume-dd1b525e16357a1b0e687287a52b3768.png"},68458:(e,t,i)=>{i.d(t,{Z:()=>n});const n=i.p+"assets/images/Bridge-2-Transfer-finish-4ed3b5a2e02fc7ad7dafa8812d38c646.png"},11126:(e,t,i)=>{i.d(t,{Z:()=>n});const n=i.p+"assets/images/Bridge-2-Welcome-1cefe915e52d4bc2b5d9925925a49a4d.png"},83513:(e,t,i)=>{i.d(t,{Z:()=>n});const n=i.p+"assets/images/Bridge-2-status-confirm-wallet-0beed6acd19580574afbe22c6a8876b9.png"},18962:(e,t,i)=>{i.d(t,{Z:()=>n});const n=i.p+"assets/images/Bridge-2-token-Selection-6eaeb7e1dc8f26d7439c9130bd552b9c.png"},8209:(e,t,i)=>{i(67294)}}]); \ No newline at end of file diff --git a/assets/js/8d60aa1f.f0137bc3.js b/assets/js/8d60aa1f.5171c709.js similarity index 98% rename from assets/js/8d60aa1f.f0137bc3.js rename to assets/js/8d60aa1f.5171c709.js index c3da4a1af..bbc0aee64 100644 --- a/assets/js/8d60aa1f.f0137bc3.js +++ b/assets/js/8d60aa1f.5171c709.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2614],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>f});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function l(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=r.createContext({}),c=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},p=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,s=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),u=c(a),m=n,f=u["".concat(s,".").concat(m)]||u[m]||d[m]||i;return a?r.createElement(f,l(l({ref:t},p),{},{components:a})):r.createElement(f,l({ref:t},p))}));function f(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,l=new Array(i);l[0]=m;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[u]="string"==typeof e?e:n,l[1]=o;for(var c=2;c{a.r(t),a.d(t,{Badge:()=>d,Bullet:()=>p,Details:()=>f,SpecifiedBy:()=>u,assets:()=>c,contentTitle:()=>o,default:()=>g,frontMatter:()=>l,metadata:()=>s,toc:()=>m});var r=a(87462),n=a(67294),i=a(3905);a(8209);const l={id:"p2-p-availabilities",title:"P2pAvailabilities",hide_table_of_contents:!1},o=void 0,s={unversionedId:"build/api/schema/scalars/p2-p-availabilities",id:"build/api/schema/scalars/p2-p-availabilities",title:"P2pAvailabilities",description:"No description",source:"@site/docs/build/api/schema/scalars/p2-p-availabilities.mdx",sourceDirName:"build/api/schema/scalars",slug:"/build/api/schema/scalars/p2-p-availabilities",permalink:"/build/api/schema/scalars/p2-p-availabilities",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"p2-p-availabilities",title:"P2pAvailabilities",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"NonNegInteger",permalink:"/build/api/schema/scalars/non-neg-integer"},next:{title:"PosInteger",permalink:"/build/api/schema/scalars/pos-integer"}},c={},p=()=>(0,i.kt)(n.Fragment,null,(0,i.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),u=e=>(0,i.kt)(n.Fragment,null,"Specification",(0,i.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),d=e=>(0,i.kt)(n.Fragment,null,(0,i.kt)("span",{className:e.class},e.text)),m=[{value:"Member of",id:"member-of",level:3}],f=e=>{let{dataOpen:t,dataClose:a,children:l,startOpen:o=!1}=e;const[s,c]=(0,n.useState)(o);return(0,i.kt)("details",(0,r.Z)({},s?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,i.kt)("summary",{onClick:e=>{e.preventDefault(),c((e=>!e))},style:{listStyle:"none"}},s?t:a),s&&l)},b={Bullet:p,SpecifiedBy:u,Badge:d,toc:m,Details:f},y="wrapper";function g(e){let{components:t,...a}=e;return(0,i.kt)(y,(0,r.Z)({},b,a,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"No description"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-graphql"},"scalar P2pAvailabilities\n")),(0,i.kt)("h3",{id:"member-of"},"Member of"),(0,i.kt)("p",null,(0,i.kt)("a",{parentName:"p",href:"/build/api/schema/objects/beacon-chain-summary"},(0,i.kt)("inlineCode",{parentName:"a"},"BeaconChainSummary"))," ",(0,i.kt)(d,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}g.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2614],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>f});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function l(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=r.createContext({}),c=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},p=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,s=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),u=c(a),m=n,f=u["".concat(s,".").concat(m)]||u[m]||d[m]||i;return a?r.createElement(f,l(l({ref:t},p),{},{components:a})):r.createElement(f,l({ref:t},p))}));function f(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,l=new Array(i);l[0]=m;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[u]="string"==typeof e?e:n,l[1]=o;for(var c=2;c{a.r(t),a.d(t,{Badge:()=>d,Bullet:()=>p,Details:()=>f,SpecifiedBy:()=>u,assets:()=>c,contentTitle:()=>o,default:()=>g,frontMatter:()=>l,metadata:()=>s,toc:()=>m});var r=a(87462),n=a(67294),i=a(3905);a(8209);const l={id:"p2-p-availabilities",title:"P2pAvailabilities",hide_table_of_contents:!1},o=void 0,s={unversionedId:"build/api/schema/scalars/p2-p-availabilities",id:"build/api/schema/scalars/p2-p-availabilities",title:"P2pAvailabilities",description:"No description",source:"@site/docs/build/api/schema/scalars/p2-p-availabilities.mdx",sourceDirName:"build/api/schema/scalars",slug:"/build/api/schema/scalars/p2-p-availabilities",permalink:"/build/api/schema/scalars/p2-p-availabilities",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"p2-p-availabilities",title:"P2pAvailabilities",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"NonNegInteger",permalink:"/build/api/schema/scalars/non-neg-integer"},next:{title:"PosInteger",permalink:"/build/api/schema/scalars/pos-integer"}},c={},p=()=>(0,i.kt)(n.Fragment,null,(0,i.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),u=e=>(0,i.kt)(n.Fragment,null,"Specification",(0,i.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),d=e=>(0,i.kt)(n.Fragment,null,(0,i.kt)("span",{className:e.class},e.text)),m=[{value:"Member of",id:"member-of",level:3}],f=e=>{let{dataOpen:t,dataClose:a,children:l,startOpen:o=!1}=e;const[s,c]=(0,n.useState)(o);return(0,i.kt)("details",(0,r.Z)({},s?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,i.kt)("summary",{onClick:e=>{e.preventDefault(),c((e=>!e))},style:{listStyle:"none"}},s?t:a),s&&l)},b={Bullet:p,SpecifiedBy:u,Badge:d,toc:m,Details:f},y="wrapper";function g(e){let{components:t,...a}=e;return(0,i.kt)(y,(0,r.Z)({},b,a,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"No description"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-graphql"},"scalar P2pAvailabilities\n")),(0,i.kt)("h3",{id:"member-of"},"Member of"),(0,i.kt)("p",null,(0,i.kt)("a",{parentName:"p",href:"/build/api/schema/objects/beacon-chain-summary"},(0,i.kt)("inlineCode",{parentName:"a"},"BeaconChainSummary"))," ",(0,i.kt)(d,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}g.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file diff --git a/assets/js/8dbf302e.daaafd19.js b/assets/js/8dbf302e.28458d20.js similarity index 99% rename from assets/js/8dbf302e.daaafd19.js rename to assets/js/8dbf302e.28458d20.js index b593faaa7..82fbe1187 100644 --- a/assets/js/8dbf302e.daaafd19.js +++ b/assets/js/8dbf302e.28458d20.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9254],{3905:(e,t,i)=>{i.d(t,{Zo:()=>l,kt:()=>s});var n=i(67294);function a(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function c(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,n)}return i}function r(e){for(var t=1;t=0||(a[i]=e[i]);return a}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(a[i]=e[i])}return a}var I=n.createContext({}),o=function(e){var t=n.useContext(I),i=t;return e&&(i="function"==typeof e?e(t):r(r({},t),e)),i},l=function(e){var t=o(e.components);return n.createElement(I.Provider,{value:t},e.children)},g="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var i=e.components,a=e.mdxType,c=e.originalType,I=e.parentName,l=M(e,["components","mdxType","originalType","parentName"]),g=o(i),u=a,s=g["".concat(I,".").concat(u)]||g[u]||d[u]||c;return i?n.createElement(s,r(r({ref:t},l),{},{components:i})):n.createElement(s,r({ref:t},l))}));function s(e,t){var i=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var c=i.length,r=new Array(c);r[0]=u;var M={};for(var I in t)hasOwnProperty.call(t,I)&&(M[I]=t[I]);M.originalType=e,M[g]="string"==typeof e?e:a,r[1]=M;for(var o=2;o{i.r(t),i.d(t,{assets:()=>I,contentTitle:()=>r,default:()=>d,frontMatter:()=>c,metadata:()=>M,toc:()=>o});var n=i(87462),a=(i(67294),i(3905));i(8209);const c={id:"keychain",title:"Keychain"},r=void 0,M={unversionedId:"learn/decentralized-id/keychain",id:"learn/decentralized-id/keychain",title:"Keychain",description:"Archethic's keychain is new concept to make wallet accessible, configurable and interoperable with several service providers and why not multi chains.",source:"@site/docs/learn/decentralized-id/keychain.md",sourceDirName:"learn/decentralized-id",slug:"/learn/decentralized-id/keychain",permalink:"/learn/decentralized-id/keychain",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"keychain",title:"Keychain"},sidebar:"docs",previous:{title:"Decentralized Identity",permalink:"/learn/decentralized-id/"},next:{title:"Governance",permalink:"/learn/governance/"}},I={},o=[{value:"Key generation",id:"key-generation",level:2},{value:"End to end encryption",id:"end-to-end-encryption",level:2},{value:"Standard compliance",id:"standard-compliance",level:2},{value:"Customization",id:"customization",level:2}],l={toc:o},g="wrapper";function d(e){let{components:t,...c}=e;return(0,a.kt)(g,(0,n.Z)({},l,c,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"Archethic's keychain is new concept to make wallet accessible, configurable and interoperable with several service providers and why not multi chains."),(0,a.kt)("p",null,"It describes wallet which is stored encrypted on chain, as only you and the authorized access or person you allowed, to be able to decrypt and build transactions from it."),(0,a.kt)("h2",{id:"key-generation"},"Key generation"),(0,a.kt)("p",null,"Technically speaking, this wallet - also referenced as ",(0,a.kt)("inlineCode",{parentName:"p"},"Decentralized Identity")," - is made up of randomly generated ",(0,a.kt)("inlineCode",{parentName:"p"},"seed")," (root key) from which it's possible to generate all keys according to a path of derivation. "),(0,a.kt)("p",null,"So for any access to a service or an application, a key will be generated on the fly from the ",(0,a.kt)("inlineCode",{parentName:"p"},"seed")," (root key) and the first public key associated with a service or an application."),(0,a.kt)("p",null,"Thus allowing creating an infinite number of identities without even having to store related keys. "),(0,a.kt)("p",null,(0,a.kt)("img",{src:i(24449).Z,width:"372",height:"259"})),(0,a.kt)("h2",{id:"end-to-end-encryption"},"End to end encryption"),(0,a.kt)("p",null,"While this wallet or keychain being on-chain, it still remains secure as no other party (at least non authorized) can access with service keys. "),(0,a.kt)("p",null,"This is possible as we are using end to end encryption and elliptic curve cryptography."),(0,a.kt)("p",null,"Each keychain/wallet generated is embedded into a transaction encrypted using an AES key itself encrypted with a list of authorized keys or authenticated access (biometric, smartphone, USB, etc.)"),(0,a.kt)("p",null,"Once generated, we also create transactions for the access of this keychain.\nSo in other words, each access have its own transaction chain, where the keychain's location is encrypted as well."),(0,a.kt)("p",null,"Then in order to retrieve or access your keychain, your authentication method should retrieve its transaction chain, then decrypt the keychain's location, download the keychain transaction and finally decrypt the keychain with the right AES key."),(0,a.kt)("p",null,"This avoids disclosure of critical information and prevents unauthorized access."),(0,a.kt)("p",null,(0,a.kt)("img",{src:i(43719).Z,width:"767",height:"362"})),(0,a.kt)("h2",{id:"standard-compliance"},"Standard compliance"),(0,a.kt)("p",null,"Archethic decentralized identity and keychain concepts is also compliant with industry standard in the field of online and digital identity."),(0,a.kt)("p",null,"Then once created, the keychain embeds on-chain a representation of a ",(0,a.kt)("a",{parentName:"p",href:"https://www.w3.org/TR/did-core/"},"W3C DID (Decentralized Identitifier)")," document which help the discovery of your key materials."),(0,a.kt)("p",null,"It displays a JSON message with the list of public key you own and you allow other parties to interact with, such as your main Archethic public key or your Amazon public for example."),(0,a.kt)("p",null,"This coupled with ",(0,a.kt)("a",{parentName:"p",href:"https://www.w3.org/TR/vc-data-model/"},"verifiable credentials")," and ",(0,a.kt)("a",{parentName:"p",href:"https://webauthn.io/"},"WebAuthn (Website authentication without password)")," make the complete usage of decentralized identity possible."),(0,a.kt)("h2",{id:"customization"},"Customization"),(0,a.kt)("p",null,"Because this wallet should be your digital identity security, we can customize the services and way the keys are generated."),(0,a.kt)("p",null,"Each service in the keychain is joined with other customizable property:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"derivation path: this will inform how the key will be generated. For example, the default one is ",(0,a.kt)("inlineCode",{parentName:"li"},"m/650'/0/0")," informing we are using Archethic derivation method (",(0,a.kt)("inlineCode",{parentName:"li"},"650")," instead of the usual BIP44) and then the ",(0,a.kt)("inlineCode",{parentName:"li"},"0/0")," indicates the first account and the first key of the chain.")),(0,a.kt)("p",null,"But nothing prevent to add something like: ",(0,a.kt)("inlineCode",{parentName:"p"},"m/650'/Amazon/0")," or ",(0,a.kt)("inlineCode",{parentName:"p"},"m/650'/JohnDoeUCO@!/0")),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"curve: this indicates during the derivate key which elliptic curve we want to use. (Ed25519, NIST, Bitcoin curve)")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"hash algorithm: this is used in the transaction address generation from the key produced, by default it's associated to ",(0,a.kt)("inlineCode",{parentName:"p"},"sha256")," but if you want higher security you could use something like ",(0,a.kt)("inlineCode",{parentName:"p"},"sha3-512")," o ",(0,a.kt)("inlineCode",{parentName:"p"},"blake2b")))))}d.isMDXComponent=!0},43719:(e,t,i)=>{i.d(t,{Z:()=>n});const n=i.p+"assets/images/keychain-access-wallet-780a9e51e7490fb38fe1171ddd8e028f.svg"},24449:(e,t,i)=>{i.d(t,{Z:()=>n});const n="data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDM3MS41NTA0NzYwNzQyMTg3NSAyNTguNTYyODA1MTc1NzgxMjUiIHdpZHRoPSIzNzEuNTUwNDc2MDc0MjE4NzUiIGhlaWdodD0iMjU4LjU2MjgwNTE3NTc4MTI1Ij4KICA8IS0tIHN2Zy1zb3VyY2U6ZXhjYWxpZHJhdyAtLT4KICAKICA8ZGVmcz4KICAgIDxzdHlsZT4KICAgICAgQGZvbnQtZmFjZSB7CiAgICAgICAgZm9udC1mYW1pbHk6ICJWaXJnaWwiOwogICAgICAgIHNyYzogdXJsKCJodHRwczovL2V4Y2FsaWRyYXcuY29tL1ZpcmdpbC53b2ZmMiIpOwogICAgICB9CiAgICAgIEBmb250LWZhY2UgewogICAgICAgIGZvbnQtZmFtaWx5OiAiQ2FzY2FkaWEiOwogICAgICAgIHNyYzogdXJsKCJodHRwczovL2V4Y2FsaWRyYXcuY29tL0Nhc2NhZGlhLndvZmYyIik7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgPC9kZWZzPgogIDxnIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTAgMTApIHJvdGF0ZSgwIDQ5IDI0Ljc2NTY4NjAzNTE1NjI1KSI+PHBhdGggZD0iTS0xLjQ3IDAuNDkgQzMwLjgxIC0xLjc0LCA2MS44MyAtMS41NywgOTguMDUgLTEuMjIgTS0wLjI5IC0wLjQzIEMzMS4wNyAwLjMzLCA2My43NCAtMC4zNCwgOTguNSAwLjA1IE05Ni42IDAuOTYgQzk2LjQgMTEuNTgsIDEwMC4xNCAyMi40MywgOTcuODMgNTAuOSBNOTguMDYgMC4yNiBDOTguNSAxMC4yNywgOTguMzYgMjEuMjEsIDk3LjY3IDUwLjIyIE05Ny4yOSA0Ny44MiBDNjguODcgNTAuMSwgMzcuNjkgNTAuNjEsIDEuMDggNTAuMTIgTTk3LjggNDkuNTEgQzYwLjIzIDQ4Ljc4LCAyMi4wNyA1MC4zMiwgMC45MSA0OS44OSBNLTEuNDggNDguNjQgQy0wLjQ5IDMyLjg1LCAxLjA4IDE0LjcsIC0wLjM2IDEuODUgTTAuMzQgNDkuMjMgQy0wLjYxIDM3LjgxLCAtMC4xIDI4LjYzLCAwLjM5IDAuMTkiIHN0cm9rZT0iIzVmM2RjNCIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIj48L3BhdGg+PC9nPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE1IDIyLjI2NTY4NjAzNTE1NjI1KSByb3RhdGUoMCA0NCAxMi41KSI+PHRleHQgeD0iNDQiIHk9IjE4IiBmb250LWZhbWlseT0iVmlyZ2lsLCBTZWdvZSBVSSBFbW9qaSIgZm9udC1zaXplPSIyMHB4IiBmaWxsPSIjNWYzZGM0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0id2hpdGUtc3BhY2U6IHByZTsiIGRpcmVjdGlvbj0ibHRyIj5TZWVkPC90ZXh0PjwvZz48ZyBzdHJva2UtbGluZWNhcD0icm91bmQiPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDU4LjQ5MjAwNDM5NDUzMTI1IDYzLjU2MjE5NDgyNDIxODc1KSByb3RhdGUoMCAtMC40MzE3NTc1MzQ0ODE1NjIzIDg4LjE0OTE4NjA4NDY4MDI1KSI+PHBhdGggZD0iTTAgMCBDLTAuMTQgMjkuMzgsIC0wLjcyIDE0Ni45MiwgLTAuODYgMTc2LjMgTTAgMCBDLTAuMTQgMjkuMzgsIC0wLjcyIDE0Ni45MiwgLTAuODYgMTc2LjMiIHN0cm9rZT0iIzVmM2RjNCIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIj48L3BhdGg+PC9nPjwvZz48ZyBzdHJva2UtbGluZWNhcD0icm91bmQiPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDU3LjI2OTQwOTE3OTY4NzUgMTA3Ljc0MDQ3ODUxNTYyNSkgcm90YXRlKDAgNjEuMzA4MjYyOTg0MDgyMDkgMC4yMDY2MjIwNDU5NjUxOTAxOCkiPjxwYXRoIGQ9Ik0tMC41OSAwLjgxIEMyMC4wMyAwLjc4LCAxMDIuNzIgLTAuNDEsIDEyMy4yIC0wLjQ3IE0xLjMxIDAuMTkgQzIxLjg5IDAuMzUsIDEwMi42OCAxLjEzLCAxMjIuNzMgMC44MiIgc3Ryb2tlPSIjNWYzZGM0IiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiPjwvcGF0aD48L2c+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNTcuMjY5NDA5MTc5Njg3NSAxMDcuNzQwNDc4NTE1NjI1KSByb3RhdGUoMCA2MS4zMDgyNjI5ODQwODIwOSAwLjIwNjYyMjA0NTk2NTE5MDE4KSI+PHBhdGggZD0iTTk1LjkxIDEyLjYzIEMxMDEuMDYgOC42NywgMTA5Ljg1IDQuMDEsIDEyMS44NiAtMC44OCBNOTQuNiAxMC4yOCBDMTAxLjkzIDkuMjEsIDEwOC4xNiA1LjYzLCAxMjIuOTYgMS4zNyIgc3Ryb2tlPSIjNWYzZGM0IiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiPjwvcGF0aD48L2c+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNTcuMjY5NDA5MTc5Njg3NSAxMDcuNzQwNDc4NTE1NjI1KSByb3RhdGUoMCA2MS4zMDgyNjI5ODQwODIwOSAwLjIwNjYyMjA0NTk2NTE5MDE4KSI+PHBhdGggZD0iTTk1Ljg5IC03LjkgQzEwMSAtNi41NiwgMTA5Ljc5IC01LjkxLCAxMjEuODYgLTAuODggTTk0LjU4IC0xMC4yNCBDMTAxLjc0IC02LjQxLCAxMDcuOTggLTUuMDksIDEyMi45NiAxLjM3IiBzdHJva2U9IiM1ZjNkYzQiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSI+PC9wYXRoPjwvZz48L2c+PGcgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSg2Mi41MTgyNDk1MTE3MTg3NSAxNzAuMjY4NTI0MTY5OTIxODgpIHJvdGF0ZSgwIDYxLjU1MzkyODE1MDI0NTk1IDAuMTIyNDM3NjEyMzM5ODY1NjEpIj48cGF0aCBkPSJNLTAuOTggMC44OCBDMTkuMTkgMC43NywgMTAwLjk4IC0wLjM2LCAxMjEuNjkgLTAuNjQgTTAuNzEgMC4zIEMyMS4yMiAwLjM0LCAxMDMuNyAwLjU5LCAxMjQuMDggMC41NiIgc3Ryb2tlPSIjNWYzZGM0IiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiPjwvcGF0aD48L2c+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNjIuNTE4MjQ5NTExNzE4NzUgMTcwLjI2ODUyNDE2OTkyMTg4KSByb3RhdGUoMCA2MS41NTM5MjgxNTAyNDU5NSAwLjEyMjQzNzYxMjMzOTg2NTYxKSI+PHBhdGggZD0iTTk3LjM2IDkuNzggQzEwNC45MSA4Ljk4LCAxMTQuNzkgMy45MywgMTI1Ljc2IDAuMzQgTTk1LjYyIDExLjM4IEMxMDUuNDIgOC4wNiwgMTE1LjAxIDQsIDEyMy43OSAxLjU1IiBzdHJva2U9IiM1ZjNkYzQiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSI+PC9wYXRoPjwvZz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSg2Mi41MTgyNDk1MTE3MTg3NSAxNzAuMjY4NTI0MTY5OTIxODgpIHJvdGF0ZSgwIDYxLjU1MzkyODE1MDI0NTk1IDAuMTIyNDM3NjEyMzM5ODY1NjEpIj48cGF0aCBkPSJNOTcuMzggLTEwLjc0IEMxMDQuOTMgLTQuMTksIDExNC44MSAtMS44OSwgMTI1Ljc2IDAuMzQgTTk1LjY1IC05LjE0IEMxMDUuNjEgLTUuNTgsIDExNS4xOSAtMi43NiwgMTIzLjc5IDEuNTUiIHN0cm9rZT0iIzVmM2RjNCIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIj48L3BhdGg+PC9nPjwvZz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyMTQuNTUxMDg2NDI1NzgxMjUgOTMuMzAxODE4ODQ3NjU2MjUpIHJvdGF0ZSgwIDU5LjUgMTIuNSkiPjx0ZXh0IHg9IjAiIHk9IjE4IiBmb250LWZhbWlseT0iVmlyZ2lsLCBTZWdvZSBVSSBFbW9qaSIgZm9udC1zaXplPSIyMHB4IiBmaWxsPSIjMzY0ZmM3IiB0ZXh0LWFuY2hvcj0ic3RhcnQiIHN0eWxlPSJ3aGl0ZS1zcGFjZTogcHJlOyIgZGlyZWN0aW9uPSJsdHIiPldhbGxldCBVQ08xPC90ZXh0PjwvZz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyMTMuMDQyMzU4Mzk4NDM3NSAxNTYuNjYyMjkyNDgwNDY4NzUpIHJvdGF0ZSgwIDY4LjUgMTIuNSkiPjx0ZXh0IHg9IjAiIHk9IjE4IiBmb250LWZhbWlseT0iVmlyZ2lsLCBTZWdvZSBVSSBFbW9qaSIgZm9udC1zaXplPSIyMHB4IiBmaWxsPSIjMmI4YTNlIiB0ZXh0LWFuY2hvcj0ic3RhcnQiIHN0eWxlPSJ3aGl0ZS1zcGFjZTogcHJlOyIgZGlyZWN0aW9uPSJsdHIiPldhbGxldCBCaXRjb2luPC90ZXh0PjwvZz48ZyBzdHJva2UtbGluZWNhcD0icm91bmQiPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDU4LjMzMzY3OTE5OTIxODc1IDIzNy41NzYwMTkyODcxMDkzOCkgcm90YXRlKDAgNjYuNDAxMDMzMTUzOTQzNzMgMC41MzYyMTQ3Mzc5ODQ1MjI2KSI+PHBhdGggZD0iTTAuOTYgMC45MSBDMjMgMS4wMSwgMTEwLjU2IDEuMzgsIDEzMi44IDEuMzcgTTAuMDEgMC4zNSBDMjEuOCAwLjA0LCAxMDkuMjQgLTAuMDMsIDEzMS42IC0wLjMiIHN0cm9rZT0iIzVmM2RjNCIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIj48L3BhdGg+PC9nPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDU4LjMzMzY3OTE5OTIxODc1IDIzNy41NzYwMTkyODcxMDkzOCkgcm90YXRlKDAgNjYuNDAxMDMzMTUzOTQzNzMgMC41MzYyMTQ3Mzc5ODQ1MjI2KSI+PHBhdGggZD0iTTEwNC45OSA5LjM0IEMxMTQuNTQgOC4xLCAxMjMuNDIgMS41NCwgMTMxLjI2IDAuMzMgTTEwMi42NSAxMC43IEMxMTIuOTkgNi44NiwgMTE5LjggMi43NiwgMTMxLjY2IC0wLjQxIiBzdHJva2U9IiM1ZjNkYzQiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSI+PC9wYXRoPjwvZz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSg1OC4zMzM2NzkxOTkyMTg3NSAyMzcuNTc2MDE5Mjg3MTA5MzgpIHJvdGF0ZSgwIDY2LjQwMTAzMzE1Mzk0MzczIDAuNTM2MjE0NzM3OTg0NTIyNikiPjxwYXRoIGQ9Ik0xMDQuODcgLTExLjE4IEMxMTQuNiAtNS4zMywgMTIzLjUxIC00LjgsIDEzMS4yNiAwLjMzIE0xMDIuNTMgLTkuODIgQzExMi44OCAtNy40NSwgMTE5LjcyIC01LjM0LCAxMzEuNjYgLTAuNDEiIHN0cm9rZT0iIzVmM2RjNCIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIj48L3BhdGg+PC9nPjwvZz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyMTguNTUwNDc2MDc0MjE4NzUgMjIzLjU2MjgwNTE3NTc4MTI1KSByb3RhdGUoMCA3MS41IDEyLjUpIj48dGV4dCB4PSIwIiB5PSIxOCIgZm9udC1mYW1pbHk9IlZpcmdpbCwgU2Vnb2UgVUkgRW1vamkiIGZvbnQtc2l6ZT0iMjBweCIgZmlsbD0iI2Q5NDgwZiIgdGV4dC1hbmNob3I9InN0YXJ0IiBzdHlsZT0id2hpdGUtc3BhY2U6IHByZTsiIGRpcmVjdGlvbj0ibHRyIj5XYWxsZXQgQW1hem9uPC90ZXh0PjwvZz48L3N2Zz4="},8209:(e,t,i)=>{i(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9254],{3905:(e,t,i)=>{i.d(t,{Zo:()=>l,kt:()=>s});var n=i(67294);function a(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function c(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,n)}return i}function r(e){for(var t=1;t=0||(a[i]=e[i]);return a}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(a[i]=e[i])}return a}var I=n.createContext({}),o=function(e){var t=n.useContext(I),i=t;return e&&(i="function"==typeof e?e(t):r(r({},t),e)),i},l=function(e){var t=o(e.components);return n.createElement(I.Provider,{value:t},e.children)},g="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var i=e.components,a=e.mdxType,c=e.originalType,I=e.parentName,l=M(e,["components","mdxType","originalType","parentName"]),g=o(i),u=a,s=g["".concat(I,".").concat(u)]||g[u]||d[u]||c;return i?n.createElement(s,r(r({ref:t},l),{},{components:i})):n.createElement(s,r({ref:t},l))}));function s(e,t){var i=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var c=i.length,r=new Array(c);r[0]=u;var M={};for(var I in t)hasOwnProperty.call(t,I)&&(M[I]=t[I]);M.originalType=e,M[g]="string"==typeof e?e:a,r[1]=M;for(var o=2;o{i.r(t),i.d(t,{assets:()=>I,contentTitle:()=>r,default:()=>d,frontMatter:()=>c,metadata:()=>M,toc:()=>o});var n=i(87462),a=(i(67294),i(3905));i(8209);const c={id:"keychain",title:"Keychain"},r=void 0,M={unversionedId:"learn/decentralized-id/keychain",id:"learn/decentralized-id/keychain",title:"Keychain",description:"Archethic's keychain is new concept to make wallet accessible, configurable and interoperable with several service providers and why not multi chains.",source:"@site/docs/learn/decentralized-id/keychain.md",sourceDirName:"learn/decentralized-id",slug:"/learn/decentralized-id/keychain",permalink:"/learn/decentralized-id/keychain",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"keychain",title:"Keychain"},sidebar:"docs",previous:{title:"Decentralized Identity",permalink:"/learn/decentralized-id/"},next:{title:"Governance",permalink:"/learn/governance/"}},I={},o=[{value:"Key generation",id:"key-generation",level:2},{value:"End to end encryption",id:"end-to-end-encryption",level:2},{value:"Standard compliance",id:"standard-compliance",level:2},{value:"Customization",id:"customization",level:2}],l={toc:o},g="wrapper";function d(e){let{components:t,...c}=e;return(0,a.kt)(g,(0,n.Z)({},l,c,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"Archethic's keychain is new concept to make wallet accessible, configurable and interoperable with several service providers and why not multi chains."),(0,a.kt)("p",null,"It describes wallet which is stored encrypted on chain, as only you and the authorized access or person you allowed, to be able to decrypt and build transactions from it."),(0,a.kt)("h2",{id:"key-generation"},"Key generation"),(0,a.kt)("p",null,"Technically speaking, this wallet - also referenced as ",(0,a.kt)("inlineCode",{parentName:"p"},"Decentralized Identity")," - is made up of randomly generated ",(0,a.kt)("inlineCode",{parentName:"p"},"seed")," (root key) from which it's possible to generate all keys according to a path of derivation. "),(0,a.kt)("p",null,"So for any access to a service or an application, a key will be generated on the fly from the ",(0,a.kt)("inlineCode",{parentName:"p"},"seed")," (root key) and the first public key associated with a service or an application."),(0,a.kt)("p",null,"Thus allowing creating an infinite number of identities without even having to store related keys. "),(0,a.kt)("p",null,(0,a.kt)("img",{src:i(24449).Z,width:"372",height:"259"})),(0,a.kt)("h2",{id:"end-to-end-encryption"},"End to end encryption"),(0,a.kt)("p",null,"While this wallet or keychain being on-chain, it still remains secure as no other party (at least non authorized) can access with service keys. "),(0,a.kt)("p",null,"This is possible as we are using end to end encryption and elliptic curve cryptography."),(0,a.kt)("p",null,"Each keychain/wallet generated is embedded into a transaction encrypted using an AES key itself encrypted with a list of authorized keys or authenticated access (biometric, smartphone, USB, etc.)"),(0,a.kt)("p",null,"Once generated, we also create transactions for the access of this keychain.\nSo in other words, each access have its own transaction chain, where the keychain's location is encrypted as well."),(0,a.kt)("p",null,"Then in order to retrieve or access your keychain, your authentication method should retrieve its transaction chain, then decrypt the keychain's location, download the keychain transaction and finally decrypt the keychain with the right AES key."),(0,a.kt)("p",null,"This avoids disclosure of critical information and prevents unauthorized access."),(0,a.kt)("p",null,(0,a.kt)("img",{src:i(43719).Z,width:"767",height:"362"})),(0,a.kt)("h2",{id:"standard-compliance"},"Standard compliance"),(0,a.kt)("p",null,"Archethic decentralized identity and keychain concepts is also compliant with industry standard in the field of online and digital identity."),(0,a.kt)("p",null,"Then once created, the keychain embeds on-chain a representation of a ",(0,a.kt)("a",{parentName:"p",href:"https://www.w3.org/TR/did-core/"},"W3C DID (Decentralized Identitifier)")," document which help the discovery of your key materials."),(0,a.kt)("p",null,"It displays a JSON message with the list of public key you own and you allow other parties to interact with, such as your main Archethic public key or your Amazon public for example."),(0,a.kt)("p",null,"This coupled with ",(0,a.kt)("a",{parentName:"p",href:"https://www.w3.org/TR/vc-data-model/"},"verifiable credentials")," and ",(0,a.kt)("a",{parentName:"p",href:"https://webauthn.io/"},"WebAuthn (Website authentication without password)")," make the complete usage of decentralized identity possible."),(0,a.kt)("h2",{id:"customization"},"Customization"),(0,a.kt)("p",null,"Because this wallet should be your digital identity security, we can customize the services and way the keys are generated."),(0,a.kt)("p",null,"Each service in the keychain is joined with other customizable property:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"derivation path: this will inform how the key will be generated. For example, the default one is ",(0,a.kt)("inlineCode",{parentName:"li"},"m/650'/0/0")," informing we are using Archethic derivation method (",(0,a.kt)("inlineCode",{parentName:"li"},"650")," instead of the usual BIP44) and then the ",(0,a.kt)("inlineCode",{parentName:"li"},"0/0")," indicates the first account and the first key of the chain.")),(0,a.kt)("p",null,"But nothing prevent to add something like: ",(0,a.kt)("inlineCode",{parentName:"p"},"m/650'/Amazon/0")," or ",(0,a.kt)("inlineCode",{parentName:"p"},"m/650'/JohnDoeUCO@!/0")),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"curve: this indicates during the derivate key which elliptic curve we want to use. (Ed25519, NIST, Bitcoin curve)")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"hash algorithm: this is used in the transaction address generation from the key produced, by default it's associated to ",(0,a.kt)("inlineCode",{parentName:"p"},"sha256")," but if you want higher security you could use something like ",(0,a.kt)("inlineCode",{parentName:"p"},"sha3-512")," o ",(0,a.kt)("inlineCode",{parentName:"p"},"blake2b")))))}d.isMDXComponent=!0},43719:(e,t,i)=>{i.d(t,{Z:()=>n});const n=i.p+"assets/images/keychain-access-wallet-780a9e51e7490fb38fe1171ddd8e028f.svg"},24449:(e,t,i)=>{i.d(t,{Z:()=>n});const n="data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDM3MS41NTA0NzYwNzQyMTg3NSAyNTguNTYyODA1MTc1NzgxMjUiIHdpZHRoPSIzNzEuNTUwNDc2MDc0MjE4NzUiIGhlaWdodD0iMjU4LjU2MjgwNTE3NTc4MTI1Ij4KICA8IS0tIHN2Zy1zb3VyY2U6ZXhjYWxpZHJhdyAtLT4KICAKICA8ZGVmcz4KICAgIDxzdHlsZT4KICAgICAgQGZvbnQtZmFjZSB7CiAgICAgICAgZm9udC1mYW1pbHk6ICJWaXJnaWwiOwogICAgICAgIHNyYzogdXJsKCJodHRwczovL2V4Y2FsaWRyYXcuY29tL1ZpcmdpbC53b2ZmMiIpOwogICAgICB9CiAgICAgIEBmb250LWZhY2UgewogICAgICAgIGZvbnQtZmFtaWx5OiAiQ2FzY2FkaWEiOwogICAgICAgIHNyYzogdXJsKCJodHRwczovL2V4Y2FsaWRyYXcuY29tL0Nhc2NhZGlhLndvZmYyIik7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgPC9kZWZzPgogIDxnIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTAgMTApIHJvdGF0ZSgwIDQ5IDI0Ljc2NTY4NjAzNTE1NjI1KSI+PHBhdGggZD0iTS0xLjQ3IDAuNDkgQzMwLjgxIC0xLjc0LCA2MS44MyAtMS41NywgOTguMDUgLTEuMjIgTS0wLjI5IC0wLjQzIEMzMS4wNyAwLjMzLCA2My43NCAtMC4zNCwgOTguNSAwLjA1IE05Ni42IDAuOTYgQzk2LjQgMTEuNTgsIDEwMC4xNCAyMi40MywgOTcuODMgNTAuOSBNOTguMDYgMC4yNiBDOTguNSAxMC4yNywgOTguMzYgMjEuMjEsIDk3LjY3IDUwLjIyIE05Ny4yOSA0Ny44MiBDNjguODcgNTAuMSwgMzcuNjkgNTAuNjEsIDEuMDggNTAuMTIgTTk3LjggNDkuNTEgQzYwLjIzIDQ4Ljc4LCAyMi4wNyA1MC4zMiwgMC45MSA0OS44OSBNLTEuNDggNDguNjQgQy0wLjQ5IDMyLjg1LCAxLjA4IDE0LjcsIC0wLjM2IDEuODUgTTAuMzQgNDkuMjMgQy0wLjYxIDM3LjgxLCAtMC4xIDI4LjYzLCAwLjM5IDAuMTkiIHN0cm9rZT0iIzVmM2RjNCIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIj48L3BhdGg+PC9nPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE1IDIyLjI2NTY4NjAzNTE1NjI1KSByb3RhdGUoMCA0NCAxMi41KSI+PHRleHQgeD0iNDQiIHk9IjE4IiBmb250LWZhbWlseT0iVmlyZ2lsLCBTZWdvZSBVSSBFbW9qaSIgZm9udC1zaXplPSIyMHB4IiBmaWxsPSIjNWYzZGM0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0id2hpdGUtc3BhY2U6IHByZTsiIGRpcmVjdGlvbj0ibHRyIj5TZWVkPC90ZXh0PjwvZz48ZyBzdHJva2UtbGluZWNhcD0icm91bmQiPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDU4LjQ5MjAwNDM5NDUzMTI1IDYzLjU2MjE5NDgyNDIxODc1KSByb3RhdGUoMCAtMC40MzE3NTc1MzQ0ODE1NjIzIDg4LjE0OTE4NjA4NDY4MDI1KSI+PHBhdGggZD0iTTAgMCBDLTAuMTQgMjkuMzgsIC0wLjcyIDE0Ni45MiwgLTAuODYgMTc2LjMgTTAgMCBDLTAuMTQgMjkuMzgsIC0wLjcyIDE0Ni45MiwgLTAuODYgMTc2LjMiIHN0cm9rZT0iIzVmM2RjNCIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIj48L3BhdGg+PC9nPjwvZz48ZyBzdHJva2UtbGluZWNhcD0icm91bmQiPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDU3LjI2OTQwOTE3OTY4NzUgMTA3Ljc0MDQ3ODUxNTYyNSkgcm90YXRlKDAgNjEuMzA4MjYyOTg0MDgyMDkgMC4yMDY2MjIwNDU5NjUxOTAxOCkiPjxwYXRoIGQ9Ik0tMC41OSAwLjgxIEMyMC4wMyAwLjc4LCAxMDIuNzIgLTAuNDEsIDEyMy4yIC0wLjQ3IE0xLjMxIDAuMTkgQzIxLjg5IDAuMzUsIDEwMi42OCAxLjEzLCAxMjIuNzMgMC44MiIgc3Ryb2tlPSIjNWYzZGM0IiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiPjwvcGF0aD48L2c+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNTcuMjY5NDA5MTc5Njg3NSAxMDcuNzQwNDc4NTE1NjI1KSByb3RhdGUoMCA2MS4zMDgyNjI5ODQwODIwOSAwLjIwNjYyMjA0NTk2NTE5MDE4KSI+PHBhdGggZD0iTTk1LjkxIDEyLjYzIEMxMDEuMDYgOC42NywgMTA5Ljg1IDQuMDEsIDEyMS44NiAtMC44OCBNOTQuNiAxMC4yOCBDMTAxLjkzIDkuMjEsIDEwOC4xNiA1LjYzLCAxMjIuOTYgMS4zNyIgc3Ryb2tlPSIjNWYzZGM0IiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiPjwvcGF0aD48L2c+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNTcuMjY5NDA5MTc5Njg3NSAxMDcuNzQwNDc4NTE1NjI1KSByb3RhdGUoMCA2MS4zMDgyNjI5ODQwODIwOSAwLjIwNjYyMjA0NTk2NTE5MDE4KSI+PHBhdGggZD0iTTk1Ljg5IC03LjkgQzEwMSAtNi41NiwgMTA5Ljc5IC01LjkxLCAxMjEuODYgLTAuODggTTk0LjU4IC0xMC4yNCBDMTAxLjc0IC02LjQxLCAxMDcuOTggLTUuMDksIDEyMi45NiAxLjM3IiBzdHJva2U9IiM1ZjNkYzQiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSI+PC9wYXRoPjwvZz48L2c+PGcgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSg2Mi41MTgyNDk1MTE3MTg3NSAxNzAuMjY4NTI0MTY5OTIxODgpIHJvdGF0ZSgwIDYxLjU1MzkyODE1MDI0NTk1IDAuMTIyNDM3NjEyMzM5ODY1NjEpIj48cGF0aCBkPSJNLTAuOTggMC44OCBDMTkuMTkgMC43NywgMTAwLjk4IC0wLjM2LCAxMjEuNjkgLTAuNjQgTTAuNzEgMC4zIEMyMS4yMiAwLjM0LCAxMDMuNyAwLjU5LCAxMjQuMDggMC41NiIgc3Ryb2tlPSIjNWYzZGM0IiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiPjwvcGF0aD48L2c+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNjIuNTE4MjQ5NTExNzE4NzUgMTcwLjI2ODUyNDE2OTkyMTg4KSByb3RhdGUoMCA2MS41NTM5MjgxNTAyNDU5NSAwLjEyMjQzNzYxMjMzOTg2NTYxKSI+PHBhdGggZD0iTTk3LjM2IDkuNzggQzEwNC45MSA4Ljk4LCAxMTQuNzkgMy45MywgMTI1Ljc2IDAuMzQgTTk1LjYyIDExLjM4IEMxMDUuNDIgOC4wNiwgMTE1LjAxIDQsIDEyMy43OSAxLjU1IiBzdHJva2U9IiM1ZjNkYzQiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSI+PC9wYXRoPjwvZz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSg2Mi41MTgyNDk1MTE3MTg3NSAxNzAuMjY4NTI0MTY5OTIxODgpIHJvdGF0ZSgwIDYxLjU1MzkyODE1MDI0NTk1IDAuMTIyNDM3NjEyMzM5ODY1NjEpIj48cGF0aCBkPSJNOTcuMzggLTEwLjc0IEMxMDQuOTMgLTQuMTksIDExNC44MSAtMS44OSwgMTI1Ljc2IDAuMzQgTTk1LjY1IC05LjE0IEMxMDUuNjEgLTUuNTgsIDExNS4xOSAtMi43NiwgMTIzLjc5IDEuNTUiIHN0cm9rZT0iIzVmM2RjNCIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIj48L3BhdGg+PC9nPjwvZz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyMTQuNTUxMDg2NDI1NzgxMjUgOTMuMzAxODE4ODQ3NjU2MjUpIHJvdGF0ZSgwIDU5LjUgMTIuNSkiPjx0ZXh0IHg9IjAiIHk9IjE4IiBmb250LWZhbWlseT0iVmlyZ2lsLCBTZWdvZSBVSSBFbW9qaSIgZm9udC1zaXplPSIyMHB4IiBmaWxsPSIjMzY0ZmM3IiB0ZXh0LWFuY2hvcj0ic3RhcnQiIHN0eWxlPSJ3aGl0ZS1zcGFjZTogcHJlOyIgZGlyZWN0aW9uPSJsdHIiPldhbGxldCBVQ08xPC90ZXh0PjwvZz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyMTMuMDQyMzU4Mzk4NDM3NSAxNTYuNjYyMjkyNDgwNDY4NzUpIHJvdGF0ZSgwIDY4LjUgMTIuNSkiPjx0ZXh0IHg9IjAiIHk9IjE4IiBmb250LWZhbWlseT0iVmlyZ2lsLCBTZWdvZSBVSSBFbW9qaSIgZm9udC1zaXplPSIyMHB4IiBmaWxsPSIjMmI4YTNlIiB0ZXh0LWFuY2hvcj0ic3RhcnQiIHN0eWxlPSJ3aGl0ZS1zcGFjZTogcHJlOyIgZGlyZWN0aW9uPSJsdHIiPldhbGxldCBCaXRjb2luPC90ZXh0PjwvZz48ZyBzdHJva2UtbGluZWNhcD0icm91bmQiPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDU4LjMzMzY3OTE5OTIxODc1IDIzNy41NzYwMTkyODcxMDkzOCkgcm90YXRlKDAgNjYuNDAxMDMzMTUzOTQzNzMgMC41MzYyMTQ3Mzc5ODQ1MjI2KSI+PHBhdGggZD0iTTAuOTYgMC45MSBDMjMgMS4wMSwgMTEwLjU2IDEuMzgsIDEzMi44IDEuMzcgTTAuMDEgMC4zNSBDMjEuOCAwLjA0LCAxMDkuMjQgLTAuMDMsIDEzMS42IC0wLjMiIHN0cm9rZT0iIzVmM2RjNCIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIj48L3BhdGg+PC9nPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDU4LjMzMzY3OTE5OTIxODc1IDIzNy41NzYwMTkyODcxMDkzOCkgcm90YXRlKDAgNjYuNDAxMDMzMTUzOTQzNzMgMC41MzYyMTQ3Mzc5ODQ1MjI2KSI+PHBhdGggZD0iTTEwNC45OSA5LjM0IEMxMTQuNTQgOC4xLCAxMjMuNDIgMS41NCwgMTMxLjI2IDAuMzMgTTEwMi42NSAxMC43IEMxMTIuOTkgNi44NiwgMTE5LjggMi43NiwgMTMxLjY2IC0wLjQxIiBzdHJva2U9IiM1ZjNkYzQiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSI+PC9wYXRoPjwvZz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSg1OC4zMzM2NzkxOTkyMTg3NSAyMzcuNTc2MDE5Mjg3MTA5MzgpIHJvdGF0ZSgwIDY2LjQwMTAzMzE1Mzk0MzczIDAuNTM2MjE0NzM3OTg0NTIyNikiPjxwYXRoIGQ9Ik0xMDQuODcgLTExLjE4IEMxMTQuNiAtNS4zMywgMTIzLjUxIC00LjgsIDEzMS4yNiAwLjMzIE0xMDIuNTMgLTkuODIgQzExMi44OCAtNy40NSwgMTE5LjcyIC01LjM0LCAxMzEuNjYgLTAuNDEiIHN0cm9rZT0iIzVmM2RjNCIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIj48L3BhdGg+PC9nPjwvZz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyMTguNTUwNDc2MDc0MjE4NzUgMjIzLjU2MjgwNTE3NTc4MTI1KSByb3RhdGUoMCA3MS41IDEyLjUpIj48dGV4dCB4PSIwIiB5PSIxOCIgZm9udC1mYW1pbHk9IlZpcmdpbCwgU2Vnb2UgVUkgRW1vamkiIGZvbnQtc2l6ZT0iMjBweCIgZmlsbD0iI2Q5NDgwZiIgdGV4dC1hbmNob3I9InN0YXJ0IiBzdHlsZT0id2hpdGUtc3BhY2U6IHByZTsiIGRpcmVjdGlvbj0ibHRyIj5XYWxsZXQgQW1hem9uPC90ZXh0PjwvZz48L3N2Zz4="},8209:(e,t,i)=>{i(67294)}}]); \ No newline at end of file diff --git a/assets/js/9280a2e5.66872908.js b/assets/js/9280a2e5.5c874cb2.js similarity index 97% rename from assets/js/9280a2e5.66872908.js rename to assets/js/9280a2e5.5c874cb2.js index 03a2e2353..3fa0a1a07 100644 --- a/assets/js/9280a2e5.66872908.js +++ b/assets/js/9280a2e5.5c874cb2.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2814],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>b});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=r.createContext({}),c=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},p=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,l=e.originalType,s=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),d=c(a),u=n,b=d["".concat(s,".").concat(u)]||d[u]||m[u]||l;return a?r.createElement(b,o(o({ref:t},p),{},{components:a})):r.createElement(b,o({ref:t},p))}));function b(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=a.length,o=new Array(l);o[0]=u;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[d]="string"==typeof e?e:n,o[1]=i;for(var c=2;c{a.r(t),a.d(t,{Badge:()=>m,Bullet:()=>p,Details:()=>b,SpecifiedBy:()=>d,assets:()=>c,contentTitle:()=>i,default:()=>h,frontMatter:()=>o,metadata:()=>s,toc:()=>u});var r=a(87462),n=a(67294),l=a(3905);a(8209);const o={id:"hex",title:"Hex",hide_table_of_contents:!1},i=void 0,s={unversionedId:"build/api/schema/scalars/hex",id:"build/api/schema/scalars/hex",title:"Hex",description:"The [Hex] scalar type represents an hexadecimal",source:"@site/docs/build/api/schema/scalars/hex.mdx",sourceDirName:"build/api/schema/scalars",slug:"/build/api/schema/scalars/hex",permalink:"/build/api/schema/scalars/hex",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"hex",title:"Hex",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"Hash",permalink:"/build/api/schema/scalars/hash"},next:{title:"Int",permalink:"/build/api/schema/scalars/int"}},c={},p=()=>(0,l.kt)(n.Fragment,null,(0,l.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),d=e=>(0,l.kt)(n.Fragment,null,"Specification",(0,l.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),m=e=>(0,l.kt)(n.Fragment,null,(0,l.kt)("span",{className:e.class},e.text)),u=[{value:"Member of",id:"member-of",level:3}],b=e=>{let{dataOpen:t,dataClose:a,children:o,startOpen:i=!1}=e;const[s,c]=(0,n.useState)(i);return(0,l.kt)("details",(0,r.Z)({},s?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,l.kt)("summary",{onClick:e=>{e.preventDefault(),c((e=>!e))},style:{listStyle:"none"}},s?t:a),s&&o)},f={Bullet:p,SpecifiedBy:d,Badge:m,toc:u,Details:b},y="wrapper";function h(e){let{components:t,...a}=e;return(0,l.kt)(y,(0,r.Z)({},f,a,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("p",null,"The ","[Hex]"," scalar type represents an hexadecimal"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-graphql"},"scalar Hex\n")),(0,l.kt)("h3",{id:"member-of"},"Member of"),(0,l.kt)("p",null,(0,l.kt)("a",{parentName:"p",href:"/build/api/schema/objects/authorized-key"},(0,l.kt)("inlineCode",{parentName:"a"},"AuthorizedKey"))," ",(0,l.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,l.kt)(p,{mdxType:"Bullet"}),(0,l.kt)("a",{parentName:"p",href:"/build/api/schema/objects/cross-validation-stamp"},(0,l.kt)("inlineCode",{parentName:"a"},"CrossValidationStamp"))," ",(0,l.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,l.kt)(p,{mdxType:"Bullet"}),(0,l.kt)("a",{parentName:"p",href:"/build/api/schema/objects/ownership"},(0,l.kt)("inlineCode",{parentName:"a"},"Ownership"))," ",(0,l.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,l.kt)(p,{mdxType:"Bullet"}),(0,l.kt)("a",{parentName:"p",href:"/build/api/schema/objects/recipient"},(0,l.kt)("inlineCode",{parentName:"a"},"Recipient"))," ",(0,l.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,l.kt)(p,{mdxType:"Bullet"}),(0,l.kt)("a",{parentName:"p",href:"/build/api/schema/objects/transaction"},(0,l.kt)("inlineCode",{parentName:"a"},"Transaction"))," ",(0,l.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,l.kt)(p,{mdxType:"Bullet"}),(0,l.kt)("a",{parentName:"p",href:"/build/api/schema/objects/validation-stamp"},(0,l.kt)("inlineCode",{parentName:"a"},"ValidationStamp"))," ",(0,l.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}h.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2814],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>b});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=r.createContext({}),c=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},p=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,l=e.originalType,s=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),d=c(a),u=n,b=d["".concat(s,".").concat(u)]||d[u]||m[u]||l;return a?r.createElement(b,o(o({ref:t},p),{},{components:a})):r.createElement(b,o({ref:t},p))}));function b(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=a.length,o=new Array(l);o[0]=u;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[d]="string"==typeof e?e:n,o[1]=i;for(var c=2;c{a.r(t),a.d(t,{Badge:()=>m,Bullet:()=>p,Details:()=>b,SpecifiedBy:()=>d,assets:()=>c,contentTitle:()=>i,default:()=>h,frontMatter:()=>o,metadata:()=>s,toc:()=>u});var r=a(87462),n=a(67294),l=a(3905);a(8209);const o={id:"hex",title:"Hex",hide_table_of_contents:!1},i=void 0,s={unversionedId:"build/api/schema/scalars/hex",id:"build/api/schema/scalars/hex",title:"Hex",description:"The [Hex] scalar type represents an hexadecimal",source:"@site/docs/build/api/schema/scalars/hex.mdx",sourceDirName:"build/api/schema/scalars",slug:"/build/api/schema/scalars/hex",permalink:"/build/api/schema/scalars/hex",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"hex",title:"Hex",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"Hash",permalink:"/build/api/schema/scalars/hash"},next:{title:"Int",permalink:"/build/api/schema/scalars/int"}},c={},p=()=>(0,l.kt)(n.Fragment,null,(0,l.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),d=e=>(0,l.kt)(n.Fragment,null,"Specification",(0,l.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),m=e=>(0,l.kt)(n.Fragment,null,(0,l.kt)("span",{className:e.class},e.text)),u=[{value:"Member of",id:"member-of",level:3}],b=e=>{let{dataOpen:t,dataClose:a,children:o,startOpen:i=!1}=e;const[s,c]=(0,n.useState)(i);return(0,l.kt)("details",(0,r.Z)({},s?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,l.kt)("summary",{onClick:e=>{e.preventDefault(),c((e=>!e))},style:{listStyle:"none"}},s?t:a),s&&o)},f={Bullet:p,SpecifiedBy:d,Badge:m,toc:u,Details:b},y="wrapper";function h(e){let{components:t,...a}=e;return(0,l.kt)(y,(0,r.Z)({},f,a,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("p",null,"The ","[Hex]"," scalar type represents an hexadecimal"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-graphql"},"scalar Hex\n")),(0,l.kt)("h3",{id:"member-of"},"Member of"),(0,l.kt)("p",null,(0,l.kt)("a",{parentName:"p",href:"/build/api/schema/objects/authorized-key"},(0,l.kt)("inlineCode",{parentName:"a"},"AuthorizedKey"))," ",(0,l.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,l.kt)(p,{mdxType:"Bullet"}),(0,l.kt)("a",{parentName:"p",href:"/build/api/schema/objects/cross-validation-stamp"},(0,l.kt)("inlineCode",{parentName:"a"},"CrossValidationStamp"))," ",(0,l.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,l.kt)(p,{mdxType:"Bullet"}),(0,l.kt)("a",{parentName:"p",href:"/build/api/schema/objects/ownership"},(0,l.kt)("inlineCode",{parentName:"a"},"Ownership"))," ",(0,l.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,l.kt)(p,{mdxType:"Bullet"}),(0,l.kt)("a",{parentName:"p",href:"/build/api/schema/objects/recipient"},(0,l.kt)("inlineCode",{parentName:"a"},"Recipient"))," ",(0,l.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,l.kt)(p,{mdxType:"Bullet"}),(0,l.kt)("a",{parentName:"p",href:"/build/api/schema/objects/transaction"},(0,l.kt)("inlineCode",{parentName:"a"},"Transaction"))," ",(0,l.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,l.kt)(p,{mdxType:"Bullet"}),(0,l.kt)("a",{parentName:"p",href:"/build/api/schema/objects/validation-stamp"},(0,l.kt)("inlineCode",{parentName:"a"},"ValidationStamp"))," ",(0,l.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}h.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file diff --git a/assets/js/9327017b.4004b014.js b/assets/js/9327017b.e3104ac6.js similarity index 99% rename from assets/js/9327017b.4004b014.js rename to assets/js/9327017b.e3104ac6.js index e9576e108..73480d94d 100644 --- a/assets/js/9327017b.4004b014.js +++ b/assets/js/9327017b.e3104ac6.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8016],{3905:(e,t,a)=>{a.d(t,{Zo:()=>i,kt:()=>g});var n=a(67294);function o(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e){for(var t=1;t=0||(o[a]=e[a]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(o[a]=e[a])}return o}var c=n.createContext({}),s=function(e){var t=n.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},i=function(e){var t=s(e.components);return n.createElement(c.Provider,{value:t},e.children)},p="mdxType",b={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,o=e.mdxType,r=e.originalType,c=e.parentName,i=d(e,["components","mdxType","originalType","parentName"]),p=s(a),m=o,g=p["".concat(c,".").concat(m)]||p[m]||b[m]||r;return a?n.createElement(g,l(l({ref:t},i),{},{components:a})):n.createElement(g,l({ref:t},i))}));function g(e,t){var a=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=a.length,l=new Array(r);l[0]=m;var d={};for(var c in t)hasOwnProperty.call(t,c)&&(d[c]=t[c]);d.originalType=e,d[p]="string"==typeof e?e:o,l[1]=d;for(var s=2;s{a.r(t),a.d(t,{Badge:()=>b,Bullet:()=>i,Details:()=>g,SpecifiedBy:()=>p,assets:()=>s,contentTitle:()=>d,default:()=>f,frontMatter:()=>l,metadata:()=>c,toc:()=>m});var n=a(87462),o=a(67294),r=a(3905);a(8209);const l={id:"data",title:"Data",hide_table_of_contents:!1},d=void 0,c={unversionedId:"build/api/schema/objects/data",id:"build/api/schema/objects/data",title:"Data",description:"[TransactionData] represents the data section for every transaction.",source:"@site/docs/build/api/schema/objects/data.mdx",sourceDirName:"build/api/schema/objects",slug:"/build/api/schema/objects/data",permalink:"/build/api/schema/objects/data",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"data",title:"Data",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"CrossValidationStamp",permalink:"/build/api/schema/objects/cross-validation-stamp"},next:{title:"Endpoint",permalink:"/build/api/schema/objects/endpoint"}},s={},i=()=>(0,r.kt)(o.Fragment,null,(0,r.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=e=>(0,r.kt)(o.Fragment,null,"Specification",(0,r.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),b=e=>(0,r.kt)(o.Fragment,null,(0,r.kt)("span",{className:e.class},e.text)),m=[{value:"Fields",id:"fields",level:3},{value:'Data.actionRecipients[Recipient] ',id:"code-style-fontweight-normal-databactionrecipientsbcoderecipient--",level:4},{value:'Data.codeString ',id:"code-style-fontweight-normal-databcodebcodestring-",level:4},{value:'Data.contentContent ',id:"code-style-fontweight-normal-databcontentbcodecontent-",level:4},{value:'Data.ledgerLedger ',id:"code-style-fontweight-normal-databledgerbcodeledger-",level:4},{value:'Data.ownerships[Ownership] ',id:"code-style-fontweight-normal-databownershipsbcodeownership--",level:4},{value:'Data.recipients[Address] ',id:"code-style-fontweight-normal-databrecipientsbcodeaddress--",level:4},{value:"Member of",id:"member-of",level:3}],g=e=>{let{dataOpen:t,dataClose:a,children:l,startOpen:d=!1}=e;const[c,s]=(0,o.useState)(d);return(0,r.kt)("details",(0,n.Z)({},c?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,r.kt)("summary",{onClick:e=>{e.preventDefault(),s((e=>!e))},style:{listStyle:"none"}},c?t:a),c&&l)},u={Bullet:i,SpecifiedBy:p,Badge:b,toc:m,Details:g},h="wrapper";function f(e){let{components:t,...a}=e;return(0,r.kt)(h,(0,n.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"[TransactionData]"," represents the data section for every transaction.\nIt includes:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Ledger: asset transfers"),(0,r.kt)("li",{parentName:"ul"},"Code: smart contract code (hexadecimal),"),(0,r.kt)("li",{parentName:"ul"},"Content: free zone for data hosting (string or hexadecimal)"),(0,r.kt)("li",{parentName:"ul"},"Ownership: authorization/delegations containing list of secrets and their authorized public keys to proof the ownership"),(0,r.kt)("li",{parentName:"ul"},"Recipients: For non asset transfers, the list of recipients of the transaction (e.g Smart contract interactions)")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-graphql"},"type Data {\n actionRecipients: [Recipient]\n code: String\n content: Content\n ledger: Ledger\n ownerships: [Ownership]\n recipients: [Address]\n}\n")),(0,r.kt)("h3",{id:"fields"},"Fields"),(0,r.kt)("h4",{id:"code-style-fontweight-normal-databactionrecipientsbcoderecipient--"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"Data.",(0,r.kt)("b",null,"actionRecipients"))),(0,r.kt)(i,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/recipient"},(0,r.kt)("inlineCode",{parentName:"a"},"[Recipient]"))," ",(0,r.kt)(b,{class:"badge badge--secondary",text:"list",mdxType:"Badge"})," ",(0,r.kt)(b,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-databcodebcodestring-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"Data.",(0,r.kt)("b",null,"code"))),(0,r.kt)(i,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/string"},(0,r.kt)("inlineCode",{parentName:"a"},"String"))," ",(0,r.kt)(b,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-databcontentbcodecontent-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"Data.",(0,r.kt)("b",null,"content"))),(0,r.kt)(i,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/content"},(0,r.kt)("inlineCode",{parentName:"a"},"Content"))," ",(0,r.kt)(b,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-databledgerbcodeledger-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"Data.",(0,r.kt)("b",null,"ledger"))),(0,r.kt)(i,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/ledger"},(0,r.kt)("inlineCode",{parentName:"a"},"Ledger"))," ",(0,r.kt)(b,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-databownershipsbcodeownership--"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"Data.",(0,r.kt)("b",null,"ownerships"))),(0,r.kt)(i,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/ownership"},(0,r.kt)("inlineCode",{parentName:"a"},"[Ownership]"))," ",(0,r.kt)(b,{class:"badge badge--secondary",text:"list",mdxType:"Badge"})," ",(0,r.kt)(b,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-databrecipientsbcodeaddress--"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"Data.",(0,r.kt)("b",null,"recipients"))),(0,r.kt)(i,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/address"},(0,r.kt)("inlineCode",{parentName:"a"},"[Address]"))," ",(0,r.kt)(b,{class:"badge badge--secondary",text:"list",mdxType:"Badge"})," ",(0,r.kt)(b,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h3",{id:"member-of"},"Member of"),(0,r.kt)("p",null,(0,r.kt)("a",{parentName:"p",href:"/build/api/schema/objects/transaction"},(0,r.kt)("inlineCode",{parentName:"a"},"Transaction"))," ",(0,r.kt)(b,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}f.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8016],{3905:(e,t,a)=>{a.d(t,{Zo:()=>i,kt:()=>g});var n=a(67294);function o(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e){for(var t=1;t=0||(o[a]=e[a]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(o[a]=e[a])}return o}var c=n.createContext({}),s=function(e){var t=n.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},i=function(e){var t=s(e.components);return n.createElement(c.Provider,{value:t},e.children)},p="mdxType",b={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,o=e.mdxType,r=e.originalType,c=e.parentName,i=d(e,["components","mdxType","originalType","parentName"]),p=s(a),m=o,g=p["".concat(c,".").concat(m)]||p[m]||b[m]||r;return a?n.createElement(g,l(l({ref:t},i),{},{components:a})):n.createElement(g,l({ref:t},i))}));function g(e,t){var a=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=a.length,l=new Array(r);l[0]=m;var d={};for(var c in t)hasOwnProperty.call(t,c)&&(d[c]=t[c]);d.originalType=e,d[p]="string"==typeof e?e:o,l[1]=d;for(var s=2;s{a.r(t),a.d(t,{Badge:()=>b,Bullet:()=>i,Details:()=>g,SpecifiedBy:()=>p,assets:()=>s,contentTitle:()=>d,default:()=>f,frontMatter:()=>l,metadata:()=>c,toc:()=>m});var n=a(87462),o=a(67294),r=a(3905);a(8209);const l={id:"data",title:"Data",hide_table_of_contents:!1},d=void 0,c={unversionedId:"build/api/schema/objects/data",id:"build/api/schema/objects/data",title:"Data",description:"[TransactionData] represents the data section for every transaction.",source:"@site/docs/build/api/schema/objects/data.mdx",sourceDirName:"build/api/schema/objects",slug:"/build/api/schema/objects/data",permalink:"/build/api/schema/objects/data",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"data",title:"Data",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"CrossValidationStamp",permalink:"/build/api/schema/objects/cross-validation-stamp"},next:{title:"Endpoint",permalink:"/build/api/schema/objects/endpoint"}},s={},i=()=>(0,r.kt)(o.Fragment,null,(0,r.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=e=>(0,r.kt)(o.Fragment,null,"Specification",(0,r.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),b=e=>(0,r.kt)(o.Fragment,null,(0,r.kt)("span",{className:e.class},e.text)),m=[{value:"Fields",id:"fields",level:3},{value:'Data.actionRecipients[Recipient] ',id:"code-style-fontweight-normal-databactionrecipientsbcoderecipient--",level:4},{value:'Data.codeString ',id:"code-style-fontweight-normal-databcodebcodestring-",level:4},{value:'Data.contentContent ',id:"code-style-fontweight-normal-databcontentbcodecontent-",level:4},{value:'Data.ledgerLedger ',id:"code-style-fontweight-normal-databledgerbcodeledger-",level:4},{value:'Data.ownerships[Ownership] ',id:"code-style-fontweight-normal-databownershipsbcodeownership--",level:4},{value:'Data.recipients[Address] ',id:"code-style-fontweight-normal-databrecipientsbcodeaddress--",level:4},{value:"Member of",id:"member-of",level:3}],g=e=>{let{dataOpen:t,dataClose:a,children:l,startOpen:d=!1}=e;const[c,s]=(0,o.useState)(d);return(0,r.kt)("details",(0,n.Z)({},c?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,r.kt)("summary",{onClick:e=>{e.preventDefault(),s((e=>!e))},style:{listStyle:"none"}},c?t:a),c&&l)},u={Bullet:i,SpecifiedBy:p,Badge:b,toc:m,Details:g},h="wrapper";function f(e){let{components:t,...a}=e;return(0,r.kt)(h,(0,n.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"[TransactionData]"," represents the data section for every transaction.\nIt includes:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Ledger: asset transfers"),(0,r.kt)("li",{parentName:"ul"},"Code: smart contract code (hexadecimal),"),(0,r.kt)("li",{parentName:"ul"},"Content: free zone for data hosting (string or hexadecimal)"),(0,r.kt)("li",{parentName:"ul"},"Ownership: authorization/delegations containing list of secrets and their authorized public keys to proof the ownership"),(0,r.kt)("li",{parentName:"ul"},"Recipients: For non asset transfers, the list of recipients of the transaction (e.g Smart contract interactions)")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-graphql"},"type Data {\n actionRecipients: [Recipient]\n code: String\n content: Content\n ledger: Ledger\n ownerships: [Ownership]\n recipients: [Address]\n}\n")),(0,r.kt)("h3",{id:"fields"},"Fields"),(0,r.kt)("h4",{id:"code-style-fontweight-normal-databactionrecipientsbcoderecipient--"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"Data.",(0,r.kt)("b",null,"actionRecipients"))),(0,r.kt)(i,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/recipient"},(0,r.kt)("inlineCode",{parentName:"a"},"[Recipient]"))," ",(0,r.kt)(b,{class:"badge badge--secondary",text:"list",mdxType:"Badge"})," ",(0,r.kt)(b,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-databcodebcodestring-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"Data.",(0,r.kt)("b",null,"code"))),(0,r.kt)(i,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/string"},(0,r.kt)("inlineCode",{parentName:"a"},"String"))," ",(0,r.kt)(b,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-databcontentbcodecontent-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"Data.",(0,r.kt)("b",null,"content"))),(0,r.kt)(i,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/content"},(0,r.kt)("inlineCode",{parentName:"a"},"Content"))," ",(0,r.kt)(b,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-databledgerbcodeledger-"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"Data.",(0,r.kt)("b",null,"ledger"))),(0,r.kt)(i,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/ledger"},(0,r.kt)("inlineCode",{parentName:"a"},"Ledger"))," ",(0,r.kt)(b,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-databownershipsbcodeownership--"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"Data.",(0,r.kt)("b",null,"ownerships"))),(0,r.kt)(i,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/ownership"},(0,r.kt)("inlineCode",{parentName:"a"},"[Ownership]"))," ",(0,r.kt)(b,{class:"badge badge--secondary",text:"list",mdxType:"Badge"})," ",(0,r.kt)(b,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h4",{id:"code-style-fontweight-normal-databrecipientsbcodeaddress--"},(0,r.kt)("a",{parentName:"h4",href:"#"},(0,r.kt)("code",{style:{fontWeight:"normal"}},"Data.",(0,r.kt)("b",null,"recipients"))),(0,r.kt)(i,{mdxType:"Bullet"}),(0,r.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/address"},(0,r.kt)("inlineCode",{parentName:"a"},"[Address]"))," ",(0,r.kt)(b,{class:"badge badge--secondary",text:"list",mdxType:"Badge"})," ",(0,r.kt)(b,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,r.kt)("blockquote",null),(0,r.kt)("h3",{id:"member-of"},"Member of"),(0,r.kt)("p",null,(0,r.kt)("a",{parentName:"p",href:"/build/api/schema/objects/transaction"},(0,r.kt)("inlineCode",{parentName:"a"},"Transaction"))," ",(0,r.kt)(b,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}f.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file diff --git a/assets/js/93a4d248.81051700.js b/assets/js/93a4d248.84d91c65.js similarity index 98% rename from assets/js/93a4d248.81051700.js rename to assets/js/93a4d248.84d91c65.js index 30b7e2ef1..552c041c5 100644 --- a/assets/js/93a4d248.81051700.js +++ b/assets/js/93a4d248.84d91c65.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9903],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>f});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function s(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var c=r.createContext({}),i=function(e){var t=r.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},p=function(e){var t=i(e.components);return r.createElement(c.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,s=e.originalType,c=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=i(a),m=n,f=u["".concat(c,".").concat(m)]||u[m]||d[m]||s;return a?r.createElement(f,o(o({ref:t},p),{},{components:a})):r.createElement(f,o({ref:t},p))}));function f(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var s=a.length,o=new Array(s);o[0]=m;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[u]="string"==typeof e?e:n,o[1]=l;for(var i=2;i{a.r(t),a.d(t,{Badge:()=>d,Bullet:()=>p,Details:()=>f,SpecifiedBy:()=>u,assets:()=>i,contentTitle:()=>l,default:()=>g,frontMatter:()=>o,metadata:()=>c,toc:()=>m});var r=a(87462),n=a(67294),s=a(3905);a(8209);const o={id:"state",title:"State",hide_table_of_contents:!1},l=void 0,c={unversionedId:"build/api/schema/scalars/state",id:"build/api/schema/scalars/state",title:"State",description:"[State] represents the smart contract state",source:"@site/docs/build/api/schema/scalars/state.mdx",sourceDirName:"build/api/schema/scalars",slug:"/build/api/schema/scalars/state",permalink:"/build/api/schema/scalars/state",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"state",title:"State",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"Sha256Hash",permalink:"/build/api/schema/scalars/sha-256-hash"},next:{title:"String",permalink:"/build/api/schema/scalars/string"}},i={},p=()=>(0,s.kt)(n.Fragment,null,(0,s.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),u=e=>(0,s.kt)(n.Fragment,null,"Specification",(0,s.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),d=e=>(0,s.kt)(n.Fragment,null,(0,s.kt)("span",{className:e.class},e.text)),m=[{value:"Member of",id:"member-of",level:3}],f=e=>{let{dataOpen:t,dataClose:a,children:o,startOpen:l=!1}=e;const[c,i]=(0,n.useState)(l);return(0,s.kt)("details",(0,r.Z)({},c?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,s.kt)("summary",{onClick:e=>{e.preventDefault(),i((e=>!e))},style:{listStyle:"none"}},c?t:a),c&&o)},b={Bullet:p,SpecifiedBy:u,Badge:d,toc:m,Details:f},y="wrapper";function g(e){let{components:t,...a}=e;return(0,s.kt)(y,(0,r.Z)({},b,a,{components:t,mdxType:"MDXLayout"}),(0,s.kt)("p",null,"[State]"," represents the smart contract state"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-graphql"},"scalar State\n")),(0,s.kt)("h3",{id:"member-of"},"Member of"),(0,s.kt)("p",null,(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/consumed-inputs"},(0,s.kt)("inlineCode",{parentName:"a"},"ConsumedInputs"))," ",(0,s.kt)(d,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/unspent-output"},(0,s.kt)("inlineCode",{parentName:"a"},"UnspentOutput"))," ",(0,s.kt)(d,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}g.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9903],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>f});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function s(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var c=r.createContext({}),i=function(e){var t=r.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},p=function(e){var t=i(e.components);return r.createElement(c.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,s=e.originalType,c=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=i(a),m=n,f=u["".concat(c,".").concat(m)]||u[m]||d[m]||s;return a?r.createElement(f,o(o({ref:t},p),{},{components:a})):r.createElement(f,o({ref:t},p))}));function f(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var s=a.length,o=new Array(s);o[0]=m;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[u]="string"==typeof e?e:n,o[1]=l;for(var i=2;i{a.r(t),a.d(t,{Badge:()=>d,Bullet:()=>p,Details:()=>f,SpecifiedBy:()=>u,assets:()=>i,contentTitle:()=>l,default:()=>g,frontMatter:()=>o,metadata:()=>c,toc:()=>m});var r=a(87462),n=a(67294),s=a(3905);a(8209);const o={id:"state",title:"State",hide_table_of_contents:!1},l=void 0,c={unversionedId:"build/api/schema/scalars/state",id:"build/api/schema/scalars/state",title:"State",description:"[State] represents the smart contract state",source:"@site/docs/build/api/schema/scalars/state.mdx",sourceDirName:"build/api/schema/scalars",slug:"/build/api/schema/scalars/state",permalink:"/build/api/schema/scalars/state",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"state",title:"State",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"Sha256Hash",permalink:"/build/api/schema/scalars/sha-256-hash"},next:{title:"String",permalink:"/build/api/schema/scalars/string"}},i={},p=()=>(0,s.kt)(n.Fragment,null,(0,s.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),u=e=>(0,s.kt)(n.Fragment,null,"Specification",(0,s.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),d=e=>(0,s.kt)(n.Fragment,null,(0,s.kt)("span",{className:e.class},e.text)),m=[{value:"Member of",id:"member-of",level:3}],f=e=>{let{dataOpen:t,dataClose:a,children:o,startOpen:l=!1}=e;const[c,i]=(0,n.useState)(l);return(0,s.kt)("details",(0,r.Z)({},c?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,s.kt)("summary",{onClick:e=>{e.preventDefault(),i((e=>!e))},style:{listStyle:"none"}},c?t:a),c&&o)},b={Bullet:p,SpecifiedBy:u,Badge:d,toc:m,Details:f},y="wrapper";function g(e){let{components:t,...a}=e;return(0,s.kt)(y,(0,r.Z)({},b,a,{components:t,mdxType:"MDXLayout"}),(0,s.kt)("p",null,"[State]"," represents the smart contract state"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-graphql"},"scalar State\n")),(0,s.kt)("h3",{id:"member-of"},"Member of"),(0,s.kt)("p",null,(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/consumed-inputs"},(0,s.kt)("inlineCode",{parentName:"a"},"ConsumedInputs"))," ",(0,s.kt)(d,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/unspent-output"},(0,s.kt)("inlineCode",{parentName:"a"},"UnspentOutput"))," ",(0,s.kt)(d,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}g.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file diff --git a/assets/js/93c272fe.44575829.js b/assets/js/93c272fe.4c9fc451.js similarity index 99% rename from assets/js/93c272fe.44575829.js rename to assets/js/93c272fe.4c9fc451.js index 042fb5fe0..689eac47c 100644 --- a/assets/js/93c272fe.44575829.js +++ b/assets/js/93c272fe.4c9fc451.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5896],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>m});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var c=a.createContext({}),l=function(e){var t=a.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=l(e.components);return a.createElement(c.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,c=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),p=l(n),h=r,m=p["".concat(c,".").concat(h)]||p[h]||u[h]||o;return n?a.createElement(m,i(i({ref:t},d),{},{components:n})):a.createElement(m,i({ref:t},d))}));function m(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=h;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[p]="string"==typeof e?e:r,i[1]=s;for(var l=2;l{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>s,toc:()=>l});var a=n(87462),r=(n(67294),n(3905));n(8209);const o={id:"smart-contracts",title:"Smart Contracts"},i=void 0,s={unversionedId:"build/smart-contracts/smart-contracts",id:"build/smart-contracts/smart-contracts",title:"Smart Contracts",description:"Smart-contracts are in computing what robots are in real life: they perform actions according to events.",source:"@site/docs/build/smart-contracts/README.md",sourceDirName:"build/smart-contracts",slug:"/build/smart-contracts/",permalink:"/build/smart-contracts/",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"smart-contracts",title:"Smart Contracts"},sidebar:"docs",previous:{title:"Javascript SDK",permalink:"/build/sdk/js"},next:{title:"Language",permalink:"/build/smart-contracts/language/"}},c={},l=[{value:"Autonomous",id:"autonomous",level:2},{value:"Modifiable:",id:"modifiable",level:2},{value:"Interpreted",id:"interpreted",level:2},{value:"Stateless",id:"stateless",level:2}],d={toc:l},p="wrapper";function u(e){let{components:t,...n}=e;return(0,r.kt)(p,(0,a.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,(0,r.kt)("em",{parentName:"p"},"Smart-contracts are in computing what robots are in real life: they perform actions according to events.")),(0,r.kt)("p",null,"Archethic Blockchain leverages next generation of smart contract to make the development of decentralized application easier to bring a mass adoption of the Blockchain technology."),(0,r.kt)("p",null,"They introduce new features to this domain:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Completly autonomous and can be triggered from internal states (date, transactions) or real life (OracleChain updates)."),(0,r.kt)("li",{parentName:"ul"},"Entirely modifiable: TransactionChains make update seamless"),(0,r.kt)("li",{parentName:"ul"},"Interpreted: Code is interpreted and atomically verified by the miners"),(0,r.kt)("li",{parentName:"ul"},"Without external reality: They are entirely based on the UTXO model and do not depend on the state of an internal database but only the transactions validated")),(0,r.kt)("p",null,"Archethic Smart Contract is defined by: ",(0,r.kt)("inlineCode",{parentName:"p"},"triggers"),", ",(0,r.kt)("inlineCode",{parentName:"p"},"conditions")," and ",(0,r.kt)("inlineCode",{parentName:"p"},"actions")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Triggers: events will automatically launch the execution of a contract."),(0,r.kt)("li",{parentName:"ul"},"Conditions: define the rules to accept new transactions (chain or UTXO)"),(0,r.kt)("li",{parentName:"ul"},"Actions: operations to perform from a trigger's calls")),(0,r.kt)("h2",{id:"autonomous"},"Autonomous"),(0,r.kt)("p",null,"Archethic smart contracts autonomous behavior is due to the capability to define different kind of triggers:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Datetime: when the current date matches this timestamp"),(0,r.kt)("li",{parentName:"ul"},"Interval: when the current dates matches this cron interval scheduler"),(0,r.kt)("li",{parentName:"ul"},"Transaction: when the contract receive a transaction in input (UTXO model)"),(0,r.kt)("li",{parentName:"ul"},"Oracle: when the OracleChain pushed new data")),(0,r.kt)("p",null,"Transactions are then created on the behalf of the contract's owner which authorized nodes to use the chain's private key to generate transaction."),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"To restrict a misusage of the user's cryptographic keys, ",(0,r.kt)("inlineCode",{parentName:"p"},"inherit conditions")," can be defined as a security guard by the contract's owner."),(0,r.kt)("p",{parentName:"admonition"},"However, in order to make contract development and improve readability, transparent inherit conditions are generated based on the action's code.\nThis verification is done during the transaction validation and the ARCH consensus with atomic commitment and ensures the next transaction of the chain respects the inherit constraints either :"),(0,r.kt)("ul",{parentName:"admonition"},(0,r.kt)("li",{parentName:"ul"},"mentioned in the code by the contract's owner"),(0,r.kt)("li",{parentName:"ul"},"derived by the action's code.")),(0,r.kt)("p",{parentName:"admonition"},"This way, users can delegate the chain's private key to the nodes with the guarantee of a good usage of the chain's identity and signature capability.")),(0,r.kt)("h2",{id:"modifiable"},"Modifiable:"),(0,r.kt)("p",null,"Archethic relies on TransactionChain which means that a smart contract can have its own transaction chain."),(0,r.kt)("p",null,"Then, it is subject to the same properties of the transaction chain: any last transaction of a chain is considered as the reference."),(0,r.kt)("p",null,"For example:"),(0,r.kt)("p",null,"We deployed a smart contract with the address ",(0,r.kt)("inlineCode",{parentName:"p"},"@Contract1"),"."),(0,r.kt)("p",null,"Then we want to add a feature or to fix an issue, we resend a transaction on this chain, and we get the new address: ",(0,r.kt)("inlineCode",{parentName:"p"},"@Contract2")),(0,r.kt)("p",null,"But clients which depends on the smart contract don't need to update their code or interaction, as each destination address is forwarded to the last one."),(0,r.kt)("p",null,"So if we send a transaction to ",(0,r.kt)("inlineCode",{parentName:"p"},"@Contract#"),", the code executed will be at ",(0,r.kt)("inlineCode",{parentName:"p"},"@Contract2")),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"Because we are not relying on internal state and database, and only with the UTXO, we don't need to provide migrations of data or funds, and neither implement cross shard synchronization")),(0,r.kt)("h2",{id:"interpreted"},"Interpreted"),(0,r.kt)("p",null,"Archethic smart contracts are interpreted instead of compiled, here are the reasons:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Interpreted code is understandable by the human, and compiled code are only understandable by the computer.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Intepreted code makes the transparency and audit of smart contracts easier as we do need to provide the source of the contracts")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Interpreted code makes verification and safety checks better, instead to execute a code in blindness, miners can step by step verify the instructions and avoid any security issues"))),(0,r.kt)("h2",{id:"stateless"},"Stateless"),(0,r.kt)("p",null,"Archethic Smart Contracts does not depend on internal state or databases, only the UTXO is used as inputs and the source of truth relies on the transactions."),(0,r.kt)("p",null,"For example, in an e-commerce smart contract, the smart-contract issued by a merchant will be able to define stocks, prices and interactions with its customers using a view which is continuously updated by the transactions validated to that same smart-contract."),(0,r.kt)("p",null,"The contract doesn't hold a given state but allows it to be calculated. In the example above, can verify the proven status of orders through validated transactions."),(0,r.kt)("p",null,"Hence, each state is irrefutable and unambiguous."),(0,r.kt)("p",null,'However, if required, we could easily make a snapshot data during time to have faster reads for archived data, by creating a new transaction on the chain.\nThis operation would serialize the "state" of a contract and be able to be queried by applications.'),(0,r.kt)("admonition",{title:"Be careful",type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"Any data processed within the contract which is not stored in the next transaction or send somewhere will be lost")))}u.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5896],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>m});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var c=a.createContext({}),l=function(e){var t=a.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=l(e.components);return a.createElement(c.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,c=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),p=l(n),h=r,m=p["".concat(c,".").concat(h)]||p[h]||u[h]||o;return n?a.createElement(m,i(i({ref:t},d),{},{components:n})):a.createElement(m,i({ref:t},d))}));function m(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=h;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[p]="string"==typeof e?e:r,i[1]=s;for(var l=2;l{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>s,toc:()=>l});var a=n(87462),r=(n(67294),n(3905));n(8209);const o={id:"smart-contracts",title:"Smart Contracts"},i=void 0,s={unversionedId:"build/smart-contracts/smart-contracts",id:"build/smart-contracts/smart-contracts",title:"Smart Contracts",description:"Smart-contracts are in computing what robots are in real life: they perform actions according to events.",source:"@site/docs/build/smart-contracts/README.md",sourceDirName:"build/smart-contracts",slug:"/build/smart-contracts/",permalink:"/build/smart-contracts/",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"smart-contracts",title:"Smart Contracts"},sidebar:"docs",previous:{title:"Javascript SDK",permalink:"/build/sdk/js"},next:{title:"Language",permalink:"/build/smart-contracts/language/"}},c={},l=[{value:"Autonomous",id:"autonomous",level:2},{value:"Modifiable:",id:"modifiable",level:2},{value:"Interpreted",id:"interpreted",level:2},{value:"Stateless",id:"stateless",level:2}],d={toc:l},p="wrapper";function u(e){let{components:t,...n}=e;return(0,r.kt)(p,(0,a.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,(0,r.kt)("em",{parentName:"p"},"Smart-contracts are in computing what robots are in real life: they perform actions according to events.")),(0,r.kt)("p",null,"Archethic Blockchain leverages next generation of smart contract to make the development of decentralized application easier to bring a mass adoption of the Blockchain technology."),(0,r.kt)("p",null,"They introduce new features to this domain:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Completly autonomous and can be triggered from internal states (date, transactions) or real life (OracleChain updates)."),(0,r.kt)("li",{parentName:"ul"},"Entirely modifiable: TransactionChains make update seamless"),(0,r.kt)("li",{parentName:"ul"},"Interpreted: Code is interpreted and atomically verified by the miners"),(0,r.kt)("li",{parentName:"ul"},"Without external reality: They are entirely based on the UTXO model and do not depend on the state of an internal database but only the transactions validated")),(0,r.kt)("p",null,"Archethic Smart Contract is defined by: ",(0,r.kt)("inlineCode",{parentName:"p"},"triggers"),", ",(0,r.kt)("inlineCode",{parentName:"p"},"conditions")," and ",(0,r.kt)("inlineCode",{parentName:"p"},"actions")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Triggers: events will automatically launch the execution of a contract."),(0,r.kt)("li",{parentName:"ul"},"Conditions: define the rules to accept new transactions (chain or UTXO)"),(0,r.kt)("li",{parentName:"ul"},"Actions: operations to perform from a trigger's calls")),(0,r.kt)("h2",{id:"autonomous"},"Autonomous"),(0,r.kt)("p",null,"Archethic smart contracts autonomous behavior is due to the capability to define different kind of triggers:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Datetime: when the current date matches this timestamp"),(0,r.kt)("li",{parentName:"ul"},"Interval: when the current dates matches this cron interval scheduler"),(0,r.kt)("li",{parentName:"ul"},"Transaction: when the contract receive a transaction in input (UTXO model)"),(0,r.kt)("li",{parentName:"ul"},"Oracle: when the OracleChain pushed new data")),(0,r.kt)("p",null,"Transactions are then created on the behalf of the contract's owner which authorized nodes to use the chain's private key to generate transaction."),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"To restrict a misusage of the user's cryptographic keys, ",(0,r.kt)("inlineCode",{parentName:"p"},"inherit conditions")," can be defined as a security guard by the contract's owner."),(0,r.kt)("p",{parentName:"admonition"},"However, in order to make contract development and improve readability, transparent inherit conditions are generated based on the action's code.\nThis verification is done during the transaction validation and the ARCH consensus with atomic commitment and ensures the next transaction of the chain respects the inherit constraints either :"),(0,r.kt)("ul",{parentName:"admonition"},(0,r.kt)("li",{parentName:"ul"},"mentioned in the code by the contract's owner"),(0,r.kt)("li",{parentName:"ul"},"derived by the action's code.")),(0,r.kt)("p",{parentName:"admonition"},"This way, users can delegate the chain's private key to the nodes with the guarantee of a good usage of the chain's identity and signature capability.")),(0,r.kt)("h2",{id:"modifiable"},"Modifiable:"),(0,r.kt)("p",null,"Archethic relies on TransactionChain which means that a smart contract can have its own transaction chain."),(0,r.kt)("p",null,"Then, it is subject to the same properties of the transaction chain: any last transaction of a chain is considered as the reference."),(0,r.kt)("p",null,"For example:"),(0,r.kt)("p",null,"We deployed a smart contract with the address ",(0,r.kt)("inlineCode",{parentName:"p"},"@Contract1"),"."),(0,r.kt)("p",null,"Then we want to add a feature or to fix an issue, we resend a transaction on this chain, and we get the new address: ",(0,r.kt)("inlineCode",{parentName:"p"},"@Contract2")),(0,r.kt)("p",null,"But clients which depends on the smart contract don't need to update their code or interaction, as each destination address is forwarded to the last one."),(0,r.kt)("p",null,"So if we send a transaction to ",(0,r.kt)("inlineCode",{parentName:"p"},"@Contract#"),", the code executed will be at ",(0,r.kt)("inlineCode",{parentName:"p"},"@Contract2")),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"Because we are not relying on internal state and database, and only with the UTXO, we don't need to provide migrations of data or funds, and neither implement cross shard synchronization")),(0,r.kt)("h2",{id:"interpreted"},"Interpreted"),(0,r.kt)("p",null,"Archethic smart contracts are interpreted instead of compiled, here are the reasons:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Interpreted code is understandable by the human, and compiled code are only understandable by the computer.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Intepreted code makes the transparency and audit of smart contracts easier as we do need to provide the source of the contracts")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Interpreted code makes verification and safety checks better, instead to execute a code in blindness, miners can step by step verify the instructions and avoid any security issues"))),(0,r.kt)("h2",{id:"stateless"},"Stateless"),(0,r.kt)("p",null,"Archethic Smart Contracts does not depend on internal state or databases, only the UTXO is used as inputs and the source of truth relies on the transactions."),(0,r.kt)("p",null,"For example, in an e-commerce smart contract, the smart-contract issued by a merchant will be able to define stocks, prices and interactions with its customers using a view which is continuously updated by the transactions validated to that same smart-contract."),(0,r.kt)("p",null,"The contract doesn't hold a given state but allows it to be calculated. In the example above, can verify the proven status of orders through validated transactions."),(0,r.kt)("p",null,"Hence, each state is irrefutable and unambiguous."),(0,r.kt)("p",null,'However, if required, we could easily make a snapshot data during time to have faster reads for archived data, by creating a new transaction on the chain.\nThis operation would serialize the "state" of a contract and be able to be queried by applications.'),(0,r.kt)("admonition",{title:"Be careful",type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"Any data processed within the contract which is not stored in the next transaction or send somewhere will be lost")))}u.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/941e9194.2674a90b.js b/assets/js/941e9194.f77cb91b.js similarity index 98% rename from assets/js/941e9194.2674a90b.js rename to assets/js/941e9194.f77cb91b.js index 13487e654..35f84e708 100644 --- a/assets/js/941e9194.2674a90b.js +++ b/assets/js/941e9194.f77cb91b.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7224],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>b});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var c=r.createContext({}),d=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},u=function(e){var t=d(e.components);return r.createElement(c.Provider,{value:t},e.children)},p="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,c=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),p=d(n),m=a,b=p["".concat(c,".").concat(m)]||p[m]||s[m]||i;return n?r.createElement(b,o(o({ref:t},u),{},{components:n})):r.createElement(b,o({ref:t},u))}));function b(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=m;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[p]="string"==typeof e?e:a,o[1]=l;for(var d=2;d{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>s,frontMatter:()=>i,metadata:()=>l,toc:()=>d});var r=n(87462),a=(n(67294),n(3905));n(8209);const i={id:"evm",title:"Evm module",sidebar_label:"Evm"},o=void 0,l={unversionedId:"build/smart-contracts/language/library/evm",id:"build/smart-contracts/language/library/evm",title:"Evm module",description:"The Evm module contains functions to deal with encoding/decoding ABI from the Ethereum Virtual Machine.",source:"@site/docs/build/smart-contracts/language/library/evm.md",sourceDirName:"build/smart-contracts/language/library",slug:"/build/smart-contracts/language/library/evm",permalink:"/build/smart-contracts/language/library/evm",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"evm",title:"Evm module",sidebar_label:"Evm"},sidebar:"docs",previous:{title:"Crypto",permalink:"/build/smart-contracts/language/library/crypto"},next:{title:"Http",permalink:"/build/smart-contracts/language/library/http"}},c={},d=[{value:"abi_encode/2",id:"abi_encode2",level:3},{value:"abi_decode/2",id:"abi_decode2",level:3}],u={toc:d},p="wrapper";function s(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The ",(0,a.kt)("inlineCode",{parentName:"p"},"Evm")," module contains functions to deal with encoding/decoding ABI from the Ethereum Virtual Machine."),(0,a.kt)("h3",{id:"abi_encode2"},"abi_encode/2"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},"Evm.abi_encode(signature, data)\n")),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"signature"),': the function or tuple signature (ex: "baz(uint,address)")'),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"data"),": the data to encode")),(0,a.kt)("p",null,"Encodes the given ",(0,a.kt)("inlineCode",{parentName:"p"},"data")," according to the ",(0,a.kt)("inlineCode",{parentName:"p"},"signature"),"."),(0,a.kt)("h3",{id:"abi_decode2"},"abi_decode/2"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},"Evm.abi_decode(signature, encoded_data)\n")),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"signature"),': the function or tuple signature (ex: "baz(uint,address)")'),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"encoded_data"),": the data to decode")),(0,a.kt)("p",null,"Decodes the given ",(0,a.kt)("inlineCode",{parentName:"p"},"encoded_data")," according to the ",(0,a.kt)("inlineCode",{parentName:"p"},"signature"),"."))}s.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7224],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>b});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var c=r.createContext({}),d=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},u=function(e){var t=d(e.components);return r.createElement(c.Provider,{value:t},e.children)},p="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,c=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),p=d(n),m=a,b=p["".concat(c,".").concat(m)]||p[m]||s[m]||i;return n?r.createElement(b,o(o({ref:t},u),{},{components:n})):r.createElement(b,o({ref:t},u))}));function b(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=m;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[p]="string"==typeof e?e:a,o[1]=l;for(var d=2;d{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>s,frontMatter:()=>i,metadata:()=>l,toc:()=>d});var r=n(87462),a=(n(67294),n(3905));n(8209);const i={id:"evm",title:"Evm module",sidebar_label:"Evm"},o=void 0,l={unversionedId:"build/smart-contracts/language/library/evm",id:"build/smart-contracts/language/library/evm",title:"Evm module",description:"The Evm module contains functions to deal with encoding/decoding ABI from the Ethereum Virtual Machine.",source:"@site/docs/build/smart-contracts/language/library/evm.md",sourceDirName:"build/smart-contracts/language/library",slug:"/build/smart-contracts/language/library/evm",permalink:"/build/smart-contracts/language/library/evm",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"evm",title:"Evm module",sidebar_label:"Evm"},sidebar:"docs",previous:{title:"Crypto",permalink:"/build/smart-contracts/language/library/crypto"},next:{title:"Http",permalink:"/build/smart-contracts/language/library/http"}},c={},d=[{value:"abi_encode/2",id:"abi_encode2",level:3},{value:"abi_decode/2",id:"abi_decode2",level:3}],u={toc:d},p="wrapper";function s(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The ",(0,a.kt)("inlineCode",{parentName:"p"},"Evm")," module contains functions to deal with encoding/decoding ABI from the Ethereum Virtual Machine."),(0,a.kt)("h3",{id:"abi_encode2"},"abi_encode/2"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},"Evm.abi_encode(signature, data)\n")),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"signature"),': the function or tuple signature (ex: "baz(uint,address)")'),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"data"),": the data to encode")),(0,a.kt)("p",null,"Encodes the given ",(0,a.kt)("inlineCode",{parentName:"p"},"data")," according to the ",(0,a.kt)("inlineCode",{parentName:"p"},"signature"),"."),(0,a.kt)("h3",{id:"abi_decode2"},"abi_decode/2"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},"Evm.abi_decode(signature, encoded_data)\n")),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"signature"),': the function or tuple signature (ex: "baz(uint,address)")'),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"encoded_data"),": the data to decode")),(0,a.kt)("p",null,"Decodes the given ",(0,a.kt)("inlineCode",{parentName:"p"},"encoded_data")," according to the ",(0,a.kt)("inlineCode",{parentName:"p"},"signature"),"."))}s.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/9bb63452.f069d5c8.js b/assets/js/9bb63452.cbf60b92.js similarity index 95% rename from assets/js/9bb63452.f069d5c8.js rename to assets/js/9bb63452.cbf60b92.js index ebd672a3a..0788d75e7 100644 --- a/assets/js/9bb63452.f069d5c8.js +++ b/assets/js/9bb63452.cbf60b92.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[974],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>m});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),l=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,c=e.originalType,p=e.parentName,u=a(e,["components","mdxType","originalType","parentName"]),s=l(r),f=o,m=s["".concat(p,".").concat(f)]||s[f]||d[f]||c;return r?n.createElement(m,i(i({ref:t},u),{},{components:r})):n.createElement(m,i({ref:t},u))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var c=r.length,i=new Array(c);i[0]=f;var a={};for(var p in t)hasOwnProperty.call(t,p)&&(a[p]=t[p]);a.originalType=e,a[s]="string"==typeof e?e:o,i[1]=a;for(var l=2;l{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>d,frontMatter:()=>c,metadata:()=>a,toc:()=>l});var n=r(87462),o=(r(67294),r(3905));r(8209);const c={id:"p2p",title:"P2P"},i=void 0,a={unversionedId:"build/core/p2p/p2p",id:"build/core/p2p/p2p",title:"P2P",description:"",source:"@site/docs/build/core/p2p/README.md",sourceDirName:"build/core/p2p",slug:"/build/core/p2p/",permalink:"/build/core/p2p/",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"p2p",title:"P2P"},sidebar:"docs",previous:{title:"Service",permalink:"/build/core/oracle-chain/service"},next:{title:"Messaging",permalink:"/build/core/p2p/messaging"}},p={},l=[],u={toc:l},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.kt)(s,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}))}d.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[974],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>m});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),l=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,c=e.originalType,p=e.parentName,u=a(e,["components","mdxType","originalType","parentName"]),s=l(r),f=o,m=s["".concat(p,".").concat(f)]||s[f]||d[f]||c;return r?n.createElement(m,i(i({ref:t},u),{},{components:r})):n.createElement(m,i({ref:t},u))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var c=r.length,i=new Array(c);i[0]=f;var a={};for(var p in t)hasOwnProperty.call(t,p)&&(a[p]=t[p]);a.originalType=e,a[s]="string"==typeof e?e:o,i[1]=a;for(var l=2;l{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>d,frontMatter:()=>c,metadata:()=>a,toc:()=>l});var n=r(87462),o=(r(67294),r(3905));r(8209);const c={id:"p2p",title:"P2P"},i=void 0,a={unversionedId:"build/core/p2p/p2p",id:"build/core/p2p/p2p",title:"P2P",description:"",source:"@site/docs/build/core/p2p/README.md",sourceDirName:"build/core/p2p",slug:"/build/core/p2p/",permalink:"/build/core/p2p/",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"p2p",title:"P2P"},sidebar:"docs",previous:{title:"Service",permalink:"/build/core/oracle-chain/service"},next:{title:"Messaging",permalink:"/build/core/p2p/messaging"}},p={},l=[],u={toc:l},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.kt)(s,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}))}d.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file diff --git a/assets/js/9c94cf05.539d3fd6.js b/assets/js/9c94cf05.af791dd2.js similarity index 97% rename from assets/js/9c94cf05.539d3fd6.js rename to assets/js/9c94cf05.af791dd2.js index 8de0d2702..2e1394de0 100644 --- a/assets/js/9c94cf05.539d3fd6.js +++ b/assets/js/9c94cf05.af791dd2.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9559],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>f});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),c=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},d=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),p=c(n),m=a,f=p["".concat(s,".").concat(m)]||p[m]||u[m]||i;return n?r.createElement(f,o(o({ref:t},d),{},{components:n})):r.createElement(f,o({ref:t},d))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[p]="string"==typeof e?e:a,o[1]=l;for(var c=2;c{n.r(t),n.d(t,{Badge:()=>u,Bullet:()=>d,Details:()=>f,SpecifiedBy:()=>p,assets:()=>c,contentTitle:()=>l,default:()=>g,frontMatter:()=>o,metadata:()=>s,toc:()=>m});var r=n(87462),a=n(67294),i=n(3905);n(8209);const o={id:"skip",title:"skip",hide_table_of_contents:!1},l=void 0,s={unversionedId:"build/api/schema/directives/skip",id:"build/api/schema/directives/skip",title:"skip",description:"Directs the executor to skip this field or fragment when the if argument is true.",source:"@site/docs/build/api/schema/directives/skip.mdx",sourceDirName:"build/api/schema/directives",slug:"/build/api/schema/directives/skip",permalink:"/build/api/schema/directives/skip",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"skip",title:"skip",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"include",permalink:"/build/api/schema/directives/include"},next:{title:"ErrorContext",permalink:"/build/api/schema/enums/error-context"}},c={},d=()=>(0,i.kt)(a.Fragment,null,(0,i.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=e=>(0,i.kt)(a.Fragment,null,"Specification",(0,i.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,i.kt)(a.Fragment,null,(0,i.kt)("span",{className:e.class},e.text)),m=[{value:"Arguments",id:"arguments",level:3},{value:'skip.ifBoolean! ',id:"code-style-fontweight-normal-skipbifbcodeboolean--",level:4}],f=e=>{let{dataOpen:t,dataClose:n,children:o,startOpen:l=!1}=e;const[s,c]=(0,a.useState)(l);return(0,i.kt)("details",(0,r.Z)({},s?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,i.kt)("summary",{onClick:e=>{e.preventDefault(),c((e=>!e))},style:{listStyle:"none"}},s?t:n),s&&o)},b={Bullet:d,SpecifiedBy:p,Badge:u,toc:m,Details:f},k="wrapper";function g(e){let{components:t,...n}=e;return(0,i.kt)(k,(0,r.Z)({},b,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"Directs the executor to skip this field or fragment when the ",(0,i.kt)("inlineCode",{parentName:"p"},"if")," argument is true."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-graphql"},"directive @skip(\n if: Boolean!\n) on \n | FIELD\n | FRAGMENT_SPREAD\n | INLINE_FRAGMENT\n")),(0,i.kt)("h3",{id:"arguments"},"Arguments"),(0,i.kt)("h4",{id:"code-style-fontweight-normal-skipbifbcodeboolean--"},(0,i.kt)("a",{parentName:"h4",href:"#"},(0,i.kt)("code",{style:{fontWeight:"normal"}},"skip.",(0,i.kt)("b",null,"if"))),(0,i.kt)(d,{mdxType:"Bullet"}),(0,i.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/boolean"},(0,i.kt)("inlineCode",{parentName:"a"},"Boolean!"))," ",(0,i.kt)(u,{class:"badge badge--secondary",text:"non-null",mdxType:"Badge"})," ",(0,i.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,i.kt)("blockquote",null,(0,i.kt)("p",{parentName:"blockquote"},"Skipped when true.")))}g.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9559],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>f});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),c=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},d=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),p=c(n),m=a,f=p["".concat(s,".").concat(m)]||p[m]||u[m]||i;return n?r.createElement(f,o(o({ref:t},d),{},{components:n})):r.createElement(f,o({ref:t},d))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[p]="string"==typeof e?e:a,o[1]=l;for(var c=2;c{n.r(t),n.d(t,{Badge:()=>u,Bullet:()=>d,Details:()=>f,SpecifiedBy:()=>p,assets:()=>c,contentTitle:()=>l,default:()=>g,frontMatter:()=>o,metadata:()=>s,toc:()=>m});var r=n(87462),a=n(67294),i=n(3905);n(8209);const o={id:"skip",title:"skip",hide_table_of_contents:!1},l=void 0,s={unversionedId:"build/api/schema/directives/skip",id:"build/api/schema/directives/skip",title:"skip",description:"Directs the executor to skip this field or fragment when the if argument is true.",source:"@site/docs/build/api/schema/directives/skip.mdx",sourceDirName:"build/api/schema/directives",slug:"/build/api/schema/directives/skip",permalink:"/build/api/schema/directives/skip",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"skip",title:"skip",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"include",permalink:"/build/api/schema/directives/include"},next:{title:"ErrorContext",permalink:"/build/api/schema/enums/error-context"}},c={},d=()=>(0,i.kt)(a.Fragment,null,(0,i.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=e=>(0,i.kt)(a.Fragment,null,"Specification",(0,i.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,i.kt)(a.Fragment,null,(0,i.kt)("span",{className:e.class},e.text)),m=[{value:"Arguments",id:"arguments",level:3},{value:'skip.ifBoolean! ',id:"code-style-fontweight-normal-skipbifbcodeboolean--",level:4}],f=e=>{let{dataOpen:t,dataClose:n,children:o,startOpen:l=!1}=e;const[s,c]=(0,a.useState)(l);return(0,i.kt)("details",(0,r.Z)({},s?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,i.kt)("summary",{onClick:e=>{e.preventDefault(),c((e=>!e))},style:{listStyle:"none"}},s?t:n),s&&o)},b={Bullet:d,SpecifiedBy:p,Badge:u,toc:m,Details:f},k="wrapper";function g(e){let{components:t,...n}=e;return(0,i.kt)(k,(0,r.Z)({},b,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"Directs the executor to skip this field or fragment when the ",(0,i.kt)("inlineCode",{parentName:"p"},"if")," argument is true."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-graphql"},"directive @skip(\n if: Boolean!\n) on \n | FIELD\n | FRAGMENT_SPREAD\n | INLINE_FRAGMENT\n")),(0,i.kt)("h3",{id:"arguments"},"Arguments"),(0,i.kt)("h4",{id:"code-style-fontweight-normal-skipbifbcodeboolean--"},(0,i.kt)("a",{parentName:"h4",href:"#"},(0,i.kt)("code",{style:{fontWeight:"normal"}},"skip.",(0,i.kt)("b",null,"if"))),(0,i.kt)(d,{mdxType:"Bullet"}),(0,i.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/boolean"},(0,i.kt)("inlineCode",{parentName:"a"},"Boolean!"))," ",(0,i.kt)(u,{class:"badge badge--secondary",text:"non-null",mdxType:"Badge"})," ",(0,i.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,i.kt)("blockquote",null,(0,i.kt)("p",{parentName:"blockquote"},"Skipped when true.")))}g.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/9c964f59.9b7322b2.js b/assets/js/9c964f59.83a02b6c.js similarity index 99% rename from assets/js/9c964f59.9b7322b2.js rename to assets/js/9c964f59.83a02b6c.js index c87db6a37..827a21ff4 100644 --- a/assets/js/9c964f59.9b7322b2.js +++ b/assets/js/9c964f59.83a02b6c.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8715],{3905:(e,t,a)=>{a.d(t,{Zo:()=>i,kt:()=>u});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function s(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var c=n.createContext({}),d=function(e){var t=n.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):s(s({},t),e)),a},i=function(e){var t=d(e.components);return n.createElement(c.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},b=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,c=e.parentName,i=l(e,["components","mdxType","originalType","parentName"]),p=d(a),b=r,u=p["".concat(c,".").concat(b)]||p[b]||m[b]||o;return a?n.createElement(u,s(s({ref:t},i),{},{components:a})):n.createElement(u,s({ref:t},i))}));function u(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,s=new Array(o);s[0]=b;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[p]="string"==typeof e?e:r,s[1]=l;for(var d=2;d{a.r(t),a.d(t,{Badge:()=>m,Bullet:()=>i,Details:()=>u,SpecifiedBy:()=>p,assets:()=>d,contentTitle:()=>l,default:()=>g,frontMatter:()=>s,metadata:()=>c,toc:()=>b});var n=a(87462),r=a(67294),o=a(3905);a(8209);const s={id:"int",title:"Int",hide_table_of_contents:!1},l=void 0,c={unversionedId:"build/api/schema/scalars/int",id:"build/api/schema/scalars/int",title:"Int",description:"The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.",source:"@site/docs/build/api/schema/scalars/int.mdx",sourceDirName:"build/api/schema/scalars",slug:"/build/api/schema/scalars/int",permalink:"/build/api/schema/scalars/int",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"int",title:"Int",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"Hex",permalink:"/build/api/schema/scalars/hex"},next:{title:"NonNegInteger",permalink:"/build/api/schema/scalars/non-neg-integer"}},d={},i=()=>(0,o.kt)(r.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=e=>(0,o.kt)(r.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),m=e=>(0,o.kt)(r.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),b=[{value:"Member of",id:"member-of",level:3}],u=e=>{let{dataOpen:t,dataClose:a,children:s,startOpen:l=!1}=e;const[c,d]=(0,r.useState)(l);return(0,o.kt)("details",(0,n.Z)({},c?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),d((e=>!e))},style:{listStyle:"none"}},c?t:a),c&&s)},k={Bullet:i,SpecifiedBy:p,Badge:m,toc:b,Details:u},y="wrapper";function g(e){let{components:t,...a}=e;return(0,o.kt)(y,(0,n.Z)({},k,a,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"The ",(0,o.kt)("inlineCode",{parentName:"p"},"Int")," scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"scalar Int\n")),(0,o.kt)("h3",{id:"member-of"},"Member of"),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/balance"},(0,o.kt)("inlineCode",{parentName:"a"},"Balance"))," ",(0,o.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,o.kt)(i,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/beacon-chain-summary"},(0,o.kt)("inlineCode",{parentName:"a"},"BeaconChainSummary"))," ",(0,o.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,o.kt)(i,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/consumed-inputs"},(0,o.kt)("inlineCode",{parentName:"a"},"ConsumedInputs"))," ",(0,o.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,o.kt)(i,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/endpoint"},(0,o.kt)("inlineCode",{parentName:"a"},"Endpoint"))," ",(0,o.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,o.kt)(i,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/error-details"},(0,o.kt)("inlineCode",{parentName:"a"},"ErrorDetails"))," ",(0,o.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,o.kt)(i,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/ledger-operations"},(0,o.kt)("inlineCode",{parentName:"a"},"LedgerOperations"))," ",(0,o.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,o.kt)(i,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/node"},(0,o.kt)("inlineCode",{parentName:"a"},"Node"))," ",(0,o.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,o.kt)(i,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/token"},(0,o.kt)("inlineCode",{parentName:"a"},"Token"))," ",(0,o.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,o.kt)(i,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/token-balance"},(0,o.kt)("inlineCode",{parentName:"a"},"TokenBalance"))," ",(0,o.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,o.kt)(i,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/token-transfer"},(0,o.kt)("inlineCode",{parentName:"a"},"TokenTransfer"))," ",(0,o.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,o.kt)(i,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/transaction"},(0,o.kt)("inlineCode",{parentName:"a"},"Transaction"))," ",(0,o.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,o.kt)(i,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/transaction-attestation"},(0,o.kt)("inlineCode",{parentName:"a"},"TransactionAttestation"))," ",(0,o.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,o.kt)(i,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/transaction-input"},(0,o.kt)("inlineCode",{parentName:"a"},"TransactionInput"))," ",(0,o.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,o.kt)(i,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/transaction-movement"},(0,o.kt)("inlineCode",{parentName:"a"},"TransactionMovement"))," ",(0,o.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,o.kt)(i,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/transaction-summary"},(0,o.kt)("inlineCode",{parentName:"a"},"TransactionSummary"))," ",(0,o.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,o.kt)(i,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/uco-transfer"},(0,o.kt)("inlineCode",{parentName:"a"},"UcoTransfer"))," ",(0,o.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,o.kt)(i,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/unspent-output"},(0,o.kt)("inlineCode",{parentName:"a"},"UnspentOutput"))," ",(0,o.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,o.kt)(i,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/validation-stamp"},(0,o.kt)("inlineCode",{parentName:"a"},"ValidationStamp"))," ",(0,o.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}g.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8715],{3905:(e,t,a)=>{a.d(t,{Zo:()=>i,kt:()=>u});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function s(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var c=n.createContext({}),d=function(e){var t=n.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):s(s({},t),e)),a},i=function(e){var t=d(e.components);return n.createElement(c.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},b=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,c=e.parentName,i=l(e,["components","mdxType","originalType","parentName"]),p=d(a),b=r,u=p["".concat(c,".").concat(b)]||p[b]||m[b]||o;return a?n.createElement(u,s(s({ref:t},i),{},{components:a})):n.createElement(u,s({ref:t},i))}));function u(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,s=new Array(o);s[0]=b;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[p]="string"==typeof e?e:r,s[1]=l;for(var d=2;d{a.r(t),a.d(t,{Badge:()=>m,Bullet:()=>i,Details:()=>u,SpecifiedBy:()=>p,assets:()=>d,contentTitle:()=>l,default:()=>g,frontMatter:()=>s,metadata:()=>c,toc:()=>b});var n=a(87462),r=a(67294),o=a(3905);a(8209);const s={id:"int",title:"Int",hide_table_of_contents:!1},l=void 0,c={unversionedId:"build/api/schema/scalars/int",id:"build/api/schema/scalars/int",title:"Int",description:"The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.",source:"@site/docs/build/api/schema/scalars/int.mdx",sourceDirName:"build/api/schema/scalars",slug:"/build/api/schema/scalars/int",permalink:"/build/api/schema/scalars/int",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"int",title:"Int",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"Hex",permalink:"/build/api/schema/scalars/hex"},next:{title:"NonNegInteger",permalink:"/build/api/schema/scalars/non-neg-integer"}},d={},i=()=>(0,o.kt)(r.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=e=>(0,o.kt)(r.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),m=e=>(0,o.kt)(r.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),b=[{value:"Member of",id:"member-of",level:3}],u=e=>{let{dataOpen:t,dataClose:a,children:s,startOpen:l=!1}=e;const[c,d]=(0,r.useState)(l);return(0,o.kt)("details",(0,n.Z)({},c?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),d((e=>!e))},style:{listStyle:"none"}},c?t:a),c&&s)},k={Bullet:i,SpecifiedBy:p,Badge:m,toc:b,Details:u},y="wrapper";function g(e){let{components:t,...a}=e;return(0,o.kt)(y,(0,n.Z)({},k,a,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"The ",(0,o.kt)("inlineCode",{parentName:"p"},"Int")," scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"scalar Int\n")),(0,o.kt)("h3",{id:"member-of"},"Member of"),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/balance"},(0,o.kt)("inlineCode",{parentName:"a"},"Balance"))," ",(0,o.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,o.kt)(i,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/beacon-chain-summary"},(0,o.kt)("inlineCode",{parentName:"a"},"BeaconChainSummary"))," ",(0,o.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,o.kt)(i,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/consumed-inputs"},(0,o.kt)("inlineCode",{parentName:"a"},"ConsumedInputs"))," ",(0,o.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,o.kt)(i,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/endpoint"},(0,o.kt)("inlineCode",{parentName:"a"},"Endpoint"))," ",(0,o.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,o.kt)(i,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/error-details"},(0,o.kt)("inlineCode",{parentName:"a"},"ErrorDetails"))," ",(0,o.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,o.kt)(i,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/ledger-operations"},(0,o.kt)("inlineCode",{parentName:"a"},"LedgerOperations"))," ",(0,o.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,o.kt)(i,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/node"},(0,o.kt)("inlineCode",{parentName:"a"},"Node"))," ",(0,o.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,o.kt)(i,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/token"},(0,o.kt)("inlineCode",{parentName:"a"},"Token"))," ",(0,o.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,o.kt)(i,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/token-balance"},(0,o.kt)("inlineCode",{parentName:"a"},"TokenBalance"))," ",(0,o.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,o.kt)(i,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/token-transfer"},(0,o.kt)("inlineCode",{parentName:"a"},"TokenTransfer"))," ",(0,o.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,o.kt)(i,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/transaction"},(0,o.kt)("inlineCode",{parentName:"a"},"Transaction"))," ",(0,o.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,o.kt)(i,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/transaction-attestation"},(0,o.kt)("inlineCode",{parentName:"a"},"TransactionAttestation"))," ",(0,o.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,o.kt)(i,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/transaction-input"},(0,o.kt)("inlineCode",{parentName:"a"},"TransactionInput"))," ",(0,o.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,o.kt)(i,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/transaction-movement"},(0,o.kt)("inlineCode",{parentName:"a"},"TransactionMovement"))," ",(0,o.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,o.kt)(i,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/transaction-summary"},(0,o.kt)("inlineCode",{parentName:"a"},"TransactionSummary"))," ",(0,o.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,o.kt)(i,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/uco-transfer"},(0,o.kt)("inlineCode",{parentName:"a"},"UcoTransfer"))," ",(0,o.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,o.kt)(i,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/unspent-output"},(0,o.kt)("inlineCode",{parentName:"a"},"UnspentOutput"))," ",(0,o.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,o.kt)(i,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/validation-stamp"},(0,o.kt)("inlineCode",{parentName:"a"},"ValidationStamp"))," ",(0,o.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}g.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file diff --git a/assets/js/9d5784d1.12c52e82.js b/assets/js/9d5784d1.5a8f1d95.js similarity index 98% rename from assets/js/9d5784d1.12c52e82.js rename to assets/js/9d5784d1.5a8f1d95.js index e70240916..f1438e4b9 100644 --- a/assets/js/9d5784d1.12c52e82.js +++ b/assets/js/9d5784d1.5a8f1d95.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7028],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>b});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),u=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,l=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),s=u(r),f=o,b=s["".concat(l,".").concat(f)]||s[f]||d[f]||i;return r?n.createElement(b,a(a({ref:t},p),{},{components:r})):n.createElement(b,a({ref:t},p))}));function b(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=f;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[s]="string"==typeof e?e:o,a[1]=c;for(var u=2;u{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>d,frontMatter:()=>i,metadata:()=>c,toc:()=>u});var n=r(87462),o=(r(67294),r(3905));r(8209);const i={id:"go",title:"Go SDK"},a=void 0,c={unversionedId:"build/sdk/go",id:"build/sdk/go",title:"Go SDK",description:"Archethic Blockchain Official Go SDK is available on Github",source:"@site/docs/build/sdk/go.md",sourceDirName:"build/sdk",slug:"/build/sdk/go",permalink:"/build/sdk/go",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"go",title:"Go SDK"},sidebar:"docs",previous:{title:"Dart SDK",permalink:"/build/sdk/dart"},next:{title:"Javascript SDK",permalink:"/build/sdk/js"}},l={},u=[],p={toc:u},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.kt)(s,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Archethic Blockchain Official Go SDK is available on ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/libgo"},"Github")),(0,o.kt)("hr",null),(0,o.kt)("p",null,"This SDK will help you to generate transaction on top of Archethic Blockchain."))}d.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7028],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>b});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),u=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,l=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),s=u(r),f=o,b=s["".concat(l,".").concat(f)]||s[f]||d[f]||i;return r?n.createElement(b,a(a({ref:t},p),{},{components:r})):n.createElement(b,a({ref:t},p))}));function b(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=f;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[s]="string"==typeof e?e:o,a[1]=c;for(var u=2;u{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>d,frontMatter:()=>i,metadata:()=>c,toc:()=>u});var n=r(87462),o=(r(67294),r(3905));r(8209);const i={id:"go",title:"Go SDK"},a=void 0,c={unversionedId:"build/sdk/go",id:"build/sdk/go",title:"Go SDK",description:"Archethic Blockchain Official Go SDK is available on Github",source:"@site/docs/build/sdk/go.md",sourceDirName:"build/sdk",slug:"/build/sdk/go",permalink:"/build/sdk/go",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"go",title:"Go SDK"},sidebar:"docs",previous:{title:"Dart SDK",permalink:"/build/sdk/dart"},next:{title:"Javascript SDK",permalink:"/build/sdk/js"}},l={},u=[],p={toc:u},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.kt)(s,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Archethic Blockchain Official Go SDK is available on ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/libgo"},"Github")),(0,o.kt)("hr",null),(0,o.kt)("p",null,"This SDK will help you to generate transaction on top of Archethic Blockchain."))}d.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file diff --git a/assets/js/9de09737.ac0b77d9.js b/assets/js/9de09737.462de350.js similarity index 98% rename from assets/js/9de09737.ac0b77d9.js rename to assets/js/9de09737.462de350.js index d4e5ee986..ae77c1268 100644 --- a/assets/js/9de09737.ac0b77d9.js +++ b/assets/js/9de09737.462de350.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6783],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>h});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),c=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},k=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),p=c(n),k=r,h=p["".concat(l,".").concat(k)]||p[k]||u[k]||o;return n?a.createElement(h,i(i({ref:t},d),{},{components:n})):a.createElement(h,i({ref:t},d))}));function h(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=k;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[p]="string"==typeof e?e:r,i[1]=s;for(var c=2;c{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>s,toc:()=>c});var a=n(87462),r=(n(67294),n(3905));n(8209);const o={id:"transaction-types",title:"Transaction types",sidebar_position:4},i=void 0,s={unversionedId:"learn/transaction-types",id:"learn/transaction-types",title:"Transaction types",description:"The transaction's type is used to give a hint on what the transaction contains. Some types must respect some conditions.",source:"@site/docs/learn/transaction-types.md",sourceDirName:"learn",slug:"/learn/transaction-types",permalink:"/learn/transaction-types",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",sidebarPosition:4,frontMatter:{id:"transaction-types",title:"Transaction types",sidebar_position:4},sidebar:"docs",previous:{title:"Transaction fees",permalink:"/learn/fee"},next:{title:"ARCH consensus",permalink:"/learn/arch-consensus/"}},l={},c=[{value:"node (network)",id:"node-network",level:2},{value:"node_shared_secrets (network)",id:"node_shared_secrets-network",level:2},{value:"node_rewards (network)",id:"node_rewards-network",level:2},{value:"mint_rewards (network)",id:"mint_rewards-network",level:2},{value:"oracle (network)",id:"oracle-network",level:2},{value:"oracle_summary (network)",id:"oracle_summary-network",level:2},{value:"code_proposal (network)",id:"code_proposal-network",level:2},{value:"code_approval (network)",id:"code_approval-network",level:2},{value:"origin (network)",id:"origin-network",level:2},{value:"keychain",id:"keychain",level:2},{value:"keychain_access",id:"keychain_access",level:2},{value:"transfer",id:"transfer",level:2},{value:"token",id:"token",level:2},{value:"hosting",id:"hosting",level:2},{value:"data",id:"data",level:2},{value:"contract",id:"contract",level:2}],d={toc:c},p="wrapper";function u(e){let{components:t,...n}=e;return(0,r.kt)(p,(0,a.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"The transaction's type is used to give a hint on what the transaction contains. Some types must respect some conditions. "),(0,r.kt)("p",null,"There are 2 categories of transaction types, the network transactions and the others:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"network transactions: every nodes in the network must replicate them"),(0,r.kt)("li",{parentName:"ul"},"others: only elected nodes must replicate them")),(0,r.kt)("h2",{id:"node-network"},"node (network)"),(0,r.kt)("p",null,"Only nodes are allowed to create a node transaction. It contains the information about a running node. It is sent when a node joins or when it changes its network configuration."),(0,r.kt)("h2",{id:"node_shared_secrets-network"},"node_shared_secrets (network)"),(0,r.kt)("p",null,"This daily (11:30pm) transaction provides a shared secret to all the running nodes."),(0,r.kt)("h2",{id:"node_rewards-network"},"node_rewards (network)"),(0,r.kt)("p",null,"This daily (02:00am) transaction rewards the nodes by sending them some MUCOs based on their uptime."),(0,r.kt)("h2",{id:"mint_rewards-network"},"mint_rewards (network)"),(0,r.kt)("p",null,"This daily (02:00am) transaction mints some MUCOs. The amount minted is the same as the amount of UCO burned previous day."),(0,r.kt)("h2",{id:"oracle-network"},"oracle (network)"),(0,r.kt)("p",null,"This transaction fetch some off-chain data and provides it in the content. It is sent every minutes. Please note that the oracle content may not always contain the same information. For example the UCO price is only sent if it changes."),(0,r.kt)("h2",{id:"oracle_summary-network"},"oracle_summary (network)"),(0,r.kt)("p",null,"This daily (00:00am) transaction aggregates all oracles transaction of the previous day."),(0,r.kt)("h2",{id:"code_proposal-network"},"code_proposal (network)"),(0,r.kt)("p",null,"This transaction contains a diff (code change) to be applied on the nodes. It then need to be approved before it is applied."),(0,r.kt)("h2",{id:"code_approval-network"},"code_approval (network)"),(0,r.kt)("p",null,"This transaction is used to approve a ",(0,r.kt)("inlineCode",{parentName:"p"},"code_proposal"),". Once a threshold is passed, the diff is applied to all nodes."),(0,r.kt)("h2",{id:"origin-network"},"origin (network)"),(0,r.kt)("p",null,"TODO"),(0,r.kt)("h2",{id:"keychain"},"keychain"),(0,r.kt)("p",null,"This transaction is created when creating a wallet. It is used to be able to receive/send UCOs and Tokens."),(0,r.kt)("h2",{id:"keychain_access"},"keychain_access"),(0,r.kt)("p",null,"This transaction defines the authorization of a ",(0,r.kt)("inlineCode",{parentName:"p"},"keychain"),"."),(0,r.kt)("h2",{id:"transfer"},"transfer"),(0,r.kt)("p",null,"This transaction contains either at least, one ",(0,r.kt)("inlineCode",{parentName:"p"},"uco_transfer"),", one ",(0,r.kt)("inlineCode",{parentName:"p"},"token_transfer")," or one ",(0,r.kt)("inlineCode",{parentName:"p"},"recipient"),"."),(0,r.kt)("h2",{id:"token"},"token"),(0,r.kt)("p",null,"This transaction defines a ",(0,r.kt)("a",{parentName:"p",href:"/learn/token"},"Token"),"."),(0,r.kt)("h2",{id:"hosting"},"hosting"),(0,r.kt)("p",null,"This transaction is a ",(0,r.kt)("a",{parentName:"p",href:"/participate/aeweb"},"AEWeb")," transaction. Read ",(0,r.kt)("a",{parentName:"p",href:"/participate/aeweb/how-it-works"},"How it works")," for the details."),(0,r.kt)("h2",{id:"data"},"data"),(0,r.kt)("p",null,"This transaction contains either a ",(0,r.kt)("inlineCode",{parentName:"p"},"content")," or at least one ",(0,r.kt)("inlineCode",{parentName:"p"},"ownership"),"."),(0,r.kt)("h2",{id:"contract"},"contract"),(0,r.kt)("p",null,"This transaction contains a contract in the ",(0,r.kt)("inlineCode",{parentName:"p"},"code")," field."))}u.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6783],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>h});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),c=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},k=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),p=c(n),k=r,h=p["".concat(l,".").concat(k)]||p[k]||u[k]||o;return n?a.createElement(h,i(i({ref:t},d),{},{components:n})):a.createElement(h,i({ref:t},d))}));function h(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=k;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[p]="string"==typeof e?e:r,i[1]=s;for(var c=2;c{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>s,toc:()=>c});var a=n(87462),r=(n(67294),n(3905));n(8209);const o={id:"transaction-types",title:"Transaction types",sidebar_position:4},i=void 0,s={unversionedId:"learn/transaction-types",id:"learn/transaction-types",title:"Transaction types",description:"The transaction's type is used to give a hint on what the transaction contains. Some types must respect some conditions.",source:"@site/docs/learn/transaction-types.md",sourceDirName:"learn",slug:"/learn/transaction-types",permalink:"/learn/transaction-types",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",sidebarPosition:4,frontMatter:{id:"transaction-types",title:"Transaction types",sidebar_position:4},sidebar:"docs",previous:{title:"Transaction fees",permalink:"/learn/fee"},next:{title:"ARCH consensus",permalink:"/learn/arch-consensus/"}},l={},c=[{value:"node (network)",id:"node-network",level:2},{value:"node_shared_secrets (network)",id:"node_shared_secrets-network",level:2},{value:"node_rewards (network)",id:"node_rewards-network",level:2},{value:"mint_rewards (network)",id:"mint_rewards-network",level:2},{value:"oracle (network)",id:"oracle-network",level:2},{value:"oracle_summary (network)",id:"oracle_summary-network",level:2},{value:"code_proposal (network)",id:"code_proposal-network",level:2},{value:"code_approval (network)",id:"code_approval-network",level:2},{value:"origin (network)",id:"origin-network",level:2},{value:"keychain",id:"keychain",level:2},{value:"keychain_access",id:"keychain_access",level:2},{value:"transfer",id:"transfer",level:2},{value:"token",id:"token",level:2},{value:"hosting",id:"hosting",level:2},{value:"data",id:"data",level:2},{value:"contract",id:"contract",level:2}],d={toc:c},p="wrapper";function u(e){let{components:t,...n}=e;return(0,r.kt)(p,(0,a.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"The transaction's type is used to give a hint on what the transaction contains. Some types must respect some conditions. "),(0,r.kt)("p",null,"There are 2 categories of transaction types, the network transactions and the others:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"network transactions: every nodes in the network must replicate them"),(0,r.kt)("li",{parentName:"ul"},"others: only elected nodes must replicate them")),(0,r.kt)("h2",{id:"node-network"},"node (network)"),(0,r.kt)("p",null,"Only nodes are allowed to create a node transaction. It contains the information about a running node. It is sent when a node joins or when it changes its network configuration."),(0,r.kt)("h2",{id:"node_shared_secrets-network"},"node_shared_secrets (network)"),(0,r.kt)("p",null,"This daily (11:30pm) transaction provides a shared secret to all the running nodes."),(0,r.kt)("h2",{id:"node_rewards-network"},"node_rewards (network)"),(0,r.kt)("p",null,"This daily (02:00am) transaction rewards the nodes by sending them some MUCOs based on their uptime."),(0,r.kt)("h2",{id:"mint_rewards-network"},"mint_rewards (network)"),(0,r.kt)("p",null,"This daily (02:00am) transaction mints some MUCOs. The amount minted is the same as the amount of UCO burned previous day."),(0,r.kt)("h2",{id:"oracle-network"},"oracle (network)"),(0,r.kt)("p",null,"This transaction fetch some off-chain data and provides it in the content. It is sent every minutes. Please note that the oracle content may not always contain the same information. For example the UCO price is only sent if it changes."),(0,r.kt)("h2",{id:"oracle_summary-network"},"oracle_summary (network)"),(0,r.kt)("p",null,"This daily (00:00am) transaction aggregates all oracles transaction of the previous day."),(0,r.kt)("h2",{id:"code_proposal-network"},"code_proposal (network)"),(0,r.kt)("p",null,"This transaction contains a diff (code change) to be applied on the nodes. It then need to be approved before it is applied."),(0,r.kt)("h2",{id:"code_approval-network"},"code_approval (network)"),(0,r.kt)("p",null,"This transaction is used to approve a ",(0,r.kt)("inlineCode",{parentName:"p"},"code_proposal"),". Once a threshold is passed, the diff is applied to all nodes."),(0,r.kt)("h2",{id:"origin-network"},"origin (network)"),(0,r.kt)("p",null,"TODO"),(0,r.kt)("h2",{id:"keychain"},"keychain"),(0,r.kt)("p",null,"This transaction is created when creating a wallet. It is used to be able to receive/send UCOs and Tokens."),(0,r.kt)("h2",{id:"keychain_access"},"keychain_access"),(0,r.kt)("p",null,"This transaction defines the authorization of a ",(0,r.kt)("inlineCode",{parentName:"p"},"keychain"),"."),(0,r.kt)("h2",{id:"transfer"},"transfer"),(0,r.kt)("p",null,"This transaction contains either at least, one ",(0,r.kt)("inlineCode",{parentName:"p"},"uco_transfer"),", one ",(0,r.kt)("inlineCode",{parentName:"p"},"token_transfer")," or one ",(0,r.kt)("inlineCode",{parentName:"p"},"recipient"),"."),(0,r.kt)("h2",{id:"token"},"token"),(0,r.kt)("p",null,"This transaction defines a ",(0,r.kt)("a",{parentName:"p",href:"/learn/token"},"Token"),"."),(0,r.kt)("h2",{id:"hosting"},"hosting"),(0,r.kt)("p",null,"This transaction is a ",(0,r.kt)("a",{parentName:"p",href:"/participate/aeweb"},"AEWeb")," transaction. Read ",(0,r.kt)("a",{parentName:"p",href:"/participate/aeweb/how-it-works"},"How it works")," for the details."),(0,r.kt)("h2",{id:"data"},"data"),(0,r.kt)("p",null,"This transaction contains either a ",(0,r.kt)("inlineCode",{parentName:"p"},"content")," or at least one ",(0,r.kt)("inlineCode",{parentName:"p"},"ownership"),"."),(0,r.kt)("h2",{id:"contract"},"contract"),(0,r.kt)("p",null,"This transaction contains a contract in the ",(0,r.kt)("inlineCode",{parentName:"p"},"code")," field."))}u.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/9e3de0ed.7deaec72.js b/assets/js/9e3de0ed.f650d8ae.js similarity index 99% rename from assets/js/9e3de0ed.7deaec72.js rename to assets/js/9e3de0ed.f650d8ae.js index ff98fa473..bc07d3eeb 100644 --- a/assets/js/9e3de0ed.7deaec72.js +++ b/assets/js/9e3de0ed.f650d8ae.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4435],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>f});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=r.createContext({}),l=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},p=function(e){var t=l(e.components);return r.createElement(s.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,s=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),d=l(a),h=n,f=d["".concat(s,".").concat(h)]||d[h]||u[h]||i;return a?r.createElement(f,o(o({ref:t},p),{},{components:a})):r.createElement(f,o({ref:t},p))}));function f(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=h;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[d]="string"==typeof e?e:n,o[1]=c;for(var l=2;l{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>c,toc:()=>l});var r=a(87462),n=(a(67294),a(3905));a(8209);const i={id:"dex",title:"Archethic DEX (aeSwap)"},o="aeSwap DEX Documentation",c={unversionedId:"participate/dex/dex",id:"participate/dex/dex",title:"Archethic DEX (aeSwap)",description:"Welcome to aeSwap, the decentralized exchange (DEX) platform powered by the Archethic Public Blockchain.",source:"@site/docs/participate/dex/README.md",sourceDirName:"participate/dex",slug:"/participate/dex/",permalink:"/participate/dex/",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"dex",title:"Archethic DEX (aeSwap)"},sidebar:"docs",previous:{title:"Archethic's CLI",permalink:"/participate/cli/"},next:{title:"Protocol Overview",permalink:"/participate/dex/Overview/protocol_overview"}},s={},l=[{value:"What is a Decentralized Exchange (DEX)?",id:"what-is-a-decentralized-exchange-dex",level:2},{value:"Key Features of aeSwap",id:"key-features-of-aeswap",level:2},{value:"How to access",id:"how-to-access",level:2},{value:"FAQ",id:"faq",level:2}],p={toc:l},d="wrapper";function u(e){let{components:t,...a}=e;return(0,n.kt)(d,(0,r.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"aeswap-dex-documentation"},"aeSwap DEX Documentation"),(0,n.kt)("p",null,"Welcome to ",(0,n.kt)("strong",{parentName:"p"},"aeSwap, the decentralized exchange (DEX) platform powered by the Archethic Public Blockchain"),"."),(0,n.kt)("p",null,"aeSwap utilizes an Automated Market Maker (AMM) model to facilitate seamless swapping of assets, liquidity provision, and access to yield farming opportunities for users."),(0,n.kt)("p",null,"Designed with security, low transaction fees, and a high-quality user experience in mind, aeSwap represents a cornerstone of the Archethic Decentralized Finance (DeFi) ecosystem."),(0,n.kt)("h2",{id:"what-is-a-decentralized-exchange-dex"},"What is a Decentralized Exchange (DEX)?"),(0,n.kt)("p",null,"A Decentralized Exchange (DEX) is a type of cryptocurrency exchange that operates without a central governing body, allowing users to conduct peer-to-peer transactions directly from their wallets. Unlike traditional exchanges, DEXs do not hold user funds, positions, or information, and transactions are facilitated through smart contracts on a blockchain."),(0,n.kt)("p",null,"DEXs offer a higher degree of privacy and security compared to centralized exchanges, as they do not require users to transfer their assets to the exchange before trading. This mitigates the risk of hacking, fraud, and mismanagement that can occur with centralized platforms."),(0,n.kt)("h2",{id:"key-features-of-aeswap"},"Key Features of aeSwap"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Swapping Tokens"),": Users can easily swap between different tokens on the Archethic Public Blockchain, with the platform automatically calculating the best available rates."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Adding Liquidity"),": Participants can provide liquidity to various pools by depositing token pairs, thereby facilitating trading on the platform and earning transaction fees as rewards."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Removing Liquidity"),": Liquidity providers can withdraw their deposited tokens from liquidity pools, along with any earned fees, at any time."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Yield Farming"),": Users can engage in yield farming strategies to earn additional rewards by providing liquidity to selected pools."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Security"),": Built on the highly secure Archethic Public Blockchain, aeSwap offers robust protection against common security threats in the DeFi space."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Low Fees"),": Thanks to the efficiency of the Archethic Public Blockchain, transaction fees on aeSwap are kept to a minimum, enhancing profitability for users."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Seamless Experience"),": The platform's user interface is designed for ease of use, making it accessible to both beginners and experienced DeFi enthusiasts.")),(0,n.kt)("p",null,"aeSwap leverages the unique features of the Archethic Public Blockchain to provide a decentralized trading platform that is not only efficient and cost-effective but also open and accessible to a wide range of users, from casual traders to serious DeFi participants."),(0,n.kt)("h2",{id:"how-to-access"},"How to access"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"URL"),": ",(0,n.kt)("a",{parentName:"li",href:"https://dex.archethic.net"},"https://dex.archethic.net")),(0,n.kt)("li",{parentName:"ul"},"If you'd like to test the application or take advantage of the latest features under development, you can safely use the application in the testnet: ",(0,n.kt)("a",{parentName:"li",href:"https://dex.testnet.archethic.net"},"https://dex.testnet.archethic.net")," ")),(0,n.kt)("p",null,"This document aims to provide a comprehensive guide to using aeSwap, including an introduction to the necessary concepts, step-by-step guides for interacting with the platform, and technical references for deeper integration and development purposes."),(0,n.kt)("h2",{id:"faq"},"FAQ"),(0,n.kt)("p",null,"For further information, please refer to the ",(0,n.kt)("a",{parentName:"p",href:"/FAQ/dex"},"FAQ"),"."))}u.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4435],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>f});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=r.createContext({}),l=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},p=function(e){var t=l(e.components);return r.createElement(s.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,s=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),d=l(a),h=n,f=d["".concat(s,".").concat(h)]||d[h]||u[h]||i;return a?r.createElement(f,o(o({ref:t},p),{},{components:a})):r.createElement(f,o({ref:t},p))}));function f(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=h;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[d]="string"==typeof e?e:n,o[1]=c;for(var l=2;l{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>c,toc:()=>l});var r=a(87462),n=(a(67294),a(3905));a(8209);const i={id:"dex",title:"Archethic DEX (aeSwap)"},o="aeSwap DEX Documentation",c={unversionedId:"participate/dex/dex",id:"participate/dex/dex",title:"Archethic DEX (aeSwap)",description:"Welcome to aeSwap, the decentralized exchange (DEX) platform powered by the Archethic Public Blockchain.",source:"@site/docs/participate/dex/README.md",sourceDirName:"participate/dex",slug:"/participate/dex/",permalink:"/participate/dex/",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"dex",title:"Archethic DEX (aeSwap)"},sidebar:"docs",previous:{title:"Archethic's CLI",permalink:"/participate/cli/"},next:{title:"Protocol Overview",permalink:"/participate/dex/Overview/protocol_overview"}},s={},l=[{value:"What is a Decentralized Exchange (DEX)?",id:"what-is-a-decentralized-exchange-dex",level:2},{value:"Key Features of aeSwap",id:"key-features-of-aeswap",level:2},{value:"How to access",id:"how-to-access",level:2},{value:"FAQ",id:"faq",level:2}],p={toc:l},d="wrapper";function u(e){let{components:t,...a}=e;return(0,n.kt)(d,(0,r.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"aeswap-dex-documentation"},"aeSwap DEX Documentation"),(0,n.kt)("p",null,"Welcome to ",(0,n.kt)("strong",{parentName:"p"},"aeSwap, the decentralized exchange (DEX) platform powered by the Archethic Public Blockchain"),"."),(0,n.kt)("p",null,"aeSwap utilizes an Automated Market Maker (AMM) model to facilitate seamless swapping of assets, liquidity provision, and access to yield farming opportunities for users."),(0,n.kt)("p",null,"Designed with security, low transaction fees, and a high-quality user experience in mind, aeSwap represents a cornerstone of the Archethic Decentralized Finance (DeFi) ecosystem."),(0,n.kt)("h2",{id:"what-is-a-decentralized-exchange-dex"},"What is a Decentralized Exchange (DEX)?"),(0,n.kt)("p",null,"A Decentralized Exchange (DEX) is a type of cryptocurrency exchange that operates without a central governing body, allowing users to conduct peer-to-peer transactions directly from their wallets. Unlike traditional exchanges, DEXs do not hold user funds, positions, or information, and transactions are facilitated through smart contracts on a blockchain."),(0,n.kt)("p",null,"DEXs offer a higher degree of privacy and security compared to centralized exchanges, as they do not require users to transfer their assets to the exchange before trading. This mitigates the risk of hacking, fraud, and mismanagement that can occur with centralized platforms."),(0,n.kt)("h2",{id:"key-features-of-aeswap"},"Key Features of aeSwap"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Swapping Tokens"),": Users can easily swap between different tokens on the Archethic Public Blockchain, with the platform automatically calculating the best available rates."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Adding Liquidity"),": Participants can provide liquidity to various pools by depositing token pairs, thereby facilitating trading on the platform and earning transaction fees as rewards."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Removing Liquidity"),": Liquidity providers can withdraw their deposited tokens from liquidity pools, along with any earned fees, at any time."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Yield Farming"),": Users can engage in yield farming strategies to earn additional rewards by providing liquidity to selected pools."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Security"),": Built on the highly secure Archethic Public Blockchain, aeSwap offers robust protection against common security threats in the DeFi space."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Low Fees"),": Thanks to the efficiency of the Archethic Public Blockchain, transaction fees on aeSwap are kept to a minimum, enhancing profitability for users."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Seamless Experience"),": The platform's user interface is designed for ease of use, making it accessible to both beginners and experienced DeFi enthusiasts.")),(0,n.kt)("p",null,"aeSwap leverages the unique features of the Archethic Public Blockchain to provide a decentralized trading platform that is not only efficient and cost-effective but also open and accessible to a wide range of users, from casual traders to serious DeFi participants."),(0,n.kt)("h2",{id:"how-to-access"},"How to access"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"URL"),": ",(0,n.kt)("a",{parentName:"li",href:"https://dex.archethic.net"},"https://dex.archethic.net")),(0,n.kt)("li",{parentName:"ul"},"If you'd like to test the application or take advantage of the latest features under development, you can safely use the application in the testnet: ",(0,n.kt)("a",{parentName:"li",href:"https://dex.testnet.archethic.net"},"https://dex.testnet.archethic.net")," ")),(0,n.kt)("p",null,"This document aims to provide a comprehensive guide to using aeSwap, including an introduction to the necessary concepts, step-by-step guides for interacting with the platform, and technical references for deeper integration and development purposes."),(0,n.kt)("h2",{id:"faq"},"FAQ"),(0,n.kt)("p",null,"For further information, please refer to the ",(0,n.kt)("a",{parentName:"p",href:"/FAQ/dex"},"FAQ"),"."))}u.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file diff --git a/assets/js/9ffe0250.c35837a4.js b/assets/js/9ffe0250.a96e3596.js similarity index 99% rename from assets/js/9ffe0250.c35837a4.js rename to assets/js/9ffe0250.a96e3596.js index 4145e74df..be925cc95 100644 --- a/assets/js/9ffe0250.c35837a4.js +++ b/assets/js/9ffe0250.a96e3596.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7817],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>m});var i=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function n(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,i)}return a}function o(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var s=i.createContext({}),d=function(e){var t=i.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},c=function(e){var t=d(e.components);return i.createElement(s.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},h=i.forwardRef((function(e,t){var a=e.components,r=e.mdxType,n=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),u=d(a),h=r,m=u["".concat(s,".").concat(h)]||u[h]||p[h]||n;return a?i.createElement(m,o(o({ref:t},c),{},{components:a})):i.createElement(m,o({ref:t},c))}));function m(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var n=a.length,o=new Array(n);o[0]=h;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:r,o[1]=l;for(var d=2;d{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>p,frontMatter:()=>n,metadata:()=>l,toc:()=>d});var i=a(87462),r=(a(67294),a(3905));a(8209);const n={title:"Farming",id:"farming",sidebar_label:"Farming"},o="Farming",l={unversionedId:"participate/dex/Guide_Usage/farming",id:"participate/dex/Guide_Usage/farming",title:"Farming",description:"Our new farming system is built around levels, each with a different reward distribution weight. The higher the level you choose, the longer the locking period for your liquidity pairs, but the greater the rewards you will earn.",source:"@site/docs/participate/dex/05-Guide_Usage/03-farming.md",sourceDirName:"participate/dex/05-Guide_Usage",slug:"/participate/dex/Guide_Usage/farming",permalink:"/participate/dex/Guide_Usage/farming",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",sidebarPosition:3,frontMatter:{title:"Farming",id:"farming",sidebar_label:"Farming"},sidebar:"docs",previous:{title:"Liquidity Pool",permalink:"/participate/dex/Guide_Usage/liquidity_pool"},next:{title:"Archethic Wallet (aeWallet)",permalink:"/participate/wallet/"}},s={},d=[{value:"Detailed Breakdown",id:"detailed-breakdown",level:2},{value:"Deposits & Rewards",id:"deposits--rewards",level:3},{value:"Level-Based System",id:"level-based-system",level:3},{value:"Locking Periods",id:"locking-periods",level:3},{value:"Flexibility to Level Up",id:"flexibility-to-level-up",level:3},{value:"Unlocking Rewards",id:"unlocking-rewards",level:3},{value:"Dashboard",id:"dashboard",level:2},{value:"Liquidity pool section",id:"liquidity-pool-section",level:3},{value:"Farm pool section",id:"farm-pool-section",level:3},{value:"Navigating Farm Lock Information",id:"navigating-farm-lock-information",level:4},{value:"Front View: Essential Farm Details",id:"front-view-essential-farm-details",level:5},{value:"Back View: Additional Farm Insights",id:"back-view-additional-farm-insights",level:6},{value:"Balances summary section",id:"balances-summary-section",level:3},{value:"Farmed Tokens Summary section",id:"farmed-tokens-summary-section",level:3},{value:"Deposits table",id:"deposits-table",level:3},{value:"Interacting with Farms: Available Actions",id:"interacting-with-farms-available-actions",level:3}],c={toc:d},u="wrapper";function p(e){let{components:t,...n}=e;return(0,r.kt)(u,(0,i.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"farming"},"Farming"),(0,r.kt)("p",null,"Our new farming system is built around levels, each with a different reward distribution weight. The higher the level you choose, the longer the locking period for your liquidity pairs, but the greater the rewards you will earn."),(0,r.kt)("p",null,"To achieve major milestones by 2026, we\u2019ve revised our token distribution. Initially, we planned to distribute 9 million $UCO per year over 10 years, specifically allocated to staking."),(0,r.kt)("p",null,"However, we will now distribute the tokens over 4 years to boost APR and liquidity. In the first farming phase over 2 months, we already distributed 2.5 million $UCO. Here is the planned token allocation for the coming years:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Year 1: 45 million UCO tokens"),(0,r.kt)("li",{parentName:"ul"},"Year 2: 22.5 million UCO tokens"),(0,r.kt)("li",{parentName:"ul"},"Year 3: 11.25 million UCO tokens"),(0,r.kt)("li",{parentName:"ul"},"Year 4: 8.75 million UCO tokens")),(0,r.kt)("p",null,"You can manage the farming from the EARN menu or from pool aeETH/UCO card."),(0,r.kt)("h2",{id:"detailed-breakdown"},"Detailed Breakdown"),(0,r.kt)("h3",{id:"deposits--rewards"},"Deposits & Rewards"),(0,r.kt)("p",null,"Deposits begin on 25/07/2024, and rewards start on 01/08/2024."),(0,r.kt)("h3",{id:"level-based-system"},"Level-Based System"),(0,r.kt)("p",null,"The new farming mechanism involves different levels, each offering a unique reward distribution weight. Higher levels require longer locking periods for your liquidity pairs, but they provide higher rewards and a better Annual Percentage Rate (APR). This system is recalculated in real time to ensure fairness."),(0,r.kt)("h3",{id:"locking-periods"},"Locking Periods"),(0,r.kt)("p",null,"When depositing your LP tokens, you can choose from the following locking periods, each with specific conditions:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"1 week: 7 days lock period."),(0,r.kt)("li",{parentName:"ul"},"1 month: 30 days lock period."),(0,r.kt)("li",{parentName:"ul"},"3 months: 90 days lock period."),(0,r.kt)("li",{parentName:"ul"},"6 months: 180 days lock period."),(0,r.kt)("li",{parentName:"ul"},"1 year: 365 days lock period."),(0,r.kt)("li",{parentName:"ul"},"2 years: 730 days lock period."),(0,r.kt)("li",{parentName:"ul"},"3 years (default value): 1095 days lock period.")),(0,r.kt)("h3",{id:"flexibility-to-level-up"},"Flexibility to Level Up"),(0,r.kt)("p",null,"UCO holders can choose to level up at any time. When leveling up, you can select a longer locking period than your current one. This resets the lock duration for your LP tokens to the new chosen period, but it also unlocks your current rewards. If you choose not to level up, both your LP tokens and rewards remain locked until the end of the current period."),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"Your level is based on the duration for which your assets are locked.",(0,r.kt)("br",null),'\nYour level will therefore gradually decrease until it reaches Level 0 (= "available"), at which point you will be able to withdraw your LP tokens.'),(0,r.kt)("p",{parentName:"admonition"},"Example: If you locked your assets for 3 years (Level 7) one year ago, your remaining lock time is now 2 years, so your holdings will automatically be adjusted to Level 6.")),(0,r.kt)("h3",{id:"unlocking-rewards"},"Unlocking Rewards"),(0,r.kt)("p",null,"Rewards are tied to the LP tokens and will be released when the LP tokens are withdrawn at the end of the locking period. However, leveling up allows you to unlock and claim your rewards immediately while committing to a new locking period."),(0,r.kt)("h2",{id:"dashboard"},"Dashboard"),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"Farm Lock Dashboard",src:a(13576).Z,width:"1477",height:"727"})),(0,r.kt)("p",null,"When you click on the EARN menu, you are directed to the dedicated farming page related to the aeETH/UCO liquidity pool. The dashboard is divided into several sections:"),(0,r.kt)("h3",{id:"liquidity-pool-section"},"Liquidity pool section"),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"Farm Lock Dashboard - Liquidity pool section",src:a(14734).Z,width:"467",height:"319"})),(0,r.kt)("p",null,"This section pertains to the liquidity pool linked with the farm and provides the following features:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Token Pair Display"),": Shows the pair of tokens involved in the pool."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Info Button"),": Allows you to view detailed information about the pool."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Add Button"),": Enables you to add liquidity directly to the pool."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Withdraw Button"),": Lets you withdraw your liquidity from the pool.\nFor more detailed information on managing liquidity pools, ",(0,r.kt)("a",{parentName:"li",href:"/participate/dex/Guide_Usage/liquidity_pool"},"please refer to the liquidity pool documentation"),".")),(0,r.kt)("h3",{id:"farm-pool-section"},"Farm pool section"),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"Farm Lock Dashboard - Farm section",src:a(47598).Z,width:"462",height:"316"})),(0,r.kt)("p",null,"This section contains information related to the farm. It describes the ",(0,r.kt)("strong",{parentName:"p"},"reward token (UCO)")," and displays the ",(0,r.kt)("strong",{parentName:"p"},"3-year APR")," (",(0,r.kt)("em",{parentName:"p"},"please refer to the application for the exact percentage"),"). "),(0,r.kt)("p",null,"There are three available functions:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Farm Legacy Info Button"),": Allows you to access the card containing information about the farm that was open between 05/17/2024 and 07/17/2024."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Add Button"),": Enables you to add LP tokens to the farm for a given period or on a flexible basis."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Farm Lock Info Button"),": Lets you view the information related to the farm.")),(0,r.kt)("h4",{id:"navigating-farm-lock-information"},"Navigating Farm Lock Information"),(0,r.kt)("p",null,'aeSwap offers a unique and engaging way to access detailed information about each farm through an interactive card. You can easily explore this card by clicking on the turn icon to "rotate" the view, revealing comprehensive details about the farms in a visually intuitive manner.'),(0,r.kt)("h5",{id:"front-view-essential-farm-details"},"Front View: Essential Farm Details"),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"Farm Lock Card - Front",src:a(7654).Z,width:"569",height:"515"})),(0,r.kt)("p",null,"When viewing the front of the card, users are provided with a comprehensive overview designed to deliver essential information about each farm quickly and effectively:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Token Pair and Logos"),": The farm is represented by its token pair, accompanied by their logos when available, for straightforward identification."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Farm Address"),": Displayed prominently for easy reference. Accompanying the address, an icon for quick copying allows users to easily share or save the address. - Additionally, a separate icon links directly to the blockchain explorer, where users can delve into full details and analytics of the farm. "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"LP Token Address"),": Displayed prominently for easy reference. Accompanying the address, an icon for quick copying allows users to easily share or save the address. - Additionally, a separate icon links directly to the blockchain explorer, where users can delve into full details and analytics of the LP Token. "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Reward Token"),": The specific token awarded as a reward in the farm is shown, informing users of the type of rewards they can expect."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Opening Period"),": Indicates the operational timeframe of the farm, letting users know when the farm is active for deposits and reward collection."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Remaining reward"),": Displays the remaining rewards in the farm."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Distributed Rewards"),": The total number of rewards that have been distributed to all participants so far, highlighting the farm's generosity and attractiveness."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Total Deposited LP Tokens"),": Indicates the total amount of LP tokens that have been deposited into the farm by all users, offering a perspective on the farm's scale and user participation.")),(0,r.kt)("h6",{id:"back-view-additional-farm-insights"},"Back View: Additional Farm Insights"),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"Farm Lock Card - Back",src:a(60692).Z,width:"566",height:"524"})),(0,r.kt)("p",null,"On this side of the card, users can explore parameters by level:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Holders"),": This corresponds to the number of positions held at the level."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Weight"),": The weight of the level."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"LP Token Deposited"),": The number of LP tokens deposited at the level.")),(0,r.kt)("h3",{id:"balances-summary-section"},"Balances summary section"),(0,r.kt)("p",null,"This section provides an overview of your balances for the two tokens in the pool (aeETH and UCO), as well as your LP token balance."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"Farm Lock Dashboard - Balances section",src:a(66426).Z,width:"470",height:"156"})),(0,r.kt)("h3",{id:"farmed-tokens-summary-section"},"Farmed Tokens Summary section"),(0,r.kt)("p",null,"This section provides a comprehensive overview of your total investment in the farm, expressed in dollars. It includes a detailed breakdown of both the invested capital and the rewards that can be earned."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"Farm Lock Dashboard - Farmed Tokens Summary section",src:a(5184).Z,width:"467",height:"161"})),(0,r.kt)("h3",{id:"deposits-table"},"Deposits table"),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"Farm Lock Dashboard - Deposist table",src:a(32810).Z,width:"1429",height:"311"})),(0,r.kt)("p",null,"The table displays all current deposits. The available information includes:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Amount"),": The number of LP tokens deposited."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Estimated Rewards"),": The current estimated rewards. This amount will increase over time until the end of the lock period. ",(0,r.kt)("strong",{parentName:"li"},"Rewards are calculated hourly"),"."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Unlocks In"),": The remaining time before the LP tokens and associated rewards are released."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Level"),": Your current level. If your level is not at the maximum, you have the option to relock your LP tokens at any time for a period longer than the current one. Increasing the lock duration will raise your level."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"APR"),": The estimated Annual Percentage Rate."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Level Up Button"),": Allows you to increase your level by relocking your LP tokens for a period longer than the current lock duration."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Withdraw Button"),": This feature is available when the lock period has ended or if the deposit was made on a flexible basis. It allows you to retrieve your LP tokens and send them back to your wallet. You can choose the amount to withdraw. If the maximum amount is withdrawn, the deposit entry disappears. If the amount is not fully withdrawn, rewards will be calculated on the remaining balance. When withdrawing, all calculated rewards for that deposit are provided to the user."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Claim Button"),": This feature is available when the lock period has ended or if the deposit was made on a flexible basis. It allows you to claim the rewards without affecting the number of deposited LP tokens.")),(0,r.kt)("h3",{id:"interacting-with-farms-available-actions"},"Interacting with Farms: Available Actions"),(0,r.kt)("p",null,"On aeSwap, participants have the flexibility to engage with farms through a variety of actions, each designed to suit different strategies and needs. Here\u2019s a concise overview of the options available:"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Deposit LP Tokens"),": Users can lock their liquidity provider (LP) tokens in a farm to earn rewards. This action contributes to the farm's overall health and rewards the user with tokens based on the farm's current APR. Depositing increases the total value locked (TVL) in the farm and entitles the user to a portion of the rewards generated. The chosen locking period determines the APR percentage, with longer periods yielding higher returns. Once locked, users must wait until the end of the period to obtain their rewards, with no interim retrieval possible unless they choose to level up. This incentivizes users to commit to longer locking periods for more substantial rewards."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Withdraw LP Tokens"),": When participants decide to retrieve their staked LP tokens from a farm, this action enables them to do so. Withdrawing allows users to claim back their tokens along with any rewards earned during the staking period. This action is crucial for managing your investments and realizing potential gains from the accumulation of rewards."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Claim Rewards"),": Specifically for users who want to continue staking their LP tokens but wish to collect earned rewards, this action allows for the claiming of rewards without affecting the staked LP token balance. It is a flexible option for users looking to realize immediate gains while maintaining their position in the farm."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Relock LP Tokens"),": The relock feature allows users to extend the locking period of their LP tokens beyond the initial commitment, effectively resetting the lock duration to a new, longer period. This action not only unlocks and makes available any accumulated rewards up to that point but also commits the user to a new locking period, which comes with a potentially higher APR."),(0,r.kt)("p",null,(0,r.kt)("em",{parentName:"p"},"Detailed information for each action will be provided very soon.")))}p.isMDXComponent=!0},60692:(e,t,a)=>{a.d(t,{Z:()=>i});const i=a.p+"assets/images/aeSwap-FarmLock-Back-81a7263a7b28144465d2c437a23ed5b1.png"},14734:(e,t,a)=>{a.d(t,{Z:()=>i});const i=a.p+"assets/images/aeSwap-FarmLock-Dashboard-Block1-3db0a97e582fd00f691aed863d247b2e.png"},47598:(e,t,a)=>{a.d(t,{Z:()=>i});const i=a.p+"assets/images/aeSwap-FarmLock-Dashboard-Block2-b7cc88112c64d33131058c3b9982ef00.png"},66426:(e,t,a)=>{a.d(t,{Z:()=>i});const i=a.p+"assets/images/aeSwap-FarmLock-Dashboard-Block3-bb0b5b1b724eba96e7c4fe30b1ffb224.png"},5184:(e,t,a)=>{a.d(t,{Z:()=>i});const i=a.p+"assets/images/aeSwap-FarmLock-Dashboard-Block4-0e556060516eaa83a0edcff26013ce75.png"},32810:(e,t,a)=>{a.d(t,{Z:()=>i});const i=a.p+"assets/images/aeSwap-FarmLock-Dashboard-Block5-01c4b9adfe176576c5e1933b382daafc.png"},13576:(e,t,a)=>{a.d(t,{Z:()=>i});const i=a.p+"assets/images/aeSwap-FarmLock-Dashboard-e9dfa39dcaaec568e490bc519a190133.png"},7654:(e,t,a)=>{a.d(t,{Z:()=>i});const i=a.p+"assets/images/aeSwap-FarmLock-Front-8e9ea39cf3df480108ea540d661b1416.png"},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7817],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>m});var i=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function n(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,i)}return a}function o(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var s=i.createContext({}),d=function(e){var t=i.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},c=function(e){var t=d(e.components);return i.createElement(s.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},h=i.forwardRef((function(e,t){var a=e.components,r=e.mdxType,n=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),u=d(a),h=r,m=u["".concat(s,".").concat(h)]||u[h]||p[h]||n;return a?i.createElement(m,o(o({ref:t},c),{},{components:a})):i.createElement(m,o({ref:t},c))}));function m(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var n=a.length,o=new Array(n);o[0]=h;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:r,o[1]=l;for(var d=2;d{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>p,frontMatter:()=>n,metadata:()=>l,toc:()=>d});var i=a(87462),r=(a(67294),a(3905));a(8209);const n={title:"Farming",id:"farming",sidebar_label:"Farming"},o="Farming",l={unversionedId:"participate/dex/Guide_Usage/farming",id:"participate/dex/Guide_Usage/farming",title:"Farming",description:"Our new farming system is built around levels, each with a different reward distribution weight. The higher the level you choose, the longer the locking period for your liquidity pairs, but the greater the rewards you will earn.",source:"@site/docs/participate/dex/05-Guide_Usage/03-farming.md",sourceDirName:"participate/dex/05-Guide_Usage",slug:"/participate/dex/Guide_Usage/farming",permalink:"/participate/dex/Guide_Usage/farming",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",sidebarPosition:3,frontMatter:{title:"Farming",id:"farming",sidebar_label:"Farming"},sidebar:"docs",previous:{title:"Liquidity Pool",permalink:"/participate/dex/Guide_Usage/liquidity_pool"},next:{title:"Archethic Wallet (aeWallet)",permalink:"/participate/wallet/"}},s={},d=[{value:"Detailed Breakdown",id:"detailed-breakdown",level:2},{value:"Deposits & Rewards",id:"deposits--rewards",level:3},{value:"Level-Based System",id:"level-based-system",level:3},{value:"Locking Periods",id:"locking-periods",level:3},{value:"Flexibility to Level Up",id:"flexibility-to-level-up",level:3},{value:"Unlocking Rewards",id:"unlocking-rewards",level:3},{value:"Dashboard",id:"dashboard",level:2},{value:"Liquidity pool section",id:"liquidity-pool-section",level:3},{value:"Farm pool section",id:"farm-pool-section",level:3},{value:"Navigating Farm Lock Information",id:"navigating-farm-lock-information",level:4},{value:"Front View: Essential Farm Details",id:"front-view-essential-farm-details",level:5},{value:"Back View: Additional Farm Insights",id:"back-view-additional-farm-insights",level:6},{value:"Balances summary section",id:"balances-summary-section",level:3},{value:"Farmed Tokens Summary section",id:"farmed-tokens-summary-section",level:3},{value:"Deposits table",id:"deposits-table",level:3},{value:"Interacting with Farms: Available Actions",id:"interacting-with-farms-available-actions",level:3}],c={toc:d},u="wrapper";function p(e){let{components:t,...n}=e;return(0,r.kt)(u,(0,i.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"farming"},"Farming"),(0,r.kt)("p",null,"Our new farming system is built around levels, each with a different reward distribution weight. The higher the level you choose, the longer the locking period for your liquidity pairs, but the greater the rewards you will earn."),(0,r.kt)("p",null,"To achieve major milestones by 2026, we\u2019ve revised our token distribution. Initially, we planned to distribute 9 million $UCO per year over 10 years, specifically allocated to staking."),(0,r.kt)("p",null,"However, we will now distribute the tokens over 4 years to boost APR and liquidity. In the first farming phase over 2 months, we already distributed 2.5 million $UCO. Here is the planned token allocation for the coming years:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Year 1: 45 million UCO tokens"),(0,r.kt)("li",{parentName:"ul"},"Year 2: 22.5 million UCO tokens"),(0,r.kt)("li",{parentName:"ul"},"Year 3: 11.25 million UCO tokens"),(0,r.kt)("li",{parentName:"ul"},"Year 4: 8.75 million UCO tokens")),(0,r.kt)("p",null,"You can manage the farming from the EARN menu or from pool aeETH/UCO card."),(0,r.kt)("h2",{id:"detailed-breakdown"},"Detailed Breakdown"),(0,r.kt)("h3",{id:"deposits--rewards"},"Deposits & Rewards"),(0,r.kt)("p",null,"Deposits begin on 25/07/2024, and rewards start on 01/08/2024."),(0,r.kt)("h3",{id:"level-based-system"},"Level-Based System"),(0,r.kt)("p",null,"The new farming mechanism involves different levels, each offering a unique reward distribution weight. Higher levels require longer locking periods for your liquidity pairs, but they provide higher rewards and a better Annual Percentage Rate (APR). This system is recalculated in real time to ensure fairness."),(0,r.kt)("h3",{id:"locking-periods"},"Locking Periods"),(0,r.kt)("p",null,"When depositing your LP tokens, you can choose from the following locking periods, each with specific conditions:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"1 week: 7 days lock period."),(0,r.kt)("li",{parentName:"ul"},"1 month: 30 days lock period."),(0,r.kt)("li",{parentName:"ul"},"3 months: 90 days lock period."),(0,r.kt)("li",{parentName:"ul"},"6 months: 180 days lock period."),(0,r.kt)("li",{parentName:"ul"},"1 year: 365 days lock period."),(0,r.kt)("li",{parentName:"ul"},"2 years: 730 days lock period."),(0,r.kt)("li",{parentName:"ul"},"3 years (default value): 1095 days lock period.")),(0,r.kt)("h3",{id:"flexibility-to-level-up"},"Flexibility to Level Up"),(0,r.kt)("p",null,"UCO holders can choose to level up at any time. When leveling up, you can select a longer locking period than your current one. This resets the lock duration for your LP tokens to the new chosen period, but it also unlocks your current rewards. If you choose not to level up, both your LP tokens and rewards remain locked until the end of the current period."),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"Your level is based on the duration for which your assets are locked.",(0,r.kt)("br",null),'\nYour level will therefore gradually decrease until it reaches Level 0 (= "available"), at which point you will be able to withdraw your LP tokens.'),(0,r.kt)("p",{parentName:"admonition"},"Example: If you locked your assets for 3 years (Level 7) one year ago, your remaining lock time is now 2 years, so your holdings will automatically be adjusted to Level 6.")),(0,r.kt)("h3",{id:"unlocking-rewards"},"Unlocking Rewards"),(0,r.kt)("p",null,"Rewards are tied to the LP tokens and will be released when the LP tokens are withdrawn at the end of the locking period. However, leveling up allows you to unlock and claim your rewards immediately while committing to a new locking period."),(0,r.kt)("h2",{id:"dashboard"},"Dashboard"),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"Farm Lock Dashboard",src:a(13576).Z,width:"1477",height:"727"})),(0,r.kt)("p",null,"When you click on the EARN menu, you are directed to the dedicated farming page related to the aeETH/UCO liquidity pool. The dashboard is divided into several sections:"),(0,r.kt)("h3",{id:"liquidity-pool-section"},"Liquidity pool section"),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"Farm Lock Dashboard - Liquidity pool section",src:a(14734).Z,width:"467",height:"319"})),(0,r.kt)("p",null,"This section pertains to the liquidity pool linked with the farm and provides the following features:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Token Pair Display"),": Shows the pair of tokens involved in the pool."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Info Button"),": Allows you to view detailed information about the pool."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Add Button"),": Enables you to add liquidity directly to the pool."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Withdraw Button"),": Lets you withdraw your liquidity from the pool.\nFor more detailed information on managing liquidity pools, ",(0,r.kt)("a",{parentName:"li",href:"/participate/dex/Guide_Usage/liquidity_pool"},"please refer to the liquidity pool documentation"),".")),(0,r.kt)("h3",{id:"farm-pool-section"},"Farm pool section"),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"Farm Lock Dashboard - Farm section",src:a(47598).Z,width:"462",height:"316"})),(0,r.kt)("p",null,"This section contains information related to the farm. It describes the ",(0,r.kt)("strong",{parentName:"p"},"reward token (UCO)")," and displays the ",(0,r.kt)("strong",{parentName:"p"},"3-year APR")," (",(0,r.kt)("em",{parentName:"p"},"please refer to the application for the exact percentage"),"). "),(0,r.kt)("p",null,"There are three available functions:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Farm Legacy Info Button"),": Allows you to access the card containing information about the farm that was open between 05/17/2024 and 07/17/2024."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Add Button"),": Enables you to add LP tokens to the farm for a given period or on a flexible basis."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Farm Lock Info Button"),": Lets you view the information related to the farm.")),(0,r.kt)("h4",{id:"navigating-farm-lock-information"},"Navigating Farm Lock Information"),(0,r.kt)("p",null,'aeSwap offers a unique and engaging way to access detailed information about each farm through an interactive card. You can easily explore this card by clicking on the turn icon to "rotate" the view, revealing comprehensive details about the farms in a visually intuitive manner.'),(0,r.kt)("h5",{id:"front-view-essential-farm-details"},"Front View: Essential Farm Details"),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"Farm Lock Card - Front",src:a(7654).Z,width:"569",height:"515"})),(0,r.kt)("p",null,"When viewing the front of the card, users are provided with a comprehensive overview designed to deliver essential information about each farm quickly and effectively:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Token Pair and Logos"),": The farm is represented by its token pair, accompanied by their logos when available, for straightforward identification."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Farm Address"),": Displayed prominently for easy reference. Accompanying the address, an icon for quick copying allows users to easily share or save the address. - Additionally, a separate icon links directly to the blockchain explorer, where users can delve into full details and analytics of the farm. "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"LP Token Address"),": Displayed prominently for easy reference. Accompanying the address, an icon for quick copying allows users to easily share or save the address. - Additionally, a separate icon links directly to the blockchain explorer, where users can delve into full details and analytics of the LP Token. "),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Reward Token"),": The specific token awarded as a reward in the farm is shown, informing users of the type of rewards they can expect."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Opening Period"),": Indicates the operational timeframe of the farm, letting users know when the farm is active for deposits and reward collection."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Remaining reward"),": Displays the remaining rewards in the farm."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Distributed Rewards"),": The total number of rewards that have been distributed to all participants so far, highlighting the farm's generosity and attractiveness."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Total Deposited LP Tokens"),": Indicates the total amount of LP tokens that have been deposited into the farm by all users, offering a perspective on the farm's scale and user participation.")),(0,r.kt)("h6",{id:"back-view-additional-farm-insights"},"Back View: Additional Farm Insights"),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"Farm Lock Card - Back",src:a(60692).Z,width:"566",height:"524"})),(0,r.kt)("p",null,"On this side of the card, users can explore parameters by level:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Holders"),": This corresponds to the number of positions held at the level."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Weight"),": The weight of the level."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"LP Token Deposited"),": The number of LP tokens deposited at the level.")),(0,r.kt)("h3",{id:"balances-summary-section"},"Balances summary section"),(0,r.kt)("p",null,"This section provides an overview of your balances for the two tokens in the pool (aeETH and UCO), as well as your LP token balance."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"Farm Lock Dashboard - Balances section",src:a(66426).Z,width:"470",height:"156"})),(0,r.kt)("h3",{id:"farmed-tokens-summary-section"},"Farmed Tokens Summary section"),(0,r.kt)("p",null,"This section provides a comprehensive overview of your total investment in the farm, expressed in dollars. It includes a detailed breakdown of both the invested capital and the rewards that can be earned."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"Farm Lock Dashboard - Farmed Tokens Summary section",src:a(5184).Z,width:"467",height:"161"})),(0,r.kt)("h3",{id:"deposits-table"},"Deposits table"),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"Farm Lock Dashboard - Deposist table",src:a(32810).Z,width:"1429",height:"311"})),(0,r.kt)("p",null,"The table displays all current deposits. The available information includes:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Amount"),": The number of LP tokens deposited."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Estimated Rewards"),": The current estimated rewards. This amount will increase over time until the end of the lock period. ",(0,r.kt)("strong",{parentName:"li"},"Rewards are calculated hourly"),"."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Unlocks In"),": The remaining time before the LP tokens and associated rewards are released."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Level"),": Your current level. If your level is not at the maximum, you have the option to relock your LP tokens at any time for a period longer than the current one. Increasing the lock duration will raise your level."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"APR"),": The estimated Annual Percentage Rate."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Level Up Button"),": Allows you to increase your level by relocking your LP tokens for a period longer than the current lock duration."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Withdraw Button"),": This feature is available when the lock period has ended or if the deposit was made on a flexible basis. It allows you to retrieve your LP tokens and send them back to your wallet. You can choose the amount to withdraw. If the maximum amount is withdrawn, the deposit entry disappears. If the amount is not fully withdrawn, rewards will be calculated on the remaining balance. When withdrawing, all calculated rewards for that deposit are provided to the user."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Claim Button"),": This feature is available when the lock period has ended or if the deposit was made on a flexible basis. It allows you to claim the rewards without affecting the number of deposited LP tokens.")),(0,r.kt)("h3",{id:"interacting-with-farms-available-actions"},"Interacting with Farms: Available Actions"),(0,r.kt)("p",null,"On aeSwap, participants have the flexibility to engage with farms through a variety of actions, each designed to suit different strategies and needs. Here\u2019s a concise overview of the options available:"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Deposit LP Tokens"),": Users can lock their liquidity provider (LP) tokens in a farm to earn rewards. This action contributes to the farm's overall health and rewards the user with tokens based on the farm's current APR. Depositing increases the total value locked (TVL) in the farm and entitles the user to a portion of the rewards generated. The chosen locking period determines the APR percentage, with longer periods yielding higher returns. Once locked, users must wait until the end of the period to obtain their rewards, with no interim retrieval possible unless they choose to level up. This incentivizes users to commit to longer locking periods for more substantial rewards."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Withdraw LP Tokens"),": When participants decide to retrieve their staked LP tokens from a farm, this action enables them to do so. Withdrawing allows users to claim back their tokens along with any rewards earned during the staking period. This action is crucial for managing your investments and realizing potential gains from the accumulation of rewards."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Claim Rewards"),": Specifically for users who want to continue staking their LP tokens but wish to collect earned rewards, this action allows for the claiming of rewards without affecting the staked LP token balance. It is a flexible option for users looking to realize immediate gains while maintaining their position in the farm."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Relock LP Tokens"),": The relock feature allows users to extend the locking period of their LP tokens beyond the initial commitment, effectively resetting the lock duration to a new, longer period. This action not only unlocks and makes available any accumulated rewards up to that point but also commits the user to a new locking period, which comes with a potentially higher APR."),(0,r.kt)("p",null,(0,r.kt)("em",{parentName:"p"},"Detailed information for each action will be provided very soon.")))}p.isMDXComponent=!0},60692:(e,t,a)=>{a.d(t,{Z:()=>i});const i=a.p+"assets/images/aeSwap-FarmLock-Back-81a7263a7b28144465d2c437a23ed5b1.png"},14734:(e,t,a)=>{a.d(t,{Z:()=>i});const i=a.p+"assets/images/aeSwap-FarmLock-Dashboard-Block1-3db0a97e582fd00f691aed863d247b2e.png"},47598:(e,t,a)=>{a.d(t,{Z:()=>i});const i=a.p+"assets/images/aeSwap-FarmLock-Dashboard-Block2-b7cc88112c64d33131058c3b9982ef00.png"},66426:(e,t,a)=>{a.d(t,{Z:()=>i});const i=a.p+"assets/images/aeSwap-FarmLock-Dashboard-Block3-bb0b5b1b724eba96e7c4fe30b1ffb224.png"},5184:(e,t,a)=>{a.d(t,{Z:()=>i});const i=a.p+"assets/images/aeSwap-FarmLock-Dashboard-Block4-0e556060516eaa83a0edcff26013ce75.png"},32810:(e,t,a)=>{a.d(t,{Z:()=>i});const i=a.p+"assets/images/aeSwap-FarmLock-Dashboard-Block5-01c4b9adfe176576c5e1933b382daafc.png"},13576:(e,t,a)=>{a.d(t,{Z:()=>i});const i=a.p+"assets/images/aeSwap-FarmLock-Dashboard-e9dfa39dcaaec568e490bc519a190133.png"},7654:(e,t,a)=>{a.d(t,{Z:()=>i});const i=a.p+"assets/images/aeSwap-FarmLock-Front-8e9ea39cf3df480108ea540d661b1416.png"},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file diff --git a/assets/js/a0393694.7dadc27d.js b/assets/js/a0393694.f31c259d.js similarity index 99% rename from assets/js/a0393694.7dadc27d.js rename to assets/js/a0393694.f31c259d.js index ec4fbbea5..48571f5b2 100644 --- a/assets/js/a0393694.7dadc27d.js +++ b/assets/js/a0393694.f31c259d.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1248],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>m});var n=a(67294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var c=n.createContext({}),l=function(e){var t=n.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},d=function(e){var t=l(e.components);return n.createElement(c.Provider,{value:t},e.children)},h="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var a=e.components,i=e.mdxType,r=e.originalType,c=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),h=l(a),u=i,m=h["".concat(c,".").concat(u)]||h[u]||p[u]||r;return a?n.createElement(m,o(o({ref:t},d),{},{components:a})):n.createElement(m,o({ref:t},d))}));function m(e,t){var a=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=a.length,o=new Array(r);o[0]=u;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[h]="string"==typeof e?e:i,o[1]=s;for(var l=2;l{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>p,frontMatter:()=>r,metadata:()=>s,toc:()=>l});var n=a(87462),i=(a(67294),a(3905));a(8209);const r={id:"archethic-cli",title:"Archethic's CLI"},o=void 0,s={unversionedId:"participate/cli/archethic-cli",id:"participate/cli/archethic-cli",title:"Archethic's CLI",description:"Developers like to use terminal applications to speed up their productivity, therefore Archethic have also",source:"@site/docs/participate/cli/README.md",sourceDirName:"participate/cli",slug:"/participate/cli/",permalink:"/participate/cli/",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"archethic-cli",title:"Archethic's CLI"},sidebar:"docs",previous:{title:"Usage",permalink:"/participate/bridge/usage"},next:{title:"Archethic DEX (aeSwap)",permalink:"/participate/dex/"}},c={},l=[{value:"Installation",id:"installation",level:2},{value:"Generate address",id:"generate-address",level:2},{value:"Build and send transaction",id:"build-and-send-transaction",level:2},{value:"UCO transfers",id:"uco-transfers",level:3},{value:"Token transfers",id:"token-transfers",level:3},{value:"Recipients",id:"recipients",level:3},{value:"Ownerships",id:"ownerships",level:4},{value:"Content",id:"content",level:3},{value:"Smart contract",id:"smart-contract",level:3},{value:"Sending the transaction",id:"sending-the-transaction",level:3},{value:"Keychain management",id:"keychain-management",level:2},{value:"Creating a keychain",id:"creating-a-keychain",level:3},{value:"Accessing a keychain",id:"accessing-a-keychain",level:3},{value:"Adding / removing a service",id:"adding--removing-a-service",level:3},{value:"Create a transaction for a service",id:"create-a-transaction-for-a-service",level:3},{value:"CLI - Archethic Command Line Interpreter",id:"cli---archethic-command-line-interpreter",level:2},{value:"Contribution",id:"contribution",level:2}],d={toc:l},h="wrapper";function p(e){let{components:t,...r}=e;return(0,i.kt)(h,(0,n.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"Developers like to use terminal applications to speed up their productivity, therefore Archethic have also\nits own command line interpreter is available to make interaction with the Blockchain easier for power users."),(0,i.kt)("p",null,"This tool helps you to connect to your decentralized wallet (keychain), manage it, send transactions, etc."),(0,i.kt)("h2",{id:"installation"},"Installation"),(0,i.kt)("p",null,"Download a pre-compiled binary or package from the ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/archethic-cli/releases"},"releases")," page."),(0,i.kt)("p",null,"Or install it with go:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"go install github.com/archethic-foundation/archethic-cli@latest\n")),(0,i.kt)("p",null,"Or just build it yourself (requires Go 1.18+):"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"git clone https://github.com/archethic-foundation/archethic-cli.git\ncd archethic-cli\ngo build .\n")),(0,i.kt)("hr",null),(0,i.kt)("p",null,"By default the CLI works as TUI (terminal user interface) application allowing the application to be interactive. "),(0,i.kt)("p",null,"When launching the Archethic CLI you will access to the main menu that allows you to select an action. "),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Generate an address"),(0,i.kt)("li",{parentName:"ul"},"Build and send a transaction"),(0,i.kt)("li",{parentName:"ul"},"Manage keychains (and send transaction keychains)")),(0,i.kt)("h2",{id:"generate-address"},"Generate address"),(0,i.kt)("p",null,"This generate address page allows you to get the address for a given seed, a specific index and with a given elliptic curve and hash algorithm. The default values are probably fine for elliptic curve and hash algorithm."),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"Generate address",src:a(57848).Z,width:"1334",height:"698"})),(0,i.kt)("h2",{id:"build-and-send-transaction"},"Build and send transaction"),(0,i.kt)("p",null,"This menu allows you to create a transaction. There are 7 tabs you can navigate to, by using the left and right arrows of your keyboard in order to configure your transaction."),(0,i.kt)("p",null,"This is where you set the main info (like the endpoint, the seed, the transaction type\u2026) and send the transaction. By selecting one of the default node endpoint you will have the URL to send your transaction automatically set. You will need to enter your seed. "),(0,i.kt)("p",null,"The index of the transaction will be set automatically (based on the index of the last transaction). Select one of the transaction type, regarding the type you select, you might have specific information to provide to your transaction (for example a transaction of type ",(0,i.kt)("inlineCode",{parentName:"p"},"Transfer")," needs a UCO transfer or a token transfer. "),(0,i.kt)("p",null,"The ",(0,i.kt)("inlineCode",{parentName:"p"},"Add")," buttons sends the transaction and the ",(0,i.kt)("inlineCode",{parentName:"p"},"Reset")," button clears the form."),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"Main tab",src:a(83288).Z,width:"2224",height:"1418"})),(0,i.kt)("h3",{id:"uco-transfers"},"UCO transfers"),(0,i.kt)("p",null,"This tab allows you to create UCO transfers in your transaction. Type a valid address and an amount and press the ",(0,i.kt)("inlineCode",{parentName:"p"},"Add")," button.\n",(0,i.kt)("img",{alt:"UCO transfer tab",src:a(63040).Z,width:"2224",height:"544"})),(0,i.kt)("p",null,"You will then have a list of configured UCO transfers. Using the up and down keys, you can highlight a configured transfer and delete it by typing ",(0,i.kt)("inlineCode",{parentName:"p"},"d"),"."),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"UCO transfer tab 2",src:a(75436).Z,width:"2226",height:"620"})),(0,i.kt)("h3",{id:"token-transfers"},"Token transfers"),(0,i.kt)("p",null,"The same logic applies to the token transfers tab. But you need to specify a token address and an token id."),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"Token transfers tab",src:a(86753).Z,width:"2212",height:"654"})),(0,i.kt)("h3",{id:"recipients"},"Recipients"),(0,i.kt)("p",null,"The same logic also applies to the recipients tab which targets smart contract executions."),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"Recipients tab",src:a(91699).Z,width:"2214",height:"518"})),(0,i.kt)("h4",{id:"ownerships"},"Ownerships"),(0,i.kt)("p",null,"The ownership tab contains the information about the access you give to execute your transaction. "),(0,i.kt)("admonition",{type:"info"},(0,i.kt)("p",{parentName:"admonition"},"This will be needed if you want to create a smart contract.")),(0,i.kt)("p",null,"You can define several ownerships.\nEach ownership has"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"a secret"),(0,i.kt)("li",{parentName:"ul"},"a list of authorization keys that get access to the secret. ")),(0,i.kt)("p",null,"At least one of the ownership must have the seed as a secret and the storage nouce public key as an authorization key. "),(0,i.kt)("p",null,"You can press the ",(0,i.kt)("inlineCode",{parentName:"p"},"Load Storage Nounce Public Key")," to automatically set the authorization key with the value of the storage nonce public key. (ie. for smart contract's creation key delegation) "),(0,i.kt)("admonition",{type:"info"},(0,i.kt)("p",{parentName:"admonition"},"You must have selected an endpoint in the main tab in order to load the storage nounce public key of the network you target.")),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"Ownerships tab",src:a(771).Z,width:"2216",height:"644"})),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"Ownerhips tab 2",src:a(44786).Z,width:"2222",height:"764"})),(0,i.kt)("p",null,"Pressing the ",(0,i.kt)("inlineCode",{parentName:"p"},"Add authorization key")," allows you to add a new authorization key that will get access to the secret. Once added to the list of autorized keys, you can highlight a key and press ",(0,i.kt)("inlineCode",{parentName:"p"},"d")," to delete it. "),(0,i.kt)("p",null,"Once you\u2019re done with the configuration, you can press the ",(0,i.kt)("inlineCode",{parentName:"p"},"Add")," button to add the ownership configuration to the transaction."),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"Ownerships tab 3",src:a(11100).Z,width:"2216",height:"708"})),(0,i.kt)("p",null,"And here also, if you want to delete a configured ownership, you can highlight it and press ",(0,i.kt)("inlineCode",{parentName:"p"},"d"),"."),(0,i.kt)("h3",{id:"content"},"Content"),(0,i.kt)("p",null,"The content tab allows you to set the content of the transaction. Start typing to enter the edit mode of this tab and press ",(0,i.kt)("inlineCode",{parentName:"p"},"esc")," if you want to exit the edit mode and navigate to another tab."),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"Content tab",src:a(8914).Z,width:"2214",height:"450"})),(0,i.kt)("h3",{id:"smart-contract"},"Smart contract"),(0,i.kt)("p",null,"The smart contract tab allows you to set the smart contract of the transaction. Start typing to enter the edit mode of this tab and press ",(0,i.kt)("inlineCode",{parentName:"p"},"esc")," if you want to exit the edit mode and navigate to another tab."),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"Smart contract tab",src:a(14241).Z,width:"2226",height:"446"})),(0,i.kt)("h3",{id:"sending-the-transaction"},"Sending the transaction"),(0,i.kt)("p",null,"When you\u2019re done configuring the transaction, go back to the main tab and press the ",(0,i.kt)("inlineCode",{parentName:"p"},"Add")," button."),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"Sending transaction",src:a(90941).Z,width:"2216",height:"1340"})),(0,i.kt)("h2",{id:"keychain-management"},"Keychain management"),(0,i.kt)("p",null,"The keychain management menu allows you to "),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"create a keychain with a given seed"),(0,i.kt)("li",{parentName:"ul"},"access a keychain"),(0,i.kt)("li",{parentName:"ul"},"add and remove services from a keychain"),(0,i.kt)("li",{parentName:"ul"},"send a keychain transaction for a specific service")),(0,i.kt)("p",null,"In any cases you will need to start by selecting the endpoint you want, that will automatically feed the URL of the endpoint.\nThen specify your access seed."),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"Keychain management",src:a(92603).Z,width:"356",height:"538"})),(0,i.kt)("h3",{id:"creating-a-keychain"},"Creating a keychain"),(0,i.kt)("p",null,"If you press the ",(0,i.kt)("inlineCode",{parentName:"p"},"Create keychain")," button, a new keychain will be created. And the seed you provided will be used to access it. "),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"Create a keychain",src:a(17995).Z,width:"1982",height:"814"})),(0,i.kt)("h3",{id:"accessing-a-keychain"},"Accessing a keychain"),(0,i.kt)("p",null,"Pressing the ",(0,i.kt)("inlineCode",{parentName:"p"},"Access keychain")," button will give you access to the list of services associated with your keychain (one default ",(0,i.kt)("inlineCode",{parentName:"p"},"uco")," service has been created).\n",(0,i.kt)("img",{alt:"Access a keychain",src:a(78634).Z,width:"912",height:"1162"})),(0,i.kt)("h3",{id:"adding--removing-a-service"},"Adding / removing a service"),(0,i.kt)("p",null,"If you go down to the ",(0,i.kt)("inlineCode",{parentName:"p"},"service name")," field you can type a new service name and a default derivation path will be created. If you then press the ",(0,i.kt)("inlineCode",{parentName:"p"},"Create Service"),", your new service will be displayed in the list of services."),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"Add a service",src:a(53061).Z,width:"898",height:"1212"})),(0,i.kt)("p",null,"If you highlight a service and press ",(0,i.kt)("inlineCode",{parentName:"p"},"d")," the service will be deleted."),(0,i.kt)("h3",{id:"create-a-transaction-for-a-service"},"Create a transaction for a service"),(0,i.kt)("p",null,"If you highlight a specific service and press ",(0,i.kt)("inlineCode",{parentName:"p"},"enter")," the highlighted will be selected."),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"Create a transaction for a service",src:a(92029).Z,width:"898",height:"1208"})),(0,i.kt)("p",null,"If you then press the ",(0,i.kt)("inlineCode",{parentName:"p"},"Create Transaction for Service")," button, you will get a new menu to create a transaction for the selected service."),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"Main tab of create keychain transaction",src:a(89294).Z,width:"2212",height:"870"})),(0,i.kt)("p",null,"The mechanism to configure a keychain transaction for a service is the same as the one for a transaction (described above). Only a few configuration are not possible (like the endpoint, the seed, the index and the elliptic curve)."),(0,i.kt)("h2",{id:"cli---archethic-command-line-interpreter"},"CLI - Archethic Command Line Interpreter"),(0,i.kt)("p",null,"It is also possible to call the archethic cli tool using the command line."),(0,i.kt)("p",null,"For details of available commands, you can"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"consult the ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/archethic-foundation/archethic-cli#cli"},"readme")," of the corresponding github project."),(0,i.kt)("li",{parentName:"ul"},"display help with the command ",(0,i.kt)("inlineCode",{parentName:"li"},"--help"),".")),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"Help command",src:a(32941).Z,width:"1526",height:"810"})),(0,i.kt)("h2",{id:"contribution"},"Contribution"),(0,i.kt)("p",null,"If you like this product and wish to contribute to its development, please visit our ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/archethic-cli"},"Github Page")),(0,i.kt)("p",null,"We are welcoming contributions in any forms (code, issues, documentation, ideas, question, etc.)"))}p.isMDXComponent=!0},78634:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/access_keychain-9f933a8d669d6ed955e30dd1aa169bbb.png"},53061:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/add_service-0678042a796e4c8290090dc5ecfae0d2.png"},8914:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/content-ab19f634acaad0b5246fe5983d98f129.png"},17995:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/create_keychain-8addb948180651745f730122e7bce878.png"},92029:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/create_keychain_transaction-cedc8bbccf4171fbb0dd5eda74b3736e.png"},57848:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/generate_address-ba70791dfe6de72c28139e89d1584039.png"},32941:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/help-command-a79b629216cd48d2acca13cf35714ee5.png"},92603:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/keychain_management-c8b7e23b91a14f3f555ae8a054eb7bae.png"},89294:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/main_keychain_transaction-03d95c68a9a99ad66b7321d291387d22.png"},83288:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/main_tab-5783418ecc8dd832b65d81a6579b7d19.png"},771:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/ownerships-559b27b31d1a636f3fcb406889868258.png"},44786:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/ownerships_2-3ef9c28939b2def4fb31695668e0fa15.png"},11100:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/ownerships_3-b1e74fd7bb29438106163db16673b731.png"},91699:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/recipients-b1436cd932b7a6402cd47a8f1a1860ca.png"},90941:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/sending_transaction-970c825476f166398dededfcc355d705.png"},14241:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/smart_contract-2d09068ad09c2a03858e8463b4176964.png"},86753:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/token_transfers-7387b1e8c1f1049818261970230af678.png"},63040:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/uco_transfers-c67df50fb05e1d0062ad690ce2609f34.png"},75436:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/uco_transfers_2-2f1a38a418f288087aae516f1b9e11c4.png"},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1248],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>m});var n=a(67294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var c=n.createContext({}),l=function(e){var t=n.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},d=function(e){var t=l(e.components);return n.createElement(c.Provider,{value:t},e.children)},h="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var a=e.components,i=e.mdxType,r=e.originalType,c=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),h=l(a),u=i,m=h["".concat(c,".").concat(u)]||h[u]||p[u]||r;return a?n.createElement(m,o(o({ref:t},d),{},{components:a})):n.createElement(m,o({ref:t},d))}));function m(e,t){var a=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=a.length,o=new Array(r);o[0]=u;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[h]="string"==typeof e?e:i,o[1]=s;for(var l=2;l{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>p,frontMatter:()=>r,metadata:()=>s,toc:()=>l});var n=a(87462),i=(a(67294),a(3905));a(8209);const r={id:"archethic-cli",title:"Archethic's CLI"},o=void 0,s={unversionedId:"participate/cli/archethic-cli",id:"participate/cli/archethic-cli",title:"Archethic's CLI",description:"Developers like to use terminal applications to speed up their productivity, therefore Archethic have also",source:"@site/docs/participate/cli/README.md",sourceDirName:"participate/cli",slug:"/participate/cli/",permalink:"/participate/cli/",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"archethic-cli",title:"Archethic's CLI"},sidebar:"docs",previous:{title:"Usage",permalink:"/participate/bridge/usage"},next:{title:"Archethic DEX (aeSwap)",permalink:"/participate/dex/"}},c={},l=[{value:"Installation",id:"installation",level:2},{value:"Generate address",id:"generate-address",level:2},{value:"Build and send transaction",id:"build-and-send-transaction",level:2},{value:"UCO transfers",id:"uco-transfers",level:3},{value:"Token transfers",id:"token-transfers",level:3},{value:"Recipients",id:"recipients",level:3},{value:"Ownerships",id:"ownerships",level:4},{value:"Content",id:"content",level:3},{value:"Smart contract",id:"smart-contract",level:3},{value:"Sending the transaction",id:"sending-the-transaction",level:3},{value:"Keychain management",id:"keychain-management",level:2},{value:"Creating a keychain",id:"creating-a-keychain",level:3},{value:"Accessing a keychain",id:"accessing-a-keychain",level:3},{value:"Adding / removing a service",id:"adding--removing-a-service",level:3},{value:"Create a transaction for a service",id:"create-a-transaction-for-a-service",level:3},{value:"CLI - Archethic Command Line Interpreter",id:"cli---archethic-command-line-interpreter",level:2},{value:"Contribution",id:"contribution",level:2}],d={toc:l},h="wrapper";function p(e){let{components:t,...r}=e;return(0,i.kt)(h,(0,n.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"Developers like to use terminal applications to speed up their productivity, therefore Archethic have also\nits own command line interpreter is available to make interaction with the Blockchain easier for power users."),(0,i.kt)("p",null,"This tool helps you to connect to your decentralized wallet (keychain), manage it, send transactions, etc."),(0,i.kt)("h2",{id:"installation"},"Installation"),(0,i.kt)("p",null,"Download a pre-compiled binary or package from the ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/archethic-cli/releases"},"releases")," page."),(0,i.kt)("p",null,"Or install it with go:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"go install github.com/archethic-foundation/archethic-cli@latest\n")),(0,i.kt)("p",null,"Or just build it yourself (requires Go 1.18+):"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"git clone https://github.com/archethic-foundation/archethic-cli.git\ncd archethic-cli\ngo build .\n")),(0,i.kt)("hr",null),(0,i.kt)("p",null,"By default the CLI works as TUI (terminal user interface) application allowing the application to be interactive. "),(0,i.kt)("p",null,"When launching the Archethic CLI you will access to the main menu that allows you to select an action. "),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Generate an address"),(0,i.kt)("li",{parentName:"ul"},"Build and send a transaction"),(0,i.kt)("li",{parentName:"ul"},"Manage keychains (and send transaction keychains)")),(0,i.kt)("h2",{id:"generate-address"},"Generate address"),(0,i.kt)("p",null,"This generate address page allows you to get the address for a given seed, a specific index and with a given elliptic curve and hash algorithm. The default values are probably fine for elliptic curve and hash algorithm."),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"Generate address",src:a(57848).Z,width:"1334",height:"698"})),(0,i.kt)("h2",{id:"build-and-send-transaction"},"Build and send transaction"),(0,i.kt)("p",null,"This menu allows you to create a transaction. There are 7 tabs you can navigate to, by using the left and right arrows of your keyboard in order to configure your transaction."),(0,i.kt)("p",null,"This is where you set the main info (like the endpoint, the seed, the transaction type\u2026) and send the transaction. By selecting one of the default node endpoint you will have the URL to send your transaction automatically set. You will need to enter your seed. "),(0,i.kt)("p",null,"The index of the transaction will be set automatically (based on the index of the last transaction). Select one of the transaction type, regarding the type you select, you might have specific information to provide to your transaction (for example a transaction of type ",(0,i.kt)("inlineCode",{parentName:"p"},"Transfer")," needs a UCO transfer or a token transfer. "),(0,i.kt)("p",null,"The ",(0,i.kt)("inlineCode",{parentName:"p"},"Add")," buttons sends the transaction and the ",(0,i.kt)("inlineCode",{parentName:"p"},"Reset")," button clears the form."),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"Main tab",src:a(83288).Z,width:"2224",height:"1418"})),(0,i.kt)("h3",{id:"uco-transfers"},"UCO transfers"),(0,i.kt)("p",null,"This tab allows you to create UCO transfers in your transaction. Type a valid address and an amount and press the ",(0,i.kt)("inlineCode",{parentName:"p"},"Add")," button.\n",(0,i.kt)("img",{alt:"UCO transfer tab",src:a(63040).Z,width:"2224",height:"544"})),(0,i.kt)("p",null,"You will then have a list of configured UCO transfers. Using the up and down keys, you can highlight a configured transfer and delete it by typing ",(0,i.kt)("inlineCode",{parentName:"p"},"d"),"."),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"UCO transfer tab 2",src:a(75436).Z,width:"2226",height:"620"})),(0,i.kt)("h3",{id:"token-transfers"},"Token transfers"),(0,i.kt)("p",null,"The same logic applies to the token transfers tab. But you need to specify a token address and an token id."),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"Token transfers tab",src:a(86753).Z,width:"2212",height:"654"})),(0,i.kt)("h3",{id:"recipients"},"Recipients"),(0,i.kt)("p",null,"The same logic also applies to the recipients tab which targets smart contract executions."),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"Recipients tab",src:a(91699).Z,width:"2214",height:"518"})),(0,i.kt)("h4",{id:"ownerships"},"Ownerships"),(0,i.kt)("p",null,"The ownership tab contains the information about the access you give to execute your transaction. "),(0,i.kt)("admonition",{type:"info"},(0,i.kt)("p",{parentName:"admonition"},"This will be needed if you want to create a smart contract.")),(0,i.kt)("p",null,"You can define several ownerships.\nEach ownership has"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"a secret"),(0,i.kt)("li",{parentName:"ul"},"a list of authorization keys that get access to the secret. ")),(0,i.kt)("p",null,"At least one of the ownership must have the seed as a secret and the storage nouce public key as an authorization key. "),(0,i.kt)("p",null,"You can press the ",(0,i.kt)("inlineCode",{parentName:"p"},"Load Storage Nounce Public Key")," to automatically set the authorization key with the value of the storage nonce public key. (ie. for smart contract's creation key delegation) "),(0,i.kt)("admonition",{type:"info"},(0,i.kt)("p",{parentName:"admonition"},"You must have selected an endpoint in the main tab in order to load the storage nounce public key of the network you target.")),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"Ownerships tab",src:a(771).Z,width:"2216",height:"644"})),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"Ownerhips tab 2",src:a(44786).Z,width:"2222",height:"764"})),(0,i.kt)("p",null,"Pressing the ",(0,i.kt)("inlineCode",{parentName:"p"},"Add authorization key")," allows you to add a new authorization key that will get access to the secret. Once added to the list of autorized keys, you can highlight a key and press ",(0,i.kt)("inlineCode",{parentName:"p"},"d")," to delete it. "),(0,i.kt)("p",null,"Once you\u2019re done with the configuration, you can press the ",(0,i.kt)("inlineCode",{parentName:"p"},"Add")," button to add the ownership configuration to the transaction."),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"Ownerships tab 3",src:a(11100).Z,width:"2216",height:"708"})),(0,i.kt)("p",null,"And here also, if you want to delete a configured ownership, you can highlight it and press ",(0,i.kt)("inlineCode",{parentName:"p"},"d"),"."),(0,i.kt)("h3",{id:"content"},"Content"),(0,i.kt)("p",null,"The content tab allows you to set the content of the transaction. Start typing to enter the edit mode of this tab and press ",(0,i.kt)("inlineCode",{parentName:"p"},"esc")," if you want to exit the edit mode and navigate to another tab."),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"Content tab",src:a(8914).Z,width:"2214",height:"450"})),(0,i.kt)("h3",{id:"smart-contract"},"Smart contract"),(0,i.kt)("p",null,"The smart contract tab allows you to set the smart contract of the transaction. Start typing to enter the edit mode of this tab and press ",(0,i.kt)("inlineCode",{parentName:"p"},"esc")," if you want to exit the edit mode and navigate to another tab."),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"Smart contract tab",src:a(14241).Z,width:"2226",height:"446"})),(0,i.kt)("h3",{id:"sending-the-transaction"},"Sending the transaction"),(0,i.kt)("p",null,"When you\u2019re done configuring the transaction, go back to the main tab and press the ",(0,i.kt)("inlineCode",{parentName:"p"},"Add")," button."),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"Sending transaction",src:a(90941).Z,width:"2216",height:"1340"})),(0,i.kt)("h2",{id:"keychain-management"},"Keychain management"),(0,i.kt)("p",null,"The keychain management menu allows you to "),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"create a keychain with a given seed"),(0,i.kt)("li",{parentName:"ul"},"access a keychain"),(0,i.kt)("li",{parentName:"ul"},"add and remove services from a keychain"),(0,i.kt)("li",{parentName:"ul"},"send a keychain transaction for a specific service")),(0,i.kt)("p",null,"In any cases you will need to start by selecting the endpoint you want, that will automatically feed the URL of the endpoint.\nThen specify your access seed."),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"Keychain management",src:a(92603).Z,width:"356",height:"538"})),(0,i.kt)("h3",{id:"creating-a-keychain"},"Creating a keychain"),(0,i.kt)("p",null,"If you press the ",(0,i.kt)("inlineCode",{parentName:"p"},"Create keychain")," button, a new keychain will be created. And the seed you provided will be used to access it. "),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"Create a keychain",src:a(17995).Z,width:"1982",height:"814"})),(0,i.kt)("h3",{id:"accessing-a-keychain"},"Accessing a keychain"),(0,i.kt)("p",null,"Pressing the ",(0,i.kt)("inlineCode",{parentName:"p"},"Access keychain")," button will give you access to the list of services associated with your keychain (one default ",(0,i.kt)("inlineCode",{parentName:"p"},"uco")," service has been created).\n",(0,i.kt)("img",{alt:"Access a keychain",src:a(78634).Z,width:"912",height:"1162"})),(0,i.kt)("h3",{id:"adding--removing-a-service"},"Adding / removing a service"),(0,i.kt)("p",null,"If you go down to the ",(0,i.kt)("inlineCode",{parentName:"p"},"service name")," field you can type a new service name and a default derivation path will be created. If you then press the ",(0,i.kt)("inlineCode",{parentName:"p"},"Create Service"),", your new service will be displayed in the list of services."),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"Add a service",src:a(53061).Z,width:"898",height:"1212"})),(0,i.kt)("p",null,"If you highlight a service and press ",(0,i.kt)("inlineCode",{parentName:"p"},"d")," the service will be deleted."),(0,i.kt)("h3",{id:"create-a-transaction-for-a-service"},"Create a transaction for a service"),(0,i.kt)("p",null,"If you highlight a specific service and press ",(0,i.kt)("inlineCode",{parentName:"p"},"enter")," the highlighted will be selected."),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"Create a transaction for a service",src:a(92029).Z,width:"898",height:"1208"})),(0,i.kt)("p",null,"If you then press the ",(0,i.kt)("inlineCode",{parentName:"p"},"Create Transaction for Service")," button, you will get a new menu to create a transaction for the selected service."),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"Main tab of create keychain transaction",src:a(89294).Z,width:"2212",height:"870"})),(0,i.kt)("p",null,"The mechanism to configure a keychain transaction for a service is the same as the one for a transaction (described above). Only a few configuration are not possible (like the endpoint, the seed, the index and the elliptic curve)."),(0,i.kt)("h2",{id:"cli---archethic-command-line-interpreter"},"CLI - Archethic Command Line Interpreter"),(0,i.kt)("p",null,"It is also possible to call the archethic cli tool using the command line."),(0,i.kt)("p",null,"For details of available commands, you can"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"consult the ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/archethic-foundation/archethic-cli#cli"},"readme")," of the corresponding github project."),(0,i.kt)("li",{parentName:"ul"},"display help with the command ",(0,i.kt)("inlineCode",{parentName:"li"},"--help"),".")),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"Help command",src:a(32941).Z,width:"1526",height:"810"})),(0,i.kt)("h2",{id:"contribution"},"Contribution"),(0,i.kt)("p",null,"If you like this product and wish to contribute to its development, please visit our ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/archethic-cli"},"Github Page")),(0,i.kt)("p",null,"We are welcoming contributions in any forms (code, issues, documentation, ideas, question, etc.)"))}p.isMDXComponent=!0},78634:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/access_keychain-9f933a8d669d6ed955e30dd1aa169bbb.png"},53061:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/add_service-0678042a796e4c8290090dc5ecfae0d2.png"},8914:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/content-ab19f634acaad0b5246fe5983d98f129.png"},17995:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/create_keychain-8addb948180651745f730122e7bce878.png"},92029:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/create_keychain_transaction-cedc8bbccf4171fbb0dd5eda74b3736e.png"},57848:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/generate_address-ba70791dfe6de72c28139e89d1584039.png"},32941:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/help-command-a79b629216cd48d2acca13cf35714ee5.png"},92603:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/keychain_management-c8b7e23b91a14f3f555ae8a054eb7bae.png"},89294:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/main_keychain_transaction-03d95c68a9a99ad66b7321d291387d22.png"},83288:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/main_tab-5783418ecc8dd832b65d81a6579b7d19.png"},771:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/ownerships-559b27b31d1a636f3fcb406889868258.png"},44786:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/ownerships_2-3ef9c28939b2def4fb31695668e0fa15.png"},11100:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/ownerships_3-b1e74fd7bb29438106163db16673b731.png"},91699:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/recipients-b1436cd932b7a6402cd47a8f1a1860ca.png"},90941:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/sending_transaction-970c825476f166398dededfcc355d705.png"},14241:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/smart_contract-2d09068ad09c2a03858e8463b4176964.png"},86753:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/token_transfers-7387b1e8c1f1049818261970230af678.png"},63040:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/uco_transfers-c67df50fb05e1d0062ad690ce2609f34.png"},75436:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/uco_transfers_2-2f1a38a418f288087aae516f1b9e11c4.png"},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file diff --git a/assets/js/a1844ead.62f19d9a.js b/assets/js/a1844ead.bb87513d.js similarity index 99% rename from assets/js/a1844ead.62f19d9a.js rename to assets/js/a1844ead.bb87513d.js index 15e4fb38f..12c32542f 100644 --- a/assets/js/a1844ead.62f19d9a.js +++ b/assets/js/a1844ead.bb87513d.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1778],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),d=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=d(e.components);return r.createElement(l.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),p=d(n),m=a,h=p["".concat(l,".").concat(m)]||p[m]||u[m]||o;return n?r.createElement(h,i(i({ref:t},c),{},{components:n})):r.createElement(h,i({ref:t},c))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=m;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[p]="string"==typeof e?e:a,i[1]=s;for(var d=2;d{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>s,toc:()=>d});var r=n(87462),a=(n(67294),n(3905));n(8209);const o={id:"transaction-form",title:"Smart Contracts Playground - Transaction form",sidebar_label:"Transaction form",sidebar_position:99},i=void 0,s={unversionedId:"build/smart-contracts/playground/transaction-form",id:"build/smart-contracts/playground/transaction-form",title:"Smart Contracts Playground - Transaction form",description:"The transaction form is a form that you might encounter at different places:",source:"@site/docs/build/smart-contracts/playground/transaction-form.md",sourceDirName:"build/smart-contracts/playground",slug:"/build/smart-contracts/playground/transaction-form",permalink:"/build/smart-contracts/playground/transaction-form",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",sidebarPosition:99,frontMatter:{id:"transaction-form",title:"Smart Contracts Playground - Transaction form",sidebar_label:"Transaction form",sidebar_position:99},sidebar:"docs",previous:{title:"Function calls",permalink:"/build/smart-contracts/playground/functions"},next:{title:"Mock form",permalink:"/build/smart-contracts/playground/mock-form"}},l={},d=[{value:"type",id:"type",level:3},{value:"code",id:"code",level:3},{value:"content",id:"content",level:3},{value:"validation timestamp (not used in deployment)",id:"validation-timestamp-not-used-in-deployment",level:3},{value:"address (not used in deployment)",id:"address-not-used-in-deployment",level:3},{value:"uco transfers",id:"uco-transfers",level:3},{value:"token transfers",id:"token-transfers",level:3},{value:"recipients",id:"recipients",level:3},{value:"ownerships",id:"ownerships",level:3}],c={toc:d},p="wrapper";function u(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The transaction form is a form that you might encounter at different places:"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Trigger panel"),(0,a.kt)("li",{parentName:"ol"},"Previous contract panel"),(0,a.kt)("li",{parentName:"ol"},"Deploy panel")),(0,a.kt)("p",null,"The goal of this form is to prepare a transaction payload (everything non-crypto).\nWe'll describe here every subpart of this form."),(0,a.kt)("h3",{id:"type"},"type"),(0,a.kt)("p",null,"This is a selector to choose the transaction's type. It is used to give a hint about what's in the transaction. Some types impose some rules to follow."),(0,a.kt)("p",null,"Read ",(0,a.kt)("a",{parentName:"p",href:"/learn/transaction-types"},"Transaction types")," for the details."),(0,a.kt)("h3",{id:"code"},"code"),(0,a.kt)("p",null,"This is the text field for the code of the Smart Contract. It may be hidden because in the Smart Contracts Playground, the code is usually at the root level of the user interface."),(0,a.kt)("h3",{id:"content"},"content"),(0,a.kt)("p",null,"The content is a text field. It often depends on the transaction's type.\nFor Smart Contracts, we use it to store the aggregated state. This might change in the very near future (see ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/aeip/blob/main/AEIP-14.md"},"AEIP-14"),")."),(0,a.kt)("h3",{id:"validation-timestamp-not-used-in-deployment"},"validation timestamp (not used in deployment)"),(0,a.kt)("p",null,"It represents the time at which the transaction was validated. This is only used to mock a value for your tests."),(0,a.kt)("h3",{id:"address-not-used-in-deployment"},"address (not used in deployment)"),(0,a.kt)("p",null,"It's the transaction's address. It must be a 68 characters hexadecimal. This is only used to mock a value for your tests."),(0,a.kt)("h3",{id:"uco-transfers"},"uco transfers"),(0,a.kt)("p",null,"This is the list of transfers for the UCOs. Every transfer is defined by 2 fields:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"amount"),": required - float"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"to"),": required - hexadecimal address of destination (68 characters)")),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"The amount accepts 8 decimals maximum.")),(0,a.kt)("h3",{id:"token-transfers"},"token transfers"),(0,a.kt)("p",null,"This is the list of transfers for ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/aeip/blob/main/AEIP-02.md"},"AEIP-02")," tokens. Every transfer is defined by 3-4 fields:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"amount"),": required - float"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"to"),": required - hexadecimal address of destination (68 characters)"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"token_address"),": required - hexadecimal address of the token's definition (68 characters)"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"token_id"),": optional - default: 0 - the index of the token in the token's definition (mainly used for NFTs)")),(0,a.kt)("h3",{id:"recipients"},"recipients"),(0,a.kt)("p",null,"This is the list of the Smart Contracts addresses to trigger. Note that the Smart Contracts are executed in dry mode (not writing anything) when the transaction is being validated, which means that if an execution fails, the transaction is invalid."),(0,a.kt)("admonition",{type:"note"},(0,a.kt)("p",{parentName:"admonition"},"For now a Smart Contracts should not trigger other Smart Contracts because the execution is not atomic.")),(0,a.kt)("h3",{id:"ownerships"},"ownerships"),(0,a.kt)("p",null,"This is the list of secrets with the public keys authorized to decrypt them.\nEvery secret is defined by 2 fields: "),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"secret"),": required - the ",(0,a.kt)("strong",{parentName:"li"},"non-encrypted")," secret (the SDK will encrypt with a key that is then encrypted for every authorized_public_keys below)"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"authorized_public_keys"),": required - the list of public keys allowed to decrypt the secret")),(0,a.kt)("admonition",{title:"contract's ownership",type:"note"},(0,a.kt)("p",{parentName:"admonition"},"When deploying, the playground automatically creates a secret that is used to give the ability to execute the contract to all authorized nodes. "),(0,a.kt)("p",{parentName:"admonition"},"In raw terms, it encrypts the ",(0,a.kt)("inlineCode",{parentName:"p"},"seed")," with the ",(0,a.kt)("inlineCode",{parentName:"p"},"storage nonce public key"),".")),(0,a.kt)("admonition",{title:"TODO",type:"danger"},(0,a.kt)("p",{parentName:"admonition"},"missing mock for movements")))}u.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1778],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),d=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=d(e.components);return r.createElement(l.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),p=d(n),m=a,h=p["".concat(l,".").concat(m)]||p[m]||u[m]||o;return n?r.createElement(h,i(i({ref:t},c),{},{components:n})):r.createElement(h,i({ref:t},c))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=m;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[p]="string"==typeof e?e:a,i[1]=s;for(var d=2;d{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>s,toc:()=>d});var r=n(87462),a=(n(67294),n(3905));n(8209);const o={id:"transaction-form",title:"Smart Contracts Playground - Transaction form",sidebar_label:"Transaction form",sidebar_position:99},i=void 0,s={unversionedId:"build/smart-contracts/playground/transaction-form",id:"build/smart-contracts/playground/transaction-form",title:"Smart Contracts Playground - Transaction form",description:"The transaction form is a form that you might encounter at different places:",source:"@site/docs/build/smart-contracts/playground/transaction-form.md",sourceDirName:"build/smart-contracts/playground",slug:"/build/smart-contracts/playground/transaction-form",permalink:"/build/smart-contracts/playground/transaction-form",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",sidebarPosition:99,frontMatter:{id:"transaction-form",title:"Smart Contracts Playground - Transaction form",sidebar_label:"Transaction form",sidebar_position:99},sidebar:"docs",previous:{title:"Function calls",permalink:"/build/smart-contracts/playground/functions"},next:{title:"Mock form",permalink:"/build/smart-contracts/playground/mock-form"}},l={},d=[{value:"type",id:"type",level:3},{value:"code",id:"code",level:3},{value:"content",id:"content",level:3},{value:"validation timestamp (not used in deployment)",id:"validation-timestamp-not-used-in-deployment",level:3},{value:"address (not used in deployment)",id:"address-not-used-in-deployment",level:3},{value:"uco transfers",id:"uco-transfers",level:3},{value:"token transfers",id:"token-transfers",level:3},{value:"recipients",id:"recipients",level:3},{value:"ownerships",id:"ownerships",level:3}],c={toc:d},p="wrapper";function u(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The transaction form is a form that you might encounter at different places:"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Trigger panel"),(0,a.kt)("li",{parentName:"ol"},"Previous contract panel"),(0,a.kt)("li",{parentName:"ol"},"Deploy panel")),(0,a.kt)("p",null,"The goal of this form is to prepare a transaction payload (everything non-crypto).\nWe'll describe here every subpart of this form."),(0,a.kt)("h3",{id:"type"},"type"),(0,a.kt)("p",null,"This is a selector to choose the transaction's type. It is used to give a hint about what's in the transaction. Some types impose some rules to follow."),(0,a.kt)("p",null,"Read ",(0,a.kt)("a",{parentName:"p",href:"/learn/transaction-types"},"Transaction types")," for the details."),(0,a.kt)("h3",{id:"code"},"code"),(0,a.kt)("p",null,"This is the text field for the code of the Smart Contract. It may be hidden because in the Smart Contracts Playground, the code is usually at the root level of the user interface."),(0,a.kt)("h3",{id:"content"},"content"),(0,a.kt)("p",null,"The content is a text field. It often depends on the transaction's type.\nFor Smart Contracts, we use it to store the aggregated state. This might change in the very near future (see ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/aeip/blob/main/AEIP-14.md"},"AEIP-14"),")."),(0,a.kt)("h3",{id:"validation-timestamp-not-used-in-deployment"},"validation timestamp (not used in deployment)"),(0,a.kt)("p",null,"It represents the time at which the transaction was validated. This is only used to mock a value for your tests."),(0,a.kt)("h3",{id:"address-not-used-in-deployment"},"address (not used in deployment)"),(0,a.kt)("p",null,"It's the transaction's address. It must be a 68 characters hexadecimal. This is only used to mock a value for your tests."),(0,a.kt)("h3",{id:"uco-transfers"},"uco transfers"),(0,a.kt)("p",null,"This is the list of transfers for the UCOs. Every transfer is defined by 2 fields:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"amount"),": required - float"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"to"),": required - hexadecimal address of destination (68 characters)")),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"The amount accepts 8 decimals maximum.")),(0,a.kt)("h3",{id:"token-transfers"},"token transfers"),(0,a.kt)("p",null,"This is the list of transfers for ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/aeip/blob/main/AEIP-02.md"},"AEIP-02")," tokens. Every transfer is defined by 3-4 fields:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"amount"),": required - float"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"to"),": required - hexadecimal address of destination (68 characters)"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"token_address"),": required - hexadecimal address of the token's definition (68 characters)"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"token_id"),": optional - default: 0 - the index of the token in the token's definition (mainly used for NFTs)")),(0,a.kt)("h3",{id:"recipients"},"recipients"),(0,a.kt)("p",null,"This is the list of the Smart Contracts addresses to trigger. Note that the Smart Contracts are executed in dry mode (not writing anything) when the transaction is being validated, which means that if an execution fails, the transaction is invalid."),(0,a.kt)("admonition",{type:"note"},(0,a.kt)("p",{parentName:"admonition"},"For now a Smart Contracts should not trigger other Smart Contracts because the execution is not atomic.")),(0,a.kt)("h3",{id:"ownerships"},"ownerships"),(0,a.kt)("p",null,"This is the list of secrets with the public keys authorized to decrypt them.\nEvery secret is defined by 2 fields: "),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"secret"),": required - the ",(0,a.kt)("strong",{parentName:"li"},"non-encrypted")," secret (the SDK will encrypt with a key that is then encrypted for every authorized_public_keys below)"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"authorized_public_keys"),": required - the list of public keys allowed to decrypt the secret")),(0,a.kt)("admonition",{title:"contract's ownership",type:"note"},(0,a.kt)("p",{parentName:"admonition"},"When deploying, the playground automatically creates a secret that is used to give the ability to execute the contract to all authorized nodes. "),(0,a.kt)("p",{parentName:"admonition"},"In raw terms, it encrypts the ",(0,a.kt)("inlineCode",{parentName:"p"},"seed")," with the ",(0,a.kt)("inlineCode",{parentName:"p"},"storage nonce public key"),".")),(0,a.kt)("admonition",{title:"TODO",type:"danger"},(0,a.kt)("p",{parentName:"admonition"},"missing mock for movements")))}u.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/a18b1795.9088e434.js b/assets/js/a18b1795.ce7cf21a.js similarity index 98% rename from assets/js/a18b1795.9088e434.js rename to assets/js/a18b1795.ce7cf21a.js index 49f05d491..7a7c66c05 100644 --- a/assets/js/a18b1795.9088e434.js +++ b/assets/js/a18b1795.ce7cf21a.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3890],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>y});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function s(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),c=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},d=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,l=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),p=c(n),m=r,y=p["".concat(l,".").concat(m)]||p[m]||u[m]||o;return n?a.createElement(y,s(s({ref:t},d),{},{components:n})):a.createElement(y,s({ref:t},d))}));function y(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,s=new Array(o);s[0]=m;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[p]="string"==typeof e?e:r,s[1]=i;for(var c=2;c{n.r(t),n.d(t,{Badge:()=>u,Bullet:()=>d,Details:()=>y,SpecifiedBy:()=>p,assets:()=>c,contentTitle:()=>i,default:()=>k,frontMatter:()=>s,metadata:()=>l,toc:()=>m});var a=n(87462),r=n(67294),o=n(3905);n(8209);const s={id:"network-transactions",title:"networkTransactions",hide_table_of_contents:!1},i=void 0,l={unversionedId:"build/api/schema/queries/network-transactions",id:"build/api/schema/queries/network-transactions",title:"networkTransactions",description:"Query the network to list the transaction on the type",source:"@site/docs/build/api/schema/queries/network-transactions.mdx",sourceDirName:"build/api/schema/queries",slug:"/build/api/schema/queries/network-transactions",permalink:"/build/api/schema/queries/network-transactions",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"network-transactions",title:"networkTransactions",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"nearestEndpoints",permalink:"/build/api/schema/queries/nearest-endpoints"},next:{title:"nodes",permalink:"/build/api/schema/queries/nodes"}},c={},d=()=>(0,o.kt)(r.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=e=>(0,o.kt)(r.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,o.kt)(r.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),m=[{value:"Arguments",id:"arguments",level:3},{value:'networkTransactions.pagePosInteger ',id:"code-style-fontweight-normal-networktransactionsbpagebcodeposinteger-",level:4},{value:'networkTransactions.typeTransactionType! ',id:"code-style-fontweight-normal-networktransactionsbtypebcodetransactiontype--",level:4},{value:"Type",id:"type",level:3},{value:'Transaction ',id:"transaction-",level:4}],y=e=>{let{dataOpen:t,dataClose:n,children:s,startOpen:i=!1}=e;const[l,c]=(0,r.useState)(i);return(0,o.kt)("details",(0,a.Z)({},l?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),c((e=>!e))},style:{listStyle:"none"}},l?t:n),l&&s)},b={Bullet:d,SpecifiedBy:p,Badge:u,toc:m,Details:y},g="wrapper";function k(e){let{components:t,...n}=e;return(0,o.kt)(g,(0,a.Z)({},b,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Query the network to list the transaction on the type"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"networkTransactions(\n page: PosInteger\n type: TransactionType!\n): [Transaction]\n")),(0,o.kt)("h3",{id:"arguments"},"Arguments"),(0,o.kt)("h4",{id:"code-style-fontweight-normal-networktransactionsbpagebcodeposinteger-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"networkTransactions.",(0,o.kt)("b",null,"page"))),(0,o.kt)(d,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/pos-integer"},(0,o.kt)("inlineCode",{parentName:"a"},"PosInteger"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h4",{id:"code-style-fontweight-normal-networktransactionsbtypebcodetransactiontype--"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"networkTransactions.",(0,o.kt)("b",null,"type"))),(0,o.kt)(d,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/transaction-type"},(0,o.kt)("inlineCode",{parentName:"a"},"TransactionType!"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"non-null",mdxType:"Badge"})," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h3",{id:"type"},"Type"),(0,o.kt)("h4",{id:"transaction-"},(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/transaction"},(0,o.kt)("inlineCode",{parentName:"a"},"Transaction"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,o.kt)("blockquote",null,(0,o.kt)("p",{parentName:"blockquote"},"[Transaction]"," represents a unitary transaction in the Archethic network.")))}k.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3890],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>y});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function s(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),c=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},d=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,l=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),p=c(n),m=r,y=p["".concat(l,".").concat(m)]||p[m]||u[m]||o;return n?a.createElement(y,s(s({ref:t},d),{},{components:n})):a.createElement(y,s({ref:t},d))}));function y(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,s=new Array(o);s[0]=m;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[p]="string"==typeof e?e:r,s[1]=i;for(var c=2;c{n.r(t),n.d(t,{Badge:()=>u,Bullet:()=>d,Details:()=>y,SpecifiedBy:()=>p,assets:()=>c,contentTitle:()=>i,default:()=>k,frontMatter:()=>s,metadata:()=>l,toc:()=>m});var a=n(87462),r=n(67294),o=n(3905);n(8209);const s={id:"network-transactions",title:"networkTransactions",hide_table_of_contents:!1},i=void 0,l={unversionedId:"build/api/schema/queries/network-transactions",id:"build/api/schema/queries/network-transactions",title:"networkTransactions",description:"Query the network to list the transaction on the type",source:"@site/docs/build/api/schema/queries/network-transactions.mdx",sourceDirName:"build/api/schema/queries",slug:"/build/api/schema/queries/network-transactions",permalink:"/build/api/schema/queries/network-transactions",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"network-transactions",title:"networkTransactions",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"nearestEndpoints",permalink:"/build/api/schema/queries/nearest-endpoints"},next:{title:"nodes",permalink:"/build/api/schema/queries/nodes"}},c={},d=()=>(0,o.kt)(r.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=e=>(0,o.kt)(r.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,o.kt)(r.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),m=[{value:"Arguments",id:"arguments",level:3},{value:'networkTransactions.pagePosInteger ',id:"code-style-fontweight-normal-networktransactionsbpagebcodeposinteger-",level:4},{value:'networkTransactions.typeTransactionType! ',id:"code-style-fontweight-normal-networktransactionsbtypebcodetransactiontype--",level:4},{value:"Type",id:"type",level:3},{value:'Transaction ',id:"transaction-",level:4}],y=e=>{let{dataOpen:t,dataClose:n,children:s,startOpen:i=!1}=e;const[l,c]=(0,r.useState)(i);return(0,o.kt)("details",(0,a.Z)({},l?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),c((e=>!e))},style:{listStyle:"none"}},l?t:n),l&&s)},b={Bullet:d,SpecifiedBy:p,Badge:u,toc:m,Details:y},g="wrapper";function k(e){let{components:t,...n}=e;return(0,o.kt)(g,(0,a.Z)({},b,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Query the network to list the transaction on the type"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"networkTransactions(\n page: PosInteger\n type: TransactionType!\n): [Transaction]\n")),(0,o.kt)("h3",{id:"arguments"},"Arguments"),(0,o.kt)("h4",{id:"code-style-fontweight-normal-networktransactionsbpagebcodeposinteger-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"networkTransactions.",(0,o.kt)("b",null,"page"))),(0,o.kt)(d,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/pos-integer"},(0,o.kt)("inlineCode",{parentName:"a"},"PosInteger"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h4",{id:"code-style-fontweight-normal-networktransactionsbtypebcodetransactiontype--"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"networkTransactions.",(0,o.kt)("b",null,"type"))),(0,o.kt)(d,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/transaction-type"},(0,o.kt)("inlineCode",{parentName:"a"},"TransactionType!"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"non-null",mdxType:"Badge"})," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h3",{id:"type"},"Type"),(0,o.kt)("h4",{id:"transaction-"},(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/transaction"},(0,o.kt)("inlineCode",{parentName:"a"},"Transaction"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,o.kt)("blockquote",null,(0,o.kt)("p",{parentName:"blockquote"},"[Transaction]"," represents a unitary transaction in the Archethic network.")))}k.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/a22626c5.9d01666d.js b/assets/js/a22626c5.59096cb1.js similarity index 97% rename from assets/js/a22626c5.9d01666d.js rename to assets/js/a22626c5.59096cb1.js index c2f2936ba..ecf1d35f2 100644 --- a/assets/js/a22626c5.9d01666d.js +++ b/assets/js/a22626c5.59096cb1.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9286],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>f});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),s=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},u=function(e){var t=s(e.components);return n.createElement(c.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},h=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,c=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),d=s(r),h=o,f=d["".concat(c,".").concat(h)]||d[h]||p[h]||i;return r?n.createElement(f,a(a({ref:t},u),{},{components:r})):n.createElement(f,a({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=h;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[d]="string"==typeof e?e:o,a[1]=l;for(var s=2;s{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>p,frontMatter:()=>i,metadata:()=>l,toc:()=>s});var n=r(87462),o=(r(67294),r(3905));r(8209);const i={id:"core",title:"Core development"},a=void 0,l={unversionedId:"build/core/core",id:"build/core/core",title:"Core development",description:"Archethic Node repository can be found here",source:"@site/docs/build/core/README.md",sourceDirName:"build/core",slug:"/build/core/",permalink:"/build/core/",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"core",title:"Core development"},sidebar:"docs",previous:{title:"transactionError",permalink:"/build/api/schema/subscriptions/transaction-error"},next:{title:"Account",permalink:"/build/core/account"}},c={},s=[{value:"Technology Stack",id:"technology-stack",level:2},{value:"Why Elixir ?",id:"why-elixir-",level:3},{value:"Why C ?",id:"why-c-",level:3},{value:"Structure",id:"structure",level:2}],u={toc:s},d="wrapper";function p(e){let{components:t,...i}=e;return(0,o.kt)(d,(0,n.Z)({},u,i,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Archethic Node repository can be found ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/archethic-node"},"here")),(0,o.kt)("h2",{id:"technology-stack"},"Technology Stack"),(0,o.kt)("p",null,"Archethic Blockchain node used a combination of Elixir & C programming languages to achieve fast and reliable decentralized network."),(0,o.kt)("h3",{id:"why-elixir-"},"Why Elixir ?"),(0,o.kt)("p",null,"Elixir is a dynamic, functional language for building scalable and maintainable applications."),(0,o.kt)("p",null,"It leverages the Erlang VM, known for running low-latency, distributed, and fault-tolerant systems."),(0,o.kt)("p",null,"Elixir is successfully used in web development, embedded software, data ingestion, and multimedia processing, across a wide range of industries."),(0,o.kt)("p",null,"When we are building P2P systems and Blockchain technologies we need to think about fault-tolerance, low-latency, concurrent/parallelism.\nElixir matches all those requirements."),(0,o.kt)("p",null,"Because all Elixir code runs inside lightweight threads of execution (called processes) that are isolated and exchange information via messages, we can build fast\nprocessing of data which result in a high TPS for a better scalability."),(0,o.kt)("p",null,"The unavoidable truth about software running in production is that things will go wrong."),(0,o.kt)("p",null,"Even more when we take network, file systems, and other third-party resources into account."),(0,o.kt)("p",null,"Elixir provides supervisors which describe how to restart parts of your system when things go awry, going back to a known initial state that is guaranteed to work."),(0,o.kt)("p",null,"This feature ensures in case of failure, the entire system will not be down, and the isolation provided by the processes and their restarting strategy helps us to achieve it."),(0,o.kt)("p",null,"Functional programming promotes a coding style that helps developers write code that is short, concise, and maintainable."),(0,o.kt)("p",null,"Out of the box, Erlang VM provides the capability to hot reload code, which is the best case scenario if we want to provide an on-chain governance without restarting nodes."),(0,o.kt)("h3",{id:"why-c-"},"Why C ?"),(0,o.kt)("p",null,"We need to interact with hardware components and C seems the best candidate, so we are using this language to communicate with TPM for instance."),(0,o.kt)("p",null,"But also, for some intensive task which are really complex in computing, we rely on C to perform those processing."),(0,o.kt)("h2",{id:"structure"},"Structure"),(0,o.kt)("p",null,"Code base is divided into domains (contexts) for better single responsibility principle:"),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"core structure",src:r(93532).Z,width:"1568",height:"2446"})))}p.isMDXComponent=!0},93532:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/images/core_structure-e53af1776beef639ac15f67f9344dab0.png"},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9286],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>f});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),s=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},u=function(e){var t=s(e.components);return n.createElement(c.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},h=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,c=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),d=s(r),h=o,f=d["".concat(c,".").concat(h)]||d[h]||p[h]||i;return r?n.createElement(f,a(a({ref:t},u),{},{components:r})):n.createElement(f,a({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=h;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[d]="string"==typeof e?e:o,a[1]=l;for(var s=2;s{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>p,frontMatter:()=>i,metadata:()=>l,toc:()=>s});var n=r(87462),o=(r(67294),r(3905));r(8209);const i={id:"core",title:"Core development"},a=void 0,l={unversionedId:"build/core/core",id:"build/core/core",title:"Core development",description:"Archethic Node repository can be found here",source:"@site/docs/build/core/README.md",sourceDirName:"build/core",slug:"/build/core/",permalink:"/build/core/",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"core",title:"Core development"},sidebar:"docs",previous:{title:"transactionError",permalink:"/build/api/schema/subscriptions/transaction-error"},next:{title:"Account",permalink:"/build/core/account"}},c={},s=[{value:"Technology Stack",id:"technology-stack",level:2},{value:"Why Elixir ?",id:"why-elixir-",level:3},{value:"Why C ?",id:"why-c-",level:3},{value:"Structure",id:"structure",level:2}],u={toc:s},d="wrapper";function p(e){let{components:t,...i}=e;return(0,o.kt)(d,(0,n.Z)({},u,i,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Archethic Node repository can be found ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/archethic-node"},"here")),(0,o.kt)("h2",{id:"technology-stack"},"Technology Stack"),(0,o.kt)("p",null,"Archethic Blockchain node used a combination of Elixir & C programming languages to achieve fast and reliable decentralized network."),(0,o.kt)("h3",{id:"why-elixir-"},"Why Elixir ?"),(0,o.kt)("p",null,"Elixir is a dynamic, functional language for building scalable and maintainable applications."),(0,o.kt)("p",null,"It leverages the Erlang VM, known for running low-latency, distributed, and fault-tolerant systems."),(0,o.kt)("p",null,"Elixir is successfully used in web development, embedded software, data ingestion, and multimedia processing, across a wide range of industries."),(0,o.kt)("p",null,"When we are building P2P systems and Blockchain technologies we need to think about fault-tolerance, low-latency, concurrent/parallelism.\nElixir matches all those requirements."),(0,o.kt)("p",null,"Because all Elixir code runs inside lightweight threads of execution (called processes) that are isolated and exchange information via messages, we can build fast\nprocessing of data which result in a high TPS for a better scalability."),(0,o.kt)("p",null,"The unavoidable truth about software running in production is that things will go wrong."),(0,o.kt)("p",null,"Even more when we take network, file systems, and other third-party resources into account."),(0,o.kt)("p",null,"Elixir provides supervisors which describe how to restart parts of your system when things go awry, going back to a known initial state that is guaranteed to work."),(0,o.kt)("p",null,"This feature ensures in case of failure, the entire system will not be down, and the isolation provided by the processes and their restarting strategy helps us to achieve it."),(0,o.kt)("p",null,"Functional programming promotes a coding style that helps developers write code that is short, concise, and maintainable."),(0,o.kt)("p",null,"Out of the box, Erlang VM provides the capability to hot reload code, which is the best case scenario if we want to provide an on-chain governance without restarting nodes."),(0,o.kt)("h3",{id:"why-c-"},"Why C ?"),(0,o.kt)("p",null,"We need to interact with hardware components and C seems the best candidate, so we are using this language to communicate with TPM for instance."),(0,o.kt)("p",null,"But also, for some intensive task which are really complex in computing, we rely on C to perform those processing."),(0,o.kt)("h2",{id:"structure"},"Structure"),(0,o.kt)("p",null,"Code base is divided into domains (contexts) for better single responsibility principle:"),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"core structure",src:r(93532).Z,width:"1568",height:"2446"})))}p.isMDXComponent=!0},93532:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/images/core_structure-e53af1776beef639ac15f67f9344dab0.png"},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file diff --git a/assets/js/a3bcfc8d.b3104399.js b/assets/js/a3bcfc8d.80d721c4.js similarity index 98% rename from assets/js/a3bcfc8d.b3104399.js rename to assets/js/a3bcfc8d.80d721c4.js index 10a3c28c1..a87aa2f15 100644 --- a/assets/js/a3bcfc8d.b3104399.js +++ b/assets/js/a3bcfc8d.80d721c4.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5646],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),p=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},u=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,l=e.originalType,s=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),c=p(n),d=a,h=c["".concat(s,".").concat(d)]||c[d]||m[d]||l;return n?r.createElement(h,o(o({ref:t},u),{},{components:n})):r.createElement(h,o({ref:t},u))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=n.length,o=new Array(l);o[0]=d;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[c]="string"==typeof e?e:a,o[1]=i;for(var p=2;p{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>l,metadata:()=>i,toc:()=>p});var r=n(87462),a=(n(67294),n(3905));n(8209);const l={id:"json",title:"Json module",sidebar_label:"Json"},o=void 0,i={unversionedId:"build/smart-contracts/language/library/json",id:"build/smart-contracts/language/library/json",title:"Json module",description:"The Json module contains functions to manipulate JSON strings.",source:"@site/docs/build/smart-contracts/language/library/json.md",sourceDirName:"build/smart-contracts/language/library",slug:"/build/smart-contracts/language/library/json",permalink:"/build/smart-contracts/language/library/json",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"json",title:"Json module",sidebar_label:"Json"},sidebar:"docs",previous:{title:"Http",permalink:"/build/smart-contracts/language/library/http"},next:{title:"List",permalink:"/build/smart-contracts/language/library/list"}},s={},p=[{value:"path_extract/2",id:"path_extract2",level:3},{value:"path_match?/2",id:"path_match2",level:3},{value:"to_string/1",id:"to_string1",level:3},{value:"parse/1",id:"parse1",level:3},{value:"is_valid?/1",id:"is_valid1",level:3}],u={toc:p},c="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(c,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The ",(0,a.kt)("inlineCode",{parentName:"p"},"Json")," module contains functions to manipulate JSON strings."),(0,a.kt)("h3",{id:"path_extract2"},"path_extract/2"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},'Json.path_extract("{ \\"firstName\\": \\"John\\", \\"lastName\\": \\"Doe\\"}", "$.firstName") # "John"\n')),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"json")," the json string"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"path")," the path")),(0,a.kt)("p",null,"Returns the data at ",(0,a.kt)("inlineCode",{parentName:"p"},"path")," in ",(0,a.kt)("inlineCode",{parentName:"p"},"json"),"."),(0,a.kt)("p",null,"See the ",(0,a.kt)("a",{parentName:"p",href:"https://goessner.net/articles/JsonPath/"},"JSONPath documentation")," for more information abouth paths."),(0,a.kt)("h3",{id:"path_match2"},"path_match?/2"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},'Json.path_match?("{\\"1622541930\\":{\\"uco\\":{\\"eur\\":0.176922,\\"usd\\":0.21642}}}", "$.*.uco.usd") # true\nJson.path_match?("{\\"1622541930\\":{\\"uco\\":{\\"eur\\":0.176922,\\"usd\\":0.21642}}}", "$.*.uco.aud") # false\n')),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"json")," the json string"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"path")," the path")),(0,a.kt)("p",null,"Returns if there is a value at ",(0,a.kt)("inlineCode",{parentName:"p"},"path")," in ",(0,a.kt)("inlineCode",{parentName:"p"},"json"),"."),(0,a.kt)("p",null,"See the ",(0,a.kt)("a",{parentName:"p",href:"https://goessner.net/articles/JsonPath/"},"JSONPath documentation")," for more information about paths."),(0,a.kt)("h3",{id:"to_string1"},"to_string/1"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},'Json.to_string(1) # "1"\nJson.to_string("str") # "\\"str\\""\nJson.to_string([1,2,3]) # "[1,2,3]"\nJson.to_string(foo: "bar") # "{\\"foo\\":\\"bar\\"}"\n')),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"any")," anything")),(0,a.kt)("p",null,"Returns the Json representation of ",(0,a.kt)("inlineCode",{parentName:"p"},"any"),"."),(0,a.kt)("h3",{id:"parse1"},"parse/1"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},'Json.parse("1") # "1"\nJson.parse("\\"str\\"") # "str"\nJson.parse("[1,2,3]") # [1,2,3]\nJson.parse("{\\"foo\\":\\"bar\\"}") # foo: "bar"\n')),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"json")," the json string")),(0,a.kt)("p",null,"Returns the value represented by ",(0,a.kt)("inlineCode",{parentName:"p"},"json"),"."),(0,a.kt)("h3",{id:"is_valid1"},"is_valid?/1"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},'Json.is_valid?("str") # false\nJson.is_valid?("\\"str\\"") # true\n')),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"json")," the json string")),(0,a.kt)("p",null,"Returns whether the string is valid JSON or not."))}m.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5646],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),p=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},u=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,l=e.originalType,s=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),c=p(n),d=a,h=c["".concat(s,".").concat(d)]||c[d]||m[d]||l;return n?r.createElement(h,o(o({ref:t},u),{},{components:n})):r.createElement(h,o({ref:t},u))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=n.length,o=new Array(l);o[0]=d;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[c]="string"==typeof e?e:a,o[1]=i;for(var p=2;p{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>l,metadata:()=>i,toc:()=>p});var r=n(87462),a=(n(67294),n(3905));n(8209);const l={id:"json",title:"Json module",sidebar_label:"Json"},o=void 0,i={unversionedId:"build/smart-contracts/language/library/json",id:"build/smart-contracts/language/library/json",title:"Json module",description:"The Json module contains functions to manipulate JSON strings.",source:"@site/docs/build/smart-contracts/language/library/json.md",sourceDirName:"build/smart-contracts/language/library",slug:"/build/smart-contracts/language/library/json",permalink:"/build/smart-contracts/language/library/json",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"json",title:"Json module",sidebar_label:"Json"},sidebar:"docs",previous:{title:"Http",permalink:"/build/smart-contracts/language/library/http"},next:{title:"List",permalink:"/build/smart-contracts/language/library/list"}},s={},p=[{value:"path_extract/2",id:"path_extract2",level:3},{value:"path_match?/2",id:"path_match2",level:3},{value:"to_string/1",id:"to_string1",level:3},{value:"parse/1",id:"parse1",level:3},{value:"is_valid?/1",id:"is_valid1",level:3}],u={toc:p},c="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(c,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The ",(0,a.kt)("inlineCode",{parentName:"p"},"Json")," module contains functions to manipulate JSON strings."),(0,a.kt)("h3",{id:"path_extract2"},"path_extract/2"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},'Json.path_extract("{ \\"firstName\\": \\"John\\", \\"lastName\\": \\"Doe\\"}", "$.firstName") # "John"\n')),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"json")," the json string"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"path")," the path")),(0,a.kt)("p",null,"Returns the data at ",(0,a.kt)("inlineCode",{parentName:"p"},"path")," in ",(0,a.kt)("inlineCode",{parentName:"p"},"json"),"."),(0,a.kt)("p",null,"See the ",(0,a.kt)("a",{parentName:"p",href:"https://goessner.net/articles/JsonPath/"},"JSONPath documentation")," for more information abouth paths."),(0,a.kt)("h3",{id:"path_match2"},"path_match?/2"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},'Json.path_match?("{\\"1622541930\\":{\\"uco\\":{\\"eur\\":0.176922,\\"usd\\":0.21642}}}", "$.*.uco.usd") # true\nJson.path_match?("{\\"1622541930\\":{\\"uco\\":{\\"eur\\":0.176922,\\"usd\\":0.21642}}}", "$.*.uco.aud") # false\n')),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"json")," the json string"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"path")," the path")),(0,a.kt)("p",null,"Returns if there is a value at ",(0,a.kt)("inlineCode",{parentName:"p"},"path")," in ",(0,a.kt)("inlineCode",{parentName:"p"},"json"),"."),(0,a.kt)("p",null,"See the ",(0,a.kt)("a",{parentName:"p",href:"https://goessner.net/articles/JsonPath/"},"JSONPath documentation")," for more information about paths."),(0,a.kt)("h3",{id:"to_string1"},"to_string/1"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},'Json.to_string(1) # "1"\nJson.to_string("str") # "\\"str\\""\nJson.to_string([1,2,3]) # "[1,2,3]"\nJson.to_string(foo: "bar") # "{\\"foo\\":\\"bar\\"}"\n')),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"any")," anything")),(0,a.kt)("p",null,"Returns the Json representation of ",(0,a.kt)("inlineCode",{parentName:"p"},"any"),"."),(0,a.kt)("h3",{id:"parse1"},"parse/1"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},'Json.parse("1") # "1"\nJson.parse("\\"str\\"") # "str"\nJson.parse("[1,2,3]") # [1,2,3]\nJson.parse("{\\"foo\\":\\"bar\\"}") # foo: "bar"\n')),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"json")," the json string")),(0,a.kt)("p",null,"Returns the value represented by ",(0,a.kt)("inlineCode",{parentName:"p"},"json"),"."),(0,a.kt)("h3",{id:"is_valid1"},"is_valid?/1"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},'Json.is_valid?("str") # false\nJson.is_valid?("\\"str\\"") # true\n')),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"json")," the json string")),(0,a.kt)("p",null,"Returns whether the string is valid JSON or not."))}m.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/a90ecf70.b32dd3f0.js b/assets/js/a90ecf70.8f3c5ed5.js similarity index 98% rename from assets/js/a90ecf70.b32dd3f0.js rename to assets/js/a90ecf70.8f3c5ed5.js index 31134fefa..877b6785e 100644 --- a/assets/js/a90ecf70.b32dd3f0.js +++ b/assets/js/a90ecf70.8f3c5ed5.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9056],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>f});var r=n(67294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l=r.createContext({}),c=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},d=function(e){var t=c(e.components);return r.createElement(l.Provider,{value:t},e.children)},h="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,o=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),h=c(n),u=i,f=h["".concat(l,".").concat(u)]||h[u]||p[u]||o;return n?r.createElement(f,a(a({ref:t},d),{},{components:n})):r.createElement(f,a({ref:t},d))}));function f(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=n.length,a=new Array(o);a[0]=u;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[h]="string"==typeof e?e:i,a[1]=s;for(var c=2;c{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>p,frontMatter:()=>o,metadata:()=>s,toc:()=>c});var r=n(87462),i=(n(67294),n(3905));n(8209);const o={id:"aeweb",title:"aeHosting"},a=void 0,s={unversionedId:"FAQ/aeweb",id:"FAQ/aeweb",title:"aeHosting",description:"General",source:"@site/docs/FAQ/aeweb.md",sourceDirName:"FAQ",slug:"/FAQ/aeweb",permalink:"/FAQ/aeweb",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"aeweb",title:"aeHosting"},sidebar:"docs",previous:{title:"FAQ",permalink:"/category/faq"},next:{title:"aeBridge",permalink:"/FAQ/bridge-2-ways"}},l={},c=[{value:"General",id:"general",level:2},{value:" How do I redirect my domain names to my websites deployed on the Archethic Blockchain?",id:"-how-do-i-redirect-my-domain-names-to-my-websites-deployed-on-the-archethic-blockchain",level:3},{value:"What is the purpose of a .gitignore file?",id:"what-is-the-purpose-of-a-gitignore-file",level:3},{value:"When using the Archethic wallet's "link to a file hosted on AEWeb" option to create an NFT with an image, does it require sending funds to the newly created address using AEWeb CLI?",id:"when-using-the-archethic-wallets-link-to-a-file-hosted-on-aeweb-option-to-create-an-nft-with-an-image-does-it-require-sending-funds-to-the-newly-created-address-using-aeweb-cli",level:3}],d={toc:c},h="wrapper";function p(e){let{components:t,...n}=e;return(0,i.kt)(h,(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"general"},"General"),(0,i.kt)("h3",{id:"-how-do-i-redirect-my-domain-names-to-my-websites-deployed-on-the-archethic-blockchain"},(0,i.kt)("strong",{parentName:"h3"}," How do I redirect my domain names to my websites deployed on the Archethic Blockchain?")),(0,i.kt)("p",null,"All the information regarding DNS configuration is available in the ",(0,i.kt)("a",{href:"/participate/aeweb/dns",target:"_blank"},"dedicated section"),"."),(0,i.kt)("p",null,"You will also find ",(0,i.kt)("a",{href:"/participate/aeweb/dns#hosting-provider-integration",target:"_blank"},"examples")," for Gandi, Cloudflare, and OVH services."),(0,i.kt)("h3",{id:"what-is-the-purpose-of-a-gitignore-file"},(0,i.kt)("strong",{parentName:"h3"},"What is the purpose of a .gitignore file?")),(0,i.kt)("p",null,"The .gitignore file serves to exclude specific files and directories from version control with Git. In the context of AEWeb, it's used to prevent the upload and synchronization of configuration and development files that are specific to the Git repository. This ensures that only the essential files of the website are transferred during the upload process."),(0,i.kt)("h3",{id:"when-using-the-archethic-wallets-link-to-a-file-hosted-on-aeweb-option-to-create-an-nft-with-an-image-does-it-require-sending-funds-to-the-newly-created-address-using-aeweb-cli"},(0,i.kt)("strong",{parentName:"h3"},'When using the Archethic wallet\'s "link to a file hosted on AEWeb" option to create an NFT with an image, does it require sending funds to the newly created address using AEWeb CLI?')),(0,i.kt)("p",null,"Currently, the AEWeb CLI is not directly connected to the wallet. Therefore, it is necessary to provision the chain that will host the files in order to pay the transaction fees. However, you can still use the wallet's keychain by retrieving the passphrase and utilizing the wallet's service to send funds to the service hosting the image, just as if you were performing the action directly from the wallet."),(0,i.kt)("p",null,"Here's an example using the Testnet:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre"},'aeweb deploy --seed myseedphrase --endpoint https://testnet.archethic.net --path ./website --keychain-funding-service "archethic-wallet-ALICE" --keychain-website-service myImageAEWeb\n')))}p.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9056],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>f});var r=n(67294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l=r.createContext({}),c=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},d=function(e){var t=c(e.components);return r.createElement(l.Provider,{value:t},e.children)},h="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,o=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),h=c(n),u=i,f=h["".concat(l,".").concat(u)]||h[u]||p[u]||o;return n?r.createElement(f,a(a({ref:t},d),{},{components:n})):r.createElement(f,a({ref:t},d))}));function f(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=n.length,a=new Array(o);a[0]=u;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[h]="string"==typeof e?e:i,a[1]=s;for(var c=2;c{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>p,frontMatter:()=>o,metadata:()=>s,toc:()=>c});var r=n(87462),i=(n(67294),n(3905));n(8209);const o={id:"aeweb",title:"aeHosting"},a=void 0,s={unversionedId:"FAQ/aeweb",id:"FAQ/aeweb",title:"aeHosting",description:"General",source:"@site/docs/FAQ/aeweb.md",sourceDirName:"FAQ",slug:"/FAQ/aeweb",permalink:"/FAQ/aeweb",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"aeweb",title:"aeHosting"},sidebar:"docs",previous:{title:"FAQ",permalink:"/category/faq"},next:{title:"aeBridge",permalink:"/FAQ/bridge-2-ways"}},l={},c=[{value:"General",id:"general",level:2},{value:" How do I redirect my domain names to my websites deployed on the Archethic Blockchain?",id:"-how-do-i-redirect-my-domain-names-to-my-websites-deployed-on-the-archethic-blockchain",level:3},{value:"What is the purpose of a .gitignore file?",id:"what-is-the-purpose-of-a-gitignore-file",level:3},{value:"When using the Archethic wallet's "link to a file hosted on AEWeb" option to create an NFT with an image, does it require sending funds to the newly created address using AEWeb CLI?",id:"when-using-the-archethic-wallets-link-to-a-file-hosted-on-aeweb-option-to-create-an-nft-with-an-image-does-it-require-sending-funds-to-the-newly-created-address-using-aeweb-cli",level:3}],d={toc:c},h="wrapper";function p(e){let{components:t,...n}=e;return(0,i.kt)(h,(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"general"},"General"),(0,i.kt)("h3",{id:"-how-do-i-redirect-my-domain-names-to-my-websites-deployed-on-the-archethic-blockchain"},(0,i.kt)("strong",{parentName:"h3"}," How do I redirect my domain names to my websites deployed on the Archethic Blockchain?")),(0,i.kt)("p",null,"All the information regarding DNS configuration is available in the ",(0,i.kt)("a",{href:"/participate/aeweb/dns",target:"_blank"},"dedicated section"),"."),(0,i.kt)("p",null,"You will also find ",(0,i.kt)("a",{href:"/participate/aeweb/dns#hosting-provider-integration",target:"_blank"},"examples")," for Gandi, Cloudflare, and OVH services."),(0,i.kt)("h3",{id:"what-is-the-purpose-of-a-gitignore-file"},(0,i.kt)("strong",{parentName:"h3"},"What is the purpose of a .gitignore file?")),(0,i.kt)("p",null,"The .gitignore file serves to exclude specific files and directories from version control with Git. In the context of AEWeb, it's used to prevent the upload and synchronization of configuration and development files that are specific to the Git repository. This ensures that only the essential files of the website are transferred during the upload process."),(0,i.kt)("h3",{id:"when-using-the-archethic-wallets-link-to-a-file-hosted-on-aeweb-option-to-create-an-nft-with-an-image-does-it-require-sending-funds-to-the-newly-created-address-using-aeweb-cli"},(0,i.kt)("strong",{parentName:"h3"},'When using the Archethic wallet\'s "link to a file hosted on AEWeb" option to create an NFT with an image, does it require sending funds to the newly created address using AEWeb CLI?')),(0,i.kt)("p",null,"Currently, the AEWeb CLI is not directly connected to the wallet. Therefore, it is necessary to provision the chain that will host the files in order to pay the transaction fees. However, you can still use the wallet's keychain by retrieving the passphrase and utilizing the wallet's service to send funds to the service hosting the image, just as if you were performing the action directly from the wallet."),(0,i.kt)("p",null,"Here's an example using the Testnet:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre"},'aeweb deploy --seed myseedphrase --endpoint https://testnet.archethic.net --path ./website --keychain-funding-service "archethic-wallet-ALICE" --keychain-website-service myImageAEWeb\n')))}p.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/aa1914e6.44bdf214.js b/assets/js/aa1914e6.44fbb06d.js similarity index 97% rename from assets/js/aa1914e6.44bdf214.js rename to assets/js/aa1914e6.44fbb06d.js index bce0ba4f8..063d22bb7 100644 --- a/assets/js/aa1914e6.44bdf214.js +++ b/assets/js/aa1914e6.44fbb06d.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6694],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>m});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),u=p(r),f=o,m=u["".concat(l,".").concat(f)]||u[f]||d[f]||a;return r?n.createElement(m,i(i({ref:t},s),{},{components:r})):n.createElement(m,i({ref:t},s))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=f;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[u]="string"==typeof e?e:o,i[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(87462),o=(r(67294),r(3905));r(8209);const a={id:"sdk",title:"SDK"},i=void 0,c={unversionedId:"build/sdk/sdk",id:"build/sdk/sdk",title:"SDK",description:"",source:"@site/docs/build/sdk/README.md",sourceDirName:"build/sdk",slug:"/build/sdk/",permalink:"/build/sdk/",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"sdk",title:"SDK"},sidebar:"docs",previous:{title:"Node",permalink:"/build/core/p2p/node"},next:{title:"Dart SDK",permalink:"/build/sdk/dart"}},l={},p=[],s={toc:p},u="wrapper";function d(e){let{components:t,...r}=e;return(0,o.kt)(u,(0,n.Z)({},s,r,{components:t,mdxType:"MDXLayout"}))}d.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6694],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>m});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),u=p(r),f=o,m=u["".concat(l,".").concat(f)]||u[f]||d[f]||a;return r?n.createElement(m,i(i({ref:t},s),{},{components:r})):n.createElement(m,i({ref:t},s))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=f;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[u]="string"==typeof e?e:o,i[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(87462),o=(r(67294),r(3905));r(8209);const a={id:"sdk",title:"SDK"},i=void 0,c={unversionedId:"build/sdk/sdk",id:"build/sdk/sdk",title:"SDK",description:"",source:"@site/docs/build/sdk/README.md",sourceDirName:"build/sdk",slug:"/build/sdk/",permalink:"/build/sdk/",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"sdk",title:"SDK"},sidebar:"docs",previous:{title:"Node",permalink:"/build/core/p2p/node"},next:{title:"Dart SDK",permalink:"/build/sdk/dart"}},l={},p=[],s={toc:p},u="wrapper";function d(e){let{components:t,...r}=e;return(0,o.kt)(u,(0,n.Z)({},s,r,{components:t,mdxType:"MDXLayout"}))}d.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file diff --git a/assets/js/ab699365.2d46b070.js b/assets/js/ab699365.f26a8819.js similarity index 99% rename from assets/js/ab699365.2d46b070.js rename to assets/js/ab699365.f26a8819.js index 5246fe142..6c17eec7f 100644 --- a/assets/js/ab699365.2d46b070.js +++ b/assets/js/ab699365.f26a8819.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[428],{3905:(e,t,i)=>{i.d(t,{Zo:()=>d,kt:()=>y});var a=i(67294);function r(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function o(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,a)}return i}function n(e){for(var t=1;t=0||(r[i]=e[i]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(r[i]=e[i])}return r}var s=a.createContext({}),p=function(e){var t=a.useContext(s),i=t;return e&&(i="function"==typeof e?e(t):n(n({},t),e)),i},d=function(e){var t=p(e.components);return a.createElement(s.Provider,{value:t},e.children)},c="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},v=a.forwardRef((function(e,t){var i=e.components,r=e.mdxType,o=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),c=p(i),v=r,y=c["".concat(s,".").concat(v)]||c[v]||u[v]||o;return i?a.createElement(y,n(n({ref:t},d),{},{components:i})):a.createElement(y,n({ref:t},d))}));function y(e,t){var i=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=i.length,n=new Array(o);n[0]=v;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[c]="string"==typeof e?e:r,n[1]=l;for(var p=2;p{i.r(t),i.d(t,{assets:()=>s,contentTitle:()=>n,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var a=i(87462),r=(i(67294),i(3905));i(8209);const o={title:"Glossary",id:"glossary",sidebar_label:"Glossary"},n="Glossary",l={unversionedId:"participate/dex/Overview/glossary",id:"participate/dex/Overview/glossary",title:"Glossary",description:"aeSwap",source:"@site/docs/participate/dex/03-Overview/03-protocol_overview_glossary.md",sourceDirName:"participate/dex/03-Overview",slug:"/participate/dex/Overview/glossary",permalink:"/participate/dex/Overview/glossary",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",sidebarPosition:3,frontMatter:{title:"Glossary",id:"glossary",sidebar_label:"Glossary"},sidebar:"docs",previous:{title:"Ecosystem Participants",permalink:"/participate/dex/Overview/ecosystem_participants"},next:{title:"Smart Contracts",permalink:"/participate/dex/Overview/smart_contracts/"}},s={},p=[{value:"aeSwap",id:"aeswap",level:2},{value:"Automated Market Maker (AMM)",id:"automated-market-maker-amm",level:2},{value:"Liquidity Addition",id:"liquidity-addition",level:2},{value:"Liquidity Provider (LP)",id:"liquidity-provider-lp",level:2},{value:"Liquidity Removal",id:"liquidity-removal",level:2},{value:"Pool",id:"pool",level:2},{value:"Price Impact",id:"price-impact",level:2},{value:"Slippage",id:"slippage",level:2},{value:"Swap",id:"swap",level:2},{value:"Total Value Locked (TVL)",id:"total-value-locked-tvl",level:2},{value:"Yield Farming",id:"yield-farming",level:2}],d={toc:p},c="wrapper";function u(e){let{components:t,...i}=e;return(0,r.kt)(c,(0,a.Z)({},d,i,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"glossary"},"Glossary"),(0,r.kt)("h2",{id:"aeswap"},"aeSwap"),(0,r.kt)("p",null,"A decentralized exchange platform built on the Archethic Public Blockchain, leveraging the AMM model for swapping tokens, adding liquidity, and yield farming."),(0,r.kt)("h2",{id:"automated-market-maker-amm"},"Automated Market Maker (AMM)"),(0,r.kt)("p",null,"An AMM is a type of decentralized exchange protocol that relies on a mathematical formula to price assets. Instead of using a traditional order book, it automates the process of providing liquidity to pools of two or more tokens, from which users can trade."),(0,r.kt)("h2",{id:"liquidity-addition"},"Liquidity Addition"),(0,r.kt)("p",null,"The process of depositing tokens into a pool to increase its liquidity. Users receive LP tokens in return, representing their share of the pool."),(0,r.kt)("h2",{id:"liquidity-provider-lp"},"Liquidity Provider (LP)"),(0,r.kt)("p",null,"A user who deposits an equivalent value of two tokens into a pool, facilitating trading by providing liquidity. LPs are compensated with transaction fees and potentially other rewards."),(0,r.kt)("h2",{id:"liquidity-removal"},"Liquidity Removal"),(0,r.kt)("p",null,"The process of redeeming LP tokens to withdraw liquidity from a pool. Users receive a proportional amount of the pool's tokens based on their share."),(0,r.kt)("h2",{id:"pool"},"Pool"),(0,r.kt)("p",null,"A smart contract that holds reserves of two or more tokens and allows users to trade between these tokens. The pool's liquidity is provided by liquidity providers who deposit an equivalent value of two tokens."),(0,r.kt)("h2",{id:"price-impact"},"Price Impact"),(0,r.kt)("p",null,"The effect a trade will have on the price of a token in a pool. Large trades in relation to the pool's size can have a significant price impact, affecting the trade's execution price."),(0,r.kt)("h2",{id:"slippage"},"Slippage"),(0,r.kt)("p",null,"The difference in price between when a trade is submitted and when it is executed, due to changes in a pool's liquidity in that interval. Users can set a slippage tolerance to protect against excessive price movement."),(0,r.kt)("h2",{id:"swap"},"Swap"),(0,r.kt)("p",null,"The action of trading one token for another within the aeSwap ecosystem. Swaps are executed against the liquidity available in pools and are subject to fees and slippage."),(0,r.kt)("h2",{id:"total-value-locked-tvl"},"Total Value Locked (TVL)"),(0,r.kt)("p",null,"The total amount of assets that are currently staked or locked in a protocol, indicating its size and health. In aeSwap, it refers to the total value of tokens locked in all liquidity pools."),(0,r.kt)("h2",{id:"yield-farming"},"Yield Farming"),(0,r.kt)("p",null,"A strategy where users stake or lend crypto assets in order to receive returns or rewards. In the context of aeSwap, this involves participating in liquidity provision and potentially other incentivized activities."),(0,r.kt)("p",null,"This glossary provides a foundational understanding of key concepts within the aeSwap ecosystem, facilitating a clearer comprehension of the platform's functionalities and operations."))}u.isMDXComponent=!0},8209:(e,t,i)=>{i(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[428],{3905:(e,t,i)=>{i.d(t,{Zo:()=>d,kt:()=>y});var a=i(67294);function r(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function o(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,a)}return i}function n(e){for(var t=1;t=0||(r[i]=e[i]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(r[i]=e[i])}return r}var s=a.createContext({}),p=function(e){var t=a.useContext(s),i=t;return e&&(i="function"==typeof e?e(t):n(n({},t),e)),i},d=function(e){var t=p(e.components);return a.createElement(s.Provider,{value:t},e.children)},c="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},v=a.forwardRef((function(e,t){var i=e.components,r=e.mdxType,o=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),c=p(i),v=r,y=c["".concat(s,".").concat(v)]||c[v]||u[v]||o;return i?a.createElement(y,n(n({ref:t},d),{},{components:i})):a.createElement(y,n({ref:t},d))}));function y(e,t){var i=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=i.length,n=new Array(o);n[0]=v;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[c]="string"==typeof e?e:r,n[1]=l;for(var p=2;p{i.r(t),i.d(t,{assets:()=>s,contentTitle:()=>n,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var a=i(87462),r=(i(67294),i(3905));i(8209);const o={title:"Glossary",id:"glossary",sidebar_label:"Glossary"},n="Glossary",l={unversionedId:"participate/dex/Overview/glossary",id:"participate/dex/Overview/glossary",title:"Glossary",description:"aeSwap",source:"@site/docs/participate/dex/03-Overview/03-protocol_overview_glossary.md",sourceDirName:"participate/dex/03-Overview",slug:"/participate/dex/Overview/glossary",permalink:"/participate/dex/Overview/glossary",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",sidebarPosition:3,frontMatter:{title:"Glossary",id:"glossary",sidebar_label:"Glossary"},sidebar:"docs",previous:{title:"Ecosystem Participants",permalink:"/participate/dex/Overview/ecosystem_participants"},next:{title:"Smart Contracts",permalink:"/participate/dex/Overview/smart_contracts/"}},s={},p=[{value:"aeSwap",id:"aeswap",level:2},{value:"Automated Market Maker (AMM)",id:"automated-market-maker-amm",level:2},{value:"Liquidity Addition",id:"liquidity-addition",level:2},{value:"Liquidity Provider (LP)",id:"liquidity-provider-lp",level:2},{value:"Liquidity Removal",id:"liquidity-removal",level:2},{value:"Pool",id:"pool",level:2},{value:"Price Impact",id:"price-impact",level:2},{value:"Slippage",id:"slippage",level:2},{value:"Swap",id:"swap",level:2},{value:"Total Value Locked (TVL)",id:"total-value-locked-tvl",level:2},{value:"Yield Farming",id:"yield-farming",level:2}],d={toc:p},c="wrapper";function u(e){let{components:t,...i}=e;return(0,r.kt)(c,(0,a.Z)({},d,i,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"glossary"},"Glossary"),(0,r.kt)("h2",{id:"aeswap"},"aeSwap"),(0,r.kt)("p",null,"A decentralized exchange platform built on the Archethic Public Blockchain, leveraging the AMM model for swapping tokens, adding liquidity, and yield farming."),(0,r.kt)("h2",{id:"automated-market-maker-amm"},"Automated Market Maker (AMM)"),(0,r.kt)("p",null,"An AMM is a type of decentralized exchange protocol that relies on a mathematical formula to price assets. Instead of using a traditional order book, it automates the process of providing liquidity to pools of two or more tokens, from which users can trade."),(0,r.kt)("h2",{id:"liquidity-addition"},"Liquidity Addition"),(0,r.kt)("p",null,"The process of depositing tokens into a pool to increase its liquidity. Users receive LP tokens in return, representing their share of the pool."),(0,r.kt)("h2",{id:"liquidity-provider-lp"},"Liquidity Provider (LP)"),(0,r.kt)("p",null,"A user who deposits an equivalent value of two tokens into a pool, facilitating trading by providing liquidity. LPs are compensated with transaction fees and potentially other rewards."),(0,r.kt)("h2",{id:"liquidity-removal"},"Liquidity Removal"),(0,r.kt)("p",null,"The process of redeeming LP tokens to withdraw liquidity from a pool. Users receive a proportional amount of the pool's tokens based on their share."),(0,r.kt)("h2",{id:"pool"},"Pool"),(0,r.kt)("p",null,"A smart contract that holds reserves of two or more tokens and allows users to trade between these tokens. The pool's liquidity is provided by liquidity providers who deposit an equivalent value of two tokens."),(0,r.kt)("h2",{id:"price-impact"},"Price Impact"),(0,r.kt)("p",null,"The effect a trade will have on the price of a token in a pool. Large trades in relation to the pool's size can have a significant price impact, affecting the trade's execution price."),(0,r.kt)("h2",{id:"slippage"},"Slippage"),(0,r.kt)("p",null,"The difference in price between when a trade is submitted and when it is executed, due to changes in a pool's liquidity in that interval. Users can set a slippage tolerance to protect against excessive price movement."),(0,r.kt)("h2",{id:"swap"},"Swap"),(0,r.kt)("p",null,"The action of trading one token for another within the aeSwap ecosystem. Swaps are executed against the liquidity available in pools and are subject to fees and slippage."),(0,r.kt)("h2",{id:"total-value-locked-tvl"},"Total Value Locked (TVL)"),(0,r.kt)("p",null,"The total amount of assets that are currently staked or locked in a protocol, indicating its size and health. In aeSwap, it refers to the total value of tokens locked in all liquidity pools."),(0,r.kt)("h2",{id:"yield-farming"},"Yield Farming"),(0,r.kt)("p",null,"A strategy where users stake or lend crypto assets in order to receive returns or rewards. In the context of aeSwap, this involves participating in liquidity provision and potentially other incentivized activities."),(0,r.kt)("p",null,"This glossary provides a foundational understanding of key concepts within the aeSwap ecosystem, facilitating a clearer comprehension of the platform's functionalities and operations."))}u.isMDXComponent=!0},8209:(e,t,i)=>{i(67294)}}]); \ No newline at end of file diff --git a/assets/js/ac1890eb.0d21c0cf.js b/assets/js/ac1890eb.ee744173.js similarity index 98% rename from assets/js/ac1890eb.0d21c0cf.js rename to assets/js/ac1890eb.ee744173.js index 46d5702ff..69df6c079 100644 --- a/assets/js/ac1890eb.0d21c0cf.js +++ b/assets/js/ac1890eb.ee744173.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1719],{3905:(e,a,t)=>{t.d(a,{Zo:()=>p,kt:()=>b});var n=t(67294);function r(e,a,t){return a in e?Object.defineProperty(e,a,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[a]=t,e}function s(e,a){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);a&&(n=n.filter((function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable}))),t.push.apply(t,n)}return t}function d(e){for(var a=1;a=0||(r[t]=e[t]);return r}(e,a);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var l=n.createContext({}),o=function(e){var a=n.useContext(l),t=a;return e&&(t="function"==typeof e?e(a):d(d({},a),e)),t},p=function(e){var a=o(e.components);return n.createElement(l.Provider,{value:a},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var a=e.children;return n.createElement(n.Fragment,{},a)}},u=n.forwardRef((function(e,a){var t=e.components,r=e.mdxType,s=e.originalType,l=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),c=o(t),u=r,b=c["".concat(l,".").concat(u)]||c[u]||m[u]||s;return t?n.createElement(b,d(d({ref:a},p),{},{components:t})):n.createElement(b,d({ref:a},p))}));function b(e,a){var t=arguments,r=a&&a.mdxType;if("string"==typeof e||r){var s=t.length,d=new Array(s);d[0]=u;var i={};for(var l in a)hasOwnProperty.call(a,l)&&(i[l]=a[l]);i.originalType=e,i[c]="string"==typeof e?e:r,d[1]=i;for(var o=2;o{t.r(a),t.d(a,{Badge:()=>m,Bullet:()=>p,Details:()=>b,SpecifiedBy:()=>c,assets:()=>o,contentTitle:()=>i,default:()=>g,frontMatter:()=>d,metadata:()=>l,toc:()=>u});var n=t(87462),r=t(67294),s=t(3905);t(8209);const d={id:"address",title:"Address",hide_table_of_contents:!1},i=void 0,l={unversionedId:"build/api/schema/scalars/address",id:"build/api/schema/scalars/address",title:"Address",description:"The [Address] scalar type represents a transaction's address.",source:"@site/docs/build/api/schema/scalars/address.mdx",sourceDirName:"build/api/schema/scalars",slug:"/build/api/schema/scalars/address",permalink:"/build/api/schema/scalars/address",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"address",title:"Address",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"version",permalink:"/build/api/schema/queries/version"},next:{title:"Boolean",permalink:"/build/api/schema/scalars/boolean"}},o={},p=()=>(0,s.kt)(r.Fragment,null,(0,s.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),c=e=>(0,s.kt)(r.Fragment,null,"Specification",(0,s.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),m=e=>(0,s.kt)(r.Fragment,null,(0,s.kt)("span",{className:e.class},e.text)),u=[{value:"Returned by",id:"returned-by",level:3},{value:"Member of",id:"member-of",level:3}],b=e=>{let{dataOpen:a,dataClose:t,children:d,startOpen:i=!1}=e;const[l,o]=(0,r.useState)(i);return(0,s.kt)("details",(0,n.Z)({},l?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,s.kt)("summary",{onClick:e=>{e.preventDefault(),o((e=>!e))},style:{listStyle:"none"}},l?a:t),l&&d)},k={Bullet:p,SpecifiedBy:c,Badge:m,toc:u,Details:b},y="wrapper";function g(e){let{components:a,...t}=e;return(0,s.kt)(y,(0,n.Z)({},k,t,{components:a,mdxType:"MDXLayout"}),(0,s.kt)("p",null,"The ","[Address]"," scalar type represents a transaction's address.\nThe Address appears in a JSON response as Base16 formatted string. The parsed address will\nbe converted to a binary and any invalid address with an invalid algorithm or invalid size will be rejected"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-graphql"},"scalar Address\n")),(0,s.kt)("h3",{id:"returned-by"},"Returned by"),(0,s.kt)("p",null,(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/queries/genesis-address"},(0,s.kt)("inlineCode",{parentName:"a"},"genesisAddress"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"query",mdxType:"Badge"})),(0,s.kt)("h3",{id:"member-of"},"Member of"),(0,s.kt)("p",null,(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/queries/balance"},(0,s.kt)("inlineCode",{parentName:"a"},"balance"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"query",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/queries/chain-unspent-outputs"},(0,s.kt)("inlineCode",{parentName:"a"},"chainUnspentOutputs"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"query",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/consumed-inputs"},(0,s.kt)("inlineCode",{parentName:"a"},"ConsumedInputs"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/data"},(0,s.kt)("inlineCode",{parentName:"a"},"Data"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/queries/genesis-address"},(0,s.kt)("inlineCode",{parentName:"a"},"genesisAddress"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"query",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/queries/last-transaction"},(0,s.kt)("inlineCode",{parentName:"a"},"lastTransaction"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"query",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/node"},(0,s.kt)("inlineCode",{parentName:"a"},"Node"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/token"},(0,s.kt)("inlineCode",{parentName:"a"},"Token"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/queries/token"},(0,s.kt)("inlineCode",{parentName:"a"},"token"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"query",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/token-balance"},(0,s.kt)("inlineCode",{parentName:"a"},"TokenBalance"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/token-transfer"},(0,s.kt)("inlineCode",{parentName:"a"},"TokenTransfer"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/transaction"},(0,s.kt)("inlineCode",{parentName:"a"},"Transaction"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/queries/transaction"},(0,s.kt)("inlineCode",{parentName:"a"},"transaction"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"query",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/transaction-attestation"},(0,s.kt)("inlineCode",{parentName:"a"},"TransactionAttestation"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/queries/transaction-chain"},(0,s.kt)("inlineCode",{parentName:"a"},"transactionChain"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"query",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/subscriptions/transaction-confirmed"},(0,s.kt)("inlineCode",{parentName:"a"},"transactionConfirmed"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"subscription",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/transaction-error"},(0,s.kt)("inlineCode",{parentName:"a"},"TransactionError"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/subscriptions/transaction-error"},(0,s.kt)("inlineCode",{parentName:"a"},"transactionError"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"subscription",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/transaction-input"},(0,s.kt)("inlineCode",{parentName:"a"},"TransactionInput"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/queries/transaction-inputs"},(0,s.kt)("inlineCode",{parentName:"a"},"transactionInputs"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"query",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/transaction-movement"},(0,s.kt)("inlineCode",{parentName:"a"},"TransactionMovement"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/transaction-summary"},(0,s.kt)("inlineCode",{parentName:"a"},"TransactionSummary"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/uco-transfer"},(0,s.kt)("inlineCode",{parentName:"a"},"UcoTransfer"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/unspent-output"},(0,s.kt)("inlineCode",{parentName:"a"},"UnspentOutput"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}g.isMDXComponent=!0},8209:(e,a,t)=>{t(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1719],{3905:(e,a,t)=>{t.d(a,{Zo:()=>p,kt:()=>b});var n=t(67294);function r(e,a,t){return a in e?Object.defineProperty(e,a,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[a]=t,e}function s(e,a){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);a&&(n=n.filter((function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable}))),t.push.apply(t,n)}return t}function d(e){for(var a=1;a=0||(r[t]=e[t]);return r}(e,a);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var l=n.createContext({}),o=function(e){var a=n.useContext(l),t=a;return e&&(t="function"==typeof e?e(a):d(d({},a),e)),t},p=function(e){var a=o(e.components);return n.createElement(l.Provider,{value:a},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var a=e.children;return n.createElement(n.Fragment,{},a)}},u=n.forwardRef((function(e,a){var t=e.components,r=e.mdxType,s=e.originalType,l=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),c=o(t),u=r,b=c["".concat(l,".").concat(u)]||c[u]||m[u]||s;return t?n.createElement(b,d(d({ref:a},p),{},{components:t})):n.createElement(b,d({ref:a},p))}));function b(e,a){var t=arguments,r=a&&a.mdxType;if("string"==typeof e||r){var s=t.length,d=new Array(s);d[0]=u;var i={};for(var l in a)hasOwnProperty.call(a,l)&&(i[l]=a[l]);i.originalType=e,i[c]="string"==typeof e?e:r,d[1]=i;for(var o=2;o{t.r(a),t.d(a,{Badge:()=>m,Bullet:()=>p,Details:()=>b,SpecifiedBy:()=>c,assets:()=>o,contentTitle:()=>i,default:()=>g,frontMatter:()=>d,metadata:()=>l,toc:()=>u});var n=t(87462),r=t(67294),s=t(3905);t(8209);const d={id:"address",title:"Address",hide_table_of_contents:!1},i=void 0,l={unversionedId:"build/api/schema/scalars/address",id:"build/api/schema/scalars/address",title:"Address",description:"The [Address] scalar type represents a transaction's address.",source:"@site/docs/build/api/schema/scalars/address.mdx",sourceDirName:"build/api/schema/scalars",slug:"/build/api/schema/scalars/address",permalink:"/build/api/schema/scalars/address",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"address",title:"Address",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"version",permalink:"/build/api/schema/queries/version"},next:{title:"Boolean",permalink:"/build/api/schema/scalars/boolean"}},o={},p=()=>(0,s.kt)(r.Fragment,null,(0,s.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),c=e=>(0,s.kt)(r.Fragment,null,"Specification",(0,s.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),m=e=>(0,s.kt)(r.Fragment,null,(0,s.kt)("span",{className:e.class},e.text)),u=[{value:"Returned by",id:"returned-by",level:3},{value:"Member of",id:"member-of",level:3}],b=e=>{let{dataOpen:a,dataClose:t,children:d,startOpen:i=!1}=e;const[l,o]=(0,r.useState)(i);return(0,s.kt)("details",(0,n.Z)({},l?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,s.kt)("summary",{onClick:e=>{e.preventDefault(),o((e=>!e))},style:{listStyle:"none"}},l?a:t),l&&d)},k={Bullet:p,SpecifiedBy:c,Badge:m,toc:u,Details:b},y="wrapper";function g(e){let{components:a,...t}=e;return(0,s.kt)(y,(0,n.Z)({},k,t,{components:a,mdxType:"MDXLayout"}),(0,s.kt)("p",null,"The ","[Address]"," scalar type represents a transaction's address.\nThe Address appears in a JSON response as Base16 formatted string. The parsed address will\nbe converted to a binary and any invalid address with an invalid algorithm or invalid size will be rejected"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-graphql"},"scalar Address\n")),(0,s.kt)("h3",{id:"returned-by"},"Returned by"),(0,s.kt)("p",null,(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/queries/genesis-address"},(0,s.kt)("inlineCode",{parentName:"a"},"genesisAddress"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"query",mdxType:"Badge"})),(0,s.kt)("h3",{id:"member-of"},"Member of"),(0,s.kt)("p",null,(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/queries/balance"},(0,s.kt)("inlineCode",{parentName:"a"},"balance"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"query",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/queries/chain-unspent-outputs"},(0,s.kt)("inlineCode",{parentName:"a"},"chainUnspentOutputs"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"query",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/consumed-inputs"},(0,s.kt)("inlineCode",{parentName:"a"},"ConsumedInputs"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/data"},(0,s.kt)("inlineCode",{parentName:"a"},"Data"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/queries/genesis-address"},(0,s.kt)("inlineCode",{parentName:"a"},"genesisAddress"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"query",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/queries/last-transaction"},(0,s.kt)("inlineCode",{parentName:"a"},"lastTransaction"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"query",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/node"},(0,s.kt)("inlineCode",{parentName:"a"},"Node"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/token"},(0,s.kt)("inlineCode",{parentName:"a"},"Token"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/queries/token"},(0,s.kt)("inlineCode",{parentName:"a"},"token"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"query",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/token-balance"},(0,s.kt)("inlineCode",{parentName:"a"},"TokenBalance"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/token-transfer"},(0,s.kt)("inlineCode",{parentName:"a"},"TokenTransfer"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/transaction"},(0,s.kt)("inlineCode",{parentName:"a"},"Transaction"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/queries/transaction"},(0,s.kt)("inlineCode",{parentName:"a"},"transaction"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"query",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/transaction-attestation"},(0,s.kt)("inlineCode",{parentName:"a"},"TransactionAttestation"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/queries/transaction-chain"},(0,s.kt)("inlineCode",{parentName:"a"},"transactionChain"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"query",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/subscriptions/transaction-confirmed"},(0,s.kt)("inlineCode",{parentName:"a"},"transactionConfirmed"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"subscription",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/transaction-error"},(0,s.kt)("inlineCode",{parentName:"a"},"TransactionError"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/subscriptions/transaction-error"},(0,s.kt)("inlineCode",{parentName:"a"},"transactionError"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"subscription",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/transaction-input"},(0,s.kt)("inlineCode",{parentName:"a"},"TransactionInput"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/queries/transaction-inputs"},(0,s.kt)("inlineCode",{parentName:"a"},"transactionInputs"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"query",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/transaction-movement"},(0,s.kt)("inlineCode",{parentName:"a"},"TransactionMovement"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/transaction-summary"},(0,s.kt)("inlineCode",{parentName:"a"},"TransactionSummary"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/uco-transfer"},(0,s.kt)("inlineCode",{parentName:"a"},"UcoTransfer"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(p,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/unspent-output"},(0,s.kt)("inlineCode",{parentName:"a"},"UnspentOutput"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}g.isMDXComponent=!0},8209:(e,a,t)=>{t(67294)}}]); \ No newline at end of file diff --git a/assets/js/ae218501.d4f8bc9f.js b/assets/js/ae218501.0699d432.js similarity index 98% rename from assets/js/ae218501.d4f8bc9f.js rename to assets/js/ae218501.0699d432.js index f61b603cc..d98329034 100644 --- a/assets/js/ae218501.d4f8bc9f.js +++ b/assets/js/ae218501.0699d432.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7443],{3905:(e,t,r)=>{r.d(t,{Zo:()=>d,kt:()=>m});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),i=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},d=function(e){var t=i(e.components);return n.createElement(c.Provider,{value:t},e.children)},p="mdxType",f={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),p=i(r),u=a,m=p["".concat(c,".").concat(u)]||p[u]||f[u]||o;return r?n.createElement(m,l(l({ref:t},d),{},{components:r})):n.createElement(m,l({ref:t},d))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=u;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[p]="string"==typeof e?e:a,l[1]=s;for(var i=2;i{r.r(t),r.d(t,{Badge:()=>f,Bullet:()=>d,Details:()=>m,SpecifiedBy:()=>p,assets:()=>i,contentTitle:()=>s,default:()=>k,frontMatter:()=>l,metadata:()=>c,toc:()=>u});var n=r(87462),a=r(67294),o=r(3905);r(8209);const l={id:"token-ledger",title:"TokenLedger",hide_table_of_contents:!1},s=void 0,c={unversionedId:"build/api/schema/objects/token-ledger",id:"build/api/schema/objects/token-ledger",title:"TokenLedger",description:"[TokenLedger] represents the transfers to perform on the UCO ledger",source:"@site/docs/build/api/schema/objects/token-ledger.mdx",sourceDirName:"build/api/schema/objects",slug:"/build/api/schema/objects/token-ledger",permalink:"/build/api/schema/objects/token-ledger",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"token-ledger",title:"TokenLedger",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"TokenBalance",permalink:"/build/api/schema/objects/token-balance"},next:{title:"TokenTransfer",permalink:"/build/api/schema/objects/token-transfer"}},i={},d=()=>(0,o.kt)(a.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=e=>(0,o.kt)(a.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),f=e=>(0,o.kt)(a.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),u=[{value:"Fields",id:"fields",level:3},{value:'TokenLedger.transfers[TokenTransfer] ',id:"code-style-fontweight-normal-tokenledgerbtransfersbcodetokentransfer--",level:4},{value:"Member of",id:"member-of",level:3}],m=e=>{let{dataOpen:t,dataClose:r,children:l,startOpen:s=!1}=e;const[c,i]=(0,a.useState)(s);return(0,o.kt)("details",(0,n.Z)({},c?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),i((e=>!e))},style:{listStyle:"none"}},c?t:r),c&&l)},b={Bullet:d,SpecifiedBy:p,Badge:f,toc:u,Details:m},g="wrapper";function k(e){let{components:t,...r}=e;return(0,o.kt)(g,(0,n.Z)({},b,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"[TokenLedger]"," represents the transfers to perform on the UCO ledger"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"type TokenLedger {\n transfers: [TokenTransfer]\n}\n")),(0,o.kt)("h3",{id:"fields"},"Fields"),(0,o.kt)("h4",{id:"code-style-fontweight-normal-tokenledgerbtransfersbcodetokentransfer--"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"TokenLedger.",(0,o.kt)("b",null,"transfers"))),(0,o.kt)(d,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/token-transfer"},(0,o.kt)("inlineCode",{parentName:"a"},"[TokenTransfer]"))," ",(0,o.kt)(f,{class:"badge badge--secondary",text:"list",mdxType:"Badge"})," ",(0,o.kt)(f,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h3",{id:"member-of"},"Member of"),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/ledger"},(0,o.kt)("inlineCode",{parentName:"a"},"Ledger"))," ",(0,o.kt)(f,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}k.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7443],{3905:(e,t,r)=>{r.d(t,{Zo:()=>d,kt:()=>m});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),i=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},d=function(e){var t=i(e.components);return n.createElement(c.Provider,{value:t},e.children)},p="mdxType",f={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),p=i(r),u=a,m=p["".concat(c,".").concat(u)]||p[u]||f[u]||o;return r?n.createElement(m,l(l({ref:t},d),{},{components:r})):n.createElement(m,l({ref:t},d))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=u;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[p]="string"==typeof e?e:a,l[1]=s;for(var i=2;i{r.r(t),r.d(t,{Badge:()=>f,Bullet:()=>d,Details:()=>m,SpecifiedBy:()=>p,assets:()=>i,contentTitle:()=>s,default:()=>k,frontMatter:()=>l,metadata:()=>c,toc:()=>u});var n=r(87462),a=r(67294),o=r(3905);r(8209);const l={id:"token-ledger",title:"TokenLedger",hide_table_of_contents:!1},s=void 0,c={unversionedId:"build/api/schema/objects/token-ledger",id:"build/api/schema/objects/token-ledger",title:"TokenLedger",description:"[TokenLedger] represents the transfers to perform on the UCO ledger",source:"@site/docs/build/api/schema/objects/token-ledger.mdx",sourceDirName:"build/api/schema/objects",slug:"/build/api/schema/objects/token-ledger",permalink:"/build/api/schema/objects/token-ledger",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"token-ledger",title:"TokenLedger",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"TokenBalance",permalink:"/build/api/schema/objects/token-balance"},next:{title:"TokenTransfer",permalink:"/build/api/schema/objects/token-transfer"}},i={},d=()=>(0,o.kt)(a.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=e=>(0,o.kt)(a.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),f=e=>(0,o.kt)(a.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),u=[{value:"Fields",id:"fields",level:3},{value:'TokenLedger.transfers[TokenTransfer] ',id:"code-style-fontweight-normal-tokenledgerbtransfersbcodetokentransfer--",level:4},{value:"Member of",id:"member-of",level:3}],m=e=>{let{dataOpen:t,dataClose:r,children:l,startOpen:s=!1}=e;const[c,i]=(0,a.useState)(s);return(0,o.kt)("details",(0,n.Z)({},c?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),i((e=>!e))},style:{listStyle:"none"}},c?t:r),c&&l)},b={Bullet:d,SpecifiedBy:p,Badge:f,toc:u,Details:m},g="wrapper";function k(e){let{components:t,...r}=e;return(0,o.kt)(g,(0,n.Z)({},b,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"[TokenLedger]"," represents the transfers to perform on the UCO ledger"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"type TokenLedger {\n transfers: [TokenTransfer]\n}\n")),(0,o.kt)("h3",{id:"fields"},"Fields"),(0,o.kt)("h4",{id:"code-style-fontweight-normal-tokenledgerbtransfersbcodetokentransfer--"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"TokenLedger.",(0,o.kt)("b",null,"transfers"))),(0,o.kt)(d,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/token-transfer"},(0,o.kt)("inlineCode",{parentName:"a"},"[TokenTransfer]"))," ",(0,o.kt)(f,{class:"badge badge--secondary",text:"list",mdxType:"Badge"})," ",(0,o.kt)(f,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h3",{id:"member-of"},"Member of"),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/ledger"},(0,o.kt)("inlineCode",{parentName:"a"},"Ledger"))," ",(0,o.kt)(f,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}k.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file diff --git a/assets/js/aef11b3c.2d680cf0.js b/assets/js/aef11b3c.e6caae34.js similarity index 99% rename from assets/js/aef11b3c.2d680cf0.js rename to assets/js/aef11b3c.e6caae34.js index cdd47e62f..3022b5265 100644 --- a/assets/js/aef11b3c.2d680cf0.js +++ b/assets/js/aef11b3c.e6caae34.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9573],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>f});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function s(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var c=a.createContext({}),l=function(e){var t=a.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},d=function(e){var t=l(e.components);return a.createElement(c.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,c=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),p=l(n),m=r,f=p["".concat(c,".").concat(m)]||p[m]||u[m]||o;return n?a.createElement(f,s(s({ref:t},d),{},{components:n})):a.createElement(f,s({ref:t},d))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,s=new Array(o);s[0]=m;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[p]="string"==typeof e?e:r,s[1]=i;for(var l=2;l{n.r(t),n.d(t,{Badge:()=>u,Bullet:()=>d,Details:()=>f,SpecifiedBy:()=>p,assets:()=>l,contentTitle:()=>i,default:()=>g,frontMatter:()=>s,metadata:()=>c,toc:()=>m});var a=n(87462),r=n(67294),o=n(3905);n(8209);const s={id:"transaction-confirmed",title:"transactionConfirmed",hide_table_of_contents:!1},i=void 0,c={unversionedId:"build/api/schema/subscriptions/transaction-confirmed",id:"build/api/schema/subscriptions/transaction-confirmed",title:"transactionConfirmed",description:"Subscribe to be notified when a transaction is stored (if acted as welcome node)",source:"@site/docs/build/api/schema/subscriptions/transaction-confirmed.mdx",sourceDirName:"build/api/schema/subscriptions",slug:"/build/api/schema/subscriptions/transaction-confirmed",permalink:"/build/api/schema/subscriptions/transaction-confirmed",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"transaction-confirmed",title:"transactionConfirmed",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"oracleUpdate",permalink:"/build/api/schema/subscriptions/oracle-update"},next:{title:"transactionError",permalink:"/build/api/schema/subscriptions/transaction-error"}},l={},d=()=>(0,o.kt)(r.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=e=>(0,o.kt)(r.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,o.kt)(r.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),m=[{value:"Arguments",id:"arguments",level:3},{value:'transactionConfirmed.addressAddress! ',id:"code-style-fontweight-normal-transactionconfirmedbaddressbcodeaddress--",level:4},{value:"Type",id:"type",level:3},{value:'TransactionAttestation ',id:"transactionattestation-",level:4}],f=e=>{let{dataOpen:t,dataClose:n,children:s,startOpen:i=!1}=e;const[c,l]=(0,r.useState)(i);return(0,o.kt)("details",(0,a.Z)({},c?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),l((e=>!e))},style:{listStyle:"none"}},c?t:n),c&&s)},b={Bullet:d,SpecifiedBy:p,Badge:u,toc:m,Details:f},y="wrapper";function g(e){let{components:t,...n}=e;return(0,o.kt)(y,(0,a.Z)({},b,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Subscribe to be notified when a transaction is stored (if acted as welcome node)"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"transactionConfirmed(\n address: Address!\n): TransactionAttestation\n")),(0,o.kt)("h3",{id:"arguments"},"Arguments"),(0,o.kt)("h4",{id:"code-style-fontweight-normal-transactionconfirmedbaddressbcodeaddress--"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"transactionConfirmed.",(0,o.kt)("b",null,"address"))),(0,o.kt)(d,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/address"},(0,o.kt)("inlineCode",{parentName:"a"},"Address!"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"non-null",mdxType:"Badge"})," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h3",{id:"type"},"Type"),(0,o.kt)("h4",{id:"transactionattestation-"},(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/transaction-attestation"},(0,o.kt)("inlineCode",{parentName:"a"},"TransactionAttestation"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,o.kt)("blockquote",null,(0,o.kt)("p",{parentName:"blockquote"},"[TransactionAttestation]"," represents an attestation when a transaction is successfully validated and stored.\nFew attestations can be received with differents confirmations to ensure a better security of the replication.")))}g.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9573],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>f});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function s(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var c=a.createContext({}),l=function(e){var t=a.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},d=function(e){var t=l(e.components);return a.createElement(c.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,c=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),p=l(n),m=r,f=p["".concat(c,".").concat(m)]||p[m]||u[m]||o;return n?a.createElement(f,s(s({ref:t},d),{},{components:n})):a.createElement(f,s({ref:t},d))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,s=new Array(o);s[0]=m;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[p]="string"==typeof e?e:r,s[1]=i;for(var l=2;l{n.r(t),n.d(t,{Badge:()=>u,Bullet:()=>d,Details:()=>f,SpecifiedBy:()=>p,assets:()=>l,contentTitle:()=>i,default:()=>g,frontMatter:()=>s,metadata:()=>c,toc:()=>m});var a=n(87462),r=n(67294),o=n(3905);n(8209);const s={id:"transaction-confirmed",title:"transactionConfirmed",hide_table_of_contents:!1},i=void 0,c={unversionedId:"build/api/schema/subscriptions/transaction-confirmed",id:"build/api/schema/subscriptions/transaction-confirmed",title:"transactionConfirmed",description:"Subscribe to be notified when a transaction is stored (if acted as welcome node)",source:"@site/docs/build/api/schema/subscriptions/transaction-confirmed.mdx",sourceDirName:"build/api/schema/subscriptions",slug:"/build/api/schema/subscriptions/transaction-confirmed",permalink:"/build/api/schema/subscriptions/transaction-confirmed",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"transaction-confirmed",title:"transactionConfirmed",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"oracleUpdate",permalink:"/build/api/schema/subscriptions/oracle-update"},next:{title:"transactionError",permalink:"/build/api/schema/subscriptions/transaction-error"}},l={},d=()=>(0,o.kt)(r.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=e=>(0,o.kt)(r.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,o.kt)(r.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),m=[{value:"Arguments",id:"arguments",level:3},{value:'transactionConfirmed.addressAddress! ',id:"code-style-fontweight-normal-transactionconfirmedbaddressbcodeaddress--",level:4},{value:"Type",id:"type",level:3},{value:'TransactionAttestation ',id:"transactionattestation-",level:4}],f=e=>{let{dataOpen:t,dataClose:n,children:s,startOpen:i=!1}=e;const[c,l]=(0,r.useState)(i);return(0,o.kt)("details",(0,a.Z)({},c?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),l((e=>!e))},style:{listStyle:"none"}},c?t:n),c&&s)},b={Bullet:d,SpecifiedBy:p,Badge:u,toc:m,Details:f},y="wrapper";function g(e){let{components:t,...n}=e;return(0,o.kt)(y,(0,a.Z)({},b,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Subscribe to be notified when a transaction is stored (if acted as welcome node)"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"transactionConfirmed(\n address: Address!\n): TransactionAttestation\n")),(0,o.kt)("h3",{id:"arguments"},"Arguments"),(0,o.kt)("h4",{id:"code-style-fontweight-normal-transactionconfirmedbaddressbcodeaddress--"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"transactionConfirmed.",(0,o.kt)("b",null,"address"))),(0,o.kt)(d,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/address"},(0,o.kt)("inlineCode",{parentName:"a"},"Address!"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"non-null",mdxType:"Badge"})," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h3",{id:"type"},"Type"),(0,o.kt)("h4",{id:"transactionattestation-"},(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/transaction-attestation"},(0,o.kt)("inlineCode",{parentName:"a"},"TransactionAttestation"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,o.kt)("blockquote",null,(0,o.kt)("p",{parentName:"blockquote"},"[TransactionAttestation]"," represents an attestation when a transaction is successfully validated and stored.\nFew attestations can be received with differents confirmations to ensure a better security of the replication.")))}g.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/b17a2c3b.6e3dbb6f.js b/assets/js/b17a2c3b.0b1476ca.js similarity index 98% rename from assets/js/b17a2c3b.6e3dbb6f.js rename to assets/js/b17a2c3b.0b1476ca.js index 25d1927b0..fcc4f05ef 100644 --- a/assets/js/b17a2c3b.6e3dbb6f.js +++ b/assets/js/b17a2c3b.0b1476ca.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4099],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>f});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),c=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),p=c(n),m=a,f=p["".concat(s,".").concat(m)]||p[m]||u[m]||o;return n?r.createElement(f,i(i({ref:t},d),{},{components:n})):r.createElement(f,i({ref:t},d))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[p]="string"==typeof e?e:a,i[1]=l;for(var c=2;c{n.r(t),n.d(t,{Badge:()=>u,Bullet:()=>d,Details:()=>f,SpecifiedBy:()=>p,assets:()=>c,contentTitle:()=>l,default:()=>g,frontMatter:()=>i,metadata:()=>s,toc:()=>m});var r=n(87462),a=n(67294),o=n(3905);n(8209);const i={id:"nodes",title:"nodes",hide_table_of_contents:!1},l=void 0,s={unversionedId:"build/api/schema/queries/nodes",id:"build/api/schema/queries/nodes",title:"nodes",description:"List all the nodes registered in the network",source:"@site/docs/build/api/schema/queries/nodes.mdx",sourceDirName:"build/api/schema/queries",slug:"/build/api/schema/queries/nodes",permalink:"/build/api/schema/queries/nodes",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"nodes",title:"nodes",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"networkTransactions",permalink:"/build/api/schema/queries/network-transactions"},next:{title:"oracleData",permalink:"/build/api/schema/queries/oracle-data"}},c={},d=()=>(0,o.kt)(a.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=e=>(0,o.kt)(a.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,o.kt)(a.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),m=[{value:"Type",id:"type",level:3},{value:'Node ',id:"node-",level:4}],f=e=>{let{dataOpen:t,dataClose:n,children:i,startOpen:l=!1}=e;const[s,c]=(0,a.useState)(l);return(0,o.kt)("details",(0,r.Z)({},s?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),c((e=>!e))},style:{listStyle:"none"}},s?t:n),s&&i)},b={Bullet:d,SpecifiedBy:p,Badge:u,toc:m,Details:f},y="wrapper";function g(e){let{components:t,...n}=e;return(0,o.kt)(y,(0,r.Z)({},b,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"List all the nodes registered in the network"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"nodes: [Node]\n")),(0,o.kt)("h3",{id:"type"},"Type"),(0,o.kt)("h4",{id:"node-"},(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/node"},(0,o.kt)("inlineCode",{parentName:"a"},"Node"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,o.kt)("blockquote",null,(0,o.kt)("p",{parentName:"blockquote"},"[Node]"," represents a node in the network")))}g.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4099],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>f});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),c=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),p=c(n),m=a,f=p["".concat(s,".").concat(m)]||p[m]||u[m]||o;return n?r.createElement(f,i(i({ref:t},d),{},{components:n})):r.createElement(f,i({ref:t},d))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[p]="string"==typeof e?e:a,i[1]=l;for(var c=2;c{n.r(t),n.d(t,{Badge:()=>u,Bullet:()=>d,Details:()=>f,SpecifiedBy:()=>p,assets:()=>c,contentTitle:()=>l,default:()=>g,frontMatter:()=>i,metadata:()=>s,toc:()=>m});var r=n(87462),a=n(67294),o=n(3905);n(8209);const i={id:"nodes",title:"nodes",hide_table_of_contents:!1},l=void 0,s={unversionedId:"build/api/schema/queries/nodes",id:"build/api/schema/queries/nodes",title:"nodes",description:"List all the nodes registered in the network",source:"@site/docs/build/api/schema/queries/nodes.mdx",sourceDirName:"build/api/schema/queries",slug:"/build/api/schema/queries/nodes",permalink:"/build/api/schema/queries/nodes",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"nodes",title:"nodes",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"networkTransactions",permalink:"/build/api/schema/queries/network-transactions"},next:{title:"oracleData",permalink:"/build/api/schema/queries/oracle-data"}},c={},d=()=>(0,o.kt)(a.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=e=>(0,o.kt)(a.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,o.kt)(a.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),m=[{value:"Type",id:"type",level:3},{value:'Node ',id:"node-",level:4}],f=e=>{let{dataOpen:t,dataClose:n,children:i,startOpen:l=!1}=e;const[s,c]=(0,a.useState)(l);return(0,o.kt)("details",(0,r.Z)({},s?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),c((e=>!e))},style:{listStyle:"none"}},s?t:n),s&&i)},b={Bullet:d,SpecifiedBy:p,Badge:u,toc:m,Details:f},y="wrapper";function g(e){let{components:t,...n}=e;return(0,o.kt)(y,(0,r.Z)({},b,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"List all the nodes registered in the network"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"nodes: [Node]\n")),(0,o.kt)("h3",{id:"type"},"Type"),(0,o.kt)("h4",{id:"node-"},(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/node"},(0,o.kt)("inlineCode",{parentName:"a"},"Node"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,o.kt)("blockquote",null,(0,o.kt)("p",{parentName:"blockquote"},"[Node]"," represents a node in the network")))}g.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/b2e52e63.589f58c7.js b/assets/js/b2e52e63.b02590e5.js similarity index 99% rename from assets/js/b2e52e63.589f58c7.js rename to assets/js/b2e52e63.b02590e5.js index a708ba5d0..03cc7137c 100644 --- a/assets/js/b2e52e63.589f58c7.js +++ b/assets/js/b2e52e63.b02590e5.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1938],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>m});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),c=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=c(n),h=r,m=d["".concat(l,".").concat(h)]||d[h]||u[h]||i;return n?a.createElement(m,o(o({ref:t},p),{},{components:n})):a.createElement(m,o({ref:t},p))}));function m(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,o=new Array(i);o[0]=h;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[d]="string"==typeof e?e:r,o[1]=s;for(var c=2;c{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>s,toc:()=>c});var a=n(87462),r=(n(67294),n(3905));n(8209);const i={id:"condition",title:"Smart Contracts - Condition block",sidebar_label:"Condition",sidebar_position:2},o=void 0,s={unversionedId:"build/smart-contracts/language/condition",id:"build/smart-contracts/language/condition",title:"Smart Contracts - Condition block",description:"Conditions are blocks which purpose is to check the validity of a transaction.",source:"@site/docs/build/smart-contracts/language/condition.md",sourceDirName:"build/smart-contracts/language",slug:"/build/smart-contracts/language/condition",permalink:"/build/smart-contracts/language/condition",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",sidebarPosition:2,frontMatter:{id:"condition",title:"Smart Contracts - Condition block",sidebar_label:"Condition",sidebar_position:2},sidebar:"docs",previous:{title:"Triggers",permalink:"/build/smart-contracts/language/triggers"},next:{title:"Actions",permalink:"/build/smart-contracts/language/actions"}},l={},c=[{value:"Boolean expressions",id:"boolean-expressions",level:2},{value:"Rules",id:"rules",level:3},{value:"Condition inherit",id:"condition-inherit",level:2},{value:"Examples",id:"examples",level:3},{value:"Condition triggered by a transaction",id:"condition-triggered-by-a-transaction",level:2},{value:"Examples",id:"examples-1",level:3},{value:"Condition triggered by an oracle",id:"condition-triggered-by-an-oracle",level:2},{value:"Examples",id:"examples-2",level:3}],p={toc:c},d="wrapper";function u(e){let{components:t,...n}=e;return(0,r.kt)(d,(0,a.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"Conditions are blocks which purpose is to check the validity of a transaction."),(0,r.kt)("p",null,"There are 3 types of ",(0,r.kt)("inlineCode",{parentName:"p"},"condition")," block:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"#condition-inherit"},"inherit")," (optional)"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"#condition-transaction"},"transaction")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"#condition-oracle"},"oracle"))),(0,r.kt)("p",null,"There are 2 differents forms. You may use whichever is the more suitable for you."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},"condition triggered_by: oracle do\n \nend\n\ncondition triggered_by: transaction, on: do\n \nend\n\n# boolean expressions form\ncondition inherit: [\n : ,\n : ,\n : ,\n : \n]\n\n# legacy: before there were named actions, there was only one possible action\ncondition transaction: [\n : ,\n : ,\n : ,\n : \n]\n\n# legacy: old syntax\ncondition oracle: [\n : ,\n : ,\n : ,\n : \n]\n")),(0,r.kt)("admonition",{title:"throw keyword",type:"tip"},(0,r.kt)("p",{parentName:"admonition"},"The ",(0,r.kt)("a",{parentName:"p",href:"/build/smart-contracts/language/#errors"},(0,r.kt)("inlineCode",{parentName:"a"},"throw"))," keyword is another way to reject a condition. It stops the evaluation of the condition and rejects it with a ",(0,r.kt)("inlineCode",{parentName:"p"},"code"),", a ",(0,r.kt)("inlineCode",{parentName:"p"},"message")," and optionaly some ",(0,r.kt)("inlineCode",{parentName:"p"},"data"),".")),(0,r.kt)("h2",{id:"boolean-expressions"},"Boolean expressions"),(0,r.kt)("p",null,"It is a map where the keys are the ",(0,r.kt)("a",{parentName:"p",href:"/build/smart-contracts/language/actions#appendix-1-the-transaction-map"},"transaction's fields"),", and the values are expressions that must return a boolean or a value.\nThey work for any conditions type, but we suggest to use them with the inherit conditions only."),(0,r.kt)("p",null,"Example:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},'condition inherit: [\n # \n # all the transactions of this chain will be of type "contract"\n type: "contract",\n\n # \n # the content is mutable\n content: true,\n\n # \n # all the transactions must contains at least 1 UCO transfers\n # here uco_transfers is automatically given as 1st argument of Map.size()\n uco_transfers: Map.size() > 0\n]\n')),(0,r.kt)("h3",{id:"rules"},"Rules"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},'All "boolean expressions" must pass for the transaction to be valid.')),(0,r.kt)("li",{parentName:"ol"},'If the expression returns true, this "boolean expression" passes.'),(0,r.kt)("li",{parentName:"ol"},'If the expression returns false, this "boolean expression" fails.'),(0,r.kt)("li",{parentName:"ol"},'If the expression returns a value, this "boolean expression" passes if the transaction\'s property has the same value.')),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"In these blocks, there is also some sugar to automatically add the property as an argument of the functions called. For example ",(0,r.kt)("inlineCode",{parentName:"p"},"uco_transfers: Map.size() > 0")," will automatically expand to ",(0,r.kt)("inlineCode",{parentName:"p"},"uco_transfers: Map.size(transaction.uco_transfers) > 0"),".")),(0,r.kt)("h2",{id:"condition-inherit"},"Condition inherit"),(0,r.kt)("p",null,"The ",(0,r.kt)("inlineCode",{parentName:"p"},"condition inherit")," purpose is to check the next transaction generated by the smart contract after its code execution. It ensures the next transaction respects specific rules so the smart contract chain cannot be compromised.\nIt is automatically forwarded from transaction to transaction unless it is manually overriden."),(0,r.kt)("p",null,"There are 2 global variables for this condition block:"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("inlineCode",{parentName:"li"},"previous")," is the transaction of the current contract."),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("inlineCode",{parentName:"li"},"next"),' is the "next transaction".')),(0,r.kt)("p",null,"See ",(0,r.kt)("a",{parentName:"p",href:"/build/smart-contracts/language/actions#appendix-1-the-transaction-map"},"Action's Appendix 1")," for the details of the transaction map."),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"A specific rule is applied for inherit condition, if a field is not specified in the conditions, it assumes that it must have the same value as the previous transaction. Example, if code is ommited, this is assumed: ",(0,r.kt)("inlineCode",{parentName:"p"},"code: previous.code == next.code")),(0,r.kt)("p",{parentName:"admonition"},"This means that an empty inherit condition (",(0,r.kt)("inlineCode",{parentName:"p"},"condition inherit: []"),") means no changes is accepted, resulting in locking the chain.")),(0,r.kt)("h3",{id:"examples"},"Examples"),(0,r.kt)("p",null,"Pass only if it is executed before a timestamp:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},"condition inherit: [\n timestamp: next.timestamp < 1677598185\n]\n")),(0,r.kt)("p",null,'Pass only if the transaction is type "transfer", without any uco_transfers and at least one token_transfers:'),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},'condition inherit: [\n type: "transfer",\n uco_transfers: Map.size() == 0,\n token_transfers: Map.size() > 0\n]\n')),(0,r.kt)("p",null,"Pass only if chain has been closed (the code part) and there is a 2 UCO transfer to an address depending on the time:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},'condition inherit: [\n code: "condition inherit: []",\n uco_transfers:\n if Time.now() >= 1674564088 do\n ["00003bafdfb7a8e66b59de5692b79088063853bbd69a7d555faec906e6215e57ff98": 2]\n else\n ["0000ba28ce06631ff2ef4fe3dc89a34be13c0d252f8952bbfa3173b03dbef3c04afd": 2]\n end\n]\n')),(0,r.kt)("p",null,'Pass only if the key "index" of the content is greater than the previous one:'),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},'condition inherit do\n json_path = "$.index"\n if Json.path_match?(next.content, json_path) do\n previous_index = Json.path_extract(previous.content, json_path)\n new_index = Json.path_extract(next.content, json_path)\n\n new_index > previous_index\n else\n false\n end\nend\n')),(0,r.kt)("h2",{id:"condition-triggered-by-a-transaction"},"Condition triggered by a transaction"),(0,r.kt)("p",null,"Its purpose is to check the transaction that triggered an action on the contract. It must return a boolean."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},"condition triggered_by: transaction do\n false\nend\n\ncondition triggered_by: transaction, on: refund() do\n true\nend\n")),(0,r.kt)("p",null,"There are 2 global variables for this condition block:"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("inlineCode",{parentName:"li"},"contract")," is the transaction of the current contract."),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("inlineCode",{parentName:"li"},"transaction")," is the transaction that triggered the contract.")),(0,r.kt)("p",null,"See ",(0,r.kt)("a",{parentName:"p",href:"/build/smart-contracts/language/actions#appendix-1-the-transaction-map"},"Action's Appendix 1")," for the details of the transaction map."),(0,r.kt)("h3",{id:"examples-1"},"Examples"),(0,r.kt)("p",null,"Pass only if the transaction that triggered the contract comes from a specific chain (a chain can be identified by it's genesis address):"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},"condition triggered_by: transaction, as: [\n address: Chain.get_genesis_address() == 0x00001234ab\n]\n")),(0,r.kt)("p",null,"Pass only if the transaction that triggered sent 10 UCOs to this contract:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},"condition triggered_by: transaction, as: [\n uco_transfers: Map.get(contract.address) == 10\n]\n")),(0,r.kt)("p",null,"Pass only if the candidate is in the list:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},'condition triggered_by: transaction, on: vote(candidate) do\n List.in?(["Peter", "Sofia", "Claire"], candidate)\nend\n')),(0,r.kt)("p",null,"Pass only if the secret is correct and the lock_time is in the future:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},'condition triggered_by: transaction, on: withdraw(secret) do\n valid_secret = Crypto.hash(secret) == State.get("secret_hash")\n valid_time = Time.now() < State.get("lock_time")\n valid_secret && valid_time\nend\n')),(0,r.kt)("p",null,"Same as previous but using throw:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},'condition triggered_by: transaction, on: withdraw(secret) do\n if Crypto.hash(secret) != State.get("secret_hash") do\n throw code: 1, message: "invalid secret"\n end\n\n if Time.now() > State.get("lock_time") do\n throw code: 2, message: "time expired"\n end\n\n true\nend\n')),(0,r.kt)("h2",{id:"condition-triggered-by-an-oracle"},"Condition triggered by an oracle"),(0,r.kt)("p",null,"Its purpose is to check the oracle transaction that triggered the contract. It must return a boolean. It is very useful because not every oracle transaction contains the data you need."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},"condition triggered_by: oracle do\n true\nend\n")),(0,r.kt)("p",null,"There are 2 global variables for this condition block:"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("inlineCode",{parentName:"li"},"contract")," is the transaction of the current contract."),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("inlineCode",{parentName:"li"},"transaction")," is the oracle transaction that triggered the contract.")),(0,r.kt)("p",null,"See ",(0,r.kt)("a",{parentName:"p",href:"/build/smart-contracts/language/actions#appendix-1-the-transaction-map"},"Action's Appendix 1")," for the details of the transaction map."),(0,r.kt)("h3",{id:"examples-2"},"Examples"),(0,r.kt)("p",null,"Pass only if the transaction's content is a JSON string including the UCO price in USD."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},'condition triggered_by: oracle, as: [\n content: Json.path_match?("$.uco.usd")\n]\n')),(0,r.kt)("p",null,"Pass only if the transaction's content is a JSON string including the Vancouver's weather and if it's raining there."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},'condition triggered_by: oracle do\n Json.path_match?(transaction.content, "$.canada.vancouver.raining?")\nend\n')))}u.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1938],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>m});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),c=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=c(n),h=r,m=d["".concat(l,".").concat(h)]||d[h]||u[h]||i;return n?a.createElement(m,o(o({ref:t},p),{},{components:n})):a.createElement(m,o({ref:t},p))}));function m(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,o=new Array(i);o[0]=h;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[d]="string"==typeof e?e:r,o[1]=s;for(var c=2;c{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>s,toc:()=>c});var a=n(87462),r=(n(67294),n(3905));n(8209);const i={id:"condition",title:"Smart Contracts - Condition block",sidebar_label:"Condition",sidebar_position:2},o=void 0,s={unversionedId:"build/smart-contracts/language/condition",id:"build/smart-contracts/language/condition",title:"Smart Contracts - Condition block",description:"Conditions are blocks which purpose is to check the validity of a transaction.",source:"@site/docs/build/smart-contracts/language/condition.md",sourceDirName:"build/smart-contracts/language",slug:"/build/smart-contracts/language/condition",permalink:"/build/smart-contracts/language/condition",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",sidebarPosition:2,frontMatter:{id:"condition",title:"Smart Contracts - Condition block",sidebar_label:"Condition",sidebar_position:2},sidebar:"docs",previous:{title:"Triggers",permalink:"/build/smart-contracts/language/triggers"},next:{title:"Actions",permalink:"/build/smart-contracts/language/actions"}},l={},c=[{value:"Boolean expressions",id:"boolean-expressions",level:2},{value:"Rules",id:"rules",level:3},{value:"Condition inherit",id:"condition-inherit",level:2},{value:"Examples",id:"examples",level:3},{value:"Condition triggered by a transaction",id:"condition-triggered-by-a-transaction",level:2},{value:"Examples",id:"examples-1",level:3},{value:"Condition triggered by an oracle",id:"condition-triggered-by-an-oracle",level:2},{value:"Examples",id:"examples-2",level:3}],p={toc:c},d="wrapper";function u(e){let{components:t,...n}=e;return(0,r.kt)(d,(0,a.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"Conditions are blocks which purpose is to check the validity of a transaction."),(0,r.kt)("p",null,"There are 3 types of ",(0,r.kt)("inlineCode",{parentName:"p"},"condition")," block:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"#condition-inherit"},"inherit")," (optional)"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"#condition-transaction"},"transaction")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"#condition-oracle"},"oracle"))),(0,r.kt)("p",null,"There are 2 differents forms. You may use whichever is the more suitable for you."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},"condition triggered_by: oracle do\n \nend\n\ncondition triggered_by: transaction, on: do\n \nend\n\n# boolean expressions form\ncondition inherit: [\n : ,\n : ,\n : ,\n : \n]\n\n# legacy: before there were named actions, there was only one possible action\ncondition transaction: [\n : ,\n : ,\n : ,\n : \n]\n\n# legacy: old syntax\ncondition oracle: [\n : ,\n : ,\n : ,\n : \n]\n")),(0,r.kt)("admonition",{title:"throw keyword",type:"tip"},(0,r.kt)("p",{parentName:"admonition"},"The ",(0,r.kt)("a",{parentName:"p",href:"/build/smart-contracts/language/#errors"},(0,r.kt)("inlineCode",{parentName:"a"},"throw"))," keyword is another way to reject a condition. It stops the evaluation of the condition and rejects it with a ",(0,r.kt)("inlineCode",{parentName:"p"},"code"),", a ",(0,r.kt)("inlineCode",{parentName:"p"},"message")," and optionaly some ",(0,r.kt)("inlineCode",{parentName:"p"},"data"),".")),(0,r.kt)("h2",{id:"boolean-expressions"},"Boolean expressions"),(0,r.kt)("p",null,"It is a map where the keys are the ",(0,r.kt)("a",{parentName:"p",href:"/build/smart-contracts/language/actions#appendix-1-the-transaction-map"},"transaction's fields"),", and the values are expressions that must return a boolean or a value.\nThey work for any conditions type, but we suggest to use them with the inherit conditions only."),(0,r.kt)("p",null,"Example:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},'condition inherit: [\n # \n # all the transactions of this chain will be of type "contract"\n type: "contract",\n\n # \n # the content is mutable\n content: true,\n\n # \n # all the transactions must contains at least 1 UCO transfers\n # here uco_transfers is automatically given as 1st argument of Map.size()\n uco_transfers: Map.size() > 0\n]\n')),(0,r.kt)("h3",{id:"rules"},"Rules"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},'All "boolean expressions" must pass for the transaction to be valid.')),(0,r.kt)("li",{parentName:"ol"},'If the expression returns true, this "boolean expression" passes.'),(0,r.kt)("li",{parentName:"ol"},'If the expression returns false, this "boolean expression" fails.'),(0,r.kt)("li",{parentName:"ol"},'If the expression returns a value, this "boolean expression" passes if the transaction\'s property has the same value.')),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"In these blocks, there is also some sugar to automatically add the property as an argument of the functions called. For example ",(0,r.kt)("inlineCode",{parentName:"p"},"uco_transfers: Map.size() > 0")," will automatically expand to ",(0,r.kt)("inlineCode",{parentName:"p"},"uco_transfers: Map.size(transaction.uco_transfers) > 0"),".")),(0,r.kt)("h2",{id:"condition-inherit"},"Condition inherit"),(0,r.kt)("p",null,"The ",(0,r.kt)("inlineCode",{parentName:"p"},"condition inherit")," purpose is to check the next transaction generated by the smart contract after its code execution. It ensures the next transaction respects specific rules so the smart contract chain cannot be compromised.\nIt is automatically forwarded from transaction to transaction unless it is manually overriden."),(0,r.kt)("p",null,"There are 2 global variables for this condition block:"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("inlineCode",{parentName:"li"},"previous")," is the transaction of the current contract."),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("inlineCode",{parentName:"li"},"next"),' is the "next transaction".')),(0,r.kt)("p",null,"See ",(0,r.kt)("a",{parentName:"p",href:"/build/smart-contracts/language/actions#appendix-1-the-transaction-map"},"Action's Appendix 1")," for the details of the transaction map."),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"A specific rule is applied for inherit condition, if a field is not specified in the conditions, it assumes that it must have the same value as the previous transaction. Example, if code is ommited, this is assumed: ",(0,r.kt)("inlineCode",{parentName:"p"},"code: previous.code == next.code")),(0,r.kt)("p",{parentName:"admonition"},"This means that an empty inherit condition (",(0,r.kt)("inlineCode",{parentName:"p"},"condition inherit: []"),") means no changes is accepted, resulting in locking the chain.")),(0,r.kt)("h3",{id:"examples"},"Examples"),(0,r.kt)("p",null,"Pass only if it is executed before a timestamp:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},"condition inherit: [\n timestamp: next.timestamp < 1677598185\n]\n")),(0,r.kt)("p",null,'Pass only if the transaction is type "transfer", without any uco_transfers and at least one token_transfers:'),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},'condition inherit: [\n type: "transfer",\n uco_transfers: Map.size() == 0,\n token_transfers: Map.size() > 0\n]\n')),(0,r.kt)("p",null,"Pass only if chain has been closed (the code part) and there is a 2 UCO transfer to an address depending on the time:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},'condition inherit: [\n code: "condition inherit: []",\n uco_transfers:\n if Time.now() >= 1674564088 do\n ["00003bafdfb7a8e66b59de5692b79088063853bbd69a7d555faec906e6215e57ff98": 2]\n else\n ["0000ba28ce06631ff2ef4fe3dc89a34be13c0d252f8952bbfa3173b03dbef3c04afd": 2]\n end\n]\n')),(0,r.kt)("p",null,'Pass only if the key "index" of the content is greater than the previous one:'),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},'condition inherit do\n json_path = "$.index"\n if Json.path_match?(next.content, json_path) do\n previous_index = Json.path_extract(previous.content, json_path)\n new_index = Json.path_extract(next.content, json_path)\n\n new_index > previous_index\n else\n false\n end\nend\n')),(0,r.kt)("h2",{id:"condition-triggered-by-a-transaction"},"Condition triggered by a transaction"),(0,r.kt)("p",null,"Its purpose is to check the transaction that triggered an action on the contract. It must return a boolean."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},"condition triggered_by: transaction do\n false\nend\n\ncondition triggered_by: transaction, on: refund() do\n true\nend\n")),(0,r.kt)("p",null,"There are 2 global variables for this condition block:"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("inlineCode",{parentName:"li"},"contract")," is the transaction of the current contract."),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("inlineCode",{parentName:"li"},"transaction")," is the transaction that triggered the contract.")),(0,r.kt)("p",null,"See ",(0,r.kt)("a",{parentName:"p",href:"/build/smart-contracts/language/actions#appendix-1-the-transaction-map"},"Action's Appendix 1")," for the details of the transaction map."),(0,r.kt)("h3",{id:"examples-1"},"Examples"),(0,r.kt)("p",null,"Pass only if the transaction that triggered the contract comes from a specific chain (a chain can be identified by it's genesis address):"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},"condition triggered_by: transaction, as: [\n address: Chain.get_genesis_address() == 0x00001234ab\n]\n")),(0,r.kt)("p",null,"Pass only if the transaction that triggered sent 10 UCOs to this contract:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},"condition triggered_by: transaction, as: [\n uco_transfers: Map.get(contract.address) == 10\n]\n")),(0,r.kt)("p",null,"Pass only if the candidate is in the list:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},'condition triggered_by: transaction, on: vote(candidate) do\n List.in?(["Peter", "Sofia", "Claire"], candidate)\nend\n')),(0,r.kt)("p",null,"Pass only if the secret is correct and the lock_time is in the future:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},'condition triggered_by: transaction, on: withdraw(secret) do\n valid_secret = Crypto.hash(secret) == State.get("secret_hash")\n valid_time = Time.now() < State.get("lock_time")\n valid_secret && valid_time\nend\n')),(0,r.kt)("p",null,"Same as previous but using throw:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},'condition triggered_by: transaction, on: withdraw(secret) do\n if Crypto.hash(secret) != State.get("secret_hash") do\n throw code: 1, message: "invalid secret"\n end\n\n if Time.now() > State.get("lock_time") do\n throw code: 2, message: "time expired"\n end\n\n true\nend\n')),(0,r.kt)("h2",{id:"condition-triggered-by-an-oracle"},"Condition triggered by an oracle"),(0,r.kt)("p",null,"Its purpose is to check the oracle transaction that triggered the contract. It must return a boolean. It is very useful because not every oracle transaction contains the data you need."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},"condition triggered_by: oracle do\n true\nend\n")),(0,r.kt)("p",null,"There are 2 global variables for this condition block:"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("inlineCode",{parentName:"li"},"contract")," is the transaction of the current contract."),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("inlineCode",{parentName:"li"},"transaction")," is the oracle transaction that triggered the contract.")),(0,r.kt)("p",null,"See ",(0,r.kt)("a",{parentName:"p",href:"/build/smart-contracts/language/actions#appendix-1-the-transaction-map"},"Action's Appendix 1")," for the details of the transaction map."),(0,r.kt)("h3",{id:"examples-2"},"Examples"),(0,r.kt)("p",null,"Pass only if the transaction's content is a JSON string including the UCO price in USD."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},'condition triggered_by: oracle, as: [\n content: Json.path_match?("$.uco.usd")\n]\n')),(0,r.kt)("p",null,"Pass only if the transaction's content is a JSON string including the Vancouver's weather and if it's raining there."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},'condition triggered_by: oracle do\n Json.path_match?(transaction.content, "$.canada.vancouver.raining?")\nend\n')))}u.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/b3ae0c51.02f5864a.js b/assets/js/b3ae0c51.686b04cf.js similarity index 96% rename from assets/js/b3ae0c51.02f5864a.js rename to assets/js/b3ae0c51.686b04cf.js index cd7e28282..89f7dbb2a 100644 --- a/assets/js/b3ae0c51.02f5864a.js +++ b/assets/js/b3ae0c51.686b04cf.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3079],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>f});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),s=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=s(e.components);return n.createElement(c.Provider,{value:t},e.children)},m="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),m=s(r),d=a,f=m["".concat(c,".").concat(d)]||m[d]||p[d]||o;return r?n.createElement(f,i(i({ref:t},u),{},{components:r})):n.createElement(f,i({ref:t},u))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=d;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[m]="string"==typeof e?e:a,i[1]=l;for(var s=2;s{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>p,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var n=r(87462),a=(r(67294),r(3905));r(8209);const o={id:"time",title:"Time module",sidebar_label:"Time"},i=void 0,l={unversionedId:"build/smart-contracts/language/library/time",id:"build/smart-contracts/language/library/time",title:"Time module",description:"The Time module contains functions to deal with time & dates.",source:"@site/docs/build/smart-contracts/language/library/time.md",sourceDirName:"build/smart-contracts/language/library",slug:"/build/smart-contracts/language/library/time",permalink:"/build/smart-contracts/language/library/time",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"time",title:"Time module",sidebar_label:"Time"},sidebar:"docs",previous:{title:"String",permalink:"/build/smart-contracts/language/library/string"},next:{title:"Token",permalink:"/build/smart-contracts/language/library/token"}},c={},s=[{value:"now/0",id:"now0",level:3}],u={toc:s},m="wrapper";function p(e){let{components:t,...r}=e;return(0,a.kt)(m,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The ",(0,a.kt)("inlineCode",{parentName:"p"},"Time")," module contains functions to deal with time & dates."),(0,a.kt)("h3",{id:"now0"},"now/0"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},"Time.now() # 1677493444\n")),(0,a.kt)("p",null,"Returns an approximation of current time (seconds since epoch).\n",(0,a.kt)("strong",{parentName:"p"},"It will always return the same value within a contract.")),(0,a.kt)("admonition",{title:"Why an approximation?",type:"info"},(0,a.kt)("p",{parentName:"admonition"},"Because we need the Smart Contracts to be determinist.\nMany nodes run them and all of them must produce the same transaction to validate a contract's execution.")))}p.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3079],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>f});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),s=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=s(e.components);return n.createElement(c.Provider,{value:t},e.children)},m="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),m=s(r),d=a,f=m["".concat(c,".").concat(d)]||m[d]||p[d]||o;return r?n.createElement(f,i(i({ref:t},u),{},{components:r})):n.createElement(f,i({ref:t},u))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=d;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[m]="string"==typeof e?e:a,i[1]=l;for(var s=2;s{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>p,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var n=r(87462),a=(r(67294),r(3905));r(8209);const o={id:"time",title:"Time module",sidebar_label:"Time"},i=void 0,l={unversionedId:"build/smart-contracts/language/library/time",id:"build/smart-contracts/language/library/time",title:"Time module",description:"The Time module contains functions to deal with time & dates.",source:"@site/docs/build/smart-contracts/language/library/time.md",sourceDirName:"build/smart-contracts/language/library",slug:"/build/smart-contracts/language/library/time",permalink:"/build/smart-contracts/language/library/time",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"time",title:"Time module",sidebar_label:"Time"},sidebar:"docs",previous:{title:"String",permalink:"/build/smart-contracts/language/library/string"},next:{title:"Token",permalink:"/build/smart-contracts/language/library/token"}},c={},s=[{value:"now/0",id:"now0",level:3}],u={toc:s},m="wrapper";function p(e){let{components:t,...r}=e;return(0,a.kt)(m,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The ",(0,a.kt)("inlineCode",{parentName:"p"},"Time")," module contains functions to deal with time & dates."),(0,a.kt)("h3",{id:"now0"},"now/0"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},"Time.now() # 1677493444\n")),(0,a.kt)("p",null,"Returns an approximation of current time (seconds since epoch).\n",(0,a.kt)("strong",{parentName:"p"},"It will always return the same value within a contract.")),(0,a.kt)("admonition",{title:"Why an approximation?",type:"info"},(0,a.kt)("p",{parentName:"admonition"},"Because we need the Smart Contracts to be determinist.\nMany nodes run them and all of them must produce the same transaction to validate a contract's execution.")))}p.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file diff --git a/assets/js/b4914bc5.bb869270.js b/assets/js/b4914bc5.4c764fc1.js similarity index 97% rename from assets/js/b4914bc5.bb869270.js rename to assets/js/b4914bc5.4c764fc1.js index aabd50998..0912b889a 100644 --- a/assets/js/b4914bc5.bb869270.js +++ b/assets/js/b4914bc5.4c764fc1.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8959],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>h});var r=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var c=r.createContext({}),s=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},u=function(e){var t=s(e.components);return r.createElement(c.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},f=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,c=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),d=s(n),f=o,h=d["".concat(c,".").concat(f)]||d[f]||p[f]||i;return n?r.createElement(h,a(a({ref:t},u),{},{components:n})):r.createElement(h,a({ref:t},u))}));function h(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,a=new Array(i);a[0]=f;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[d]="string"==typeof e?e:o,a[1]=l;for(var s=2;s{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>p,frontMatter:()=>i,metadata:()=>l,toc:()=>s});var r=n(87462),o=(n(67294),n(3905));n(8209);const i={id:"transaction-context",title:"Transaction context retrieval"},a=void 0,l={unversionedId:"build/core/mining/transaction-context",id:"build/core/mining/transaction-context",title:"Transaction context retrieval",description:"When a transaction is under validation, after the pending transaction validation, the nodes are fetching the context of the transaction.",source:"@site/docs/build/core/mining/transaction-context.md",sourceDirName:"build/core/mining",slug:"/build/core/mining/transaction-context",permalink:"/build/core/mining/transaction-context",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"transaction-context",title:"Transaction context retrieval"},sidebar:"docs",previous:{title:"Proof of Work algorithm",permalink:"/build/core/mining/proof-of-work"},next:{title:"OracleChain",permalink:"/build/core/oracle-chain/"}},c={},s=[{value:"Retrieval",id:"retrieval",level:2},{value:"Node distribution",id:"node-distribution",level:2}],u={toc:s},d="wrapper";function p(e){let{components:t,...n}=e;return(0,o.kt)(d,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"When a transaction is under validation, after the ",(0,o.kt)("a",{parentName:"p",href:"/build/core/mining/transaction-validation"},"pending transaction validation"),", the nodes are fetching the context of the transaction."),(0,o.kt)("h2",{id:"retrieval"},"Retrieval"),(0,o.kt)("p",null,"This retrieval include multiple queries to be able to perform an efficient validation:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Get the previous transaction"),(0,o.kt)("li",{parentName:"ul"},"Get the unspent outputs"),(0,o.kt)("li",{parentName:"ul"},"Get the P2P view of the storage nodes (chain and beacon)")),(0,o.kt)("p",null,"All of thoses queries happen concurrently making efficient the transaction validation."),(0,o.kt)("p",null,"To be sure the data is fetched faster, an algorithm is provided to first target the closest nodes from the validation node but\nalso ensure the if node fails to respond, other nodes will take the relay."),(0,o.kt)("p",null,"However, if for the P2P view query, some node doesn't respond in a timeframe, it will be considered as offline, and through aggregation during the replication tree creation, this node will not receive replication request"),(0,o.kt)("h2",{id:"node-distribution"},"Node distribution"),(0,o.kt)("p",null,"To be sure all the validation will get the best of this retrieval, an algorithm have been developed to ensure a fair distribution of the nodes invovled in those queries."),(0,o.kt)("p",null,"The storage nodes for the previous chain are split into 2 group: previous transaction and unspent outputs"),(0,o.kt)("p",null,"This way a given node will get several responses ensuring the atomic commitment of the transaction."),(0,o.kt)("p",null,"The algorithm defines the number of group to have and the number of nodes in each group."),(0,o.kt)("p",null,"Also it balances the groups to be sure a group have the same number of node without duplication"))}p.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8959],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>h});var r=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var c=r.createContext({}),s=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},u=function(e){var t=s(e.components);return r.createElement(c.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},f=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,c=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),d=s(n),f=o,h=d["".concat(c,".").concat(f)]||d[f]||p[f]||i;return n?r.createElement(h,a(a({ref:t},u),{},{components:n})):r.createElement(h,a({ref:t},u))}));function h(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,a=new Array(i);a[0]=f;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[d]="string"==typeof e?e:o,a[1]=l;for(var s=2;s{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>p,frontMatter:()=>i,metadata:()=>l,toc:()=>s});var r=n(87462),o=(n(67294),n(3905));n(8209);const i={id:"transaction-context",title:"Transaction context retrieval"},a=void 0,l={unversionedId:"build/core/mining/transaction-context",id:"build/core/mining/transaction-context",title:"Transaction context retrieval",description:"When a transaction is under validation, after the pending transaction validation, the nodes are fetching the context of the transaction.",source:"@site/docs/build/core/mining/transaction-context.md",sourceDirName:"build/core/mining",slug:"/build/core/mining/transaction-context",permalink:"/build/core/mining/transaction-context",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"transaction-context",title:"Transaction context retrieval"},sidebar:"docs",previous:{title:"Proof of Work algorithm",permalink:"/build/core/mining/proof-of-work"},next:{title:"OracleChain",permalink:"/build/core/oracle-chain/"}},c={},s=[{value:"Retrieval",id:"retrieval",level:2},{value:"Node distribution",id:"node-distribution",level:2}],u={toc:s},d="wrapper";function p(e){let{components:t,...n}=e;return(0,o.kt)(d,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"When a transaction is under validation, after the ",(0,o.kt)("a",{parentName:"p",href:"/build/core/mining/transaction-validation"},"pending transaction validation"),", the nodes are fetching the context of the transaction."),(0,o.kt)("h2",{id:"retrieval"},"Retrieval"),(0,o.kt)("p",null,"This retrieval include multiple queries to be able to perform an efficient validation:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Get the previous transaction"),(0,o.kt)("li",{parentName:"ul"},"Get the unspent outputs"),(0,o.kt)("li",{parentName:"ul"},"Get the P2P view of the storage nodes (chain and beacon)")),(0,o.kt)("p",null,"All of thoses queries happen concurrently making efficient the transaction validation."),(0,o.kt)("p",null,"To be sure the data is fetched faster, an algorithm is provided to first target the closest nodes from the validation node but\nalso ensure the if node fails to respond, other nodes will take the relay."),(0,o.kt)("p",null,"However, if for the P2P view query, some node doesn't respond in a timeframe, it will be considered as offline, and through aggregation during the replication tree creation, this node will not receive replication request"),(0,o.kt)("h2",{id:"node-distribution"},"Node distribution"),(0,o.kt)("p",null,"To be sure all the validation will get the best of this retrieval, an algorithm have been developed to ensure a fair distribution of the nodes invovled in those queries."),(0,o.kt)("p",null,"The storage nodes for the previous chain are split into 2 group: previous transaction and unspent outputs"),(0,o.kt)("p",null,"This way a given node will get several responses ensuring the atomic commitment of the transaction."),(0,o.kt)("p",null,"The algorithm defines the number of group to have and the number of nodes in each group."),(0,o.kt)("p",null,"Also it balances the groups to be sure a group have the same number of node without duplication"))}p.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/b684cce9.b14941ad.js b/assets/js/b684cce9.525366d0.js similarity index 99% rename from assets/js/b684cce9.b14941ad.js rename to assets/js/b684cce9.525366d0.js index 195e50515..bd313ae90 100644 --- a/assets/js/b684cce9.b14941ad.js +++ b/assets/js/b684cce9.525366d0.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6829],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>h});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),c=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},u=function(e){var t=c(e.components);return a.createElement(s.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),d=c(n),m=r,h=d["".concat(s,".").concat(m)]||d[m]||p[m]||i;return n?a.createElement(h,o(o({ref:t},u),{},{components:n})):a.createElement(h,o({ref:t},u))}));function h(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,o=new Array(i);o[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[d]="string"==typeof e?e:r,o[1]=l;for(var c=2;c{n.r(t),n.d(t,{assets:()=>C,contentTitle:()=>S,default:()=>A,frontMatter:()=>_,metadata:()=>D,toc:()=>O});var a=n(87462),r=n(67294),i=n(3905),o=(n(8209),n(86010)),l=n(12466),s=n(16550),c=n(91980),u=n(67392),d=n(50012);function p(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:a,default:r}}=e;return{value:t,label:n,attributes:a,default:r}}))}function m(e){const{values:t,children:n}=e;return(0,r.useMemo)((()=>{const e=t??p(n);return function(e){const t=(0,u.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[t,n])}function h(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:n}=e;const a=(0,s.k6)(),i=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,c._X)(i),(0,r.useCallback)((e=>{if(!i)return;const t=new URLSearchParams(a.location.search);t.set(i,e),a.replace({...a.location,search:t.toString()})}),[i,a])]}function b(e){const{defaultValue:t,queryString:n=!1,groupId:a}=e,i=m(e),[o,l]=(0,r.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the component requires at least one children component");if(t){if(!h({value:t,tabValues:n}))throw new Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const a=n.find((e=>e.default))??n[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:t,tabValues:i}))),[s,c]=f({queryString:n,groupId:a}),[u,p]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[a,i]=(0,d.Nk)(n);return[a,(0,r.useCallback)((e=>{n&&i.set(e)}),[n,i])]}({groupId:a}),b=(()=>{const e=s??u;return h({value:e,tabValues:i})?e:null})();(0,r.useLayoutEffect)((()=>{b&&l(b)}),[b]);return{selectedValue:o,selectValue:(0,r.useCallback)((e=>{if(!h({value:e,tabValues:i}))throw new Error(`Can't select invalid tab value=${e}`);l(e),c(e),p(e)}),[c,p,i]),tabValues:i}}var k=n(72389);const g={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};function y(e){let{className:t,block:n,selectedValue:i,selectValue:s,tabValues:c}=e;const u=[],{blockElementScrollPositionUntilNextRender:d}=(0,l.o5)(),p=e=>{const t=e.currentTarget,n=u.indexOf(t),a=c[n].value;a!==i&&(d(t),s(a))},m=e=>{let t=null;switch(e.key){case"Enter":p(e);break;case"ArrowRight":{const n=u.indexOf(e.currentTarget)+1;t=u[n]??u[0];break}case"ArrowLeft":{const n=u.indexOf(e.currentTarget)-1;t=u[n]??u[u.length-1];break}}t?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.Z)("tabs",{"tabs--block":n},t)},c.map((e=>{let{value:t,label:n,attributes:l}=e;return r.createElement("li",(0,a.Z)({role:"tab",tabIndex:i===t?0:-1,"aria-selected":i===t,key:t,ref:e=>u.push(e),onKeyDown:m,onClick:p},l,{className:(0,o.Z)("tabs__item",g.tabItem,l?.className,{"tabs__item--active":i===t})}),n??t)})))}function w(e){let{lazy:t,children:n,selectedValue:a}=e;const i=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=i.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},i.map(((e,t)=>(0,r.cloneElement)(e,{key:t,hidden:e.props.value!==a}))))}function v(e){const t=b(e);return r.createElement("div",{className:(0,o.Z)("tabs-container",g.tabList)},r.createElement(y,(0,a.Z)({},e,t)),r.createElement(w,(0,a.Z)({},e,t)))}function N(e){const t=(0,k.Z)();return r.createElement(v,(0,a.Z)({key:String(t)},e))}const T={tabItem:"tabItem_Ymn6"};function E(e){let{children:t,hidden:n,className:a}=e;return r.createElement("div",{role:"tabpanel",className:(0,o.Z)(T.tabItem,a),hidden:n},t)}const _={id:"dns",title:"AEWeb - Domain names",sidebar_label:"Domain Names",sidebar_position:2},S=void 0,D={unversionedId:"participate/aeweb/dns",id:"participate/aeweb/dns",title:"AEWeb - Domain names",description:"DNS (Domain Name System) is a mechanism which resolves websites names to server IP addresses, making website's URL nicer.",source:"@site/docs/participate/aeweb/dns.md",sourceDirName:"participate/aeweb",slug:"/participate/aeweb/dns",permalink:"/participate/aeweb/dns",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",sidebarPosition:2,frontMatter:{id:"dns",title:"AEWeb - Domain names",sidebar_label:"Domain Names",sidebar_position:2},sidebar:"docs",previous:{title:"How it works",permalink:"/participate/aeweb/how-it-works"},next:{title:"Usage",permalink:"/category/usage"}},C={},O=[{value:"DNSLink",id:"dnslink",level:2},{value:"Hosting provider integration",id:"hosting-provider-integration",level:3},{value:"SSL",id:"ssl",level:2},{value:"1. Get the certificate",id:"1-get-the-certificate",level:3},{value:"Manual",id:"manual",level:4},{value:"2. Add the certificate on chain",id:"2-add-the-certificate-on-chain",level:3}],I={toc:O},x="wrapper";function A(e){let{components:t,...r}=e;return(0,i.kt)(x,(0,a.Z)({},I,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"DNS (Domain Name System) is a mechanism which resolves websites names to server IP addresses, making website's URL nicer."),(0,i.kt)("p",null,"This works well for classical websites, however for decentralized websites new solutions need to be found such as: DNSLink, extensions, etc."),(0,i.kt)("h2",{id:"dnslink"},"DNSLink"),(0,i.kt)("p",null,"We suggest using a hybrid approach, where ordinary DNS systems would still be used, but would point to Archethic nodes (gateways) instead."),(0,i.kt)("p",null,"To redirect your domain name to your Archethic hosted website, a simple operation needs to be done."),(0,i.kt)("p",null,"In your website domain provider administration, you must add two entries:"),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:null},"NAME"),(0,i.kt)("th",{parentName:"tr",align:null},"TYPE"),(0,i.kt)("th",{parentName:"tr",align:null},"VALUE"))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"example.com"),(0,i.kt)("td",{parentName:"tr",align:null},"CNAME"),(0,i.kt)("td",{parentName:"tr",align:null},"mainnet.archethic.net")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"_","dnslink.example.com"),(0,i.kt)("td",{parentName:"tr",align:null},"TXT"),(0,i.kt)("td",{parentName:"tr",align:null},"dnslink=/archethic/0f1e3....")))),(0,i.kt)("p",null,"The subdomain ",(0,i.kt)("inlineCode",{parentName:"p"},"_dnslink")," is used to indicate the reference address and will be used by the nodes to redirect to the on-chain version of your website."),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"aeweb_CDN",src:n(82088).Z+"#gh-light-mode-only",width:"329",height:"135"}),"\n",(0,i.kt)("img",{alt:"aeweb_CDN",src:n(26436).Z+"#gh-dark-mode-only",width:"329",height:"135"})),(0,i.kt)("h3",{id:"hosting-provider-integration"},"Hosting provider integration"),(0,i.kt)(N,{mdxType:"Tabs"},(0,i.kt)(E,{value:"gandi",label:"Gandi",default:!0,mdxType:"TabItem"},(0,i.kt)("p",null,'Click on the "Add record" from the DNS record page'),(0,i.kt)("img",{src:"/img/gandi_list_dns_record.png"}),(0,i.kt)("p",null,'Fill the form with "TXT" record type and with _dnslink entry to point the website to the hosting transaction chain'),(0,i.kt)("img",{src:"/img/gandi_add_dns_record.png"}),(0,i.kt)("p",null,'Then you need to do the same for the "CNAME" record to point it to mainnet.archethic.net')),(0,i.kt)(E,{value:"cloudfare",label:"Cloudfare",default:!0,mdxType:"TabItem"},(0,i.kt)("p",null,'Click on the "Add record" from the DNS record page'),(0,i.kt)("img",{src:"/img/cloudfare_list_dns_record.png"}),(0,i.kt)("p",null,'Fill the form with "TXT" record type and with _dnslink entry to point the website to the hosting transaction chain'),(0,i.kt)("img",{src:"/img/cloudfare_add_dns_record.png"}),(0,i.kt)("p",null,'Then you need to do the same for the "CNAME" record to point it to mainnet.archethic.net')),(0,i.kt)(E,{value:"ovh",label:"OVH",default:!0,mdxType:"TabItem"},(0,i.kt)("p",null,'Click on the "Add record" from the DNS record page'),(0,i.kt)("img",{src:"/img/ovh_list_dns_record.png"}),(0,i.kt)("p",null,'Fill the form with "TXT" record type and with _dnslink entry to point the website to the hosting transaction chain'),(0,i.kt)("img",{src:"/img/ovh_add_dns_record.png"}),(0,i.kt)("p",null,'Then you need to do the same for the "CNAME" record to point it to mainnet.archethic.net'))),(0,i.kt)("h2",{id:"ssl"},"SSL"),(0,i.kt)("p",null,"We defined above to create a link between a domain and a hosted website on Archethic."),(0,i.kt)("p",null,"However, if we let it like this the modern browsers will not able to render the website without security warning."),(0,i.kt)("p",null,"Indeed, we said the example.com should be redirect to mainnet.archethic.net, but the certificate for mainnet.archethic.net can't\nverify example.com"),(0,i.kt)("p",null,"No worry, we can request a SSL certificate and embed it into AEWeb transactions.\nThe website will then be certified and the blockchain will render the website with security enabled."),(0,i.kt)("p",null,"To support it, we have to do two things:"),(0,i.kt)("h3",{id:"1-get-the-certificate"},"1. Get the certificate"),(0,i.kt)("h4",{id:"manual"},"Manual"),(0,i.kt)("p",null,"We recommand to use certbot CLI to perform this task, but we can use any other ACME client to request certificates."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"certbot certonly --manual --domain example.com --preferred-challenges dns\n")),(0,i.kt)("p",null,"This command will request a certificate to Let's Encrypt about ",(0,i.kt)("inlineCode",{parentName:"p"},"example.com")," and will require to prove\nthe ownership of the domain with a DNS challenge."),(0,i.kt)("p",null,"The certificate can be found at: ",(0,i.kt)("inlineCode",{parentName:"p"},"/etc/letsencrypt/live/example.com/cert.pem"),"\nand the key at: ",(0,i.kt)("inlineCode",{parentName:"p"},"/etc/letsencrypt/live/example.com/privatekey.pem")),(0,i.kt)("admonition",{type:"info"},(0,i.kt)("p",{parentName:"admonition"},"We might notice the command gives the end of validity for the certificate.\nBefore this date, you just have to reply the command to assert you still own the domain to get the new certificate and/or key.")),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(68647).Z,width:"2000",height:"1024"})),(0,i.kt)("h3",{id:"2-add-the-certificate-on-chain"},"2. Add the certificate on chain"),(0,i.kt)("p",null,"You need to get the certificate and the private key associated."),(0,i.kt)("admonition",{type:"info"},(0,i.kt)("p",{parentName:"admonition"},"The private key is necessary to sign/encrypt the webpages to match the certificates and be considered as valid.\nOnly the nodes will have access to this key to allow the servers to use SSL communications.")),(0,i.kt)("p",null,"If you use the AEWeb CLI, we can perform this by running the command: "),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"aeweb deploy --seed XXX --path ./my_website --ssl-certificate ./cert.pem --ssl-key ./key.pem --endpoint https://mainnet.archethic.net \n")),(0,i.kt)("p",null,"You're website transaction chain will then contains a ",(0,i.kt)("inlineCode",{parentName:"p"},"Reference")," transaction with the ssl certificate in the content\nand the private key end to end encrypted for the network."))}A.isMDXComponent=!0},68647:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/acme_dns-3c3182fe25541047fc08bf5307993f70.png"},26436:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/aeweb_dns-dark-f3e9f702ea266d0aec084ba4960e8c62.svg"},82088:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/aeweb_dns-06778c4756739f0a9144cff45a4dd64e.svg"},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6829],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>h});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),c=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},u=function(e){var t=c(e.components);return a.createElement(s.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),d=c(n),m=r,h=d["".concat(s,".").concat(m)]||d[m]||p[m]||i;return n?a.createElement(h,o(o({ref:t},u),{},{components:n})):a.createElement(h,o({ref:t},u))}));function h(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,o=new Array(i);o[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[d]="string"==typeof e?e:r,o[1]=l;for(var c=2;c{n.r(t),n.d(t,{assets:()=>C,contentTitle:()=>S,default:()=>A,frontMatter:()=>_,metadata:()=>D,toc:()=>O});var a=n(87462),r=n(67294),i=n(3905),o=(n(8209),n(86010)),l=n(12466),s=n(16550),c=n(91980),u=n(67392),d=n(50012);function p(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:a,default:r}}=e;return{value:t,label:n,attributes:a,default:r}}))}function m(e){const{values:t,children:n}=e;return(0,r.useMemo)((()=>{const e=t??p(n);return function(e){const t=(0,u.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[t,n])}function h(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:n}=e;const a=(0,s.k6)(),i=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,c._X)(i),(0,r.useCallback)((e=>{if(!i)return;const t=new URLSearchParams(a.location.search);t.set(i,e),a.replace({...a.location,search:t.toString()})}),[i,a])]}function b(e){const{defaultValue:t,queryString:n=!1,groupId:a}=e,i=m(e),[o,l]=(0,r.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the component requires at least one children component");if(t){if(!h({value:t,tabValues:n}))throw new Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const a=n.find((e=>e.default))??n[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:t,tabValues:i}))),[s,c]=f({queryString:n,groupId:a}),[u,p]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[a,i]=(0,d.Nk)(n);return[a,(0,r.useCallback)((e=>{n&&i.set(e)}),[n,i])]}({groupId:a}),b=(()=>{const e=s??u;return h({value:e,tabValues:i})?e:null})();(0,r.useLayoutEffect)((()=>{b&&l(b)}),[b]);return{selectedValue:o,selectValue:(0,r.useCallback)((e=>{if(!h({value:e,tabValues:i}))throw new Error(`Can't select invalid tab value=${e}`);l(e),c(e),p(e)}),[c,p,i]),tabValues:i}}var k=n(72389);const g={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};function y(e){let{className:t,block:n,selectedValue:i,selectValue:s,tabValues:c}=e;const u=[],{blockElementScrollPositionUntilNextRender:d}=(0,l.o5)(),p=e=>{const t=e.currentTarget,n=u.indexOf(t),a=c[n].value;a!==i&&(d(t),s(a))},m=e=>{let t=null;switch(e.key){case"Enter":p(e);break;case"ArrowRight":{const n=u.indexOf(e.currentTarget)+1;t=u[n]??u[0];break}case"ArrowLeft":{const n=u.indexOf(e.currentTarget)-1;t=u[n]??u[u.length-1];break}}t?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.Z)("tabs",{"tabs--block":n},t)},c.map((e=>{let{value:t,label:n,attributes:l}=e;return r.createElement("li",(0,a.Z)({role:"tab",tabIndex:i===t?0:-1,"aria-selected":i===t,key:t,ref:e=>u.push(e),onKeyDown:m,onClick:p},l,{className:(0,o.Z)("tabs__item",g.tabItem,l?.className,{"tabs__item--active":i===t})}),n??t)})))}function w(e){let{lazy:t,children:n,selectedValue:a}=e;const i=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=i.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},i.map(((e,t)=>(0,r.cloneElement)(e,{key:t,hidden:e.props.value!==a}))))}function v(e){const t=b(e);return r.createElement("div",{className:(0,o.Z)("tabs-container",g.tabList)},r.createElement(y,(0,a.Z)({},e,t)),r.createElement(w,(0,a.Z)({},e,t)))}function N(e){const t=(0,k.Z)();return r.createElement(v,(0,a.Z)({key:String(t)},e))}const T={tabItem:"tabItem_Ymn6"};function E(e){let{children:t,hidden:n,className:a}=e;return r.createElement("div",{role:"tabpanel",className:(0,o.Z)(T.tabItem,a),hidden:n},t)}const _={id:"dns",title:"AEWeb - Domain names",sidebar_label:"Domain Names",sidebar_position:2},S=void 0,D={unversionedId:"participate/aeweb/dns",id:"participate/aeweb/dns",title:"AEWeb - Domain names",description:"DNS (Domain Name System) is a mechanism which resolves websites names to server IP addresses, making website's URL nicer.",source:"@site/docs/participate/aeweb/dns.md",sourceDirName:"participate/aeweb",slug:"/participate/aeweb/dns",permalink:"/participate/aeweb/dns",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",sidebarPosition:2,frontMatter:{id:"dns",title:"AEWeb - Domain names",sidebar_label:"Domain Names",sidebar_position:2},sidebar:"docs",previous:{title:"How it works",permalink:"/participate/aeweb/how-it-works"},next:{title:"Usage",permalink:"/category/usage"}},C={},O=[{value:"DNSLink",id:"dnslink",level:2},{value:"Hosting provider integration",id:"hosting-provider-integration",level:3},{value:"SSL",id:"ssl",level:2},{value:"1. Get the certificate",id:"1-get-the-certificate",level:3},{value:"Manual",id:"manual",level:4},{value:"2. Add the certificate on chain",id:"2-add-the-certificate-on-chain",level:3}],I={toc:O},x="wrapper";function A(e){let{components:t,...r}=e;return(0,i.kt)(x,(0,a.Z)({},I,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"DNS (Domain Name System) is a mechanism which resolves websites names to server IP addresses, making website's URL nicer."),(0,i.kt)("p",null,"This works well for classical websites, however for decentralized websites new solutions need to be found such as: DNSLink, extensions, etc."),(0,i.kt)("h2",{id:"dnslink"},"DNSLink"),(0,i.kt)("p",null,"We suggest using a hybrid approach, where ordinary DNS systems would still be used, but would point to Archethic nodes (gateways) instead."),(0,i.kt)("p",null,"To redirect your domain name to your Archethic hosted website, a simple operation needs to be done."),(0,i.kt)("p",null,"In your website domain provider administration, you must add two entries:"),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:null},"NAME"),(0,i.kt)("th",{parentName:"tr",align:null},"TYPE"),(0,i.kt)("th",{parentName:"tr",align:null},"VALUE"))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"example.com"),(0,i.kt)("td",{parentName:"tr",align:null},"CNAME"),(0,i.kt)("td",{parentName:"tr",align:null},"mainnet.archethic.net")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"_","dnslink.example.com"),(0,i.kt)("td",{parentName:"tr",align:null},"TXT"),(0,i.kt)("td",{parentName:"tr",align:null},"dnslink=/archethic/0f1e3....")))),(0,i.kt)("p",null,"The subdomain ",(0,i.kt)("inlineCode",{parentName:"p"},"_dnslink")," is used to indicate the reference address and will be used by the nodes to redirect to the on-chain version of your website."),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"aeweb_CDN",src:n(82088).Z+"#gh-light-mode-only",width:"329",height:"135"}),"\n",(0,i.kt)("img",{alt:"aeweb_CDN",src:n(26436).Z+"#gh-dark-mode-only",width:"329",height:"135"})),(0,i.kt)("h3",{id:"hosting-provider-integration"},"Hosting provider integration"),(0,i.kt)(N,{mdxType:"Tabs"},(0,i.kt)(E,{value:"gandi",label:"Gandi",default:!0,mdxType:"TabItem"},(0,i.kt)("p",null,'Click on the "Add record" from the DNS record page'),(0,i.kt)("img",{src:"/img/gandi_list_dns_record.png"}),(0,i.kt)("p",null,'Fill the form with "TXT" record type and with _dnslink entry to point the website to the hosting transaction chain'),(0,i.kt)("img",{src:"/img/gandi_add_dns_record.png"}),(0,i.kt)("p",null,'Then you need to do the same for the "CNAME" record to point it to mainnet.archethic.net')),(0,i.kt)(E,{value:"cloudfare",label:"Cloudfare",default:!0,mdxType:"TabItem"},(0,i.kt)("p",null,'Click on the "Add record" from the DNS record page'),(0,i.kt)("img",{src:"/img/cloudfare_list_dns_record.png"}),(0,i.kt)("p",null,'Fill the form with "TXT" record type and with _dnslink entry to point the website to the hosting transaction chain'),(0,i.kt)("img",{src:"/img/cloudfare_add_dns_record.png"}),(0,i.kt)("p",null,'Then you need to do the same for the "CNAME" record to point it to mainnet.archethic.net')),(0,i.kt)(E,{value:"ovh",label:"OVH",default:!0,mdxType:"TabItem"},(0,i.kt)("p",null,'Click on the "Add record" from the DNS record page'),(0,i.kt)("img",{src:"/img/ovh_list_dns_record.png"}),(0,i.kt)("p",null,'Fill the form with "TXT" record type and with _dnslink entry to point the website to the hosting transaction chain'),(0,i.kt)("img",{src:"/img/ovh_add_dns_record.png"}),(0,i.kt)("p",null,'Then you need to do the same for the "CNAME" record to point it to mainnet.archethic.net'))),(0,i.kt)("h2",{id:"ssl"},"SSL"),(0,i.kt)("p",null,"We defined above to create a link between a domain and a hosted website on Archethic."),(0,i.kt)("p",null,"However, if we let it like this the modern browsers will not able to render the website without security warning."),(0,i.kt)("p",null,"Indeed, we said the example.com should be redirect to mainnet.archethic.net, but the certificate for mainnet.archethic.net can't\nverify example.com"),(0,i.kt)("p",null,"No worry, we can request a SSL certificate and embed it into AEWeb transactions.\nThe website will then be certified and the blockchain will render the website with security enabled."),(0,i.kt)("p",null,"To support it, we have to do two things:"),(0,i.kt)("h3",{id:"1-get-the-certificate"},"1. Get the certificate"),(0,i.kt)("h4",{id:"manual"},"Manual"),(0,i.kt)("p",null,"We recommand to use certbot CLI to perform this task, but we can use any other ACME client to request certificates."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"certbot certonly --manual --domain example.com --preferred-challenges dns\n")),(0,i.kt)("p",null,"This command will request a certificate to Let's Encrypt about ",(0,i.kt)("inlineCode",{parentName:"p"},"example.com")," and will require to prove\nthe ownership of the domain with a DNS challenge."),(0,i.kt)("p",null,"The certificate can be found at: ",(0,i.kt)("inlineCode",{parentName:"p"},"/etc/letsencrypt/live/example.com/cert.pem"),"\nand the key at: ",(0,i.kt)("inlineCode",{parentName:"p"},"/etc/letsencrypt/live/example.com/privatekey.pem")),(0,i.kt)("admonition",{type:"info"},(0,i.kt)("p",{parentName:"admonition"},"We might notice the command gives the end of validity for the certificate.\nBefore this date, you just have to reply the command to assert you still own the domain to get the new certificate and/or key.")),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(68647).Z,width:"2000",height:"1024"})),(0,i.kt)("h3",{id:"2-add-the-certificate-on-chain"},"2. Add the certificate on chain"),(0,i.kt)("p",null,"You need to get the certificate and the private key associated."),(0,i.kt)("admonition",{type:"info"},(0,i.kt)("p",{parentName:"admonition"},"The private key is necessary to sign/encrypt the webpages to match the certificates and be considered as valid.\nOnly the nodes will have access to this key to allow the servers to use SSL communications.")),(0,i.kt)("p",null,"If you use the AEWeb CLI, we can perform this by running the command: "),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"aeweb deploy --seed XXX --path ./my_website --ssl-certificate ./cert.pem --ssl-key ./key.pem --endpoint https://mainnet.archethic.net \n")),(0,i.kt)("p",null,"You're website transaction chain will then contains a ",(0,i.kt)("inlineCode",{parentName:"p"},"Reference")," transaction with the ssl certificate in the content\nand the private key end to end encrypted for the network."))}A.isMDXComponent=!0},68647:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/acme_dns-3c3182fe25541047fc08bf5307993f70.png"},26436:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/aeweb_dns-dark-f3e9f702ea266d0aec084ba4960e8c62.svg"},82088:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/aeweb_dns-06778c4756739f0a9144cff45a4dd64e.svg"},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/bb9d9339.00e99657.js b/assets/js/bb9d9339.59720d48.js similarity index 97% rename from assets/js/bb9d9339.00e99657.js rename to assets/js/bb9d9339.59720d48.js index eaa8c4314..d52a766cb 100644 --- a/assets/js/bb9d9339.00e99657.js +++ b/assets/js/bb9d9339.59720d48.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4398],{3905:(t,e,r)=>{r.d(e,{Zo:()=>u,kt:()=>y});var n=r(67294);function a(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function o(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function l(t){for(var e=1;e=0||(a[r]=t[r]);return a}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(a[r]=t[r])}return a}var i=n.createContext({}),s=function(t){var e=n.useContext(i),r=e;return t&&(r="function"==typeof t?t(e):l(l({},e),t)),r},u=function(t){var e=s(t.components);return n.createElement(i.Provider,{value:e},t.children)},p="mdxType",d={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},m=n.forwardRef((function(t,e){var r=t.components,a=t.mdxType,o=t.originalType,i=t.parentName,u=c(t,["components","mdxType","originalType","parentName"]),p=s(r),m=a,y=p["".concat(i,".").concat(m)]||p[m]||d[m]||o;return r?n.createElement(y,l(l({ref:e},u),{},{components:r})):n.createElement(y,l({ref:e},u))}));function y(t,e){var r=arguments,a=e&&e.mdxType;if("string"==typeof t||a){var o=r.length,l=new Array(o);l[0]=m;var c={};for(var i in e)hasOwnProperty.call(e,i)&&(c[i]=e[i]);c.originalType=t,c[p]="string"==typeof t?t:a,l[1]=c;for(var s=2;s{r.r(e),r.d(e,{assets:()=>i,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>c,toc:()=>s});var n=r(87462),a=(r(67294),r(3905));r(8209);const o={id:"sc-playground",title:"Smart Contracts Playground",sidebar_label:"Playground",sidebar_position:10},l=void 0,c={unversionedId:"build/smart-contracts/playground/sc-playground",id:"build/smart-contracts/playground/sc-playground",title:"Smart Contracts Playground",description:"The Smart Contracts playground is an online service use to write, test and deploy smart contracts.",source:"@site/docs/build/smart-contracts/playground/README.md",sourceDirName:"build/smart-contracts/playground",slug:"/build/smart-contracts/playground/",permalink:"/build/smart-contracts/playground/",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",sidebarPosition:10,frontMatter:{id:"sc-playground",title:"Smart Contracts Playground",sidebar_label:"Playground",sidebar_position:10},sidebar:"docs",previous:{title:"Examples",permalink:"/build/smart-contracts/examples"},next:{title:"Build",permalink:"/build/smart-contracts/playground/build"}},i={},s=[],u={toc:s},p="wrapper";function d(t){let{components:e,...o}=t;return(0,a.kt)(p,(0,n.Z)({},u,o,{components:e,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The Smart Contracts playground is an online service use to write, test and deploy smart contracts.\nIt is available here: ",(0,a.kt)("a",{parentName:"p",href:"https://playground.archethic.net/"},"https://playground.archethic.net/"),"."),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Follow the ",(0,a.kt)("a",{parentName:"li",href:"/build/smart-contracts/playground/build"},"Build")," menu to build a smart contracts with the playground."),(0,a.kt)("li",{parentName:"ul"},"Follow the ",(0,a.kt)("a",{parentName:"li",href:"/build/smart-contracts/playground/deploy"},"Deploy")," menu to deploy a smart contracts.")),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"The Smart Contracts playground",src:r(73161).Z,width:"3600",height:"2390"})))}d.isMDXComponent=!0},73161:(t,e,r)=>{r.d(e,{Z:()=>n});const n=r.p+"assets/images/playground_hello_contract-41f5d178b0db8bcc3a7406bffc3f5035.png"},8209:(t,e,r)=>{r(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4398],{3905:(t,e,r)=>{r.d(e,{Zo:()=>u,kt:()=>y});var n=r(67294);function a(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function o(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function l(t){for(var e=1;e=0||(a[r]=t[r]);return a}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(a[r]=t[r])}return a}var i=n.createContext({}),s=function(t){var e=n.useContext(i),r=e;return t&&(r="function"==typeof t?t(e):l(l({},e),t)),r},u=function(t){var e=s(t.components);return n.createElement(i.Provider,{value:e},t.children)},p="mdxType",d={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},m=n.forwardRef((function(t,e){var r=t.components,a=t.mdxType,o=t.originalType,i=t.parentName,u=c(t,["components","mdxType","originalType","parentName"]),p=s(r),m=a,y=p["".concat(i,".").concat(m)]||p[m]||d[m]||o;return r?n.createElement(y,l(l({ref:e},u),{},{components:r})):n.createElement(y,l({ref:e},u))}));function y(t,e){var r=arguments,a=e&&e.mdxType;if("string"==typeof t||a){var o=r.length,l=new Array(o);l[0]=m;var c={};for(var i in e)hasOwnProperty.call(e,i)&&(c[i]=e[i]);c.originalType=t,c[p]="string"==typeof t?t:a,l[1]=c;for(var s=2;s{r.r(e),r.d(e,{assets:()=>i,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>c,toc:()=>s});var n=r(87462),a=(r(67294),r(3905));r(8209);const o={id:"sc-playground",title:"Smart Contracts Playground",sidebar_label:"Playground",sidebar_position:10},l=void 0,c={unversionedId:"build/smart-contracts/playground/sc-playground",id:"build/smart-contracts/playground/sc-playground",title:"Smart Contracts Playground",description:"The Smart Contracts playground is an online service use to write, test and deploy smart contracts.",source:"@site/docs/build/smart-contracts/playground/README.md",sourceDirName:"build/smart-contracts/playground",slug:"/build/smart-contracts/playground/",permalink:"/build/smart-contracts/playground/",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",sidebarPosition:10,frontMatter:{id:"sc-playground",title:"Smart Contracts Playground",sidebar_label:"Playground",sidebar_position:10},sidebar:"docs",previous:{title:"Examples",permalink:"/build/smart-contracts/examples"},next:{title:"Build",permalink:"/build/smart-contracts/playground/build"}},i={},s=[],u={toc:s},p="wrapper";function d(t){let{components:e,...o}=t;return(0,a.kt)(p,(0,n.Z)({},u,o,{components:e,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The Smart Contracts playground is an online service use to write, test and deploy smart contracts.\nIt is available here: ",(0,a.kt)("a",{parentName:"p",href:"https://playground.archethic.net/"},"https://playground.archethic.net/"),"."),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Follow the ",(0,a.kt)("a",{parentName:"li",href:"/build/smart-contracts/playground/build"},"Build")," menu to build a smart contracts with the playground."),(0,a.kt)("li",{parentName:"ul"},"Follow the ",(0,a.kt)("a",{parentName:"li",href:"/build/smart-contracts/playground/deploy"},"Deploy")," menu to deploy a smart contracts.")),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"The Smart Contracts playground",src:r(73161).Z,width:"3600",height:"2390"})))}d.isMDXComponent=!0},73161:(t,e,r)=>{r.d(e,{Z:()=>n});const n=r.p+"assets/images/playground_hello_contract-41f5d178b0db8bcc3a7406bffc3f5035.png"},8209:(t,e,r)=>{r(67294)}}]); \ No newline at end of file diff --git a/assets/js/bbc3785e.415c1cd8.js b/assets/js/bbc3785e.65a7cd77.js similarity index 98% rename from assets/js/bbc3785e.415c1cd8.js rename to assets/js/bbc3785e.65a7cd77.js index a5ef76358..c366e94b5 100644 --- a/assets/js/bbc3785e.415c1cd8.js +++ b/assets/js/bbc3785e.65a7cd77.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1690],{3905:(e,t,n)=>{n.d(t,{Zo:()=>s,kt:()=>m});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var d=r.createContext({}),c=function(e){var t=r.useContext(d),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},s=function(e){var t=c(e.components);return r.createElement(d.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},b=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,d=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),p=c(n),b=a,m=p["".concat(d,".").concat(b)]||p[b]||u[b]||o;return n?r.createElement(m,i(i({ref:t},s),{},{components:n})):r.createElement(m,i({ref:t},s))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=b;var l={};for(var d in t)hasOwnProperty.call(t,d)&&(l[d]=t[d]);l.originalType=e,l[p]="string"==typeof e?e:a,i[1]=l;for(var c=2;c{n.r(t),n.d(t,{Badge:()=>u,Bullet:()=>s,Details:()=>m,SpecifiedBy:()=>p,assets:()=>c,contentTitle:()=>l,default:()=>g,frontMatter:()=>i,metadata:()=>d,toc:()=>b});var r=n(87462),a=n(67294),o=n(3905);n(8209);const i={id:"endpoint",title:"Endpoint",hide_table_of_contents:!1},l=void 0,d={unversionedId:"build/api/schema/objects/endpoint",id:"build/api/schema/objects/endpoint",title:"Endpoint",description:"[Endpoint] represents a network node's endpoint",source:"@site/docs/build/api/schema/objects/endpoint.mdx",sourceDirName:"build/api/schema/objects",slug:"/build/api/schema/objects/endpoint",permalink:"/build/api/schema/objects/endpoint",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"endpoint",title:"Endpoint",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"Data",permalink:"/build/api/schema/objects/data"},next:{title:"ErrorDetails",permalink:"/build/api/schema/objects/error-details"}},c={},s=()=>(0,o.kt)(a.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=e=>(0,o.kt)(a.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,o.kt)(a.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),b=[{value:"Fields",id:"fields",level:3},{value:'Endpoint.ipString ',id:"code-style-fontweight-normal-endpointbipbcodestring-",level:4},{value:'Endpoint.portInt ',id:"code-style-fontweight-normal-endpointbportbcodeint-",level:4},{value:"Returned by",id:"returned-by",level:3}],m=e=>{let{dataOpen:t,dataClose:n,children:i,startOpen:l=!1}=e;const[d,c]=(0,a.useState)(l);return(0,o.kt)("details",(0,r.Z)({},d?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),c((e=>!e))},style:{listStyle:"none"}},d?t:n),d&&i)},f={Bullet:s,SpecifiedBy:p,Badge:u,toc:b,Details:m},y="wrapper";function g(e){let{components:t,...n}=e;return(0,o.kt)(y,(0,r.Z)({},f,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"[Endpoint]"," represents a network node's endpoint"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"type Endpoint {\n ip: String\n port: Int\n}\n")),(0,o.kt)("h3",{id:"fields"},"Fields"),(0,o.kt)("h4",{id:"code-style-fontweight-normal-endpointbipbcodestring-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"Endpoint.",(0,o.kt)("b",null,"ip"))),(0,o.kt)(s,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/string"},(0,o.kt)("inlineCode",{parentName:"a"},"String"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h4",{id:"code-style-fontweight-normal-endpointbportbcodeint-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"Endpoint.",(0,o.kt)("b",null,"port"))),(0,o.kt)(s,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/int"},(0,o.kt)("inlineCode",{parentName:"a"},"Int"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h3",{id:"returned-by"},"Returned by"),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/queries/nearest-endpoints"},(0,o.kt)("inlineCode",{parentName:"a"},"nearestEndpoints"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"query",mdxType:"Badge"})))}g.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1690],{3905:(e,t,n)=>{n.d(t,{Zo:()=>s,kt:()=>m});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var d=r.createContext({}),c=function(e){var t=r.useContext(d),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},s=function(e){var t=c(e.components);return r.createElement(d.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},b=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,d=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),p=c(n),b=a,m=p["".concat(d,".").concat(b)]||p[b]||u[b]||o;return n?r.createElement(m,i(i({ref:t},s),{},{components:n})):r.createElement(m,i({ref:t},s))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=b;var l={};for(var d in t)hasOwnProperty.call(t,d)&&(l[d]=t[d]);l.originalType=e,l[p]="string"==typeof e?e:a,i[1]=l;for(var c=2;c{n.r(t),n.d(t,{Badge:()=>u,Bullet:()=>s,Details:()=>m,SpecifiedBy:()=>p,assets:()=>c,contentTitle:()=>l,default:()=>g,frontMatter:()=>i,metadata:()=>d,toc:()=>b});var r=n(87462),a=n(67294),o=n(3905);n(8209);const i={id:"endpoint",title:"Endpoint",hide_table_of_contents:!1},l=void 0,d={unversionedId:"build/api/schema/objects/endpoint",id:"build/api/schema/objects/endpoint",title:"Endpoint",description:"[Endpoint] represents a network node's endpoint",source:"@site/docs/build/api/schema/objects/endpoint.mdx",sourceDirName:"build/api/schema/objects",slug:"/build/api/schema/objects/endpoint",permalink:"/build/api/schema/objects/endpoint",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"endpoint",title:"Endpoint",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"Data",permalink:"/build/api/schema/objects/data"},next:{title:"ErrorDetails",permalink:"/build/api/schema/objects/error-details"}},c={},s=()=>(0,o.kt)(a.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=e=>(0,o.kt)(a.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,o.kt)(a.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),b=[{value:"Fields",id:"fields",level:3},{value:'Endpoint.ipString ',id:"code-style-fontweight-normal-endpointbipbcodestring-",level:4},{value:'Endpoint.portInt ',id:"code-style-fontweight-normal-endpointbportbcodeint-",level:4},{value:"Returned by",id:"returned-by",level:3}],m=e=>{let{dataOpen:t,dataClose:n,children:i,startOpen:l=!1}=e;const[d,c]=(0,a.useState)(l);return(0,o.kt)("details",(0,r.Z)({},d?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),c((e=>!e))},style:{listStyle:"none"}},d?t:n),d&&i)},f={Bullet:s,SpecifiedBy:p,Badge:u,toc:b,Details:m},y="wrapper";function g(e){let{components:t,...n}=e;return(0,o.kt)(y,(0,r.Z)({},f,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"[Endpoint]"," represents a network node's endpoint"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"type Endpoint {\n ip: String\n port: Int\n}\n")),(0,o.kt)("h3",{id:"fields"},"Fields"),(0,o.kt)("h4",{id:"code-style-fontweight-normal-endpointbipbcodestring-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"Endpoint.",(0,o.kt)("b",null,"ip"))),(0,o.kt)(s,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/string"},(0,o.kt)("inlineCode",{parentName:"a"},"String"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h4",{id:"code-style-fontweight-normal-endpointbportbcodeint-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"Endpoint.",(0,o.kt)("b",null,"port"))),(0,o.kt)(s,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/int"},(0,o.kt)("inlineCode",{parentName:"a"},"Int"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h3",{id:"returned-by"},"Returned by"),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/queries/nearest-endpoints"},(0,o.kt)("inlineCode",{parentName:"a"},"nearestEndpoints"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"query",mdxType:"Badge"})))}g.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/bd1424fb.1c943e7f.js b/assets/js/bd1424fb.e22c4e36.js similarity index 99% rename from assets/js/bd1424fb.1c943e7f.js rename to assets/js/bd1424fb.e22c4e36.js index 23c596039..07e9f1359 100644 --- a/assets/js/bd1424fb.1c943e7f.js +++ b/assets/js/bd1424fb.e22c4e36.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9036],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>k});var a=n(67294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function r(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var p=a.createContext({}),c=function(e){var t=a.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},d=function(e){var t=c(e.components);return a.createElement(p.Provider,{value:t},e.children)},s="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var n=e.components,i=e.mdxType,l=e.originalType,p=e.parentName,d=o(e,["components","mdxType","originalType","parentName"]),s=c(n),u=i,k=s["".concat(p,".").concat(u)]||s[u]||h[u]||l;return n?a.createElement(k,r(r({ref:t},d),{},{components:n})):a.createElement(k,r({ref:t},d))}));function k(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var l=n.length,r=new Array(l);r[0]=u;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[s]="string"==typeof e?e:i,r[1]=o;for(var c=2;c{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>r,default:()=>h,frontMatter:()=>l,metadata:()=>o,toc:()=>c});var a=n(87462),i=(n(67294),n(3905));n(8209);const l={id:"wallet-spec",title:"Archethic's wallet specification"},r=void 0,o={unversionedId:"build/clients/wallet-spec",id:"build/clients/wallet-spec",title:"Archethic's wallet specification",description:"Onchain wallet (aka Keychain) is a wallet stored on Archethic blockchain in encrypted form.",source:"@site/docs/build/clients/wallet-specification.md",sourceDirName:"build/clients",slug:"/build/clients/wallet-spec",permalink:"/build/clients/wallet-spec",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"wallet-spec",title:"Archethic's wallet specification"},sidebar:"docs",previous:{title:"Archethic's wallet access",permalink:"/build/clients/wallet-access"},next:{title:"API",permalink:"/category/api"}},p={},c=[{value:"Glossary",id:"glossary",level:2},{value:"Cryptography",id:"cryptography",level:2},{value:"Derivation path",id:"derivation-path",level:3},{value:"Key derivation",id:"key-derivation",level:3},{value:"Replace the derivation path index",id:"replace-the-derivation-path-index",level:4},{value:"Hash of the derivation path",id:"hash-of-the-derivation-path",level:4},{value:"Derive private key",id:"derive-private-key",level:4},{value:"Derive public key",id:"derive-public-key",level:4},{value:"Encryption",id:"encryption",level:3},{value:"Encrypting the Onchain Wallet",id:"encrypting-the-onchain-wallet",level:4},{value:"Encoding of Encrypted Wallet",id:"encoding-of-encrypted-wallet",level:4},{value:"Encrypting Wallet Encryption Key",id:"encrypting-wallet-encryption-key",level:4},{value:"Encoding of Encrypted Wallet Key",id:"encoding-of-encrypted-wallet-key",level:4},{value:"Encoding",id:"encoding",level:2},{value:"Encoding of wallet",id:"encoding-of-wallet",level:3},{value:"Encoding of Curve Types",id:"encoding-of-curve-types",level:3},{value:"Encoding of Hash Types",id:"encoding-of-hash-types",level:3},{value:"Transaction representation",id:"transaction-representation",level:2},{value:"Format",id:"format",level:2},{value:"Public Key Format",id:"public-key-format",level:3},{value:"Account Address Format",id:"account-address-format",level:3}],d={toc:c},s="wrapper";function h(e){let{components:t,...n}=e;return(0,i.kt)(s,(0,a.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"Onchain wallet (aka ",(0,i.kt)("strong",{parentName:"p"},"Keychain"),") is a wallet stored on Archethic blockchain in encrypted form. "),(0,i.kt)("p",null,"This keychain aims to support several way to identify a user and its transaction chains.\nIt can also support multichains identification through the use of key derivation and derivation path."),(0,i.kt)("p",null,"A keychain is then a wallet which stores a main master seed, with a list of services (Archethic chains / other crypto identification) encrypted and only accessible by a list of authorized public keys"),(0,i.kt)("h2",{id:"glossary"},"Glossary"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"w_{e}")," = Encoded Onchain Archethic Wallet"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"wk_{aes}")," = AES256 CTR Key used to encrypt w_{e}"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"enc(w_{e})")," = AES256 CTR Encryption of ",(0,i.kt)("inlineCode",{parentName:"li"},"w_{e}")," using ",(0,i.kt)("inlineCode",{parentName:"li"},"wk_{aes}")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"ew_{aes}")," = Encoded ",(0,i.kt)("inlineCode",{parentName:"li"},"enc(w_{e})")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"aes_key")," = AES256 CBC Key used to encrypt ",(0,i.kt)("inlineCode",{parentName:"li"},"wk_{aes}")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"enc(wk_{aes})")," = AES256 CBC Encryption of ",(0,i.kt)("inlineCode",{parentName:"li"},"wk_{aes}")," using ",(0,i.kt)("inlineCode",{parentName:"li"},"aes_key")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"ewk_{aes}")," = Encoded ",(0,i.kt)("inlineCode",{parentName:"li"},"enc(wk_{aes})")," "),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"encode(pub_key)")," = Encoded Public Key. "),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"arch_address")," = Encoded Account Address. "),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"o_{priv}")," = Origin Device Private Key "),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"o_{pub}")," = Origin Device Public Key (raw 04xy) "),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"encode(o_{pub})")," = Encoded Origin Device Public Key "),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"e_{key}")," = Ephemeral Key Pair "),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"e_{pub}")," = Ephemeral Public Key (raw 04xy) "),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"e_{priv}")," = Ephemeral Private Key ")),(0,i.kt)("h2",{id:"cryptography"},"Cryptography"),(0,i.kt)("h3",{id:"derivation-path"},"Derivation path"),(0,i.kt)("p",null,"Archethic's keychain is using hierarchical derivation key scheme inspired by BIP32 to define a way\nto generate keys and addresses."),(0,i.kt)("p",null,"Because Archethic cryptography and transaction chain paradigm differs from traditional blockchain (used in BIP32/BIP44)\nwe adapted it to use specific derivation scheme (as describe in the BIP43)"),(0,i.kt)("p",null,"The main derivation path of Archethic keychain is: ",(0,i.kt)("strong",{parentName:"p"},"m/650'/account/index")," (where 650 is the Archethic transaction chain purpose - in the BIP43 terminology)"),(0,i.kt)("p",null,"The ",(0,i.kt)("inlineCode",{parentName:"p"},"account")," can be anything, by default ",(0,i.kt)("inlineCode",{parentName:"p"},"0")," is the main uco transaction chain, but it could be customized to create more entropy."),(0,i.kt)("p",null,"The ",(0,i.kt)("inlineCode",{parentName:"p"},"index")," is the number of transaction in the chain, used to compute the derived keys and addresses"),(0,i.kt)("h3",{id:"key-derivation"},"Key derivation"),(0,i.kt)("p",null,"In order to derive the keys using the derivation path mentioned above, we implemented our own key derivation scheme, which takes inspiration from BIP32 but simplifies it a bit."),(0,i.kt)("h4",{id:"replace-the-derivation-path-index"},"Replace the derivation path index"),(0,i.kt)("p",null,"Given the derivation path: ",(0,i.kt)("inlineCode",{parentName:"p"},"m/650'/0/0"),", we change the last number (the transaction's index in the chain) we some variable provided by the application(ie: ",(0,i.kt)("inlineCode",{parentName:"p"},"m/650'/0/1")," will give the 1st transaction's address on the chain)"),(0,i.kt)("h4",{id:"hash-of-the-derivation-path"},"Hash of the derivation path"),(0,i.kt)("p",null,"Once the derivation path index is replaced we hashed it to give a constant size through ",(0,i.kt)("inlineCode",{parentName:"p"},"SHA256")),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre"},"hashedPath = SHA256(ReplaceDerivationPath(derivationPath, index))\n")),(0,i.kt)("h4",{id:"derive-private-key"},"Derive private key"),(0,i.kt)("p",null,"Then we have to derive the private key based on the hashedPath and the master seed by using HMAC and extracting the first 32 bytes of the result"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre"},"extendedSeed = HMAC-SHA512(Key=MasterSeed, Data=hashedPath)\nextendedPrivateKey = extendedSeed.slice(0, 32)\n")),(0,i.kt)("h4",{id:"derive-public-key"},"Derive public key"),(0,i.kt)("p",null,"Now with the given private key we can easily extract the public key for the given curve specified in the Keychain's service"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre"},"{ publicKey, private } = generateKeyPair(extendedPrivateKey, curve)\n")),(0,i.kt)("h3",{id:"encryption"},"Encryption"),(0,i.kt)("p",null,"The keychain is using a double encryption scheme where:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"the wallet is encrypted with AES "),(0,i.kt)("li",{parentName:"ul"},"the ",(0,i.kt)("inlineCode",{parentName:"li"},"aes_key")," is encrypted with elliptic curve cryptography using ECIES (Elliptic Curve Integration Encryption Scheme): ",(0,i.kt)("inlineCode",{parentName:"li"},"wk_{aes}")," for the authorized public keys")),(0,i.kt)("admonition",{type:"info"},(0,i.kt)("p",{parentName:"admonition"},"Ephemeral key is used to perform ECDH with authorized public key, in order to derive ",(0,i.kt)("inlineCode",{parentName:"p"},"aes_key"),". This ",(0,i.kt)("inlineCode",{parentName:"p"},"aes_key")," is then used to encrypt the ",(0,i.kt)("inlineCode",{parentName:"p"},"wk_{aes}"),". This is called ",(0,i.kt)("inlineCode",{parentName:"p"},"ECIESE"),"(Elliptic Curve Integration Encryption Scheme Ephemeral)")),(0,i.kt)("p",null,"Then to guarantee the security of the wallet, only the authorized public keys are able to decrypt the encrypted aes key(",(0,i.kt)("inlineCode",{parentName:"p"},"enc(aes_key)"),") to be able to decrypt the encrypted wallet (",(0,i.kt)("inlineCode",{parentName:"p"},"wk_{aes}"),")"),(0,i.kt)("h4",{id:"encrypting-the-onchain-wallet"},"Encrypting the Onchain Wallet"),(0,i.kt)("p",null,"The onchain encoded wallet ",(0,i.kt)("inlineCode",{parentName:"p"},"w_{e}")," is encrypted using symmetric encryption AES256 CTR key ",(0,i.kt)("inlineCode",{parentName:"p"},"wk_{aes}")," as follows: "),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre"},"wallet_iv [16 bytes], reserved [16 bytes] = sha256(sha256(wk_{aes})) \nenc(w_{e}) = aes256(mode=ctr, key = wk_{aes}, iv = wallet_iv, data = w_{e}) \n")),(0,i.kt)("h4",{id:"encoding-of-encrypted-wallet"},"Encoding of Encrypted Wallet"),(0,i.kt)("p",null,"The above encrypted wallet ",(0,i.kt)("inlineCode",{parentName:"p"},"enc(w_{e})")," is stored on the Archethic Blockchain with the following format. "),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:null},"enc(w_{e}) ","[bytes]")))),(0,i.kt)("h4",{id:"encrypting-wallet-encryption-key"},"Encrypting Wallet Encryption Key"),(0,i.kt)("p",null,"The key (",(0,i.kt)("inlineCode",{parentName:"p"},"wk_{aes}"),") which encrypts the wallet (",(0,i.kt)("inlineCode",{parentName:"p"},"w_{e}"),") is subsequently encrypted using Elliptic Curve Integrated Encryption Scheme to support different authorized public keys and to reduce the increased space overhead of the encryptions. "),(0,i.kt)("p",null,"Algorithm$ for encrypting ",(0,i.kt)("inlineCode",{parentName:"p"},"wk_{aes}"),"= ECIES (ECDH + AES256 CBC) "),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre"},"ecdh_secret = ecdh_point_x(e_{pub}, o_{priv}) = ecdh_point_x(e_{priv}, o_{pub}) \n \naes_key [32 bytes], iv [16 bytes], auth_seed [16 bytes] = sha512(sha512(ecdh\\_secret)) \n \nenc(wk_{aes}) = aes256(mode=cbc, key = aes\\_key, iv = iv, data = wk_{aes}) \n \nauth_key = sha256(auth_seed) \n \nauth_tag [16 bytes], reserved [16 bytes] = hmac256(key = auth_key, data = enc(wk_{aes}))\n")),(0,i.kt)("h4",{id:"encoding-of-encrypted-wallet-key"},"Encoding of Encrypted Wallet Key"),(0,i.kt)("p",null,"The above encrypted key ",(0,i.kt)("inlineCode",{parentName:"p"},"enc(wk_{aes})")," is stored on the Archethic Blockchain with the following format. "),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:null},"e_{pub} 04xy ","[bytes]"),(0,i.kt)("th",{parentName:"tr",align:null},"auth_tag ","[16 bytes]"),(0,i.kt)("th",{parentName:"tr",align:null},"enc(wk_{aes}) ","[32 bytes]")))),(0,i.kt)("h2",{id:"encoding"},"Encoding"),(0,i.kt)("p",null,"The wallet before encryption is encoding into a binary format"),(0,i.kt)("h3",{id:"encoding-of-wallet"},"Encoding of wallet"),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:null},"Version"),(0,i.kt)("th",{parentName:"tr",align:null},"Seed size"),(0,i.kt)("th",{parentName:"tr",align:null},"Seed"),(0,i.kt)("th",{parentName:"tr",align:null},"Nb services"),(0,i.kt)("th",{parentName:"tr",align:null},"Service name size"),(0,i.kt)("th",{parentName:"tr",align:null},"Service name"),(0,i.kt)("th",{parentName:"tr",align:null},"Derivation path length"),(0,i.kt)("th",{parentName:"tr",align:null},"Derivation path"),(0,i.kt)("th",{parentName:"tr",align:null},"Curve type"),(0,i.kt)("th",{parentName:"tr",align:null},"Hash type"),(0,i.kt)("th",{parentName:"tr",align:null},"..."))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"4 bytes"),(0,i.kt)("td",{parentName:"tr",align:null},"1 byte"),(0,i.kt)("td",{parentName:"tr",align:null},"N bytes"),(0,i.kt)("td",{parentName:"tr",align:null},"1 byte"),(0,i.kt)("td",{parentName:"tr",align:null},"1 byte"),(0,i.kt)("td",{parentName:"tr",align:null},"N bytes"),(0,i.kt)("td",{parentName:"tr",align:null},"1 byte"),(0,i.kt)("td",{parentName:"tr",align:null},"N bytes"),(0,i.kt)("td",{parentName:"tr",align:null},"1 byte"),(0,i.kt)("td",{parentName:"tr",align:null},"1 byte"),(0,i.kt)("td",{parentName:"tr",align:null},"...")))),(0,i.kt)("h3",{id:"encoding-of-curve-types"},"Encoding of Curve Types"),(0,i.kt)("p",null,"The ",(0,i.kt)("inlineCode",{parentName:"p"},"curve_type")," is a 1 byte long field, hex encoded. Currently, following curves are supported: "),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"0: ED25519 "),(0,i.kt)("li",{parentName:"ul"},"1: NISTP256 "),(0,i.kt)("li",{parentName:"ul"},"2: SECP256K1 ")),(0,i.kt)("h3",{id:"encoding-of-hash-types"},"Encoding of Hash Types"),(0,i.kt)("p",null,"The ",(0,i.kt)("inlineCode",{parentName:"p"},"hash_type")," is a 1 byte long field, hex encoded. Currently, following hashes are supported: "),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"0: SHA256 (sha2) "),(0,i.kt)("li",{parentName:"ul"},"1: SHA512 (sha2) "),(0,i.kt)("li",{parentName:"ul"},"2: SHA3_256 (keccak) "),(0,i.kt)("li",{parentName:"ul"},"3: SHA3_512 (keccak) "),(0,i.kt)("li",{parentName:"ul"},"4: BLAKE2B ")),(0,i.kt)("h2",{id:"transaction-representation"},"Transaction representation"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre"},"Transaction \n- Data: \n - Ownerships: \n Secret: Encrypted Wallet, \n Authorized Keys: \n Public Key: Origin Device / Password Public Key, \n Encrypted Secret Key: Encrypted AES Key for the authorized public key \n")),(0,i.kt)("h2",{id:"format"},"Format"),(0,i.kt)("h3",{id:"public-key-format"},"Public Key Format"),(0,i.kt)("p",null,"When clients have to produce public key, an origin type identification byte have to prepend before the key material as well as the curve type."),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:null},"Curve ID"),(0,i.kt)("th",{parentName:"tr",align:null},"Origin ID"),(0,i.kt)("th",{parentName:"tr",align:null},"Key material"))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"1 byte"),(0,i.kt)("td",{parentName:"tr",align:null},"1 byte"),(0,i.kt)("td",{parentName:"tr",align:null},"N bytes")))),(0,i.kt)("p",null,"The ",(0,i.kt)("inlineCode",{parentName:"p"},"origin_type")," is a 1 byte long field, hex encoded. Currently, following origins are defined: "),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"0: Onchain Wallet"),(0,i.kt)("li",{parentName:"ul"},"1: Software Wallet (Node, Mobile App, Desktop, etc.)"),(0,i.kt)("li",{parentName:"ul"},"2: TPM (Node) "),(0,i.kt)("li",{parentName:"ul"},"3: Yubikey (Node, Hardware Wallet)"),(0,i.kt)("li",{parentName:"ul"},"4: Ledger (Hardware Wallet) ")),(0,i.kt)("h3",{id:"account-address-format"},"Account Address Format"),(0,i.kt)("p",null,"Archethic addresses following a specific format to version algorithms used helping\nto evolve easily between curves and hash algorithms."),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:null},"Curve Type"),(0,i.kt)("th",{parentName:"tr",align:null},"Hash algo"),(0,i.kt)("th",{parentName:"tr",align:null},"hash(encode(pub_key))"))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"1 byte"),(0,i.kt)("td",{parentName:"tr",align:null},"1 byte"),(0,i.kt)("td",{parentName:"tr",align:null},"N bytes")))))}h.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9036],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>k});var a=n(67294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function r(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var p=a.createContext({}),c=function(e){var t=a.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},d=function(e){var t=c(e.components);return a.createElement(p.Provider,{value:t},e.children)},s="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var n=e.components,i=e.mdxType,l=e.originalType,p=e.parentName,d=o(e,["components","mdxType","originalType","parentName"]),s=c(n),u=i,k=s["".concat(p,".").concat(u)]||s[u]||h[u]||l;return n?a.createElement(k,r(r({ref:t},d),{},{components:n})):a.createElement(k,r({ref:t},d))}));function k(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var l=n.length,r=new Array(l);r[0]=u;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[s]="string"==typeof e?e:i,r[1]=o;for(var c=2;c{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>r,default:()=>h,frontMatter:()=>l,metadata:()=>o,toc:()=>c});var a=n(87462),i=(n(67294),n(3905));n(8209);const l={id:"wallet-spec",title:"Archethic's wallet specification"},r=void 0,o={unversionedId:"build/clients/wallet-spec",id:"build/clients/wallet-spec",title:"Archethic's wallet specification",description:"Onchain wallet (aka Keychain) is a wallet stored on Archethic blockchain in encrypted form.",source:"@site/docs/build/clients/wallet-specification.md",sourceDirName:"build/clients",slug:"/build/clients/wallet-spec",permalink:"/build/clients/wallet-spec",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"wallet-spec",title:"Archethic's wallet specification"},sidebar:"docs",previous:{title:"Archethic's wallet access",permalink:"/build/clients/wallet-access"},next:{title:"API",permalink:"/category/api"}},p={},c=[{value:"Glossary",id:"glossary",level:2},{value:"Cryptography",id:"cryptography",level:2},{value:"Derivation path",id:"derivation-path",level:3},{value:"Key derivation",id:"key-derivation",level:3},{value:"Replace the derivation path index",id:"replace-the-derivation-path-index",level:4},{value:"Hash of the derivation path",id:"hash-of-the-derivation-path",level:4},{value:"Derive private key",id:"derive-private-key",level:4},{value:"Derive public key",id:"derive-public-key",level:4},{value:"Encryption",id:"encryption",level:3},{value:"Encrypting the Onchain Wallet",id:"encrypting-the-onchain-wallet",level:4},{value:"Encoding of Encrypted Wallet",id:"encoding-of-encrypted-wallet",level:4},{value:"Encrypting Wallet Encryption Key",id:"encrypting-wallet-encryption-key",level:4},{value:"Encoding of Encrypted Wallet Key",id:"encoding-of-encrypted-wallet-key",level:4},{value:"Encoding",id:"encoding",level:2},{value:"Encoding of wallet",id:"encoding-of-wallet",level:3},{value:"Encoding of Curve Types",id:"encoding-of-curve-types",level:3},{value:"Encoding of Hash Types",id:"encoding-of-hash-types",level:3},{value:"Transaction representation",id:"transaction-representation",level:2},{value:"Format",id:"format",level:2},{value:"Public Key Format",id:"public-key-format",level:3},{value:"Account Address Format",id:"account-address-format",level:3}],d={toc:c},s="wrapper";function h(e){let{components:t,...n}=e;return(0,i.kt)(s,(0,a.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"Onchain wallet (aka ",(0,i.kt)("strong",{parentName:"p"},"Keychain"),") is a wallet stored on Archethic blockchain in encrypted form. "),(0,i.kt)("p",null,"This keychain aims to support several way to identify a user and its transaction chains.\nIt can also support multichains identification through the use of key derivation and derivation path."),(0,i.kt)("p",null,"A keychain is then a wallet which stores a main master seed, with a list of services (Archethic chains / other crypto identification) encrypted and only accessible by a list of authorized public keys"),(0,i.kt)("h2",{id:"glossary"},"Glossary"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"w_{e}")," = Encoded Onchain Archethic Wallet"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"wk_{aes}")," = AES256 CTR Key used to encrypt w_{e}"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"enc(w_{e})")," = AES256 CTR Encryption of ",(0,i.kt)("inlineCode",{parentName:"li"},"w_{e}")," using ",(0,i.kt)("inlineCode",{parentName:"li"},"wk_{aes}")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"ew_{aes}")," = Encoded ",(0,i.kt)("inlineCode",{parentName:"li"},"enc(w_{e})")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"aes_key")," = AES256 CBC Key used to encrypt ",(0,i.kt)("inlineCode",{parentName:"li"},"wk_{aes}")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"enc(wk_{aes})")," = AES256 CBC Encryption of ",(0,i.kt)("inlineCode",{parentName:"li"},"wk_{aes}")," using ",(0,i.kt)("inlineCode",{parentName:"li"},"aes_key")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"ewk_{aes}")," = Encoded ",(0,i.kt)("inlineCode",{parentName:"li"},"enc(wk_{aes})")," "),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"encode(pub_key)")," = Encoded Public Key. "),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"arch_address")," = Encoded Account Address. "),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"o_{priv}")," = Origin Device Private Key "),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"o_{pub}")," = Origin Device Public Key (raw 04xy) "),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"encode(o_{pub})")," = Encoded Origin Device Public Key "),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"e_{key}")," = Ephemeral Key Pair "),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"e_{pub}")," = Ephemeral Public Key (raw 04xy) "),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"e_{priv}")," = Ephemeral Private Key ")),(0,i.kt)("h2",{id:"cryptography"},"Cryptography"),(0,i.kt)("h3",{id:"derivation-path"},"Derivation path"),(0,i.kt)("p",null,"Archethic's keychain is using hierarchical derivation key scheme inspired by BIP32 to define a way\nto generate keys and addresses."),(0,i.kt)("p",null,"Because Archethic cryptography and transaction chain paradigm differs from traditional blockchain (used in BIP32/BIP44)\nwe adapted it to use specific derivation scheme (as describe in the BIP43)"),(0,i.kt)("p",null,"The main derivation path of Archethic keychain is: ",(0,i.kt)("strong",{parentName:"p"},"m/650'/account/index")," (where 650 is the Archethic transaction chain purpose - in the BIP43 terminology)"),(0,i.kt)("p",null,"The ",(0,i.kt)("inlineCode",{parentName:"p"},"account")," can be anything, by default ",(0,i.kt)("inlineCode",{parentName:"p"},"0")," is the main uco transaction chain, but it could be customized to create more entropy."),(0,i.kt)("p",null,"The ",(0,i.kt)("inlineCode",{parentName:"p"},"index")," is the number of transaction in the chain, used to compute the derived keys and addresses"),(0,i.kt)("h3",{id:"key-derivation"},"Key derivation"),(0,i.kt)("p",null,"In order to derive the keys using the derivation path mentioned above, we implemented our own key derivation scheme, which takes inspiration from BIP32 but simplifies it a bit."),(0,i.kt)("h4",{id:"replace-the-derivation-path-index"},"Replace the derivation path index"),(0,i.kt)("p",null,"Given the derivation path: ",(0,i.kt)("inlineCode",{parentName:"p"},"m/650'/0/0"),", we change the last number (the transaction's index in the chain) we some variable provided by the application(ie: ",(0,i.kt)("inlineCode",{parentName:"p"},"m/650'/0/1")," will give the 1st transaction's address on the chain)"),(0,i.kt)("h4",{id:"hash-of-the-derivation-path"},"Hash of the derivation path"),(0,i.kt)("p",null,"Once the derivation path index is replaced we hashed it to give a constant size through ",(0,i.kt)("inlineCode",{parentName:"p"},"SHA256")),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre"},"hashedPath = SHA256(ReplaceDerivationPath(derivationPath, index))\n")),(0,i.kt)("h4",{id:"derive-private-key"},"Derive private key"),(0,i.kt)("p",null,"Then we have to derive the private key based on the hashedPath and the master seed by using HMAC and extracting the first 32 bytes of the result"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre"},"extendedSeed = HMAC-SHA512(Key=MasterSeed, Data=hashedPath)\nextendedPrivateKey = extendedSeed.slice(0, 32)\n")),(0,i.kt)("h4",{id:"derive-public-key"},"Derive public key"),(0,i.kt)("p",null,"Now with the given private key we can easily extract the public key for the given curve specified in the Keychain's service"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre"},"{ publicKey, private } = generateKeyPair(extendedPrivateKey, curve)\n")),(0,i.kt)("h3",{id:"encryption"},"Encryption"),(0,i.kt)("p",null,"The keychain is using a double encryption scheme where:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"the wallet is encrypted with AES "),(0,i.kt)("li",{parentName:"ul"},"the ",(0,i.kt)("inlineCode",{parentName:"li"},"aes_key")," is encrypted with elliptic curve cryptography using ECIES (Elliptic Curve Integration Encryption Scheme): ",(0,i.kt)("inlineCode",{parentName:"li"},"wk_{aes}")," for the authorized public keys")),(0,i.kt)("admonition",{type:"info"},(0,i.kt)("p",{parentName:"admonition"},"Ephemeral key is used to perform ECDH with authorized public key, in order to derive ",(0,i.kt)("inlineCode",{parentName:"p"},"aes_key"),". This ",(0,i.kt)("inlineCode",{parentName:"p"},"aes_key")," is then used to encrypt the ",(0,i.kt)("inlineCode",{parentName:"p"},"wk_{aes}"),". This is called ",(0,i.kt)("inlineCode",{parentName:"p"},"ECIESE"),"(Elliptic Curve Integration Encryption Scheme Ephemeral)")),(0,i.kt)("p",null,"Then to guarantee the security of the wallet, only the authorized public keys are able to decrypt the encrypted aes key(",(0,i.kt)("inlineCode",{parentName:"p"},"enc(aes_key)"),") to be able to decrypt the encrypted wallet (",(0,i.kt)("inlineCode",{parentName:"p"},"wk_{aes}"),")"),(0,i.kt)("h4",{id:"encrypting-the-onchain-wallet"},"Encrypting the Onchain Wallet"),(0,i.kt)("p",null,"The onchain encoded wallet ",(0,i.kt)("inlineCode",{parentName:"p"},"w_{e}")," is encrypted using symmetric encryption AES256 CTR key ",(0,i.kt)("inlineCode",{parentName:"p"},"wk_{aes}")," as follows: "),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre"},"wallet_iv [16 bytes], reserved [16 bytes] = sha256(sha256(wk_{aes})) \nenc(w_{e}) = aes256(mode=ctr, key = wk_{aes}, iv = wallet_iv, data = w_{e}) \n")),(0,i.kt)("h4",{id:"encoding-of-encrypted-wallet"},"Encoding of Encrypted Wallet"),(0,i.kt)("p",null,"The above encrypted wallet ",(0,i.kt)("inlineCode",{parentName:"p"},"enc(w_{e})")," is stored on the Archethic Blockchain with the following format. "),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:null},"enc(w_{e}) ","[bytes]")))),(0,i.kt)("h4",{id:"encrypting-wallet-encryption-key"},"Encrypting Wallet Encryption Key"),(0,i.kt)("p",null,"The key (",(0,i.kt)("inlineCode",{parentName:"p"},"wk_{aes}"),") which encrypts the wallet (",(0,i.kt)("inlineCode",{parentName:"p"},"w_{e}"),") is subsequently encrypted using Elliptic Curve Integrated Encryption Scheme to support different authorized public keys and to reduce the increased space overhead of the encryptions. "),(0,i.kt)("p",null,"Algorithm$ for encrypting ",(0,i.kt)("inlineCode",{parentName:"p"},"wk_{aes}"),"= ECIES (ECDH + AES256 CBC) "),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre"},"ecdh_secret = ecdh_point_x(e_{pub}, o_{priv}) = ecdh_point_x(e_{priv}, o_{pub}) \n \naes_key [32 bytes], iv [16 bytes], auth_seed [16 bytes] = sha512(sha512(ecdh\\_secret)) \n \nenc(wk_{aes}) = aes256(mode=cbc, key = aes\\_key, iv = iv, data = wk_{aes}) \n \nauth_key = sha256(auth_seed) \n \nauth_tag [16 bytes], reserved [16 bytes] = hmac256(key = auth_key, data = enc(wk_{aes}))\n")),(0,i.kt)("h4",{id:"encoding-of-encrypted-wallet-key"},"Encoding of Encrypted Wallet Key"),(0,i.kt)("p",null,"The above encrypted key ",(0,i.kt)("inlineCode",{parentName:"p"},"enc(wk_{aes})")," is stored on the Archethic Blockchain with the following format. "),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:null},"e_{pub} 04xy ","[bytes]"),(0,i.kt)("th",{parentName:"tr",align:null},"auth_tag ","[16 bytes]"),(0,i.kt)("th",{parentName:"tr",align:null},"enc(wk_{aes}) ","[32 bytes]")))),(0,i.kt)("h2",{id:"encoding"},"Encoding"),(0,i.kt)("p",null,"The wallet before encryption is encoding into a binary format"),(0,i.kt)("h3",{id:"encoding-of-wallet"},"Encoding of wallet"),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:null},"Version"),(0,i.kt)("th",{parentName:"tr",align:null},"Seed size"),(0,i.kt)("th",{parentName:"tr",align:null},"Seed"),(0,i.kt)("th",{parentName:"tr",align:null},"Nb services"),(0,i.kt)("th",{parentName:"tr",align:null},"Service name size"),(0,i.kt)("th",{parentName:"tr",align:null},"Service name"),(0,i.kt)("th",{parentName:"tr",align:null},"Derivation path length"),(0,i.kt)("th",{parentName:"tr",align:null},"Derivation path"),(0,i.kt)("th",{parentName:"tr",align:null},"Curve type"),(0,i.kt)("th",{parentName:"tr",align:null},"Hash type"),(0,i.kt)("th",{parentName:"tr",align:null},"..."))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"4 bytes"),(0,i.kt)("td",{parentName:"tr",align:null},"1 byte"),(0,i.kt)("td",{parentName:"tr",align:null},"N bytes"),(0,i.kt)("td",{parentName:"tr",align:null},"1 byte"),(0,i.kt)("td",{parentName:"tr",align:null},"1 byte"),(0,i.kt)("td",{parentName:"tr",align:null},"N bytes"),(0,i.kt)("td",{parentName:"tr",align:null},"1 byte"),(0,i.kt)("td",{parentName:"tr",align:null},"N bytes"),(0,i.kt)("td",{parentName:"tr",align:null},"1 byte"),(0,i.kt)("td",{parentName:"tr",align:null},"1 byte"),(0,i.kt)("td",{parentName:"tr",align:null},"...")))),(0,i.kt)("h3",{id:"encoding-of-curve-types"},"Encoding of Curve Types"),(0,i.kt)("p",null,"The ",(0,i.kt)("inlineCode",{parentName:"p"},"curve_type")," is a 1 byte long field, hex encoded. Currently, following curves are supported: "),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"0: ED25519 "),(0,i.kt)("li",{parentName:"ul"},"1: NISTP256 "),(0,i.kt)("li",{parentName:"ul"},"2: SECP256K1 ")),(0,i.kt)("h3",{id:"encoding-of-hash-types"},"Encoding of Hash Types"),(0,i.kt)("p",null,"The ",(0,i.kt)("inlineCode",{parentName:"p"},"hash_type")," is a 1 byte long field, hex encoded. Currently, following hashes are supported: "),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"0: SHA256 (sha2) "),(0,i.kt)("li",{parentName:"ul"},"1: SHA512 (sha2) "),(0,i.kt)("li",{parentName:"ul"},"2: SHA3_256 (keccak) "),(0,i.kt)("li",{parentName:"ul"},"3: SHA3_512 (keccak) "),(0,i.kt)("li",{parentName:"ul"},"4: BLAKE2B ")),(0,i.kt)("h2",{id:"transaction-representation"},"Transaction representation"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre"},"Transaction \n- Data: \n - Ownerships: \n Secret: Encrypted Wallet, \n Authorized Keys: \n Public Key: Origin Device / Password Public Key, \n Encrypted Secret Key: Encrypted AES Key for the authorized public key \n")),(0,i.kt)("h2",{id:"format"},"Format"),(0,i.kt)("h3",{id:"public-key-format"},"Public Key Format"),(0,i.kt)("p",null,"When clients have to produce public key, an origin type identification byte have to prepend before the key material as well as the curve type."),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:null},"Curve ID"),(0,i.kt)("th",{parentName:"tr",align:null},"Origin ID"),(0,i.kt)("th",{parentName:"tr",align:null},"Key material"))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"1 byte"),(0,i.kt)("td",{parentName:"tr",align:null},"1 byte"),(0,i.kt)("td",{parentName:"tr",align:null},"N bytes")))),(0,i.kt)("p",null,"The ",(0,i.kt)("inlineCode",{parentName:"p"},"origin_type")," is a 1 byte long field, hex encoded. Currently, following origins are defined: "),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"0: Onchain Wallet"),(0,i.kt)("li",{parentName:"ul"},"1: Software Wallet (Node, Mobile App, Desktop, etc.)"),(0,i.kt)("li",{parentName:"ul"},"2: TPM (Node) "),(0,i.kt)("li",{parentName:"ul"},"3: Yubikey (Node, Hardware Wallet)"),(0,i.kt)("li",{parentName:"ul"},"4: Ledger (Hardware Wallet) ")),(0,i.kt)("h3",{id:"account-address-format"},"Account Address Format"),(0,i.kt)("p",null,"Archethic addresses following a specific format to version algorithms used helping\nto evolve easily between curves and hash algorithms."),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:null},"Curve Type"),(0,i.kt)("th",{parentName:"tr",align:null},"Hash algo"),(0,i.kt)("th",{parentName:"tr",align:null},"hash(encode(pub_key))"))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"1 byte"),(0,i.kt)("td",{parentName:"tr",align:null},"1 byte"),(0,i.kt)("td",{parentName:"tr",align:null},"N bytes")))))}h.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/bd14bfe1.c6f8dbf7.js b/assets/js/bd14bfe1.8887aa42.js similarity index 98% rename from assets/js/bd14bfe1.c6f8dbf7.js rename to assets/js/bd14bfe1.8887aa42.js index 851b41276..54a0dd311 100644 --- a/assets/js/bd14bfe1.c6f8dbf7.js +++ b/assets/js/bd14bfe1.8887aa42.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4060],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>y});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function c(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var o=r.createContext({}),s=function(e){var t=r.useContext(o),n=t;return e&&(n="function"==typeof e?e(t):c(c({},t),e)),n},d=function(e){var t=s(e.components);return r.createElement(o.Provider,{value:t},e.children)},p="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,o=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),p=s(n),u=a,y=p["".concat(o,".").concat(u)]||p[u]||h[u]||i;return n?r.createElement(y,c(c({ref:t},d),{},{components:n})):r.createElement(y,c({ref:t},d))}));function y(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,c=new Array(i);c[0]=u;var l={};for(var o in t)hasOwnProperty.call(t,o)&&(l[o]=t[o]);l.originalType=e,l[p]="string"==typeof e?e:a,c[1]=l;for(var s=2;s{n.r(t),n.d(t,{assets:()=>o,contentTitle:()=>c,default:()=>h,frontMatter:()=>i,metadata:()=>l,toc:()=>s});var r=n(87462),a=(n(67294),n(3905));n(8209);const i={id:"wallet-access",title:"Archethic's wallet access"},c=void 0,l={unversionedId:"build/clients/wallet-access",id:"build/clients/wallet-access",title:"Archethic's wallet access",description:"Onchain wallet (aka Keychain) is a wallet stored on Archethic blockchain in encrypted form, to allow only the authorized access to read it and build transaction from it.",source:"@site/docs/build/clients/wallet-access.md",sourceDirName:"build/clients",slug:"/build/clients/wallet-access",permalink:"/build/clients/wallet-access",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"wallet-access",title:"Archethic's wallet access"},sidebar:"docs",previous:{title:"ADPU commands",permalink:"/build/clients/ledger-wallet/commands"},next:{title:"Archethic's wallet specification",permalink:"/build/clients/wallet-spec"}},o={},s=[{value:"Access enrollment",id:"access-enrollment",level:2},{value:"Keychain retrieval",id:"keychain-retrieval",level:2}],d={toc:s},p="wrapper";function h(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"Onchain wallet (aka ",(0,a.kt)("strong",{parentName:"p"},"Keychain"),") is a wallet stored on Archethic blockchain in encrypted form, to allow only the authorized access to read it and build transaction from it."),(0,a.kt)("p",null,"Also to avoid disclosure of information, access and keychain are using end to end encryption with elliptic curve cryptography to secure it."),(0,a.kt)("p",null,"Hence any client which would like to support wallet access and transaction building will have to be authorized."),(0,a.kt)("h2",{id:"access-enrollment"},"Access enrollment"),(0,a.kt)("p",null,"When a device or application want to become an access to the wallet, it first have to create a transaction where the keychain transaction's address is encrypted into it.\nThis data is stored in the ",(0,a.kt)("inlineCode",{parentName:"p"},"/data/ownerships")," section of the transaction., where the authorized public key is the ",(0,a.kt)("inlineCode",{parentName:"p"},"transaction's public key")," and the secret is an aes encryption of the keychain's address."),(0,a.kt)("p",null,"Then the keychain will create a new transaction on its chain by encrypting the wallet with a new AES key itself encrypted for the list of authorized access public keys wanted. (For instance the new device or application)"),(0,a.kt)("h2",{id:"keychain-retrieval"},"Keychain retrieval"),(0,a.kt)("p",null,"In order to retrieve the keychain from a device or application perspective, the access transaction's will be generated to be retrieved from the network."),(0,a.kt)("p",null,"Then the device or application will decrypt the encrypted keychain address to be able to download the keychain transaction."),(0,a.kt)("p",null,"Once received, the device or application - as being authorized by the keychain - will be able to decrypt the AES key to decrypt the wallet and perform any key derivation and transaction building from it."),(0,a.kt)("p",null,"Then, because the key have been generated on the fly, the client will forget about the private keys and seeds decrypted."))}h.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4060],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>y});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function c(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var o=r.createContext({}),s=function(e){var t=r.useContext(o),n=t;return e&&(n="function"==typeof e?e(t):c(c({},t),e)),n},d=function(e){var t=s(e.components);return r.createElement(o.Provider,{value:t},e.children)},p="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,o=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),p=s(n),u=a,y=p["".concat(o,".").concat(u)]||p[u]||h[u]||i;return n?r.createElement(y,c(c({ref:t},d),{},{components:n})):r.createElement(y,c({ref:t},d))}));function y(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,c=new Array(i);c[0]=u;var l={};for(var o in t)hasOwnProperty.call(t,o)&&(l[o]=t[o]);l.originalType=e,l[p]="string"==typeof e?e:a,c[1]=l;for(var s=2;s{n.r(t),n.d(t,{assets:()=>o,contentTitle:()=>c,default:()=>h,frontMatter:()=>i,metadata:()=>l,toc:()=>s});var r=n(87462),a=(n(67294),n(3905));n(8209);const i={id:"wallet-access",title:"Archethic's wallet access"},c=void 0,l={unversionedId:"build/clients/wallet-access",id:"build/clients/wallet-access",title:"Archethic's wallet access",description:"Onchain wallet (aka Keychain) is a wallet stored on Archethic blockchain in encrypted form, to allow only the authorized access to read it and build transaction from it.",source:"@site/docs/build/clients/wallet-access.md",sourceDirName:"build/clients",slug:"/build/clients/wallet-access",permalink:"/build/clients/wallet-access",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"wallet-access",title:"Archethic's wallet access"},sidebar:"docs",previous:{title:"ADPU commands",permalink:"/build/clients/ledger-wallet/commands"},next:{title:"Archethic's wallet specification",permalink:"/build/clients/wallet-spec"}},o={},s=[{value:"Access enrollment",id:"access-enrollment",level:2},{value:"Keychain retrieval",id:"keychain-retrieval",level:2}],d={toc:s},p="wrapper";function h(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"Onchain wallet (aka ",(0,a.kt)("strong",{parentName:"p"},"Keychain"),") is a wallet stored on Archethic blockchain in encrypted form, to allow only the authorized access to read it and build transaction from it."),(0,a.kt)("p",null,"Also to avoid disclosure of information, access and keychain are using end to end encryption with elliptic curve cryptography to secure it."),(0,a.kt)("p",null,"Hence any client which would like to support wallet access and transaction building will have to be authorized."),(0,a.kt)("h2",{id:"access-enrollment"},"Access enrollment"),(0,a.kt)("p",null,"When a device or application want to become an access to the wallet, it first have to create a transaction where the keychain transaction's address is encrypted into it.\nThis data is stored in the ",(0,a.kt)("inlineCode",{parentName:"p"},"/data/ownerships")," section of the transaction., where the authorized public key is the ",(0,a.kt)("inlineCode",{parentName:"p"},"transaction's public key")," and the secret is an aes encryption of the keychain's address."),(0,a.kt)("p",null,"Then the keychain will create a new transaction on its chain by encrypting the wallet with a new AES key itself encrypted for the list of authorized access public keys wanted. (For instance the new device or application)"),(0,a.kt)("h2",{id:"keychain-retrieval"},"Keychain retrieval"),(0,a.kt)("p",null,"In order to retrieve the keychain from a device or application perspective, the access transaction's will be generated to be retrieved from the network."),(0,a.kt)("p",null,"Then the device or application will decrypt the encrypted keychain address to be able to download the keychain transaction."),(0,a.kt)("p",null,"Once received, the device or application - as being authorized by the keychain - will be able to decrypt the AES key to decrypt the wallet and perform any key derivation and transaction building from it."),(0,a.kt)("p",null,"Then, because the key have been generated on the fly, the client will forget about the private keys and seeds decrypted."))}h.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/be94c4be.84e690e3.js b/assets/js/be94c4be.76b87cd3.js similarity index 99% rename from assets/js/be94c4be.84e690e3.js rename to assets/js/be94c4be.76b87cd3.js index bd51a8a8e..ba5018dcf 100644 --- a/assets/js/be94c4be.84e690e3.js +++ b/assets/js/be94c4be.76b87cd3.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6697],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>p});var l=a(67294);function o(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function n(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,l)}return a}function d(e){for(var t=1;t=0||(o[a]=e[a]);return o}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(l=0;l=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(o[a]=e[a])}return o}var c=l.createContext({}),i=function(e){var t=l.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):d(d({},t),e)),a},s=function(e){var t=i(e.components);return l.createElement(c.Provider,{value:t},e.children)},b="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return l.createElement(l.Fragment,{},t)}},u=l.forwardRef((function(e,t){var a=e.components,o=e.mdxType,n=e.originalType,c=e.parentName,s=r(e,["components","mdxType","originalType","parentName"]),b=i(a),u=o,p=b["".concat(c,".").concat(u)]||b[u]||m[u]||n;return a?l.createElement(p,d(d({ref:t},s),{},{components:a})):l.createElement(p,d({ref:t},s))}));function p(e,t){var a=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var n=a.length,d=new Array(n);d[0]=u;var r={};for(var c in t)hasOwnProperty.call(t,c)&&(r[c]=t[c]);r.originalType=e,r[b]="string"==typeof e?e:o,d[1]=r;for(var i=2;i{a.r(t),a.d(t,{Badge:()=>m,Bullet:()=>s,Details:()=>p,SpecifiedBy:()=>b,assets:()=>i,contentTitle:()=>r,default:()=>k,frontMatter:()=>d,metadata:()=>c,toc:()=>u});var l=a(87462),o=a(67294),n=a(3905);a(8209);const d={id:"node",title:"Node",hide_table_of_contents:!1},r=void 0,c={unversionedId:"build/api/schema/objects/node",id:"build/api/schema/objects/node",title:"Node",description:"[Node] represents a node in the network",source:"@site/docs/build/api/schema/objects/node.mdx",sourceDirName:"build/api/schema/objects",slug:"/build/api/schema/objects/node",permalink:"/build/api/schema/objects/node",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"node",title:"Node",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"Ledger",permalink:"/build/api/schema/objects/ledger"},next:{title:"OracleData",permalink:"/build/api/schema/objects/oracle-data"}},i={},s=()=>(0,n.kt)(o.Fragment,null,(0,n.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),b=e=>(0,n.kt)(o.Fragment,null,"Specification",(0,n.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),m=e=>(0,n.kt)(o.Fragment,null,(0,n.kt)("span",{className:e.class},e.text)),u=[{value:"Fields",id:"fields",level:3},{value:'Node.authorizationDateTimestamp ',id:"code-style-fontweight-normal-nodebauthorizationdatebcodetimestamp-",level:4},{value:'Node.authorizedBoolean ',id:"code-style-fontweight-normal-nodebauthorizedbcodeboolean-",level:4},{value:'Node.availableBoolean ',id:"code-style-fontweight-normal-nodebavailablebcodeboolean-",level:4},{value:'Node.averageAvailabilityFloat ',id:"code-style-fontweight-normal-nodebaverageavailabilitybcodefloat-",level:4},{value:'Node.enrollmentDateTimestamp ',id:"code-style-fontweight-normal-nodebenrollmentdatebcodetimestamp-",level:4},{value:'Node.firstPublicKeyPublicKey ',id:"code-style-fontweight-normal-nodebfirstpublickeybcodepublickey-",level:4},{value:'Node.geoPatchString ',id:"code-style-fontweight-normal-nodebgeopatchbcodestring-",level:4},{value:'Node.ipString ',id:"code-style-fontweight-normal-nodebipbcodestring-",level:4},{value:'Node.lastPublicKeyPublicKey ',id:"code-style-fontweight-normal-nodeblastpublickeybcodepublickey-",level:4},{value:'Node.networkPatchString ',id:"code-style-fontweight-normal-nodebnetworkpatchbcodestring-",level:4},{value:'Node.originPublicKeyPublicKey ',id:"code-style-fontweight-normal-nodeboriginpublickeybcodepublickey-",level:4},{value:'Node.portInt ',id:"code-style-fontweight-normal-nodebportbcodeint-",level:4},{value:'Node.rewardAddressAddress ',id:"code-style-fontweight-normal-nodebrewardaddressbcodeaddress-",level:4},{value:"Returned by",id:"returned-by",level:3}],p=e=>{let{dataOpen:t,dataClose:a,children:d,startOpen:r=!1}=e;const[c,i]=(0,o.useState)(r);return(0,n.kt)("details",(0,l.Z)({},c?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,n.kt)("summary",{onClick:e=>{e.preventDefault(),i((e=>!e))},style:{listStyle:"none"}},c?t:a),c&&d)},g={Bullet:s,SpecifiedBy:b,Badge:m,toc:u,Details:p},y="wrapper";function k(e){let{components:t,...a}=e;return(0,n.kt)(y,(0,l.Z)({},g,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"[Node]"," represents a node in the network"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-graphql"},"type Node {\n authorizationDate: Timestamp\n authorized: Boolean\n available: Boolean\n averageAvailability: Float\n enrollmentDate: Timestamp\n firstPublicKey: PublicKey\n geoPatch: String\n ip: String\n lastPublicKey: PublicKey\n networkPatch: String\n originPublicKey: PublicKey\n port: Int\n rewardAddress: Address\n}\n")),(0,n.kt)("h3",{id:"fields"},"Fields"),(0,n.kt)("h4",{id:"code-style-fontweight-normal-nodebauthorizationdatebcodetimestamp-"},(0,n.kt)("a",{parentName:"h4",href:"#"},(0,n.kt)("code",{style:{fontWeight:"normal"}},"Node.",(0,n.kt)("b",null,"authorizationDate"))),(0,n.kt)(s,{mdxType:"Bullet"}),(0,n.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/timestamp"},(0,n.kt)("inlineCode",{parentName:"a"},"Timestamp"))," ",(0,n.kt)(m,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,n.kt)("blockquote",null),(0,n.kt)("h4",{id:"code-style-fontweight-normal-nodebauthorizedbcodeboolean-"},(0,n.kt)("a",{parentName:"h4",href:"#"},(0,n.kt)("code",{style:{fontWeight:"normal"}},"Node.",(0,n.kt)("b",null,"authorized"))),(0,n.kt)(s,{mdxType:"Bullet"}),(0,n.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/boolean"},(0,n.kt)("inlineCode",{parentName:"a"},"Boolean"))," ",(0,n.kt)(m,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,n.kt)("blockquote",null),(0,n.kt)("h4",{id:"code-style-fontweight-normal-nodebavailablebcodeboolean-"},(0,n.kt)("a",{parentName:"h4",href:"#"},(0,n.kt)("code",{style:{fontWeight:"normal"}},"Node.",(0,n.kt)("b",null,"available"))),(0,n.kt)(s,{mdxType:"Bullet"}),(0,n.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/boolean"},(0,n.kt)("inlineCode",{parentName:"a"},"Boolean"))," ",(0,n.kt)(m,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,n.kt)("blockquote",null),(0,n.kt)("h4",{id:"code-style-fontweight-normal-nodebaverageavailabilitybcodefloat-"},(0,n.kt)("a",{parentName:"h4",href:"#"},(0,n.kt)("code",{style:{fontWeight:"normal"}},"Node.",(0,n.kt)("b",null,"averageAvailability"))),(0,n.kt)(s,{mdxType:"Bullet"}),(0,n.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/float"},(0,n.kt)("inlineCode",{parentName:"a"},"Float"))," ",(0,n.kt)(m,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,n.kt)("blockquote",null),(0,n.kt)("h4",{id:"code-style-fontweight-normal-nodebenrollmentdatebcodetimestamp-"},(0,n.kt)("a",{parentName:"h4",href:"#"},(0,n.kt)("code",{style:{fontWeight:"normal"}},"Node.",(0,n.kt)("b",null,"enrollmentDate"))),(0,n.kt)(s,{mdxType:"Bullet"}),(0,n.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/timestamp"},(0,n.kt)("inlineCode",{parentName:"a"},"Timestamp"))," ",(0,n.kt)(m,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,n.kt)("blockquote",null),(0,n.kt)("h4",{id:"code-style-fontweight-normal-nodebfirstpublickeybcodepublickey-"},(0,n.kt)("a",{parentName:"h4",href:"#"},(0,n.kt)("code",{style:{fontWeight:"normal"}},"Node.",(0,n.kt)("b",null,"firstPublicKey"))),(0,n.kt)(s,{mdxType:"Bullet"}),(0,n.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/public-key"},(0,n.kt)("inlineCode",{parentName:"a"},"PublicKey"))," ",(0,n.kt)(m,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,n.kt)("blockquote",null),(0,n.kt)("h4",{id:"code-style-fontweight-normal-nodebgeopatchbcodestring-"},(0,n.kt)("a",{parentName:"h4",href:"#"},(0,n.kt)("code",{style:{fontWeight:"normal"}},"Node.",(0,n.kt)("b",null,"geoPatch"))),(0,n.kt)(s,{mdxType:"Bullet"}),(0,n.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/string"},(0,n.kt)("inlineCode",{parentName:"a"},"String"))," ",(0,n.kt)(m,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,n.kt)("blockquote",null),(0,n.kt)("h4",{id:"code-style-fontweight-normal-nodebipbcodestring-"},(0,n.kt)("a",{parentName:"h4",href:"#"},(0,n.kt)("code",{style:{fontWeight:"normal"}},"Node.",(0,n.kt)("b",null,"ip"))),(0,n.kt)(s,{mdxType:"Bullet"}),(0,n.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/string"},(0,n.kt)("inlineCode",{parentName:"a"},"String"))," ",(0,n.kt)(m,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,n.kt)("blockquote",null),(0,n.kt)("h4",{id:"code-style-fontweight-normal-nodeblastpublickeybcodepublickey-"},(0,n.kt)("a",{parentName:"h4",href:"#"},(0,n.kt)("code",{style:{fontWeight:"normal"}},"Node.",(0,n.kt)("b",null,"lastPublicKey"))),(0,n.kt)(s,{mdxType:"Bullet"}),(0,n.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/public-key"},(0,n.kt)("inlineCode",{parentName:"a"},"PublicKey"))," ",(0,n.kt)(m,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,n.kt)("blockquote",null),(0,n.kt)("h4",{id:"code-style-fontweight-normal-nodebnetworkpatchbcodestring-"},(0,n.kt)("a",{parentName:"h4",href:"#"},(0,n.kt)("code",{style:{fontWeight:"normal"}},"Node.",(0,n.kt)("b",null,"networkPatch"))),(0,n.kt)(s,{mdxType:"Bullet"}),(0,n.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/string"},(0,n.kt)("inlineCode",{parentName:"a"},"String"))," ",(0,n.kt)(m,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,n.kt)("blockquote",null),(0,n.kt)("h4",{id:"code-style-fontweight-normal-nodeboriginpublickeybcodepublickey-"},(0,n.kt)("a",{parentName:"h4",href:"#"},(0,n.kt)("code",{style:{fontWeight:"normal"}},"Node.",(0,n.kt)("b",null,"originPublicKey"))),(0,n.kt)(s,{mdxType:"Bullet"}),(0,n.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/public-key"},(0,n.kt)("inlineCode",{parentName:"a"},"PublicKey"))," ",(0,n.kt)(m,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,n.kt)("blockquote",null),(0,n.kt)("h4",{id:"code-style-fontweight-normal-nodebportbcodeint-"},(0,n.kt)("a",{parentName:"h4",href:"#"},(0,n.kt)("code",{style:{fontWeight:"normal"}},"Node.",(0,n.kt)("b",null,"port"))),(0,n.kt)(s,{mdxType:"Bullet"}),(0,n.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/int"},(0,n.kt)("inlineCode",{parentName:"a"},"Int"))," ",(0,n.kt)(m,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,n.kt)("blockquote",null),(0,n.kt)("h4",{id:"code-style-fontweight-normal-nodebrewardaddressbcodeaddress-"},(0,n.kt)("a",{parentName:"h4",href:"#"},(0,n.kt)("code",{style:{fontWeight:"normal"}},"Node.",(0,n.kt)("b",null,"rewardAddress"))),(0,n.kt)(s,{mdxType:"Bullet"}),(0,n.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/address"},(0,n.kt)("inlineCode",{parentName:"a"},"Address"))," ",(0,n.kt)(m,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,n.kt)("blockquote",null),(0,n.kt)("h3",{id:"returned-by"},"Returned by"),(0,n.kt)("p",null,(0,n.kt)("a",{parentName:"p",href:"/build/api/schema/queries/nodes"},(0,n.kt)("inlineCode",{parentName:"a"},"nodes"))," ",(0,n.kt)(m,{class:"badge badge--secondary",text:"query",mdxType:"Badge"})))}k.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6697],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>p});var l=a(67294);function o(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function n(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,l)}return a}function d(e){for(var t=1;t=0||(o[a]=e[a]);return o}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(l=0;l=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(o[a]=e[a])}return o}var c=l.createContext({}),i=function(e){var t=l.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):d(d({},t),e)),a},s=function(e){var t=i(e.components);return l.createElement(c.Provider,{value:t},e.children)},b="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return l.createElement(l.Fragment,{},t)}},u=l.forwardRef((function(e,t){var a=e.components,o=e.mdxType,n=e.originalType,c=e.parentName,s=r(e,["components","mdxType","originalType","parentName"]),b=i(a),u=o,p=b["".concat(c,".").concat(u)]||b[u]||m[u]||n;return a?l.createElement(p,d(d({ref:t},s),{},{components:a})):l.createElement(p,d({ref:t},s))}));function p(e,t){var a=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var n=a.length,d=new Array(n);d[0]=u;var r={};for(var c in t)hasOwnProperty.call(t,c)&&(r[c]=t[c]);r.originalType=e,r[b]="string"==typeof e?e:o,d[1]=r;for(var i=2;i{a.r(t),a.d(t,{Badge:()=>m,Bullet:()=>s,Details:()=>p,SpecifiedBy:()=>b,assets:()=>i,contentTitle:()=>r,default:()=>k,frontMatter:()=>d,metadata:()=>c,toc:()=>u});var l=a(87462),o=a(67294),n=a(3905);a(8209);const d={id:"node",title:"Node",hide_table_of_contents:!1},r=void 0,c={unversionedId:"build/api/schema/objects/node",id:"build/api/schema/objects/node",title:"Node",description:"[Node] represents a node in the network",source:"@site/docs/build/api/schema/objects/node.mdx",sourceDirName:"build/api/schema/objects",slug:"/build/api/schema/objects/node",permalink:"/build/api/schema/objects/node",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"node",title:"Node",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"Ledger",permalink:"/build/api/schema/objects/ledger"},next:{title:"OracleData",permalink:"/build/api/schema/objects/oracle-data"}},i={},s=()=>(0,n.kt)(o.Fragment,null,(0,n.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),b=e=>(0,n.kt)(o.Fragment,null,"Specification",(0,n.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),m=e=>(0,n.kt)(o.Fragment,null,(0,n.kt)("span",{className:e.class},e.text)),u=[{value:"Fields",id:"fields",level:3},{value:'Node.authorizationDateTimestamp ',id:"code-style-fontweight-normal-nodebauthorizationdatebcodetimestamp-",level:4},{value:'Node.authorizedBoolean ',id:"code-style-fontweight-normal-nodebauthorizedbcodeboolean-",level:4},{value:'Node.availableBoolean ',id:"code-style-fontweight-normal-nodebavailablebcodeboolean-",level:4},{value:'Node.averageAvailabilityFloat ',id:"code-style-fontweight-normal-nodebaverageavailabilitybcodefloat-",level:4},{value:'Node.enrollmentDateTimestamp ',id:"code-style-fontweight-normal-nodebenrollmentdatebcodetimestamp-",level:4},{value:'Node.firstPublicKeyPublicKey ',id:"code-style-fontweight-normal-nodebfirstpublickeybcodepublickey-",level:4},{value:'Node.geoPatchString ',id:"code-style-fontweight-normal-nodebgeopatchbcodestring-",level:4},{value:'Node.ipString ',id:"code-style-fontweight-normal-nodebipbcodestring-",level:4},{value:'Node.lastPublicKeyPublicKey ',id:"code-style-fontweight-normal-nodeblastpublickeybcodepublickey-",level:4},{value:'Node.networkPatchString ',id:"code-style-fontweight-normal-nodebnetworkpatchbcodestring-",level:4},{value:'Node.originPublicKeyPublicKey ',id:"code-style-fontweight-normal-nodeboriginpublickeybcodepublickey-",level:4},{value:'Node.portInt ',id:"code-style-fontweight-normal-nodebportbcodeint-",level:4},{value:'Node.rewardAddressAddress ',id:"code-style-fontweight-normal-nodebrewardaddressbcodeaddress-",level:4},{value:"Returned by",id:"returned-by",level:3}],p=e=>{let{dataOpen:t,dataClose:a,children:d,startOpen:r=!1}=e;const[c,i]=(0,o.useState)(r);return(0,n.kt)("details",(0,l.Z)({},c?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,n.kt)("summary",{onClick:e=>{e.preventDefault(),i((e=>!e))},style:{listStyle:"none"}},c?t:a),c&&d)},g={Bullet:s,SpecifiedBy:b,Badge:m,toc:u,Details:p},y="wrapper";function k(e){let{components:t,...a}=e;return(0,n.kt)(y,(0,l.Z)({},g,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"[Node]"," represents a node in the network"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-graphql"},"type Node {\n authorizationDate: Timestamp\n authorized: Boolean\n available: Boolean\n averageAvailability: Float\n enrollmentDate: Timestamp\n firstPublicKey: PublicKey\n geoPatch: String\n ip: String\n lastPublicKey: PublicKey\n networkPatch: String\n originPublicKey: PublicKey\n port: Int\n rewardAddress: Address\n}\n")),(0,n.kt)("h3",{id:"fields"},"Fields"),(0,n.kt)("h4",{id:"code-style-fontweight-normal-nodebauthorizationdatebcodetimestamp-"},(0,n.kt)("a",{parentName:"h4",href:"#"},(0,n.kt)("code",{style:{fontWeight:"normal"}},"Node.",(0,n.kt)("b",null,"authorizationDate"))),(0,n.kt)(s,{mdxType:"Bullet"}),(0,n.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/timestamp"},(0,n.kt)("inlineCode",{parentName:"a"},"Timestamp"))," ",(0,n.kt)(m,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,n.kt)("blockquote",null),(0,n.kt)("h4",{id:"code-style-fontweight-normal-nodebauthorizedbcodeboolean-"},(0,n.kt)("a",{parentName:"h4",href:"#"},(0,n.kt)("code",{style:{fontWeight:"normal"}},"Node.",(0,n.kt)("b",null,"authorized"))),(0,n.kt)(s,{mdxType:"Bullet"}),(0,n.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/boolean"},(0,n.kt)("inlineCode",{parentName:"a"},"Boolean"))," ",(0,n.kt)(m,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,n.kt)("blockquote",null),(0,n.kt)("h4",{id:"code-style-fontweight-normal-nodebavailablebcodeboolean-"},(0,n.kt)("a",{parentName:"h4",href:"#"},(0,n.kt)("code",{style:{fontWeight:"normal"}},"Node.",(0,n.kt)("b",null,"available"))),(0,n.kt)(s,{mdxType:"Bullet"}),(0,n.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/boolean"},(0,n.kt)("inlineCode",{parentName:"a"},"Boolean"))," ",(0,n.kt)(m,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,n.kt)("blockquote",null),(0,n.kt)("h4",{id:"code-style-fontweight-normal-nodebaverageavailabilitybcodefloat-"},(0,n.kt)("a",{parentName:"h4",href:"#"},(0,n.kt)("code",{style:{fontWeight:"normal"}},"Node.",(0,n.kt)("b",null,"averageAvailability"))),(0,n.kt)(s,{mdxType:"Bullet"}),(0,n.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/float"},(0,n.kt)("inlineCode",{parentName:"a"},"Float"))," ",(0,n.kt)(m,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,n.kt)("blockquote",null),(0,n.kt)("h4",{id:"code-style-fontweight-normal-nodebenrollmentdatebcodetimestamp-"},(0,n.kt)("a",{parentName:"h4",href:"#"},(0,n.kt)("code",{style:{fontWeight:"normal"}},"Node.",(0,n.kt)("b",null,"enrollmentDate"))),(0,n.kt)(s,{mdxType:"Bullet"}),(0,n.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/timestamp"},(0,n.kt)("inlineCode",{parentName:"a"},"Timestamp"))," ",(0,n.kt)(m,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,n.kt)("blockquote",null),(0,n.kt)("h4",{id:"code-style-fontweight-normal-nodebfirstpublickeybcodepublickey-"},(0,n.kt)("a",{parentName:"h4",href:"#"},(0,n.kt)("code",{style:{fontWeight:"normal"}},"Node.",(0,n.kt)("b",null,"firstPublicKey"))),(0,n.kt)(s,{mdxType:"Bullet"}),(0,n.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/public-key"},(0,n.kt)("inlineCode",{parentName:"a"},"PublicKey"))," ",(0,n.kt)(m,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,n.kt)("blockquote",null),(0,n.kt)("h4",{id:"code-style-fontweight-normal-nodebgeopatchbcodestring-"},(0,n.kt)("a",{parentName:"h4",href:"#"},(0,n.kt)("code",{style:{fontWeight:"normal"}},"Node.",(0,n.kt)("b",null,"geoPatch"))),(0,n.kt)(s,{mdxType:"Bullet"}),(0,n.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/string"},(0,n.kt)("inlineCode",{parentName:"a"},"String"))," ",(0,n.kt)(m,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,n.kt)("blockquote",null),(0,n.kt)("h4",{id:"code-style-fontweight-normal-nodebipbcodestring-"},(0,n.kt)("a",{parentName:"h4",href:"#"},(0,n.kt)("code",{style:{fontWeight:"normal"}},"Node.",(0,n.kt)("b",null,"ip"))),(0,n.kt)(s,{mdxType:"Bullet"}),(0,n.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/string"},(0,n.kt)("inlineCode",{parentName:"a"},"String"))," ",(0,n.kt)(m,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,n.kt)("blockquote",null),(0,n.kt)("h4",{id:"code-style-fontweight-normal-nodeblastpublickeybcodepublickey-"},(0,n.kt)("a",{parentName:"h4",href:"#"},(0,n.kt)("code",{style:{fontWeight:"normal"}},"Node.",(0,n.kt)("b",null,"lastPublicKey"))),(0,n.kt)(s,{mdxType:"Bullet"}),(0,n.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/public-key"},(0,n.kt)("inlineCode",{parentName:"a"},"PublicKey"))," ",(0,n.kt)(m,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,n.kt)("blockquote",null),(0,n.kt)("h4",{id:"code-style-fontweight-normal-nodebnetworkpatchbcodestring-"},(0,n.kt)("a",{parentName:"h4",href:"#"},(0,n.kt)("code",{style:{fontWeight:"normal"}},"Node.",(0,n.kt)("b",null,"networkPatch"))),(0,n.kt)(s,{mdxType:"Bullet"}),(0,n.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/string"},(0,n.kt)("inlineCode",{parentName:"a"},"String"))," ",(0,n.kt)(m,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,n.kt)("blockquote",null),(0,n.kt)("h4",{id:"code-style-fontweight-normal-nodeboriginpublickeybcodepublickey-"},(0,n.kt)("a",{parentName:"h4",href:"#"},(0,n.kt)("code",{style:{fontWeight:"normal"}},"Node.",(0,n.kt)("b",null,"originPublicKey"))),(0,n.kt)(s,{mdxType:"Bullet"}),(0,n.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/public-key"},(0,n.kt)("inlineCode",{parentName:"a"},"PublicKey"))," ",(0,n.kt)(m,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,n.kt)("blockquote",null),(0,n.kt)("h4",{id:"code-style-fontweight-normal-nodebportbcodeint-"},(0,n.kt)("a",{parentName:"h4",href:"#"},(0,n.kt)("code",{style:{fontWeight:"normal"}},"Node.",(0,n.kt)("b",null,"port"))),(0,n.kt)(s,{mdxType:"Bullet"}),(0,n.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/int"},(0,n.kt)("inlineCode",{parentName:"a"},"Int"))," ",(0,n.kt)(m,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,n.kt)("blockquote",null),(0,n.kt)("h4",{id:"code-style-fontweight-normal-nodebrewardaddressbcodeaddress-"},(0,n.kt)("a",{parentName:"h4",href:"#"},(0,n.kt)("code",{style:{fontWeight:"normal"}},"Node.",(0,n.kt)("b",null,"rewardAddress"))),(0,n.kt)(s,{mdxType:"Bullet"}),(0,n.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/address"},(0,n.kt)("inlineCode",{parentName:"a"},"Address"))," ",(0,n.kt)(m,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,n.kt)("blockquote",null),(0,n.kt)("h3",{id:"returned-by"},"Returned by"),(0,n.kt)("p",null,(0,n.kt)("a",{parentName:"p",href:"/build/api/schema/queries/nodes"},(0,n.kt)("inlineCode",{parentName:"a"},"nodes"))," ",(0,n.kt)(m,{class:"badge badge--secondary",text:"query",mdxType:"Badge"})))}k.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file diff --git a/assets/js/bf608a00.91a96269.js b/assets/js/bf608a00.e4c0ba87.js similarity index 98% rename from assets/js/bf608a00.91a96269.js rename to assets/js/bf608a00.e4c0ba87.js index 7f1c637b3..a67a45ed4 100644 --- a/assets/js/bf608a00.91a96269.js +++ b/assets/js/bf608a00.e4c0ba87.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2052],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>f});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var i=r.createContext({}),s=function(e){var t=r.useContext(i),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},d=function(e){var t=s(e.components);return r.createElement(i.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,l=e.originalType,i=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),p=s(a),m=n,f=p["".concat(i,".").concat(m)]||p[m]||u[m]||l;return a?r.createElement(f,o(o({ref:t},d),{},{components:a})):r.createElement(f,o({ref:t},d))}));function f(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=a.length,o=new Array(l);o[0]=m;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[p]="string"==typeof e?e:n,o[1]=c;for(var s=2;s{a.r(t),a.d(t,{Badge:()=>u,Bullet:()=>d,Details:()=>f,SpecifiedBy:()=>p,assets:()=>s,contentTitle:()=>c,default:()=>g,frontMatter:()=>o,metadata:()=>i,toc:()=>m});var r=a(87462),n=a(67294),l=a(3905);a(8209);const o={id:"oracle-data",title:"oracleData",hide_table_of_contents:!1},c=void 0,i={unversionedId:"build/api/schema/queries/oracle-data",id:"build/api/schema/queries/oracle-data",title:"oracleData",description:"Query the network to get the value of an oracle at a specific time or the last value",source:"@site/docs/build/api/schema/queries/oracle-data.mdx",sourceDirName:"build/api/schema/queries",slug:"/build/api/schema/queries/oracle-data",permalink:"/build/api/schema/queries/oracle-data",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"oracle-data",title:"oracleData",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"nodes",permalink:"/build/api/schema/queries/nodes"},next:{title:"sharedSecrets",permalink:"/build/api/schema/queries/shared-secrets"}},s={},d=()=>(0,l.kt)(n.Fragment,null,(0,l.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=e=>(0,l.kt)(n.Fragment,null,"Specification",(0,l.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,l.kt)(n.Fragment,null,(0,l.kt)("span",{className:e.class},e.text)),m=[{value:"Arguments",id:"arguments",level:3},{value:'oracleData.timestampTimestamp ',id:"code-style-fontweight-normal-oracledatabtimestampbcodetimestamp-",level:4},{value:"Type",id:"type",level:3},{value:'OracleData ',id:"oracledata-",level:4}],f=e=>{let{dataOpen:t,dataClose:a,children:o,startOpen:c=!1}=e;const[i,s]=(0,n.useState)(c);return(0,l.kt)("details",(0,r.Z)({},i?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,l.kt)("summary",{onClick:e=>{e.preventDefault(),s((e=>!e))},style:{listStyle:"none"}},i?t:a),i&&o)},b={Bullet:d,SpecifiedBy:p,Badge:u,toc:m,Details:f},y="wrapper";function g(e){let{components:t,...a}=e;return(0,l.kt)(y,(0,r.Z)({},b,a,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("p",null,"Query the network to get the value of an oracle at a specific time or the last value"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-graphql"},"oracleData(\n timestamp: Timestamp\n): OracleData\n")),(0,l.kt)("h3",{id:"arguments"},"Arguments"),(0,l.kt)("h4",{id:"code-style-fontweight-normal-oracledatabtimestampbcodetimestamp-"},(0,l.kt)("a",{parentName:"h4",href:"#"},(0,l.kt)("code",{style:{fontWeight:"normal"}},"oracleData.",(0,l.kt)("b",null,"timestamp"))),(0,l.kt)(d,{mdxType:"Bullet"}),(0,l.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/timestamp"},(0,l.kt)("inlineCode",{parentName:"a"},"Timestamp"))," ",(0,l.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,l.kt)("blockquote",null),(0,l.kt)("h3",{id:"type"},"Type"),(0,l.kt)("h4",{id:"oracledata-"},(0,l.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/oracle-data"},(0,l.kt)("inlineCode",{parentName:"a"},"OracleData"))," ",(0,l.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"[OracleData]"," represents an oracle data.")))}g.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2052],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>f});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var i=r.createContext({}),s=function(e){var t=r.useContext(i),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},d=function(e){var t=s(e.components);return r.createElement(i.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,l=e.originalType,i=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),p=s(a),m=n,f=p["".concat(i,".").concat(m)]||p[m]||u[m]||l;return a?r.createElement(f,o(o({ref:t},d),{},{components:a})):r.createElement(f,o({ref:t},d))}));function f(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=a.length,o=new Array(l);o[0]=m;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[p]="string"==typeof e?e:n,o[1]=c;for(var s=2;s{a.r(t),a.d(t,{Badge:()=>u,Bullet:()=>d,Details:()=>f,SpecifiedBy:()=>p,assets:()=>s,contentTitle:()=>c,default:()=>g,frontMatter:()=>o,metadata:()=>i,toc:()=>m});var r=a(87462),n=a(67294),l=a(3905);a(8209);const o={id:"oracle-data",title:"oracleData",hide_table_of_contents:!1},c=void 0,i={unversionedId:"build/api/schema/queries/oracle-data",id:"build/api/schema/queries/oracle-data",title:"oracleData",description:"Query the network to get the value of an oracle at a specific time or the last value",source:"@site/docs/build/api/schema/queries/oracle-data.mdx",sourceDirName:"build/api/schema/queries",slug:"/build/api/schema/queries/oracle-data",permalink:"/build/api/schema/queries/oracle-data",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"oracle-data",title:"oracleData",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"nodes",permalink:"/build/api/schema/queries/nodes"},next:{title:"sharedSecrets",permalink:"/build/api/schema/queries/shared-secrets"}},s={},d=()=>(0,l.kt)(n.Fragment,null,(0,l.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=e=>(0,l.kt)(n.Fragment,null,"Specification",(0,l.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,l.kt)(n.Fragment,null,(0,l.kt)("span",{className:e.class},e.text)),m=[{value:"Arguments",id:"arguments",level:3},{value:'oracleData.timestampTimestamp ',id:"code-style-fontweight-normal-oracledatabtimestampbcodetimestamp-",level:4},{value:"Type",id:"type",level:3},{value:'OracleData ',id:"oracledata-",level:4}],f=e=>{let{dataOpen:t,dataClose:a,children:o,startOpen:c=!1}=e;const[i,s]=(0,n.useState)(c);return(0,l.kt)("details",(0,r.Z)({},i?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,l.kt)("summary",{onClick:e=>{e.preventDefault(),s((e=>!e))},style:{listStyle:"none"}},i?t:a),i&&o)},b={Bullet:d,SpecifiedBy:p,Badge:u,toc:m,Details:f},y="wrapper";function g(e){let{components:t,...a}=e;return(0,l.kt)(y,(0,r.Z)({},b,a,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("p",null,"Query the network to get the value of an oracle at a specific time or the last value"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-graphql"},"oracleData(\n timestamp: Timestamp\n): OracleData\n")),(0,l.kt)("h3",{id:"arguments"},"Arguments"),(0,l.kt)("h4",{id:"code-style-fontweight-normal-oracledatabtimestampbcodetimestamp-"},(0,l.kt)("a",{parentName:"h4",href:"#"},(0,l.kt)("code",{style:{fontWeight:"normal"}},"oracleData.",(0,l.kt)("b",null,"timestamp"))),(0,l.kt)(d,{mdxType:"Bullet"}),(0,l.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/timestamp"},(0,l.kt)("inlineCode",{parentName:"a"},"Timestamp"))," ",(0,l.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,l.kt)("blockquote",null),(0,l.kt)("h3",{id:"type"},"Type"),(0,l.kt)("h4",{id:"oracledata-"},(0,l.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/oracle-data"},(0,l.kt)("inlineCode",{parentName:"a"},"OracleData"))," ",(0,l.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"[OracleData]"," represents an oracle data.")))}g.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file diff --git a/assets/js/bf6e295d.40852c2f.js b/assets/js/bf6e295d.baaf9d78.js similarity index 98% rename from assets/js/bf6e295d.40852c2f.js rename to assets/js/bf6e295d.baaf9d78.js index 8e82aa4c6..c776ca3f9 100644 --- a/assets/js/bf6e295d.40852c2f.js +++ b/assets/js/bf6e295d.baaf9d78.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1697],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>f});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function s(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var l=a.createContext({}),c=function(e){var t=a.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):s(s({},t),e)),r},p=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,i=e.originalType,l=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),u=c(r),m=n,f=u["".concat(l,".").concat(m)]||u[m]||d[m]||i;return r?a.createElement(f,s(s({ref:t},p),{},{components:r})):a.createElement(f,s({ref:t},p))}));function f(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=r.length,s=new Array(i);s[0]=m;var o={};for(var l in t)hasOwnProperty.call(t,l)&&(o[l]=t[l]);o.originalType=e,o[u]="string"==typeof e?e:n,s[1]=o;for(var c=2;c{r.r(t),r.d(t,{Badge:()=>d,Bullet:()=>p,Details:()=>f,SpecifiedBy:()=>u,assets:()=>c,contentTitle:()=>o,default:()=>g,frontMatter:()=>s,metadata:()=>l,toc:()=>m});var a=r(87462),n=r(67294),i=r(3905);r(8209);const s={id:"pos-integer",title:"PosInteger",hide_table_of_contents:!1},o=void 0,l={unversionedId:"build/api/schema/scalars/pos-integer",id:"build/api/schema/scalars/pos-integer",title:"PosInteger",description:"The [Positive Integer] scalar type represents a positive number",source:"@site/docs/build/api/schema/scalars/pos-integer.mdx",sourceDirName:"build/api/schema/scalars",slug:"/build/api/schema/scalars/pos-integer",permalink:"/build/api/schema/scalars/pos-integer",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"pos-integer",title:"PosInteger",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"P2pAvailabilities",permalink:"/build/api/schema/scalars/p2-p-availabilities"},next:{title:"PublicKey",permalink:"/build/api/schema/scalars/public-key"}},c={},p=()=>(0,i.kt)(n.Fragment,null,(0,i.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),u=e=>(0,i.kt)(n.Fragment,null,"Specification",(0,i.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),d=e=>(0,i.kt)(n.Fragment,null,(0,i.kt)("span",{className:e.class},e.text)),m=[{value:"Member of",id:"member-of",level:3}],f=e=>{let{dataOpen:t,dataClose:r,children:s,startOpen:o=!1}=e;const[l,c]=(0,n.useState)(o);return(0,i.kt)("details",(0,a.Z)({},l?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,i.kt)("summary",{onClick:e=>{e.preventDefault(),c((e=>!e))},style:{listStyle:"none"}},l?t:r),l&&s)},b={Bullet:p,SpecifiedBy:u,Badge:d,toc:m,Details:f},y="wrapper";function g(e){let{components:t,...r}=e;return(0,i.kt)(y,(0,a.Z)({},b,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"The ","[Positive Integer]"," scalar type represents a positive number"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-graphql"},"scalar PosInteger\n")),(0,i.kt)("h3",{id:"member-of"},"Member of"),(0,i.kt)("p",null,(0,i.kt)("a",{parentName:"p",href:"/build/api/schema/queries/chain-unspent-outputs"},(0,i.kt)("inlineCode",{parentName:"a"},"chainUnspentOutputs"))," ",(0,i.kt)(d,{class:"badge badge--secondary",text:"query",mdxType:"Badge"}),(0,i.kt)(p,{mdxType:"Bullet"}),(0,i.kt)("a",{parentName:"p",href:"/build/api/schema/queries/network-transactions"},(0,i.kt)("inlineCode",{parentName:"a"},"networkTransactions"))," ",(0,i.kt)(d,{class:"badge badge--secondary",text:"query",mdxType:"Badge"}),(0,i.kt)(p,{mdxType:"Bullet"}),(0,i.kt)("a",{parentName:"p",href:"/build/api/schema/queries/transaction-inputs"},(0,i.kt)("inlineCode",{parentName:"a"},"transactionInputs"))," ",(0,i.kt)(d,{class:"badge badge--secondary",text:"query",mdxType:"Badge"}),(0,i.kt)(p,{mdxType:"Bullet"}),(0,i.kt)("a",{parentName:"p",href:"/build/api/schema/queries/transactions"},(0,i.kt)("inlineCode",{parentName:"a"},"transactions"))," ",(0,i.kt)(d,{class:"badge badge--secondary",text:"query",mdxType:"Badge"})))}g.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1697],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>f});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function s(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var l=a.createContext({}),c=function(e){var t=a.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):s(s({},t),e)),r},p=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,i=e.originalType,l=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),u=c(r),m=n,f=u["".concat(l,".").concat(m)]||u[m]||d[m]||i;return r?a.createElement(f,s(s({ref:t},p),{},{components:r})):a.createElement(f,s({ref:t},p))}));function f(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=r.length,s=new Array(i);s[0]=m;var o={};for(var l in t)hasOwnProperty.call(t,l)&&(o[l]=t[l]);o.originalType=e,o[u]="string"==typeof e?e:n,s[1]=o;for(var c=2;c{r.r(t),r.d(t,{Badge:()=>d,Bullet:()=>p,Details:()=>f,SpecifiedBy:()=>u,assets:()=>c,contentTitle:()=>o,default:()=>g,frontMatter:()=>s,metadata:()=>l,toc:()=>m});var a=r(87462),n=r(67294),i=r(3905);r(8209);const s={id:"pos-integer",title:"PosInteger",hide_table_of_contents:!1},o=void 0,l={unversionedId:"build/api/schema/scalars/pos-integer",id:"build/api/schema/scalars/pos-integer",title:"PosInteger",description:"The [Positive Integer] scalar type represents a positive number",source:"@site/docs/build/api/schema/scalars/pos-integer.mdx",sourceDirName:"build/api/schema/scalars",slug:"/build/api/schema/scalars/pos-integer",permalink:"/build/api/schema/scalars/pos-integer",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"pos-integer",title:"PosInteger",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"P2pAvailabilities",permalink:"/build/api/schema/scalars/p2-p-availabilities"},next:{title:"PublicKey",permalink:"/build/api/schema/scalars/public-key"}},c={},p=()=>(0,i.kt)(n.Fragment,null,(0,i.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),u=e=>(0,i.kt)(n.Fragment,null,"Specification",(0,i.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),d=e=>(0,i.kt)(n.Fragment,null,(0,i.kt)("span",{className:e.class},e.text)),m=[{value:"Member of",id:"member-of",level:3}],f=e=>{let{dataOpen:t,dataClose:r,children:s,startOpen:o=!1}=e;const[l,c]=(0,n.useState)(o);return(0,i.kt)("details",(0,a.Z)({},l?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,i.kt)("summary",{onClick:e=>{e.preventDefault(),c((e=>!e))},style:{listStyle:"none"}},l?t:r),l&&s)},b={Bullet:p,SpecifiedBy:u,Badge:d,toc:m,Details:f},y="wrapper";function g(e){let{components:t,...r}=e;return(0,i.kt)(y,(0,a.Z)({},b,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"The ","[Positive Integer]"," scalar type represents a positive number"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-graphql"},"scalar PosInteger\n")),(0,i.kt)("h3",{id:"member-of"},"Member of"),(0,i.kt)("p",null,(0,i.kt)("a",{parentName:"p",href:"/build/api/schema/queries/chain-unspent-outputs"},(0,i.kt)("inlineCode",{parentName:"a"},"chainUnspentOutputs"))," ",(0,i.kt)(d,{class:"badge badge--secondary",text:"query",mdxType:"Badge"}),(0,i.kt)(p,{mdxType:"Bullet"}),(0,i.kt)("a",{parentName:"p",href:"/build/api/schema/queries/network-transactions"},(0,i.kt)("inlineCode",{parentName:"a"},"networkTransactions"))," ",(0,i.kt)(d,{class:"badge badge--secondary",text:"query",mdxType:"Badge"}),(0,i.kt)(p,{mdxType:"Bullet"}),(0,i.kt)("a",{parentName:"p",href:"/build/api/schema/queries/transaction-inputs"},(0,i.kt)("inlineCode",{parentName:"a"},"transactionInputs"))," ",(0,i.kt)(d,{class:"badge badge--secondary",text:"query",mdxType:"Badge"}),(0,i.kt)(p,{mdxType:"Bullet"}),(0,i.kt)("a",{parentName:"p",href:"/build/api/schema/queries/transactions"},(0,i.kt)("inlineCode",{parentName:"a"},"transactions"))," ",(0,i.kt)(d,{class:"badge badge--secondary",text:"query",mdxType:"Badge"})))}g.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file diff --git a/assets/js/c1456968.5cca09f8.js b/assets/js/c1456968.8418eed2.js similarity index 99% rename from assets/js/c1456968.5cca09f8.js rename to assets/js/c1456968.8418eed2.js index e5d63d6b0..40f660f11 100644 --- a/assets/js/c1456968.5cca09f8.js +++ b/assets/js/c1456968.8418eed2.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7840],{3905:(e,t,a)=>{a.d(t,{Zo:()=>l,kt:()=>m});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var p=n.createContext({}),s=function(e){var t=n.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},l=function(e){var t=s(e.components);return n.createElement(p.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},h=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,p=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),u=s(a),h=r,m=u["".concat(p,".").concat(h)]||u[h]||d[h]||i;return a?n.createElement(m,o(o({ref:t},l),{},{components:a})):n.createElement(m,o({ref:t},l))}));function m(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,o=new Array(i);o[0]=h;var c={};for(var p in t)hasOwnProperty.call(t,p)&&(c[p]=t[p]);c.originalType=e,c[u]="string"==typeof e?e:r,o[1]=c;for(var s=2;s{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>c,toc:()=>s});var n=a(87462),r=(a(67294),a(3905));a(8209);const i={title:"Tutorial",id:"tutorial",sidebar_label:"Tutorial"},o="aeSwap - Tutorial",c={unversionedId:"participate/dex/Guide_Usage/tutorial",id:"participate/dex/Guide_Usage/tutorial",title:"Tutorial",description:"aeSwap is a web application accessible through internet browsers and is compatible only with chrome extension or with desktop versions of the Archethic wallet, which include macOS, Linux, and Windows platforms.",source:"@site/docs/participate/dex/05-Guide_Usage/README.md",sourceDirName:"participate/dex/05-Guide_Usage",slug:"/participate/dex/Guide_Usage/",permalink:"/participate/dex/Guide_Usage/",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{title:"Tutorial",id:"tutorial",sidebar_label:"Tutorial"},sidebar:"docs",previous:{title:"Security, Research & Math",permalink:"/participate/dex/Core Concepts/core_concepts_3"},next:{title:"Swap",permalink:"/participate/dex/Guide_Usage/swap"}},p={},s=[{value:"Welcome Screen",id:"welcome-screen",level:2},{value:"Application Menu",id:"application-menu",level:3},{value:"Feature Access",id:"feature-access",level:3}],l={toc:s},u="wrapper";function d(e){let{components:t,...i}=e;return(0,r.kt)(u,(0,n.Z)({},l,i,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"aeswap---tutorial"},"aeSwap - Tutorial"),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"aeSwap is a web application accessible through internet browsers and is compatible only with chrome extension or with desktop versions of the Archethic wallet, which include macOS, Linux, and Windows platforms.")),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"Ensure you have the appropriate version of the Archethic wallet installed on your system to interact with the application effectively. You can download the wallet from ",(0,r.kt)("a",{parentName:"p",href:"https://www.archethic.net/wallet.html"},"here"),".")),(0,r.kt)("admonition",{type:"tip"},(0,r.kt)("p",{parentName:"admonition"},"For optimal performance, use the latest version of your internet browser.")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Access:")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Mainnet"),": ",(0,r.kt)("a",{parentName:"li",href:"https://dex.archethic.net"},"https://dex.archethic.net")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Testnet"),": If you'd like to test the application or take advantage of the latest features under development, you can safely use the application in the testnet: ",(0,r.kt)("a",{parentName:"li",href:"https://dex.testnet.archethic.net"},"https://dex.testnet.archethic.net"))),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Source code:")," ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/dex"},"https://github.com/archethic-foundation/dex")),(0,r.kt)("p",null,"This Flutter-built web application enables swapping assets on-chain, adding liquidity, and accessing yield farming."),(0,r.kt)("admonition",{type:"success"},(0,r.kt)("p",{parentName:"admonition"},"Before proceeding, familiarize yourself with ",(0,r.kt)("a",{parentName:"p",href:"/participate/dex/"},"Archethic's DEX Key Concepts"),".")),(0,r.kt)("h2",{id:"welcome-screen"},"Welcome Screen"),(0,r.kt)("p",null,"Upon accessing aeSwap, you are greeted with a welcome screen. To begin, click on the 'Go!' button."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"Welcome Screen",src:a(66578).Z,width:"1488",height:"717"}),(0,r.kt)("br",{parentName:"p"}),"\n",(0,r.kt)("img",{alt:"aeSwap Main Screen",src:a(9288).Z,width:"1489",height:"717"})),(0,r.kt)("h3",{id:"application-menu"},"Application Menu"),(0,r.kt)("p",null,"A right-hand header menu provides links to essential information and application documentation. It includes an option to send logs to Archethic for troubleshooting purposes."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"Menu",src:a(42735).Z,width:"308",height:"348"})),(0,r.kt)("h3",{id:"feature-access"},"Feature Access"),(0,r.kt)("p",null,"The top menu grants access to various DEX functionalities:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Swapping assets"),(0,r.kt)("li",{parentName:"ul"},"Listing Pools / Adding or removing Liquidity"),(0,r.kt)("li",{parentName:"ul"},"Farming")),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"Menu Features",src:a(91449).Z,width:"881",height:"82"})))}d.isMDXComponent=!0},91449:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/aeSwap-Features-f75f902c5acf3c7be4bd04cb2211a3e4.png"},9288:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/aeSwap-Main-Screen-807a2a6f4f1536f1f4dd53c72c286ecb.png"},42735:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/aeSwap-Menu-281214a05ee4c8c6fc299b099999cf5c.png"},66578:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/aeSwap-Welcome-f7483ca687294d88cbcf2584899eb86b.png"},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7840],{3905:(e,t,a)=>{a.d(t,{Zo:()=>l,kt:()=>m});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var p=n.createContext({}),s=function(e){var t=n.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},l=function(e){var t=s(e.components);return n.createElement(p.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},h=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,p=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),u=s(a),h=r,m=u["".concat(p,".").concat(h)]||u[h]||d[h]||i;return a?n.createElement(m,o(o({ref:t},l),{},{components:a})):n.createElement(m,o({ref:t},l))}));function m(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,o=new Array(i);o[0]=h;var c={};for(var p in t)hasOwnProperty.call(t,p)&&(c[p]=t[p]);c.originalType=e,c[u]="string"==typeof e?e:r,o[1]=c;for(var s=2;s{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>c,toc:()=>s});var n=a(87462),r=(a(67294),a(3905));a(8209);const i={title:"Tutorial",id:"tutorial",sidebar_label:"Tutorial"},o="aeSwap - Tutorial",c={unversionedId:"participate/dex/Guide_Usage/tutorial",id:"participate/dex/Guide_Usage/tutorial",title:"Tutorial",description:"aeSwap is a web application accessible through internet browsers and is compatible only with chrome extension or with desktop versions of the Archethic wallet, which include macOS, Linux, and Windows platforms.",source:"@site/docs/participate/dex/05-Guide_Usage/README.md",sourceDirName:"participate/dex/05-Guide_Usage",slug:"/participate/dex/Guide_Usage/",permalink:"/participate/dex/Guide_Usage/",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{title:"Tutorial",id:"tutorial",sidebar_label:"Tutorial"},sidebar:"docs",previous:{title:"Security, Research & Math",permalink:"/participate/dex/Core Concepts/core_concepts_3"},next:{title:"Swap",permalink:"/participate/dex/Guide_Usage/swap"}},p={},s=[{value:"Welcome Screen",id:"welcome-screen",level:2},{value:"Application Menu",id:"application-menu",level:3},{value:"Feature Access",id:"feature-access",level:3}],l={toc:s},u="wrapper";function d(e){let{components:t,...i}=e;return(0,r.kt)(u,(0,n.Z)({},l,i,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"aeswap---tutorial"},"aeSwap - Tutorial"),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"aeSwap is a web application accessible through internet browsers and is compatible only with chrome extension or with desktop versions of the Archethic wallet, which include macOS, Linux, and Windows platforms.")),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"Ensure you have the appropriate version of the Archethic wallet installed on your system to interact with the application effectively. You can download the wallet from ",(0,r.kt)("a",{parentName:"p",href:"https://www.archethic.net/wallet.html"},"here"),".")),(0,r.kt)("admonition",{type:"tip"},(0,r.kt)("p",{parentName:"admonition"},"For optimal performance, use the latest version of your internet browser.")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Access:")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Mainnet"),": ",(0,r.kt)("a",{parentName:"li",href:"https://dex.archethic.net"},"https://dex.archethic.net")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Testnet"),": If you'd like to test the application or take advantage of the latest features under development, you can safely use the application in the testnet: ",(0,r.kt)("a",{parentName:"li",href:"https://dex.testnet.archethic.net"},"https://dex.testnet.archethic.net"))),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Source code:")," ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/dex"},"https://github.com/archethic-foundation/dex")),(0,r.kt)("p",null,"This Flutter-built web application enables swapping assets on-chain, adding liquidity, and accessing yield farming."),(0,r.kt)("admonition",{type:"success"},(0,r.kt)("p",{parentName:"admonition"},"Before proceeding, familiarize yourself with ",(0,r.kt)("a",{parentName:"p",href:"/participate/dex/"},"Archethic's DEX Key Concepts"),".")),(0,r.kt)("h2",{id:"welcome-screen"},"Welcome Screen"),(0,r.kt)("p",null,"Upon accessing aeSwap, you are greeted with a welcome screen. To begin, click on the 'Go!' button."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"Welcome Screen",src:a(66578).Z,width:"1488",height:"717"}),(0,r.kt)("br",{parentName:"p"}),"\n",(0,r.kt)("img",{alt:"aeSwap Main Screen",src:a(9288).Z,width:"1489",height:"717"})),(0,r.kt)("h3",{id:"application-menu"},"Application Menu"),(0,r.kt)("p",null,"A right-hand header menu provides links to essential information and application documentation. It includes an option to send logs to Archethic for troubleshooting purposes."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"Menu",src:a(42735).Z,width:"308",height:"348"})),(0,r.kt)("h3",{id:"feature-access"},"Feature Access"),(0,r.kt)("p",null,"The top menu grants access to various DEX functionalities:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Swapping assets"),(0,r.kt)("li",{parentName:"ul"},"Listing Pools / Adding or removing Liquidity"),(0,r.kt)("li",{parentName:"ul"},"Farming")),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"Menu Features",src:a(91449).Z,width:"881",height:"82"})))}d.isMDXComponent=!0},91449:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/aeSwap-Features-f75f902c5acf3c7be4bd04cb2211a3e4.png"},9288:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/aeSwap-Main-Screen-807a2a6f4f1536f1f4dd53c72c286ecb.png"},42735:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/aeSwap-Menu-281214a05ee4c8c6fc299b099999cf5c.png"},66578:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/aeSwap-Welcome-f7483ca687294d88cbcf2584899eb86b.png"},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file diff --git a/assets/js/c204078c.defbe5f1.js b/assets/js/c204078c.bfae96f4.js similarity index 98% rename from assets/js/c204078c.defbe5f1.js rename to assets/js/c204078c.bfae96f4.js index 040761927..24d55fda9 100644 --- a/assets/js/c204078c.defbe5f1.js +++ b/assets/js/c204078c.bfae96f4.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3723],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>h});var r=n(67294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var s=r.createContext({}),p=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,a=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),u=p(n),m=i,h=u["".concat(s,".").concat(m)]||u[m]||d[m]||a;return n?r.createElement(h,o(o({ref:t},c),{},{components:n})):r.createElement(h,o({ref:t},c))}));function h(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=n.length,o=new Array(a);o[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:i,o[1]=l;for(var p=2;p{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>d,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var r=n(87462),i=(n(67294),n(3905));n(8209);const a={id:"messaging",title:"Messaging"},o=void 0,l={unversionedId:"build/core/p2p/messaging",id:"build/core/p2p/messaging",title:"Messaging",description:"Archethic Blockchain is used a brand new P2P layer from the Supervised Multicast, but to ensure the best data transmission possible, we are using two modern approaches: Stream Multiplexer and Binary Protocol.",source:"@site/docs/build/core/p2p/messaging.md",sourceDirName:"build/core/p2p",slug:"/build/core/p2p/messaging",permalink:"/build/core/p2p/messaging",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"messaging",title:"Messaging"},sidebar:"docs",previous:{title:"P2P",permalink:"/build/core/p2p/"},next:{title:"Node",permalink:"/build/core/p2p/node"}},s={},p=[{value:"Stream Multiplexer",id:"stream-multiplexer",level:2},{value:"Binary Protocol",id:"binary-protocol",level:2},{value:"Message envelop",id:"message-envelop",level:2}],c={toc:p},u="wrapper";function d(e){let{components:t,...n}=e;return(0,i.kt)(u,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"Archethic Blockchain is used a brand new P2P layer from the ",(0,i.kt)("a",{parentName:"p",href:"/learn/p2p#archethics-way"},"Supervised Multicast"),", but to ensure the best data transmission possible, we are using two modern approaches: ",(0,i.kt)("inlineCode",{parentName:"p"},"Stream Multiplexer")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"Binary Protocol"),". "),(0,i.kt)("p",null,"Those two features helps to achieve a low latency P2P messaging."),(0,i.kt)("h2",{id:"stream-multiplexer"},"Stream Multiplexer"),(0,i.kt)("p",null,"Stream Multiplexing allows multiple independent logical streams to share a common underlying transport stream and ",(0,i.kt)("br",null),"\nthere are many independent streams of communication between peers."),(0,i.kt)("p",null,"Stream Multiplexing amortizes the overhead of establishing a transport connection and helps to distinguish which messages to handle in a concurrent way."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre"},"|---------| |---------|\n| Service | | Service |\n|---------| |---------|\n | Msg ID: 2 |------------| |\n |--------------| Connection |---------| Msg ID: 1\n | TCP |\n |--------------|------------|---------|\n | Msg ID: 1 | Msg ID: 2\n|---------| |---------|\n| Service | | Service |\n|---------| |---------|\n")),(0,i.kt)("p",null,"In the current implementation, each node connection is backed by a GenServer which serializes the call the remote endpoint, through an established connection."),(0,i.kt)("p",null,"Even if the calls are serialized, it leverages a non-blocking messaging, so multiple messages can be sent with several independant clients. However after a certain amount of time(timeout: 5s), the message is dropped to reduce the message queue."),(0,i.kt)("h2",{id:"binary-protocol"},"Binary Protocol"),(0,i.kt)("p",null,"Network latency is very important to reach an unlimited and really scalable network and using binary protocol helps to reduce bandwidth."),(0,i.kt)("p",null,"Different kind of solutions existing for binary protocol: Protobuf, Avro, Thrift, MsgPack, etc."),(0,i.kt)("p",null,"However, to support a custom and efficient binary serialization, Archethic uses it own binary protocol through the transport layer to reduce and to optimize by the message, the data to send."),(0,i.kt)("p",null,"This aspect is important, when we are dealing with bits, to reduce byte size."),(0,i.kt)("p",null,"For example, if we want to serialize this bitstring: 11100000"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"With existing solutions, we may end up with a list of 8 bytes"),(0,i.kt)("li",{parentName:"ul"},"With a custom solution, we serialize it with only 1 byte")),(0,i.kt)("h2",{id:"message-envelop"},"Message envelop"),(0,i.kt)("p",null,"To support privacy and security, each message is wrapped in a ",(0,i.kt)("inlineCode",{parentName:"p"},"MessageEnvelop")," struct within:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Message ID: used in the stream multiplexing"),(0,i.kt)("li",{parentName:"ul"},"Message to send"),(0,i.kt)("li",{parentName:"ul"},"Sender public key: used to determine the liveness of the node from the recipient P2P view")),(0,i.kt)("p",null,"The envelop is then encrypted with the recipient public key (known by the network) using ECIES cryptography protocol."))}d.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3723],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>h});var r=n(67294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var s=r.createContext({}),p=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,a=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),u=p(n),m=i,h=u["".concat(s,".").concat(m)]||u[m]||d[m]||a;return n?r.createElement(h,o(o({ref:t},c),{},{components:n})):r.createElement(h,o({ref:t},c))}));function h(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=n.length,o=new Array(a);o[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:i,o[1]=l;for(var p=2;p{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>d,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var r=n(87462),i=(n(67294),n(3905));n(8209);const a={id:"messaging",title:"Messaging"},o=void 0,l={unversionedId:"build/core/p2p/messaging",id:"build/core/p2p/messaging",title:"Messaging",description:"Archethic Blockchain is used a brand new P2P layer from the Supervised Multicast, but to ensure the best data transmission possible, we are using two modern approaches: Stream Multiplexer and Binary Protocol.",source:"@site/docs/build/core/p2p/messaging.md",sourceDirName:"build/core/p2p",slug:"/build/core/p2p/messaging",permalink:"/build/core/p2p/messaging",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"messaging",title:"Messaging"},sidebar:"docs",previous:{title:"P2P",permalink:"/build/core/p2p/"},next:{title:"Node",permalink:"/build/core/p2p/node"}},s={},p=[{value:"Stream Multiplexer",id:"stream-multiplexer",level:2},{value:"Binary Protocol",id:"binary-protocol",level:2},{value:"Message envelop",id:"message-envelop",level:2}],c={toc:p},u="wrapper";function d(e){let{components:t,...n}=e;return(0,i.kt)(u,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"Archethic Blockchain is used a brand new P2P layer from the ",(0,i.kt)("a",{parentName:"p",href:"/learn/p2p#archethics-way"},"Supervised Multicast"),", but to ensure the best data transmission possible, we are using two modern approaches: ",(0,i.kt)("inlineCode",{parentName:"p"},"Stream Multiplexer")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"Binary Protocol"),". "),(0,i.kt)("p",null,"Those two features helps to achieve a low latency P2P messaging."),(0,i.kt)("h2",{id:"stream-multiplexer"},"Stream Multiplexer"),(0,i.kt)("p",null,"Stream Multiplexing allows multiple independent logical streams to share a common underlying transport stream and ",(0,i.kt)("br",null),"\nthere are many independent streams of communication between peers."),(0,i.kt)("p",null,"Stream Multiplexing amortizes the overhead of establishing a transport connection and helps to distinguish which messages to handle in a concurrent way."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre"},"|---------| |---------|\n| Service | | Service |\n|---------| |---------|\n | Msg ID: 2 |------------| |\n |--------------| Connection |---------| Msg ID: 1\n | TCP |\n |--------------|------------|---------|\n | Msg ID: 1 | Msg ID: 2\n|---------| |---------|\n| Service | | Service |\n|---------| |---------|\n")),(0,i.kt)("p",null,"In the current implementation, each node connection is backed by a GenServer which serializes the call the remote endpoint, through an established connection."),(0,i.kt)("p",null,"Even if the calls are serialized, it leverages a non-blocking messaging, so multiple messages can be sent with several independant clients. However after a certain amount of time(timeout: 5s), the message is dropped to reduce the message queue."),(0,i.kt)("h2",{id:"binary-protocol"},"Binary Protocol"),(0,i.kt)("p",null,"Network latency is very important to reach an unlimited and really scalable network and using binary protocol helps to reduce bandwidth."),(0,i.kt)("p",null,"Different kind of solutions existing for binary protocol: Protobuf, Avro, Thrift, MsgPack, etc."),(0,i.kt)("p",null,"However, to support a custom and efficient binary serialization, Archethic uses it own binary protocol through the transport layer to reduce and to optimize by the message, the data to send."),(0,i.kt)("p",null,"This aspect is important, when we are dealing with bits, to reduce byte size."),(0,i.kt)("p",null,"For example, if we want to serialize this bitstring: 11100000"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"With existing solutions, we may end up with a list of 8 bytes"),(0,i.kt)("li",{parentName:"ul"},"With a custom solution, we serialize it with only 1 byte")),(0,i.kt)("h2",{id:"message-envelop"},"Message envelop"),(0,i.kt)("p",null,"To support privacy and security, each message is wrapped in a ",(0,i.kt)("inlineCode",{parentName:"p"},"MessageEnvelop")," struct within:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Message ID: used in the stream multiplexing"),(0,i.kt)("li",{parentName:"ul"},"Message to send"),(0,i.kt)("li",{parentName:"ul"},"Sender public key: used to determine the liveness of the node from the recipient P2P view")),(0,i.kt)("p",null,"The envelop is then encrypted with the recipient public key (known by the network) using ECIES cryptography protocol."))}d.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/c31aa05f.2f74d91f.js b/assets/js/c31aa05f.33c2f585.js similarity index 97% rename from assets/js/c31aa05f.2f74d91f.js rename to assets/js/c31aa05f.33c2f585.js index c3a0ab060..cd355a8da 100644 --- a/assets/js/c31aa05f.2f74d91f.js +++ b/assets/js/c31aa05f.33c2f585.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9782],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>h});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var u=n.createContext({}),c=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=c(e.components);return n.createElement(u.Provider,{value:t},e.children)},m="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,l=e.originalType,u=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),m=c(r),d=a,h=m["".concat(u,".").concat(d)]||m[d]||s[d]||l;return r?n.createElement(h,i(i({ref:t},p),{},{components:r})):n.createElement(h,i({ref:t},p))}));function h(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=r.length,i=new Array(l);i[0]=d;var o={};for(var u in t)hasOwnProperty.call(t,u)&&(o[u]=t[u]);o.originalType=e,o[m]="string"==typeof e?e:a,i[1]=o;for(var c=2;c{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>s,frontMatter:()=>l,metadata:()=>o,toc:()=>c});var n=r(87462),a=(r(67294),r(3905));r(8209);const l={id:"math",title:"Math module",sidebar_label:"Math"},i=void 0,o={unversionedId:"build/smart-contracts/language/library/math",id:"build/smart-contracts/language/library/math",title:"Math module",description:"The Math module contains mathematical functions.",source:"@site/docs/build/smart-contracts/language/library/math.md",sourceDirName:"build/smart-contracts/language/library",slug:"/build/smart-contracts/language/library/math",permalink:"/build/smart-contracts/language/library/math",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"math",title:"Math module",sidebar_label:"Math"},sidebar:"docs",previous:{title:"Map",permalink:"/build/smart-contracts/language/library/map"},next:{title:"Regex",permalink:"/build/smart-contracts/language/library/regex"}},u={},c=[{value:"pow/2",id:"pow2",level:3},{value:"trunc/1",id:"trunc1",level:3},{value:"sqrt/1",id:"sqrt1",level:3},{value:"rem/2",id:"rem2",level:3}],p={toc:c},m="wrapper";function s(e){let{components:t,...r}=e;return(0,a.kt)(m,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The ",(0,a.kt)("inlineCode",{parentName:"p"},"Math")," module contains mathematical functions."),(0,a.kt)("h3",{id:"pow2"},"pow/2"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},"Math.pow(2, 3)\n# 8\nMath.pow(1.7, 8)\n# 69.75757441\n")),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"number")," the number to apply the power"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"exponent")," the exponent of the power")),(0,a.kt)("p",null,"Returns the result of the power of number by exponent."),(0,a.kt)("h3",{id:"trunc1"},"trunc/1"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},"Math.trunc(8.32)\n# 8\n")),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"number")," the number to truncate")),(0,a.kt)("p",null,"Returns the truncated number as an integer."),(0,a.kt)("h3",{id:"sqrt1"},"sqrt/1"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},"Math.sqrt(16)\n# 4\nMath.sqrt(12.5)\n# 3.53553390\n")),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"number")," the number to calculate the square root")),(0,a.kt)("p",null,"Returns the square root if the number."),(0,a.kt)("h3",{id:"rem2"},"rem/2"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},"Math.rem(2.1, 3)\n# 2.1\nMath.rem(10, 3)\n# 1\nMath.rem(-10, 3)\n# -1\nMath.rem(10.2, 1)\n# 0.2\n")),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"dividend")," the number to divid"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"divisor")," the number which divid")),(0,a.kt)("p",null,"Returns the remainder (modulo) of a division."))}s.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9782],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>h});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var u=n.createContext({}),c=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=c(e.components);return n.createElement(u.Provider,{value:t},e.children)},m="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,l=e.originalType,u=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),m=c(r),d=a,h=m["".concat(u,".").concat(d)]||m[d]||s[d]||l;return r?n.createElement(h,i(i({ref:t},p),{},{components:r})):n.createElement(h,i({ref:t},p))}));function h(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=r.length,i=new Array(l);i[0]=d;var o={};for(var u in t)hasOwnProperty.call(t,u)&&(o[u]=t[u]);o.originalType=e,o[m]="string"==typeof e?e:a,i[1]=o;for(var c=2;c{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>s,frontMatter:()=>l,metadata:()=>o,toc:()=>c});var n=r(87462),a=(r(67294),r(3905));r(8209);const l={id:"math",title:"Math module",sidebar_label:"Math"},i=void 0,o={unversionedId:"build/smart-contracts/language/library/math",id:"build/smart-contracts/language/library/math",title:"Math module",description:"The Math module contains mathematical functions.",source:"@site/docs/build/smart-contracts/language/library/math.md",sourceDirName:"build/smart-contracts/language/library",slug:"/build/smart-contracts/language/library/math",permalink:"/build/smart-contracts/language/library/math",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"math",title:"Math module",sidebar_label:"Math"},sidebar:"docs",previous:{title:"Map",permalink:"/build/smart-contracts/language/library/map"},next:{title:"Regex",permalink:"/build/smart-contracts/language/library/regex"}},u={},c=[{value:"pow/2",id:"pow2",level:3},{value:"trunc/1",id:"trunc1",level:3},{value:"sqrt/1",id:"sqrt1",level:3},{value:"rem/2",id:"rem2",level:3}],p={toc:c},m="wrapper";function s(e){let{components:t,...r}=e;return(0,a.kt)(m,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The ",(0,a.kt)("inlineCode",{parentName:"p"},"Math")," module contains mathematical functions."),(0,a.kt)("h3",{id:"pow2"},"pow/2"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},"Math.pow(2, 3)\n# 8\nMath.pow(1.7, 8)\n# 69.75757441\n")),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"number")," the number to apply the power"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"exponent")," the exponent of the power")),(0,a.kt)("p",null,"Returns the result of the power of number by exponent."),(0,a.kt)("h3",{id:"trunc1"},"trunc/1"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},"Math.trunc(8.32)\n# 8\n")),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"number")," the number to truncate")),(0,a.kt)("p",null,"Returns the truncated number as an integer."),(0,a.kt)("h3",{id:"sqrt1"},"sqrt/1"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},"Math.sqrt(16)\n# 4\nMath.sqrt(12.5)\n# 3.53553390\n")),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"number")," the number to calculate the square root")),(0,a.kt)("p",null,"Returns the square root if the number."),(0,a.kt)("h3",{id:"rem2"},"rem/2"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},"Math.rem(2.1, 3)\n# 2.1\nMath.rem(10, 3)\n# 1\nMath.rem(-10, 3)\n# -1\nMath.rem(10.2, 1)\n# 0.2\n")),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"dividend")," the number to divid"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"divisor")," the number which divid")),(0,a.kt)("p",null,"Returns the remainder (modulo) of a division."))}s.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file diff --git a/assets/js/c31d0f42.29718849.js b/assets/js/c31d0f42.dc7f1c07.js similarity index 96% rename from assets/js/c31d0f42.29718849.js rename to assets/js/c31d0f42.dc7f1c07.js index 7b3307f7e..648cea995 100644 --- a/assets/js/c31d0f42.29718849.js +++ b/assets/js/c31d0f42.dc7f1c07.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7527],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>h});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},d="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,i=e.originalType,l=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),d=p(r),f=a,h=d["".concat(l,".").concat(f)]||d[f]||s[f]||i;return r?n.createElement(h,o(o({ref:t},u),{},{components:r})):n.createElement(h,o({ref:t},u))}));function h(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=r.length,o=new Array(i);o[0]=f;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[d]="string"==typeof e?e:a,o[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>s,frontMatter:()=>i,metadata:()=>c,toc:()=>p});var n=r(87462),a=(r(67294),r(3905));r(8209);const i={id:"dart",title:"Dart SDK"},o=void 0,c={unversionedId:"build/sdk/dart",id:"build/sdk/dart",title:"Dart SDK",description:"Archethic Blockchain Official Dart SDK available on Github",source:"@site/docs/build/sdk/dart.md",sourceDirName:"build/sdk",slug:"/build/sdk/dart",permalink:"/build/sdk/dart",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"dart",title:"Dart SDK"},sidebar:"docs",previous:{title:"SDK",permalink:"/build/sdk/"},next:{title:"Go SDK",permalink:"/build/sdk/go"}},l={},p=[],u={toc:p},d="wrapper";function s(e){let{components:t,...r}=e;return(0,a.kt)(d,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"Archethic Blockchain Official Dart SDK available on ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/libdart"},"Github"),"\nDart Packages published on ",(0,a.kt)("a",{parentName:"p",href:"https://pub.dev/packages/archethic_lib_dart"},"Pub.dev")),(0,a.kt)("p",null,"This SDK will help you to generate transaction on top of Archethic Blockchain."),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"This SDK is mainly used in the official ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/archethic_wallet"},"Archethic Wallet")," using Flutter. Please have a look if you are interested.")))}s.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7527],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>h});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},d="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,i=e.originalType,l=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),d=p(r),f=a,h=d["".concat(l,".").concat(f)]||d[f]||s[f]||i;return r?n.createElement(h,o(o({ref:t},u),{},{components:r})):n.createElement(h,o({ref:t},u))}));function h(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=r.length,o=new Array(i);o[0]=f;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[d]="string"==typeof e?e:a,o[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>s,frontMatter:()=>i,metadata:()=>c,toc:()=>p});var n=r(87462),a=(r(67294),r(3905));r(8209);const i={id:"dart",title:"Dart SDK"},o=void 0,c={unversionedId:"build/sdk/dart",id:"build/sdk/dart",title:"Dart SDK",description:"Archethic Blockchain Official Dart SDK available on Github",source:"@site/docs/build/sdk/dart.md",sourceDirName:"build/sdk",slug:"/build/sdk/dart",permalink:"/build/sdk/dart",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"dart",title:"Dart SDK"},sidebar:"docs",previous:{title:"SDK",permalink:"/build/sdk/"},next:{title:"Go SDK",permalink:"/build/sdk/go"}},l={},p=[],u={toc:p},d="wrapper";function s(e){let{components:t,...r}=e;return(0,a.kt)(d,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"Archethic Blockchain Official Dart SDK available on ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/libdart"},"Github"),"\nDart Packages published on ",(0,a.kt)("a",{parentName:"p",href:"https://pub.dev/packages/archethic_lib_dart"},"Pub.dev")),(0,a.kt)("p",null,"This SDK will help you to generate transaction on top of Archethic Blockchain."),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"This SDK is mainly used in the official ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/archethic_wallet"},"Archethic Wallet")," using Flutter. Please have a look if you are interested.")))}s.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file diff --git a/assets/js/c325c1c7.d3068d5d.js b/assets/js/c325c1c7.bb5195ce.js similarity index 99% rename from assets/js/c325c1c7.d3068d5d.js rename to assets/js/c325c1c7.bb5195ce.js index 0c25cb7fd..d25a30feb 100644 --- a/assets/js/c325c1c7.d3068d5d.js +++ b/assets/js/c325c1c7.bb5195ce.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8208],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>b});var r=a(67294);function l(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function n(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t=0||(l[a]=e[a]);return l}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(l[a]=e[a])}return l}var u=r.createContext({}),p=function(e){var t=r.useContext(u),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},s=function(e){var t=p(e.components);return r.createElement(u.Provider,{value:t},e.children)},d="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var a=e.components,l=e.mdxType,n=e.originalType,u=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),d=p(a),h=l,b=d["".concat(u,".").concat(h)]||d[h]||c[h]||n;return a?r.createElement(b,i(i({ref:t},s),{},{components:a})):r.createElement(b,i({ref:t},s))}));function b(e,t){var a=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var n=a.length,i=new Array(n);i[0]=h;var o={};for(var u in t)hasOwnProperty.call(t,u)&&(o[u]=t[u]);o.originalType=e,o[d]="string"==typeof e?e:l,i[1]=o;for(var p=2;p{a.r(t),a.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>c,frontMatter:()=>n,metadata:()=>o,toc:()=>p});var r=a(87462),l=(a(67294),a(3905));a(8209);const n={id:"node",title:"Node"},i=void 0,o={unversionedId:"build/core/p2p/node",id:"build/core/p2p/node",title:"Node",description:"Data structure",source:"@site/docs/build/core/p2p/node.md",sourceDirName:"build/core/p2p",slug:"/build/core/p2p/node",permalink:"/build/core/p2p/node",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"node",title:"Node"},sidebar:"docs",previous:{title:"Messaging",permalink:"/build/core/p2p/messaging"},next:{title:"SDK",permalink:"/build/sdk/"}},u={},p=[{value:"Data structure",id:"data-structure",level:2},{value:"P2P tables view",id:"p2p-tables-view",level:2},{value:"Discovery table",id:"discovery-table",level:3},{value:"Availability lookup table",id:"availability-lookup-table",level:3},{value:"Authorized nodes table",id:"authorized-nodes-table",level:3},{value:"Nodes key lookup table",id:"nodes-key-lookup-table",level:3}],s={toc:p},d="wrapper";function c(e){let{components:t,...a}=e;return(0,l.kt)(d,(0,r.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("h2",{id:"data-structure"},"Data structure"),(0,l.kt)("p",null,"Archethic is using a structured and open P2P network based on some properties:"),(0,l.kt)("p",null,"A node include a list P2P information such as:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"IP"),(0,l.kt)("li",{parentName:"ul"},"P2P Port"),(0,l.kt)("li",{parentName:"ul"},"HTTP Port (Web layer - Explorer)"),(0,l.kt)("li",{parentName:"ul"},"P2P Protocol (i.e TCP)"),(0,l.kt)("li",{parentName:"ul"},"First public key"),(0,l.kt)("li",{parentName:"ul"},"Last public key"),(0,l.kt)("li",{parentName:"ul"},"GeoPatch (for geographical distribution based on the GeoIP of the IP)"),(0,l.kt)("li",{parentName:"ul"},"NetworkPatch (for P2P responsiveness based on the latency to reach it)"),(0,l.kt)("li",{parentName:"ul"},"Reward address (the address where the mining rewards should be sent)"),(0,l.kt)("li",{parentName:"ul"},"Global availability (from BeaconChain qualification)"),(0,l.kt)("li",{parentName:"ul"},"Local availability (from Supervised Multicast)"),(0,l.kt)("li",{parentName:"ul"},"Average availability (from BeaconChain qualification)"),(0,l.kt)("li",{parentName:"ul"},"Authorized"),(0,l.kt)("li",{parentName:"ul"},"Authorization Date")),(0,l.kt)("h2",{id:"p2p-tables-view"},"P2P tables view"),(0,l.kt)("p",null,"The application is stored a P2P view in memory table using ETS (Erlang Term Storage) to support fast query to fetch node information."),(0,l.kt)("p",null,"When network transaction(node, node shared secrets) are loaded inside the system, ",(0,l.kt)("inlineCode",{parentName:"p"},"MemTableLoader")," module is called to populate the tables. This is also true during the bootstrap of the node to fill up the data as cache."),(0,l.kt)("h3",{id:"discovery-table"},"Discovery table"),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"first public key"),(0,l.kt)("th",{parentName:"tr",align:null},"last public key"),(0,l.kt)("th",{parentName:"tr",align:null},"IP"),(0,l.kt)("th",{parentName:"tr",align:null},"P2P port"),(0,l.kt)("th",{parentName:"tr",align:null},"HTTP port"),(0,l.kt)("th",{parentName:"tr",align:null},"geo patch"),(0,l.kt)("th",{parentName:"tr",align:null},"network patch"),(0,l.kt)("th",{parentName:"tr",align:null},"average availability"),(0,l.kt)("th",{parentName:"tr",align:null},"availability history"),(0,l.kt)("th",{parentName:"tr",align:null},"enrollment date"),(0,l.kt)("th",{parentName:"tr",align:null},"transport"),(0,l.kt)("th",{parentName:"tr",align:null},"reward ddress")))),(0,l.kt)("p",null,"This table contains all the P2P information for a given node index by its first public key"),(0,l.kt)("h3",{id:"availability-lookup-table"},"Availability lookup table"),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"first public key")))),(0,l.kt)("p",null,"This table indicates the node availability, if its first public key is present in the table.\nThe purpose of this short table is to provide a really fast access to determine the availability."),(0,l.kt)("h3",{id:"authorized-nodes-table"},"Authorized nodes table"),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"first public key"),(0,l.kt)("th",{parentName:"tr",align:null},"authorization date")))),(0,l.kt)("p",null,"All the node public keys presents in this table will be considered at authorized nodes along with their authorization date."),(0,l.kt)("p",null,"So in order to determine if a node is authorized a fast lookup can be performed."),(0,l.kt)("p",null,"In the same order, to get the list of authorized nodes by folding this table which can then lookup data from the discovery table to fetch all the information regarding the authorized node."),(0,l.kt)("h3",{id:"nodes-key-lookup-table"},"Nodes key lookup table"),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"last public key"),(0,l.kt)("th",{parentName:"tr",align:null},"first public key")))),(0,l.kt)("p",null,"This is a reverse ordered table where we can have access to the first node public key from its last public key, without traversing the entire discovery table"))}c.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8208],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>b});var r=a(67294);function l(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function n(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t=0||(l[a]=e[a]);return l}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(l[a]=e[a])}return l}var u=r.createContext({}),p=function(e){var t=r.useContext(u),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},s=function(e){var t=p(e.components);return r.createElement(u.Provider,{value:t},e.children)},d="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var a=e.components,l=e.mdxType,n=e.originalType,u=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),d=p(a),h=l,b=d["".concat(u,".").concat(h)]||d[h]||c[h]||n;return a?r.createElement(b,i(i({ref:t},s),{},{components:a})):r.createElement(b,i({ref:t},s))}));function b(e,t){var a=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var n=a.length,i=new Array(n);i[0]=h;var o={};for(var u in t)hasOwnProperty.call(t,u)&&(o[u]=t[u]);o.originalType=e,o[d]="string"==typeof e?e:l,i[1]=o;for(var p=2;p{a.r(t),a.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>c,frontMatter:()=>n,metadata:()=>o,toc:()=>p});var r=a(87462),l=(a(67294),a(3905));a(8209);const n={id:"node",title:"Node"},i=void 0,o={unversionedId:"build/core/p2p/node",id:"build/core/p2p/node",title:"Node",description:"Data structure",source:"@site/docs/build/core/p2p/node.md",sourceDirName:"build/core/p2p",slug:"/build/core/p2p/node",permalink:"/build/core/p2p/node",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"node",title:"Node"},sidebar:"docs",previous:{title:"Messaging",permalink:"/build/core/p2p/messaging"},next:{title:"SDK",permalink:"/build/sdk/"}},u={},p=[{value:"Data structure",id:"data-structure",level:2},{value:"P2P tables view",id:"p2p-tables-view",level:2},{value:"Discovery table",id:"discovery-table",level:3},{value:"Availability lookup table",id:"availability-lookup-table",level:3},{value:"Authorized nodes table",id:"authorized-nodes-table",level:3},{value:"Nodes key lookup table",id:"nodes-key-lookup-table",level:3}],s={toc:p},d="wrapper";function c(e){let{components:t,...a}=e;return(0,l.kt)(d,(0,r.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("h2",{id:"data-structure"},"Data structure"),(0,l.kt)("p",null,"Archethic is using a structured and open P2P network based on some properties:"),(0,l.kt)("p",null,"A node include a list P2P information such as:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"IP"),(0,l.kt)("li",{parentName:"ul"},"P2P Port"),(0,l.kt)("li",{parentName:"ul"},"HTTP Port (Web layer - Explorer)"),(0,l.kt)("li",{parentName:"ul"},"P2P Protocol (i.e TCP)"),(0,l.kt)("li",{parentName:"ul"},"First public key"),(0,l.kt)("li",{parentName:"ul"},"Last public key"),(0,l.kt)("li",{parentName:"ul"},"GeoPatch (for geographical distribution based on the GeoIP of the IP)"),(0,l.kt)("li",{parentName:"ul"},"NetworkPatch (for P2P responsiveness based on the latency to reach it)"),(0,l.kt)("li",{parentName:"ul"},"Reward address (the address where the mining rewards should be sent)"),(0,l.kt)("li",{parentName:"ul"},"Global availability (from BeaconChain qualification)"),(0,l.kt)("li",{parentName:"ul"},"Local availability (from Supervised Multicast)"),(0,l.kt)("li",{parentName:"ul"},"Average availability (from BeaconChain qualification)"),(0,l.kt)("li",{parentName:"ul"},"Authorized"),(0,l.kt)("li",{parentName:"ul"},"Authorization Date")),(0,l.kt)("h2",{id:"p2p-tables-view"},"P2P tables view"),(0,l.kt)("p",null,"The application is stored a P2P view in memory table using ETS (Erlang Term Storage) to support fast query to fetch node information."),(0,l.kt)("p",null,"When network transaction(node, node shared secrets) are loaded inside the system, ",(0,l.kt)("inlineCode",{parentName:"p"},"MemTableLoader")," module is called to populate the tables. This is also true during the bootstrap of the node to fill up the data as cache."),(0,l.kt)("h3",{id:"discovery-table"},"Discovery table"),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"first public key"),(0,l.kt)("th",{parentName:"tr",align:null},"last public key"),(0,l.kt)("th",{parentName:"tr",align:null},"IP"),(0,l.kt)("th",{parentName:"tr",align:null},"P2P port"),(0,l.kt)("th",{parentName:"tr",align:null},"HTTP port"),(0,l.kt)("th",{parentName:"tr",align:null},"geo patch"),(0,l.kt)("th",{parentName:"tr",align:null},"network patch"),(0,l.kt)("th",{parentName:"tr",align:null},"average availability"),(0,l.kt)("th",{parentName:"tr",align:null},"availability history"),(0,l.kt)("th",{parentName:"tr",align:null},"enrollment date"),(0,l.kt)("th",{parentName:"tr",align:null},"transport"),(0,l.kt)("th",{parentName:"tr",align:null},"reward ddress")))),(0,l.kt)("p",null,"This table contains all the P2P information for a given node index by its first public key"),(0,l.kt)("h3",{id:"availability-lookup-table"},"Availability lookup table"),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"first public key")))),(0,l.kt)("p",null,"This table indicates the node availability, if its first public key is present in the table.\nThe purpose of this short table is to provide a really fast access to determine the availability."),(0,l.kt)("h3",{id:"authorized-nodes-table"},"Authorized nodes table"),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"first public key"),(0,l.kt)("th",{parentName:"tr",align:null},"authorization date")))),(0,l.kt)("p",null,"All the node public keys presents in this table will be considered at authorized nodes along with their authorization date."),(0,l.kt)("p",null,"So in order to determine if a node is authorized a fast lookup can be performed."),(0,l.kt)("p",null,"In the same order, to get the list of authorized nodes by folding this table which can then lookup data from the discovery table to fetch all the information regarding the authorized node."),(0,l.kt)("h3",{id:"nodes-key-lookup-table"},"Nodes key lookup table"),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"last public key"),(0,l.kt)("th",{parentName:"tr",align:null},"first public key")))),(0,l.kt)("p",null,"This is a reverse ordered table where we can have access to the first node public key from its last public key, without traversing the entire discovery table"))}c.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file diff --git a/assets/js/c47075b4.04a04253.js b/assets/js/c47075b4.8637181c.js similarity index 97% rename from assets/js/c47075b4.04a04253.js rename to assets/js/c47075b4.8637181c.js index cbb2e1657..9061c54f0 100644 --- a/assets/js/c47075b4.04a04253.js +++ b/assets/js/c47075b4.8637181c.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7136],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>b});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function s(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var c=n.createContext({}),l=function(e){var t=n.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):s(s({},t),e)),a},d=function(e){var t=l(e.components);return n.createElement(c.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,c=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),u=l(a),m=r,b=u["".concat(c,".").concat(m)]||u[m]||p[m]||o;return a?n.createElement(b,s(s({ref:t},d),{},{components:a})):n.createElement(b,s({ref:t},d))}));function b(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,s=new Array(o);s[0]=m;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[u]="string"==typeof e?e:r,s[1]=i;for(var l=2;l{a.r(t),a.d(t,{Badge:()=>p,Bullet:()=>d,Details:()=>b,SpecifiedBy:()=>u,assets:()=>l,contentTitle:()=>i,default:()=>g,frontMatter:()=>s,metadata:()=>c,toc:()=>m});var n=a(87462),r=a(67294),o=a(3905);a(8209);const s={id:"transaction",title:"transaction",hide_table_of_contents:!1},i=void 0,c={unversionedId:"build/api/schema/queries/transaction",id:"build/api/schema/queries/transaction",title:"transaction",description:"Query the network to find a transaction",source:"@site/docs/build/api/schema/queries/transaction.mdx",sourceDirName:"build/api/schema/queries",slug:"/build/api/schema/queries/transaction",permalink:"/build/api/schema/queries/transaction",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"transaction",title:"transaction",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"transactionInputs",permalink:"/build/api/schema/queries/transaction-inputs"},next:{title:"transactions",permalink:"/build/api/schema/queries/transactions"}},l={},d=()=>(0,o.kt)(r.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),u=e=>(0,o.kt)(r.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),p=e=>(0,o.kt)(r.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),m=[{value:"Arguments",id:"arguments",level:3},{value:'transaction.addressAddress! ',id:"code-style-fontweight-normal-transactionbaddressbcodeaddress--",level:4},{value:"Type",id:"type",level:3},{value:'Transaction ',id:"transaction-",level:4}],b=e=>{let{dataOpen:t,dataClose:a,children:s,startOpen:i=!1}=e;const[c,l]=(0,r.useState)(i);return(0,o.kt)("details",(0,n.Z)({},c?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),l((e=>!e))},style:{listStyle:"none"}},c?t:a),c&&s)},f={Bullet:d,SpecifiedBy:u,Badge:p,toc:m,Details:b},y="wrapper";function g(e){let{components:t,...a}=e;return(0,o.kt)(y,(0,n.Z)({},f,a,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Query the network to find a transaction"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"transaction(\n address: Address!\n): Transaction\n")),(0,o.kt)("h3",{id:"arguments"},"Arguments"),(0,o.kt)("h4",{id:"code-style-fontweight-normal-transactionbaddressbcodeaddress--"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"transaction.",(0,o.kt)("b",null,"address"))),(0,o.kt)(d,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/address"},(0,o.kt)("inlineCode",{parentName:"a"},"Address!"))," ",(0,o.kt)(p,{class:"badge badge--secondary",text:"non-null",mdxType:"Badge"})," ",(0,o.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h3",{id:"type"},"Type"),(0,o.kt)("h4",{id:"transaction-"},(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/transaction"},(0,o.kt)("inlineCode",{parentName:"a"},"Transaction"))," ",(0,o.kt)(p,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,o.kt)("blockquote",null,(0,o.kt)("p",{parentName:"blockquote"},"[Transaction]"," represents a unitary transaction in the Archethic network.")))}g.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7136],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>b});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function s(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var c=n.createContext({}),l=function(e){var t=n.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):s(s({},t),e)),a},d=function(e){var t=l(e.components);return n.createElement(c.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,c=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),u=l(a),m=r,b=u["".concat(c,".").concat(m)]||u[m]||p[m]||o;return a?n.createElement(b,s(s({ref:t},d),{},{components:a})):n.createElement(b,s({ref:t},d))}));function b(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,s=new Array(o);s[0]=m;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[u]="string"==typeof e?e:r,s[1]=i;for(var l=2;l{a.r(t),a.d(t,{Badge:()=>p,Bullet:()=>d,Details:()=>b,SpecifiedBy:()=>u,assets:()=>l,contentTitle:()=>i,default:()=>g,frontMatter:()=>s,metadata:()=>c,toc:()=>m});var n=a(87462),r=a(67294),o=a(3905);a(8209);const s={id:"transaction",title:"transaction",hide_table_of_contents:!1},i=void 0,c={unversionedId:"build/api/schema/queries/transaction",id:"build/api/schema/queries/transaction",title:"transaction",description:"Query the network to find a transaction",source:"@site/docs/build/api/schema/queries/transaction.mdx",sourceDirName:"build/api/schema/queries",slug:"/build/api/schema/queries/transaction",permalink:"/build/api/schema/queries/transaction",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"transaction",title:"transaction",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"transactionInputs",permalink:"/build/api/schema/queries/transaction-inputs"},next:{title:"transactions",permalink:"/build/api/schema/queries/transactions"}},l={},d=()=>(0,o.kt)(r.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),u=e=>(0,o.kt)(r.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),p=e=>(0,o.kt)(r.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),m=[{value:"Arguments",id:"arguments",level:3},{value:'transaction.addressAddress! ',id:"code-style-fontweight-normal-transactionbaddressbcodeaddress--",level:4},{value:"Type",id:"type",level:3},{value:'Transaction ',id:"transaction-",level:4}],b=e=>{let{dataOpen:t,dataClose:a,children:s,startOpen:i=!1}=e;const[c,l]=(0,r.useState)(i);return(0,o.kt)("details",(0,n.Z)({},c?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),l((e=>!e))},style:{listStyle:"none"}},c?t:a),c&&s)},f={Bullet:d,SpecifiedBy:u,Badge:p,toc:m,Details:b},y="wrapper";function g(e){let{components:t,...a}=e;return(0,o.kt)(y,(0,n.Z)({},f,a,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Query the network to find a transaction"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"transaction(\n address: Address!\n): Transaction\n")),(0,o.kt)("h3",{id:"arguments"},"Arguments"),(0,o.kt)("h4",{id:"code-style-fontweight-normal-transactionbaddressbcodeaddress--"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"transaction.",(0,o.kt)("b",null,"address"))),(0,o.kt)(d,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/address"},(0,o.kt)("inlineCode",{parentName:"a"},"Address!"))," ",(0,o.kt)(p,{class:"badge badge--secondary",text:"non-null",mdxType:"Badge"})," ",(0,o.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h3",{id:"type"},"Type"),(0,o.kt)("h4",{id:"transaction-"},(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/transaction"},(0,o.kt)("inlineCode",{parentName:"a"},"Transaction"))," ",(0,o.kt)(p,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,o.kt)("blockquote",null,(0,o.kt)("p",{parentName:"blockquote"},"[Transaction]"," represents a unitary transaction in the Archethic network.")))}g.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file diff --git a/assets/js/c4bb8d44.a15dddcf.js b/assets/js/c4bb8d44.5bd4fdf1.js similarity index 99% rename from assets/js/c4bb8d44.a15dddcf.js rename to assets/js/c4bb8d44.5bd4fdf1.js index 7d3793289..91592ab39 100644 --- a/assets/js/c4bb8d44.a15dddcf.js +++ b/assets/js/c4bb8d44.5bd4fdf1.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9852],{3905:(e,t,n)=>{n.d(t,{Zo:()=>h,kt:()=>m});var a=n(67294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function r(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var c=a.createContext({}),l=function(e){var t=a.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},h=function(e){var t=l(e.components);return a.createElement(c.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var n=e.components,i=e.mdxType,o=e.originalType,c=e.parentName,h=s(e,["components","mdxType","originalType","parentName"]),d=l(n),u=i,m=d["".concat(c,".").concat(u)]||d[u]||p[u]||o;return n?a.createElement(m,r(r({ref:t},h),{},{components:n})):a.createElement(m,r({ref:t},h))}));function m(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=n.length,r=new Array(o);r[0]=u;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[d]="string"==typeof e?e:i,r[1]=s;for(var l=2;l{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>r,default:()=>p,frontMatter:()=>o,metadata:()=>s,toc:()=>l});var a=n(87462),i=(n(67294),n(3905));n(8209);const o={id:"p2p",title:"P2P"},r=void 0,s={unversionedId:"learn/p2p/p2p",id:"learn/p2p/p2p",title:"P2P",description:"Archethic is a permissionless network where any node can participate into the network as long as they have some hardware requirements such secure element to enclave the private keys",source:"@site/docs/learn/p2p/README.md",sourceDirName:"learn/p2p",slug:"/learn/p2p/",permalink:"/learn/p2p/",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"p2p",title:"P2P"},sidebar:"docs",previous:{title:"OracleChain",permalink:"/learn/oracle-chain"},next:{title:"Bootstrapping",permalink:"/learn/p2p/bootstrapping"}},c={},l=[{value:"Existing solutions",id:"existing-solutions",level:2},{value:"Gossip",id:"gossip",level:3},{value:"Broadcast",id:"broadcast",level:3},{value:"Archethic's way",id:"archethics-way",level:2},{value:"Transaction Validation Process",id:"transaction-validation-process",level:3},{value:"Network transaction chains",id:"network-transaction-chains",level:3},{value:"Beacons Chains",id:"beacons-chains",level:3},{value:"Data propagation",id:"data-propagation",level:3}],h={toc:l},d="wrapper";function p(e){let{components:t,...o}=e;return(0,i.kt)(d,(0,a.Z)({},h,o,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"Archethic is a permissionless network where any node can participate into the network as long as they have some hardware requirements such secure element to enclave the private keys\navoiding any disclosure of keys. (See ",(0,i.kt)("a",{parentName:"p",href:"/learn/cryptography/hardware-root-of-trust"},"Hardware Root of Trust"),")"),(0,i.kt)("p",null,"However, the network is able to detect if the new joined nodes should act as validation nodes by authorizing them to validate transactions."),(0,i.kt)("p",null,"So to achieve an unlimited permissionless network, the entire P2P layer have been redesigned from the ground to be more effective to support higher TPS and adaption."),(0,i.kt)("h2",{id:"existing-solutions"},"Existing solutions"),(0,i.kt)("p",null,"In the current P2P and distributed networks, there are two methods of communication for discovery and data propagation: "),(0,i.kt)("h3",{id:"gossip"},"Gossip"),(0,i.kt)("p",null,"Inspired from the gossip in the social network, Gossip's properties are defined by the knowledge of the outgoing neighbors, which means each node of the network will discover the properties of the other nodes by interrogating them randomly periodically."),(0,i.kt)("p",null,"While this approach is high available and fault tolerant, it's performing some unnecessary network traffic and sending data through nearest nodes for propagation. This will use most of the bandwidth and is subject to network latency. "),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"gossip",src:n(44989).Z,width:"611",height:"431"})),(0,i.kt)("h3",{id:"broadcast"},"Broadcast"),(0,i.kt)("p",null,"Classical and native communication is called Broadcast which is defined by the knowledge of the incoming neighbors dispatch the data through all the nodes."),(0,i.kt)("p",null,"This mode of communication is efficient in a small network but in a bigger network the complexity time will not scale."),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"broadcast",src:n(18517).Z,width:"451",height:"451"})),(0,i.kt)("h2",{id:"archethics-way"},"Archethic's way"),(0,i.kt)("p",null,"Archethic introduces a new concept called: ",(0,i.kt)("inlineCode",{parentName:"p"},"Supervised Multicast")),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"supervised_multicast",src:n(44064).Z,width:"431",height:"421"})),(0,i.kt)("p",null,"Archethic is using a hybrid communication that uses Supervised Multicast, which is closer to the properties of Multicast network.\nIt uses some kind of Multi Unicast communication protocol, where a node communicates with a group of nodes during several phases: transaction validation/replication, beacon chain, self-repair phases, while keeping the exchanging low if no activity is present. "),(0,i.kt)("h3",{id:"transaction-validation-process"},"Transaction Validation Process"),(0,i.kt)("p",null,"During transaction validation through mining and replication, nodes communicates and are able to gather information from incoming or outgoing connection."),(0,i.kt)("p",null,"When a node receives a message or send a message, it can capitalize on this information to determine if the node is available or not, in a local view.\nThen through this view, if the node is not considered as available it can pick another node to fetch an information, while data pushing will remain to check/recheck the availability over time."),(0,i.kt)("h3",{id:"network-transaction-chains"},"Network transaction chains"),(0,i.kt)("p",null,"Network transaction chains are a way to announce information to the network through consensus and replicated throw all the nodes."),(0,i.kt)("p",null,"Other networks may leverage gossip for P2P information, Archethic uses transaction based node information for P2P connectivity and cryptography.\nSo when a node joins/rejoins the network or when its IP/Port/Key changed, a new transaction is disseminated to all the nodes in the network after its validation."),(0,i.kt)("p",null,"Then each node knows the entire list of nodes allowed to participate in the network through the use of Node transaction chains.\nTo provide a high level of security and privacy, each connection is encrypted and authenticated by the first node public key known from the transaction chains."),(0,i.kt)("h3",{id:"beacons-chains"},"Beacons Chains"),(0,i.kt)("p",null,(0,i.kt)("a",{parentName:"p",href:"/learn/sharding/beacon-chain"},"BeaconChain")," is a sharded layer able to monitor the entire network and therefore able to snapshot and sample P2P availability/latencies to produce summaries each day to maintain a qualified vision of the network."),(0,i.kt)("p",null,"The P2P availability can also be broadcasted to the network in a shorter time range (such a epoch/slot times) to provide a fresher node availability."),(0,i.kt)("h3",{id:"data-propagation"},"Data propagation"),(0,i.kt)("p",null,"Archethic uses a ",(0,i.kt)("a",{parentName:"p",href:"/learn/sharding"},"sharding")," and distributed replication.\nThis property limits the number of information and messages sent through the network to reduce bandwidth and data traffic"))}p.isMDXComponent=!0},18517:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/broadcast-c18e0f2b670f7a2d10c0b2e372e191be.svg"},44989:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/gossip-5aba8d31999ec7981edfdd3fe1b5c7ce.svg"},44064:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/supervised_multicast-928366485a4348d3539b30b60bcc06ea.svg"},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9852],{3905:(e,t,n)=>{n.d(t,{Zo:()=>h,kt:()=>m});var a=n(67294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function r(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var c=a.createContext({}),l=function(e){var t=a.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},h=function(e){var t=l(e.components);return a.createElement(c.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var n=e.components,i=e.mdxType,o=e.originalType,c=e.parentName,h=s(e,["components","mdxType","originalType","parentName"]),d=l(n),u=i,m=d["".concat(c,".").concat(u)]||d[u]||p[u]||o;return n?a.createElement(m,r(r({ref:t},h),{},{components:n})):a.createElement(m,r({ref:t},h))}));function m(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=n.length,r=new Array(o);r[0]=u;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[d]="string"==typeof e?e:i,r[1]=s;for(var l=2;l{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>r,default:()=>p,frontMatter:()=>o,metadata:()=>s,toc:()=>l});var a=n(87462),i=(n(67294),n(3905));n(8209);const o={id:"p2p",title:"P2P"},r=void 0,s={unversionedId:"learn/p2p/p2p",id:"learn/p2p/p2p",title:"P2P",description:"Archethic is a permissionless network where any node can participate into the network as long as they have some hardware requirements such secure element to enclave the private keys",source:"@site/docs/learn/p2p/README.md",sourceDirName:"learn/p2p",slug:"/learn/p2p/",permalink:"/learn/p2p/",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"p2p",title:"P2P"},sidebar:"docs",previous:{title:"OracleChain",permalink:"/learn/oracle-chain"},next:{title:"Bootstrapping",permalink:"/learn/p2p/bootstrapping"}},c={},l=[{value:"Existing solutions",id:"existing-solutions",level:2},{value:"Gossip",id:"gossip",level:3},{value:"Broadcast",id:"broadcast",level:3},{value:"Archethic's way",id:"archethics-way",level:2},{value:"Transaction Validation Process",id:"transaction-validation-process",level:3},{value:"Network transaction chains",id:"network-transaction-chains",level:3},{value:"Beacons Chains",id:"beacons-chains",level:3},{value:"Data propagation",id:"data-propagation",level:3}],h={toc:l},d="wrapper";function p(e){let{components:t,...o}=e;return(0,i.kt)(d,(0,a.Z)({},h,o,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"Archethic is a permissionless network where any node can participate into the network as long as they have some hardware requirements such secure element to enclave the private keys\navoiding any disclosure of keys. (See ",(0,i.kt)("a",{parentName:"p",href:"/learn/cryptography/hardware-root-of-trust"},"Hardware Root of Trust"),")"),(0,i.kt)("p",null,"However, the network is able to detect if the new joined nodes should act as validation nodes by authorizing them to validate transactions."),(0,i.kt)("p",null,"So to achieve an unlimited permissionless network, the entire P2P layer have been redesigned from the ground to be more effective to support higher TPS and adaption."),(0,i.kt)("h2",{id:"existing-solutions"},"Existing solutions"),(0,i.kt)("p",null,"In the current P2P and distributed networks, there are two methods of communication for discovery and data propagation: "),(0,i.kt)("h3",{id:"gossip"},"Gossip"),(0,i.kt)("p",null,"Inspired from the gossip in the social network, Gossip's properties are defined by the knowledge of the outgoing neighbors, which means each node of the network will discover the properties of the other nodes by interrogating them randomly periodically."),(0,i.kt)("p",null,"While this approach is high available and fault tolerant, it's performing some unnecessary network traffic and sending data through nearest nodes for propagation. This will use most of the bandwidth and is subject to network latency. "),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"gossip",src:n(44989).Z,width:"611",height:"431"})),(0,i.kt)("h3",{id:"broadcast"},"Broadcast"),(0,i.kt)("p",null,"Classical and native communication is called Broadcast which is defined by the knowledge of the incoming neighbors dispatch the data through all the nodes."),(0,i.kt)("p",null,"This mode of communication is efficient in a small network but in a bigger network the complexity time will not scale."),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"broadcast",src:n(18517).Z,width:"451",height:"451"})),(0,i.kt)("h2",{id:"archethics-way"},"Archethic's way"),(0,i.kt)("p",null,"Archethic introduces a new concept called: ",(0,i.kt)("inlineCode",{parentName:"p"},"Supervised Multicast")),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"supervised_multicast",src:n(44064).Z,width:"431",height:"421"})),(0,i.kt)("p",null,"Archethic is using a hybrid communication that uses Supervised Multicast, which is closer to the properties of Multicast network.\nIt uses some kind of Multi Unicast communication protocol, where a node communicates with a group of nodes during several phases: transaction validation/replication, beacon chain, self-repair phases, while keeping the exchanging low if no activity is present. "),(0,i.kt)("h3",{id:"transaction-validation-process"},"Transaction Validation Process"),(0,i.kt)("p",null,"During transaction validation through mining and replication, nodes communicates and are able to gather information from incoming or outgoing connection."),(0,i.kt)("p",null,"When a node receives a message or send a message, it can capitalize on this information to determine if the node is available or not, in a local view.\nThen through this view, if the node is not considered as available it can pick another node to fetch an information, while data pushing will remain to check/recheck the availability over time."),(0,i.kt)("h3",{id:"network-transaction-chains"},"Network transaction chains"),(0,i.kt)("p",null,"Network transaction chains are a way to announce information to the network through consensus and replicated throw all the nodes."),(0,i.kt)("p",null,"Other networks may leverage gossip for P2P information, Archethic uses transaction based node information for P2P connectivity and cryptography.\nSo when a node joins/rejoins the network or when its IP/Port/Key changed, a new transaction is disseminated to all the nodes in the network after its validation."),(0,i.kt)("p",null,"Then each node knows the entire list of nodes allowed to participate in the network through the use of Node transaction chains.\nTo provide a high level of security and privacy, each connection is encrypted and authenticated by the first node public key known from the transaction chains."),(0,i.kt)("h3",{id:"beacons-chains"},"Beacons Chains"),(0,i.kt)("p",null,(0,i.kt)("a",{parentName:"p",href:"/learn/sharding/beacon-chain"},"BeaconChain")," is a sharded layer able to monitor the entire network and therefore able to snapshot and sample P2P availability/latencies to produce summaries each day to maintain a qualified vision of the network."),(0,i.kt)("p",null,"The P2P availability can also be broadcasted to the network in a shorter time range (such a epoch/slot times) to provide a fresher node availability."),(0,i.kt)("h3",{id:"data-propagation"},"Data propagation"),(0,i.kt)("p",null,"Archethic uses a ",(0,i.kt)("a",{parentName:"p",href:"/learn/sharding"},"sharding")," and distributed replication.\nThis property limits the number of information and messages sent through the network to reduce bandwidth and data traffic"))}p.isMDXComponent=!0},18517:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/broadcast-c18e0f2b670f7a2d10c0b2e372e191be.svg"},44989:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/gossip-5aba8d31999ec7981edfdd3fe1b5c7ce.svg"},44064:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/supervised_multicast-928366485a4348d3539b30b60bcc06ea.svg"},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/c65c1395.76ad25e2.js b/assets/js/c65c1395.3f77d5dd.js similarity index 97% rename from assets/js/c65c1395.76ad25e2.js rename to assets/js/c65c1395.3f77d5dd.js index 1a7245250..d5e776356 100644 --- a/assets/js/c65c1395.76ad25e2.js +++ b/assets/js/c65c1395.3f77d5dd.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5344],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>f});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function s(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var c=a.createContext({}),l=function(e){var t=a.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):s(s({},t),e)),r},p=function(e){var t=l(e.components);return a.createElement(c.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,c=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=l(r),m=n,f=u["".concat(c,".").concat(m)]||u[m]||d[m]||o;return r?a.createElement(f,s(s({ref:t},p),{},{components:r})):a.createElement(f,s({ref:t},p))}));function f(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,s=new Array(o);s[0]=m;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[u]="string"==typeof e?e:n,s[1]=i;for(var l=2;l{r.r(t),r.d(t,{Badge:()=>d,Bullet:()=>p,Details:()=>f,SpecifiedBy:()=>u,assets:()=>l,contentTitle:()=>i,default:()=>g,frontMatter:()=>s,metadata:()=>c,toc:()=>m});var a=r(87462),n=r(67294),o=r(3905);r(8209);const s={id:"transaction-type",title:"TransactionType",hide_table_of_contents:!1},i=void 0,c={unversionedId:"build/api/schema/scalars/transaction-type",id:"build/api/schema/scalars/transaction-type",title:"TransactionType",description:"The [TransactionType] scalar type represents a transaction type",source:"@site/docs/build/api/schema/scalars/transaction-type.mdx",sourceDirName:"build/api/schema/scalars",slug:"/build/api/schema/scalars/transaction-type",permalink:"/build/api/schema/scalars/transaction-type",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"transaction-type",title:"TransactionType",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"TokenProperties",permalink:"/build/api/schema/scalars/token-properties"},next:{title:"VersionedHash",permalink:"/build/api/schema/scalars/versioned-hash"}},l={},p=()=>(0,o.kt)(n.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),u=e=>(0,o.kt)(n.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),d=e=>(0,o.kt)(n.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),m=[{value:"Member of",id:"member-of",level:3}],f=e=>{let{dataOpen:t,dataClose:r,children:s,startOpen:i=!1}=e;const[c,l]=(0,n.useState)(i);return(0,o.kt)("details",(0,a.Z)({},c?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),l((e=>!e))},style:{listStyle:"none"}},c?t:r),c&&s)},y={Bullet:p,SpecifiedBy:u,Badge:d,toc:m,Details:f},b="wrapper";function g(e){let{components:t,...r}=e;return(0,o.kt)(b,(0,a.Z)({},y,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"The ","[TransactionType]"," scalar type represents a transaction type"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"scalar TransactionType\n")),(0,o.kt)("h3",{id:"member-of"},"Member of"),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/queries/network-transactions"},(0,o.kt)("inlineCode",{parentName:"a"},"networkTransactions"))," ",(0,o.kt)(d,{class:"badge badge--secondary",text:"query",mdxType:"Badge"})))}g.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5344],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>f});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function s(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var c=a.createContext({}),l=function(e){var t=a.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):s(s({},t),e)),r},p=function(e){var t=l(e.components);return a.createElement(c.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,c=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=l(r),m=n,f=u["".concat(c,".").concat(m)]||u[m]||d[m]||o;return r?a.createElement(f,s(s({ref:t},p),{},{components:r})):a.createElement(f,s({ref:t},p))}));function f(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,s=new Array(o);s[0]=m;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[u]="string"==typeof e?e:n,s[1]=i;for(var l=2;l{r.r(t),r.d(t,{Badge:()=>d,Bullet:()=>p,Details:()=>f,SpecifiedBy:()=>u,assets:()=>l,contentTitle:()=>i,default:()=>g,frontMatter:()=>s,metadata:()=>c,toc:()=>m});var a=r(87462),n=r(67294),o=r(3905);r(8209);const s={id:"transaction-type",title:"TransactionType",hide_table_of_contents:!1},i=void 0,c={unversionedId:"build/api/schema/scalars/transaction-type",id:"build/api/schema/scalars/transaction-type",title:"TransactionType",description:"The [TransactionType] scalar type represents a transaction type",source:"@site/docs/build/api/schema/scalars/transaction-type.mdx",sourceDirName:"build/api/schema/scalars",slug:"/build/api/schema/scalars/transaction-type",permalink:"/build/api/schema/scalars/transaction-type",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"transaction-type",title:"TransactionType",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"TokenProperties",permalink:"/build/api/schema/scalars/token-properties"},next:{title:"VersionedHash",permalink:"/build/api/schema/scalars/versioned-hash"}},l={},p=()=>(0,o.kt)(n.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),u=e=>(0,o.kt)(n.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),d=e=>(0,o.kt)(n.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),m=[{value:"Member of",id:"member-of",level:3}],f=e=>{let{dataOpen:t,dataClose:r,children:s,startOpen:i=!1}=e;const[c,l]=(0,n.useState)(i);return(0,o.kt)("details",(0,a.Z)({},c?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),l((e=>!e))},style:{listStyle:"none"}},c?t:r),c&&s)},y={Bullet:p,SpecifiedBy:u,Badge:d,toc:m,Details:f},b="wrapper";function g(e){let{components:t,...r}=e;return(0,o.kt)(b,(0,a.Z)({},y,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"The ","[TransactionType]"," scalar type represents a transaction type"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"scalar TransactionType\n")),(0,o.kt)("h3",{id:"member-of"},"Member of"),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/queries/network-transactions"},(0,o.kt)("inlineCode",{parentName:"a"},"networkTransactions"))," ",(0,o.kt)(d,{class:"badge badge--secondary",text:"query",mdxType:"Badge"})))}g.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file diff --git a/assets/js/c8c61268.23eb9aa7.js b/assets/js/c8c61268.850412c9.js similarity index 98% rename from assets/js/c8c61268.23eb9aa7.js rename to assets/js/c8c61268.850412c9.js index 74197661e..08257925f 100644 --- a/assets/js/c8c61268.23eb9aa7.js +++ b/assets/js/c8c61268.850412c9.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9909],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>h});var r=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var p=r.createContext({}),l=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},c=function(e){var t=l(e.components);return r.createElement(p.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},f=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,p=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),d=l(n),f=o,h=d["".concat(p,".").concat(f)]||d[f]||u[f]||i;return n?r.createElement(h,a(a({ref:t},c),{},{components:n})):r.createElement(h,a({ref:t},c))}));function h(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,a=new Array(i);a[0]=f;var s={};for(var p in t)hasOwnProperty.call(t,p)&&(s[p]=t[p]);s.originalType=e,s[d]="string"==typeof e?e:o,a[1]=s;for(var l=2;l{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>a,default:()=>u,frontMatter:()=>i,metadata:()=>s,toc:()=>l});var r=n(87462),o=(n(67294),n(3905));n(8209);const i={id:"bootstrapping",title:"Bootstrapping"},a=void 0,s={unversionedId:"learn/p2p/bootstrapping",id:"learn/p2p/bootstrapping",title:"Bootstrapping",description:"Archethic Blockchain by using Network Transaction and Supervised Multicast, requires some actions to be performed",source:"@site/docs/learn/p2p/bootstrapping.md",sourceDirName:"learn/p2p",slug:"/learn/p2p/bootstrapping",permalink:"/learn/p2p/bootstrapping",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"bootstrapping",title:"Bootstrapping"},sidebar:"docs",previous:{title:"P2P",permalink:"/learn/p2p/"},next:{title:"Self Repair",permalink:"/learn/p2p/self-repair"}},p={},l=[{value:"Joining",id:"joining",level:2},{value:"Updates",id:"updates",level:2},{value:"Synchronization",id:"synchronization",level:2}],c={toc:l},d="wrapper";function u(e){let{components:t,...n}=e;return(0,o.kt)(d,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Archethic Blockchain by using Network Transaction and Supervised Multicast, requires some actions to be performed\nwhen a node is bootstrapping. These operations will ensure synchronization and P2P awareness."),(0,o.kt)("h2",{id:"joining"},"Joining"),(0,o.kt)("p",null,'When a node joins the network for the first time, it will request from a list of preconfigured nodes to reach (called "bootstrapping seeds"), the closest nodes from its position.'),(0,o.kt)("p",null,"Then, it will generate a first node transaction including as data: ip, port, protocol, reward address, key certificate (to ensure the key is coming from a secure element)\nOnce the network will attest and verify its transaction, the node will be able to start a SelfRepair process"),(0,o.kt)("h2",{id:"updates"},"Updates"),(0,o.kt)("p",null,"When a node rejoins the network after some time, depending on if its previous data expired, it will generate a new transaction with the new information"),(0,o.kt)("h2",{id:"synchronization"},"Synchronization"),(0,o.kt)("p",null,"Once the transaction is validated, the node will start by requesting the list of nodes."),(0,o.kt)("p",null,"Then, it will start the ",(0,o.kt)("a",{parentName:"p",href:"/learn/p2p/self-repair"},"Self-Repair")," sequence to get and synchronize the missing transactions and publish its end of sync to the network."),(0,o.kt)("p",null,"By this way, the entire will know the existence the readiness of this node."))}u.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9909],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>h});var r=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var p=r.createContext({}),l=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},c=function(e){var t=l(e.components);return r.createElement(p.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},f=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,p=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),d=l(n),f=o,h=d["".concat(p,".").concat(f)]||d[f]||u[f]||i;return n?r.createElement(h,a(a({ref:t},c),{},{components:n})):r.createElement(h,a({ref:t},c))}));function h(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,a=new Array(i);a[0]=f;var s={};for(var p in t)hasOwnProperty.call(t,p)&&(s[p]=t[p]);s.originalType=e,s[d]="string"==typeof e?e:o,a[1]=s;for(var l=2;l{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>a,default:()=>u,frontMatter:()=>i,metadata:()=>s,toc:()=>l});var r=n(87462),o=(n(67294),n(3905));n(8209);const i={id:"bootstrapping",title:"Bootstrapping"},a=void 0,s={unversionedId:"learn/p2p/bootstrapping",id:"learn/p2p/bootstrapping",title:"Bootstrapping",description:"Archethic Blockchain by using Network Transaction and Supervised Multicast, requires some actions to be performed",source:"@site/docs/learn/p2p/bootstrapping.md",sourceDirName:"learn/p2p",slug:"/learn/p2p/bootstrapping",permalink:"/learn/p2p/bootstrapping",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"bootstrapping",title:"Bootstrapping"},sidebar:"docs",previous:{title:"P2P",permalink:"/learn/p2p/"},next:{title:"Self Repair",permalink:"/learn/p2p/self-repair"}},p={},l=[{value:"Joining",id:"joining",level:2},{value:"Updates",id:"updates",level:2},{value:"Synchronization",id:"synchronization",level:2}],c={toc:l},d="wrapper";function u(e){let{components:t,...n}=e;return(0,o.kt)(d,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Archethic Blockchain by using Network Transaction and Supervised Multicast, requires some actions to be performed\nwhen a node is bootstrapping. These operations will ensure synchronization and P2P awareness."),(0,o.kt)("h2",{id:"joining"},"Joining"),(0,o.kt)("p",null,'When a node joins the network for the first time, it will request from a list of preconfigured nodes to reach (called "bootstrapping seeds"), the closest nodes from its position.'),(0,o.kt)("p",null,"Then, it will generate a first node transaction including as data: ip, port, protocol, reward address, key certificate (to ensure the key is coming from a secure element)\nOnce the network will attest and verify its transaction, the node will be able to start a SelfRepair process"),(0,o.kt)("h2",{id:"updates"},"Updates"),(0,o.kt)("p",null,"When a node rejoins the network after some time, depending on if its previous data expired, it will generate a new transaction with the new information"),(0,o.kt)("h2",{id:"synchronization"},"Synchronization"),(0,o.kt)("p",null,"Once the transaction is validated, the node will start by requesting the list of nodes."),(0,o.kt)("p",null,"Then, it will start the ",(0,o.kt)("a",{parentName:"p",href:"/learn/p2p/self-repair"},"Self-Repair")," sequence to get and synchronize the missing transactions and publish its end of sync to the network."),(0,o.kt)("p",null,"By this way, the entire will know the existence the readiness of this node."))}u.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/c9e924cb.f83c55a8.js b/assets/js/c9e924cb.0792dfa3.js similarity index 98% rename from assets/js/c9e924cb.f83c55a8.js rename to assets/js/c9e924cb.0792dfa3.js index facdcb9bb..539855ab3 100644 --- a/assets/js/c9e924cb.f83c55a8.js +++ b/assets/js/c9e924cb.0792dfa3.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3930],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>k});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var s=n.createContext({}),u=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},c=function(e){var t=u(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,l=e.originalType,s=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),p=u(a),m=r,k=p["".concat(s,".").concat(m)]||p[m]||d[m]||l;return a?n.createElement(k,i(i({ref:t},c),{},{components:a})):n.createElement(k,i({ref:t},c))}));function k(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=a.length,i=new Array(l);i[0]=m;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[p]="string"==typeof e?e:r,i[1]=o;for(var u=2;u{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>l,metadata:()=>o,toc:()=>u});var n=a(87462),r=(a(67294),a(3905));a(8209);const l={id:"state",title:"State module",sidebar_label:"State"},i=void 0,o={unversionedId:"build/smart-contracts/language/library/state",id:"build/smart-contracts/language/library/state",title:"State module",description:"The State module contains functions to read or write the current contract's state.",source:"@site/docs/build/smart-contracts/language/library/state.md",sourceDirName:"build/smart-contracts/language/library",slug:"/build/smart-contracts/language/library/state",permalink:"/build/smart-contracts/language/library/state",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"state",title:"State module",sidebar_label:"State"},sidebar:"docs",previous:{title:"Regex",permalink:"/build/smart-contracts/language/library/regex"},next:{title:"String",permalink:"/build/smart-contracts/language/library/string"}},s={},u=[{value:"get/1",id:"get1",level:3},{value:"get/2",id:"get2",level:3},{value:"set/2",id:"set2",level:3},{value:"delete/1",id:"delete1",level:3}],c={toc:u},p="wrapper";function d(e){let{components:t,...a}=e;return(0,r.kt)(p,(0,n.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"The ",(0,r.kt)("inlineCode",{parentName:"p"},"State")," module contains functions to read or write the current contract's state."),(0,r.kt)("h3",{id:"get1"},"get/1"),(0,r.kt)("p",null,"Equivalent to ",(0,r.kt)("a",{parentName:"p",href:"#get2"},"get/2")," with ",(0,r.kt)("inlineCode",{parentName:"p"},"default: nil"),"."),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"Because a contract always start without state, you should always use ",(0,r.kt)("a",{parentName:"p",href:"#get2"},"get/2")," or check for ",(0,r.kt)("inlineCode",{parentName:"p"},"nil"),".")),(0,r.kt)("h3",{id:"get2"},"get/2"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},"State.get(key, default)\n")),(0,r.kt)("p",null,"Parameters:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"key"),": the key to read the state from"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"default"),": the value returned if there is no key ",(0,r.kt)("inlineCode",{parentName:"li"},"key")," in the state")),(0,r.kt)("p",null,"Returns the state stored at given ",(0,r.kt)("inlineCode",{parentName:"p"},"key"),", or return ",(0,r.kt)("inlineCode",{parentName:"p"},"default")," if the key does not exist."),(0,r.kt)("h3",{id:"set2"},"set/2"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},"State.set(key, value)\n")),(0,r.kt)("p",null,"Parameters:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"key"),": the key to write the state at"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"value"),": the value to store")),(0,r.kt)("p",null,"Writes the ",(0,r.kt)("inlineCode",{parentName:"p"},"value")," in the state at key ",(0,r.kt)("inlineCode",{parentName:"p"},"key"),"."),(0,r.kt)("h3",{id:"delete1"},"delete/1"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},"State.delete(key)\n")),(0,r.kt)("p",null,"Parameters:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"key"),": the key to remove")),(0,r.kt)("p",null,"Removes the key ",(0,r.kt)("inlineCode",{parentName:"p"},"key")," from the state."),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"A Smart Contract's state is persisted as an UTXO (unspent output) of the resulting transaction. Because of this, any state modification will result in a new transaction on the Smart Contract's transaction chain.")))}d.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3930],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>k});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var s=n.createContext({}),u=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},c=function(e){var t=u(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,l=e.originalType,s=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),p=u(a),m=r,k=p["".concat(s,".").concat(m)]||p[m]||d[m]||l;return a?n.createElement(k,i(i({ref:t},c),{},{components:a})):n.createElement(k,i({ref:t},c))}));function k(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=a.length,i=new Array(l);i[0]=m;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[p]="string"==typeof e?e:r,i[1]=o;for(var u=2;u{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>l,metadata:()=>o,toc:()=>u});var n=a(87462),r=(a(67294),a(3905));a(8209);const l={id:"state",title:"State module",sidebar_label:"State"},i=void 0,o={unversionedId:"build/smart-contracts/language/library/state",id:"build/smart-contracts/language/library/state",title:"State module",description:"The State module contains functions to read or write the current contract's state.",source:"@site/docs/build/smart-contracts/language/library/state.md",sourceDirName:"build/smart-contracts/language/library",slug:"/build/smart-contracts/language/library/state",permalink:"/build/smart-contracts/language/library/state",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"state",title:"State module",sidebar_label:"State"},sidebar:"docs",previous:{title:"Regex",permalink:"/build/smart-contracts/language/library/regex"},next:{title:"String",permalink:"/build/smart-contracts/language/library/string"}},s={},u=[{value:"get/1",id:"get1",level:3},{value:"get/2",id:"get2",level:3},{value:"set/2",id:"set2",level:3},{value:"delete/1",id:"delete1",level:3}],c={toc:u},p="wrapper";function d(e){let{components:t,...a}=e;return(0,r.kt)(p,(0,n.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"The ",(0,r.kt)("inlineCode",{parentName:"p"},"State")," module contains functions to read or write the current contract's state."),(0,r.kt)("h3",{id:"get1"},"get/1"),(0,r.kt)("p",null,"Equivalent to ",(0,r.kt)("a",{parentName:"p",href:"#get2"},"get/2")," with ",(0,r.kt)("inlineCode",{parentName:"p"},"default: nil"),"."),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"Because a contract always start without state, you should always use ",(0,r.kt)("a",{parentName:"p",href:"#get2"},"get/2")," or check for ",(0,r.kt)("inlineCode",{parentName:"p"},"nil"),".")),(0,r.kt)("h3",{id:"get2"},"get/2"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},"State.get(key, default)\n")),(0,r.kt)("p",null,"Parameters:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"key"),": the key to read the state from"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"default"),": the value returned if there is no key ",(0,r.kt)("inlineCode",{parentName:"li"},"key")," in the state")),(0,r.kt)("p",null,"Returns the state stored at given ",(0,r.kt)("inlineCode",{parentName:"p"},"key"),", or return ",(0,r.kt)("inlineCode",{parentName:"p"},"default")," if the key does not exist."),(0,r.kt)("h3",{id:"set2"},"set/2"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},"State.set(key, value)\n")),(0,r.kt)("p",null,"Parameters:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"key"),": the key to write the state at"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"value"),": the value to store")),(0,r.kt)("p",null,"Writes the ",(0,r.kt)("inlineCode",{parentName:"p"},"value")," in the state at key ",(0,r.kt)("inlineCode",{parentName:"p"},"key"),"."),(0,r.kt)("h3",{id:"delete1"},"delete/1"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},"State.delete(key)\n")),(0,r.kt)("p",null,"Parameters:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"key"),": the key to remove")),(0,r.kt)("p",null,"Removes the key ",(0,r.kt)("inlineCode",{parentName:"p"},"key")," from the state."),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"A Smart Contract's state is persisted as an UTXO (unspent output) of the resulting transaction. Because of this, any state modification will result in a new transaction on the Smart Contract's transaction chain.")))}d.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file diff --git a/assets/js/cc5722e1.3ffef60d.js b/assets/js/cc5722e1.9f1ad7fe.js similarity index 96% rename from assets/js/cc5722e1.3ffef60d.js rename to assets/js/cc5722e1.9f1ad7fe.js index 464b311a5..f825cf9b9 100644 --- a/assets/js/cc5722e1.3ffef60d.js +++ b/assets/js/cc5722e1.9f1ad7fe.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4923],{3905:(e,t,r)=>{r.d(t,{Zo:()=>d,kt:()=>f});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),s=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},d=function(e){var t=s(e.components);return n.createElement(c.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),u=s(r),m=a,f=u["".concat(c,".").concat(m)]||u[m]||p[m]||o;return r?n.createElement(f,l(l({ref:t},d),{},{components:r})):n.createElement(f,l({ref:t},d))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=m;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[u]="string"==typeof e?e:a,l[1]=i;for(var s=2;s{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>p,frontMatter:()=>o,metadata:()=>i,toc:()=>s});var n=r(87462),a=(r(67294),r(3905));r(8209);const o={id:"token",title:"Token module",sidebar_label:"Token"},l=void 0,i={unversionedId:"build/smart-contracts/language/library/token",id:"build/smart-contracts/language/library/token",title:"Token module",description:"The Token module contains functions that deal with tokens.",source:"@site/docs/build/smart-contracts/language/library/token.md",sourceDirName:"build/smart-contracts/language/library",slug:"/build/smart-contracts/language/library/token",permalink:"/build/smart-contracts/language/library/token",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"token",title:"Token module",sidebar_label:"Token"},sidebar:"docs",previous:{title:"Time",permalink:"/build/smart-contracts/language/library/time"},next:{title:"Legacy",permalink:"/build/smart-contracts/language/legacy/"}},c={},s=[{value:"fetch_id_from_address/1 [I/O] (DEPRECATED)",id:"fetch_id_from_address1-io-deprecated",level:3}],d={toc:s},u="wrapper";function p(e){let{components:t,...r}=e;return(0,a.kt)(u,(0,n.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The ",(0,a.kt)("inlineCode",{parentName:"p"},"Token")," module contains functions that deal with tokens."),(0,a.kt)("h3",{id:"fetch_id_from_address1-io-deprecated"},"fetch_id_from_address/1 ",(0,a.kt)("inlineCode",{parentName:"h3"},"[I/O]")," (DEPRECATED)"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},'Token.fetch_id_from_address("000012345") # "3C21EF708BF11B4232..."\n')),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"address")," the token address")),(0,a.kt)("p",null,"Returns the token's id of the token at ",(0,a.kt)("inlineCode",{parentName:"p"},"address"),"."))}p.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4923],{3905:(e,t,r)=>{r.d(t,{Zo:()=>d,kt:()=>f});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),s=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},d=function(e){var t=s(e.components);return n.createElement(c.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),u=s(r),m=a,f=u["".concat(c,".").concat(m)]||u[m]||p[m]||o;return r?n.createElement(f,l(l({ref:t},d),{},{components:r})):n.createElement(f,l({ref:t},d))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=m;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[u]="string"==typeof e?e:a,l[1]=i;for(var s=2;s{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>p,frontMatter:()=>o,metadata:()=>i,toc:()=>s});var n=r(87462),a=(r(67294),r(3905));r(8209);const o={id:"token",title:"Token module",sidebar_label:"Token"},l=void 0,i={unversionedId:"build/smart-contracts/language/library/token",id:"build/smart-contracts/language/library/token",title:"Token module",description:"The Token module contains functions that deal with tokens.",source:"@site/docs/build/smart-contracts/language/library/token.md",sourceDirName:"build/smart-contracts/language/library",slug:"/build/smart-contracts/language/library/token",permalink:"/build/smart-contracts/language/library/token",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"token",title:"Token module",sidebar_label:"Token"},sidebar:"docs",previous:{title:"Time",permalink:"/build/smart-contracts/language/library/time"},next:{title:"Legacy",permalink:"/build/smart-contracts/language/legacy/"}},c={},s=[{value:"fetch_id_from_address/1 [I/O] (DEPRECATED)",id:"fetch_id_from_address1-io-deprecated",level:3}],d={toc:s},u="wrapper";function p(e){let{components:t,...r}=e;return(0,a.kt)(u,(0,n.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The ",(0,a.kt)("inlineCode",{parentName:"p"},"Token")," module contains functions that deal with tokens."),(0,a.kt)("h3",{id:"fetch_id_from_address1-io-deprecated"},"fetch_id_from_address/1 ",(0,a.kt)("inlineCode",{parentName:"h3"},"[I/O]")," (DEPRECATED)"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},'Token.fetch_id_from_address("000012345") # "3C21EF708BF11B4232..."\n')),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"address")," the token address")),(0,a.kt)("p",null,"Returns the token's id of the token at ",(0,a.kt)("inlineCode",{parentName:"p"},"address"),"."))}p.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file diff --git a/assets/js/cc668907.e2a5a133.js b/assets/js/cc668907.1e8d4bbe.js similarity index 98% rename from assets/js/cc668907.e2a5a133.js rename to assets/js/cc668907.1e8d4bbe.js index 99b4b763f..21687b61a 100644 --- a/assets/js/cc668907.e2a5a133.js +++ b/assets/js/cc668907.1e8d4bbe.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6753],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>b});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var s=n.createContext({}),c=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},d=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,s=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),p=c(a),m=r,b=p["".concat(s,".").concat(m)]||p[m]||u[m]||o;return a?n.createElement(b,l(l({ref:t},d),{},{components:a})):n.createElement(b,l({ref:t},d))}));function b(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,l=new Array(o);l[0]=m;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:r,l[1]=i;for(var c=2;c{a.r(t),a.d(t,{Badge:()=>u,Bullet:()=>d,Details:()=>b,SpecifiedBy:()=>p,assets:()=>c,contentTitle:()=>i,default:()=>g,frontMatter:()=>l,metadata:()=>s,toc:()=>m});var n=a(87462),r=a(67294),o=a(3905);a(8209);const l={id:"cross-validation-stamp",title:"CrossValidationStamp",hide_table_of_contents:!1},i=void 0,s={unversionedId:"build/api/schema/objects/cross-validation-stamp",id:"build/api/schema/objects/cross-validation-stamp",title:"CrossValidationStamp",description:"[CrossValidationStamp] represents the approval of the validation stamp by a cross validation node.",source:"@site/docs/build/api/schema/objects/cross-validation-stamp.mdx",sourceDirName:"build/api/schema/objects",slug:"/build/api/schema/objects/cross-validation-stamp",permalink:"/build/api/schema/objects/cross-validation-stamp",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"cross-validation-stamp",title:"CrossValidationStamp",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"ConsumedInputs",permalink:"/build/api/schema/objects/consumed-inputs"},next:{title:"Data",permalink:"/build/api/schema/objects/data"}},c={},d=()=>(0,o.kt)(r.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=e=>(0,o.kt)(r.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,o.kt)(r.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),m=[{value:"Fields",id:"fields",level:3},{value:'CrossValidationStamp.nodePublicKeyPublicKey ',id:"code-style-fontweight-normal-crossvalidationstampbnodepublickeybcodepublickey-",level:4},{value:'CrossValidationStamp.signatureHex ',id:"code-style-fontweight-normal-crossvalidationstampbsignaturebcodehex-",level:4},{value:"Member of",id:"member-of",level:3}],b=e=>{let{dataOpen:t,dataClose:a,children:l,startOpen:i=!1}=e;const[s,c]=(0,r.useState)(i);return(0,o.kt)("details",(0,n.Z)({},s?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),c((e=>!e))},style:{listStyle:"none"}},s?t:a),s&&l)},f={Bullet:d,SpecifiedBy:p,Badge:u,toc:m,Details:b},y="wrapper";function g(e){let{components:t,...a}=e;return(0,o.kt)(y,(0,n.Z)({},f,a,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"[CrossValidationStamp]"," represents the approval of the validation stamp by a cross validation node.\nIt includes:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Signature: signature of the validation stamp"),(0,o.kt)("li",{parentName:"ul"},"Node public key: cross validation node's public key")),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"type CrossValidationStamp {\n nodePublicKey: PublicKey\n signature: Hex\n}\n")),(0,o.kt)("h3",{id:"fields"},"Fields"),(0,o.kt)("h4",{id:"code-style-fontweight-normal-crossvalidationstampbnodepublickeybcodepublickey-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"CrossValidationStamp.",(0,o.kt)("b",null,"nodePublicKey"))),(0,o.kt)(d,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/public-key"},(0,o.kt)("inlineCode",{parentName:"a"},"PublicKey"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h4",{id:"code-style-fontweight-normal-crossvalidationstampbsignaturebcodehex-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"CrossValidationStamp.",(0,o.kt)("b",null,"signature"))),(0,o.kt)(d,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/hex"},(0,o.kt)("inlineCode",{parentName:"a"},"Hex"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h3",{id:"member-of"},"Member of"),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/transaction"},(0,o.kt)("inlineCode",{parentName:"a"},"Transaction"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}g.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6753],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>b});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var s=n.createContext({}),c=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},d=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,s=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),p=c(a),m=r,b=p["".concat(s,".").concat(m)]||p[m]||u[m]||o;return a?n.createElement(b,l(l({ref:t},d),{},{components:a})):n.createElement(b,l({ref:t},d))}));function b(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,l=new Array(o);l[0]=m;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:r,l[1]=i;for(var c=2;c{a.r(t),a.d(t,{Badge:()=>u,Bullet:()=>d,Details:()=>b,SpecifiedBy:()=>p,assets:()=>c,contentTitle:()=>i,default:()=>g,frontMatter:()=>l,metadata:()=>s,toc:()=>m});var n=a(87462),r=a(67294),o=a(3905);a(8209);const l={id:"cross-validation-stamp",title:"CrossValidationStamp",hide_table_of_contents:!1},i=void 0,s={unversionedId:"build/api/schema/objects/cross-validation-stamp",id:"build/api/schema/objects/cross-validation-stamp",title:"CrossValidationStamp",description:"[CrossValidationStamp] represents the approval of the validation stamp by a cross validation node.",source:"@site/docs/build/api/schema/objects/cross-validation-stamp.mdx",sourceDirName:"build/api/schema/objects",slug:"/build/api/schema/objects/cross-validation-stamp",permalink:"/build/api/schema/objects/cross-validation-stamp",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"cross-validation-stamp",title:"CrossValidationStamp",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"ConsumedInputs",permalink:"/build/api/schema/objects/consumed-inputs"},next:{title:"Data",permalink:"/build/api/schema/objects/data"}},c={},d=()=>(0,o.kt)(r.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=e=>(0,o.kt)(r.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,o.kt)(r.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),m=[{value:"Fields",id:"fields",level:3},{value:'CrossValidationStamp.nodePublicKeyPublicKey ',id:"code-style-fontweight-normal-crossvalidationstampbnodepublickeybcodepublickey-",level:4},{value:'CrossValidationStamp.signatureHex ',id:"code-style-fontweight-normal-crossvalidationstampbsignaturebcodehex-",level:4},{value:"Member of",id:"member-of",level:3}],b=e=>{let{dataOpen:t,dataClose:a,children:l,startOpen:i=!1}=e;const[s,c]=(0,r.useState)(i);return(0,o.kt)("details",(0,n.Z)({},s?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),c((e=>!e))},style:{listStyle:"none"}},s?t:a),s&&l)},f={Bullet:d,SpecifiedBy:p,Badge:u,toc:m,Details:b},y="wrapper";function g(e){let{components:t,...a}=e;return(0,o.kt)(y,(0,n.Z)({},f,a,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"[CrossValidationStamp]"," represents the approval of the validation stamp by a cross validation node.\nIt includes:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Signature: signature of the validation stamp"),(0,o.kt)("li",{parentName:"ul"},"Node public key: cross validation node's public key")),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"type CrossValidationStamp {\n nodePublicKey: PublicKey\n signature: Hex\n}\n")),(0,o.kt)("h3",{id:"fields"},"Fields"),(0,o.kt)("h4",{id:"code-style-fontweight-normal-crossvalidationstampbnodepublickeybcodepublickey-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"CrossValidationStamp.",(0,o.kt)("b",null,"nodePublicKey"))),(0,o.kt)(d,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/public-key"},(0,o.kt)("inlineCode",{parentName:"a"},"PublicKey"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h4",{id:"code-style-fontweight-normal-crossvalidationstampbsignaturebcodehex-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"CrossValidationStamp.",(0,o.kt)("b",null,"signature"))),(0,o.kt)(d,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/hex"},(0,o.kt)("inlineCode",{parentName:"a"},"Hex"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h3",{id:"member-of"},"Member of"),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/transaction"},(0,o.kt)("inlineCode",{parentName:"a"},"Transaction"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}g.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file diff --git a/assets/js/cc71d488.0c7216f4.js b/assets/js/cc71d488.e8f0d1ad.js similarity index 99% rename from assets/js/cc71d488.0c7216f4.js rename to assets/js/cc71d488.e8f0d1ad.js index 2da94aca3..234aabdb1 100644 --- a/assets/js/cc71d488.0c7216f4.js +++ b/assets/js/cc71d488.e8f0d1ad.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9216],{3905:(t,e,r)=>{r.d(e,{Zo:()=>g,kt:()=>h});var a=r(67294);function n(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function o(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,a)}return r}function i(t){for(var e=1;e=0||(n[r]=t[r]);return n}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}var l=a.createContext({}),c=function(t){var e=a.useContext(l),r=e;return t&&(r="function"==typeof t?t(e):i(i({},e),t)),r},g=function(t){var e=c(t.components);return a.createElement(l.Provider,{value:e},t.children)},d="mdxType",u={inlineCode:"code",wrapper:function(t){var e=t.children;return a.createElement(a.Fragment,{},e)}},p=a.forwardRef((function(t,e){var r=t.components,n=t.mdxType,o=t.originalType,l=t.parentName,g=s(t,["components","mdxType","originalType","parentName"]),d=c(r),p=n,h=d["".concat(l,".").concat(p)]||d[p]||u[p]||o;return r?a.createElement(h,i(i({ref:e},g),{},{components:r})):a.createElement(h,i({ref:e},g))}));function h(t,e){var r=arguments,n=e&&e.mdxType;if("string"==typeof t||n){var o=r.length,i=new Array(o);i[0]=p;var s={};for(var l in e)hasOwnProperty.call(e,l)&&(s[l]=e[l]);s.originalType=t,s[d]="string"==typeof t?t:n,i[1]=s;for(var c=2;c{r.r(e),r.d(e,{assets:()=>l,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>s,toc:()=>c});var a=r(87462),n=(r(67294),r(3905));r(8209);const o={id:"build",title:"Smart Contracts Playground - Build",sidebar_label:"Build",sidebar_position:1},i=void 0,s={unversionedId:"build/smart-contracts/playground/build",id:"build/smart-contracts/playground/build",title:"Smart Contracts Playground - Build",description:"Let's create a small smart contracts that reacts to two different triggers. We'll then be able to test them separately.",source:"@site/docs/build/smart-contracts/playground/build.md",sourceDirName:"build/smart-contracts/playground",slug:"/build/smart-contracts/playground/build",permalink:"/build/smart-contracts/playground/build",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",sidebarPosition:1,frontMatter:{id:"build",title:"Smart Contracts Playground - Build",sidebar_label:"Build",sidebar_position:1},sidebar:"docs",previous:{title:"Playground",permalink:"/build/smart-contracts/playground/"},next:{title:"Deploy",permalink:"/build/smart-contracts/playground/deploy"}},l={},c=[{value:"I. Write the contract",id:"i-write-the-contract",level:2},{value:"II. Test the triggers",id:"ii-test-the-triggers",level:2},{value:"Test trigger 'interval'",id:"test-trigger-interval",level:3},{value:"Test trigger 'transaction'",id:"test-trigger-transaction",level:3},{value:"Test trigger 'datetime'",id:"test-trigger-datetime",level:3},{value:"Test trigger 'oracle'",id:"test-trigger-oracle",level:3}],g={toc:c},d="wrapper";function u(t){let{components:e,...o}=t;return(0,n.kt)(d,(0,a.Z)({},g,o,{components:e,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"Let's create a small smart contracts that reacts to two different triggers. We'll then be able to test them separately."),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-elixir"},'@version 1\n\nactions triggered_by: interval, at: "0 * * * *" do\n Contract.set_content "Hello from interval"\nend\n\ncondition triggered_by: transaction, as: []\nactions triggered_by: transaction do\n Contract.set_content "Hello from tx"\nend\n')),(0,n.kt)("h2",{id:"i-write-the-contract"},"I. Write the contract"),(0,n.kt)("p",null,"Write the code of the smart contract in the text area:\n",(0,n.kt)("img",{alt:"the contract is written in the textarea",src:r(58933).Z,width:"3600",height:"2390"})),(0,n.kt)("p",null,"As you write, you might see the console at the bottom reacting with different errors:"),(0,n.kt)("p",null,(0,n.kt)("img",{alt:"a parsing error visible in the console",src:r(89566).Z,width:"3600",height:"2390"})),(0,n.kt)("h2",{id:"ii-test-the-triggers"},"II. Test the triggers"),(0,n.kt)("p",null,"To test a smart contract, you need to test all its triggers. We are going to open the trigger panel by clicking on the trigger button:"),(0,n.kt)("p",null,(0,n.kt)("img",{alt:"the trigger button",src:r(97624).Z,width:"90",height:"67"})),(0,n.kt)("p",null,"The trigger panel opens on the left hand side:"),(0,n.kt)("p",null,(0,n.kt)("img",{alt:"the trigger panel",src:r(13984).Z,width:"3600",height:"2390"})),(0,n.kt)("p",null,"You are now able to select which trigger you want to test, for this contract a selector of two triggers is displayed (as per the contract):\nYou'll also see the ",(0,n.kt)("a",{parentName:"p",href:"/build/smart-contracts/playground/mock-form"},"mock form")," that is used to mock the functions that does side-effect."),(0,n.kt)("h3",{id:"test-trigger-interval"},"Test trigger 'interval'"),(0,n.kt)("p",null,"An interval trigger is a contract that triggers automatically at a specific interval. It does not require anything so it's pretty easy to test. Just click on the ",(0,n.kt)("inlineCode",{parentName:"p"},"trigger")," button."),(0,n.kt)("p",null,(0,n.kt)("img",{alt:"the resulting transaction is displayed in the console",src:r(36179).Z,width:"3600",height:"2390"})),(0,n.kt)("p",null,"What you see above is the JSON representation of the output transaction payload. Here we can control that my contract behaved as expected. The ",(0,n.kt)("inlineCode",{parentName:"p"},"content"),' is set to "Hello from interval" as expected.'),(0,n.kt)("p",null,"You probably saw the ",(0,n.kt)("inlineCode",{parentName:"p"},"trigger and update contract's transaction")," button. Let's click on it to see the difference:"),(0,n.kt)("p",null,(0,n.kt)("img",{alt:"the resulting transaction is displayed in the contract' transaction panel",src:r(31325).Z,width:"3600",height:"2390"})),(0,n.kt)("p",null,"The difference is not easy to spot, but the transaction of the contract (the right panel) has been updated. This is useful to test a sequence of triggers."),(0,n.kt)("h3",{id:"test-trigger-transaction"},"Test trigger 'transaction'"),(0,n.kt)("p",null,"This trigger is more complex to test because it requires you to mock the transaction that should trigger the contract. After selecting the ",(0,n.kt)("inlineCode",{parentName:"p"},"transaction")," from the trigger selector, a form appears:"),(0,n.kt)("p",null,(0,n.kt)("img",{alt:"the transaction form appears in the panel",src:r(25953).Z,width:"3600",height:"2390"})),(0,n.kt)("p",null,"This form is composed of two forms:"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"the ",(0,n.kt)("a",{parentName:"li",href:"/build/smart-contracts/playground/transaction-form"},"transaction form")),(0,n.kt)("li",{parentName:"ol"},"the ",(0,n.kt)("a",{parentName:"li",href:"/build/smart-contracts/playground/mock-form"},"mock form"))),(0,n.kt)("p",null,"Which results in a very big form that are covered in the links above. For this contract, we'll just submit the form without changing anything."),(0,n.kt)("p",null,"I can now control that the output transaction payload is correct."),(0,n.kt)("h3",{id:"test-trigger-datetime"},"Test trigger 'datetime'"),(0,n.kt)("p",null,"Testing a 'datetime' trigger is similar to testing a trigger 'interval'."),(0,n.kt)("h3",{id:"test-trigger-oracle"},"Test trigger 'oracle'"),(0,n.kt)("p",null,"Testing an 'oracle' trigger is similar to testing a trigger 'transaction' (where the transaction is of type 'oracle')."),(0,n.kt)("admonition",{title:"That's it!",type:"success"},(0,n.kt)("p",{parentName:"admonition"},"You should now be able to build your own smart contracts and test them! The next step now is to ",(0,n.kt)("a",{parentName:"p",href:"/build/smart-contracts/playground/deploy"},"deploy them"),".")))}u.isMDXComponent=!0},58933:(t,e,r)=>{r.d(e,{Z:()=>a});const a=r.p+"assets/images/playground_build_step1-d174efd7243f621764cf7dc42672f055.png"},36179:(t,e,r)=>{r.d(e,{Z:()=>a});const a=r.p+"assets/images/playground_build_step2a-1b389fceb33d5b61491396bee90616f0.png"},25953:(t,e,r)=>{r.d(e,{Z:()=>a});const a=r.p+"assets/images/playground_build_step2b-0ec2d5f241bbb36f96d1f11409ba1438.png"},31325:(t,e,r)=>{r.d(e,{Z:()=>a});const a=r.p+"assets/images/playground_build_step2e-c1d5cb06bc75cc1e631aae66a1b3f715.png"},97624:(t,e,r)=>{r.d(e,{Z:()=>a});const a="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFoAAABDCAYAAAAccRJRAAADjklEQVR4Xu2aPWgTYRjHn065LiYuTafExUSH4lLbJdrB1qVWoR+Cn6BFEcRBRBDBSRB3P1FbwU+wH6C1i20HPxZrF62DrYvpYq6LiUsvk77PyZVrzNd7uTxX6P8gZMj7Pv+73/3zfFzSEN/e/odw1J1AA0DXnbEtANAynAFaiDNAA7QUASEd5GiAFiIgJANHA7QQASEZOBqghQgIycDRAC1EQEgGjgZoIQJCMnD0RgO9o6WFwuFNvl52NpejL/NffY3pNdi6cPTezk5qb2v1eg1l932cnaM309N1ia0TNHDQRihEFy+cpxXLoonXk2RZeZ3zL7nWMELUs6+bGg2Drl677kvMWoIEDjoei9Hxo4fpRzpNj58+r+Va/tt77Mgh2hKP06Mnzyi9tORrbN1gAK1LzON6gPYITnfbugW9e1eKOtRL53j7/gO9Uy/nQOpw0SuVoxl0285WmpqaoYXFRbLy/4rklcuX7HenwHExTSYS1NW1h2Y/zQF0KWeWA8173A4tBtqJyzemcD0cXYWjeYDJLJtkmstr7lGho50Po9Emam6K0uf5eaSOQldzauhIpchoNOyPuMUbGR1fTRPFvgWlQLvXcjoZ6O+1Wzs+rBVLDS0za26CTu73Y21gxZAdu7+n2x5UTNMkQw0WzdEo/crm6ObtOyWvrRrQ586eoUg4QhkV11LxoyouDy6vJiYDgx0Y6FODJ2yw94aGV9PDQF8vbUsm6MXomCqA34vCrgQ6mdhKB/v76NvCIo2MjdsxOK2cHjxJPzMmPRh+6IdBtWMEBroYMKelK2zT3FdVCXSpGJX2aZPT3BAY6CAczank/tAGc7STo7lQcXcRVjl1cyRM2VyWbty660uO5lSRz1urRXFD5mgmybB50OBCVc+ugwsuDz7u1k/zm1/z8sBSh3Pmuk/vdHItBhaXP3RAO8+ueXs1z5gB2iNop3Xj7eVaQCc8QHsA7Qwh7mRZabgBaA+gvVQjgAZoL76pbY9OMdRVgqNdxJxOggeXl+pX8Lzqef04Qqo3P6B+Becng9V0KH5olosReB/NJ4f/ddT7Nrvi85QYj8d8+7dSLveb0umlQKdBN7514WjB+xmYFEALoQdogBYiICQDRwO0EAEhGTgaoIUICMnA0QAtREBIBo4GaCECQjJwNEALERCSgaMBWoiAkAwcDdBCBIRk4GiAFiIgJANHA7QQASEZOFoI9F+dpylcDyuw1AAAAABJRU5ErkJggg=="},89566:(t,e,r)=>{r.d(e,{Z:()=>a});const a=r.p+"assets/images/playground_parse_error-ed4c0a0a7c8cb31134641160c5c416fd.png"},13984:(t,e,r)=>{r.d(e,{Z:()=>a});const a=r.p+"assets/images/playground_trigger_panel-8fdbf19ac3c721478edeccaa6aab9126.png"},8209:(t,e,r)=>{r(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9216],{3905:(t,e,r)=>{r.d(e,{Zo:()=>g,kt:()=>h});var a=r(67294);function n(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function o(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,a)}return r}function i(t){for(var e=1;e=0||(n[r]=t[r]);return n}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}var l=a.createContext({}),c=function(t){var e=a.useContext(l),r=e;return t&&(r="function"==typeof t?t(e):i(i({},e),t)),r},g=function(t){var e=c(t.components);return a.createElement(l.Provider,{value:e},t.children)},d="mdxType",u={inlineCode:"code",wrapper:function(t){var e=t.children;return a.createElement(a.Fragment,{},e)}},p=a.forwardRef((function(t,e){var r=t.components,n=t.mdxType,o=t.originalType,l=t.parentName,g=s(t,["components","mdxType","originalType","parentName"]),d=c(r),p=n,h=d["".concat(l,".").concat(p)]||d[p]||u[p]||o;return r?a.createElement(h,i(i({ref:e},g),{},{components:r})):a.createElement(h,i({ref:e},g))}));function h(t,e){var r=arguments,n=e&&e.mdxType;if("string"==typeof t||n){var o=r.length,i=new Array(o);i[0]=p;var s={};for(var l in e)hasOwnProperty.call(e,l)&&(s[l]=e[l]);s.originalType=t,s[d]="string"==typeof t?t:n,i[1]=s;for(var c=2;c{r.r(e),r.d(e,{assets:()=>l,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>s,toc:()=>c});var a=r(87462),n=(r(67294),r(3905));r(8209);const o={id:"build",title:"Smart Contracts Playground - Build",sidebar_label:"Build",sidebar_position:1},i=void 0,s={unversionedId:"build/smart-contracts/playground/build",id:"build/smart-contracts/playground/build",title:"Smart Contracts Playground - Build",description:"Let's create a small smart contracts that reacts to two different triggers. We'll then be able to test them separately.",source:"@site/docs/build/smart-contracts/playground/build.md",sourceDirName:"build/smart-contracts/playground",slug:"/build/smart-contracts/playground/build",permalink:"/build/smart-contracts/playground/build",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",sidebarPosition:1,frontMatter:{id:"build",title:"Smart Contracts Playground - Build",sidebar_label:"Build",sidebar_position:1},sidebar:"docs",previous:{title:"Playground",permalink:"/build/smart-contracts/playground/"},next:{title:"Deploy",permalink:"/build/smart-contracts/playground/deploy"}},l={},c=[{value:"I. Write the contract",id:"i-write-the-contract",level:2},{value:"II. Test the triggers",id:"ii-test-the-triggers",level:2},{value:"Test trigger 'interval'",id:"test-trigger-interval",level:3},{value:"Test trigger 'transaction'",id:"test-trigger-transaction",level:3},{value:"Test trigger 'datetime'",id:"test-trigger-datetime",level:3},{value:"Test trigger 'oracle'",id:"test-trigger-oracle",level:3}],g={toc:c},d="wrapper";function u(t){let{components:e,...o}=t;return(0,n.kt)(d,(0,a.Z)({},g,o,{components:e,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"Let's create a small smart contracts that reacts to two different triggers. We'll then be able to test them separately."),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-elixir"},'@version 1\n\nactions triggered_by: interval, at: "0 * * * *" do\n Contract.set_content "Hello from interval"\nend\n\ncondition triggered_by: transaction, as: []\nactions triggered_by: transaction do\n Contract.set_content "Hello from tx"\nend\n')),(0,n.kt)("h2",{id:"i-write-the-contract"},"I. Write the contract"),(0,n.kt)("p",null,"Write the code of the smart contract in the text area:\n",(0,n.kt)("img",{alt:"the contract is written in the textarea",src:r(58933).Z,width:"3600",height:"2390"})),(0,n.kt)("p",null,"As you write, you might see the console at the bottom reacting with different errors:"),(0,n.kt)("p",null,(0,n.kt)("img",{alt:"a parsing error visible in the console",src:r(89566).Z,width:"3600",height:"2390"})),(0,n.kt)("h2",{id:"ii-test-the-triggers"},"II. Test the triggers"),(0,n.kt)("p",null,"To test a smart contract, you need to test all its triggers. We are going to open the trigger panel by clicking on the trigger button:"),(0,n.kt)("p",null,(0,n.kt)("img",{alt:"the trigger button",src:r(97624).Z,width:"90",height:"67"})),(0,n.kt)("p",null,"The trigger panel opens on the left hand side:"),(0,n.kt)("p",null,(0,n.kt)("img",{alt:"the trigger panel",src:r(13984).Z,width:"3600",height:"2390"})),(0,n.kt)("p",null,"You are now able to select which trigger you want to test, for this contract a selector of two triggers is displayed (as per the contract):\nYou'll also see the ",(0,n.kt)("a",{parentName:"p",href:"/build/smart-contracts/playground/mock-form"},"mock form")," that is used to mock the functions that does side-effect."),(0,n.kt)("h3",{id:"test-trigger-interval"},"Test trigger 'interval'"),(0,n.kt)("p",null,"An interval trigger is a contract that triggers automatically at a specific interval. It does not require anything so it's pretty easy to test. Just click on the ",(0,n.kt)("inlineCode",{parentName:"p"},"trigger")," button."),(0,n.kt)("p",null,(0,n.kt)("img",{alt:"the resulting transaction is displayed in the console",src:r(36179).Z,width:"3600",height:"2390"})),(0,n.kt)("p",null,"What you see above is the JSON representation of the output transaction payload. Here we can control that my contract behaved as expected. The ",(0,n.kt)("inlineCode",{parentName:"p"},"content"),' is set to "Hello from interval" as expected.'),(0,n.kt)("p",null,"You probably saw the ",(0,n.kt)("inlineCode",{parentName:"p"},"trigger and update contract's transaction")," button. Let's click on it to see the difference:"),(0,n.kt)("p",null,(0,n.kt)("img",{alt:"the resulting transaction is displayed in the contract' transaction panel",src:r(31325).Z,width:"3600",height:"2390"})),(0,n.kt)("p",null,"The difference is not easy to spot, but the transaction of the contract (the right panel) has been updated. This is useful to test a sequence of triggers."),(0,n.kt)("h3",{id:"test-trigger-transaction"},"Test trigger 'transaction'"),(0,n.kt)("p",null,"This trigger is more complex to test because it requires you to mock the transaction that should trigger the contract. After selecting the ",(0,n.kt)("inlineCode",{parentName:"p"},"transaction")," from the trigger selector, a form appears:"),(0,n.kt)("p",null,(0,n.kt)("img",{alt:"the transaction form appears in the panel",src:r(25953).Z,width:"3600",height:"2390"})),(0,n.kt)("p",null,"This form is composed of two forms:"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"the ",(0,n.kt)("a",{parentName:"li",href:"/build/smart-contracts/playground/transaction-form"},"transaction form")),(0,n.kt)("li",{parentName:"ol"},"the ",(0,n.kt)("a",{parentName:"li",href:"/build/smart-contracts/playground/mock-form"},"mock form"))),(0,n.kt)("p",null,"Which results in a very big form that are covered in the links above. For this contract, we'll just submit the form without changing anything."),(0,n.kt)("p",null,"I can now control that the output transaction payload is correct."),(0,n.kt)("h3",{id:"test-trigger-datetime"},"Test trigger 'datetime'"),(0,n.kt)("p",null,"Testing a 'datetime' trigger is similar to testing a trigger 'interval'."),(0,n.kt)("h3",{id:"test-trigger-oracle"},"Test trigger 'oracle'"),(0,n.kt)("p",null,"Testing an 'oracle' trigger is similar to testing a trigger 'transaction' (where the transaction is of type 'oracle')."),(0,n.kt)("admonition",{title:"That's it!",type:"success"},(0,n.kt)("p",{parentName:"admonition"},"You should now be able to build your own smart contracts and test them! The next step now is to ",(0,n.kt)("a",{parentName:"p",href:"/build/smart-contracts/playground/deploy"},"deploy them"),".")))}u.isMDXComponent=!0},58933:(t,e,r)=>{r.d(e,{Z:()=>a});const a=r.p+"assets/images/playground_build_step1-d174efd7243f621764cf7dc42672f055.png"},36179:(t,e,r)=>{r.d(e,{Z:()=>a});const a=r.p+"assets/images/playground_build_step2a-1b389fceb33d5b61491396bee90616f0.png"},25953:(t,e,r)=>{r.d(e,{Z:()=>a});const a=r.p+"assets/images/playground_build_step2b-0ec2d5f241bbb36f96d1f11409ba1438.png"},31325:(t,e,r)=>{r.d(e,{Z:()=>a});const a=r.p+"assets/images/playground_build_step2e-c1d5cb06bc75cc1e631aae66a1b3f715.png"},97624:(t,e,r)=>{r.d(e,{Z:()=>a});const a="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFoAAABDCAYAAAAccRJRAAADjklEQVR4Xu2aPWgTYRjHn065LiYuTafExUSH4lLbJdrB1qVWoR+Cn6BFEcRBRBDBSRB3P1FbwU+wH6C1i20HPxZrF62DrYvpYq6LiUsvk77PyZVrzNd7uTxX6P8gZMj7Pv+73/3zfFzSEN/e/odw1J1AA0DXnbEtANAynAFaiDNAA7QUASEd5GiAFiIgJANHA7QQASEZOBqghQgIycDRAC1EQEgGjgZoIQJCMnD0RgO9o6WFwuFNvl52NpejL/NffY3pNdi6cPTezk5qb2v1eg1l932cnaM309N1ia0TNHDQRihEFy+cpxXLoonXk2RZeZ3zL7nWMELUs6+bGg2Drl677kvMWoIEDjoei9Hxo4fpRzpNj58+r+Va/tt77Mgh2hKP06Mnzyi9tORrbN1gAK1LzON6gPYITnfbugW9e1eKOtRL53j7/gO9Uy/nQOpw0SuVoxl0285WmpqaoYXFRbLy/4rklcuX7HenwHExTSYS1NW1h2Y/zQF0KWeWA8173A4tBtqJyzemcD0cXYWjeYDJLJtkmstr7lGho50Po9Emam6K0uf5eaSOQldzauhIpchoNOyPuMUbGR1fTRPFvgWlQLvXcjoZ6O+1Wzs+rBVLDS0za26CTu73Y21gxZAdu7+n2x5UTNMkQw0WzdEo/crm6ObtOyWvrRrQ586eoUg4QhkV11LxoyouDy6vJiYDgx0Y6FODJ2yw94aGV9PDQF8vbUsm6MXomCqA34vCrgQ6mdhKB/v76NvCIo2MjdsxOK2cHjxJPzMmPRh+6IdBtWMEBroYMKelK2zT3FdVCXSpGJX2aZPT3BAY6CAczank/tAGc7STo7lQcXcRVjl1cyRM2VyWbty660uO5lSRz1urRXFD5mgmybB50OBCVc+ugwsuDz7u1k/zm1/z8sBSh3Pmuk/vdHItBhaXP3RAO8+ueXs1z5gB2iNop3Xj7eVaQCc8QHsA7Qwh7mRZabgBaA+gvVQjgAZoL76pbY9OMdRVgqNdxJxOggeXl+pX8Lzqef04Qqo3P6B+Becng9V0KH5olosReB/NJ4f/ddT7Nrvi85QYj8d8+7dSLveb0umlQKdBN7514WjB+xmYFEALoQdogBYiICQDRwO0EAEhGTgaoIUICMnA0QAtREBIBo4GaCECQjJwNEALERCSgaMBWoiAkAwcDdBCBIRk4GiAFiIgJANHA7QQASEZOFoI9F+dpylcDyuw1AAAAABJRU5ErkJggg=="},89566:(t,e,r)=>{r.d(e,{Z:()=>a});const a=r.p+"assets/images/playground_parse_error-ed4c0a0a7c8cb31134641160c5c416fd.png"},13984:(t,e,r)=>{r.d(e,{Z:()=>a});const a=r.p+"assets/images/playground_trigger_panel-8fdbf19ac3c721478edeccaa6aab9126.png"},8209:(t,e,r)=>{r(67294)}}]); \ No newline at end of file diff --git a/assets/js/ceaeeb36.cbe995f0.js b/assets/js/ceaeeb36.c12b247a.js similarity index 97% rename from assets/js/ceaeeb36.cbe995f0.js rename to assets/js/ceaeeb36.c12b247a.js index cdbc365c9..6dd4a2471 100644 --- a/assets/js/ceaeeb36.cbe995f0.js +++ b/assets/js/ceaeeb36.c12b247a.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2323],{3905:(e,t,n)=>{n.d(t,{Zo:()=>s,kt:()=>f});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function c(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),p=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):c(c({},t),e)),n},s=function(e){var t=p(e.components);return r.createElement(l.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),u=p(n),m=a,f=u["".concat(l,".").concat(m)]||u[m]||d[m]||o;return n?r.createElement(f,c(c({ref:t},s),{},{components:n})):r.createElement(f,c({ref:t},s))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,c=new Array(o);c[0]=m;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[u]="string"==typeof e?e:a,c[1]=i;for(var p=2;p{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var r=n(87462),a=(n(67294),n(3905));n(8209);const o={id:"code-proposals-cd",title:"CD"},c=void 0,i={unversionedId:"build/core/governance/code-proposals-cd",id:"build/core/governance/code-proposals-cd",title:"CD",description:"The archethic-cd target produces an image capable of running archethic_node release.",source:"@site/docs/build/core/governance/cd.md",sourceDirName:"build/core/governance",slug:"/build/core/governance/code-proposals-cd",permalink:"/build/core/governance/code-proposals-cd",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"code-proposals-cd",title:"CD"},sidebar:"docs",previous:{title:"Election",permalink:"/build/core/election"},next:{title:"CI",permalink:"/build/core/governance/code-proposals-ci"}},l={},p=[],s={toc:p},u="wrapper";function d(e){let{components:t,...n}=e;return(0,a.kt)(u,(0,r.Z)({},s,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The ",(0,a.kt)("inlineCode",{parentName:"p"},"archethic-cd")," target produces an image capable of running ",(0,a.kt)("inlineCode",{parentName:"p"},"archethic_node")," release.\nThe objective of cd is to test the code proposal in a testnet environment which means spawning:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"5 nodes that run the new version"),(0,a.kt)("li",{parentName:"ul"},"2 validator containers"),(0,a.kt)("li",{parentName:"ul"},"1 prometheus container"),(0,a.kt)("li",{parentName:"ul"},"1 benchmark container")),(0,a.kt)("p",null,"the cd happens in multiple steps:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"first we start by copying the upgrade release and the logs we created in the CI part to a tmp folder"),(0,a.kt)("li",{parentName:"ul"},"next we create the subnet and we start all the containers responsible for the CD"),(0,a.kt)("li",{parentName:"ul"},"The validator container ensures that every node is up and do a benchmark before we apply the upgrade"),(0,a.kt)("li",{parentName:"ul"},"We apply the upgrade"),(0,a.kt)("li",{parentName:"ul"},"we start the second round of validation which is responsible for running benchmarks again, running the playbooks and gathering metrics from prometheus."),(0,a.kt)("li",{parentName:"ul"},"we wait for the final validation message and we clean all containers and images we created.")),(0,a.kt)("p",null,"nb: the cleaning phase will happen even in the case of failure."))}d.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2323],{3905:(e,t,n)=>{n.d(t,{Zo:()=>s,kt:()=>f});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function c(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),p=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):c(c({},t),e)),n},s=function(e){var t=p(e.components);return r.createElement(l.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),u=p(n),m=a,f=u["".concat(l,".").concat(m)]||u[m]||d[m]||o;return n?r.createElement(f,c(c({ref:t},s),{},{components:n})):r.createElement(f,c({ref:t},s))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,c=new Array(o);c[0]=m;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[u]="string"==typeof e?e:a,c[1]=i;for(var p=2;p{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var r=n(87462),a=(n(67294),n(3905));n(8209);const o={id:"code-proposals-cd",title:"CD"},c=void 0,i={unversionedId:"build/core/governance/code-proposals-cd",id:"build/core/governance/code-proposals-cd",title:"CD",description:"The archethic-cd target produces an image capable of running archethic_node release.",source:"@site/docs/build/core/governance/cd.md",sourceDirName:"build/core/governance",slug:"/build/core/governance/code-proposals-cd",permalink:"/build/core/governance/code-proposals-cd",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"code-proposals-cd",title:"CD"},sidebar:"docs",previous:{title:"Election",permalink:"/build/core/election"},next:{title:"CI",permalink:"/build/core/governance/code-proposals-ci"}},l={},p=[],s={toc:p},u="wrapper";function d(e){let{components:t,...n}=e;return(0,a.kt)(u,(0,r.Z)({},s,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The ",(0,a.kt)("inlineCode",{parentName:"p"},"archethic-cd")," target produces an image capable of running ",(0,a.kt)("inlineCode",{parentName:"p"},"archethic_node")," release.\nThe objective of cd is to test the code proposal in a testnet environment which means spawning:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"5 nodes that run the new version"),(0,a.kt)("li",{parentName:"ul"},"2 validator containers"),(0,a.kt)("li",{parentName:"ul"},"1 prometheus container"),(0,a.kt)("li",{parentName:"ul"},"1 benchmark container")),(0,a.kt)("p",null,"the cd happens in multiple steps:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"first we start by copying the upgrade release and the logs we created in the CI part to a tmp folder"),(0,a.kt)("li",{parentName:"ul"},"next we create the subnet and we start all the containers responsible for the CD"),(0,a.kt)("li",{parentName:"ul"},"The validator container ensures that every node is up and do a benchmark before we apply the upgrade"),(0,a.kt)("li",{parentName:"ul"},"We apply the upgrade"),(0,a.kt)("li",{parentName:"ul"},"we start the second round of validation which is responsible for running benchmarks again, running the playbooks and gathering metrics from prometheus."),(0,a.kt)("li",{parentName:"ul"},"we wait for the final validation message and we clean all containers and images we created.")),(0,a.kt)("p",null,"nb: the cleaning phase will happen even in the case of failure."))}d.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/cfbe1bc9.9a9ac6ae.js b/assets/js/cfbe1bc9.b80cd48b.js similarity index 98% rename from assets/js/cfbe1bc9.9a9ac6ae.js rename to assets/js/cfbe1bc9.b80cd48b.js index ea77285e9..fe1e2f15d 100644 --- a/assets/js/cfbe1bc9.9a9ac6ae.js +++ b/assets/js/cfbe1bc9.b80cd48b.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4859],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>f});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function c(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var o=a.createContext({}),s=function(e){var t=a.useContext(o),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},p=function(e){var t=s(e.components);return a.createElement(o.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,i=e.originalType,o=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=s(r),m=n,f=u["".concat(o,".").concat(m)]||u[m]||d[m]||i;return r?a.createElement(f,c(c({ref:t},p),{},{components:r})):a.createElement(f,c({ref:t},p))}));function f(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=r.length,c=new Array(i);c[0]=m;var l={};for(var o in t)hasOwnProperty.call(t,o)&&(l[o]=t[o]);l.originalType=e,l[u]="string"==typeof e?e:n,c[1]=l;for(var s=2;s{r.r(t),r.d(t,{Badge:()=>d,Bullet:()=>p,Details:()=>f,SpecifiedBy:()=>u,assets:()=>s,contentTitle:()=>l,default:()=>y,frontMatter:()=>c,metadata:()=>o,toc:()=>m});var a=r(87462),n=r(67294),i=r(3905);r(8209);const c={id:"recipient-args",title:"RecipientArgs",hide_table_of_contents:!1},l=void 0,o={unversionedId:"build/api/schema/scalars/recipient-args",id:"build/api/schema/scalars/recipient-args",title:"RecipientArgs",description:"[Recipient Args] represents the args of a named action call",source:"@site/docs/build/api/schema/scalars/recipient-args.mdx",sourceDirName:"build/api/schema/scalars",slug:"/build/api/schema/scalars/recipient-args",permalink:"/build/api/schema/scalars/recipient-args",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"recipient-args",title:"RecipientArgs",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"PublicKey",permalink:"/build/api/schema/scalars/public-key"},next:{title:"Sha256Hash",permalink:"/build/api/schema/scalars/sha-256-hash"}},s={},p=()=>(0,i.kt)(n.Fragment,null,(0,i.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),u=e=>(0,i.kt)(n.Fragment,null,"Specification",(0,i.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),d=e=>(0,i.kt)(n.Fragment,null,(0,i.kt)("span",{className:e.class},e.text)),m=[{value:"Member of",id:"member-of",level:3}],f=e=>{let{dataOpen:t,dataClose:r,children:c,startOpen:l=!1}=e;const[o,s]=(0,n.useState)(l);return(0,i.kt)("details",(0,a.Z)({},o?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,i.kt)("summary",{onClick:e=>{e.preventDefault(),s((e=>!e))},style:{listStyle:"none"}},o?t:r),o&&c)},b={Bullet:p,SpecifiedBy:u,Badge:d,toc:m,Details:f},g="wrapper";function y(e){let{components:t,...r}=e;return(0,i.kt)(g,(0,a.Z)({},b,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"[Recipient Args]"," represents the args of a named action call"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-graphql"},"scalar RecipientArgs\n")),(0,i.kt)("h3",{id:"member-of"},"Member of"),(0,i.kt)("p",null,(0,i.kt)("a",{parentName:"p",href:"/build/api/schema/objects/recipient"},(0,i.kt)("inlineCode",{parentName:"a"},"Recipient"))," ",(0,i.kt)(d,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}y.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4859],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>f});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function c(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var o=a.createContext({}),s=function(e){var t=a.useContext(o),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},p=function(e){var t=s(e.components);return a.createElement(o.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,i=e.originalType,o=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=s(r),m=n,f=u["".concat(o,".").concat(m)]||u[m]||d[m]||i;return r?a.createElement(f,c(c({ref:t},p),{},{components:r})):a.createElement(f,c({ref:t},p))}));function f(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=r.length,c=new Array(i);c[0]=m;var l={};for(var o in t)hasOwnProperty.call(t,o)&&(l[o]=t[o]);l.originalType=e,l[u]="string"==typeof e?e:n,c[1]=l;for(var s=2;s{r.r(t),r.d(t,{Badge:()=>d,Bullet:()=>p,Details:()=>f,SpecifiedBy:()=>u,assets:()=>s,contentTitle:()=>l,default:()=>y,frontMatter:()=>c,metadata:()=>o,toc:()=>m});var a=r(87462),n=r(67294),i=r(3905);r(8209);const c={id:"recipient-args",title:"RecipientArgs",hide_table_of_contents:!1},l=void 0,o={unversionedId:"build/api/schema/scalars/recipient-args",id:"build/api/schema/scalars/recipient-args",title:"RecipientArgs",description:"[Recipient Args] represents the args of a named action call",source:"@site/docs/build/api/schema/scalars/recipient-args.mdx",sourceDirName:"build/api/schema/scalars",slug:"/build/api/schema/scalars/recipient-args",permalink:"/build/api/schema/scalars/recipient-args",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"recipient-args",title:"RecipientArgs",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"PublicKey",permalink:"/build/api/schema/scalars/public-key"},next:{title:"Sha256Hash",permalink:"/build/api/schema/scalars/sha-256-hash"}},s={},p=()=>(0,i.kt)(n.Fragment,null,(0,i.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),u=e=>(0,i.kt)(n.Fragment,null,"Specification",(0,i.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),d=e=>(0,i.kt)(n.Fragment,null,(0,i.kt)("span",{className:e.class},e.text)),m=[{value:"Member of",id:"member-of",level:3}],f=e=>{let{dataOpen:t,dataClose:r,children:c,startOpen:l=!1}=e;const[o,s]=(0,n.useState)(l);return(0,i.kt)("details",(0,a.Z)({},o?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,i.kt)("summary",{onClick:e=>{e.preventDefault(),s((e=>!e))},style:{listStyle:"none"}},o?t:r),o&&c)},b={Bullet:p,SpecifiedBy:u,Badge:d,toc:m,Details:f},g="wrapper";function y(e){let{components:t,...r}=e;return(0,i.kt)(g,(0,a.Z)({},b,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"[Recipient Args]"," represents the args of a named action call"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-graphql"},"scalar RecipientArgs\n")),(0,i.kt)("h3",{id:"member-of"},"Member of"),(0,i.kt)("p",null,(0,i.kt)("a",{parentName:"p",href:"/build/api/schema/objects/recipient"},(0,i.kt)("inlineCode",{parentName:"a"},"Recipient"))," ",(0,i.kt)(d,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}y.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file diff --git a/assets/js/d0a652bb.efd46029.js b/assets/js/d0a652bb.2112bdb5.js similarity index 98% rename from assets/js/d0a652bb.efd46029.js rename to assets/js/d0a652bb.2112bdb5.js index 6236584c2..40b0a95da 100644 --- a/assets/js/d0a652bb.efd46029.js +++ b/assets/js/d0a652bb.2112bdb5.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5944],{3905:(e,t,n)=>{n.d(t,{Zo:()=>h,kt:()=>m});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),c=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},h=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,l=e.parentName,h=s(e,["components","mdxType","originalType","parentName"]),p=c(n),u=r,m=p["".concat(l,".").concat(u)]||p[u]||d[u]||o;return n?a.createElement(m,i(i({ref:t},h),{},{components:n})):a.createElement(m,i({ref:t},h))}));function m(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=u;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[p]="string"==typeof e?e:r,i[1]=s;for(var c=2;c{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>s,toc:()=>c});var a=n(87462),r=(n(67294),n(3905));n(8209);const o={id:"explorer",title:"Beacon Explorer"},i=void 0,s={unversionedId:"learn/sharding/beacon-chain/explorer",id:"learn/sharding/beacon-chain/explorer",title:"Beacon Explorer",description:"Archethic Blockchain leverages Sharding to outperform the exiting blockchains using shards called: subsets and BeaconChain Explorer displays the entire transactions across subsets.",source:"@site/docs/learn/sharding/beacon-chain/explorer.md",sourceDirName:"learn/sharding/beacon-chain",slug:"/learn/sharding/beacon-chain/explorer",permalink:"/learn/sharding/beacon-chain/explorer",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"explorer",title:"Beacon Explorer"},sidebar:"docs",previous:{title:"Beacon Chain",permalink:"/learn/sharding/beacon-chain/"},next:{title:"Replication attestation",permalink:"/learn/sharding/replication-attestation"}},l={},c=[{value:"Concepts",id:"concepts",level:2},{value:"Slot",id:"slot",level:3},{value:"Epoch",id:"epoch",level:3},{value:"Subset",id:"subset",level:3},{value:"Process to get transaction notifications",id:"process-to-get-transaction-notifications",level:2},{value:"How to get transactions in realtime",id:"how-to-get-transactions-in-realtime",level:2}],h={toc:c},p="wrapper";function d(e){let{components:t,...n}=e;return(0,r.kt)(p,(0,a.Z)({},h,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"Archethic")," Blockchain leverages ",(0,r.kt)("inlineCode",{parentName:"p"},"Sharding")," to outperform the exiting blockchains using shards called: ",(0,r.kt)("inlineCode",{parentName:"p"},"subsets")," and BeaconChain Explorer displays the entire transactions across subsets.\nSo, users can overcome the overhead of searching in each shard."),(0,r.kt)("h2",{id:"concepts"},"Concepts"),(0,r.kt)("p",null,"To better understand about Beacon Chain Explorer one need to first have overview the some basic concepts below: "),(0,r.kt)("h3",{id:"slot"},"Slot"),(0,r.kt)("p",null,"It is the time interval for a slot. We can explicitly give any time interval based on our testnet/mainnet environmnent."),(0,r.kt)("p",null,"A slot is responsible for transaction being added to the Beacon Chain and shards. ",(0,r.kt)("a",{parentName:"p",href:"/learn/sharding/beacon-chain#slot"},"See Slot")),(0,r.kt)("h3",{id:"epoch"},"Epoch"),(0,r.kt)("p",null,"It is an time interval within Archethic network for the Beacon chain subsets.\nOne epoch may have many slots based on the slot timer interval.\nAt each epoch a new transaction is emitted to have a summary of the entire epoch."),(0,r.kt)("p",null,"Epoch interval may differ between mainnet, testnet or development. For instance mainnet epoch interval is daily while for testnet it is currently every minute, to ease integration and simulation of the network."),(0,r.kt)("p",null,"So in this time interval beacon transactions are sealing the transaction in the current beacon summary transaction and replicates the transactions to other nodes."),(0,r.kt)("h3",{id:"subset"},"Subset"),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"Archethic")," Blockchain have 256 subsets, from 00 to FF ","[0-255]"," (two nibbles) as the byte capacity and the first byte of the transaction."),(0,r.kt)("h2",{id:"process-to-get-transaction-notifications"},"Process to get transaction notifications"),(0,r.kt)("p",null,"Beacon Chain will store the transactions in slots and at the beacon summary time all those transactions are summarized and will be replicated among the beacon storage nodes which are elected as storage nodes."),(0,r.kt)("p",null,"The day 1 will be the next beacon summary date from the first node enrollment date, which means, if the first node joins on ",(0,r.kt)("inlineCode",{parentName:"p"},"02/11/2021 10:00:00"),", the beacon chain date to pull will be ",(0,r.kt)("inlineCode",{parentName:"p"},"03/11/2021 00:00:00")),(0,r.kt)("p",null,"The explorer then exposes a pagination based on date, since we can easily reproduce the addresses through a deterministic\naddress generation based on date."),(0,r.kt)("p",null,"So from the ",(0,r.kt)("inlineCode",{parentName:"p"},"day 1")," until now, we can offer pagination over the beacon summaries."),(0,r.kt)("p",null,"Because we are able to have a reproducible storage node election algorithm we can fetch data for a given date\nfor the right nodes."),(0,r.kt)("h2",{id:"how-to-get-transactions-in-realtime"},"How to get transactions in realtime"),(0,r.kt)("p",null,"When a client is displaying the beacon chain explorer, a request is sent to the BeaconChain subset in charge of the current slot, to subscribe notifications about transactions replications."),(0,r.kt)("p",null,"On the BeaconChain, once a transaction is replicated a subset will enlist it for the next slot to be persisted."),(0,r.kt)("p",null,"Then we have the capability to notify subscribed clients (aka explorer nodes) the transaction completion."),(0,r.kt)("p",null,"But because Archethic is using a rotating sharding implementation, the nodes involved for a given slot will change over the time, therefore behind the scenes the explorer will subscribe for each new slot to have the latest transactions in a soft real time fashion."),(0,r.kt)("mermaid",{value:"graph TD\n A[Explorer] --\x3e|Subscribe to updates| B{BeaconChains}\n B --\x3eD[Subset 0]\n B --\x3eE[Subset 1]\n B --\x3eF[Subset 2]\n F --\x3e|Notify new transaction|A\n \n X[Transaction Validator] --\x3e|Attest transaction|F"}))}d.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5944],{3905:(e,t,n)=>{n.d(t,{Zo:()=>h,kt:()=>m});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),c=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},h=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,l=e.parentName,h=s(e,["components","mdxType","originalType","parentName"]),p=c(n),u=r,m=p["".concat(l,".").concat(u)]||p[u]||d[u]||o;return n?a.createElement(m,i(i({ref:t},h),{},{components:n})):a.createElement(m,i({ref:t},h))}));function m(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=u;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[p]="string"==typeof e?e:r,i[1]=s;for(var c=2;c{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>s,toc:()=>c});var a=n(87462),r=(n(67294),n(3905));n(8209);const o={id:"explorer",title:"Beacon Explorer"},i=void 0,s={unversionedId:"learn/sharding/beacon-chain/explorer",id:"learn/sharding/beacon-chain/explorer",title:"Beacon Explorer",description:"Archethic Blockchain leverages Sharding to outperform the exiting blockchains using shards called: subsets and BeaconChain Explorer displays the entire transactions across subsets.",source:"@site/docs/learn/sharding/beacon-chain/explorer.md",sourceDirName:"learn/sharding/beacon-chain",slug:"/learn/sharding/beacon-chain/explorer",permalink:"/learn/sharding/beacon-chain/explorer",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"explorer",title:"Beacon Explorer"},sidebar:"docs",previous:{title:"Beacon Chain",permalink:"/learn/sharding/beacon-chain/"},next:{title:"Replication attestation",permalink:"/learn/sharding/replication-attestation"}},l={},c=[{value:"Concepts",id:"concepts",level:2},{value:"Slot",id:"slot",level:3},{value:"Epoch",id:"epoch",level:3},{value:"Subset",id:"subset",level:3},{value:"Process to get transaction notifications",id:"process-to-get-transaction-notifications",level:2},{value:"How to get transactions in realtime",id:"how-to-get-transactions-in-realtime",level:2}],h={toc:c},p="wrapper";function d(e){let{components:t,...n}=e;return(0,r.kt)(p,(0,a.Z)({},h,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"Archethic")," Blockchain leverages ",(0,r.kt)("inlineCode",{parentName:"p"},"Sharding")," to outperform the exiting blockchains using shards called: ",(0,r.kt)("inlineCode",{parentName:"p"},"subsets")," and BeaconChain Explorer displays the entire transactions across subsets.\nSo, users can overcome the overhead of searching in each shard."),(0,r.kt)("h2",{id:"concepts"},"Concepts"),(0,r.kt)("p",null,"To better understand about Beacon Chain Explorer one need to first have overview the some basic concepts below: "),(0,r.kt)("h3",{id:"slot"},"Slot"),(0,r.kt)("p",null,"It is the time interval for a slot. We can explicitly give any time interval based on our testnet/mainnet environmnent."),(0,r.kt)("p",null,"A slot is responsible for transaction being added to the Beacon Chain and shards. ",(0,r.kt)("a",{parentName:"p",href:"/learn/sharding/beacon-chain#slot"},"See Slot")),(0,r.kt)("h3",{id:"epoch"},"Epoch"),(0,r.kt)("p",null,"It is an time interval within Archethic network for the Beacon chain subsets.\nOne epoch may have many slots based on the slot timer interval.\nAt each epoch a new transaction is emitted to have a summary of the entire epoch."),(0,r.kt)("p",null,"Epoch interval may differ between mainnet, testnet or development. For instance mainnet epoch interval is daily while for testnet it is currently every minute, to ease integration and simulation of the network."),(0,r.kt)("p",null,"So in this time interval beacon transactions are sealing the transaction in the current beacon summary transaction and replicates the transactions to other nodes."),(0,r.kt)("h3",{id:"subset"},"Subset"),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"Archethic")," Blockchain have 256 subsets, from 00 to FF ","[0-255]"," (two nibbles) as the byte capacity and the first byte of the transaction."),(0,r.kt)("h2",{id:"process-to-get-transaction-notifications"},"Process to get transaction notifications"),(0,r.kt)("p",null,"Beacon Chain will store the transactions in slots and at the beacon summary time all those transactions are summarized and will be replicated among the beacon storage nodes which are elected as storage nodes."),(0,r.kt)("p",null,"The day 1 will be the next beacon summary date from the first node enrollment date, which means, if the first node joins on ",(0,r.kt)("inlineCode",{parentName:"p"},"02/11/2021 10:00:00"),", the beacon chain date to pull will be ",(0,r.kt)("inlineCode",{parentName:"p"},"03/11/2021 00:00:00")),(0,r.kt)("p",null,"The explorer then exposes a pagination based on date, since we can easily reproduce the addresses through a deterministic\naddress generation based on date."),(0,r.kt)("p",null,"So from the ",(0,r.kt)("inlineCode",{parentName:"p"},"day 1")," until now, we can offer pagination over the beacon summaries."),(0,r.kt)("p",null,"Because we are able to have a reproducible storage node election algorithm we can fetch data for a given date\nfor the right nodes."),(0,r.kt)("h2",{id:"how-to-get-transactions-in-realtime"},"How to get transactions in realtime"),(0,r.kt)("p",null,"When a client is displaying the beacon chain explorer, a request is sent to the BeaconChain subset in charge of the current slot, to subscribe notifications about transactions replications."),(0,r.kt)("p",null,"On the BeaconChain, once a transaction is replicated a subset will enlist it for the next slot to be persisted."),(0,r.kt)("p",null,"Then we have the capability to notify subscribed clients (aka explorer nodes) the transaction completion."),(0,r.kt)("p",null,"But because Archethic is using a rotating sharding implementation, the nodes involved for a given slot will change over the time, therefore behind the scenes the explorer will subscribe for each new slot to have the latest transactions in a soft real time fashion."),(0,r.kt)("mermaid",{value:"graph TD\n A[Explorer] --\x3e|Subscribe to updates| B{BeaconChains}\n B --\x3eD[Subset 0]\n B --\x3eE[Subset 1]\n B --\x3eF[Subset 2]\n F --\x3e|Notify new transaction|A\n \n X[Transaction Validator] --\x3e|Attest transaction|F"}))}d.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/d2674f84.c963f5f1.js b/assets/js/d2674f84.ac4f761f.js similarity index 98% rename from assets/js/d2674f84.c963f5f1.js rename to assets/js/d2674f84.ac4f761f.js index c3ae6ce07..bfaf4d2f1 100644 --- a/assets/js/d2674f84.c963f5f1.js +++ b/assets/js/d2674f84.ac4f761f.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[669],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>h});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var l=n.createContext({}),c=function(e){var t=n.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},d=function(e){var t=c(e.components);return n.createElement(l.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),p=c(a),u=r,h=p["".concat(l,".").concat(u)]||p[u]||m[u]||i;return a?n.createElement(h,o(o({ref:t},d),{},{components:a})):n.createElement(h,o({ref:t},d))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,o=new Array(i);o[0]=u;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[p]="string"==typeof e?e:r,o[1]=s;for(var c=2;c{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>s,toc:()=>c});var n=a(87462),r=(a(67294),a(3905));a(8209);const i={id:"actions",title:"Smart Contracts - Actions block",sidebar_label:"Actions",sidebar_position:3},o=void 0,s={unversionedId:"build/smart-contracts/language/actions",id:"build/smart-contracts/language/actions",title:"Smart Contracts - Actions block",description:"The actions block is the code executed when the associated trigger is triggered.",source:"@site/docs/build/smart-contracts/language/actions.md",sourceDirName:"build/smart-contracts/language",slug:"/build/smart-contracts/language/actions",permalink:"/build/smart-contracts/language/actions",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",sidebarPosition:3,frontMatter:{id:"actions",title:"Smart Contracts - Actions block",sidebar_label:"Actions",sidebar_position:3},sidebar:"docs",previous:{title:"Condition",permalink:"/build/smart-contracts/language/condition"},next:{title:"Library",permalink:"/build/smart-contracts/language/library/"}},l={},c=[{value:"Global variables",id:"global-variables",level:2},{value:"contract",id:"contract",level:4},{value:"transaction",id:"transaction",level:4},{value:"Named action arguments",id:"named-action-arguments",level:2},{value:"Generating the next transaction",id:"generating-the-next-transaction",level:2},{value:"Appendix 1: The transaction map",id:"appendix-1-the-transaction-map",level:2}],d={toc:c},p="wrapper";function m(e){let{components:t,...a}=e;return(0,r.kt)(p,(0,n.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"The ",(0,r.kt)("inlineCode",{parentName:"p"},"actions")," block is the code executed when the associated ",(0,r.kt)("a",{parentName:"p",href:"/build/smart-contracts/language/triggers"},"trigger")," is triggered."),(0,r.kt)("h2",{id:"global-variables"},"Global variables"),(0,r.kt)("p",null,"Depending on the trigger, there are different global variables accessible."),(0,r.kt)("h4",{id:"contract"},"contract"),(0,r.kt)("p",null,"The ",(0,r.kt)("inlineCode",{parentName:"p"},"contract")," variable is a map of the current contract's transaction. See ",(0,r.kt)("a",{parentName:"p",href:"#appendix-1-the-transaction-map"},"Appendix 1"),"."),(0,r.kt)("h4",{id:"transaction"},"transaction"),(0,r.kt)("p",null,"The ",(0,r.kt)("inlineCode",{parentName:"p"},"transaction")," variable is a map of the transaction that triggered the ",(0,r.kt)("inlineCode",{parentName:"p"},"actions")," block. See ",(0,r.kt)("a",{parentName:"p",href:"#appendix-1-the-transaction-map"},"Appendix 1"),". ",(0,r.kt)("strong",{parentName:"p"},"It is only available when the trigger is a transaction or an oracle"),"."),(0,r.kt)("h2",{id:"named-action-arguments"},"Named action arguments"),(0,r.kt)("p",null,"In the case of named action trigger, arguments sent by the callers are provided to the action block as variables.\nBe careful not to rebind them inadvertedly. Do not use any of the ",(0,r.kt)("a",{parentName:"p",href:"/build/smart-contracts/language/#reserved-keywords"},"reserved keywords")," as parameter."),(0,r.kt)("admonition",{title:"Argument VS Parameter",type:"note"},(0,r.kt)("p",{parentName:"admonition"},"A parameter is a variable in a function definition. It is a placeholder and hence does not have a concrete value. An argument is a value passed during function invocation. In a way, arguments fill in the place the parameters have held for them.\nSource: ",(0,r.kt)("a",{parentName:"p",href:"https://www.educative.io/answers/parameter-vs-argument"},"https://www.educative.io/answers/parameter-vs-argument"))),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},'actions trigger_by: transaction, on: vote(firstname, lastname) do\n full_name = String.to_lowercase("#{firstname} #{lastname}")\n ...\nend\n')),(0,r.kt)("h2",{id:"generating-the-next-transaction"},"Generating the next transaction"),(0,r.kt)("p",null,"The main goal of the action block is to generate a new transaction in the smart contract chain.\nTo do so, you can use the ",(0,r.kt)("a",{parentName:"p",href:"/build/smart-contracts/language/library#contract"},"Contract")," module that allows to set the transaction field value."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},'# Set uco ATH in content\nactions triggered_by: oracle do\n current_ath = State.get("ath", -1)\n new_price = Json.path_extract(transaction.content, "$.uco.usd")\n\n if new_price > current_ath do\n State.set("ath", new_price)\n end\nend\n')),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"Note that there are 3 fields that are preset before executing the action code."),(0,r.kt)("ul",{parentName:"admonition"},(0,r.kt)("li",{parentName:"ul"},'type: set to "contract" by default'),(0,r.kt)("li",{parentName:"ul"},"code: set with the previous contract code"),(0,r.kt)("li",{parentName:"ul"},"ownerships: set with the previous contract ownerships")),(0,r.kt)("p",{parentName:"admonition"},"So you don't need to set the type, the code and the ownerships each time you generate a new transaction.")),(0,r.kt)("h2",{id:"appendix-1-the-transaction-map"},"Appendix 1: The transaction map"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"address")," is the transaction's address."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"type")," is the transaction's type."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"content")," is the transaction's content (it's a string that can contain anything, for example a smart contract state)"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"code")," is the transaction's code"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"timestamp")," is the transaction's validation timestamp"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"uco_movements")," is a map of UCO transfers grouped by ",(0,r.kt)("em",{parentName:"li"},"resolved")," address of the transaction.")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},'["00001ab...": 1, "00001bc...": 2]\n')),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"token_movements")," is a map of list of token transfers grouped by ",(0,r.kt)("em",{parentName:"li"},"resolved")," address of the transaction")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},'["00001ab...":\n [\n [amount: 1, token_address: "0000ab12..." , token_id: 1],\n [amount: 1, token_address: "0000ab12..." , token_id: 4],\n ]\n]\n')),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"uco_transfers")," is a map of UCO transfers grouped by address of the transaction.")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},'["00001ab...": 1, "00001bc...": 2]\n')),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"token_transfers")," is a map of list of token transfers grouped by address of the transaction")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},'["00001ab...":\n [\n [amount: 1, token_address: "0000ab12..." , token_id: 1],\n [amount: 1, token_address: "0000ab12..." , token_id: 4],\n ]\n]\n')),(0,r.kt)("admonition",{title:"Difference between transfers and movements",type:"info"},(0,r.kt)("p",{parentName:"admonition"},'The transfers and movements are almost the same thing. The difference is in the addresses.\nThe addresses of the transfers are "raw" whereas the addresses of the movements are "resolved".'),(0,r.kt)("ul",{parentName:"admonition"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"raw address"),": address that was specified on a transfer (usually the genesis but not mandatory)"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"resolved address"),": address of the latest transaction of the chain (the chain that contains ",(0,r.kt)("inlineCode",{parentName:"li"},"raw address"),")")),(0,r.kt)("p",{parentName:"admonition"},"Here's an example to understand the difference:"),(0,r.kt)("p",{parentName:"admonition"},"This is a UCO transfer to MyAmazingContract. The transfer is usually done on the genesis address (here: ",(0,r.kt)("inlineCode",{parentName:"p"},"0x00abc"),"). But the transfer is actually creating an UTXO on the latest transaction of the chain (here: ",(0,r.kt)("inlineCode",{parentName:"p"},"0x00def"),")."),(0,r.kt)("mermaid",{parentName:"admonition",value:"flowchart LR\n subgraph MyAmazingContract\n Tx1((genesis 0x00abc)) --\x3e Tx2[transaction 0x00bcd]\n Tx2 --\x3e Tx3[transaction 0x00cde]\n Tx3 --\x3e Tx4[transaction 0x00def]\n end\n Transfer-.->|raw|Tx1\n Transfer-.->|resolved|Tx4"}),(0,r.kt)("p",{parentName:"admonition"},"Thus ",(0,r.kt)("inlineCode",{parentName:"p"},"contract.uco_transfers == [0x00abc: 1]")," and ",(0,r.kt)("inlineCode",{parentName:"p"},"contract.uco_movements == [0x00def: 1]"),"."),(0,r.kt)("p",{parentName:"admonition"},(0,r.kt)("strong",{parentName:"p"},"In most cases, you'll want to use ",(0,r.kt)("inlineCode",{parentName:"strong"},"movements")," instead of ",(0,r.kt)("inlineCode",{parentName:"strong"},"transfers"),"."))))}m.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[669],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>h});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var l=n.createContext({}),c=function(e){var t=n.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},d=function(e){var t=c(e.components);return n.createElement(l.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),p=c(a),u=r,h=p["".concat(l,".").concat(u)]||p[u]||m[u]||i;return a?n.createElement(h,o(o({ref:t},d),{},{components:a})):n.createElement(h,o({ref:t},d))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,o=new Array(i);o[0]=u;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[p]="string"==typeof e?e:r,o[1]=s;for(var c=2;c{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>s,toc:()=>c});var n=a(87462),r=(a(67294),a(3905));a(8209);const i={id:"actions",title:"Smart Contracts - Actions block",sidebar_label:"Actions",sidebar_position:3},o=void 0,s={unversionedId:"build/smart-contracts/language/actions",id:"build/smart-contracts/language/actions",title:"Smart Contracts - Actions block",description:"The actions block is the code executed when the associated trigger is triggered.",source:"@site/docs/build/smart-contracts/language/actions.md",sourceDirName:"build/smart-contracts/language",slug:"/build/smart-contracts/language/actions",permalink:"/build/smart-contracts/language/actions",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",sidebarPosition:3,frontMatter:{id:"actions",title:"Smart Contracts - Actions block",sidebar_label:"Actions",sidebar_position:3},sidebar:"docs",previous:{title:"Condition",permalink:"/build/smart-contracts/language/condition"},next:{title:"Library",permalink:"/build/smart-contracts/language/library/"}},l={},c=[{value:"Global variables",id:"global-variables",level:2},{value:"contract",id:"contract",level:4},{value:"transaction",id:"transaction",level:4},{value:"Named action arguments",id:"named-action-arguments",level:2},{value:"Generating the next transaction",id:"generating-the-next-transaction",level:2},{value:"Appendix 1: The transaction map",id:"appendix-1-the-transaction-map",level:2}],d={toc:c},p="wrapper";function m(e){let{components:t,...a}=e;return(0,r.kt)(p,(0,n.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"The ",(0,r.kt)("inlineCode",{parentName:"p"},"actions")," block is the code executed when the associated ",(0,r.kt)("a",{parentName:"p",href:"/build/smart-contracts/language/triggers"},"trigger")," is triggered."),(0,r.kt)("h2",{id:"global-variables"},"Global variables"),(0,r.kt)("p",null,"Depending on the trigger, there are different global variables accessible."),(0,r.kt)("h4",{id:"contract"},"contract"),(0,r.kt)("p",null,"The ",(0,r.kt)("inlineCode",{parentName:"p"},"contract")," variable is a map of the current contract's transaction. See ",(0,r.kt)("a",{parentName:"p",href:"#appendix-1-the-transaction-map"},"Appendix 1"),"."),(0,r.kt)("h4",{id:"transaction"},"transaction"),(0,r.kt)("p",null,"The ",(0,r.kt)("inlineCode",{parentName:"p"},"transaction")," variable is a map of the transaction that triggered the ",(0,r.kt)("inlineCode",{parentName:"p"},"actions")," block. See ",(0,r.kt)("a",{parentName:"p",href:"#appendix-1-the-transaction-map"},"Appendix 1"),". ",(0,r.kt)("strong",{parentName:"p"},"It is only available when the trigger is a transaction or an oracle"),"."),(0,r.kt)("h2",{id:"named-action-arguments"},"Named action arguments"),(0,r.kt)("p",null,"In the case of named action trigger, arguments sent by the callers are provided to the action block as variables.\nBe careful not to rebind them inadvertedly. Do not use any of the ",(0,r.kt)("a",{parentName:"p",href:"/build/smart-contracts/language/#reserved-keywords"},"reserved keywords")," as parameter."),(0,r.kt)("admonition",{title:"Argument VS Parameter",type:"note"},(0,r.kt)("p",{parentName:"admonition"},"A parameter is a variable in a function definition. It is a placeholder and hence does not have a concrete value. An argument is a value passed during function invocation. In a way, arguments fill in the place the parameters have held for them.\nSource: ",(0,r.kt)("a",{parentName:"p",href:"https://www.educative.io/answers/parameter-vs-argument"},"https://www.educative.io/answers/parameter-vs-argument"))),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},'actions trigger_by: transaction, on: vote(firstname, lastname) do\n full_name = String.to_lowercase("#{firstname} #{lastname}")\n ...\nend\n')),(0,r.kt)("h2",{id:"generating-the-next-transaction"},"Generating the next transaction"),(0,r.kt)("p",null,"The main goal of the action block is to generate a new transaction in the smart contract chain.\nTo do so, you can use the ",(0,r.kt)("a",{parentName:"p",href:"/build/smart-contracts/language/library#contract"},"Contract")," module that allows to set the transaction field value."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},'# Set uco ATH in content\nactions triggered_by: oracle do\n current_ath = State.get("ath", -1)\n new_price = Json.path_extract(transaction.content, "$.uco.usd")\n\n if new_price > current_ath do\n State.set("ath", new_price)\n end\nend\n')),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"Note that there are 3 fields that are preset before executing the action code."),(0,r.kt)("ul",{parentName:"admonition"},(0,r.kt)("li",{parentName:"ul"},'type: set to "contract" by default'),(0,r.kt)("li",{parentName:"ul"},"code: set with the previous contract code"),(0,r.kt)("li",{parentName:"ul"},"ownerships: set with the previous contract ownerships")),(0,r.kt)("p",{parentName:"admonition"},"So you don't need to set the type, the code and the ownerships each time you generate a new transaction.")),(0,r.kt)("h2",{id:"appendix-1-the-transaction-map"},"Appendix 1: The transaction map"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"address")," is the transaction's address."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"type")," is the transaction's type."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"content")," is the transaction's content (it's a string that can contain anything, for example a smart contract state)"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"code")," is the transaction's code"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"timestamp")," is the transaction's validation timestamp"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"uco_movements")," is a map of UCO transfers grouped by ",(0,r.kt)("em",{parentName:"li"},"resolved")," address of the transaction.")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},'["00001ab...": 1, "00001bc...": 2]\n')),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"token_movements")," is a map of list of token transfers grouped by ",(0,r.kt)("em",{parentName:"li"},"resolved")," address of the transaction")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},'["00001ab...":\n [\n [amount: 1, token_address: "0000ab12..." , token_id: 1],\n [amount: 1, token_address: "0000ab12..." , token_id: 4],\n ]\n]\n')),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"uco_transfers")," is a map of UCO transfers grouped by address of the transaction.")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},'["00001ab...": 1, "00001bc...": 2]\n')),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"token_transfers")," is a map of list of token transfers grouped by address of the transaction")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},'["00001ab...":\n [\n [amount: 1, token_address: "0000ab12..." , token_id: 1],\n [amount: 1, token_address: "0000ab12..." , token_id: 4],\n ]\n]\n')),(0,r.kt)("admonition",{title:"Difference between transfers and movements",type:"info"},(0,r.kt)("p",{parentName:"admonition"},'The transfers and movements are almost the same thing. The difference is in the addresses.\nThe addresses of the transfers are "raw" whereas the addresses of the movements are "resolved".'),(0,r.kt)("ul",{parentName:"admonition"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"raw address"),": address that was specified on a transfer (usually the genesis but not mandatory)"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"resolved address"),": address of the latest transaction of the chain (the chain that contains ",(0,r.kt)("inlineCode",{parentName:"li"},"raw address"),")")),(0,r.kt)("p",{parentName:"admonition"},"Here's an example to understand the difference:"),(0,r.kt)("p",{parentName:"admonition"},"This is a UCO transfer to MyAmazingContract. The transfer is usually done on the genesis address (here: ",(0,r.kt)("inlineCode",{parentName:"p"},"0x00abc"),"). But the transfer is actually creating an UTXO on the latest transaction of the chain (here: ",(0,r.kt)("inlineCode",{parentName:"p"},"0x00def"),")."),(0,r.kt)("mermaid",{parentName:"admonition",value:"flowchart LR\n subgraph MyAmazingContract\n Tx1((genesis 0x00abc)) --\x3e Tx2[transaction 0x00bcd]\n Tx2 --\x3e Tx3[transaction 0x00cde]\n Tx3 --\x3e Tx4[transaction 0x00def]\n end\n Transfer-.->|raw|Tx1\n Transfer-.->|resolved|Tx4"}),(0,r.kt)("p",{parentName:"admonition"},"Thus ",(0,r.kt)("inlineCode",{parentName:"p"},"contract.uco_transfers == [0x00abc: 1]")," and ",(0,r.kt)("inlineCode",{parentName:"p"},"contract.uco_movements == [0x00def: 1]"),"."),(0,r.kt)("p",{parentName:"admonition"},(0,r.kt)("strong",{parentName:"p"},"In most cases, you'll want to use ",(0,r.kt)("inlineCode",{parentName:"strong"},"movements")," instead of ",(0,r.kt)("inlineCode",{parentName:"strong"},"transfers"),"."))))}m.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file diff --git a/assets/js/d39a7100.f03b5781.js b/assets/js/d39a7100.3f130c98.js similarity index 98% rename from assets/js/d39a7100.f03b5781.js rename to assets/js/d39a7100.3f130c98.js index 1a3b6e8b9..751b75ba6 100644 --- a/assets/js/d39a7100.f03b5781.js +++ b/assets/js/d39a7100.3f130c98.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8423],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>b});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function l(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=a.createContext({}),d=function(e){var t=a.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},c=function(e){var t=d(e.components);return a.createElement(s.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,s=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),p=d(r),m=n,b=p["".concat(s,".").concat(m)]||p[m]||u[m]||o;return r?a.createElement(b,l(l({ref:t},c),{},{components:r})):a.createElement(b,l({ref:t},c))}));function b(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,l=new Array(o);l[0]=m;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:n,l[1]=i;for(var d=2;d{r.r(t),r.d(t,{Badge:()=>u,Bullet:()=>c,Details:()=>b,SpecifiedBy:()=>p,assets:()=>d,contentTitle:()=>i,default:()=>y,frontMatter:()=>l,metadata:()=>s,toc:()=>m});var a=r(87462),n=r(67294),o=r(3905);r(8209);const l={id:"error-details",title:"ErrorDetails",hide_table_of_contents:!1},i=void 0,s={unversionedId:"build/api/schema/objects/error-details",id:"build/api/schema/objects/error-details",title:"ErrorDetails",description:"Details about the error",source:"@site/docs/build/api/schema/objects/error-details.mdx",sourceDirName:"build/api/schema/objects",slug:"/build/api/schema/objects/error-details",permalink:"/build/api/schema/objects/error-details",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"error-details",title:"ErrorDetails",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"Endpoint",permalink:"/build/api/schema/objects/endpoint"},next:{title:"LedgerOperations",permalink:"/build/api/schema/objects/ledger-operations"}},d={},c=()=>(0,o.kt)(n.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=e=>(0,o.kt)(n.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,o.kt)(n.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),m=[{value:"Fields",id:"fields",level:3},{value:'ErrorDetails.codeInt ',id:"code-style-fontweight-normal-errordetailsbcodebcodeint-",level:4},{value:'ErrorDetails.dataErrorData ',id:"code-style-fontweight-normal-errordetailsbdatabcodeerrordata-",level:4},{value:'ErrorDetails.messageString ',id:"code-style-fontweight-normal-errordetailsbmessagebcodestring-",level:4},{value:"Member of",id:"member-of",level:3}],b=e=>{let{dataOpen:t,dataClose:r,children:l,startOpen:i=!1}=e;const[s,d]=(0,n.useState)(i);return(0,o.kt)("details",(0,a.Z)({},s?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),d((e=>!e))},style:{listStyle:"none"}},s?t:r),s&&l)},f={Bullet:c,SpecifiedBy:p,Badge:u,toc:m,Details:b},g="wrapper";function y(e){let{components:t,...r}=e;return(0,o.kt)(g,(0,a.Z)({},f,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Details about the error"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"type ErrorDetails {\n code: Int\n data: ErrorData\n message: String\n}\n")),(0,o.kt)("h3",{id:"fields"},"Fields"),(0,o.kt)("h4",{id:"code-style-fontweight-normal-errordetailsbcodebcodeint-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"ErrorDetails.",(0,o.kt)("b",null,"code"))),(0,o.kt)(c,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/int"},(0,o.kt)("inlineCode",{parentName:"a"},"Int"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h4",{id:"code-style-fontweight-normal-errordetailsbdatabcodeerrordata-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"ErrorDetails.",(0,o.kt)("b",null,"data"))),(0,o.kt)(c,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/error-data"},(0,o.kt)("inlineCode",{parentName:"a"},"ErrorData"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h4",{id:"code-style-fontweight-normal-errordetailsbmessagebcodestring-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"ErrorDetails.",(0,o.kt)("b",null,"message"))),(0,o.kt)(c,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/string"},(0,o.kt)("inlineCode",{parentName:"a"},"String"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h3",{id:"member-of"},"Member of"),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/transaction-error"},(0,o.kt)("inlineCode",{parentName:"a"},"TransactionError"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}y.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8423],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>b});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function l(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=a.createContext({}),d=function(e){var t=a.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},c=function(e){var t=d(e.components);return a.createElement(s.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,s=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),p=d(r),m=n,b=p["".concat(s,".").concat(m)]||p[m]||u[m]||o;return r?a.createElement(b,l(l({ref:t},c),{},{components:r})):a.createElement(b,l({ref:t},c))}));function b(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,l=new Array(o);l[0]=m;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:n,l[1]=i;for(var d=2;d{r.r(t),r.d(t,{Badge:()=>u,Bullet:()=>c,Details:()=>b,SpecifiedBy:()=>p,assets:()=>d,contentTitle:()=>i,default:()=>y,frontMatter:()=>l,metadata:()=>s,toc:()=>m});var a=r(87462),n=r(67294),o=r(3905);r(8209);const l={id:"error-details",title:"ErrorDetails",hide_table_of_contents:!1},i=void 0,s={unversionedId:"build/api/schema/objects/error-details",id:"build/api/schema/objects/error-details",title:"ErrorDetails",description:"Details about the error",source:"@site/docs/build/api/schema/objects/error-details.mdx",sourceDirName:"build/api/schema/objects",slug:"/build/api/schema/objects/error-details",permalink:"/build/api/schema/objects/error-details",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"error-details",title:"ErrorDetails",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"Endpoint",permalink:"/build/api/schema/objects/endpoint"},next:{title:"LedgerOperations",permalink:"/build/api/schema/objects/ledger-operations"}},d={},c=()=>(0,o.kt)(n.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=e=>(0,o.kt)(n.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,o.kt)(n.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),m=[{value:"Fields",id:"fields",level:3},{value:'ErrorDetails.codeInt ',id:"code-style-fontweight-normal-errordetailsbcodebcodeint-",level:4},{value:'ErrorDetails.dataErrorData ',id:"code-style-fontweight-normal-errordetailsbdatabcodeerrordata-",level:4},{value:'ErrorDetails.messageString ',id:"code-style-fontweight-normal-errordetailsbmessagebcodestring-",level:4},{value:"Member of",id:"member-of",level:3}],b=e=>{let{dataOpen:t,dataClose:r,children:l,startOpen:i=!1}=e;const[s,d]=(0,n.useState)(i);return(0,o.kt)("details",(0,a.Z)({},s?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),d((e=>!e))},style:{listStyle:"none"}},s?t:r),s&&l)},f={Bullet:c,SpecifiedBy:p,Badge:u,toc:m,Details:b},g="wrapper";function y(e){let{components:t,...r}=e;return(0,o.kt)(g,(0,a.Z)({},f,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Details about the error"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"type ErrorDetails {\n code: Int\n data: ErrorData\n message: String\n}\n")),(0,o.kt)("h3",{id:"fields"},"Fields"),(0,o.kt)("h4",{id:"code-style-fontweight-normal-errordetailsbcodebcodeint-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"ErrorDetails.",(0,o.kt)("b",null,"code"))),(0,o.kt)(c,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/int"},(0,o.kt)("inlineCode",{parentName:"a"},"Int"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h4",{id:"code-style-fontweight-normal-errordetailsbdatabcodeerrordata-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"ErrorDetails.",(0,o.kt)("b",null,"data"))),(0,o.kt)(c,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/error-data"},(0,o.kt)("inlineCode",{parentName:"a"},"ErrorData"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h4",{id:"code-style-fontweight-normal-errordetailsbmessagebcodestring-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"ErrorDetails.",(0,o.kt)("b",null,"message"))),(0,o.kt)(c,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/string"},(0,o.kt)("inlineCode",{parentName:"a"},"String"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h3",{id:"member-of"},"Member of"),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/transaction-error"},(0,o.kt)("inlineCode",{parentName:"a"},"TransactionError"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}y.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file diff --git a/assets/js/d409b53d.f64bc96e.js b/assets/js/d409b53d.866aee65.js similarity index 99% rename from assets/js/d409b53d.f64bc96e.js rename to assets/js/d409b53d.866aee65.js index ea4c433da..92146a93c 100644 --- a/assets/js/d409b53d.f64bc96e.js +++ b/assets/js/d409b53d.866aee65.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6907],{3905:(e,t,a)=>{a.d(t,{Zo:()=>h,kt:()=>p});var n=a(67294);function l(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function d(e){for(var t=1;t=0||(l[a]=e[a]);return l}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(l[a]=e[a])}return l}var o=n.createContext({}),r=function(e){var t=n.useContext(o),a=t;return e&&(a="function"==typeof e?e(t):d(d({},t),e)),a},h=function(e){var t=r(e.components);return n.createElement(o.Provider,{value:t},e.children)},c="mdxType",k={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},T=n.forwardRef((function(e,t){var a=e.components,l=e.mdxType,i=e.originalType,o=e.parentName,h=s(e,["components","mdxType","originalType","parentName"]),c=r(a),T=l,p=c["".concat(o,".").concat(T)]||c[T]||k[T]||i;return a?n.createElement(p,d(d({ref:t},h),{},{components:a})):n.createElement(p,d({ref:t},h))}));function p(e,t){var a=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var i=a.length,d=new Array(i);d[0]=T;var s={};for(var o in t)hasOwnProperty.call(t,o)&&(s[o]=t[o]);s.originalType=e,s[c]="string"==typeof e?e:l,d[1]=s;for(var r=2;r{a.r(t),a.d(t,{assets:()=>o,contentTitle:()=>d,default:()=>k,frontMatter:()=>i,metadata:()=>s,toc:()=>r});var n=a(87462),l=(a(67294),a(3905));a(8209);const i={id:"database",title:"Archethic's database"},d=void 0,s={unversionedId:"build/core/database",id:"build/core/database",title:"Archethic's database",description:"Archethic is shipped with a custom database engine built from scratch to support an efficient data storage to support",source:"@site/docs/build/core/database.md",sourceDirName:"build/core",slug:"/build/core/database",permalink:"/build/core/database",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"database",title:"Archethic's database"},sidebar:"docs",previous:{title:"Yubikey implementation",permalink:"/build/core/cryptography/yubikey"},next:{title:"Election",permalink:"/build/core/election"}},o={},r=[{value:"Rationale",id:"rationale",level:2},{value:"Log Structured Merge",id:"log-structured-merge",level:3},{value:"Log Structured Hash Tables",id:"log-structured-hash-tables",level:3},{value:"Our approach",id:"our-approach",level:3},{value:"Design",id:"design",level:2},{value:"Chains storage",id:"chains-storage",level:3},{value:"Chain indexing",id:"chain-indexing",level:3},{value:"File indexes",id:"file-indexes",level:4},{value:"Summary",id:"summary",level:5},{value:"Addresses",id:"addresses",level:5},{value:"Keys",id:"keys",level:5},{value:"Types",id:"types",level:5},{value:"Memory indexes",id:"memory-indexes",level:4},{value:"Transaction index",id:"transaction-index",level:5},{value:"Chain stats",id:"chain-stats",level:5},{value:"Last index",id:"last-index",level:5},{value:"Type index",id:"type-index",level:5},{value:"Chain reader",id:"chain-reader",level:3},{value:"Write path",id:"write-path",level:3},{value:"Read path",id:"read-path",level:3},{value:"Additional of-chain storage",id:"additional-of-chain-storage",level:2}],h={toc:r},c="wrapper";function k(e){let{components:t,...i}=e;return(0,l.kt)(c,(0,n.Z)({},h,i,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("p",null,"Archethic is shipped with a custom database engine built from scratch to support an efficient data storage to support\nconcurrent writes and reads while avoiding much as I/O as possible."),(0,l.kt)("h2",{id:"rationale"},"Rationale"),(0,l.kt)("p",null,"Several solutions have been analyzed and uses from benchmarks, to implementation until the need to implement a solution which will fit the needs and requirements. (ie. LevelDB, RocksDB, Cassandra, ScyllaDB, Aerospike, Redis, etc.)"),(0,l.kt)("p",null,"There are multiple database engines which provides different needs, but we wanted to focus on NoSQL and efficient disk amangement and writes."),(0,l.kt)("p",null,"Our choice ended with log structued family storages (instead of B-tree which are more read efficient, but suffer for random writes)"),(0,l.kt)("h3",{id:"log-structured-merge"},"Log Structured Merge"),(0,l.kt)("p",null,"LSM (Log Structured Merge) comes with the immutable datastructures and append only writes."),(0,l.kt)("p",null,"Append only writes are really efficient in term of disk I/O as a single seek in the file is needed to be placed at the end of the file, and write the new data."),(0,l.kt)("p",null,"There are also shipped with inmemory structure which is flush over time while keeping this append-only log on disk for backup and safety measure. So those dumps are immutable and provided the database view at certain time."),(0,l.kt)("p",null,"But because most of the KeyValue database using LSM, involving updates of keys, they must manage the redundancy of the data and provide cleanup (deleted or updates entries).\nTo support this clean, they are using ",(0,l.kt)("inlineCode",{parentName:"p"},"compaction")," which is a merge operation which take only the last data information from multiple immutable dumps."),(0,l.kt)("h3",{id:"log-structured-hash-tables"},"Log Structured Hash Tables"),(0,l.kt)("p",null,"Log Structured Hash Tables as Bitcask are really interesting as the writing and the reading are efficient because it's using immutable data and key indexing in memory for a predictable and fast reading."),(0,l.kt)("p",null,"Its main requirement is to hold all the key of the value into the memory otherwise"),(0,l.kt)("p",null,"This approach also invovles a ",(0,l.kt)("inlineCode",{parentName:"p"},"compaction")," as data blocks are appended with immutability but needs to be merged after some time to avoid filesystem exhaustion."),(0,l.kt)("h3",{id:"our-approach"},"Our approach"),(0,l.kt)("p",null,"All those database Key-value, Wide column storage, etc.. which are using LSM are considered as global database to support different kind of use cases. However in our case, we have a specific need and requirements: ",(0,l.kt)("strong",{parentName:"p"},"we are only dealing with immutable data at all"),". The data stored in the transaction will never changed, and the mutation and views are managed from an application perspective but not from the disk itself."),(0,l.kt)("p",null,"Then we can reduce a lot of effort and I/O which are heavy in term of computations as compaction/merges, dump of memory structures"),(0,l.kt)("p",null,"In additional to it, we can keep some indexing in memory while providing file backup to avoid memory exhaustion and be able to scale more.\nEvenif we might the indexing on file not efficient, because we are using append only strategy for everything, the indexing is better as the last index bring the last update."),(0,l.kt)("h2",{id:"design"},"Design"),(0,l.kt)("p",null,"So in order to fullfill all those requirements and optimize performances for our needs, we create a new data layer from scratch.\nNevertheless, we took concepts interesting from log structured and wide column storages to support efficient writes/reads with the support of nested column filtering."),(0,l.kt)("h3",{id:"chains-storage"},"Chains storage"),(0,l.kt)("p",null,"The main concept is simple: ",(0,l.kt)("strong",{parentName:"p"},"each chain has its own file"),"."),(0,l.kt)("p",null,"Each chain is uniquely identified by its ",(0,l.kt)("inlineCode",{parentName:"p"},"genesis address"),": which is the address of the first's previous public key, aka the 0th address."),(0,l.kt)("p",null,(0,l.kt)("img",{src:a(77635).Z,width:"513",height:"231"})),(0,l.kt)("admonition",{type:"info"},(0,l.kt)("p",{parentName:"admonition"},"The append-only strategy is straighforward, each time a new transaction in a chain is persisted, the transaction is added at the end of the file of a chain. So in term of disk access and I/O, it requires a simple seek at the end of the file and dumps of the transaction serialized."),(0,l.kt)("p",{parentName:"admonition"},"This concept led to the streaming capability of the writes to avoid exhaustion of the system (as a backpressure mechanism)")),(0,l.kt)("p",null,"So in order to be able to read specific columns from the transaction, the transaction is serialized in a specific format before to be written to disk.\nThis encoding wraps each key value of the transaction into self-descriptive and schema less write.\nEach key/value pair is encoded in that way:"),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Column name size (1 byte)"),(0,l.kt)("th",{parentName:"tr",align:null},"Value size (32 byte)"),(0,l.kt)("th",{parentName:"tr",align:null},"Column name (binary)"),(0,l.kt)("th",{parentName:"tr",align:null},"Value (binary)"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"7"),(0,l.kt)("td",{parentName:"tr",align:null},"33"),(0,l.kt)("td",{parentName:"tr",align:null},"Address"),(0,l.kt)("td",{parentName:"tr",align:null},"00743B809ADDE7E1E3E9B5AFB704813D06155958FBBB78CD052CC45A1B19F976BE")))),(0,l.kt)("p",null,"However, because we are using a schemaless approach letting the code defining the encoding and decoding, each transaction is prepended by its size length (4 bytes) and its version."),(0,l.kt)("p",null,"So by this way, we know the boundaries of the transaction within a file and the way to decode it."),(0,l.kt)("h3",{id:"chain-indexing"},"Chain indexing"),(0,l.kt)("p",null,"Because each chain has its own file, we need also a mechanism to identify a transaction without a chain, or identify a transaction amongs the chains."),(0,l.kt)("p",null,"Different kind of indexing are performed some completly both in memory and disks for backup and long term storage."),(0,l.kt)("h4",{id:"file-indexes"},"File indexes"),(0,l.kt)("h5",{id:"summary"},"Summary"),(0,l.kt)("p",null,"To provide a way to find a transaction without knowing its genesis address, we implemented a summary index (as there are in other solutions) to help the identify the location of the data.\nThen, as the ",(0,l.kt)("a",{parentName:"p",href:"/learn/sharding/beacon-chain"},"BeaconChain")," used this concept, we also applied the address's subset identification here.\nSo each address contains a subset which is the first byte of the digest (exluding the metadata to identify curve and hash algorithm)."),(0,l.kt)("p",null,"So each subset has its own index, with a list of transaction, genesis addresses, the transaction size and its offset (location in the chain's genesis file)"),(0,l.kt)("p",null,(0,l.kt)("img",{src:a(34662).Z,width:"641",height:"31"})),(0,l.kt)("h5",{id:"addresses"},"Addresses"),(0,l.kt)("p",null,"One principle of the transaction chain is to able to target any address of a chain as recipient.\nSo during the transaction validation, nodes are able to resolve recipient last address and then target the right shard of the chain. They are doing this resolution by asking the recipient shard about the last transaction address."),(0,l.kt)("p",null,"But in order to make this possible, previous nodes of a given chain need to keep a track of the last transaction of the chain."),(0,l.kt)("p",null,"Then a specific index file is provided (",(0,l.kt)("inlineCode",{parentName:"p"},'"Genesis-address"-addresses'),") for this purpose which contains a given chain (genesis file), a list of timestamps and addresses for this chain."),(0,l.kt)("p",null,(0,l.kt)("img",{src:a(71624).Z,width:"321",height:"31"})),(0,l.kt)("p",null,"The timestamp is useful during replication and validation to be sure to get the last chain address at the time of the validation, so we can reproduce the validation later without problem."),(0,l.kt)("p",null,"However during the transaction validation we keep the latest one."),(0,l.kt)("h5",{id:"keys"},"Keys"),(0,l.kt)("p",null,"Sometimes we also want to identify the genesis address or first public key of a chain.\nBut we need to track it as well."),(0,l.kt)("p",null,"For instance, in smart contract code, we want to do some actions depending if a transaction's coming from a specific person, but how to identify it, as its transaction chain evolves and we don't keep a track of all the transactions."),(0,l.kt)("p",null,"Then being able to identify the first transaction of a chain is important."),(0,l.kt)("p",null,"So we are adding a new chain index file (",(0,l.kt)("inlineCode",{parentName:"p"},'"Genesis address"-key'),") to support this feature."),(0,l.kt)("p",null,(0,l.kt)("img",{src:a(68825).Z,width:"321",height:"31"})),(0,l.kt)("h5",{id:"types"},"Types"),(0,l.kt)("p",null,"We also want to be able to list of the transactions of a given type, this is useful when the starts and fill memory tables but also to list transactions in UI or API for network transactions."),(0,l.kt)("p",null,"Then a index is given by type for this purpose where the addresses are appended"),(0,l.kt)("p",null,(0,l.kt)("img",{src:a(81613).Z,width:"411",height:"137"})),(0,l.kt)("h4",{id:"memory-indexes"},"Memory indexes"),(0,l.kt)("p",null,"Among the files indexes for backup or long term storage, we are proving some in memory indexes (a bit like Log structured Hash tables) to read data with predictable latency.\nThis make reads fast."),(0,l.kt)("p",null,(0,l.kt)("img",{src:a(58321).Z,width:"482",height:"95"})),(0,l.kt)("h5",{id:"transaction-index"},"Transaction index"),(0,l.kt)("p",null,"This index works a bit like a chache and is identified by a transaction address with the following information:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"genesis address"),(0,l.kt)("li",{parentName:"ul"},"offset"),(0,l.kt)("li",{parentName:"ul"},"size")),(0,l.kt)("p",null,"So once the a transaction is present in this cache, we can easily read transaction give information about the position of the file, and read it really quickly."),(0,l.kt)("p",null,"But if the transaction is not present, we can easily use the index summary as fallback, to identify the file and the offset."),(0,l.kt)("h5",{id:"chain-stats"},"Chain stats"),(0,l.kt)("p",null,"This index is built from the genesis chain files and contains information about the number of transactions within and the last offset.\nSo during the write, the transaction index/summary is notified about the last offset of the chain, and help to move forward in the location of new transaction."),(0,l.kt)("h5",{id:"last-index"},"Last index"),(0,l.kt)("p",null,"As we mentioned in the last addresses chain index file, we need to quickly know what is the last address of a chain, so here we a cache, we says for a given genesis address what is the latest."),(0,l.kt)("p",null,"So this table is filled every time a node receives a last address notification."),(0,l.kt)("h5",{id:"type-index"},"Type index"),(0,l.kt)("p",null,"Because we have type index file, we can also leverages a memory index to know how many transactions for a given type exists.\nThis is useful for key derivation for network transactions.\nSo we can easily and quickly get the size of a chain."),(0,l.kt)("h3",{id:"chain-reader"},"Chain reader"),(0,l.kt)("p",null,"Wide column storages provides the capability to extract sub columns information to avoid the load of an entire row in the memory to let the application filter the data.\nThe filtering can be done on the disk, while make it efficients."),(0,l.kt)("p",null,"The behaviour like is a two dimensional key-value pair, where the 1st dimension targets the partition key and the 2nd targets the columns of the row."),(0,l.kt)("p",null,"So we achieve a similar approach here, by eing the 1st dimension as the chain file and the 2nd as the list of columns names encoded during the transaction write."),(0,l.kt)("ol",null,(0,l.kt)("li",{parentName:"ol"},"After being able to get the lookup informations from the chain indexes to identify the file and offset in the file of a given transaction, we ",(0,l.kt)("inlineCode",{parentName:"li"},"seek")," (put the cursor) at the offset position."),(0,l.kt)("li",{parentName:"ol"},"Then we can sequentially read columns and values and pick the ones we want"),(0,l.kt)("li",{parentName:"ol"},"When we reached the end of the transaction (thanks to the size information from the indexes) or the enf of file, we convert those values into a transaction where the values retrieved will be filled in to the structure.")),(0,l.kt)("h3",{id:"write-path"},"Write path"),(0,l.kt)("p",null,(0,l.kt)("img",{src:a(79525).Z,width:"811",height:"481"})),(0,l.kt)("p",null,"So in order to be written, a transaction follows a write path to make reads efficient."),(0,l.kt)("p",null,"After a transaction is written to disk in the genesis chain file, several disks and memory writes are performed to help the indexing of this transaction."),(0,l.kt)("p",null,"Transaction's address is written to:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"the summary index from the subset of the transaction (file)"),(0,l.kt)("li",{parentName:"ul"},"the last addresses index of the chain (in memory and file)"),(0,l.kt)("li",{parentName:"ul"},"the transaction's type index (in memory)"),(0,l.kt)("li",{parentName:"ul"},"the bloom filters (in memory)"),(0,l.kt)("li",{parentName:"ul"},"transaction index (in memory)")),(0,l.kt)("p",null,"Its public key is also written to the chain's public key index. (file)"),(0,l.kt)("p",null,"Then transaction's type in memory index number incremented, as well as the chain stats in memory index."),(0,l.kt)("h3",{id:"read-path"},"Read path"),(0,l.kt)("p",null,(0,l.kt)("img",{src:a(30401).Z,width:"505",height:"441"})),(0,l.kt)("p",null,"To make read efficients, when a transaction wants to be retrieved, it goes to the read path:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Check if the transaction index is present, if yes we have information about the file and position"),(0,l.kt)("li",{parentName:"ul"},"Otherwise we check the bloom filter, if yes, we read the subset summary to identify the position of the transaction, otherwise you inform the transaction does not exists"),(0,l.kt)("li",{parentName:"ul"},"Then a reader is able to perform reads according to the fields requested and the position retrieved.")),(0,l.kt)("h2",{id:"additional-of-chain-storage"},"Additional of-chain storage"),(0,l.kt)("p",null,"For now, we have covered the scope of chain storage and retrieval, however we also need to persist some data which are not really inserted into a chain and are important for well-being of the node execution."),(0,l.kt)("p",null,"So we have to leverage others kind of storages and indexes as simple key-value in memory loaded from disk."),(0,l.kt)("p",null,"The scope of those storages are:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Bootstrapping information (last P2P bootstrapping seeds, storage nonce, last sync date)"),(0,l.kt)("li",{parentName:"ul"},"Network statistics (aggregated TPS and nb of transactions)"),(0,l.kt)("li",{parentName:"ul"},"P2P view (aggregated node availability from the beacon chain)")))}k.isMDXComponent=!0},68825:(e,t,a)=>{a.d(t,{Z:()=>n});const n="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUEAAAAfCAYAAAB5/X8CAAAPe3RFWHRteGZpbGUAJTNDbXhmaWxlJTIwaG9zdCUzRCUyMkVsZWN0cm9uJTIyJTIwbW9kaWZpZWQlM0QlMjIyMDIyLTA0LTA3VDE1JTNBNDElM0E1OS43ODBaJTIyJTIwYWdlbnQlM0QlMjI1LjAlMjAoTWFjaW50b3NoJTNCJTIwSW50ZWwlMjBNYWMlMjBPUyUyMFglMjAxMl8yXzEpJTIwQXBwbGVXZWJLaXQlMkY1MzcuMzYlMjAoS0hUTUwlMkMlMjBsaWtlJTIwR2Vja28pJTIwZHJhdy5pbyUyRjE0LjQuMiUyMENocm9tZSUyRjg3LjAuNDI4MC4xNDElMjBFbGVjdHJvbiUyRjExLjMuMCUyMFNhZmFyaSUyRjUzNy4zNiUyMiUyMGV0YWclM0QlMjJYZGR3Z1V6WG9rZngyd3l3NXNRaCUyMiUyMHZlcnNpb24lM0QlMjIxNC40LjIlMjIlMjB0eXBlJTNEJTIyZGV2aWNlJTIyJTIwcGFnZXMlM0QlMjI0JTIyJTNFJTNDZGlhZ3JhbSUyMGlkJTNEJTIyS3ZUeTZfRm4xUEd2SXVrR0dCOG8lMjIlMjBuYW1lJTNEJTIyUGFnZS0xJTIyJTNFNVZuWmNwc3dGUDBhVDUlMkZxQWNsZ2VNelNKVE5kTXBPMFNSOWxKSU5xR1htRUhKdDhmU1VRWmhGSm5NU3VNODZUMFJYYXpybjM2SEk5Z0dmejlSZUJGc2wzamdrYkFBZXZCJTJGQjhBSURyT3I3NjBaYTh0SVRodURURWdtTHpVbTI0b3ZmRUdCMWpYVkpNc3RhTGtuTW02YUp0akhpYWtraTJiRWdJdm1xJTJGTnVXc3Zlb0N4Y1F5WEVXSTJkWWJpbVZTbmNzUDY0NnZoTWFKV1RvQTVueHpWTDFzVHBJbENQTlZ3d1ElMkZEZUNaNEZ5V1QlMkZQMUdXRWF2QXFYY3R6bkIzbzNHeE1rbGRzTVdGNndrNyUyQjM5NU5mRnhlJTJGNVk4JTJGbDluNk92Z1ltTDNKdkRxdzRNc1VFejNHR2NCVExtVENZNTRpOW8zemhUSzZ5dmlYU0prYnF0QlNjbVZLNUp5WlhyVWRrZCUyQmE4VVhqajI0TXZhcDV2bTUybnVmTjFpVVJkRTRrRWNaWWJvOWdpNlQ2MUpWWElCRVQlMkJjaFJ4eHZNbGJNU3JsWVJ1Um9uQ0VPUzNyWG5SOFpyNHMxN202R1huS3FWZ1dNOEhIamUwUFZkRURwUVBRZk9HSll6R0hkM2ZhYzlZOGFYSWlKbWtwb3Q5ZERZVlcwcU9Id0duOGI1N2hCYm1oTlpCQ3MlMkZYT2pIbEV2MWM3cEtxQ1JYQ3hScDIwb0ZjWnZOQ1lwbWNlRVRQNWVTMFpRWU8wWmk5bE9Ob3JMZ2IlMkJob2VxZVVzVFBPdUNoV2d0Z2pBUjRwZXlZRm41RkdUd0FtMFBjMyUyRk40UkljbjZjWVp0NXN3QVdFRnNJQWNqMDE3VjhWcTlralFpTlhRZTVycEZ5M001Q0olMkZtZ0tUNFJJdFRRWVBHVk9HWkpVWFV1VzM4dGYwU1NSVVJhV0VCRHR3QVdna1NzS0dmVHFjZ2l2cWd4JTJGN0U5JTJGeG5oSllOZkFOWXJ3Zll5dmJLeUhLZERxJTJGdWRxRmtUZVElMkZOVkVwSFh1THlXcTVoa09jTUJxUkQ1bSUyQnR4SkVVOHMlMkZWRFRJdGglMkIwZVRSTzB5VGRtQkNqc2ZhVVNKR29WZlJVeHhaVjk5bUo2WmhUak5sRGdkOFclMkYxMEVwOWZHSHZZRTU0Ym9waE9CZlVXbk83TFl1QkVLQ1gyRkNKUm1LSktVSHpFamJqaFdWM0hyam5JT3pvbG5jWEpPczlueGtoQjJGQWtlbkFIZll1QTdtWE16ODN2Z3dBME96UUdBZHA2Z2J1Y3IwelFvdmpvJTJGMyUyRmJlVnhzcEx0akh2TWFrbTAlMkZtM21VSzlJcmslMkIzWE9iV2ZGMTQ5SWZaVWdMd1NQU0phOVBFZnVwc09JQk5QZW5NeVBBaktaN2tqZmc0NWY5MmtMOUd5JTJGaG52VGxzQ0MlMkY4Z3doJTJCT09udmRveWFoSFNycUo2TzRnMyUyQkliNU1nZ0R3OE1lWVh3TnBCSHVZSVBFd0czQUwyVSUyQjIlMkJUcDFqSVNyMTN2ZDNnTzRJZEdRRTJ2bjFmMWQ3ZThMWHo5aXBEY1RTWWE1ckd4NXVzak1DYnkxYmVZYWxwMUxsYkQxNXFBdmJWYXBVV0hJU3hVQUpQc2lNT2owNE5zTGZNMEhjZDdDMDhLdm5jYVdWOVRXVlJXQjk2SVRSdFhWdDNodzZzMm5WeFhUZnlSdVBscGZVdHZ3TjJYMXYzTzdYMXRnU09POXh0V3c4Y2RWT0g3cDIxNTNvZ2ROJTJCZmN2cndqU2tudE5NMVd6bG5KRDlpMGZUZCUyRnllYXFsbiUyRjAxa0dVdjElMkZNZnowRHclM0QlM0QlM0MlMkZkaWFncmFtJTNFJTNDZGlhZ3JhbSUyMGlkJTNEJTIycks0NDJQRWN6SENtODBLaHBXWl8lMjIlMjBuYW1lJTNEJTIyUGFnZS0yJTIyJTNFNVZkTmI2TXdFUDAxSEN1QlRSeHkzSkp1VjZ1MnFwUkR0MGNYRDhHcVlTTEhLV1IlMkYlMkZacGdBcFJXVmFWMGhWSTRZTCUyRjVNUFBteVpZOUd1ZlZ0ZWFiN0JZRktJJTJGNG92TG8waU1rQ0h4bVB6V3liNURGWXQ0QWF5MkZjJTJCcUFsZndMRHZRZHVwTUN0Z05IZzZpTTNBekJCSXNDRWpQQXVOWllEdDFTVk1OVk4zd05JMkNWY0RWR0g2UXdXVnNYVzNTR1h5RFhtVnM2SXE2JTJCbkxmT3JwSnR4Z1dXUFloZWVUVFdpS1laNVZVTXFpYXY1ZVVtZTBhMXFuN2ZjWHdReFRKJTJCTkglMkZ1TDVwa1B6OFRjaXhCUTJGT201bzBxViUyQjQyam0lMkJ2TkQlMkZvV1FDYmRGbTN6S3BjVmNJcUxQNUhyMHNNMmxndGVGSmJTMnRkaXlXbVZ6WldXQ0hxVlFxUm9YNkVFc0ZoeWhOTEw0MUdwJTJCaFoyRkpCRSUyQnB0YmclMkZBVzJnZXRXNkQlMkJvT2pzMndLZ2JNd2VpOWpXdXpNRmVLRXpEeDNienM1QkE1S09zSmdUcU1Pd0d1ajVrN2t1M0E4ZndKenVtN25BY241VHhOVTVLOHlibGdUMnpHdnBCekVrNk04M0RFZWVDZlZ1SHBySDdmVlBqaHFTT3dNRDI4ZWI2d0M1Uk1yQXV6VVJmT3ZnZWhQN0Vlc1BQZjhjTm9ZcHpQMyUyQldjbk11T1A1dmFLUnVOT0NmbnYlMkJPenFaMjdpJTJCOTQ3czclMkYzN2xycDkwRjVHRHJYZVBvMVQ4JTNEJTNDJTJGZGlhZ3JhbSUzRSUzQ2RpYWdyYW0lMjBpZCUzRCUyMnZETHdETjlxQkZkTHVKRlhfNzB2JTIyJTIwbmFtZSUzRCUyMlBhZ2UtMyUyMiUzRTNaVmJUOEl3R0laJTJGelM1TmVzQzVYU0o0VEV3MFN5UmUxdllycTNZcmxvNkJ2OTRDSFdPQ01ScFA4V3J0JTJCeDI2NyUyQm1iTktLRFluNW0yU1MlMkZNZ0owUkpDWVIzUVlFWUl4aXYxbnFTeldTcG9lcllXeFZTSWt0VUttbmlHSUtLaVZFakR0SkRwanRGT1Ryc2hOV1FKM0hZMVphJTJCcHVtalM2ZSUyQnFFaldGSHlEalR1JTJCcElDWmMzYzhWcEd6Z0hOYzdEMFFrSjh4V3NTUTZUVEhNbVRMMGwwWk9JRHF3eGJyMHE1Z1BRUzNnTkZ6NFRmWFZIMDRkS1A1ME5ieDl2YmxKNnNHNTIlMkJwR1N6UWdXU3ZmcDFyMVptYkclMkJ1cjAlMkJ5QzR2Sk1aeVZEVWxhTVowRlhoRlBkVFhpa000ZE9vV0RVbHJxbExBc2h1SzZIR2RLd2ZaaFBGbHRQYmU4VnJ1Q3UxMzJDJTJCbDBucGd0TEdyV2lvWUpKSjdmZXFzZVlTdFNNd1R1SmMlMkJFdjRFcklQNXE2dDdaMjY4dVF6dllqQUZPTHZ3ZFUyWE9Bd1pERXhRMk5ldEhaSWc1VnRHb0VGandZRGpUZWNXc2w4RXpoOWdqbmVZWTRRUjZxWGtTNUZMS1FuZmkxekU5JTJGRmglMkZJM0lrejlHbkx6cDhxOUYlMkZvc3VwJTJCU1BNYWY3WFg2WTB2JTJGaWN0TDdNZVIlMkIyNzR6cTlqV2EwMVBYZ0ElM0QlM0MlMkZkaWFncmFtJTNFJTNDZGlhZ3JhbSUyMGlkJTNEJTIyVExmNkd1azZJZjQ2bExsQ2dRbW8lMjIlMjBuYW1lJTNEJTIyUGFnZS00JTIyJTNFM1pWQlQ0TXdGTWMlMkZEVWNUYUFmQ2NVNTBCNDJISFRUZU92cUF4a0pKS1lQdDAxdEdHZUNXbUNWVEYwJTJCMCUyRiUyRmY2SHUlMkZYZjFJTEw3TG1VWklpZlJZVXVJVnMybGo0M2tMSWNXeFBmMXBsMnlsQmNOc0ppV1RVSkEzQ2l1M0FpTFpSSzBhaG5DUXFJYmhpeFZTTVJKNURwQ1lha1ZMVTA3Ulk4R25YZ2lSd0pLd2l3byUyRlZWMFpWMnMlMkZsQlVOZ0NTeEpUV3NmbWZreTBpZWJTY3FVVUZHUEpCeGFlQ0dGVU4wcWF4YkFXM2c5bCUyRnBwOTE2R2ViVlpydWN2YndLRjBwM2ZkTVVlempseUdFRkNyaTViR25XbE40UlhodGVjc3doTXgxSnRlNHhTVkRtRnRwUnQ0YnM2WlFwV0JZbmFhSzJObzdWVVpWenZITDJNR2VjTHdZWGNuOFdVZ0I5SFdpJTJCVkZCOHdpbmlSRCUyQnRZUjh4dmdGVFFmTG0zYjRaMkRqZWhMUXdpQXlXMyUyQmx4ZnhUT1haOXlMYkxPdkJ5JTJGNFJrcEhMc0JHSThaOXlhSHlRRmd2RE9RemdPTWo0STd0MlBZc1FCZEZIc2N4aWs0aXA5N2FjNzBmUk81ZkdmSFphWXRmbHZjZldoeWpLd1B1bnJhNEclMkJEJTJGWW5FMCUyQnpYa2VqdThNUHZZNkozRzRTYyUzRCUzQyUyRmRpYWdyYW0lM0UlM0MlMkZteGZpbGUlM0VhM/nOAAAMbUlEQVR4Xu2ceTzVWR/HPy2mZaJNPcXTQuuYpFE9TwvTtExUypQGLWYmTetUk9LqSTRCiSihbG1C0UbElD0mRRKRJSVpkbVmEsm8zjH3PjQ07j1dY3TOf67zPb/z+/jc9znn+z0vrW4H6VaDNyYFnNJXMMV/yMErhzp/yK//Xt6d+49NxlYEgp+obWQb5QOOTovZjbaqJz5gBVhevRqvExeA+098Dbn/xNeORO47EQ0OQTYNwU3IIiCHIIt6JJb7j01BDkE2/Wg0NyGLiByCLOpx/7Gqx3eC7ApyCDJqyCHIKCBfhBkF5DtBRgH5SswqIIcgq4L8JMKmIIcgm378OMysH4cgq4QcgmwKcgiy6cchyKwfhyCrhByCbApyCLLpxyHIrB+HIKuEHIJsCnIIsunHIcisH4cgq4QcgmwKcgiy6cchyKwfhyCrhByCbAq+FwjuP+iLjh3aY/E32sLZ3Mm8D9fDZ5B19wEmqI3E6mV6aNu2jfD3TwuK8N1yM/gd242OHdvTz4tLyuDi7o+4+FtQGqoA4zUGkO3ehf7ur8YjfU6duQS/c5fhe9iKxty99xC79h7B/dxHGPMfZTqH7t06098l3kyHk+sp5D18Cu0ZEzD3q8noIdtVLDWbyoSFz55i7DA5TJqqBZejZ4VzdXGwQnZmOnbYOENFQQY/x6Wjn8JAsd6FBJHnbPrREPvdTqJDh45ij9O4QHYI/p3+e/26CsvXWtZ51dkzJ2KGhto7/Rca9guOeAXiVUUFNKeMg+6cLyEj/XHjJHurV0vyX3CAH0IC/FH1pgpas/UxYfI0tG/fQSxdGhvEBEECkpBLcdhqfgCbjL6FtflqIcyGj9XHJ0MUsGyRDiz3eEBt7Ag47DbGb7+V43RAGI56X8DPYVdRkheBzjKdUF1dDZ2FG3HzVgbMTZYhODQWKWnZSIz2QtnzF2hoPMGL5tzPh6LyLAwe2Bd3Ek/Tj4eozsGI4UMwV3syjvkEoai4FJHBriAAlhusCWLWeXM14Hn8PJ4VliA+4mhjdavTr6lM6HXYGXsstuLXF8/xS+ojdOveg87D2d4SWRlpsHE8goT4KximMlIseL18+RtCL5zB2VPHcCXyEhIyCiEtU7NoSK6JD8Hm4D+y0I4YNw97dq4VSjRKVQmqKkMb9F9ySiZU1RdgzXJ9+r0wszoEvTlfwnTzErFkbin+i7gUhKULZ8FwuRGUlD+Dw24zzPhKD+u2/CSWLo0NYoKg46GTiI69gYjoBCxaOFMIQQKcreaOeJAWROdxPigK2vrr8OvjGJSUPofRFju666sNQWKmAcO1cS81AP369EZhUSlk+09GdIgbCOAaGo/sIslq/MX0pZDr3YNClEDwxs071GilDyPpCiuAZNbNsyAmNDaxR3byOTo/8rPKuHnITDqDgYp9GqudsF9TmXD21NH4esFi7LfZgbWbzKFnUPOlEUDQyt4N3+lqwM75OHr1/jcuBvpjr9U2lJWWYLq2LjaaWqNdu/ZIvnEN1uYbkJOVAfWJU7F1hy26dO2Op4/zYWm6HqWlxf8ICDYH/8XFJ8Pc2hVRF13r+OZd/iPfh/Co6zjva0djrGw94eMfipux3iJ7jwS0FP8R71VWVmC71X6qg5enExxtLRCXki+WLo0NYoKg4CG6326GYn95IQTJypaZlQsvdwvaJeV2NpTH6NWBzK3ULLq7E+wEL0fEY/Z8Y5TlRwnnLiP3OfbZbMC93EfvHM9itzvS7uRAR3sStpg5UggSOH+uuQTlBbFo1+4jeiwfNGI2gvz3QWXYIBQVl2GY0gD6LPej52C02RaF98MgJdW2sdo1KQSzM9MwTV2Z7gDdneyQcO0KfM7XaCWAoIXtQXocDo1NQ0VFBbS+UMG2nfbopzgIO/9nhJVGJhg/YQrGKcvDYPEqaM7UgaujDV68KMOJsxHC98lIS4HWxBHNfifYHPxHYLZjlytduFu3bo0V38+FzqxJuHo9pUH/aUweg+pqoOBZMZJTM2GwxBTLDOdgh8lykb3XVBBsCv+R00wnaWm6gJO2YdW3qHj1Cg6uPmLp0tggiUDwm6Wm6Ny5E/bb1PxnGrLr69Z3EpKunICK8mD62dsQJEdSa7vDwqMs6TNSfSEMDWZRQzU03svyV9DWX4/b104hMiZBCMGqqjf0yGugP53m+xycveHjFwpvT0vo60ylcyB9nN39sNp4N/Zar8PalfMbq1udfk2xEpOjQVpKEs0FJiVche6M8Qi/lgX5Pv3rhaC/92EKSgHcYqMuI/9hLl48L4OH815EJuagVatWyMm+A43xnyI2OQ+yPXvR9/qnQ7Ap/eftFwLP4wGwtVyLh/kF2GnjTkFouX3VX/rvkOdpLPuxJp9Y25eimrCl+Y941Gq7MU6d8IBPQDRUR48VVRKR+ksEgiuMrOhx9uQRazqZ/EcFkB8yDcUPwtGls3S9ECTHgaWrLersBElOz85qHQIvRtc7XlFuGEZ9boAZmmqYrTURUbGJcHL1g4+nJc21kOTzmg02NEE9/2tNBARHISL4EM3XEDDP1DVCZvYDuB/YBi1NdZGEq91Z0iasqqqCmkoflJe/pHnAyooKPH6Uh02mu7B45fp6IWhvbYpusj1haulQ5712bP0Rxz0O/OldAyNuYvDQT1sEBJvKf8TPH0lJUc0ExT2SHycniyfZobgQEtOg/wR/AJIj37nHg+bNSbpIMI4oZmxJ/rt9KwmL501HLzl52Dodg+LAoaJIIVZfiUCQ/EH9z4UhIfo4nVRMXBItehBjCNrbO0HSR13jexCwde0iQwsoH/dSA8nh+fqH1jtefsZFeqQWNFLcIEUPpaGKuOBnjwd5T6A+7jNadHn8pJCuzCRHSNqUmSug0F8eh/aZ0MIMS5O0Ca/GRsJgzmR4+ASjbdua43rAaW/cuP4LgqKS64Vg4Blf3L6VCKfDNUWiW0nX8Tg/D6m3biA6PATHz4TRz19XViIzPRXKn42ClNRHLQKCTeU/4uczAeE0rTJoQF+q3UGP03ByO4XI4EP0tFOf/8wsD0JerifWr15IY1LT7mLYf3WRk3Ie/fvKiWzFluK/e3ez6Annh3UmWLTMCG3a/P82iciiiBAgEQgKCg0hZx2hNEQRhj+Yo0f3rsIcIf1SvpUTrKx8je79JsFo1QJ6NYYY5bhvMAjoUtOyaeHiXeNRMARH0YIHyQkKjuAkBzhhvCotxjzMf4rAU/bwOhmMFWutaKW49srbv29vmj8UtUnahCbrlqKsrIReWRE0ArPZX45GYHgSLoecp9Xh2jlBcqQw0JkC9xMXoDhoCBbpadI8YM9/ycFQfxq8zoZDecQouB2wpQnomKRctPkDsP/043BT+o/47efwq4gPP0Jz1/MNTWj6ZfliHZoCqs9/pHBI/E1y5mTB3vaTM+ITUhF32VNU69H+LcV/2zevwt2sdOy0PSjUoXXrNkzXvRoj6HuBoN53W2hhxMpslfCZJL9HihSkkWsrMaHude7hCYolguot6UeSzJO0apLD0p06UgORYy1pfzXe2xAkP/+0yw02DjXXXnr3kkVYoAtdgddstMF+F98/6UOqc8OHDWqMbnX6SNKE5NoKKXbsc/OFppaO8LlkdztBVQFfLzCElJTUn+4J9umniK1GS3Da9wiNIXcLSYKZVIetzTbAw2Uv/by7bE/sdfHCGLWJwrEz0lNpUSUxswidpGVE1kO0APGvyAie83f6j9wznbPAGNcSb9PpjFZVwjkfO+q3hvxHFmiNr1YJY8aPUYHFtpX4Qn2kaNL90bul+E9jvBJysjPqaPBxJ2ncyCoWS5fGBr0XCDb0sNKyF7QCJsq1k4qKSprDIzG1L1eTZ4gzXnl5BfLyn4g0h8aKJ+gnSROKOpe3+5cUF4KspjKday6dC1pRYQGeFTxFP4UBFIx/X2OHYHPwH8l7k0ITgV/t1pD/3rx5g9y8xzSnSK52sTTuPxb1+D9VZVOvCVbi9zLBZj2I5CDYrF/7PU6uOUPwPb6mxIaS6E5QYrNuZgNzE7L8QTgEWdQjsdx/bApyCLLpR6O5CVlE5BBkUY/7j1U9fhxmV5BDkFFDDkFGAfkizCgg3wkyCshXYlYBOQRZFeQnETYFOQTZ9OPHYWb9OARZJeQQZFOQQ5BNPw5BZv04BFkl5BBkU5BDkE0/DkFm/TgEWSXkEGRTkEOQTT8OQWb9OARZJeQQZFNQCEG2YXi0U/oKLoKYCqwc6ixmJA8TKMD9x+aF3wGLGd3vdPqULgAAAABJRU5ErkJggg=="},71624:(e,t,a)=>{a.d(t,{Z:()=>n});const n="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUEAAAAfCAYAAAB5/X8CAAAM+nRFWHRteGZpbGUAJTNDbXhmaWxlJTIwaG9zdCUzRCUyMkVsZWN0cm9uJTIyJTIwbW9kaWZpZWQlM0QlMjIyMDIyLTA0LTA3VDE1JTNBMzUlM0E0Ny4zMDlaJTIyJTIwYWdlbnQlM0QlMjI1LjAlMjAoTWFjaW50b3NoJTNCJTIwSW50ZWwlMjBNYWMlMjBPUyUyMFglMjAxMl8yXzEpJTIwQXBwbGVXZWJLaXQlMkY1MzcuMzYlMjAoS0hUTUwlMkMlMjBsaWtlJTIwR2Vja28pJTIwZHJhdy5pbyUyRjE0LjQuMiUyMENocm9tZSUyRjg3LjAuNDI4MC4xNDElMjBFbGVjdHJvbiUyRjExLjMuMCUyMFNhZmFyaSUyRjUzNy4zNiUyMiUyMGV0YWclM0QlMjJsZV9hWU5weHdJRG03ajQ0ZTFyLSUyMiUyMHZlcnNpb24lM0QlMjIxNC40LjIlMjIlMjB0eXBlJTNEJTIyZGV2aWNlJTIyJTIwcGFnZXMlM0QlMjIzJTIyJTNFJTNDZGlhZ3JhbSUyMGlkJTNEJTIyS3ZUeTZfRm4xUEd2SXVrR0dCOG8lMjIlMjBuYW1lJTNEJTIyUGFnZS0xJTIyJTNFNVZuWmNwc3dGUDBhVDUlMkZxQWNsZ2VNelNKVE5kTXBPMFNSOWxKSU5xR1htRUhKdDhmU1VRWmhGSm5NU3VNODZUMFJYYXpybjM2SEk5Z0dmejlSZUJGc2wzamdrYkFBZXZCJTJGQjhBSURyT3I3NjBaYTh0SVRodURURWdtTHpVbTI0b3ZmRUdCMWpYVkpNc3RhTGtuTW02YUp0akhpYWtraTJiRWdJdm1xJTJGTnVXc3Zlb0N4Y1F5WEVXSTJkWWJpbVZTbmNzUDY0NnZoTWFKV1RvQTVueHpWTDFzVHBJbENQTlZ3d1ElMkZEZUNaNEZ5V1QlMkZQMUdXRWF2QXFYY3R6bkIzbzNHeE1rbGRzTVdGNndrNyUyQjM5NU5mRnhlJTJGNVk4JTJGbDluNk92Z1ltTDNKdkRxdzRNc1VFejNHR2NCVExtVENZNTRpOW8zemhUSzZ5dmlYU0prYnF0QlNjbVZLNUp5WlhyVWRrZCUyQmE4VVhqajI0TXZhcDV2bTUybnVmTjFpVVJkRTRrRWNaWWJvOWdpNlQ2MUpWWElCRVQlMkJjaFJ4eHZNbGJNU3JsWVJ1Um9uQ0VPUzNyWG5SOFpyNHMxN202R1huS3FWZ1dNOEhIamUwUFZkRURwUVBRZk9HSll6R0hkM2ZhYzlZOGFYSWlKbWtwb3Q5ZERZVlcwcU9Id0duOGI1N2hCYm1oTlpCQ3MlMkZYT2pIbEV2MWM3cEtxQ1JYQ3hScDIwb0ZjWnZOQ1lwbWNlRVRQNWVTMFpRWU8wWmk5bE9Ob3JMZ2IlMkJob2VxZVVzVFBPdUNoV2d0Z2pBUjRwZXlZRm41RkdUd0FtMFBjMyUyRk40UkljbjZjWVp0NXN3QVdFRnNJQWNqMDE3VjhWcTlralFpTlhRZTVycEZ5M001Q0olMkZtZ0tUNFJJdFRRWVBHVk9HWkpVWFV1VzM4dGYwU1NSVVJhV0VCRHR3QVdna1NzS0dmVHFjZ2l2cWd4JTJGN0U5JTJGeG5oSllOZkFOWXJ3Zll5dmJLeUhLZERxJTJGdWRxRmtUZVElMkZOVkVwSFh1THlXcTVoa09jTUJxUkQ1bSUyQnR4SkVVOHMlMkZWRFRJdGglMkIwZVRSTzB5VGRtQkNqc2ZhVVNKR29WZlJVeHhaVjk5bUo2WmhUak5sRGdkOFclMkYxMEVwOWZHSHZZRTU0Ym9waE9CZlVXbk83TFl1QkVLQ1gyRkNKUm1LSktVSHpFamJqaFdWM0hyam5JT3pvbG5jWEpPczlueGtoQjJGQWtlbkFIZll1QTdtWE16ODN2Z3dBME96UUdBZHA2Z2J1Y3IwelFvdmpvJTJGMyUyRmJlVnhzcEx0akh2TWFrbTAlMkZtM21VSzlJcmslMkIzWE9iV2ZGMTQ5SWZaVWdMd1NQU0phOVBFZnVwc09JQk5QZW5NeVBBaktaN2tqZmc0NWY5MmtMOUd5JTJGaG52VGxzQ0MlMkY4Z3doJTJCT09udmRveWFoSFNycUo2TzRnMyUyQkliNU1nZ0R3OE1lWVh3TnBCSHVZSVBFd0czQUwyVSUyQjIlMkJUcDFqSVNyMTN2ZDNnTzRJZEdRRTJ2bjFmMWQ3ZThMWHo5aXBEY1RTWWE1ckd4NXVzak1DYnkxYmVZYWxwMUxsYkQxNXFBdmJWYXBVV0hJU3hVQUpQc2lNT2owNE5zTGZNMEhjZDdDMDhLdm5jYVdWOVRXVlJXQjk2SVRSdFhWdDNodzZzMm5WeFhUZnlSdVBscGZVdHZ3TjJYMXYzTzdYMXRnU09POXh0V3c4Y2RWT0g3cDIxNTNvZ2ROJTJCZmN2cndqU2tudE5NMVd6bG5KRDlpMGZUZCUyRnllYXFsbiUyRjAxa0dVdjElMkZNZnowRHclM0QlM0QlM0MlMkZkaWFncmFtJTNFJTNDZGlhZ3JhbSUyMGlkJTNEJTIycks0NDJQRWN6SENtODBLaHBXWl8lMjIlMjBuYW1lJTNEJTIyUGFnZS0yJTIyJTNFNVZkTmI2TXdFUDAxSEN1QlRSeHkzSkp1VjZ1MnFwUkR0MGNYRDhHcVlTTEhLV1IlMkYlMkZacGdBcFJXVmFWMGhWSTRZTCUyRjVNUFBteVpZOUd1ZlZ0ZWFiN0JZRktJJTJGNG92TG8waU1rQ0h4bVB6V3liNURGWXQ0QWF5MkZjJTJCcUFsZndMRHZRZHVwTUN0Z05IZzZpTTNBekJCSXNDRWpQQXVOWllEdDFTVk1OVk4zd05JMkNWY0RWR0g2UXdXVnNYVzNTR1h5RFhtVnM2SXE2JTJCbkxmT3JwSnR4Z1dXUFloZWVUVFdpS1laNVZVTXFpYXY1ZVVtZTBhMXFuN2ZjWHdReFRKJTJCTkglMkZ1TDVwa1B6OFRjaXhCUTJGT201bzBxViUyQjQyam0lMkJ2TkQlMkZvV1FDYmRGbTN6S3BjVmNJcUxQNUhyMHNNMmxndGVGSmJTMnRkaXlXbVZ6WldXQ0hxVlFxUm9YNkVFc0ZoeWhOTEw0MUdwJTJCaFoyRkpCRSUyQnB0YmclMkZBVzJnZXRXNkQlMkJvT2pzMndLZ2JNd2VpOWpXdXpNRmVLRXpEeDNienM1QkE1S09zSmdUcU1Pd0d1ajVrN2t1M0E4ZndKenVtN25BY241VHhOVTVLOHlibGdUMnpHdnBCekVrNk04M0RFZWVDZlZ1SHBySDdmVlBqaHFTT3dNRDI4ZWI2d0M1Uk1yQXV6VVJmT3ZnZWhQN0Vlc1BQZjhjTm9ZcHpQMyUyQldjbk11T1A1dmFLUnVOT0NmbnYlMkJPenFaMjdpJTJCOTQ3czclMkYzN2xycDkwRjVHRHJYZVBvMVQ4JTNEJTNDJTJGZGlhZ3JhbSUzRSUzQ2RpYWdyYW0lMjBpZCUzRCUyMnZETHdETjlxQkZkTHVKRlhfNzB2JTIyJTIwbmFtZSUzRCUyMlBhZ2UtMyUyMiUzRTNaVmJUOEl3R0laJTJGelM1TmVzQzVYU0o0VEV3MFN5UmUxdllycTNZcmxvNkJ2OTRDSFdPQ01ScFA4V3J0JTJCeDI2NyUyQm1iTktLRFluNW0yU1MlMkZNZ0owUkpDWVIzUVlFWUl4aXYxbnFTeldTcG9lcllXeFZTSWt0VUttbmlHSUtLaVZFakR0SkRwanRGT1Ryc2hOV1FKM0hZMVphJTJCcHVtalM2ZSUyQnFFaldGSHlEalR1JTJCcElDWmMzYzhWcEd6Z0hOYzdEMFFrSjh4V3NTUTZUVEhNbVRMMGwwWk9JRHF3eGJyMHE1Z1BRUzNnTkZ6NFRmWFZIMDRkS1A1ME5ieDl2YmxKNnNHNTIlMkJwR1N6UWdXU3ZmcDFyMVptYkclMkJ1cjAlMkJ5QzR2Sk1aeVZEVWxhTVowRlhoRlBkVFhpa000ZE9vV0RVbHJxbExBc2h1SzZIR2RLd2ZaaFBGbHRQYmU4VnJ1Q3UxMzJDJTJCbDBucGd0TEdyV2lvWUpKSjdmZXFzZVlTdFNNd1R1SmMlMkJFdjRFcklQNXE2dDdaMjY4dVF6dllqQUZPTHZ3ZFUyWE9Bd1pERXhRMk5ldEhaSWc1VnRHb0VGandZRGpUZWNXc2w4RXpoOWdqbmVZWTRRUjZxWGtTNUZMS1FuZmkxekU5JTJGRmglMkZJM0lrejlHbkx6cDhxOUYlMkZvc3VwJTJCU1BNYWY3WFg2WTB2JTJGaWN0TDdNZVIlMkIyNzR6cTlqV2EwMVBYZ0ElM0QlM0MlMkZkaWFncmFtJTNFJTNDJTJGbXhmaWxlJTNFuJ3r+wAADZVJREFUeF7tnHk81Vkfxz8V00oLbTwttCiTlKl5WmifUimVQotpYkp7aS+TaEFJWoQS2oRopcRkCaNdEpElLWiRNdNC6nmdY+59KJq591yNcs5/fvd3zu/8Pvdz3+d7vt9Tde6e1/8A3pgUcEqax9S/Nnee3825Nr++RN6d+49NxjoEgt01V7GNUot7J0Ztg5TGsVqsAMurf8C7mOng/hNfQ+4/8bUjPXcfiwSHIJuG4CZkEZBDkEU90pf7j01BDkE2/WhvbkIWETkEWdTj/mNVj0eC7ApyCDJqyCHIKCBfhBkF5JEgo4B8JWYVkEOQVUG+E2FTkEOQTT++HWbWj0OQVUIOQTYFOQTZ9OMQZNaPQ5BVQg5BNgU5BNn04xBk1o9DkFVCDkE2BTkE2fTjEGTWj0OQVUIOQTYFOQTZ9KtWCJa+e4fMjIf0GQqK7SElLS2B2da0ITgEWb+R6oJg7fCfhI7I7Nnng0YNG8DkZ13h93kv5SFcD55C6v3HGKz5AxaZGkBKqp7w8+fZufhlriX8jmxDo0YN6PW8/EK4uJ3A5Wt3oNpNCSsWG0Ferhn97O/GI/f4nroIvzMh8DloQ/vcf5CJrQ6H8PDRE/T7UY3OQa5FU/pZzO0kOLn6IiPzOXTHDsbkCcPRUr65WH6UtAmzMh9hy/plyMp4iA4dO6Poz5eICLmAqTNNsWSVJVrItawwz5wXz9G/hwKGjdSBy+HTws9cdtkgLSUJdo6HYDh+EPSnm2CSwUyx3pF0Is9ZvcQYew4cR8OGjcQep2JHdgj+m/57964Uc5daV3ilieOGYuwozc/6Lzj0Cg55BuBtcTG0RwyA/qSfICvTWCxNa4P/Av39EOR/AqXvS6Ez0RCDh49GgwYNxdLr405MkSABSdDFy1hntRerzWbC1mqREGY9+xuiu4oSTGfpwXq7OzT798KubSvw6tUbnPQPxWGvc/g99CryM8LRVLYJPnz4AL0Zq3D7TjKszE0RGByN+MQ0xER6ovBlEaoaT/BC6Q+zoKw2Hl07t8e9mJP0sorGJPTqqYLJusNxxPs8cvMKcCnQFQTACl21Qcw6dfIoeBw9ixc5+bgWflgsUSVpwtTkRCyYpYcNNnvQt78WkhLi0EGpM169KqIg9PPygOfpMEhLfyecq+dBZ2zfvA5/Fr3ElYQnQkg677QGGc/e6Qju3olFy1at0bJ1W5Hf8fXrVwg+dwqnfY/gj0sXcTM5BzKyZYsJexMfgjXBf2Sh7TVgKrZvWSqUoo+GKjTUu1Xpv7j4FGhoTcfiuYb0d2Fpsx8Gk36CxZrZYsn5rfsv/OJ5zJkxHsZzzaCq1hu7tlli7AQDLFu7SSy9JApBx/3HERl9C+GRNzFrxjghBAlw1lk54nHiefq8s+cjoGu4DH8+jUJ+wUuYrd1Bo77yECRm6tRTFw8S/NGhXVvk5BZAvuNwRAYdAAFcVeORKJKsxkPGzIFC25YUogSCt27fo0YryLxEV1gBJFNvnwYx4QrznUiLO0PnR/5WHzAVKbGn0Fm5ncjCStKE+mMHwmzNJmj8OABGk4ZDqZMK8nJfUBge9L0AB1sLzDI1g0bf/sJ5ThzZF1Omm2CP3UYsXW0FA6OyH1N5CFqtXURXzyEjxuBCwAk42KxHYUE+xujqY5WFLerXb4C4W9dha7US6anJ0Bo6Eus22qNZczk8f5oFa4vlKCjIq1EQrAn+u3wtDla2roi44FrBN5/zH/k9hEXcwFmfHbSPjb0HvE8E43a0l8jeIx2+df8R75WUFNPAgDRPDyc42m/G5fgssfSSKAQFg+nPXAPljopCCJKVLSX1ETzdNtNb4u+mQa2fQQXI3ElIpdGdIBIMCb+GidNWoDArQjhHWYVB2G23Eg8ePfnseJu3uSHxXjr0dIdhraUjhSCB8yDt2XiTHY369b+j2/IuvSbi/IndUO/RBbl5heih2ok+y+3wGZitsUfOw1BIS0uJLKykTEggM25Ib0TceoDQ4AB4uDjgyMkQGoVt/s2MXieGIIDU1tGj80xLScRoLTUaAbo57cDN63/A+2yZhuUhSLbDU6YZQ61XX+gMUcf6LTvRQbkLtvxmhvlm5hg4eAQGqCnCyGQhtMfpwdXRDkVFhTh2OlyoR3JiPHSG9qoxkWBN8B+B2catrnThrlu3Lub9Ohl644fh6o34Kv03ang/fPgAZL/IQ1xCCoxmW8DUeBI2ms8V2XuShGBN9R/ZzTSRkUGbtv+h+qxcOBPFb99il6u3WHp9EQj+PMcCTZs2wR67sv+ZhkR9LdoPQ+wfx6Cu1pVe+xiCZEtqu+OgcCtL7vlBawaMjcZTQ1U13us3b6FruBx3r/viUtRNIQRLS9/TLa+R4Ria79vl7AVvv2B4eVjDUG8knQO5x9nND4tWbIOD7TIsnT9NLFElBcGEO7ewzWoVDvn9Tr/onr37UiiR8J9EbQRc44Zp4LBfMJq3kKdzJZ8lxsfSXGDszasgkWTY9VQotutYKQQfpKVQUArgFh0RApKDLHpZCHdnB1yKSUedOnWQnnYPowZ+j+i4DMi3akOf9bVA8Ev6z8svCB5H/WFvvRSZWdnYYudGQWi9YeHf+m+/x0mYLinLJ5b3pagmrC3+Ix612bACvsfc4e0fWWE3JKpm5e9nyglWtRLPM7Oh29njh2zpLVlPsqGoMhp5j8PQrKlMpRAk24E5izZXiARJTm+HzTIEXIisdLzcR6HoM8gIY7U1MVFnKCKiY+Dk6gdvD2uaayHJ58Ur7WiCetoUbfgHRiA8cD/N1xAwj9M3Q0raY7jtXQ8dbS2xdZSUCbOfPYHh+MEIuZqMjeuWoFGjxjAyWQBtrR6Yb7YOUlLSiAoPhptXWZqhtLQUmurt8ObNa5oHLCkuxtMnGVhtsRUm85dXCsHI0CC0kG8FC+tdFd6XPO+o+95PNAgIv42u3b7/qiD4pfxH/PzdXxV7QXGP5MfJzuJZWjDOBUVV6T+B0CRHvmW7O82bk3SRYBxRzFgb/Edy2iZTx6CNgiLNcSt37iaKRJ+9t1ogSL7QE2dCcTPyKH141OVYWvQgxhC0jyNBco/WqF9BwNa8mSwtoDRuowmSw/M5EVzpeFnJF+iWWtBIcYMUPVS7KeOc3048zngGrQG9adHl6bMcujKTHCFpI8bNg1JHRezfbU4LMyxNUiYkcyCRnpWtI5rLycFy9UI6LQI0Ui0mBZJNds5o3VaRXr8afYnmDd29AyElVbaN9z/phVs3ruB8RFylEHySmYG7d2LgdLCseHQn9gaeZmWARKGRYUE4eiqUXn9XUoKUpASo9e4jLMJ8LZHgl/If8fMp/zCaVunSqT3VbZ/7STgd8MWlwP10t1OZ/yyt90FRoRWWL5pB+yQk3keP/+ojPf4sOrZXENmK37r/HtxPpTucBcvMaT68Xr3/nzIRWaxKOlQLBAWFhqDTjlBVUYbxAiu0lGsuzBHSH99HOcGSkneQ6zAMZgun06MxxChHfQJBQJeQmEYLF58bjwIgMIIWPEhOULAFJznAwQM1aDEmM+s5Anx3wvN4IOYttaGV4vIrb8f2bWn+UNQmSRNevxKJNUtM6LGW8sUPcmbLx/MAjfgE+UDzZXNQWJhPj6wIGoHZxJ/6IiAsFiFBZ4XVYUFOUKW7Goz0RsDt2Dkod1HBLANtuuVu1VoBxoajaeVZrVcfHNhrTxPQUbGPUO8vwH4tEPyS/iN++z3sKq6FHaK562nG5jT9MtdEj6aAKvMfKRwSf5OcOVmw129yxrWbCbgc4iGq9ej937r/NqxZiPupSdhiv0+oT9269WhQIIkmEQga/LKWFkZsLMsiF9JIfo8UKUgjx1aigt0qnMMTFEsE1VtyH0kyD9MpSw7LNGlEDUS2tf9kvI8hSP7etPUA7HaVHXtp20YeoQEudAVevMoOe1x8PtGPVOd69ugisq6SNCF5OKkErzUzoRFY1+5qKMjPRVpyEq3Ymi5eTUFIjq2oK8li9wEfIRRJXxL1DtZQwpTpxpCWlv7knOCEKUZYZzYbJ30O0fckZwtJgplUh20tV8LdxYFel5NvBQcXT/TTHCrUIzkpgRZVYlJy0URGVmSdKu8g/hEZwXj/pv/IOdNJ01fgesxdOp2+Gqo4472D+q0q/5EFetSEhcI+A/upY/P6+Rii9YNYmn7r/hs1UBXpackVtGncRAa3UvPE0uvjThKBYFUzKSgsohUwUY6dFBeX0Bwe6VP+cDV5hjjjvXlTjIysZyLNQVRlJW1CwfPJub/HD9PRQk4erdqIvk363Hvk5+WArKayTcsOowtabk42XmQ/RwelThSM1d/YIVgT/Efy3qSgROBXvlXlv/fv3+NRxlOaUyRHu1ga9x+LehL6FyNsU/j6e1eXCb9+Zf7JG1QfBP/J07+Fe7j/2L7Fao0E2ab29fTmJmT5rjgEWdQjfbn/2BTkEGTTj/bmJmQRkUOQRT3uP1b1+HaYXUEOQUYNOQQZBeSLMKOAPBJkFJCvxKwCcgiyKsh3ImwKcgiy6ce3w8z6cQiySsghyKYghyCbfhyCzPpxCLJKyCHIpiCHIJt+HILM+nEIskrIIcimIIcgm34cgsz6cQiySsghyKagEIJsw/DeTknzuAhiKjC/m7OYPXk3gQLcf2xe+B/AQvf+6fgbTAAAAABJRU5ErkJggg=="},58321:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/memory_index-8b745de23265c24b29a6b68889747e0f.png"},30401:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/read_path-9a620d8ec68c3034fe7524efe7409647.png"},34662:(e,t,a)=>{a.d(t,{Z:()=>n});const n="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAoEAAAAfCAYAAACYoBeiAAAKW3RFWHRteGZpbGUAJTNDbXhmaWxlJTIwaG9zdCUzRCUyMkVsZWN0cm9uJTIyJTIwbW9kaWZpZWQlM0QlMjIyMDIyLTA0LTA3VDE1JTNBMjklM0ExMC4xNjlaJTIyJTIwYWdlbnQlM0QlMjI1LjAlMjAoTWFjaW50b3NoJTNCJTIwSW50ZWwlMjBNYWMlMjBPUyUyMFglMjAxMl8yXzEpJTIwQXBwbGVXZWJLaXQlMkY1MzcuMzYlMjAoS0hUTUwlMkMlMjBsaWtlJTIwR2Vja28pJTIwZHJhdy5pbyUyRjE0LjQuMiUyMENocm9tZSUyRjg3LjAuNDI4MC4xNDElMjBFbGVjdHJvbiUyRjExLjMuMCUyMFNhZmFyaSUyRjUzNy4zNiUyMiUyMGV0YWclM0QlMjJFMzJvY2hNWnNQcTB0U09JbEtHQiUyMiUyMHZlcnNpb24lM0QlMjIxNC40LjIlMjIlMjB0eXBlJTNEJTIyZGV2aWNlJTIyJTIwcGFnZXMlM0QlMjIyJTIyJTNFJTNDZGlhZ3JhbSUyMGlkJTNEJTIyS3ZUeTZfRm4xUEd2SXVrR0dCOG8lMjIlMjBuYW1lJTNEJTIyUGFnZS0xJTIyJTNFNVZuWmNwc3dGUDBhVDUlMkZxQWNsZ2VNelNKVE5kTXBPMFNSOWxKSU5xR1htRUhKdDhmU1VRWmhGSm5NU3VNODZUMFJYYXpybjM2SEk5Z0dmejlSZUJGc2wzamdrYkFBZXZCJTJGQjhBSURyT3I3NjBaYTh0SVRodURURWdtTHpVbTI0b3ZmRUdCMWpYVkpNc3RhTGtuTW02YUp0akhpYWtraTJiRWdJdm1xJTJGTnVXc3Zlb0N4Y1F5WEVXSTJkWWJpbVZTbmNzUDY0NnZoTWFKV1RvQTVueHpWTDFzVHBJbENQTlZ3d1ElMkZEZUNaNEZ5V1QlMkZQMUdXRWF2QXFYY3R6bkIzbzNHeE1rbGRzTVdGNndrNyUyQjM5NU5mRnhlJTJGNVk4JTJGbDluNk92Z1ltTDNKdkRxdzRNc1VFejNHR2NCVExtVENZNTRpOW8zemhUSzZ5dmlYU0prYnF0QlNjbVZLNUp5WlhyVWRrZCUyQmE4VVhqajI0TXZhcDV2bTUybnVmTjFpVVJkRTRrRWNaWWJvOWdpNlQ2MUpWWElCRVQlMkJjaFJ4eHZNbGJNU3JsWVJ1Um9uQ0VPUzNyWG5SOFpyNHMxN202R1huS3FWZ1dNOEhIamUwUFZkRURwUVBRZk9HSll6R0hkM2ZhYzlZOGFYSWlKbWtwb3Q5ZERZVlcwcU9Id0duOGI1N2hCYm1oTlpCQ3MlMkZYT2pIbEV2MWM3cEtxQ1JYQ3hScDIwb0ZjWnZOQ1lwbWNlRVRQNWVTMFpRWU8wWmk5bE9Ob3JMZ2IlMkJob2VxZVVzVFBPdUNoV2d0Z2pBUjRwZXlZRm41RkdUd0FtMFBjMyUyRk40UkljbjZjWVp0NXN3QVdFRnNJQWNqMDE3VjhWcTlralFpTlhRZTVycEZ5M001Q0olMkZtZ0tUNFJJdFRRWVBHVk9HWkpVWFV1VzM4dGYwU1NSVVJhV0VCRHR3QVdna1NzS0dmVHFjZ2l2cWd4JTJGN0U5JTJGeG5oSllOZkFOWXJ3Zll5dmJLeUhLZERxJTJGdWRxRmtUZVElMkZOVkVwSFh1THlXcTVoa09jTUJxUkQ1bSUyQnR4SkVVOHMlMkZWRFRJdGglMkIwZVRSTzB5VGRtQkNqc2ZhVVNKR29WZlJVeHhaVjk5bUo2WmhUak5sRGdkOFclMkYxMEVwOWZHSHZZRTU0Ym9waE9CZlVXbk83TFl1QkVLQ1gyRkNKUm1LSktVSHpFamJqaFdWM0hyam5JT3pvbG5jWEpPczlueGtoQjJGQWtlbkFIZll1QTdtWE16ODN2Z3dBME96UUdBZHA2Z2J1Y3IwelFvdmpvJTJGMyUyRmJlVnhzcEx0akh2TWFrbTAlMkZtM21VSzlJcmslMkIzWE9iV2ZGMTQ5SWZaVWdMd1NQU0phOVBFZnVwc09JQk5QZW5NeVBBaktaN2tqZmc0NWY5MmtMOUd5JTJGaG52VGxzQ0MlMkY4Z3doJTJCT09udmRveWFoSFNycUo2TzRnMyUyQkliNU1nZ0R3OE1lWVh3TnBCSHVZSVBFd0czQUwyVSUyQjIlMkJUcDFqSVNyMTN2ZDNnTzRJZEdRRTJ2bjFmMWQ3ZThMWHo5aXBEY1RTWWE1ckd4NXVzak1DYnkxYmVZYWxwMUxsYkQxNXFBdmJWYXBVV0hJU3hVQUpQc2lNT2owNE5zTGZNMEhjZDdDMDhLdm5jYVdWOVRXVlJXQjk2SVRSdFhWdDNodzZzMm5WeFhUZnlSdVBscGZVdHZ3TjJYMXYzTzdYMXRnU09POXh0V3c4Y2RWT0g3cDIxNTNvZ2ROJTJCZmN2cndqU2tudE5NMVd6bG5KRDlpMGZUZCUyRnllYXFsbiUyRjAxa0dVdjElMkZNZnowRHclM0QlM0QlM0MlMkZkaWFncmFtJTNFJTNDZGlhZ3JhbSUyMGlkJTNEJTIycks0NDJQRWN6SENtODBLaHBXWl8lMjIlMjBuYW1lJTNEJTIyUGFnZS0yJTIyJTNFNVZkTmI2TXdFUDAxSEN1QlRSeHkzSkp1VjZ1MnFwUkR0MGNYRDhHcVlTTEhLV1IlMkYlMkZacGdBcFJXVmFWMGhWSTRZTCUyRjVNUFBteVpZOUd1ZlZ0ZWFiN0JZRktJJTJGNG92TG8waU1rQ0h4bVB6V3liNURGWXQ0QWF5MkZjJTJCcUFsZndMRHZRZHVwTUN0Z05IZzZpTTNBekJCSXNDRWpQQXVOWllEdDFTVk1OVk4zd05JMkNWY0RWR0g2UXdXVnNYVzNTR1h5RFhtVnM2SXE2JTJCbkxmT3JwSnR4Z1dXUFloZWVUVFdpS1laNVZVTXFpYXY1ZVVtZTBhMXFuN2ZjWHdReFRKJTJCTkglMkZ1TDVwa1B6OFRjaXhCUTJGT201bzBxViUyQjQyam0lMkJ2TkQlMkZvV1FDYmRGbTN6S3BjVmNJcUxQNUhyMHNNMmxndGVGSmJTMnRkaXlXbVZ6WldXQ0hxVlFxUm9YNkVFc0ZoeWhOTEw0MUdwJTJCaFoyRkpCRSUyQnB0YmclMkZBVzJnZXRXNkQlMkJvT2pzMndLZ2JNd2VpOWpXdXpNRmVLRXpEeDNienM1QkE1S09zSmdUcU1Pd0d1ajVrN2t1M0E4ZndKenVtN25BY241VHhOVTVLOHlibGdUMnpHdnBCekVrNk04M0RFZWVDZlZ1SHBySDdmVlBqaHFTT3dNRDI4ZWI2d0M1Uk1yQXV6VVJmT3ZnZWhQN0Vlc1BQZjhjTm9ZcHpQMyUyQldjbk11T1A1dmFLUnVOT0NmbnYlMkJPenFaMjdpJTJCOTQ3czclMkYzN2xycDkwRjVHRHJYZVBvMVQ4JTNEJTNDJTJGZGlhZ3JhbSUzRSUzQyUyRm14ZmlsZSUzRYZV1hcAABGnSURBVHhe7Z15XE/Z/8dflphh7CSMbTAyxjJG32/INs0kk31LjDGpoVFJpcVS9kGpJJJSljTZZS2FTNbB2BJpmSyRJaSy/JTxfZzTfD409HvknsvnVu/zePTP53PPufc8z73vz/OerXI23rEvQUkygYm6KyTnpYzAkoiahIEIaIxAJV0zjZ27NJyY4p9YK1L8E+NHuYUJvCzHJHDSqO7CJZXVAvLPjEIbA+eyWn3hek+YEghvb2/hcspqAQ4ODsRPoPFdA0+B4p90gBT/pLN7+RKwcqL4J5Xgy5cv4ejoSPFPKkAA7PeDJFAAIMtKQVAMIJNAHx8fsULKcG57e3viJ9D+LitPkgQK8KP4Jx2eSgIp/klj+Pfff3MJJH7S+LFc7PeDJFA6P56TgqAYQJJAMX4kgWL8SALF+FH8k86PJFA6O5aTJFCMH0mgOD+SQBkYkgSKQSQJFONHEijGjyRQOj+SQOnsSALF2KlyU0+gDBwpCIpBJAkU40cSKMaPJFCMH8U/6fxIAqWzIwkUY0cSKA8/6gmUgSNJoBhEkkAxfiSBYvxIAqXzIwmUzo4kUIwdSaA8/EgCZeBIEigGkSRQjB9JoBg/kkDp/EgCpbMjCRRjRxIoDz+SQBk4kgSKQSQJFONHEijGjyRQOj+SQOnsSALF2JEEysOPJFAGjiSBYhBJAsX4kQSK8SMJlM6PJFA6O5JAMXYfRAJf5OfjZvo1fq6GjZqgopaWPFetsFLeVxDMz3+BazcyeG2bfKoDLa2KCqu5PJdDEijGkSRQjN/7kkCKf2LtUhbiH0mg2D1CW8SI8WO538vq4Fs3r2O+mwNupV9D02Ytkfs4B3EHomA2dgLsnGehdp16ha78fuZddPmyIb4x6oeAdRHq7wJ8FyA1ORGey9Zi5IAeGDHaAkNMx0qq9bG4A9i59Tfk5T2Hcb+h+O77QZLKeVsmuSXwevptTHbxwrXrGWjZojFych4jMuYYrCyGYs50K9SrW6vQZdy99wD1Wxihf98e2Lnx1X/e+HVxCC5fuYrQoDkwMLKA5dhB+Gl0f8n1Zuf5yWoWtoR6oEqVjySX8++MmpZAtuu8h4cHBgwYgDZt2qgv7/Tp04iJiUFeXh569eqFHj168O9ycnKwY8cOJCQkoFmzZhg5ciRq1KghG493LUipElgUv3et3/s+Xm4JpPgn1mJKjH+bt+/Hlh0H8OLFC5gNM8b3Rt3w8ceVxSoKQNMSmJSUhO3bt+PevXswMDDgca5mzYJ/41kS4p8SJLA0/H7Iull0StJlWJsPxcwFftDr0h2JCRfQtHlLPHmSy0VwS/hqhEXEQkurkvoBCluzAovnTcPj3BycSMhQS+KKJb+CleflH4pL8edQT7s+6tVv8M4PXvy50xhqrI8fxlmj49f/xUwXayz0DUYfkyHvXNb7lsBLiX9h8KgpWO7lih7dvsL5i8lo1aIxcnOfIjLmKEJCd+L3yEBUqvSqV9U/aDNcZ/ohJ/cJ7v4Vo5bE+Z4hYOWFBc/D2fNXoFO/Dhro1H3nOj958gzbdh3EuvA9iDn4B7LSD6FG9U/euZyiMmhSAo8fP45jx45xqWMiqK+vzy8zMTER48ePx5AhQ9C2bVt4eXlh6tSpXATd3NyQkpKCcePG4cSJE0hLS0NwcDDKly8vG5N3KUiJElgUv549e75L1T7IsXJKIMU/sSZTYvzbs+8I+g2fDAeb0ejUURfu8wIwclgfzHefKFZZDUvg/fv3MXjwYB7TDA0NERkZiaysLAQGBpaY+KdpCSwtvx+ySuAIk26wd52LTv/pijFDDNG8RWs8fJDJZXDN5ij4LHSH+QR7dNLron6ABhvpYfhoC/h5zsFkl9kwHfMz/+51CZw91RY9Dfui17ffI2r3VvgscEP2oyx8P3AEnN0XonLlj3Dh7CksnO2EtJQkdO9thGlzvFCzVh1Ms/8Z5StUwLzFAbzchbOccPniOazdEiP8ELMC5OwJ7GJojnluv6Cbfkf0NpmA1q2aIvN+Fs5fTELMDn/MmOsPB5sf0PW/7dXX/nX3H3gv36wFgZg7wwrjzQvk9nUJtHZcxN9eTfoYYEvEAUyfsxxZj3JhOvQ7eMyxw0cfVcLJPxMwZfoSXEm+hj6G+vBZ6Ig6tWvgVsY92E/1xsOs7FIngZ6ensjNzUVsbGwhCVy0aBGXOicnJ85y+fLlSE5OhrOzM+/527RpE3R0dJCdnY1+/fph2bJlaN/+VZvIcmMVsxAlSmBR/JYsWVLMWn24w+SUQIp/Yu2mxPhn7+qN53l5WO7lUhALAjdhzqJVuJMaLVZZDUtgXFwc/P39sWHDBl6P1NRUmJubIzw8HOvXry8R8U/TElhafj9kk8BHjx6if6+vEHf2Kg5G78bqAB+EbjuA6D3bMW+GPf/8V3dHLohsSJbfeMmX0bd7O94DGOzvjT9PHcWGnXFvSCAbDh4+ahzaddRDv14d4DZ/CZp+1grzZ9hjov10dOv5Lbq2a4QxFjYw7j8UQcvYj3s2fos4xIeSh5qO5aLJUvjalVjqORvHL94SfojllEAmWe27jMSNy3uxKzIO3svCELtnJbbtPAg7l8X8cxaQuul3wLBBhvzaL19Jwxd6w3kP4OKloTh64jyORAe/IYFsONjix4HQ69QW7fRNsdTTifcw2jkvhpuLJb7rrQ+dlkawtTLFsIGG8FiyDtk5jxEXFaRmFJ+Qwq+vNPUEqipnbGyMWbNmqXsCra2t0bdvXy54LLGewpCQELi7u2P69OmIiopSc2F57ezs+PGaSEqUwKL4MY5KS3JJIMU/sZZVavxjvZPVq32CTxtp8wqO+dkd//f8OTatXShWYQ1LYGZmJp/a0rx5c16PPXv2wM/PD7t371bHM6XHP01LYGn5/ZBNAhPiz8JjtjPvYXOyGYv2X+lxKfP1mMV77Zi49f+mE9ZtiUat2gXDkuw71ivH5gKe+/MPsDfp2FMpaNS4WaGeQJUEXk1N5qLI5I4lNtePzcHJzclGyAof/H4mDeXKlUNa6hX06dYWxy6k83O6L1iKvv2H8TyH9u/F+B8GIOl2vvBDLKcEnjmfCKcZvjiwawUPNP/p3Ba2E0zhPj8AWY9ysNTDCR26mvHv69YpmLfBvjt3IYnPBTxxKh7sTTrt4k40a9KwUE+gSgKTUq5zUVTJ3f7Yk2BzcLJzcuHltx7XL+3h/FhvoO7XQ5GRvI8PI7NUliRw4MCBmDx5Mnr37s3rzrr9XVxc4OrqirCwMP6nSpaWljAxMeFDK5pISpTAovix3gelJbkkkOKfWMsqPf6xl2KHqd4IXrcDR2NCCo3GSK25pucEsutmIhUREQHWS29ra4vhw4ejpMQ/pUpgSeHH2l/WhSH37mRg5ICeOPBHEuZMs0OVKlUxxsIaxt2/xET7aahYUQtHDkUjOHwvf2bYJFuDDo3x7NlTPg8w7/lz3M5Ih4v7IlhMdHyrBB4+uA+162rD/VffQs8dO9/6kOVvPIu7D53HL2MHw2KiA0aNteLfR+7agkC/RdgefUrqs1son1zDwRm3M/kCjtQLO2Dr5IGqVT7mEtim8zDMcLbkq4P37T+OqO1+//D7Gw0/N8bTp8/4PEA2ZJF+8y4859lhyqQxb5XAqP3HoV2vFvw8nQvVgZ1v2cpNb/CIP7ERX37RosxJIBvyZX+DBhUsIGLDxUz8zMzMwIYAXu8JHD16NGxsbNCly6spDrLcWMUsRIkSWBS/VatWFbNWH+4wuSSQ4p9Ymyk5/rE51cZDbPFpQ20+x1r382Zilf0nt6YlkPUEshfb9PR0/pLbtWtXfmUlJf4pVQJLCj/ZJZAVyHrdZi9chlp16mCWiw2/oZjQsdXCbIHIXM8VqN+gEf/8j2O/83mDIRsiUbFiwfYnu7aF4+zpE9gbd+GtEphxMx2X4s/Af822AjE5dxq3b6WDvYUfjt2H9dsP8s/z8/KQnJiAdl91hqWZCb7s0BlObgv4d2zV8dW/UvjiEDmSXBLIroX19Pl7u/KevokOBcMNTOgmuyxGqxZNsNJ3Gho1LBiWOHT4Tz5vcF/EMlSsUIF/9tvmKBw/GY+Ek5veKoE30u+AvXFHhHvx40+duYT0mwWfMcE8tDeQf56Xn4+Ll1Kh1+kL9SKUstQTyHoBdXV1YWVV8OIQGhrKAyXr8WPCx4ZOqlWrhmfPnsHIyIjPo2nUqOC+/tBJiRJYFD+2uEZpSS4JZPWi+CfWukqMf8mpN9DF8Cc+bYbNx65QQb4FYJqUwMePH/NeoAYNGvC5zlWrVlU3XkmJf0qVwJLCjzW4rD2BXCpOHIarnQXf1uX1xR9sz6yNYat4j59qPuB0h/HIzs6C36pXPVBM5gZ/p4fdsedwYN9O9epg1XBw6zbtMGbotwj+bQ8+a9Ua5qbGfMhZu35DjBvZl688btexM1Yt90LYan8cOXcdG0IDsXj+dEQejsftWzcxydIUtlPc1HMExcKWvAtD4o6egfkvsxEaNLfQcAPbMytozXbe46eaD2hpM5cPE7MtW1SJyRxbKHLh+Abs3BunXh2sGg5u17YlvjGxQuQ2P/42azTQms8DbNigHvoMsuErj9m8QU/fdVgetBk3rzBBLxDMsiSBbNuElStXcvm7e/cunwvIJk2z+X9snsyIESP42/Lq1asRHR3Nt1mg1cGvnqSi+KnmGIk+c3Lml1MCKf6JtYwS4x97GU9MuoogvxnqyjERbPlZY7HKanhOINv+iu16wOYBVq78arsbJoVsXmBJiH9KlcCS9vsh25xA1RPBVgJPtbfg28B83qYdHmU9QGpSIl+xO2GSCxfBp0+foEPz6li6aqNaCll+tudOz07NMXz0OGhpab2xT+Cg4WP4at9tG9fy07G9BX2DNvDVwWzVb0iAD/+8Tl1t+ASEQd+gN+8VnPSzKfZH7eTfsbmB3gFhqPBP75nokyxnTyC7lvPxSRg3cQ7vgWPS9uDhI77fH1uxO9XRnIsg27alqo4BNq9bpJZCFb8mX5jA4sdBqKRV8Y19An80M4GF9VysCdvFq832FmQTnNnqYMdpPnwxCkva9WojPGQ+vumpp8bDegbZopJHN39H9Wqv3hpF+WlyixjVtf97YUh+fj4XvyNHjvBD2NzAmTNnctE7e/YsnzjNUpUqVfiqYk2tDGbXoMSewP+Pn+j9Ind+OSWQXRvFP7EWUlr8a91pCNhc6tdTtU+qIPuW+PxWTfYE+vr6YuvWrW80Fnuxbdq0aYmIf0qVwJL2+yG7BKruKrbv341raahdpy60dRqKRYZ/5c56eB/ly1dA9RoFCyRU6cH9e8i8dxdNm7fgYvh6upNxk4tfXW0dWa9FbglUXRzb9++vtHQufaynTs50/8EjPqxRs0a1QsXey3yIO3cf8LdcJoYfIilBAouqJ9tEld0ztWvXLnQI20A6IyODDwHL9TIhlbUSJVBVl6L4Sa3r+8gntwRS/JOnlcpC/NOkBBanlZQe/5QigSX99+O9SWBxbrLScMz7ksDSwKY4dVCyBBbn+jV9jJIlUNNsinP+9yWBxTl3aTiG4p/0VlS6BEqv2YfJqXQJ/DAUxM4i+5xAscspmbkpCIq1G0mgGD+SQDF+JIFi/Cj+SedHEiidHctJEijGj+UmCRRnKOt/DJHhckpcESSBYk1GEijGjyRQjB9JoHR+JIHS2ZEEirFT5SYJlIEjBUExiCSBYvxIAsX4kQSK8aP4J50fSaB0diSBYuxIAuXhx0uhICgGkyRQjB9JoBg/kkAxfhT/pPMjCZTOjiRQjB1JoDz8SAJl4EgSKAaRJFCMH0mgGD+SQOn8SAKlsyMJFGNHEigPP5JAGTiSBIpBJAkU40cSKMaPJFA6P5JA6exIAsXYkQTKw48kUAaOJIFiEEkCxfiRBIrxIwmUzo8kUDo7kkAxdiSB8vAjCZSBI0mgGESSQDF+JIFi/EgCpfMjCZTOjiRQjN0bEihPcWWzlIm6K8pmxWWq9ZKIwv/1RaZiqRgiUCwClXTNinUcHfR2AhT/xO4Min9i/Ci3OIH/AQbituCsIrsLAAAAAElFTkSuQmCC"},81613:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/type_index-7d73c323ed94d760c7913a71bb3752be.png"},79525:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/write_path-4491f189ec9042b252c1b632b86d4336.png"},77635:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/write_transaction-6f6c3844fe612478890f193c06d1af99.png"},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6907],{3905:(e,t,a)=>{a.d(t,{Zo:()=>h,kt:()=>p});var n=a(67294);function l(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function d(e){for(var t=1;t=0||(l[a]=e[a]);return l}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(l[a]=e[a])}return l}var o=n.createContext({}),r=function(e){var t=n.useContext(o),a=t;return e&&(a="function"==typeof e?e(t):d(d({},t),e)),a},h=function(e){var t=r(e.components);return n.createElement(o.Provider,{value:t},e.children)},c="mdxType",k={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},T=n.forwardRef((function(e,t){var a=e.components,l=e.mdxType,i=e.originalType,o=e.parentName,h=s(e,["components","mdxType","originalType","parentName"]),c=r(a),T=l,p=c["".concat(o,".").concat(T)]||c[T]||k[T]||i;return a?n.createElement(p,d(d({ref:t},h),{},{components:a})):n.createElement(p,d({ref:t},h))}));function p(e,t){var a=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var i=a.length,d=new Array(i);d[0]=T;var s={};for(var o in t)hasOwnProperty.call(t,o)&&(s[o]=t[o]);s.originalType=e,s[c]="string"==typeof e?e:l,d[1]=s;for(var r=2;r{a.r(t),a.d(t,{assets:()=>o,contentTitle:()=>d,default:()=>k,frontMatter:()=>i,metadata:()=>s,toc:()=>r});var n=a(87462),l=(a(67294),a(3905));a(8209);const i={id:"database",title:"Archethic's database"},d=void 0,s={unversionedId:"build/core/database",id:"build/core/database",title:"Archethic's database",description:"Archethic is shipped with a custom database engine built from scratch to support an efficient data storage to support",source:"@site/docs/build/core/database.md",sourceDirName:"build/core",slug:"/build/core/database",permalink:"/build/core/database",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"database",title:"Archethic's database"},sidebar:"docs",previous:{title:"Yubikey implementation",permalink:"/build/core/cryptography/yubikey"},next:{title:"Election",permalink:"/build/core/election"}},o={},r=[{value:"Rationale",id:"rationale",level:2},{value:"Log Structured Merge",id:"log-structured-merge",level:3},{value:"Log Structured Hash Tables",id:"log-structured-hash-tables",level:3},{value:"Our approach",id:"our-approach",level:3},{value:"Design",id:"design",level:2},{value:"Chains storage",id:"chains-storage",level:3},{value:"Chain indexing",id:"chain-indexing",level:3},{value:"File indexes",id:"file-indexes",level:4},{value:"Summary",id:"summary",level:5},{value:"Addresses",id:"addresses",level:5},{value:"Keys",id:"keys",level:5},{value:"Types",id:"types",level:5},{value:"Memory indexes",id:"memory-indexes",level:4},{value:"Transaction index",id:"transaction-index",level:5},{value:"Chain stats",id:"chain-stats",level:5},{value:"Last index",id:"last-index",level:5},{value:"Type index",id:"type-index",level:5},{value:"Chain reader",id:"chain-reader",level:3},{value:"Write path",id:"write-path",level:3},{value:"Read path",id:"read-path",level:3},{value:"Additional of-chain storage",id:"additional-of-chain-storage",level:2}],h={toc:r},c="wrapper";function k(e){let{components:t,...i}=e;return(0,l.kt)(c,(0,n.Z)({},h,i,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("p",null,"Archethic is shipped with a custom database engine built from scratch to support an efficient data storage to support\nconcurrent writes and reads while avoiding much as I/O as possible."),(0,l.kt)("h2",{id:"rationale"},"Rationale"),(0,l.kt)("p",null,"Several solutions have been analyzed and uses from benchmarks, to implementation until the need to implement a solution which will fit the needs and requirements. (ie. LevelDB, RocksDB, Cassandra, ScyllaDB, Aerospike, Redis, etc.)"),(0,l.kt)("p",null,"There are multiple database engines which provides different needs, but we wanted to focus on NoSQL and efficient disk amangement and writes."),(0,l.kt)("p",null,"Our choice ended with log structued family storages (instead of B-tree which are more read efficient, but suffer for random writes)"),(0,l.kt)("h3",{id:"log-structured-merge"},"Log Structured Merge"),(0,l.kt)("p",null,"LSM (Log Structured Merge) comes with the immutable datastructures and append only writes."),(0,l.kt)("p",null,"Append only writes are really efficient in term of disk I/O as a single seek in the file is needed to be placed at the end of the file, and write the new data."),(0,l.kt)("p",null,"There are also shipped with inmemory structure which is flush over time while keeping this append-only log on disk for backup and safety measure. So those dumps are immutable and provided the database view at certain time."),(0,l.kt)("p",null,"But because most of the KeyValue database using LSM, involving updates of keys, they must manage the redundancy of the data and provide cleanup (deleted or updates entries).\nTo support this clean, they are using ",(0,l.kt)("inlineCode",{parentName:"p"},"compaction")," which is a merge operation which take only the last data information from multiple immutable dumps."),(0,l.kt)("h3",{id:"log-structured-hash-tables"},"Log Structured Hash Tables"),(0,l.kt)("p",null,"Log Structured Hash Tables as Bitcask are really interesting as the writing and the reading are efficient because it's using immutable data and key indexing in memory for a predictable and fast reading."),(0,l.kt)("p",null,"Its main requirement is to hold all the key of the value into the memory otherwise"),(0,l.kt)("p",null,"This approach also invovles a ",(0,l.kt)("inlineCode",{parentName:"p"},"compaction")," as data blocks are appended with immutability but needs to be merged after some time to avoid filesystem exhaustion."),(0,l.kt)("h3",{id:"our-approach"},"Our approach"),(0,l.kt)("p",null,"All those database Key-value, Wide column storage, etc.. which are using LSM are considered as global database to support different kind of use cases. However in our case, we have a specific need and requirements: ",(0,l.kt)("strong",{parentName:"p"},"we are only dealing with immutable data at all"),". The data stored in the transaction will never changed, and the mutation and views are managed from an application perspective but not from the disk itself."),(0,l.kt)("p",null,"Then we can reduce a lot of effort and I/O which are heavy in term of computations as compaction/merges, dump of memory structures"),(0,l.kt)("p",null,"In additional to it, we can keep some indexing in memory while providing file backup to avoid memory exhaustion and be able to scale more.\nEvenif we might the indexing on file not efficient, because we are using append only strategy for everything, the indexing is better as the last index bring the last update."),(0,l.kt)("h2",{id:"design"},"Design"),(0,l.kt)("p",null,"So in order to fullfill all those requirements and optimize performances for our needs, we create a new data layer from scratch.\nNevertheless, we took concepts interesting from log structured and wide column storages to support efficient writes/reads with the support of nested column filtering."),(0,l.kt)("h3",{id:"chains-storage"},"Chains storage"),(0,l.kt)("p",null,"The main concept is simple: ",(0,l.kt)("strong",{parentName:"p"},"each chain has its own file"),"."),(0,l.kt)("p",null,"Each chain is uniquely identified by its ",(0,l.kt)("inlineCode",{parentName:"p"},"genesis address"),": which is the address of the first's previous public key, aka the 0th address."),(0,l.kt)("p",null,(0,l.kt)("img",{src:a(77635).Z,width:"513",height:"231"})),(0,l.kt)("admonition",{type:"info"},(0,l.kt)("p",{parentName:"admonition"},"The append-only strategy is straighforward, each time a new transaction in a chain is persisted, the transaction is added at the end of the file of a chain. So in term of disk access and I/O, it requires a simple seek at the end of the file and dumps of the transaction serialized."),(0,l.kt)("p",{parentName:"admonition"},"This concept led to the streaming capability of the writes to avoid exhaustion of the system (as a backpressure mechanism)")),(0,l.kt)("p",null,"So in order to be able to read specific columns from the transaction, the transaction is serialized in a specific format before to be written to disk.\nThis encoding wraps each key value of the transaction into self-descriptive and schema less write.\nEach key/value pair is encoded in that way:"),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Column name size (1 byte)"),(0,l.kt)("th",{parentName:"tr",align:null},"Value size (32 byte)"),(0,l.kt)("th",{parentName:"tr",align:null},"Column name (binary)"),(0,l.kt)("th",{parentName:"tr",align:null},"Value (binary)"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"7"),(0,l.kt)("td",{parentName:"tr",align:null},"33"),(0,l.kt)("td",{parentName:"tr",align:null},"Address"),(0,l.kt)("td",{parentName:"tr",align:null},"00743B809ADDE7E1E3E9B5AFB704813D06155958FBBB78CD052CC45A1B19F976BE")))),(0,l.kt)("p",null,"However, because we are using a schemaless approach letting the code defining the encoding and decoding, each transaction is prepended by its size length (4 bytes) and its version."),(0,l.kt)("p",null,"So by this way, we know the boundaries of the transaction within a file and the way to decode it."),(0,l.kt)("h3",{id:"chain-indexing"},"Chain indexing"),(0,l.kt)("p",null,"Because each chain has its own file, we need also a mechanism to identify a transaction without a chain, or identify a transaction amongs the chains."),(0,l.kt)("p",null,"Different kind of indexing are performed some completly both in memory and disks for backup and long term storage."),(0,l.kt)("h4",{id:"file-indexes"},"File indexes"),(0,l.kt)("h5",{id:"summary"},"Summary"),(0,l.kt)("p",null,"To provide a way to find a transaction without knowing its genesis address, we implemented a summary index (as there are in other solutions) to help the identify the location of the data.\nThen, as the ",(0,l.kt)("a",{parentName:"p",href:"/learn/sharding/beacon-chain"},"BeaconChain")," used this concept, we also applied the address's subset identification here.\nSo each address contains a subset which is the first byte of the digest (exluding the metadata to identify curve and hash algorithm)."),(0,l.kt)("p",null,"So each subset has its own index, with a list of transaction, genesis addresses, the transaction size and its offset (location in the chain's genesis file)"),(0,l.kt)("p",null,(0,l.kt)("img",{src:a(34662).Z,width:"641",height:"31"})),(0,l.kt)("h5",{id:"addresses"},"Addresses"),(0,l.kt)("p",null,"One principle of the transaction chain is to able to target any address of a chain as recipient.\nSo during the transaction validation, nodes are able to resolve recipient last address and then target the right shard of the chain. They are doing this resolution by asking the recipient shard about the last transaction address."),(0,l.kt)("p",null,"But in order to make this possible, previous nodes of a given chain need to keep a track of the last transaction of the chain."),(0,l.kt)("p",null,"Then a specific index file is provided (",(0,l.kt)("inlineCode",{parentName:"p"},'"Genesis-address"-addresses'),") for this purpose which contains a given chain (genesis file), a list of timestamps and addresses for this chain."),(0,l.kt)("p",null,(0,l.kt)("img",{src:a(71624).Z,width:"321",height:"31"})),(0,l.kt)("p",null,"The timestamp is useful during replication and validation to be sure to get the last chain address at the time of the validation, so we can reproduce the validation later without problem."),(0,l.kt)("p",null,"However during the transaction validation we keep the latest one."),(0,l.kt)("h5",{id:"keys"},"Keys"),(0,l.kt)("p",null,"Sometimes we also want to identify the genesis address or first public key of a chain.\nBut we need to track it as well."),(0,l.kt)("p",null,"For instance, in smart contract code, we want to do some actions depending if a transaction's coming from a specific person, but how to identify it, as its transaction chain evolves and we don't keep a track of all the transactions."),(0,l.kt)("p",null,"Then being able to identify the first transaction of a chain is important."),(0,l.kt)("p",null,"So we are adding a new chain index file (",(0,l.kt)("inlineCode",{parentName:"p"},'"Genesis address"-key'),") to support this feature."),(0,l.kt)("p",null,(0,l.kt)("img",{src:a(68825).Z,width:"321",height:"31"})),(0,l.kt)("h5",{id:"types"},"Types"),(0,l.kt)("p",null,"We also want to be able to list of the transactions of a given type, this is useful when the starts and fill memory tables but also to list transactions in UI or API for network transactions."),(0,l.kt)("p",null,"Then a index is given by type for this purpose where the addresses are appended"),(0,l.kt)("p",null,(0,l.kt)("img",{src:a(81613).Z,width:"411",height:"137"})),(0,l.kt)("h4",{id:"memory-indexes"},"Memory indexes"),(0,l.kt)("p",null,"Among the files indexes for backup or long term storage, we are proving some in memory indexes (a bit like Log structured Hash tables) to read data with predictable latency.\nThis make reads fast."),(0,l.kt)("p",null,(0,l.kt)("img",{src:a(58321).Z,width:"482",height:"95"})),(0,l.kt)("h5",{id:"transaction-index"},"Transaction index"),(0,l.kt)("p",null,"This index works a bit like a chache and is identified by a transaction address with the following information:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"genesis address"),(0,l.kt)("li",{parentName:"ul"},"offset"),(0,l.kt)("li",{parentName:"ul"},"size")),(0,l.kt)("p",null,"So once the a transaction is present in this cache, we can easily read transaction give information about the position of the file, and read it really quickly."),(0,l.kt)("p",null,"But if the transaction is not present, we can easily use the index summary as fallback, to identify the file and the offset."),(0,l.kt)("h5",{id:"chain-stats"},"Chain stats"),(0,l.kt)("p",null,"This index is built from the genesis chain files and contains information about the number of transactions within and the last offset.\nSo during the write, the transaction index/summary is notified about the last offset of the chain, and help to move forward in the location of new transaction."),(0,l.kt)("h5",{id:"last-index"},"Last index"),(0,l.kt)("p",null,"As we mentioned in the last addresses chain index file, we need to quickly know what is the last address of a chain, so here we a cache, we says for a given genesis address what is the latest."),(0,l.kt)("p",null,"So this table is filled every time a node receives a last address notification."),(0,l.kt)("h5",{id:"type-index"},"Type index"),(0,l.kt)("p",null,"Because we have type index file, we can also leverages a memory index to know how many transactions for a given type exists.\nThis is useful for key derivation for network transactions.\nSo we can easily and quickly get the size of a chain."),(0,l.kt)("h3",{id:"chain-reader"},"Chain reader"),(0,l.kt)("p",null,"Wide column storages provides the capability to extract sub columns information to avoid the load of an entire row in the memory to let the application filter the data.\nThe filtering can be done on the disk, while make it efficients."),(0,l.kt)("p",null,"The behaviour like is a two dimensional key-value pair, where the 1st dimension targets the partition key and the 2nd targets the columns of the row."),(0,l.kt)("p",null,"So we achieve a similar approach here, by eing the 1st dimension as the chain file and the 2nd as the list of columns names encoded during the transaction write."),(0,l.kt)("ol",null,(0,l.kt)("li",{parentName:"ol"},"After being able to get the lookup informations from the chain indexes to identify the file and offset in the file of a given transaction, we ",(0,l.kt)("inlineCode",{parentName:"li"},"seek")," (put the cursor) at the offset position."),(0,l.kt)("li",{parentName:"ol"},"Then we can sequentially read columns and values and pick the ones we want"),(0,l.kt)("li",{parentName:"ol"},"When we reached the end of the transaction (thanks to the size information from the indexes) or the enf of file, we convert those values into a transaction where the values retrieved will be filled in to the structure.")),(0,l.kt)("h3",{id:"write-path"},"Write path"),(0,l.kt)("p",null,(0,l.kt)("img",{src:a(79525).Z,width:"811",height:"481"})),(0,l.kt)("p",null,"So in order to be written, a transaction follows a write path to make reads efficient."),(0,l.kt)("p",null,"After a transaction is written to disk in the genesis chain file, several disks and memory writes are performed to help the indexing of this transaction."),(0,l.kt)("p",null,"Transaction's address is written to:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"the summary index from the subset of the transaction (file)"),(0,l.kt)("li",{parentName:"ul"},"the last addresses index of the chain (in memory and file)"),(0,l.kt)("li",{parentName:"ul"},"the transaction's type index (in memory)"),(0,l.kt)("li",{parentName:"ul"},"the bloom filters (in memory)"),(0,l.kt)("li",{parentName:"ul"},"transaction index (in memory)")),(0,l.kt)("p",null,"Its public key is also written to the chain's public key index. (file)"),(0,l.kt)("p",null,"Then transaction's type in memory index number incremented, as well as the chain stats in memory index."),(0,l.kt)("h3",{id:"read-path"},"Read path"),(0,l.kt)("p",null,(0,l.kt)("img",{src:a(30401).Z,width:"505",height:"441"})),(0,l.kt)("p",null,"To make read efficients, when a transaction wants to be retrieved, it goes to the read path:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Check if the transaction index is present, if yes we have information about the file and position"),(0,l.kt)("li",{parentName:"ul"},"Otherwise we check the bloom filter, if yes, we read the subset summary to identify the position of the transaction, otherwise you inform the transaction does not exists"),(0,l.kt)("li",{parentName:"ul"},"Then a reader is able to perform reads according to the fields requested and the position retrieved.")),(0,l.kt)("h2",{id:"additional-of-chain-storage"},"Additional of-chain storage"),(0,l.kt)("p",null,"For now, we have covered the scope of chain storage and retrieval, however we also need to persist some data which are not really inserted into a chain and are important for well-being of the node execution."),(0,l.kt)("p",null,"So we have to leverage others kind of storages and indexes as simple key-value in memory loaded from disk."),(0,l.kt)("p",null,"The scope of those storages are:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Bootstrapping information (last P2P bootstrapping seeds, storage nonce, last sync date)"),(0,l.kt)("li",{parentName:"ul"},"Network statistics (aggregated TPS and nb of transactions)"),(0,l.kt)("li",{parentName:"ul"},"P2P view (aggregated node availability from the beacon chain)")))}k.isMDXComponent=!0},68825:(e,t,a)=>{a.d(t,{Z:()=>n});const n="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUEAAAAfCAYAAAB5/X8CAAAPe3RFWHRteGZpbGUAJTNDbXhmaWxlJTIwaG9zdCUzRCUyMkVsZWN0cm9uJTIyJTIwbW9kaWZpZWQlM0QlMjIyMDIyLTA0LTA3VDE1JTNBNDElM0E1OS43ODBaJTIyJTIwYWdlbnQlM0QlMjI1LjAlMjAoTWFjaW50b3NoJTNCJTIwSW50ZWwlMjBNYWMlMjBPUyUyMFglMjAxMl8yXzEpJTIwQXBwbGVXZWJLaXQlMkY1MzcuMzYlMjAoS0hUTUwlMkMlMjBsaWtlJTIwR2Vja28pJTIwZHJhdy5pbyUyRjE0LjQuMiUyMENocm9tZSUyRjg3LjAuNDI4MC4xNDElMjBFbGVjdHJvbiUyRjExLjMuMCUyMFNhZmFyaSUyRjUzNy4zNiUyMiUyMGV0YWclM0QlMjJYZGR3Z1V6WG9rZngyd3l3NXNRaCUyMiUyMHZlcnNpb24lM0QlMjIxNC40LjIlMjIlMjB0eXBlJTNEJTIyZGV2aWNlJTIyJTIwcGFnZXMlM0QlMjI0JTIyJTNFJTNDZGlhZ3JhbSUyMGlkJTNEJTIyS3ZUeTZfRm4xUEd2SXVrR0dCOG8lMjIlMjBuYW1lJTNEJTIyUGFnZS0xJTIyJTNFNVZuWmNwc3dGUDBhVDUlMkZxQWNsZ2VNelNKVE5kTXBPMFNSOWxKSU5xR1htRUhKdDhmU1VRWmhGSm5NU3VNODZUMFJYYXpybjM2SEk5Z0dmejlSZUJGc2wzamdrYkFBZXZCJTJGQjhBSURyT3I3NjBaYTh0SVRodURURWdtTHpVbTI0b3ZmRUdCMWpYVkpNc3RhTGtuTW02YUp0akhpYWtraTJiRWdJdm1xJTJGTnVXc3Zlb0N4Y1F5WEVXSTJkWWJpbVZTbmNzUDY0NnZoTWFKV1RvQTVueHpWTDFzVHBJbENQTlZ3d1ElMkZEZUNaNEZ5V1QlMkZQMUdXRWF2QXFYY3R6bkIzbzNHeE1rbGRzTVdGNndrNyUyQjM5NU5mRnhlJTJGNVk4JTJGbDluNk92Z1ltTDNKdkRxdzRNc1VFejNHR2NCVExtVENZNTRpOW8zemhUSzZ5dmlYU0prYnF0QlNjbVZLNUp5WlhyVWRrZCUyQmE4VVhqajI0TXZhcDV2bTUybnVmTjFpVVJkRTRrRWNaWWJvOWdpNlQ2MUpWWElCRVQlMkJjaFJ4eHZNbGJNU3JsWVJ1Um9uQ0VPUzNyWG5SOFpyNHMxN202R1huS3FWZ1dNOEhIamUwUFZkRURwUVBRZk9HSll6R0hkM2ZhYzlZOGFYSWlKbWtwb3Q5ZERZVlcwcU9Id0duOGI1N2hCYm1oTlpCQ3MlMkZYT2pIbEV2MWM3cEtxQ1JYQ3hScDIwb0ZjWnZOQ1lwbWNlRVRQNWVTMFpRWU8wWmk5bE9Ob3JMZ2IlMkJob2VxZVVzVFBPdUNoV2d0Z2pBUjRwZXlZRm41RkdUd0FtMFBjMyUyRk40UkljbjZjWVp0NXN3QVdFRnNJQWNqMDE3VjhWcTlralFpTlhRZTVycEZ5M001Q0olMkZtZ0tUNFJJdFRRWVBHVk9HWkpVWFV1VzM4dGYwU1NSVVJhV0VCRHR3QVdna1NzS0dmVHFjZ2l2cWd4JTJGN0U5JTJGeG5oSllOZkFOWXJ3Zll5dmJLeUhLZERxJTJGdWRxRmtUZVElMkZOVkVwSFh1THlXcTVoa09jTUJxUkQ1bSUyQnR4SkVVOHMlMkZWRFRJdGglMkIwZVRSTzB5VGRtQkNqc2ZhVVNKR29WZlJVeHhaVjk5bUo2WmhUak5sRGdkOFclMkYxMEVwOWZHSHZZRTU0Ym9waE9CZlVXbk83TFl1QkVLQ1gyRkNKUm1LSktVSHpFamJqaFdWM0hyam5JT3pvbG5jWEpPczlueGtoQjJGQWtlbkFIZll1QTdtWE16ODN2Z3dBME96UUdBZHA2Z2J1Y3IwelFvdmpvJTJGMyUyRmJlVnhzcEx0akh2TWFrbTAlMkZtM21VSzlJcmslMkIzWE9iV2ZGMTQ5SWZaVWdMd1NQU0phOVBFZnVwc09JQk5QZW5NeVBBaktaN2tqZmc0NWY5MmtMOUd5JTJGaG52VGxzQ0MlMkY4Z3doJTJCT09udmRveWFoSFNycUo2TzRnMyUyQkliNU1nZ0R3OE1lWVh3TnBCSHVZSVBFd0czQUwyVSUyQjIlMkJUcDFqSVNyMTN2ZDNnTzRJZEdRRTJ2bjFmMWQ3ZThMWHo5aXBEY1RTWWE1ckd4NXVzak1DYnkxYmVZYWxwMUxsYkQxNXFBdmJWYXBVV0hJU3hVQUpQc2lNT2owNE5zTGZNMEhjZDdDMDhLdm5jYVdWOVRXVlJXQjk2SVRSdFhWdDNodzZzMm5WeFhUZnlSdVBscGZVdHZ3TjJYMXYzTzdYMXRnU09POXh0V3c4Y2RWT0g3cDIxNTNvZ2ROJTJCZmN2cndqU2tudE5NMVd6bG5KRDlpMGZUZCUyRnllYXFsbiUyRjAxa0dVdjElMkZNZnowRHclM0QlM0QlM0MlMkZkaWFncmFtJTNFJTNDZGlhZ3JhbSUyMGlkJTNEJTIycks0NDJQRWN6SENtODBLaHBXWl8lMjIlMjBuYW1lJTNEJTIyUGFnZS0yJTIyJTNFNVZkTmI2TXdFUDAxSEN1QlRSeHkzSkp1VjZ1MnFwUkR0MGNYRDhHcVlTTEhLV1IlMkYlMkZacGdBcFJXVmFWMGhWSTRZTCUyRjVNUFBteVpZOUd1ZlZ0ZWFiN0JZRktJJTJGNG92TG8waU1rQ0h4bVB6V3liNURGWXQ0QWF5MkZjJTJCcUFsZndMRHZRZHVwTUN0Z05IZzZpTTNBekJCSXNDRWpQQXVOWllEdDFTVk1OVk4zd05JMkNWY0RWR0g2UXdXVnNYVzNTR1h5RFhtVnM2SXE2JTJCbkxmT3JwSnR4Z1dXUFloZWVUVFdpS1laNVZVTXFpYXY1ZVVtZTBhMXFuN2ZjWHdReFRKJTJCTkglMkZ1TDVwa1B6OFRjaXhCUTJGT201bzBxViUyQjQyam0lMkJ2TkQlMkZvV1FDYmRGbTN6S3BjVmNJcUxQNUhyMHNNMmxndGVGSmJTMnRkaXlXbVZ6WldXQ0hxVlFxUm9YNkVFc0ZoeWhOTEw0MUdwJTJCaFoyRkpCRSUyQnB0YmclMkZBVzJnZXRXNkQlMkJvT2pzMndLZ2JNd2VpOWpXdXpNRmVLRXpEeDNienM1QkE1S09zSmdUcU1Pd0d1ajVrN2t1M0E4ZndKenVtN25BY241VHhOVTVLOHlibGdUMnpHdnBCekVrNk04M0RFZWVDZlZ1SHBySDdmVlBqaHFTT3dNRDI4ZWI2d0M1Uk1yQXV6VVJmT3ZnZWhQN0Vlc1BQZjhjTm9ZcHpQMyUyQldjbk11T1A1dmFLUnVOT0NmbnYlMkJPenFaMjdpJTJCOTQ3czclMkYzN2xycDkwRjVHRHJYZVBvMVQ4JTNEJTNDJTJGZGlhZ3JhbSUzRSUzQ2RpYWdyYW0lMjBpZCUzRCUyMnZETHdETjlxQkZkTHVKRlhfNzB2JTIyJTIwbmFtZSUzRCUyMlBhZ2UtMyUyMiUzRTNaVmJUOEl3R0laJTJGelM1TmVzQzVYU0o0VEV3MFN5UmUxdllycTNZcmxvNkJ2OTRDSFdPQ01ScFA4V3J0JTJCeDI2NyUyQm1iTktLRFluNW0yU1MlMkZNZ0owUkpDWVIzUVlFWUl4aXYxbnFTeldTcG9lcllXeFZTSWt0VUttbmlHSUtLaVZFakR0SkRwanRGT1Ryc2hOV1FKM0hZMVphJTJCcHVtalM2ZSUyQnFFaldGSHlEalR1JTJCcElDWmMzYzhWcEd6Z0hOYzdEMFFrSjh4V3NTUTZUVEhNbVRMMGwwWk9JRHF3eGJyMHE1Z1BRUzNnTkZ6NFRmWFZIMDRkS1A1ME5ieDl2YmxKNnNHNTIlMkJwR1N6UWdXU3ZmcDFyMVptYkclMkJ1cjAlMkJ5QzR2Sk1aeVZEVWxhTVowRlhoRlBkVFhpa000ZE9vV0RVbHJxbExBc2h1SzZIR2RLd2ZaaFBGbHRQYmU4VnJ1Q3UxMzJDJTJCbDBucGd0TEdyV2lvWUpKSjdmZXFzZVlTdFNNd1R1SmMlMkJFdjRFcklQNXE2dDdaMjY4dVF6dllqQUZPTHZ3ZFUyWE9Bd1pERXhRMk5ldEhaSWc1VnRHb0VGandZRGpUZWNXc2w4RXpoOWdqbmVZWTRRUjZxWGtTNUZMS1FuZmkxekU5JTJGRmglMkZJM0lrejlHbkx6cDhxOUYlMkZvc3VwJTJCU1BNYWY3WFg2WTB2JTJGaWN0TDdNZVIlMkIyNzR6cTlqV2EwMVBYZ0ElM0QlM0MlMkZkaWFncmFtJTNFJTNDZGlhZ3JhbSUyMGlkJTNEJTIyVExmNkd1azZJZjQ2bExsQ2dRbW8lMjIlMjBuYW1lJTNEJTIyUGFnZS00JTIyJTNFM1pWQlQ0TXdGTWMlMkZEVWNUYUFmQ2NVNTBCNDJISFRUZU92cUF4a0pKS1lQdDAxdEdHZUNXbUNWVEYwJTJCMCUyRiUyRmY2SHUlMkZYZjFJTEw3TG1VWklpZlJZVXVJVnMybGo0M2tMSWNXeFBmMXBsMnlsQmNOc0ppV1RVSkEzQ2l1M0FpTFpSSzBhaG5DUXFJYmhpeFZTTVJKNURwQ1lha1ZMVTA3Ulk4R25YZ2lSd0pLd2l3byUyRlZWMFpWMnMlMkZsQlVOZ0NTeEpUV3NmbWZreTBpZWJTY3FVVUZHUEpCeGFlQ0dGVU4wcWF4YkFXM2c5bCUyRnBwOTE2R2ViVlpydWN2YndLRjBwM2ZkTVVlempseUdFRkNyaTViR25XbE40UlhodGVjc3doTXgxSnRlNHhTVkRtRnRwUnQ0YnM2WlFwV0JZbmFhSzJObzdWVVpWenZITDJNR2VjTHdZWGNuOFdVZ0I5SFdpJTJCVkZCOHdpbmlSRCUyQnRZUjh4dmdGVFFmTG0zYjRaMkRqZWhMUXdpQXlXMyUyQmx4ZnhUT1haOXlMYkxPdkJ5JTJGNFJrcEhMc0JHSThaOXlhSHlRRmd2RE9RemdPTWo0STd0MlBZc1FCZEZIc2N4aWs0aXA5N2FjNzBmUk81ZkdmSFphWXRmbHZjZldoeWpLd1B1bnJhNEclMkJEJTJGWW5FMCUyQnpYa2VqdThNUHZZNkozRzRTYyUzRCUzQyUyRmRpYWdyYW0lM0UlM0MlMkZteGZpbGUlM0VhM/nOAAAMbUlEQVR4Xu2ceTzVWR/HPy2mZaJNPcXTQuuYpFE9TwvTtExUypQGLWYmTetUk9LqSTRCiSihbG1C0UbElD0mRRKRJSVpkbVmEsm8zjH3PjQ07j1dY3TOf67zPb/z+/jc9znn+z0vrW4H6VaDNyYFnNJXMMV/yMErhzp/yK//Xt6d+49NxlYEgp+obWQb5QOOTovZjbaqJz5gBVhevRqvExeA+098Dbn/xNeORO47EQ0OQTYNwU3IIiCHIIt6JJb7j01BDkE2/Wg0NyGLiByCLOpx/7Gqx3eC7ApyCDJqyCHIKCBfhBkF5DtBRgH5SswqIIcgq4L8JMKmIIcgm378OMysH4cgq4QcgmwKcgiy6cchyKwfhyCrhByCbApyCLLpxyHIrB+HIKuEHIJsCnIIsunHIcisH4cgq4QcgmwKcgiy6cchyKwfhyCrhByCbAq+FwjuP+iLjh3aY/E32sLZ3Mm8D9fDZ5B19wEmqI3E6mV6aNu2jfD3TwuK8N1yM/gd242OHdvTz4tLyuDi7o+4+FtQGqoA4zUGkO3ehf7ur8YjfU6duQS/c5fhe9iKxty99xC79h7B/dxHGPMfZTqH7t06098l3kyHk+sp5D18Cu0ZEzD3q8noIdtVLDWbyoSFz55i7DA5TJqqBZejZ4VzdXGwQnZmOnbYOENFQQY/x6Wjn8JAsd6FBJHnbPrREPvdTqJDh45ij9O4QHYI/p3+e/26CsvXWtZ51dkzJ2KGhto7/Rca9guOeAXiVUUFNKeMg+6cLyEj/XHjJHurV0vyX3CAH0IC/FH1pgpas/UxYfI0tG/fQSxdGhvEBEECkpBLcdhqfgCbjL6FtflqIcyGj9XHJ0MUsGyRDiz3eEBt7Ag47DbGb7+V43RAGI56X8DPYVdRkheBzjKdUF1dDZ2FG3HzVgbMTZYhODQWKWnZSIz2QtnzF2hoPMGL5tzPh6LyLAwe2Bd3Ek/Tj4eozsGI4UMwV3syjvkEoai4FJHBriAAlhusCWLWeXM14Hn8PJ4VliA+4mhjdavTr6lM6HXYGXsstuLXF8/xS+ojdOveg87D2d4SWRlpsHE8goT4KximMlIseL18+RtCL5zB2VPHcCXyEhIyCiEtU7NoSK6JD8Hm4D+y0I4YNw97dq4VSjRKVQmqKkMb9F9ySiZU1RdgzXJ9+r0wszoEvTlfwnTzErFkbin+i7gUhKULZ8FwuRGUlD+Dw24zzPhKD+u2/CSWLo0NYoKg46GTiI69gYjoBCxaOFMIQQKcreaOeJAWROdxPigK2vrr8OvjGJSUPofRFju666sNQWKmAcO1cS81AP369EZhUSlk+09GdIgbCOAaGo/sIslq/MX0pZDr3YNClEDwxs071GilDyPpCiuAZNbNsyAmNDaxR3byOTo/8rPKuHnITDqDgYp9GqudsF9TmXD21NH4esFi7LfZgbWbzKFnUPOlEUDQyt4N3+lqwM75OHr1/jcuBvpjr9U2lJWWYLq2LjaaWqNdu/ZIvnEN1uYbkJOVAfWJU7F1hy26dO2Op4/zYWm6HqWlxf8ICDYH/8XFJ8Pc2hVRF13r+OZd/iPfh/Co6zjva0djrGw94eMfipux3iJ7jwS0FP8R71VWVmC71X6qg5enExxtLRCXki+WLo0NYoKg4CG6326GYn95IQTJypaZlQsvdwvaJeV2NpTH6NWBzK3ULLq7E+wEL0fEY/Z8Y5TlRwnnLiP3OfbZbMC93EfvHM9itzvS7uRAR3sStpg5UggSOH+uuQTlBbFo1+4jeiwfNGI2gvz3QWXYIBQVl2GY0gD6LPej52C02RaF98MgJdW2sdo1KQSzM9MwTV2Z7gDdneyQcO0KfM7XaCWAoIXtQXocDo1NQ0VFBbS+UMG2nfbopzgIO/9nhJVGJhg/YQrGKcvDYPEqaM7UgaujDV68KMOJsxHC98lIS4HWxBHNfifYHPxHYLZjlytduFu3bo0V38+FzqxJuHo9pUH/aUweg+pqoOBZMZJTM2GwxBTLDOdgh8lykb3XVBBsCv+R00wnaWm6gJO2YdW3qHj1Cg6uPmLp0tggiUDwm6Wm6Ny5E/bb1PxnGrLr69Z3EpKunICK8mD62dsQJEdSa7vDwqMs6TNSfSEMDWZRQzU03svyV9DWX4/b104hMiZBCMGqqjf0yGugP53m+xycveHjFwpvT0vo60ylcyB9nN39sNp4N/Zar8PalfMbq1udfk2xEpOjQVpKEs0FJiVche6M8Qi/lgX5Pv3rhaC/92EKSgHcYqMuI/9hLl48L4OH815EJuagVatWyMm+A43xnyI2OQ+yPXvR9/qnQ7Ap/eftFwLP4wGwtVyLh/kF2GnjTkFouX3VX/rvkOdpLPuxJp9Y25eimrCl+Y941Gq7MU6d8IBPQDRUR48VVRKR+ksEgiuMrOhx9uQRazqZ/EcFkB8yDcUPwtGls3S9ECTHgaWrLersBElOz85qHQIvRtc7XlFuGEZ9boAZmmqYrTURUbGJcHL1g4+nJc21kOTzmg02NEE9/2tNBARHISL4EM3XEDDP1DVCZvYDuB/YBi1NdZGEq91Z0iasqqqCmkoflJe/pHnAyooKPH6Uh02mu7B45fp6IWhvbYpusj1haulQ5712bP0Rxz0O/OldAyNuYvDQT1sEBJvKf8TPH0lJUc0ExT2SHycniyfZobgQEtOg/wR/AJIj37nHg+bNSbpIMI4oZmxJ/rt9KwmL501HLzl52Dodg+LAoaJIIVZfiUCQ/EH9z4UhIfo4nVRMXBItehBjCNrbO0HSR13jexCwde0iQwsoH/dSA8nh+fqH1jtefsZFeqQWNFLcIEUPpaGKuOBnjwd5T6A+7jNadHn8pJCuzCRHSNqUmSug0F8eh/aZ0MIMS5O0Ca/GRsJgzmR4+ASjbdua43rAaW/cuP4LgqKS64Vg4Blf3L6VCKfDNUWiW0nX8Tg/D6m3biA6PATHz4TRz19XViIzPRXKn42ClNRHLQKCTeU/4uczAeE0rTJoQF+q3UGP03ByO4XI4EP0tFOf/8wsD0JerifWr15IY1LT7mLYf3WRk3Ie/fvKiWzFluK/e3ez6Annh3UmWLTMCG3a/P82iciiiBAgEQgKCg0hZx2hNEQRhj+Yo0f3rsIcIf1SvpUTrKx8je79JsFo1QJ6NYYY5bhvMAjoUtOyaeHiXeNRMARH0YIHyQkKjuAkBzhhvCotxjzMf4rAU/bwOhmMFWutaKW49srbv29vmj8UtUnahCbrlqKsrIReWRE0ArPZX45GYHgSLoecp9Xh2jlBcqQw0JkC9xMXoDhoCBbpadI8YM9/ycFQfxq8zoZDecQouB2wpQnomKRctPkDsP/043BT+o/47efwq4gPP0Jz1/MNTWj6ZfliHZoCqs9/pHBI/E1y5mTB3vaTM+ITUhF32VNU69H+LcV/2zevwt2sdOy0PSjUoXXrNkzXvRoj6HuBoN53W2hhxMpslfCZJL9HihSkkWsrMaHude7hCYolguot6UeSzJO0apLD0p06UgORYy1pfzXe2xAkP/+0yw02DjXXXnr3kkVYoAtdgddstMF+F98/6UOqc8OHDWqMbnX6SNKE5NoKKXbsc/OFppaO8LlkdztBVQFfLzCElJTUn+4J9umniK1GS3Da9wiNIXcLSYKZVIetzTbAw2Uv/by7bE/sdfHCGLWJwrEz0lNpUSUxswidpGVE1kO0APGvyAie83f6j9wznbPAGNcSb9PpjFZVwjkfO+q3hvxHFmiNr1YJY8aPUYHFtpX4Qn2kaNL90bul+E9jvBJysjPqaPBxJ2ncyCoWS5fGBr0XCDb0sNKyF7QCJsq1k4qKSprDIzG1L1eTZ4gzXnl5BfLyn4g0h8aKJ+gnSROKOpe3+5cUF4KspjKday6dC1pRYQGeFTxFP4UBFIx/X2OHYHPwH8l7k0ITgV/t1pD/3rx5g9y8xzSnSK52sTTuPxb1+D9VZVOvCVbi9zLBZj2I5CDYrF/7PU6uOUPwPb6mxIaS6E5QYrNuZgNzE7L8QTgEWdQjsdx/bApyCLLpR6O5CVlE5BBkUY/7j1U9fhxmV5BDkFFDDkFGAfkizCgg3wkyCshXYlYBOQRZFeQnETYFOQTZ9OPHYWb9OARZJeQQZFOQQ5BNPw5BZv04BFkl5BBkU5BDkE0/DkFm/TgEWSXkEGRTkEOQTT8OQWb9OARZJeQQZFNQCEG2YXi0U/oKLoKYCqwc6ixmJA8TKMD9x+aF3wGLGd3vdPqULgAAAABJRU5ErkJggg=="},71624:(e,t,a)=>{a.d(t,{Z:()=>n});const n="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUEAAAAfCAYAAAB5/X8CAAAM+nRFWHRteGZpbGUAJTNDbXhmaWxlJTIwaG9zdCUzRCUyMkVsZWN0cm9uJTIyJTIwbW9kaWZpZWQlM0QlMjIyMDIyLTA0LTA3VDE1JTNBMzUlM0E0Ny4zMDlaJTIyJTIwYWdlbnQlM0QlMjI1LjAlMjAoTWFjaW50b3NoJTNCJTIwSW50ZWwlMjBNYWMlMjBPUyUyMFglMjAxMl8yXzEpJTIwQXBwbGVXZWJLaXQlMkY1MzcuMzYlMjAoS0hUTUwlMkMlMjBsaWtlJTIwR2Vja28pJTIwZHJhdy5pbyUyRjE0LjQuMiUyMENocm9tZSUyRjg3LjAuNDI4MC4xNDElMjBFbGVjdHJvbiUyRjExLjMuMCUyMFNhZmFyaSUyRjUzNy4zNiUyMiUyMGV0YWclM0QlMjJsZV9hWU5weHdJRG03ajQ0ZTFyLSUyMiUyMHZlcnNpb24lM0QlMjIxNC40LjIlMjIlMjB0eXBlJTNEJTIyZGV2aWNlJTIyJTIwcGFnZXMlM0QlMjIzJTIyJTNFJTNDZGlhZ3JhbSUyMGlkJTNEJTIyS3ZUeTZfRm4xUEd2SXVrR0dCOG8lMjIlMjBuYW1lJTNEJTIyUGFnZS0xJTIyJTNFNVZuWmNwc3dGUDBhVDUlMkZxQWNsZ2VNelNKVE5kTXBPMFNSOWxKSU5xR1htRUhKdDhmU1VRWmhGSm5NU3VNODZUMFJYYXpybjM2SEk5Z0dmejlSZUJGc2wzamdrYkFBZXZCJTJGQjhBSURyT3I3NjBaYTh0SVRodURURWdtTHpVbTI0b3ZmRUdCMWpYVkpNc3RhTGtuTW02YUp0akhpYWtraTJiRWdJdm1xJTJGTnVXc3Zlb0N4Y1F5WEVXSTJkWWJpbVZTbmNzUDY0NnZoTWFKV1RvQTVueHpWTDFzVHBJbENQTlZ3d1ElMkZEZUNaNEZ5V1QlMkZQMUdXRWF2QXFYY3R6bkIzbzNHeE1rbGRzTVdGNndrNyUyQjM5NU5mRnhlJTJGNVk4JTJGbDluNk92Z1ltTDNKdkRxdzRNc1VFejNHR2NCVExtVENZNTRpOW8zemhUSzZ5dmlYU0prYnF0QlNjbVZLNUp5WlhyVWRrZCUyQmE4VVhqajI0TXZhcDV2bTUybnVmTjFpVVJkRTRrRWNaWWJvOWdpNlQ2MUpWWElCRVQlMkJjaFJ4eHZNbGJNU3JsWVJ1Um9uQ0VPUzNyWG5SOFpyNHMxN202R1huS3FWZ1dNOEhIamUwUFZkRURwUVBRZk9HSll6R0hkM2ZhYzlZOGFYSWlKbWtwb3Q5ZERZVlcwcU9Id0duOGI1N2hCYm1oTlpCQ3MlMkZYT2pIbEV2MWM3cEtxQ1JYQ3hScDIwb0ZjWnZOQ1lwbWNlRVRQNWVTMFpRWU8wWmk5bE9Ob3JMZ2IlMkJob2VxZVVzVFBPdUNoV2d0Z2pBUjRwZXlZRm41RkdUd0FtMFBjMyUyRk40UkljbjZjWVp0NXN3QVdFRnNJQWNqMDE3VjhWcTlralFpTlhRZTVycEZ5M001Q0olMkZtZ0tUNFJJdFRRWVBHVk9HWkpVWFV1VzM4dGYwU1NSVVJhV0VCRHR3QVdna1NzS0dmVHFjZ2l2cWd4JTJGN0U5JTJGeG5oSllOZkFOWXJ3Zll5dmJLeUhLZERxJTJGdWRxRmtUZVElMkZOVkVwSFh1THlXcTVoa09jTUJxUkQ1bSUyQnR4SkVVOHMlMkZWRFRJdGglMkIwZVRSTzB5VGRtQkNqc2ZhVVNKR29WZlJVeHhaVjk5bUo2WmhUak5sRGdkOFclMkYxMEVwOWZHSHZZRTU0Ym9waE9CZlVXbk83TFl1QkVLQ1gyRkNKUm1LSktVSHpFamJqaFdWM0hyam5JT3pvbG5jWEpPczlueGtoQjJGQWtlbkFIZll1QTdtWE16ODN2Z3dBME96UUdBZHA2Z2J1Y3IwelFvdmpvJTJGMyUyRmJlVnhzcEx0akh2TWFrbTAlMkZtM21VSzlJcmslMkIzWE9iV2ZGMTQ5SWZaVWdMd1NQU0phOVBFZnVwc09JQk5QZW5NeVBBaktaN2tqZmc0NWY5MmtMOUd5JTJGaG52VGxzQ0MlMkY4Z3doJTJCT09udmRveWFoSFNycUo2TzRnMyUyQkliNU1nZ0R3OE1lWVh3TnBCSHVZSVBFd0czQUwyVSUyQjIlMkJUcDFqSVNyMTN2ZDNnTzRJZEdRRTJ2bjFmMWQ3ZThMWHo5aXBEY1RTWWE1ckd4NXVzak1DYnkxYmVZYWxwMUxsYkQxNXFBdmJWYXBVV0hJU3hVQUpQc2lNT2owNE5zTGZNMEhjZDdDMDhLdm5jYVdWOVRXVlJXQjk2SVRSdFhWdDNodzZzMm5WeFhUZnlSdVBscGZVdHZ3TjJYMXYzTzdYMXRnU09POXh0V3c4Y2RWT0g3cDIxNTNvZ2ROJTJCZmN2cndqU2tudE5NMVd6bG5KRDlpMGZUZCUyRnllYXFsbiUyRjAxa0dVdjElMkZNZnowRHclM0QlM0QlM0MlMkZkaWFncmFtJTNFJTNDZGlhZ3JhbSUyMGlkJTNEJTIycks0NDJQRWN6SENtODBLaHBXWl8lMjIlMjBuYW1lJTNEJTIyUGFnZS0yJTIyJTNFNVZkTmI2TXdFUDAxSEN1QlRSeHkzSkp1VjZ1MnFwUkR0MGNYRDhHcVlTTEhLV1IlMkYlMkZacGdBcFJXVmFWMGhWSTRZTCUyRjVNUFBteVpZOUd1ZlZ0ZWFiN0JZRktJJTJGNG92TG8waU1rQ0h4bVB6V3liNURGWXQ0QWF5MkZjJTJCcUFsZndMRHZRZHVwTUN0Z05IZzZpTTNBekJCSXNDRWpQQXVOWllEdDFTVk1OVk4zd05JMkNWY0RWR0g2UXdXVnNYVzNTR1h5RFhtVnM2SXE2JTJCbkxmT3JwSnR4Z1dXUFloZWVUVFdpS1laNVZVTXFpYXY1ZVVtZTBhMXFuN2ZjWHdReFRKJTJCTkglMkZ1TDVwa1B6OFRjaXhCUTJGT201bzBxViUyQjQyam0lMkJ2TkQlMkZvV1FDYmRGbTN6S3BjVmNJcUxQNUhyMHNNMmxndGVGSmJTMnRkaXlXbVZ6WldXQ0hxVlFxUm9YNkVFc0ZoeWhOTEw0MUdwJTJCaFoyRkpCRSUyQnB0YmclMkZBVzJnZXRXNkQlMkJvT2pzMndLZ2JNd2VpOWpXdXpNRmVLRXpEeDNienM1QkE1S09zSmdUcU1Pd0d1ajVrN2t1M0E4ZndKenVtN25BY241VHhOVTVLOHlibGdUMnpHdnBCekVrNk04M0RFZWVDZlZ1SHBySDdmVlBqaHFTT3dNRDI4ZWI2d0M1Uk1yQXV6VVJmT3ZnZWhQN0Vlc1BQZjhjTm9ZcHpQMyUyQldjbk11T1A1dmFLUnVOT0NmbnYlMkJPenFaMjdpJTJCOTQ3czclMkYzN2xycDkwRjVHRHJYZVBvMVQ4JTNEJTNDJTJGZGlhZ3JhbSUzRSUzQ2RpYWdyYW0lMjBpZCUzRCUyMnZETHdETjlxQkZkTHVKRlhfNzB2JTIyJTIwbmFtZSUzRCUyMlBhZ2UtMyUyMiUzRTNaVmJUOEl3R0laJTJGelM1TmVzQzVYU0o0VEV3MFN5UmUxdllycTNZcmxvNkJ2OTRDSFdPQ01ScFA4V3J0JTJCeDI2NyUyQm1iTktLRFluNW0yU1MlMkZNZ0owUkpDWVIzUVlFWUl4aXYxbnFTeldTcG9lcllXeFZTSWt0VUttbmlHSUtLaVZFakR0SkRwanRGT1Ryc2hOV1FKM0hZMVphJTJCcHVtalM2ZSUyQnFFaldGSHlEalR1JTJCcElDWmMzYzhWcEd6Z0hOYzdEMFFrSjh4V3NTUTZUVEhNbVRMMGwwWk9JRHF3eGJyMHE1Z1BRUzNnTkZ6NFRmWFZIMDRkS1A1ME5ieDl2YmxKNnNHNTIlMkJwR1N6UWdXU3ZmcDFyMVptYkclMkJ1cjAlMkJ5QzR2Sk1aeVZEVWxhTVowRlhoRlBkVFhpa000ZE9vV0RVbHJxbExBc2h1SzZIR2RLd2ZaaFBGbHRQYmU4VnJ1Q3UxMzJDJTJCbDBucGd0TEdyV2lvWUpKSjdmZXFzZVlTdFNNd1R1SmMlMkJFdjRFcklQNXE2dDdaMjY4dVF6dllqQUZPTHZ3ZFUyWE9Bd1pERXhRMk5ldEhaSWc1VnRHb0VGandZRGpUZWNXc2w4RXpoOWdqbmVZWTRRUjZxWGtTNUZMS1FuZmkxekU5JTJGRmglMkZJM0lrejlHbkx6cDhxOUYlMkZvc3VwJTJCU1BNYWY3WFg2WTB2JTJGaWN0TDdNZVIlMkIyNzR6cTlqV2EwMVBYZ0ElM0QlM0MlMkZkaWFncmFtJTNFJTNDJTJGbXhmaWxlJTNFuJ3r+wAADZVJREFUeF7tnHk81Vkfxz8V00oLbTwttCiTlKl5WmifUimVQotpYkp7aS+TaEFJWoQS2oRopcRkCaNdEpElLWiRNdNC6nmdY+59KJq591yNcs5/fvd3zu/8Pvdz3+d7vt9Tde6e1/8A3pgUcEqax9S/Nnee3825Nr++RN6d+49NxjoEgt01V7GNUot7J0Ztg5TGsVqsAMurf8C7mOng/hNfQ+4/8bUjPXcfiwSHIJuG4CZkEZBDkEU90pf7j01BDkE2/WhvbkIWETkEWdTj/mNVj0eC7ApyCDJqyCHIKCBfhBkF5JEgo4B8JWYVkEOQVUG+E2FTkEOQTT++HWbWj0OQVUIOQTYFOQTZ9OMQZNaPQ5BVQg5BNgU5BNn04xBk1o9DkFVCDkE2BTkE2fTjEGTWj0OQVUIOQTYFOQTZ9KtWCJa+e4fMjIf0GQqK7SElLS2B2da0ITgEWb+R6oJg7fCfhI7I7Nnng0YNG8DkZ13h93kv5SFcD55C6v3HGKz5AxaZGkBKqp7w8+fZufhlriX8jmxDo0YN6PW8/EK4uJ3A5Wt3oNpNCSsWG0Ferhn97O/GI/f4nroIvzMh8DloQ/vcf5CJrQ6H8PDRE/T7UY3OQa5FU/pZzO0kOLn6IiPzOXTHDsbkCcPRUr65WH6UtAmzMh9hy/plyMp4iA4dO6Poz5eICLmAqTNNsWSVJVrItawwz5wXz9G/hwKGjdSBy+HTws9cdtkgLSUJdo6HYDh+EPSnm2CSwUyx3pF0Is9ZvcQYew4cR8OGjcQep2JHdgj+m/57964Uc5daV3ilieOGYuwozc/6Lzj0Cg55BuBtcTG0RwyA/qSfICvTWCxNa4P/Av39EOR/AqXvS6Ez0RCDh49GgwYNxdLr405MkSABSdDFy1hntRerzWbC1mqREGY9+xuiu4oSTGfpwXq7OzT798KubSvw6tUbnPQPxWGvc/g99CryM8LRVLYJPnz4AL0Zq3D7TjKszE0RGByN+MQ0xER6ovBlEaoaT/BC6Q+zoKw2Hl07t8e9mJP0sorGJPTqqYLJusNxxPs8cvMKcCnQFQTACl21Qcw6dfIoeBw9ixc5+bgWflgsUSVpwtTkRCyYpYcNNnvQt78WkhLi0EGpM169KqIg9PPygOfpMEhLfyecq+dBZ2zfvA5/Fr3ElYQnQkg677QGGc/e6Qju3olFy1at0bJ1W5Hf8fXrVwg+dwqnfY/gj0sXcTM5BzKyZYsJexMfgjXBf2Sh7TVgKrZvWSqUoo+GKjTUu1Xpv7j4FGhoTcfiuYb0d2Fpsx8Gk36CxZrZYsn5rfsv/OJ5zJkxHsZzzaCq1hu7tlli7AQDLFu7SSy9JApBx/3HERl9C+GRNzFrxjghBAlw1lk54nHiefq8s+cjoGu4DH8+jUJ+wUuYrd1Bo77yECRm6tRTFw8S/NGhXVvk5BZAvuNwRAYdAAFcVeORKJKsxkPGzIFC25YUogSCt27fo0YryLxEV1gBJFNvnwYx4QrznUiLO0PnR/5WHzAVKbGn0Fm5ncjCStKE+mMHwmzNJmj8OABGk4ZDqZMK8nJfUBge9L0AB1sLzDI1g0bf/sJ5ThzZF1Omm2CP3UYsXW0FA6OyH1N5CFqtXURXzyEjxuBCwAk42KxHYUE+xujqY5WFLerXb4C4W9dha7US6anJ0Bo6Eus22qNZczk8f5oFa4vlKCjIq1EQrAn+u3wtDla2roi44FrBN5/zH/k9hEXcwFmfHbSPjb0HvE8E43a0l8jeIx2+df8R75WUFNPAgDRPDyc42m/G5fgssfSSKAQFg+nPXAPljopCCJKVLSX1ETzdNtNb4u+mQa2fQQXI3ElIpdGdIBIMCb+GidNWoDArQjhHWYVB2G23Eg8ePfnseJu3uSHxXjr0dIdhraUjhSCB8yDt2XiTHY369b+j2/IuvSbi/IndUO/RBbl5heih2ok+y+3wGZitsUfOw1BIS0uJLKykTEggM25Ib0TceoDQ4AB4uDjgyMkQGoVt/s2MXieGIIDU1tGj80xLScRoLTUaAbo57cDN63/A+2yZhuUhSLbDU6YZQ61XX+gMUcf6LTvRQbkLtvxmhvlm5hg4eAQGqCnCyGQhtMfpwdXRDkVFhTh2OlyoR3JiPHSG9qoxkWBN8B+B2catrnThrlu3Lub9Ohl644fh6o34Kv03ang/fPgAZL/IQ1xCCoxmW8DUeBI2ms8V2XuShGBN9R/ZzTSRkUGbtv+h+qxcOBPFb99il6u3WHp9EQj+PMcCTZs2wR67sv+ZhkR9LdoPQ+wfx6Cu1pVe+xiCZEtqu+OgcCtL7vlBawaMjcZTQ1U13us3b6FruBx3r/viUtRNIQRLS9/TLa+R4Ria79vl7AVvv2B4eVjDUG8knQO5x9nND4tWbIOD7TIsnT9NLFElBcGEO7ewzWoVDvn9Tr/onr37UiiR8J9EbQRc44Zp4LBfMJq3kKdzJZ8lxsfSXGDszasgkWTY9VQotutYKQQfpKVQUArgFh0RApKDLHpZCHdnB1yKSUedOnWQnnYPowZ+j+i4DMi3akOf9bVA8Ev6z8svCB5H/WFvvRSZWdnYYudGQWi9YeHf+m+/x0mYLinLJ5b3pagmrC3+Ix612bACvsfc4e0fWWE3JKpm5e9nyglWtRLPM7Oh29njh2zpLVlPsqGoMhp5j8PQrKlMpRAk24E5izZXiARJTm+HzTIEXIisdLzcR6HoM8gIY7U1MVFnKCKiY+Dk6gdvD2uaayHJ58Ur7WiCetoUbfgHRiA8cD/N1xAwj9M3Q0raY7jtXQ8dbS2xdZSUCbOfPYHh+MEIuZqMjeuWoFGjxjAyWQBtrR6Yb7YOUlLSiAoPhptXWZqhtLQUmurt8ObNa5oHLCkuxtMnGVhtsRUm85dXCsHI0CC0kG8FC+tdFd6XPO+o+95PNAgIv42u3b7/qiD4pfxH/PzdXxV7QXGP5MfJzuJZWjDOBUVV6T+B0CRHvmW7O82bk3SRYBxRzFgb/Edy2iZTx6CNgiLNcSt37iaKRJ+9t1ogSL7QE2dCcTPyKH141OVYWvQgxhC0jyNBco/WqF9BwNa8mSwtoDRuowmSw/M5EVzpeFnJF+iWWtBIcYMUPVS7KeOc3048zngGrQG9adHl6bMcujKTHCFpI8bNg1JHRezfbU4LMyxNUiYkcyCRnpWtI5rLycFy9UI6LQI0Ui0mBZJNds5o3VaRXr8afYnmDd29AyElVbaN9z/phVs3ruB8RFylEHySmYG7d2LgdLCseHQn9gaeZmWARKGRYUE4eiqUXn9XUoKUpASo9e4jLMJ8LZHgl/If8fMp/zCaVunSqT3VbZ/7STgd8MWlwP10t1OZ/yyt90FRoRWWL5pB+yQk3keP/+ojPf4sOrZXENmK37r/HtxPpTucBcvMaT68Xr3/nzIRWaxKOlQLBAWFhqDTjlBVUYbxAiu0lGsuzBHSH99HOcGSkneQ6zAMZgun06MxxChHfQJBQJeQmEYLF58bjwIgMIIWPEhOULAFJznAwQM1aDEmM+s5Anx3wvN4IOYttaGV4vIrb8f2bWn+UNQmSRNevxKJNUtM6LGW8sUPcmbLx/MAjfgE+UDzZXNQWJhPj6wIGoHZxJ/6IiAsFiFBZ4XVYUFOUKW7Goz0RsDt2Dkod1HBLANtuuVu1VoBxoajaeVZrVcfHNhrTxPQUbGPUO8vwH4tEPyS/iN++z3sKq6FHaK562nG5jT9MtdEj6aAKvMfKRwSf5OcOVmw129yxrWbCbgc4iGq9ej937r/NqxZiPupSdhiv0+oT9269WhQIIkmEQga/LKWFkZsLMsiF9JIfo8UKUgjx1aigt0qnMMTFEsE1VtyH0kyD9MpSw7LNGlEDUS2tf9kvI8hSP7etPUA7HaVHXtp20YeoQEudAVevMoOe1x8PtGPVOd69ugisq6SNCF5OKkErzUzoRFY1+5qKMjPRVpyEq3Ymi5eTUFIjq2oK8li9wEfIRRJXxL1DtZQwpTpxpCWlv7knOCEKUZYZzYbJ30O0fckZwtJgplUh20tV8LdxYFel5NvBQcXT/TTHCrUIzkpgRZVYlJy0URGVmSdKu8g/hEZwXj/pv/IOdNJ01fgesxdOp2+Gqo4472D+q0q/5EFetSEhcI+A/upY/P6+Rii9YNYmn7r/hs1UBXpackVtGncRAa3UvPE0uvjThKBYFUzKSgsohUwUY6dFBeX0Bwe6VP+cDV5hjjjvXlTjIysZyLNQVRlJW1CwfPJub/HD9PRQk4erdqIvk363Hvk5+WArKayTcsOowtabk42XmQ/RwelThSM1d/YIVgT/Efy3qSgROBXvlXlv/fv3+NRxlOaUyRHu1ga9x+LehL6FyNsU/j6e1eXCb9+Zf7JG1QfBP/J07+Fe7j/2L7Fao0E2ab29fTmJmT5rjgEWdQjfbn/2BTkEGTTj/bmJmQRkUOQRT3uP1b1+HaYXUEOQUYNOQQZBeSLMKOAPBJkFJCvxKwCcgiyKsh3ImwKcgiy6ce3w8z6cQiySsghyKYghyCbfhyCzPpxCLJKyCHIpiCHIJt+HILM+nEIskrIIcimIIcgm34cgsz6cQiySsghyKagEIJsw/DeTknzuAhiKjC/m7OYPXk3gQLcf2xe+B/AQvf+6fgbTAAAAABJRU5ErkJggg=="},58321:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/memory_index-8b745de23265c24b29a6b68889747e0f.png"},30401:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/read_path-9a620d8ec68c3034fe7524efe7409647.png"},34662:(e,t,a)=>{a.d(t,{Z:()=>n});const n="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAoEAAAAfCAYAAACYoBeiAAAKW3RFWHRteGZpbGUAJTNDbXhmaWxlJTIwaG9zdCUzRCUyMkVsZWN0cm9uJTIyJTIwbW9kaWZpZWQlM0QlMjIyMDIyLTA0LTA3VDE1JTNBMjklM0ExMC4xNjlaJTIyJTIwYWdlbnQlM0QlMjI1LjAlMjAoTWFjaW50b3NoJTNCJTIwSW50ZWwlMjBNYWMlMjBPUyUyMFglMjAxMl8yXzEpJTIwQXBwbGVXZWJLaXQlMkY1MzcuMzYlMjAoS0hUTUwlMkMlMjBsaWtlJTIwR2Vja28pJTIwZHJhdy5pbyUyRjE0LjQuMiUyMENocm9tZSUyRjg3LjAuNDI4MC4xNDElMjBFbGVjdHJvbiUyRjExLjMuMCUyMFNhZmFyaSUyRjUzNy4zNiUyMiUyMGV0YWclM0QlMjJFMzJvY2hNWnNQcTB0U09JbEtHQiUyMiUyMHZlcnNpb24lM0QlMjIxNC40LjIlMjIlMjB0eXBlJTNEJTIyZGV2aWNlJTIyJTIwcGFnZXMlM0QlMjIyJTIyJTNFJTNDZGlhZ3JhbSUyMGlkJTNEJTIyS3ZUeTZfRm4xUEd2SXVrR0dCOG8lMjIlMjBuYW1lJTNEJTIyUGFnZS0xJTIyJTNFNVZuWmNwc3dGUDBhVDUlMkZxQWNsZ2VNelNKVE5kTXBPMFNSOWxKSU5xR1htRUhKdDhmU1VRWmhGSm5NU3VNODZUMFJYYXpybjM2SEk5Z0dmejlSZUJGc2wzamdrYkFBZXZCJTJGQjhBSURyT3I3NjBaYTh0SVRodURURWdtTHpVbTI0b3ZmRUdCMWpYVkpNc3RhTGtuTW02YUp0akhpYWtraTJiRWdJdm1xJTJGTnVXc3Zlb0N4Y1F5WEVXSTJkWWJpbVZTbmNzUDY0NnZoTWFKV1RvQTVueHpWTDFzVHBJbENQTlZ3d1ElMkZEZUNaNEZ5V1QlMkZQMUdXRWF2QXFYY3R6bkIzbzNHeE1rbGRzTVdGNndrNyUyQjM5NU5mRnhlJTJGNVk4JTJGbDluNk92Z1ltTDNKdkRxdzRNc1VFejNHR2NCVExtVENZNTRpOW8zemhUSzZ5dmlYU0prYnF0QlNjbVZLNUp5WlhyVWRrZCUyQmE4VVhqajI0TXZhcDV2bTUybnVmTjFpVVJkRTRrRWNaWWJvOWdpNlQ2MUpWWElCRVQlMkJjaFJ4eHZNbGJNU3JsWVJ1Um9uQ0VPUzNyWG5SOFpyNHMxN202R1huS3FWZ1dNOEhIamUwUFZkRURwUVBRZk9HSll6R0hkM2ZhYzlZOGFYSWlKbWtwb3Q5ZERZVlcwcU9Id0duOGI1N2hCYm1oTlpCQ3MlMkZYT2pIbEV2MWM3cEtxQ1JYQ3hScDIwb0ZjWnZOQ1lwbWNlRVRQNWVTMFpRWU8wWmk5bE9Ob3JMZ2IlMkJob2VxZVVzVFBPdUNoV2d0Z2pBUjRwZXlZRm41RkdUd0FtMFBjMyUyRk40UkljbjZjWVp0NXN3QVdFRnNJQWNqMDE3VjhWcTlralFpTlhRZTVycEZ5M001Q0olMkZtZ0tUNFJJdFRRWVBHVk9HWkpVWFV1VzM4dGYwU1NSVVJhV0VCRHR3QVdna1NzS0dmVHFjZ2l2cWd4JTJGN0U5JTJGeG5oSllOZkFOWXJ3Zll5dmJLeUhLZERxJTJGdWRxRmtUZVElMkZOVkVwSFh1THlXcTVoa09jTUJxUkQ1bSUyQnR4SkVVOHMlMkZWRFRJdGglMkIwZVRSTzB5VGRtQkNqc2ZhVVNKR29WZlJVeHhaVjk5bUo2WmhUak5sRGdkOFclMkYxMEVwOWZHSHZZRTU0Ym9waE9CZlVXbk83TFl1QkVLQ1gyRkNKUm1LSktVSHpFamJqaFdWM0hyam5JT3pvbG5jWEpPczlueGtoQjJGQWtlbkFIZll1QTdtWE16ODN2Z3dBME96UUdBZHA2Z2J1Y3IwelFvdmpvJTJGMyUyRmJlVnhzcEx0akh2TWFrbTAlMkZtM21VSzlJcmslMkIzWE9iV2ZGMTQ5SWZaVWdMd1NQU0phOVBFZnVwc09JQk5QZW5NeVBBaktaN2tqZmc0NWY5MmtMOUd5JTJGaG52VGxzQ0MlMkY4Z3doJTJCT09udmRveWFoSFNycUo2TzRnMyUyQkliNU1nZ0R3OE1lWVh3TnBCSHVZSVBFd0czQUwyVSUyQjIlMkJUcDFqSVNyMTN2ZDNnTzRJZEdRRTJ2bjFmMWQ3ZThMWHo5aXBEY1RTWWE1ckd4NXVzak1DYnkxYmVZYWxwMUxsYkQxNXFBdmJWYXBVV0hJU3hVQUpQc2lNT2owNE5zTGZNMEhjZDdDMDhLdm5jYVdWOVRXVlJXQjk2SVRSdFhWdDNodzZzMm5WeFhUZnlSdVBscGZVdHZ3TjJYMXYzTzdYMXRnU09POXh0V3c4Y2RWT0g3cDIxNTNvZ2ROJTJCZmN2cndqU2tudE5NMVd6bG5KRDlpMGZUZCUyRnllYXFsbiUyRjAxa0dVdjElMkZNZnowRHclM0QlM0QlM0MlMkZkaWFncmFtJTNFJTNDZGlhZ3JhbSUyMGlkJTNEJTIycks0NDJQRWN6SENtODBLaHBXWl8lMjIlMjBuYW1lJTNEJTIyUGFnZS0yJTIyJTNFNVZkTmI2TXdFUDAxSEN1QlRSeHkzSkp1VjZ1MnFwUkR0MGNYRDhHcVlTTEhLV1IlMkYlMkZacGdBcFJXVmFWMGhWSTRZTCUyRjVNUFBteVpZOUd1ZlZ0ZWFiN0JZRktJJTJGNG92TG8waU1rQ0h4bVB6V3liNURGWXQ0QWF5MkZjJTJCcUFsZndMRHZRZHVwTUN0Z05IZzZpTTNBekJCSXNDRWpQQXVOWllEdDFTVk1OVk4zd05JMkNWY0RWR0g2UXdXVnNYVzNTR1h5RFhtVnM2SXE2JTJCbkxmT3JwSnR4Z1dXUFloZWVUVFdpS1laNVZVTXFpYXY1ZVVtZTBhMXFuN2ZjWHdReFRKJTJCTkglMkZ1TDVwa1B6OFRjaXhCUTJGT201bzBxViUyQjQyam0lMkJ2TkQlMkZvV1FDYmRGbTN6S3BjVmNJcUxQNUhyMHNNMmxndGVGSmJTMnRkaXlXbVZ6WldXQ0hxVlFxUm9YNkVFc0ZoeWhOTEw0MUdwJTJCaFoyRkpCRSUyQnB0YmclMkZBVzJnZXRXNkQlMkJvT2pzMndLZ2JNd2VpOWpXdXpNRmVLRXpEeDNienM1QkE1S09zSmdUcU1Pd0d1ajVrN2t1M0E4ZndKenVtN25BY241VHhOVTVLOHlibGdUMnpHdnBCekVrNk04M0RFZWVDZlZ1SHBySDdmVlBqaHFTT3dNRDI4ZWI2d0M1Uk1yQXV6VVJmT3ZnZWhQN0Vlc1BQZjhjTm9ZcHpQMyUyQldjbk11T1A1dmFLUnVOT0NmbnYlMkJPenFaMjdpJTJCOTQ3czclMkYzN2xycDkwRjVHRHJYZVBvMVQ4JTNEJTNDJTJGZGlhZ3JhbSUzRSUzQyUyRm14ZmlsZSUzRYZV1hcAABGnSURBVHhe7Z15XE/Z/8dflphh7CSMbTAyxjJG32/INs0kk31LjDGpoVFJpcVS9kGpJJJSljTZZS2FTNbB2BJpmSyRJaSy/JTxfZzTfD409HvknsvnVu/zePTP53PPufc8z73vz/OerXI23rEvQUkygYm6KyTnpYzAkoiahIEIaIxAJV0zjZ27NJyY4p9YK1L8E+NHuYUJvCzHJHDSqO7CJZXVAvLPjEIbA+eyWn3hek+YEghvb2/hcspqAQ4ODsRPoPFdA0+B4p90gBT/pLN7+RKwcqL4J5Xgy5cv4ejoSPFPKkAA7PeDJFAAIMtKQVAMIJNAHx8fsULKcG57e3viJ9D+LitPkgQK8KP4Jx2eSgIp/klj+Pfff3MJJH7S+LFc7PeDJFA6P56TgqAYQJJAMX4kgWL8SALF+FH8k86PJFA6O5aTJFCMH0mgOD+SQBkYkgSKQSQJFONHEijGjyRQOj+SQOnsSALF2KlyU0+gDBwpCIpBJAkU40cSKMaPJFCMH8U/6fxIAqWzIwkUY0cSKA8/6gmUgSNJoBhEkkAxfiSBYvxIAqXzIwmUzo4kUIwdSaA8/EgCZeBIEigGkSRQjB9JoBg/kkDp/EgCpbMjCRRjRxIoDz+SQBk4kgSKQSQJFONHEijGjyRQOj+SQOnsSALF2JEEysOPJFAGjiSBYhBJAsX4kQSK8SMJlM6PJFA6O5JAMXYfRAJf5OfjZvo1fq6GjZqgopaWPFetsFLeVxDMz3+BazcyeG2bfKoDLa2KCqu5PJdDEijGkSRQjN/7kkCKf2LtUhbiH0mg2D1CW8SI8WO538vq4Fs3r2O+mwNupV9D02Ytkfs4B3EHomA2dgLsnGehdp16ha78fuZddPmyIb4x6oeAdRHq7wJ8FyA1ORGey9Zi5IAeGDHaAkNMx0qq9bG4A9i59Tfk5T2Hcb+h+O77QZLKeVsmuSXwevptTHbxwrXrGWjZojFych4jMuYYrCyGYs50K9SrW6vQZdy99wD1Wxihf98e2Lnx1X/e+HVxCC5fuYrQoDkwMLKA5dhB+Gl0f8n1Zuf5yWoWtoR6oEqVjySX8++MmpZAtuu8h4cHBgwYgDZt2qgv7/Tp04iJiUFeXh569eqFHj168O9ycnKwY8cOJCQkoFmzZhg5ciRq1KghG493LUipElgUv3et3/s+Xm4JpPgn1mJKjH+bt+/Hlh0H8OLFC5gNM8b3Rt3w8ceVxSoKQNMSmJSUhO3bt+PevXswMDDgca5mzYJ/41kS4p8SJLA0/H7Iull0StJlWJsPxcwFftDr0h2JCRfQtHlLPHmSy0VwS/hqhEXEQkurkvoBCluzAovnTcPj3BycSMhQS+KKJb+CleflH4pL8edQT7s+6tVv8M4PXvy50xhqrI8fxlmj49f/xUwXayz0DUYfkyHvXNb7lsBLiX9h8KgpWO7lih7dvsL5i8lo1aIxcnOfIjLmKEJCd+L3yEBUqvSqV9U/aDNcZ/ohJ/cJ7v4Vo5bE+Z4hYOWFBc/D2fNXoFO/Dhro1H3nOj958gzbdh3EuvA9iDn4B7LSD6FG9U/euZyiMmhSAo8fP45jx45xqWMiqK+vzy8zMTER48ePx5AhQ9C2bVt4eXlh6tSpXATd3NyQkpKCcePG4cSJE0hLS0NwcDDKly8vG5N3KUiJElgUv549e75L1T7IsXJKIMU/sSZTYvzbs+8I+g2fDAeb0ejUURfu8wIwclgfzHefKFZZDUvg/fv3MXjwYB7TDA0NERkZiaysLAQGBpaY+KdpCSwtvx+ySuAIk26wd52LTv/pijFDDNG8RWs8fJDJZXDN5ij4LHSH+QR7dNLron6ABhvpYfhoC/h5zsFkl9kwHfMz/+51CZw91RY9Dfui17ffI2r3VvgscEP2oyx8P3AEnN0XonLlj3Dh7CksnO2EtJQkdO9thGlzvFCzVh1Ms/8Z5StUwLzFAbzchbOccPniOazdEiP8ELMC5OwJ7GJojnluv6Cbfkf0NpmA1q2aIvN+Fs5fTELMDn/MmOsPB5sf0PW/7dXX/nX3H3gv36wFgZg7wwrjzQvk9nUJtHZcxN9eTfoYYEvEAUyfsxxZj3JhOvQ7eMyxw0cfVcLJPxMwZfoSXEm+hj6G+vBZ6Ig6tWvgVsY92E/1xsOs7FIngZ6ensjNzUVsbGwhCVy0aBGXOicnJ85y+fLlSE5OhrOzM+/527RpE3R0dJCdnY1+/fph2bJlaN/+VZvIcmMVsxAlSmBR/JYsWVLMWn24w+SUQIp/Yu2mxPhn7+qN53l5WO7lUhALAjdhzqJVuJMaLVZZDUtgXFwc/P39sWHDBl6P1NRUmJubIzw8HOvXry8R8U/TElhafj9kk8BHjx6if6+vEHf2Kg5G78bqAB+EbjuA6D3bMW+GPf/8V3dHLohsSJbfeMmX0bd7O94DGOzvjT9PHcWGnXFvSCAbDh4+ahzaddRDv14d4DZ/CZp+1grzZ9hjov10dOv5Lbq2a4QxFjYw7j8UQcvYj3s2fos4xIeSh5qO5aLJUvjalVjqORvHL94SfojllEAmWe27jMSNy3uxKzIO3svCELtnJbbtPAg7l8X8cxaQuul3wLBBhvzaL19Jwxd6w3kP4OKloTh64jyORAe/IYFsONjix4HQ69QW7fRNsdTTifcw2jkvhpuLJb7rrQ+dlkawtTLFsIGG8FiyDtk5jxEXFaRmFJ+Qwq+vNPUEqipnbGyMWbNmqXsCra2t0bdvXy54LLGewpCQELi7u2P69OmIiopSc2F57ezs+PGaSEqUwKL4MY5KS3JJIMU/sZZVavxjvZPVq32CTxtp8wqO+dkd//f8OTatXShWYQ1LYGZmJp/a0rx5c16PPXv2wM/PD7t371bHM6XHP01LYGn5/ZBNAhPiz8JjtjPvYXOyGYv2X+lxKfP1mMV77Zi49f+mE9ZtiUat2gXDkuw71ivH5gKe+/MPsDfp2FMpaNS4WaGeQJUEXk1N5qLI5I4lNtePzcHJzclGyAof/H4mDeXKlUNa6hX06dYWxy6k83O6L1iKvv2H8TyH9u/F+B8GIOl2vvBDLKcEnjmfCKcZvjiwawUPNP/p3Ba2E0zhPj8AWY9ysNTDCR26mvHv69YpmLfBvjt3IYnPBTxxKh7sTTrt4k40a9KwUE+gSgKTUq5zUVTJ3f7Yk2BzcLJzcuHltx7XL+3h/FhvoO7XQ5GRvI8PI7NUliRw4MCBmDx5Mnr37s3rzrr9XVxc4OrqirCwMP6nSpaWljAxMeFDK5pISpTAovix3gelJbkkkOKfWMsqPf6xl2KHqd4IXrcDR2NCCo3GSK25pucEsutmIhUREQHWS29ra4vhw4ejpMQ/pUpgSeHH2l/WhSH37mRg5ICeOPBHEuZMs0OVKlUxxsIaxt2/xET7aahYUQtHDkUjOHwvf2bYJFuDDo3x7NlTPg8w7/lz3M5Ih4v7IlhMdHyrBB4+uA+162rD/VffQs8dO9/6kOVvPIu7D53HL2MHw2KiA0aNteLfR+7agkC/RdgefUrqs1son1zDwRm3M/kCjtQLO2Dr5IGqVT7mEtim8zDMcLbkq4P37T+OqO1+//D7Gw0/N8bTp8/4PEA2ZJF+8y4859lhyqQxb5XAqP3HoV2vFvw8nQvVgZ1v2cpNb/CIP7ERX37RosxJIBvyZX+DBhUsIGLDxUz8zMzMwIYAXu8JHD16NGxsbNCly6spDrLcWMUsRIkSWBS/VatWFbNWH+4wuSSQ4p9Ymyk5/rE51cZDbPFpQ20+x1r382Zilf0nt6YlkPUEshfb9PR0/pLbtWtXfmUlJf4pVQJLCj/ZJZAVyHrdZi9chlp16mCWiw2/oZjQsdXCbIHIXM8VqN+gEf/8j2O/83mDIRsiUbFiwfYnu7aF4+zpE9gbd+GtEphxMx2X4s/Af822AjE5dxq3b6WDvYUfjt2H9dsP8s/z8/KQnJiAdl91hqWZCb7s0BlObgv4d2zV8dW/UvjiEDmSXBLIroX19Pl7u/KevokOBcMNTOgmuyxGqxZNsNJ3Gho1LBiWOHT4Tz5vcF/EMlSsUIF/9tvmKBw/GY+Ek5veKoE30u+AvXFHhHvx40+duYT0mwWfMcE8tDeQf56Xn4+Ll1Kh1+kL9SKUstQTyHoBdXV1YWVV8OIQGhrKAyXr8WPCx4ZOqlWrhmfPnsHIyIjPo2nUqOC+/tBJiRJYFD+2uEZpSS4JZPWi+CfWukqMf8mpN9DF8Cc+bYbNx65QQb4FYJqUwMePH/NeoAYNGvC5zlWrVlU3XkmJf0qVwJLCjzW4rD2BXCpOHIarnQXf1uX1xR9sz6yNYat4j59qPuB0h/HIzs6C36pXPVBM5gZ/p4fdsedwYN9O9epg1XBw6zbtMGbotwj+bQ8+a9Ua5qbGfMhZu35DjBvZl688btexM1Yt90LYan8cOXcdG0IDsXj+dEQejsftWzcxydIUtlPc1HMExcKWvAtD4o6egfkvsxEaNLfQcAPbMytozXbe46eaD2hpM5cPE7MtW1SJyRxbKHLh+Abs3BunXh2sGg5u17YlvjGxQuQ2P/42azTQms8DbNigHvoMsuErj9m8QU/fdVgetBk3rzBBLxDMsiSBbNuElStXcvm7e/cunwvIJk2z+X9snsyIESP42/Lq1asRHR3Nt1mg1cGvnqSi+KnmGIk+c3Lml1MCKf6JtYwS4x97GU9MuoogvxnqyjERbPlZY7HKanhOINv+iu16wOYBVq78arsbJoVsXmBJiH9KlcCS9vsh25xA1RPBVgJPtbfg28B83qYdHmU9QGpSIl+xO2GSCxfBp0+foEPz6li6aqNaCll+tudOz07NMXz0OGhpab2xT+Cg4WP4at9tG9fy07G9BX2DNvDVwWzVb0iAD/+8Tl1t+ASEQd+gN+8VnPSzKfZH7eTfsbmB3gFhqPBP75nokyxnTyC7lvPxSRg3cQ7vgWPS9uDhI77fH1uxO9XRnIsg27alqo4BNq9bpJZCFb8mX5jA4sdBqKRV8Y19An80M4GF9VysCdvFq832FmQTnNnqYMdpPnwxCkva9WojPGQ+vumpp8bDegbZopJHN39H9Wqv3hpF+WlyixjVtf97YUh+fj4XvyNHjvBD2NzAmTNnctE7e/YsnzjNUpUqVfiqYk2tDGbXoMSewP+Pn+j9Ind+OSWQXRvFP7EWUlr8a91pCNhc6tdTtU+qIPuW+PxWTfYE+vr6YuvWrW80Fnuxbdq0aYmIf0qVwJL2+yG7BKruKrbv341raahdpy60dRqKRYZ/5c56eB/ly1dA9RoFCyRU6cH9e8i8dxdNm7fgYvh6upNxk4tfXW0dWa9FbglUXRzb9++vtHQufaynTs50/8EjPqxRs0a1QsXey3yIO3cf8LdcJoYfIilBAouqJ9tEld0ztWvXLnQI20A6IyODDwHL9TIhlbUSJVBVl6L4Sa3r+8gntwRS/JOnlcpC/NOkBBanlZQe/5QigSX99+O9SWBxbrLScMz7ksDSwKY4dVCyBBbn+jV9jJIlUNNsinP+9yWBxTl3aTiG4p/0VlS6BEqv2YfJqXQJ/DAUxM4i+5xAscspmbkpCIq1G0mgGD+SQDF+JIFi/Cj+SedHEiidHctJEijGj+UmCRRnKOt/DJHhckpcESSBYk1GEijGjyRQjB9JoHR+JIHS2ZEEirFT5SYJlIEjBUExiCSBYvxIAsX4kQSK8aP4J50fSaB0diSBYuxIAuXhx0uhICgGkyRQjB9JoBg/kkAxfhT/pPMjCZTOjiRQjB1JoDz8SAJl4EgSKAaRJFCMH0mgGD+SQOn8SAKlsyMJFGNHEigPP5JAGTiSBIpBJAkU40cSKMaPJFA6P5JA6exIAsXYkQTKw48kUAaOJIFiEEkCxfiRBIrxIwmUzo8kUDo7kkAxdiSB8vAjCZSBI0mgGESSQDF+JIFi/EgCpfMjCZTOjiRQjN0bEihPcWWzlIm6K8pmxWWq9ZKIwv/1RaZiqRgiUCwClXTNinUcHfR2AhT/xO4Min9i/Ci3OIH/AQbituCsIrsLAAAAAElFTkSuQmCC"},81613:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/type_index-7d73c323ed94d760c7913a71bb3752be.png"},79525:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/write_path-4491f189ec9042b252c1b632b86d4336.png"},77635:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/write_transaction-6f6c3844fe612478890f193c06d1af99.png"},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file diff --git a/assets/js/d54033d7.60e90b0d.js b/assets/js/d54033d7.f4c562a9.js similarity index 98% rename from assets/js/d54033d7.60e90b0d.js rename to assets/js/d54033d7.f4c562a9.js index 16de53027..a3b00addd 100644 --- a/assets/js/d54033d7.60e90b0d.js +++ b/assets/js/d54033d7.f4c562a9.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9855],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>f});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var i=r.createContext({}),s=function(e){var t=r.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},p=function(e){var t=s(e.components);return r.createElement(i.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),d=s(n),m=a,f=d["".concat(i,".").concat(m)]||d[m]||u[m]||o;return n?r.createElement(f,l(l({ref:t},p),{},{components:n})):r.createElement(f,l({ref:t},p))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=m;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[d]="string"==typeof e?e:a,l[1]=c;for(var s=2;s{n.r(t),n.d(t,{Badge:()=>u,Bullet:()=>p,Details:()=>f,SpecifiedBy:()=>d,assets:()=>s,contentTitle:()=>c,default:()=>g,frontMatter:()=>l,metadata:()=>i,toc:()=>m});var r=n(87462),a=n(67294),o=n(3905);n(8209);const l={id:"content",title:"Content",hide_table_of_contents:!1},c=void 0,i={unversionedId:"build/api/schema/scalars/content",id:"build/api/schema/scalars/content",title:"Content",description:"The [Content] scalar type represents transaction content. Depending if the content can displayed",source:"@site/docs/build/api/schema/scalars/content.mdx",sourceDirName:"build/api/schema/scalars",slug:"/build/api/schema/scalars/content",permalink:"/build/api/schema/scalars/content",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"content",title:"Content",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"Boolean",permalink:"/build/api/schema/scalars/boolean"},next:{title:"ErrorData",permalink:"/build/api/schema/scalars/error-data"}},s={},p=()=>(0,o.kt)(a.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),d=e=>(0,o.kt)(a.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,o.kt)(a.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),m=[{value:"Member of",id:"member-of",level:3}],f=e=>{let{dataOpen:t,dataClose:n,children:l,startOpen:c=!1}=e;const[i,s]=(0,a.useState)(c);return(0,o.kt)("details",(0,r.Z)({},i?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),s((e=>!e))},style:{listStyle:"none"}},i?t:n),i&&l)},b={Bullet:p,SpecifiedBy:d,Badge:u,toc:m,Details:f},y="wrapper";function g(e){let{components:t,...n}=e;return(0,o.kt)(y,(0,r.Z)({},b,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"The ","[Content]"," scalar type represents transaction content. Depending if the content can displayed\nit will be rendered as plain text otherwise in hexadecimal"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"scalar Content\n")),(0,o.kt)("h3",{id:"member-of"},"Member of"),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/data"},(0,o.kt)("inlineCode",{parentName:"a"},"Data"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}g.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9855],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>f});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var i=r.createContext({}),s=function(e){var t=r.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},p=function(e){var t=s(e.components);return r.createElement(i.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),d=s(n),m=a,f=d["".concat(i,".").concat(m)]||d[m]||u[m]||o;return n?r.createElement(f,l(l({ref:t},p),{},{components:n})):r.createElement(f,l({ref:t},p))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=m;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[d]="string"==typeof e?e:a,l[1]=c;for(var s=2;s{n.r(t),n.d(t,{Badge:()=>u,Bullet:()=>p,Details:()=>f,SpecifiedBy:()=>d,assets:()=>s,contentTitle:()=>c,default:()=>g,frontMatter:()=>l,metadata:()=>i,toc:()=>m});var r=n(87462),a=n(67294),o=n(3905);n(8209);const l={id:"content",title:"Content",hide_table_of_contents:!1},c=void 0,i={unversionedId:"build/api/schema/scalars/content",id:"build/api/schema/scalars/content",title:"Content",description:"The [Content] scalar type represents transaction content. Depending if the content can displayed",source:"@site/docs/build/api/schema/scalars/content.mdx",sourceDirName:"build/api/schema/scalars",slug:"/build/api/schema/scalars/content",permalink:"/build/api/schema/scalars/content",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"content",title:"Content",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"Boolean",permalink:"/build/api/schema/scalars/boolean"},next:{title:"ErrorData",permalink:"/build/api/schema/scalars/error-data"}},s={},p=()=>(0,o.kt)(a.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),d=e=>(0,o.kt)(a.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,o.kt)(a.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),m=[{value:"Member of",id:"member-of",level:3}],f=e=>{let{dataOpen:t,dataClose:n,children:l,startOpen:c=!1}=e;const[i,s]=(0,a.useState)(c);return(0,o.kt)("details",(0,r.Z)({},i?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),s((e=>!e))},style:{listStyle:"none"}},i?t:n),i&&l)},b={Bullet:p,SpecifiedBy:d,Badge:u,toc:m,Details:f},y="wrapper";function g(e){let{components:t,...n}=e;return(0,o.kt)(y,(0,r.Z)({},b,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"The ","[Content]"," scalar type represents transaction content. Depending if the content can displayed\nit will be rendered as plain text otherwise in hexadecimal"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"scalar Content\n")),(0,o.kt)("h3",{id:"member-of"},"Member of"),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/data"},(0,o.kt)("inlineCode",{parentName:"a"},"Data"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}g.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/d5f21d1f.d805e545.js b/assets/js/d5f21d1f.ea089d07.js similarity index 96% rename from assets/js/d5f21d1f.d805e545.js rename to assets/js/d5f21d1f.ea089d07.js index 03be045ec..3e68dc378 100644 --- a/assets/js/d5f21d1f.d805e545.js +++ b/assets/js/d5f21d1f.ea089d07.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8544],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>b});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),s=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=s(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),u=s(r),f=a,b=u["".concat(l,".").concat(f)]||u[f]||d[f]||o;return r?n.createElement(b,i(i({ref:t},p),{},{components:r})):n.createElement(b,i({ref:t},p))}));function b(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=f;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[u]="string"==typeof e?e:a,i[1]=c;for(var s=2;s{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>c,toc:()=>s});var n=r(87462),a=(r(67294),r(3905));r(8209);const o={id:"js",title:"Javascript SDK"},i=void 0,c={unversionedId:"build/sdk/js",id:"build/sdk/js",title:"Javascript SDK",description:"Archethic Blockchain Official Javascript SDK is available on Github",source:"@site/docs/build/sdk/js.md",sourceDirName:"build/sdk",slug:"/build/sdk/js",permalink:"/build/sdk/js",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"js",title:"Javascript SDK"},sidebar:"docs",previous:{title:"Go SDK",permalink:"/build/sdk/go"},next:{title:"Smart Contracts",permalink:"/build/smart-contracts/"}},l={},s=[],p={toc:s},u="wrapper";function d(e){let{components:t,...r}=e;return(0,a.kt)(u,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"Archethic Blockchain Official Javascript SDK is available on ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/libjs"},"Github")),(0,a.kt)("hr",null),(0,a.kt)("p",null,"This SDK will help you to generate transaction on top of Archethic Blockchain."),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"The ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/aeweb-cli"},"AEWeb")," product is using this SDK to build transaction to deploy web hosting assets in the Archethic Blockchain. Please have a look")))}d.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8544],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>b});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),s=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=s(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),u=s(r),f=a,b=u["".concat(l,".").concat(f)]||u[f]||d[f]||o;return r?n.createElement(b,i(i({ref:t},p),{},{components:r})):n.createElement(b,i({ref:t},p))}));function b(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=f;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[u]="string"==typeof e?e:a,i[1]=c;for(var s=2;s{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>c,toc:()=>s});var n=r(87462),a=(r(67294),r(3905));r(8209);const o={id:"js",title:"Javascript SDK"},i=void 0,c={unversionedId:"build/sdk/js",id:"build/sdk/js",title:"Javascript SDK",description:"Archethic Blockchain Official Javascript SDK is available on Github",source:"@site/docs/build/sdk/js.md",sourceDirName:"build/sdk",slug:"/build/sdk/js",permalink:"/build/sdk/js",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"js",title:"Javascript SDK"},sidebar:"docs",previous:{title:"Go SDK",permalink:"/build/sdk/go"},next:{title:"Smart Contracts",permalink:"/build/smart-contracts/"}},l={},s=[],p={toc:s},u="wrapper";function d(e){let{components:t,...r}=e;return(0,a.kt)(u,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"Archethic Blockchain Official Javascript SDK is available on ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/libjs"},"Github")),(0,a.kt)("hr",null),(0,a.kt)("p",null,"This SDK will help you to generate transaction on top of Archethic Blockchain."),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"The ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/aeweb-cli"},"AEWeb")," product is using this SDK to build transaction to deploy web hosting assets in the Archethic Blockchain. Please have a look")))}d.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file diff --git a/assets/js/d781e8a6.abfba630.js b/assets/js/d781e8a6.568850ba.js similarity index 97% rename from assets/js/d781e8a6.abfba630.js rename to assets/js/d781e8a6.568850ba.js index 901ce1ebd..80b2216eb 100644 --- a/assets/js/d781e8a6.abfba630.js +++ b/assets/js/d781e8a6.568850ba.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4552],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>m});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function c(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var i=r.createContext({}),l=function(e){var t=r.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):c(c({},t),e)),n},d=function(e){var t=l(e.components);return r.createElement(i.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},f=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),u=l(n),f=a,m=u["".concat(i,".").concat(f)]||u[f]||p[f]||o;return n?r.createElement(m,c(c({ref:t},d),{},{components:n})):r.createElement(m,c({ref:t},d))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,c=new Array(o);c[0]=f;var s={};for(var i in t)hasOwnProperty.call(t,i)&&(s[i]=t[i]);s.originalType=e,s[u]="string"==typeof e?e:a,c[1]=s;for(var l=2;l{n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>c,default:()=>p,frontMatter:()=>o,metadata:()=>s,toc:()=>l});var r=n(87462),a=(n(67294),n(3905));n(8209);const o={id:"examples",title:"Smart Contract examples",sidebar_label:"Examples"},c=void 0,s={unversionedId:"build/smart-contracts/language/legacy/examples",id:"build/smart-contracts/language/legacy/examples",title:"Smart Contract examples",description:"Recurrent transfer",source:"@site/docs/build/smart-contracts/language/legacy/examples.md",sourceDirName:"build/smart-contracts/language/legacy",slug:"/build/smart-contracts/language/legacy/examples",permalink:"/build/smart-contracts/language/legacy/examples",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"examples",title:"Smart Contract examples",sidebar_label:"Examples"},sidebar:"docs",previous:{title:"Legacy",permalink:"/build/smart-contracts/language/legacy/"},next:{title:"Language",permalink:"/build/smart-contracts/language/legacy/language"}},i={},l=[{value:"Recurrent transfer",id:"recurrent-transfer",level:2},{value:"ICO / Crowdfunding",id:"ico--crowdfunding",level:2}],d={toc:l},u="wrapper";function p(e){let{components:t,...n}=e;return(0,a.kt)(u,(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"recurrent-transfer"},"Recurrent transfer"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},'# Send 1.0 each to the given address each month\n\ncondition inherit: [\n type: transfer,\n uco_transfers: %{\n "0000D574D171A484F8DEAC2D61FC3F7CC984BEB52465D69B3B5F670090742CBF5CCA" => 100000000\n }\n]\n\nactions triggered_by: interval, at: "0 0 1 * *" do\n set_type transfer\n add_uco_transfer to: "0000D574D171A484F8DEAC2D61FC3F7CC984BEB52465D69B3B5F670090742CBF5CCA", amount: 100000000\nend\n')),(0,a.kt)("h2",{id:"ico--crowdfunding"},"ICO / Crowdfunding"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},"\n# Ensure the next transaction will be a transfer\ncondition inherit: [\n type: transfer,\n token_transfers: size() == 1\n # TODO: to provide more security, we should check the destination address is within the previous transaction inputs\n]\n\n# Define conditions to accept incoming transactions\ncondition transaction: [\n type: transfer,\n uco_transfers: size() > 0\n]\n\nactions triggered_by: transaction do\n # Get the amount of uco send to this contract\n amount_send = transaction.uco_transfers[contract.address]\n\n if amount_send > 0 do\n # Convert UCO to the number of tokens to credit. Each UCO worth 10000 token\n token_to_credit = amount_send * 10000\n\n # Send the new transaction\n set_type transfer\n add_token_transfer to: transaction.address, token_address: contract.address, amount: token_to_credit\n end\nend\n")))}p.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4552],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>m});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function c(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var i=r.createContext({}),l=function(e){var t=r.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):c(c({},t),e)),n},d=function(e){var t=l(e.components);return r.createElement(i.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},f=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),u=l(n),f=a,m=u["".concat(i,".").concat(f)]||u[f]||p[f]||o;return n?r.createElement(m,c(c({ref:t},d),{},{components:n})):r.createElement(m,c({ref:t},d))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,c=new Array(o);c[0]=f;var s={};for(var i in t)hasOwnProperty.call(t,i)&&(s[i]=t[i]);s.originalType=e,s[u]="string"==typeof e?e:a,c[1]=s;for(var l=2;l{n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>c,default:()=>p,frontMatter:()=>o,metadata:()=>s,toc:()=>l});var r=n(87462),a=(n(67294),n(3905));n(8209);const o={id:"examples",title:"Smart Contract examples",sidebar_label:"Examples"},c=void 0,s={unversionedId:"build/smart-contracts/language/legacy/examples",id:"build/smart-contracts/language/legacy/examples",title:"Smart Contract examples",description:"Recurrent transfer",source:"@site/docs/build/smart-contracts/language/legacy/examples.md",sourceDirName:"build/smart-contracts/language/legacy",slug:"/build/smart-contracts/language/legacy/examples",permalink:"/build/smart-contracts/language/legacy/examples",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"examples",title:"Smart Contract examples",sidebar_label:"Examples"},sidebar:"docs",previous:{title:"Legacy",permalink:"/build/smart-contracts/language/legacy/"},next:{title:"Language",permalink:"/build/smart-contracts/language/legacy/language"}},i={},l=[{value:"Recurrent transfer",id:"recurrent-transfer",level:2},{value:"ICO / Crowdfunding",id:"ico--crowdfunding",level:2}],d={toc:l},u="wrapper";function p(e){let{components:t,...n}=e;return(0,a.kt)(u,(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"recurrent-transfer"},"Recurrent transfer"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},'# Send 1.0 each to the given address each month\n\ncondition inherit: [\n type: transfer,\n uco_transfers: %{\n "0000D574D171A484F8DEAC2D61FC3F7CC984BEB52465D69B3B5F670090742CBF5CCA" => 100000000\n }\n]\n\nactions triggered_by: interval, at: "0 0 1 * *" do\n set_type transfer\n add_uco_transfer to: "0000D574D171A484F8DEAC2D61FC3F7CC984BEB52465D69B3B5F670090742CBF5CCA", amount: 100000000\nend\n')),(0,a.kt)("h2",{id:"ico--crowdfunding"},"ICO / Crowdfunding"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},"\n# Ensure the next transaction will be a transfer\ncondition inherit: [\n type: transfer,\n token_transfers: size() == 1\n # TODO: to provide more security, we should check the destination address is within the previous transaction inputs\n]\n\n# Define conditions to accept incoming transactions\ncondition transaction: [\n type: transfer,\n uco_transfers: size() > 0\n]\n\nactions triggered_by: transaction do\n # Get the amount of uco send to this contract\n amount_send = transaction.uco_transfers[contract.address]\n\n if amount_send > 0 do\n # Convert UCO to the number of tokens to credit. Each UCO worth 10000 token\n token_to_credit = amount_send * 10000\n\n # Send the new transaction\n set_type transfer\n add_token_transfer to: transaction.address, token_address: contract.address, amount: token_to_credit\n end\nend\n")))}p.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/d8579283.624e0117.js b/assets/js/d8579283.1bfcabc8.js similarity index 99% rename from assets/js/d8579283.624e0117.js rename to assets/js/d8579283.1bfcabc8.js index c8486f739..e5b1e6fa5 100644 --- a/assets/js/d8579283.624e0117.js +++ b/assets/js/d8579283.1bfcabc8.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3826],{3905:(e,t,a)=>{a.d(t,{Zo:()=>m,kt:()=>c});var n=a(67294);function l(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t=0||(l[a]=e[a]);return l}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(l[a]=e[a])}return l}var u=n.createContext({}),o=function(e){var t=n.useContext(u),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},m=function(e){var t=o(e.components);return n.createElement(u.Provider,{value:t},e.children)},k="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var a=e.components,l=e.mdxType,r=e.originalType,u=e.parentName,m=p(e,["components","mdxType","originalType","parentName"]),k=o(a),d=l,c=k["".concat(u,".").concat(d)]||k[d]||s[d]||r;return a?n.createElement(c,i(i({ref:t},m),{},{components:a})):n.createElement(c,i({ref:t},m))}));function c(e,t){var a=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var r=a.length,i=new Array(r);i[0]=d;var p={};for(var u in t)hasOwnProperty.call(t,u)&&(p[u]=t[u]);p.originalType=e,p[k]="string"==typeof e?e:l,i[1]=p;for(var o=2;o{a.r(t),a.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>s,frontMatter:()=>r,metadata:()=>p,toc:()=>o});var n=a(87462),l=(a(67294),a(3905));a(8209);const r={id:"map",title:"Map module",sidebar_label:"Map"},i=void 0,p={unversionedId:"build/smart-contracts/language/library/map",id:"build/smart-contracts/language/library/map",title:"Map module",description:"The Map module contains functions to manipulate maps (dicts). The keys and values can be of any type.",source:"@site/docs/build/smart-contracts/language/library/map.md",sourceDirName:"build/smart-contracts/language/library",slug:"/build/smart-contracts/language/library/map",permalink:"/build/smart-contracts/language/library/map",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"map",title:"Map module",sidebar_label:"Map"},sidebar:"docs",previous:{title:"List",permalink:"/build/smart-contracts/language/library/list"},next:{title:"Math",permalink:"/build/smart-contracts/language/library/math"}},u={},o=[{value:"new/0",id:"new0",level:3},{value:"size/1",id:"size1",level:3},{value:"get/2",id:"get2",level:3},{value:"get/3",id:"get3",level:3},{value:"set/3",id:"set3",level:3},{value:"keys/1",id:"keys1",level:3},{value:"values/1",id:"values1",level:3},{value:"delete/2",id:"delete2",level:3}],m={toc:o},k="wrapper";function s(e){let{components:t,...a}=e;return(0,l.kt)(k,(0,n.Z)({},m,a,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("p",null,"The ",(0,l.kt)("inlineCode",{parentName:"p"},"Map")," module contains functions to manipulate maps (dicts). The keys and values can be of any type."),(0,l.kt)("h3",{id:"new0"},"new/0"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-elixir"},"Map.new() # empty map\n")),(0,l.kt)("p",null,"Returns an empty map. There is no shorthand notation."),(0,l.kt)("h3",{id:"size1"},"size/1"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-elixir"},'Map.size(key1: "value", key2: "value2") # 2\n')),(0,l.kt)("p",null,"Parameters:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"map")," the map")),(0,l.kt)("p",null,"Returns the number of keys in ",(0,l.kt)("inlineCode",{parentName:"p"},"map"),"."),(0,l.kt)("h3",{id:"get2"},"get/2"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-elixir"},'Map.get([key1: "value", key2: "value2"], "key1") # "value"\nMap.get([key1: "value", key2: "value2"], "key3") # nil\n')),(0,l.kt)("p",null,"Parameters:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"map")," the map"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"key")," the key")),(0,l.kt)("p",null,"Returns the value at ",(0,l.kt)("inlineCode",{parentName:"p"},"key")," in ",(0,l.kt)("inlineCode",{parentName:"p"},"map")," or ",(0,l.kt)("inlineCode",{parentName:"p"},"nil")," if ",(0,l.kt)("inlineCode",{parentName:"p"},"key")," is not in the ",(0,l.kt)("inlineCode",{parentName:"p"},"map"),"."),(0,l.kt)("admonition",{type:"tip"},(0,l.kt)("p",{parentName:"admonition"},"There is a shorthand notation ",(0,l.kt)("inlineCode",{parentName:"p"},"map.key")," when key is not a variable.")),(0,l.kt)("h3",{id:"get3"},"get/3"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-elixir"},'Map.get([key1: "value", key2: "value2"], "key1", "not in map") # "value"\nMap.get([key1: "value", key2: "value2"], "key3", "not in map") # "not in map"\n')),(0,l.kt)("p",null,"Parameters:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"map")," the map"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"key")," the key"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"default")," the default value")),(0,l.kt)("p",null,"Returns the value at ",(0,l.kt)("inlineCode",{parentName:"p"},"key")," in ",(0,l.kt)("inlineCode",{parentName:"p"},"map")," or ",(0,l.kt)("inlineCode",{parentName:"p"},"default")," if ",(0,l.kt)("inlineCode",{parentName:"p"},"key")," is not in the ",(0,l.kt)("inlineCode",{parentName:"p"},"map"),"."),(0,l.kt)("h3",{id:"set3"},"set/3"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-elixir"},'Map.set([key1: "value", key2: "value2"], "key1", "valueX") # [key1: "valueX", key2: "value2"]\nMap.get([key1: "value", key2: "value2"], "key3", "value3") # [key1: "value", key2: "value2, key3: "value3"]\n')),(0,l.kt)("p",null,"Parameters:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"map")," the map"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"key")," the key"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"value")," the value to set")),(0,l.kt)("p",null,"Returns a copy of ",(0,l.kt)("inlineCode",{parentName:"p"},"map")," where the value at ",(0,l.kt)("inlineCode",{parentName:"p"},"key")," is ",(0,l.kt)("inlineCode",{parentName:"p"},"value"),"."),(0,l.kt)("h3",{id:"keys1"},"keys/1"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-elixir"},'Map.keys(key1: "value", key2: "value2") # ["key1", "key2"]\n')),(0,l.kt)("p",null,"Parameters:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"map")," the map")),(0,l.kt)("p",null,"Returns the list of keys in ",(0,l.kt)("inlineCode",{parentName:"p"},"map"),"."),(0,l.kt)("admonition",{type:"tip"},(0,l.kt)("p",{parentName:"admonition"},"Use it with a ",(0,l.kt)("inlineCode",{parentName:"p"},"for loop")," to iterate on a map!"),(0,l.kt)("pre",{parentName:"admonition"},(0,l.kt)("code",{parentName:"pre",className:"language-elixir"},"for key in Map.keys(map) do\n ...\n value = map[key]\n ...\nend\n"))),(0,l.kt)("h3",{id:"values1"},"values/1"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-elixir"},'Map.values(key1: "value", key2: "value2") # ["value", "value2"]\n')),(0,l.kt)("p",null,"Parameters:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"map")," the map")),(0,l.kt)("p",null,"Returns the list of values in ",(0,l.kt)("inlineCode",{parentName:"p"},"map"),"."),(0,l.kt)("h3",{id:"delete2"},"delete/2"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-elixir"},'Map.delete([key1: "value", key2: "value2"], "key2") # [key1: "value"]\n')),(0,l.kt)("p",null,"Parameters:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"map")," the map"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"key")," the key to remove")),(0,l.kt)("p",null,"Returns a copy of the ",(0,l.kt)("inlineCode",{parentName:"p"},"map")," without the value at given ",(0,l.kt)("inlineCode",{parentName:"p"},"key"),"."))}s.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3826],{3905:(e,t,a)=>{a.d(t,{Zo:()=>m,kt:()=>c});var n=a(67294);function l(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t=0||(l[a]=e[a]);return l}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(l[a]=e[a])}return l}var u=n.createContext({}),o=function(e){var t=n.useContext(u),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},m=function(e){var t=o(e.components);return n.createElement(u.Provider,{value:t},e.children)},k="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var a=e.components,l=e.mdxType,r=e.originalType,u=e.parentName,m=p(e,["components","mdxType","originalType","parentName"]),k=o(a),d=l,c=k["".concat(u,".").concat(d)]||k[d]||s[d]||r;return a?n.createElement(c,i(i({ref:t},m),{},{components:a})):n.createElement(c,i({ref:t},m))}));function c(e,t){var a=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var r=a.length,i=new Array(r);i[0]=d;var p={};for(var u in t)hasOwnProperty.call(t,u)&&(p[u]=t[u]);p.originalType=e,p[k]="string"==typeof e?e:l,i[1]=p;for(var o=2;o{a.r(t),a.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>s,frontMatter:()=>r,metadata:()=>p,toc:()=>o});var n=a(87462),l=(a(67294),a(3905));a(8209);const r={id:"map",title:"Map module",sidebar_label:"Map"},i=void 0,p={unversionedId:"build/smart-contracts/language/library/map",id:"build/smart-contracts/language/library/map",title:"Map module",description:"The Map module contains functions to manipulate maps (dicts). The keys and values can be of any type.",source:"@site/docs/build/smart-contracts/language/library/map.md",sourceDirName:"build/smart-contracts/language/library",slug:"/build/smart-contracts/language/library/map",permalink:"/build/smart-contracts/language/library/map",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"map",title:"Map module",sidebar_label:"Map"},sidebar:"docs",previous:{title:"List",permalink:"/build/smart-contracts/language/library/list"},next:{title:"Math",permalink:"/build/smart-contracts/language/library/math"}},u={},o=[{value:"new/0",id:"new0",level:3},{value:"size/1",id:"size1",level:3},{value:"get/2",id:"get2",level:3},{value:"get/3",id:"get3",level:3},{value:"set/3",id:"set3",level:3},{value:"keys/1",id:"keys1",level:3},{value:"values/1",id:"values1",level:3},{value:"delete/2",id:"delete2",level:3}],m={toc:o},k="wrapper";function s(e){let{components:t,...a}=e;return(0,l.kt)(k,(0,n.Z)({},m,a,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("p",null,"The ",(0,l.kt)("inlineCode",{parentName:"p"},"Map")," module contains functions to manipulate maps (dicts). The keys and values can be of any type."),(0,l.kt)("h3",{id:"new0"},"new/0"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-elixir"},"Map.new() # empty map\n")),(0,l.kt)("p",null,"Returns an empty map. There is no shorthand notation."),(0,l.kt)("h3",{id:"size1"},"size/1"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-elixir"},'Map.size(key1: "value", key2: "value2") # 2\n')),(0,l.kt)("p",null,"Parameters:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"map")," the map")),(0,l.kt)("p",null,"Returns the number of keys in ",(0,l.kt)("inlineCode",{parentName:"p"},"map"),"."),(0,l.kt)("h3",{id:"get2"},"get/2"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-elixir"},'Map.get([key1: "value", key2: "value2"], "key1") # "value"\nMap.get([key1: "value", key2: "value2"], "key3") # nil\n')),(0,l.kt)("p",null,"Parameters:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"map")," the map"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"key")," the key")),(0,l.kt)("p",null,"Returns the value at ",(0,l.kt)("inlineCode",{parentName:"p"},"key")," in ",(0,l.kt)("inlineCode",{parentName:"p"},"map")," or ",(0,l.kt)("inlineCode",{parentName:"p"},"nil")," if ",(0,l.kt)("inlineCode",{parentName:"p"},"key")," is not in the ",(0,l.kt)("inlineCode",{parentName:"p"},"map"),"."),(0,l.kt)("admonition",{type:"tip"},(0,l.kt)("p",{parentName:"admonition"},"There is a shorthand notation ",(0,l.kt)("inlineCode",{parentName:"p"},"map.key")," when key is not a variable.")),(0,l.kt)("h3",{id:"get3"},"get/3"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-elixir"},'Map.get([key1: "value", key2: "value2"], "key1", "not in map") # "value"\nMap.get([key1: "value", key2: "value2"], "key3", "not in map") # "not in map"\n')),(0,l.kt)("p",null,"Parameters:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"map")," the map"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"key")," the key"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"default")," the default value")),(0,l.kt)("p",null,"Returns the value at ",(0,l.kt)("inlineCode",{parentName:"p"},"key")," in ",(0,l.kt)("inlineCode",{parentName:"p"},"map")," or ",(0,l.kt)("inlineCode",{parentName:"p"},"default")," if ",(0,l.kt)("inlineCode",{parentName:"p"},"key")," is not in the ",(0,l.kt)("inlineCode",{parentName:"p"},"map"),"."),(0,l.kt)("h3",{id:"set3"},"set/3"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-elixir"},'Map.set([key1: "value", key2: "value2"], "key1", "valueX") # [key1: "valueX", key2: "value2"]\nMap.get([key1: "value", key2: "value2"], "key3", "value3") # [key1: "value", key2: "value2, key3: "value3"]\n')),(0,l.kt)("p",null,"Parameters:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"map")," the map"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"key")," the key"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"value")," the value to set")),(0,l.kt)("p",null,"Returns a copy of ",(0,l.kt)("inlineCode",{parentName:"p"},"map")," where the value at ",(0,l.kt)("inlineCode",{parentName:"p"},"key")," is ",(0,l.kt)("inlineCode",{parentName:"p"},"value"),"."),(0,l.kt)("h3",{id:"keys1"},"keys/1"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-elixir"},'Map.keys(key1: "value", key2: "value2") # ["key1", "key2"]\n')),(0,l.kt)("p",null,"Parameters:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"map")," the map")),(0,l.kt)("p",null,"Returns the list of keys in ",(0,l.kt)("inlineCode",{parentName:"p"},"map"),"."),(0,l.kt)("admonition",{type:"tip"},(0,l.kt)("p",{parentName:"admonition"},"Use it with a ",(0,l.kt)("inlineCode",{parentName:"p"},"for loop")," to iterate on a map!"),(0,l.kt)("pre",{parentName:"admonition"},(0,l.kt)("code",{parentName:"pre",className:"language-elixir"},"for key in Map.keys(map) do\n ...\n value = map[key]\n ...\nend\n"))),(0,l.kt)("h3",{id:"values1"},"values/1"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-elixir"},'Map.values(key1: "value", key2: "value2") # ["value", "value2"]\n')),(0,l.kt)("p",null,"Parameters:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"map")," the map")),(0,l.kt)("p",null,"Returns the list of values in ",(0,l.kt)("inlineCode",{parentName:"p"},"map"),"."),(0,l.kt)("h3",{id:"delete2"},"delete/2"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-elixir"},'Map.delete([key1: "value", key2: "value2"], "key2") # [key1: "value"]\n')),(0,l.kt)("p",null,"Parameters:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"map")," the map"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"key")," the key to remove")),(0,l.kt)("p",null,"Returns a copy of the ",(0,l.kt)("inlineCode",{parentName:"p"},"map")," without the value at given ",(0,l.kt)("inlineCode",{parentName:"p"},"key"),"."))}s.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file diff --git a/assets/js/daff3ff4.d1822931.js b/assets/js/daff3ff4.a5ccee75.js similarity index 98% rename from assets/js/daff3ff4.d1822931.js rename to assets/js/daff3ff4.a5ccee75.js index 80c340056..57ccc5d0e 100644 --- a/assets/js/daff3ff4.d1822931.js +++ b/assets/js/daff3ff4.a5ccee75.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1718],{3905:(e,n,t)=>{t.d(n,{Zo:()=>u,kt:()=>m});var r=t(67294);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function a(e){for(var n=1;n=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var s=r.createContext({}),l=function(e){var n=r.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):a(a({},n),e)),t},u=function(e){var n=l(e.components);return r.createElement(s.Provider,{value:n},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},f=r.forwardRef((function(e,n){var t=e.components,o=e.mdxType,i=e.originalType,s=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),d=l(t),f=o,m=d["".concat(s,".").concat(f)]||d[f]||p[f]||i;return t?r.createElement(m,a(a({ref:n},u),{},{components:t})):r.createElement(m,a({ref:n},u))}));function m(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var i=t.length,a=new Array(i);a[0]=f;var c={};for(var s in n)hasOwnProperty.call(n,s)&&(c[s]=n[s]);c.originalType=e,c[d]="string"==typeof e?e:o,a[1]=c;for(var l=2;l{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>a,default:()=>p,frontMatter:()=>i,metadata:()=>c,toc:()=>l});var r=t(87462),o=(t(67294),t(3905));t(8209);const i={id:"uco",title:"UCO token",sidebar_position:2},a=void 0,c={unversionedId:"learn/uco",id:"learn/uco",title:"UCO token",description:"Archethic, an open-source public blockchain is an infrastructure that is fuelled by its native cryptocurrency and should ideally scale to the sum of its individual nodes\u2019 performance. It needs to be designed in such a way that it is a self-sustaining economy run by the people, for the people.",source:"@site/docs/learn/uco.md",sourceDirName:"learn",slug:"/learn/uco",permalink:"/learn/uco",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",sidebarPosition:2,frontMatter:{id:"uco",title:"UCO token",sidebar_position:2},sidebar:"docs",previous:{title:"Learn",permalink:"/learn/"},next:{title:"Ecosystem",permalink:"/learn/ecosystem"}},s={},l=[{value:"Fibonacci Golden Token Economics",id:"fibonacci-golden-token-economics",level:2}],u={toc:l},d="wrapper";function p(e){let{components:n,...t}=e;return(0,o.kt)(d,(0,r.Z)({},u,t,{components:n,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Archethic, an open-source public blockchain is an infrastructure that is fuelled by its native cryptocurrency and should ideally scale to the sum of its individual nodes\u2019 performance. It needs to be designed in such a way that it is a self-sustaining economy run by the people, for the people."),(0,o.kt)("p",null,"UCO is based on the principle of controlled supply and creating demand."),(0,o.kt)("h2",{id:"fibonacci-golden-token-economics"},"Fibonacci Golden Token Economics"),(0,o.kt)("p",null,"To achieve the objective of a self-sustaining crypto economy, the token distribution has been redefined. The transactions growth, users growth ans developers growth based on the set of commissioned applications has been analysed. The cost of running the nodes has been calculated and the adoption and incentivization has been designed to ensure the sustenance of nodes."),(0,o.kt)("br",null),(0,o.kt)("mermaid",{value:'pie\n "Network Funding": 38.2\n "Adoption Rewards": 23.6\n "Team & Advisors": 14.5\n "Staking Rewards": 9\n "Exchange Liquidity": 5.57\n "Dynamic Mminers Rewards": 3.34\n "Gamification & Geo incentives": 3.44\n "Foundation": 2.13'}))}p.isMDXComponent=!0},8209:(e,n,t)=>{t(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1718],{3905:(e,n,t)=>{t.d(n,{Zo:()=>u,kt:()=>m});var r=t(67294);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function a(e){for(var n=1;n=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var s=r.createContext({}),l=function(e){var n=r.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):a(a({},n),e)),t},u=function(e){var n=l(e.components);return r.createElement(s.Provider,{value:n},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},f=r.forwardRef((function(e,n){var t=e.components,o=e.mdxType,i=e.originalType,s=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),d=l(t),f=o,m=d["".concat(s,".").concat(f)]||d[f]||p[f]||i;return t?r.createElement(m,a(a({ref:n},u),{},{components:t})):r.createElement(m,a({ref:n},u))}));function m(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var i=t.length,a=new Array(i);a[0]=f;var c={};for(var s in n)hasOwnProperty.call(n,s)&&(c[s]=n[s]);c.originalType=e,c[d]="string"==typeof e?e:o,a[1]=c;for(var l=2;l{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>a,default:()=>p,frontMatter:()=>i,metadata:()=>c,toc:()=>l});var r=t(87462),o=(t(67294),t(3905));t(8209);const i={id:"uco",title:"UCO token",sidebar_position:2},a=void 0,c={unversionedId:"learn/uco",id:"learn/uco",title:"UCO token",description:"Archethic, an open-source public blockchain is an infrastructure that is fuelled by its native cryptocurrency and should ideally scale to the sum of its individual nodes\u2019 performance. It needs to be designed in such a way that it is a self-sustaining economy run by the people, for the people.",source:"@site/docs/learn/uco.md",sourceDirName:"learn",slug:"/learn/uco",permalink:"/learn/uco",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",sidebarPosition:2,frontMatter:{id:"uco",title:"UCO token",sidebar_position:2},sidebar:"docs",previous:{title:"Learn",permalink:"/learn/"},next:{title:"Ecosystem",permalink:"/learn/ecosystem"}},s={},l=[{value:"Fibonacci Golden Token Economics",id:"fibonacci-golden-token-economics",level:2}],u={toc:l},d="wrapper";function p(e){let{components:n,...t}=e;return(0,o.kt)(d,(0,r.Z)({},u,t,{components:n,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Archethic, an open-source public blockchain is an infrastructure that is fuelled by its native cryptocurrency and should ideally scale to the sum of its individual nodes\u2019 performance. It needs to be designed in such a way that it is a self-sustaining economy run by the people, for the people."),(0,o.kt)("p",null,"UCO is based on the principle of controlled supply and creating demand."),(0,o.kt)("h2",{id:"fibonacci-golden-token-economics"},"Fibonacci Golden Token Economics"),(0,o.kt)("p",null,"To achieve the objective of a self-sustaining crypto economy, the token distribution has been redefined. The transactions growth, users growth ans developers growth based on the set of commissioned applications has been analysed. The cost of running the nodes has been calculated and the adoption and incentivization has been designed to ensure the sustenance of nodes."),(0,o.kt)("br",null),(0,o.kt)("mermaid",{value:'pie\n "Network Funding": 38.2\n "Adoption Rewards": 23.6\n "Team & Advisors": 14.5\n "Staking Rewards": 9\n "Exchange Liquidity": 5.57\n "Dynamic Mminers Rewards": 3.34\n "Gamification & Geo incentives": 3.44\n "Foundation": 2.13'}))}p.isMDXComponent=!0},8209:(e,n,t)=>{t(67294)}}]); \ No newline at end of file diff --git a/assets/js/db2ee795.1bbff77e.js b/assets/js/db2ee795.9d980ee2.js similarity index 98% rename from assets/js/db2ee795.1bbff77e.js rename to assets/js/db2ee795.9d980ee2.js index 70b1520c7..48b80470c 100644 --- a/assets/js/db2ee795.1bbff77e.js +++ b/assets/js/db2ee795.9d980ee2.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1950],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>m});var a=n(67294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function r(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l=a.createContext({}),c=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},p=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var n=e.components,i=e.mdxType,o=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=c(n),h=i,m=d["".concat(l,".").concat(h)]||d[h]||u[h]||o;return n?a.createElement(m,r(r({ref:t},p),{},{components:n})):a.createElement(m,r({ref:t},p))}));function m(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=n.length,r=new Array(o);r[0]=h;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[d]="string"==typeof e?e:i,r[1]=s;for(var c=2;c{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>u,frontMatter:()=>o,metadata:()=>s,toc:()=>c});var a=n(87462),i=(n(67294),n(3905));n(8209);const o={id:"ecosystem",title:"Ecosystem",sidebar_position:3},r=void 0,s={unversionedId:"learn/ecosystem",id:"learn/ecosystem",title:"Ecosystem",description:"The technical and functional parameters that make Archethic unique and ready for global adoption:",source:"@site/docs/learn/ecosystem.md",sourceDirName:"learn",slug:"/learn/ecosystem",permalink:"/learn/ecosystem",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",sidebarPosition:3,frontMatter:{id:"ecosystem",title:"Ecosystem",sidebar_position:3},sidebar:"docs",previous:{title:"UCO token",permalink:"/learn/uco"},next:{title:"Patents",permalink:"/learn/patents"}},l={},c=[{value:"Limitless network",id:"limitless-network",level:2},{value:"Unlimited applications",id:"unlimited-applications",level:2},{value:"Decentralized Identity",id:"decentralized-identity",level:2},{value:"Governance",id:"governance",level:2},{value:"Open enhancements",id:"open-enhancements",level:3}],p={toc:c},d="wrapper";function u(e){let{components:t,...n}=e;return(0,i.kt)(d,(0,a.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"The technical and functional parameters that make Archethic unique and ready for global adoption:"),(0,i.kt)("h2",{id:"limitless-network"},"Limitless network"),(0,i.kt)("p",null,"Archethic is outperforming the market standards with some key indicators:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"a scalability >1 Million TPS"),(0,i.kt)("li",{parentName:"ul"},"a validation time < 5 sec"),(0,i.kt)("li",{parentName:"ul"},"capability to handle up to 90% maliciousness"),(0,i.kt)("li",{parentName:"ul"},"3.6 billion times less energy consumption than Bitcoin and 0.1% transaction fee")),(0,i.kt)("admonition",{title:"Super Fast & Limitless",type:"success"},(0,i.kt)("p",{parentName:"admonition"},"Without impacting the global validation, the heuristic polymorphic replication provides a linear increase of the capacity (in storage and number of validations) allowing us to reach 1 MILLION TPS transactions per second.")),(0,i.kt)("admonition",{title:"Safest",type:"success"},(0,i.kt)("p",{parentName:"admonition"},"Beyond just PoW (51%) or dBFT (66%), Archethic implements a consensus that can handle 90% of malicious miners and decentralized security based on the standards of aviation safety (fraud risk less than 10-9).")),(0,i.kt)("admonition",{title:"Earth Friendly",type:"success"},(0,i.kt)("p",{parentName:"admonition"},"3.6 Billion times less energy consumption than Bitcoin by using the ARCH consensus based on heuristic miners' election and a polymorphic worldwide replication. Each transaction only needs 0.42w of energy.")),(0,i.kt)("h2",{id:"unlimited-applications"},"Unlimited applications"),(0,i.kt)("p",null,"Our blockchain platform aims to replace and to improve all current applications with a comprehensive and open ecosystem, allowing people to move from the trust imposed by centralized to a decentralized system."),(0,i.kt)("h2",{id:"decentralized-identity"},"Decentralized Identity"),(0,i.kt)("p",null,"Your identity is your right. The security and threat issues that centralized systems pose helped us realize that self-sovereign identity is needed now more than ever."),(0,i.kt)("p",null,"With Archethic, you can access your identity but no one owns it.\nHave you ever wondered how many times your identity is exploited without your knowledge by centralized monopolies or even your favorite merchant site?"),(0,i.kt)("p",null,"The world wants you to believe that ownership doesn\u2019t matter. We are here to change that narrative."),(0,i.kt)("p",null,"Identity is not just about ownership but control and freedom."),(0,i.kt)("p",null,"Archethic provides interoperable ",(0,i.kt)("a",{parentName:"p",href:"/learn/decentralized-id"},"decentralized identity management")," using both the traditional key management as well as our crypto-biometrics key management solution."),(0,i.kt)("p",null,"Enter the era of innovation and decentralized identity that is yours to own and control."),(0,i.kt)("h2",{id:"governance"},"Governance"),(0,i.kt)("p",null,"Archethic Foundation is a non-profit organization whose vision is the promotion of the Archethic Public Blockchain Protocol."),(0,i.kt)("p",null,"It considers Archethic as a project \u2013 where a solid technical foundation is a key to winning the marathon race to global adoption. Its role is to sustainably deploy resources that are under control to support the long-term success of Archethic. This long-term success will only be possible with a vibrant decentralized ecosystem."),(0,i.kt)("p",null,"To provide an inclusive, generously incentivized, and on-chain Governance, Archethic is based on those four pillars:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Decentralized Identity & Proof of Identity"),": An essential prerequisite for a human-inclusive governance in blockchain is the ability of the ecosystem to uniquely identify a person and to integrate that person into a relevant group.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Modifiable"),": Each algorithm can be updated through transactions allowing the network to version (git...) all updates, and also to force each update according to a specific governance (voting quorum, veto right...).")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"On-Chain Governance"),": The code used by the nodes is hosted by the Blockchain itself, so the network is certain that all the nodes will immediately apply the decided updates along with the ability to test the impact of a new feature in real-time.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Generous Incentives"),": Financing the work associated with updates, new features, and contributions is an essential element. The network has a reserve of one-third of the tokens for this purpose."))),(0,i.kt)("h3",{id:"open-enhancements"},"Open enhancements"),(0,i.kt)("p",null,"We are an open-source and decentralized protocol which decision involves community votes and suggestions."),(0,i.kt)("p",null,"In that sense, we have created ",(0,i.kt)("strong",{parentName:"p"},"Archethic Improvement Proposals (AEIPs)")," to offer opportunity to contribute in the project by proposing technical, informational and process-based enhancements."),(0,i.kt)("p",null,"If you are interested, please take on the ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/aeip"},"AEIP repository")))}u.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1950],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>m});var a=n(67294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function r(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l=a.createContext({}),c=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},p=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var n=e.components,i=e.mdxType,o=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=c(n),h=i,m=d["".concat(l,".").concat(h)]||d[h]||u[h]||o;return n?a.createElement(m,r(r({ref:t},p),{},{components:n})):a.createElement(m,r({ref:t},p))}));function m(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=n.length,r=new Array(o);r[0]=h;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[d]="string"==typeof e?e:i,r[1]=s;for(var c=2;c{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>u,frontMatter:()=>o,metadata:()=>s,toc:()=>c});var a=n(87462),i=(n(67294),n(3905));n(8209);const o={id:"ecosystem",title:"Ecosystem",sidebar_position:3},r=void 0,s={unversionedId:"learn/ecosystem",id:"learn/ecosystem",title:"Ecosystem",description:"The technical and functional parameters that make Archethic unique and ready for global adoption:",source:"@site/docs/learn/ecosystem.md",sourceDirName:"learn",slug:"/learn/ecosystem",permalink:"/learn/ecosystem",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",sidebarPosition:3,frontMatter:{id:"ecosystem",title:"Ecosystem",sidebar_position:3},sidebar:"docs",previous:{title:"UCO token",permalink:"/learn/uco"},next:{title:"Patents",permalink:"/learn/patents"}},l={},c=[{value:"Limitless network",id:"limitless-network",level:2},{value:"Unlimited applications",id:"unlimited-applications",level:2},{value:"Decentralized Identity",id:"decentralized-identity",level:2},{value:"Governance",id:"governance",level:2},{value:"Open enhancements",id:"open-enhancements",level:3}],p={toc:c},d="wrapper";function u(e){let{components:t,...n}=e;return(0,i.kt)(d,(0,a.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"The technical and functional parameters that make Archethic unique and ready for global adoption:"),(0,i.kt)("h2",{id:"limitless-network"},"Limitless network"),(0,i.kt)("p",null,"Archethic is outperforming the market standards with some key indicators:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"a scalability >1 Million TPS"),(0,i.kt)("li",{parentName:"ul"},"a validation time < 5 sec"),(0,i.kt)("li",{parentName:"ul"},"capability to handle up to 90% maliciousness"),(0,i.kt)("li",{parentName:"ul"},"3.6 billion times less energy consumption than Bitcoin and 0.1% transaction fee")),(0,i.kt)("admonition",{title:"Super Fast & Limitless",type:"success"},(0,i.kt)("p",{parentName:"admonition"},"Without impacting the global validation, the heuristic polymorphic replication provides a linear increase of the capacity (in storage and number of validations) allowing us to reach 1 MILLION TPS transactions per second.")),(0,i.kt)("admonition",{title:"Safest",type:"success"},(0,i.kt)("p",{parentName:"admonition"},"Beyond just PoW (51%) or dBFT (66%), Archethic implements a consensus that can handle 90% of malicious miners and decentralized security based on the standards of aviation safety (fraud risk less than 10-9).")),(0,i.kt)("admonition",{title:"Earth Friendly",type:"success"},(0,i.kt)("p",{parentName:"admonition"},"3.6 Billion times less energy consumption than Bitcoin by using the ARCH consensus based on heuristic miners' election and a polymorphic worldwide replication. Each transaction only needs 0.42w of energy.")),(0,i.kt)("h2",{id:"unlimited-applications"},"Unlimited applications"),(0,i.kt)("p",null,"Our blockchain platform aims to replace and to improve all current applications with a comprehensive and open ecosystem, allowing people to move from the trust imposed by centralized to a decentralized system."),(0,i.kt)("h2",{id:"decentralized-identity"},"Decentralized Identity"),(0,i.kt)("p",null,"Your identity is your right. The security and threat issues that centralized systems pose helped us realize that self-sovereign identity is needed now more than ever."),(0,i.kt)("p",null,"With Archethic, you can access your identity but no one owns it.\nHave you ever wondered how many times your identity is exploited without your knowledge by centralized monopolies or even your favorite merchant site?"),(0,i.kt)("p",null,"The world wants you to believe that ownership doesn\u2019t matter. We are here to change that narrative."),(0,i.kt)("p",null,"Identity is not just about ownership but control and freedom."),(0,i.kt)("p",null,"Archethic provides interoperable ",(0,i.kt)("a",{parentName:"p",href:"/learn/decentralized-id"},"decentralized identity management")," using both the traditional key management as well as our crypto-biometrics key management solution."),(0,i.kt)("p",null,"Enter the era of innovation and decentralized identity that is yours to own and control."),(0,i.kt)("h2",{id:"governance"},"Governance"),(0,i.kt)("p",null,"Archethic Foundation is a non-profit organization whose vision is the promotion of the Archethic Public Blockchain Protocol."),(0,i.kt)("p",null,"It considers Archethic as a project \u2013 where a solid technical foundation is a key to winning the marathon race to global adoption. Its role is to sustainably deploy resources that are under control to support the long-term success of Archethic. This long-term success will only be possible with a vibrant decentralized ecosystem."),(0,i.kt)("p",null,"To provide an inclusive, generously incentivized, and on-chain Governance, Archethic is based on those four pillars:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Decentralized Identity & Proof of Identity"),": An essential prerequisite for a human-inclusive governance in blockchain is the ability of the ecosystem to uniquely identify a person and to integrate that person into a relevant group.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Modifiable"),": Each algorithm can be updated through transactions allowing the network to version (git...) all updates, and also to force each update according to a specific governance (voting quorum, veto right...).")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"On-Chain Governance"),": The code used by the nodes is hosted by the Blockchain itself, so the network is certain that all the nodes will immediately apply the decided updates along with the ability to test the impact of a new feature in real-time.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Generous Incentives"),": Financing the work associated with updates, new features, and contributions is an essential element. The network has a reserve of one-third of the tokens for this purpose."))),(0,i.kt)("h3",{id:"open-enhancements"},"Open enhancements"),(0,i.kt)("p",null,"We are an open-source and decentralized protocol which decision involves community votes and suggestions."),(0,i.kt)("p",null,"In that sense, we have created ",(0,i.kt)("strong",{parentName:"p"},"Archethic Improvement Proposals (AEIPs)")," to offer opportunity to contribute in the project by proposing technical, informational and process-based enhancements."),(0,i.kt)("p",null,"If you are interested, please take on the ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/archethic-foundation/aeip"},"AEIP repository")))}u.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/dbbf52bd.d3a2f325.js b/assets/js/dbbf52bd.48985f63.js similarity index 98% rename from assets/js/dbbf52bd.d3a2f325.js rename to assets/js/dbbf52bd.48985f63.js index 832f8f157..df6a45508 100644 --- a/assets/js/dbbf52bd.d3a2f325.js +++ b/assets/js/dbbf52bd.48985f63.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3610],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>m});var i=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,i)}return a}function o(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=i.createContext({}),c=function(e){var t=i.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},p=function(e){var t=c(e.components);return i.createElement(s.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},h=i.forwardRef((function(e,t){var a=e.components,n=e.mdxType,r=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),d=c(a),h=n,m=d["".concat(s,".").concat(h)]||d[h]||u[h]||r;return a?i.createElement(m,o(o({ref:t},p),{},{components:a})):i.createElement(m,o({ref:t},p))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var r=a.length,o=new Array(r);o[0]=h;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[d]="string"==typeof e?e:n,o[1]=l;for(var c=2;c{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>u,frontMatter:()=>r,metadata:()=>l,toc:()=>c});var i=a(87462),n=(a(67294),a(3905));a(8209);const r={title:"Protocol Overview",id:"protocol_overview",sidebar_label:"Protocol Overview"},o=void 0,l={unversionedId:"participate/dex/Overview/protocol_overview",id:"participate/dex/Overview/protocol_overview",title:"Protocol Overview",description:"Introduction",source:"@site/docs/participate/dex/03-Overview/01-protocol_overview_how_aeswap_works.md",sourceDirName:"participate/dex/03-Overview",slug:"/participate/dex/Overview/protocol_overview",permalink:"/participate/dex/Overview/protocol_overview",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",sidebarPosition:1,frontMatter:{title:"Protocol Overview",id:"protocol_overview",sidebar_label:"Protocol Overview"},sidebar:"docs",previous:{title:"Archethic DEX (aeSwap)",permalink:"/participate/dex/"},next:{title:"Ecosystem Participants",permalink:"/participate/dex/Overview/ecosystem_participants"}},s={},c=[{value:"Introduction",id:"introduction",level:2},{value:"The AMM Model",id:"the-amm-model",level:3},{value:"Participating in aeSwap",id:"participating-in-aeswap",level:3},{value:"Ensuring Fair and Secure Trading",id:"ensuring-fair-and-secure-trading",level:3},{value:"Rewards and Yield Farming",id:"rewards-and-yield-farming",level:3},{value:"The Mathematics of AMM and Constant Product Formula",id:"the-mathematics-of-amm-and-constant-product-formula",level:2},{value:"Example Calculation",id:"example-calculation",level:3},{value:"Price Impact and Slippage",id:"price-impact-and-slippage",level:3},{value:"Conclusion and Further Exploration",id:"conclusion-and-further-exploration",level:2}],p={toc:c},d="wrapper";function u(e){let{components:t,...a}=e;return(0,n.kt)(d,(0,i.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"introduction"},"Introduction"),(0,n.kt)("p",null,"aeSwap is an innovative decentralized exchange (DEX) operating on the Archethic Public Blockchain, leveraging the Automated Market Maker (AMM) model to facilitate on-chain asset swaps, liquidity provision, and yield farming opportunities. Built with the goal of enhancing the decentralized finance (DeFi) ecosystem, aeSwap emphasizes security, decentralization, and low transaction costs, offering a robust platform for DeFi activities without the need for trusted intermediaries."),(0,n.kt)("h3",{id:"the-amm-model"},"The AMM Model"),(0,n.kt)("p",null,"At the core of aeSwap is the AMM model, which enables the automatic trading of digital assets using liquidity pools rather than traditional market orders. Each liquidity pool on aeSwap contains reserves of two tokens and operates according to a set formula to ensure liquidity and facilitate trades."),(0,n.kt)("h3",{id:"participating-in-aeswap"},"Participating in aeSwap"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Liquidity Providers (LPs)")," can add their tokens to the liquidity pools, receiving LP tokens in return. These LP tokens represent their share of the pool and entitle them to a portion of the trading fees generated by the pool's activity."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Traders")," use aeSwap to swap between different tokens. Each trade incurs a nominal fee, part of which is added to the pool reserves, thus benefiting the liquidity providers."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Developers")," can integrate aeSwap's functionalities into their applications, utilizing its open-source smart contracts and APIs for building decentralized apps on the Archethic Public Blockchain.")),(0,n.kt)("h3",{id:"ensuring-fair-and-secure-trading"},"Ensuring Fair and Secure Trading"),(0,n.kt)("p",null,"aeSwap utilizes a unique algorithm to determine the price of tokens in each pool, ensuring that trades are executed close to the market rates. This system also provides protection against significant price impacts, ensuring a stable DeFi environment."),(0,n.kt)("h3",{id:"rewards-and-yield-farming"},"Rewards and Yield Farming"),(0,n.kt)("p",null,"Participants can earn rewards through yield farming by providing liquidity to selected pools. aeSwap's design encourages long-term liquidity provision and sustainable yield generation, with rewards distributed in UCO tokens, the native cryptocurrency of the Archethic Public Blockchain."),(0,n.kt)("h2",{id:"the-mathematics-of-amm-and-constant-product-formula"},"The Mathematics of AMM and Constant Product Formula"),(0,n.kt)("p",null,"aeSwap, based on the Uniswap v2 model, employs the constant product formula to maintain pool liquidity and determine prices. This formula is represented as ",(0,n.kt)("inlineCode",{parentName:"p"},"x * y = k"),", where:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"x")," and ",(0,n.kt)("inlineCode",{parentName:"li"},"y")," are the quantities of the two tokens in the liquidity pool."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"k")," is a constant value.")),(0,n.kt)("p",null,"The constant product formula ensures that the total value in the pool remains constant after a trade, excluding fees. When a trade is executed, the product of the quantities of the two tokens stays the same, allowing the AMM to provide liquidity at any price level."),(0,n.kt)("h3",{id:"example-calculation"},"Example Calculation"),(0,n.kt)("p",null,"If a liquidity pool contains Token A and Token B with amounts ",(0,n.kt)("inlineCode",{parentName:"p"},"a")," and ",(0,n.kt)("inlineCode",{parentName:"p"},"b")," respectively, and a trader wants to swap an amount ",(0,n.kt)("inlineCode",{parentName:"p"},"\u0394a")," of Token A for Token B, the constant product formula ",(0,n.kt)("inlineCode",{parentName:"p"},"ab = k")," must still hold post-trade. The amount of Token B received, ",(0,n.kt)("inlineCode",{parentName:"p"},"\u0394b"),", can be calculated by rearranging the formula to find the new balance of Token B that maintains ",(0,n.kt)("inlineCode",{parentName:"p"},"k"),"."),(0,n.kt)("h3",{id:"price-impact-and-slippage"},"Price Impact and Slippage"),(0,n.kt)("p",null,"The constant product mechanism also inherently limits the price impact of trades, ensuring that larger trades have a proportionally higher impact on price. This helps protect against market manipulation and ensures fair trading conditions."),(0,n.kt)("h2",{id:"conclusion-and-further-exploration"},"Conclusion and Further Exploration"),(0,n.kt)("p",null,"aeSwap represents a significant advancement in the DeFi space, offering a decentralized platform for trading, liquidity provision, and yield farming on the Archethic Public Blockchain. Its innovative use of the AMM model, combined with a focus on security and user experience, positions aeSwap as a key player in the decentralized finance ecosystem."),(0,n.kt)("p",null,"For a deeper understanding of aeSwap's functionalities and to start participating in the Archethic DeFi ecosystem, refer to our detailed ","[Usage Guides]","(/participate/dex/Guide Usage/usage_overview)."))}u.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3610],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>m});var i=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,i)}return a}function o(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=i.createContext({}),c=function(e){var t=i.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},p=function(e){var t=c(e.components);return i.createElement(s.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},h=i.forwardRef((function(e,t){var a=e.components,n=e.mdxType,r=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),d=c(a),h=n,m=d["".concat(s,".").concat(h)]||d[h]||u[h]||r;return a?i.createElement(m,o(o({ref:t},p),{},{components:a})):i.createElement(m,o({ref:t},p))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var r=a.length,o=new Array(r);o[0]=h;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[d]="string"==typeof e?e:n,o[1]=l;for(var c=2;c{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>u,frontMatter:()=>r,metadata:()=>l,toc:()=>c});var i=a(87462),n=(a(67294),a(3905));a(8209);const r={title:"Protocol Overview",id:"protocol_overview",sidebar_label:"Protocol Overview"},o=void 0,l={unversionedId:"participate/dex/Overview/protocol_overview",id:"participate/dex/Overview/protocol_overview",title:"Protocol Overview",description:"Introduction",source:"@site/docs/participate/dex/03-Overview/01-protocol_overview_how_aeswap_works.md",sourceDirName:"participate/dex/03-Overview",slug:"/participate/dex/Overview/protocol_overview",permalink:"/participate/dex/Overview/protocol_overview",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",sidebarPosition:1,frontMatter:{title:"Protocol Overview",id:"protocol_overview",sidebar_label:"Protocol Overview"},sidebar:"docs",previous:{title:"Archethic DEX (aeSwap)",permalink:"/participate/dex/"},next:{title:"Ecosystem Participants",permalink:"/participate/dex/Overview/ecosystem_participants"}},s={},c=[{value:"Introduction",id:"introduction",level:2},{value:"The AMM Model",id:"the-amm-model",level:3},{value:"Participating in aeSwap",id:"participating-in-aeswap",level:3},{value:"Ensuring Fair and Secure Trading",id:"ensuring-fair-and-secure-trading",level:3},{value:"Rewards and Yield Farming",id:"rewards-and-yield-farming",level:3},{value:"The Mathematics of AMM and Constant Product Formula",id:"the-mathematics-of-amm-and-constant-product-formula",level:2},{value:"Example Calculation",id:"example-calculation",level:3},{value:"Price Impact and Slippage",id:"price-impact-and-slippage",level:3},{value:"Conclusion and Further Exploration",id:"conclusion-and-further-exploration",level:2}],p={toc:c},d="wrapper";function u(e){let{components:t,...a}=e;return(0,n.kt)(d,(0,i.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"introduction"},"Introduction"),(0,n.kt)("p",null,"aeSwap is an innovative decentralized exchange (DEX) operating on the Archethic Public Blockchain, leveraging the Automated Market Maker (AMM) model to facilitate on-chain asset swaps, liquidity provision, and yield farming opportunities. Built with the goal of enhancing the decentralized finance (DeFi) ecosystem, aeSwap emphasizes security, decentralization, and low transaction costs, offering a robust platform for DeFi activities without the need for trusted intermediaries."),(0,n.kt)("h3",{id:"the-amm-model"},"The AMM Model"),(0,n.kt)("p",null,"At the core of aeSwap is the AMM model, which enables the automatic trading of digital assets using liquidity pools rather than traditional market orders. Each liquidity pool on aeSwap contains reserves of two tokens and operates according to a set formula to ensure liquidity and facilitate trades."),(0,n.kt)("h3",{id:"participating-in-aeswap"},"Participating in aeSwap"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Liquidity Providers (LPs)")," can add their tokens to the liquidity pools, receiving LP tokens in return. These LP tokens represent their share of the pool and entitle them to a portion of the trading fees generated by the pool's activity."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Traders")," use aeSwap to swap between different tokens. Each trade incurs a nominal fee, part of which is added to the pool reserves, thus benefiting the liquidity providers."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Developers")," can integrate aeSwap's functionalities into their applications, utilizing its open-source smart contracts and APIs for building decentralized apps on the Archethic Public Blockchain.")),(0,n.kt)("h3",{id:"ensuring-fair-and-secure-trading"},"Ensuring Fair and Secure Trading"),(0,n.kt)("p",null,"aeSwap utilizes a unique algorithm to determine the price of tokens in each pool, ensuring that trades are executed close to the market rates. This system also provides protection against significant price impacts, ensuring a stable DeFi environment."),(0,n.kt)("h3",{id:"rewards-and-yield-farming"},"Rewards and Yield Farming"),(0,n.kt)("p",null,"Participants can earn rewards through yield farming by providing liquidity to selected pools. aeSwap's design encourages long-term liquidity provision and sustainable yield generation, with rewards distributed in UCO tokens, the native cryptocurrency of the Archethic Public Blockchain."),(0,n.kt)("h2",{id:"the-mathematics-of-amm-and-constant-product-formula"},"The Mathematics of AMM and Constant Product Formula"),(0,n.kt)("p",null,"aeSwap, based on the Uniswap v2 model, employs the constant product formula to maintain pool liquidity and determine prices. This formula is represented as ",(0,n.kt)("inlineCode",{parentName:"p"},"x * y = k"),", where:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"x")," and ",(0,n.kt)("inlineCode",{parentName:"li"},"y")," are the quantities of the two tokens in the liquidity pool."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"k")," is a constant value.")),(0,n.kt)("p",null,"The constant product formula ensures that the total value in the pool remains constant after a trade, excluding fees. When a trade is executed, the product of the quantities of the two tokens stays the same, allowing the AMM to provide liquidity at any price level."),(0,n.kt)("h3",{id:"example-calculation"},"Example Calculation"),(0,n.kt)("p",null,"If a liquidity pool contains Token A and Token B with amounts ",(0,n.kt)("inlineCode",{parentName:"p"},"a")," and ",(0,n.kt)("inlineCode",{parentName:"p"},"b")," respectively, and a trader wants to swap an amount ",(0,n.kt)("inlineCode",{parentName:"p"},"\u0394a")," of Token A for Token B, the constant product formula ",(0,n.kt)("inlineCode",{parentName:"p"},"ab = k")," must still hold post-trade. The amount of Token B received, ",(0,n.kt)("inlineCode",{parentName:"p"},"\u0394b"),", can be calculated by rearranging the formula to find the new balance of Token B that maintains ",(0,n.kt)("inlineCode",{parentName:"p"},"k"),"."),(0,n.kt)("h3",{id:"price-impact-and-slippage"},"Price Impact and Slippage"),(0,n.kt)("p",null,"The constant product mechanism also inherently limits the price impact of trades, ensuring that larger trades have a proportionally higher impact on price. This helps protect against market manipulation and ensures fair trading conditions."),(0,n.kt)("h2",{id:"conclusion-and-further-exploration"},"Conclusion and Further Exploration"),(0,n.kt)("p",null,"aeSwap represents a significant advancement in the DeFi space, offering a decentralized platform for trading, liquidity provision, and yield farming on the Archethic Public Blockchain. Its innovative use of the AMM model, combined with a focus on security and user experience, positions aeSwap as a key player in the decentralized finance ecosystem."),(0,n.kt)("p",null,"For a deeper understanding of aeSwap's functionalities and to start participating in the Archethic DeFi ecosystem, refer to our detailed ","[Usage Guides]","(/participate/dex/Guide Usage/usage_overview)."))}u.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file diff --git a/assets/js/dd15e14a.5628a34d.js b/assets/js/dd15e14a.219b7194.js similarity index 98% rename from assets/js/dd15e14a.5628a34d.js rename to assets/js/dd15e14a.219b7194.js index ee264a2ab..2a45f5189 100644 --- a/assets/js/dd15e14a.5628a34d.js +++ b/assets/js/dd15e14a.219b7194.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[681],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>h});var a=n(67294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function r(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var s=a.createContext({}),c=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},d=function(e){var t=c(e.components);return a.createElement(s.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var n=e.components,i=e.mdxType,o=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),p=c(n),u=i,h=p["".concat(s,".").concat(u)]||p[u]||m[u]||o;return n?a.createElement(h,r(r({ref:t},d),{},{components:n})):a.createElement(h,r({ref:t},d))}));function h(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=n.length,r=new Array(o);r[0]=u;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[p]="string"==typeof e?e:i,r[1]=l;for(var c=2;c{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>r,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var a=n(87462),i=(n(67294),n(3905));n(8209);const o={id:"arch-consensus",title:"ARCH consensus"},r=void 0,l={unversionedId:"learn/arch-consensus/arch-consensus",id:"learn/arch-consensus/arch-consensus",title:"ARCH consensus",description:"Archethic Blockchain is using a new consensus called ARCH (Atomic Rotating Commitment Heuristic) for an uncompromising consensus to support high scalability and high throughput.",source:"@site/docs/learn/arch-consensus/README.md",sourceDirName:"learn/arch-consensus",slug:"/learn/arch-consensus/",permalink:"/learn/arch-consensus/",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"arch-consensus",title:"ARCH consensus"},sidebar:"docs",previous:{title:"Transaction types",permalink:"/learn/transaction-types"},next:{title:"Proof of Work",permalink:"/learn/arch-consensus/proof-of-work"}},s={},c=[{value:"Atomic Commitment",id:"atomic-commitment",level:2},{value:"Rotating Election",id:"rotating-election",level:2},{value:"Workflow",id:"workflow",level:2}],d={toc:c},p="wrapper";function m(e){let{components:t,...n}=e;return(0,i.kt)(p,(0,a.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"Archethic Blockchain is using a new consensus called ",(0,i.kt)("inlineCode",{parentName:"p"},"ARCH")," (Atomic Rotating Commitment Heuristic) for an uncompromising consensus to support high scalability and high throughput."),(0,i.kt)("p",null,"Archethic Blockchain is based on three properties:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Security: Each transaction is validated atomically"),(0,i.kt)("li",{parentName:"ul"},"Data consistency: Algorithms ensure to access the latest write and maximum availability"),(0,i.kt)("li",{parentName:"ul"},"Fault tolerance: Allow nodes to operate independently even in case of disaster")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"ARCH")," consensus is defined by three concepts:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"Atomic Commitment"),": The most absolute form a consensus which implies 100% of concordant responses for the acceptance or refusal of the transaction validation"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"Heuristic"),": Set of algorithms which manages the entire network, allowing to elect in a decentralized and coordinated way the nodes in charge to validate or store the transaction chains"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"Rotating"),": Node election is constantly changing. No nodes can predict which nodes will validate the transaction before its arrives.")),(0,i.kt)("h2",{id:"atomic-commitment"},"Atomic Commitment"),(0,i.kt)("p",null,"Archethic Blockchain is based on ",(0,i.kt)("inlineCode",{parentName:"p"},"Hypergeometric distribution")," laws which from an unpredictable election and formal consensus make it possible to obtain with certainty (99.99999999%) the same answer by querying 197 nodes as would be obtained by querying 100 000 nodes."),(0,i.kt)("p",null,"Therefore, it makes possible the consensus establishment with a small part of nodes and can resist to attacks of 90% of malicious nodes. "),(0,i.kt)("p",null,"The risk of related availability is ensured by a strict management of the disruptive nodes, which are banished after investigation of the origin of the disagreement."),(0,i.kt)("p",null,"By supporting more 90% of malicious nodes into its network, ",(0,i.kt)("inlineCode",{parentName:"p"},"ARCH")," consensus is above aeronautical or nuclear standard, thanks to the ",(0,i.kt)("inlineCode",{parentName:"p"},"Atomic Commitment")," which request the total agreement of the validation nodes and from a ",(0,i.kt)("inlineCode",{parentName:"p"},"Malicious Detection")," algorithm to detect the malicious nodes."),(0,i.kt)("h2",{id:"rotating-election"},"Rotating Election"),(0,i.kt)("p",null,"Each rotating election is unpredictable, but still verifiable and reproducible.\nThe rotating algorithm sort a list of nodes based on:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"Hash of transaction"),": Unpredictable until the transaction arrives"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"Daily nonce"),": Secret shared between the authorized nodes and renewed daily"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"Node public key"),": Last node public key")),(0,i.kt)("p",null,"The rotating election produces a proof, named: ",(0,i.kt)("inlineCode",{parentName:"p"},"Proof of Election")," which can be verified by any other nodes to ensure the right election of nodes."),(0,i.kt)("p",null,"From this algorithm, we get a list of nodes which can be filtered according to the constraints of the validation of the transaction."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"P2P availability"),(0,i.kt)("li",{parentName:"ul"},"Geographical distribution")),(0,i.kt)("h2",{id:"workflow"},"Workflow"),(0,i.kt)("p",null,"When a transaction is willing to be validated, its follows the given workflow:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"The transaction is received by any node (aka ",(0,i.kt)("inlineCode",{parentName:"li"},"Welcome node"),")"),(0,i.kt)("li",{parentName:"ol"},"The ",(0,i.kt)("inlineCode",{parentName:"li"},"Welcome Node")," determines the validation nodes from the ",(0,i.kt)("inlineCode",{parentName:"li"},"Rotating Election")," algorithm and forward the transaction"),(0,i.kt)("li",{parentName:"ol"},"The validation nodes after receiving the transaction start some preliminary job to gather the context of the transaction:",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Previous transaction"),(0,i.kt)("li",{parentName:"ul"},"List of unspent outputs"))),(0,i.kt)("li",{parentName:"ol"},"After the context building, the ",(0,i.kt)("inlineCode",{parentName:"li"},"Cross Validation Nodes")," communicate to the ",(0,i.kt)("inlineCode",{parentName:"li"},"Coordinator Node")," the list of storage nodes involved to gather this information."),(0,i.kt)("li",{parentName:"ol"},"The ",(0,i.kt)("inlineCode",{parentName:"li"},"Coordinator Node")," can build the ",(0,i.kt)("inlineCode",{parentName:"li"},"Validation Stamp")," and compute the replication tree. Then it transmits them to the ",(0,i.kt)("inlineCode",{parentName:"li"},"Cross Validation Nodes"),"."),(0,i.kt)("li",{parentName:"ol"},"The ",(0,i.kt)("inlineCode",{parentName:"li"},"Cross Validation Nodes")," verify the content of the ",(0,i.kt)("inlineCode",{parentName:"li"},"Validation Stamp"),", sign with or without inconsistencies, and send the ",(0,i.kt)("inlineCode",{parentName:"li"},"Cross Validation Stamp")," to all the validation nodes involved."),(0,i.kt)("li",{parentName:"ol"},"Once all the ",(0,i.kt)("inlineCode",{parentName:"li"},"Cross Validation Stamps")," are received and if the ",(0,i.kt)("inlineCode",{parentName:"li"},"Atomic Commitment")," is reached, the replication phase starts."),(0,i.kt)("li",{parentName:"ol"},"Validation nodes send the transaction to the respective storage nodes:")),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Storage nodes responsible for the new transaction chain"),(0,i.kt)("li",{parentName:"ul"},"Storage nodes responsible for the outputs of the transactions (transaction's movements addresses, recipients)"),(0,i.kt)("li",{parentName:"ul"},"Storage nodes responsible for the ",(0,i.kt)("a",{parentName:"li",href:"/learn/sharding/beacon-chain"},"Beacon Chain"))),(0,i.kt)("ol",{start:9},(0,i.kt)("li",{parentName:"ol"},"The storage for the new transaction chain will notify the validation nodes and the ",(0,i.kt)("inlineCode",{parentName:"li"},"Welcome Node")," about the replication, and the ",(0,i.kt)("inlineCode",{parentName:"li"},"Welcome Node")," will notify the client about it.")))}m.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[681],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>h});var a=n(67294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function r(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var s=a.createContext({}),c=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},d=function(e){var t=c(e.components);return a.createElement(s.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var n=e.components,i=e.mdxType,o=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),p=c(n),u=i,h=p["".concat(s,".").concat(u)]||p[u]||m[u]||o;return n?a.createElement(h,r(r({ref:t},d),{},{components:n})):a.createElement(h,r({ref:t},d))}));function h(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=n.length,r=new Array(o);r[0]=u;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[p]="string"==typeof e?e:i,r[1]=l;for(var c=2;c{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>r,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var a=n(87462),i=(n(67294),n(3905));n(8209);const o={id:"arch-consensus",title:"ARCH consensus"},r=void 0,l={unversionedId:"learn/arch-consensus/arch-consensus",id:"learn/arch-consensus/arch-consensus",title:"ARCH consensus",description:"Archethic Blockchain is using a new consensus called ARCH (Atomic Rotating Commitment Heuristic) for an uncompromising consensus to support high scalability and high throughput.",source:"@site/docs/learn/arch-consensus/README.md",sourceDirName:"learn/arch-consensus",slug:"/learn/arch-consensus/",permalink:"/learn/arch-consensus/",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"arch-consensus",title:"ARCH consensus"},sidebar:"docs",previous:{title:"Transaction types",permalink:"/learn/transaction-types"},next:{title:"Proof of Work",permalink:"/learn/arch-consensus/proof-of-work"}},s={},c=[{value:"Atomic Commitment",id:"atomic-commitment",level:2},{value:"Rotating Election",id:"rotating-election",level:2},{value:"Workflow",id:"workflow",level:2}],d={toc:c},p="wrapper";function m(e){let{components:t,...n}=e;return(0,i.kt)(p,(0,a.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"Archethic Blockchain is using a new consensus called ",(0,i.kt)("inlineCode",{parentName:"p"},"ARCH")," (Atomic Rotating Commitment Heuristic) for an uncompromising consensus to support high scalability and high throughput."),(0,i.kt)("p",null,"Archethic Blockchain is based on three properties:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Security: Each transaction is validated atomically"),(0,i.kt)("li",{parentName:"ul"},"Data consistency: Algorithms ensure to access the latest write and maximum availability"),(0,i.kt)("li",{parentName:"ul"},"Fault tolerance: Allow nodes to operate independently even in case of disaster")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"ARCH")," consensus is defined by three concepts:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"Atomic Commitment"),": The most absolute form a consensus which implies 100% of concordant responses for the acceptance or refusal of the transaction validation"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"Heuristic"),": Set of algorithms which manages the entire network, allowing to elect in a decentralized and coordinated way the nodes in charge to validate or store the transaction chains"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"Rotating"),": Node election is constantly changing. No nodes can predict which nodes will validate the transaction before its arrives.")),(0,i.kt)("h2",{id:"atomic-commitment"},"Atomic Commitment"),(0,i.kt)("p",null,"Archethic Blockchain is based on ",(0,i.kt)("inlineCode",{parentName:"p"},"Hypergeometric distribution")," laws which from an unpredictable election and formal consensus make it possible to obtain with certainty (99.99999999%) the same answer by querying 197 nodes as would be obtained by querying 100 000 nodes."),(0,i.kt)("p",null,"Therefore, it makes possible the consensus establishment with a small part of nodes and can resist to attacks of 90% of malicious nodes. "),(0,i.kt)("p",null,"The risk of related availability is ensured by a strict management of the disruptive nodes, which are banished after investigation of the origin of the disagreement."),(0,i.kt)("p",null,"By supporting more 90% of malicious nodes into its network, ",(0,i.kt)("inlineCode",{parentName:"p"},"ARCH")," consensus is above aeronautical or nuclear standard, thanks to the ",(0,i.kt)("inlineCode",{parentName:"p"},"Atomic Commitment")," which request the total agreement of the validation nodes and from a ",(0,i.kt)("inlineCode",{parentName:"p"},"Malicious Detection")," algorithm to detect the malicious nodes."),(0,i.kt)("h2",{id:"rotating-election"},"Rotating Election"),(0,i.kt)("p",null,"Each rotating election is unpredictable, but still verifiable and reproducible.\nThe rotating algorithm sort a list of nodes based on:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"Hash of transaction"),": Unpredictable until the transaction arrives"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"Daily nonce"),": Secret shared between the authorized nodes and renewed daily"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"Node public key"),": Last node public key")),(0,i.kt)("p",null,"The rotating election produces a proof, named: ",(0,i.kt)("inlineCode",{parentName:"p"},"Proof of Election")," which can be verified by any other nodes to ensure the right election of nodes."),(0,i.kt)("p",null,"From this algorithm, we get a list of nodes which can be filtered according to the constraints of the validation of the transaction."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"P2P availability"),(0,i.kt)("li",{parentName:"ul"},"Geographical distribution")),(0,i.kt)("h2",{id:"workflow"},"Workflow"),(0,i.kt)("p",null,"When a transaction is willing to be validated, its follows the given workflow:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"The transaction is received by any node (aka ",(0,i.kt)("inlineCode",{parentName:"li"},"Welcome node"),")"),(0,i.kt)("li",{parentName:"ol"},"The ",(0,i.kt)("inlineCode",{parentName:"li"},"Welcome Node")," determines the validation nodes from the ",(0,i.kt)("inlineCode",{parentName:"li"},"Rotating Election")," algorithm and forward the transaction"),(0,i.kt)("li",{parentName:"ol"},"The validation nodes after receiving the transaction start some preliminary job to gather the context of the transaction:",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Previous transaction"),(0,i.kt)("li",{parentName:"ul"},"List of unspent outputs"))),(0,i.kt)("li",{parentName:"ol"},"After the context building, the ",(0,i.kt)("inlineCode",{parentName:"li"},"Cross Validation Nodes")," communicate to the ",(0,i.kt)("inlineCode",{parentName:"li"},"Coordinator Node")," the list of storage nodes involved to gather this information."),(0,i.kt)("li",{parentName:"ol"},"The ",(0,i.kt)("inlineCode",{parentName:"li"},"Coordinator Node")," can build the ",(0,i.kt)("inlineCode",{parentName:"li"},"Validation Stamp")," and compute the replication tree. Then it transmits them to the ",(0,i.kt)("inlineCode",{parentName:"li"},"Cross Validation Nodes"),"."),(0,i.kt)("li",{parentName:"ol"},"The ",(0,i.kt)("inlineCode",{parentName:"li"},"Cross Validation Nodes")," verify the content of the ",(0,i.kt)("inlineCode",{parentName:"li"},"Validation Stamp"),", sign with or without inconsistencies, and send the ",(0,i.kt)("inlineCode",{parentName:"li"},"Cross Validation Stamp")," to all the validation nodes involved."),(0,i.kt)("li",{parentName:"ol"},"Once all the ",(0,i.kt)("inlineCode",{parentName:"li"},"Cross Validation Stamps")," are received and if the ",(0,i.kt)("inlineCode",{parentName:"li"},"Atomic Commitment")," is reached, the replication phase starts."),(0,i.kt)("li",{parentName:"ol"},"Validation nodes send the transaction to the respective storage nodes:")),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Storage nodes responsible for the new transaction chain"),(0,i.kt)("li",{parentName:"ul"},"Storage nodes responsible for the outputs of the transactions (transaction's movements addresses, recipients)"),(0,i.kt)("li",{parentName:"ul"},"Storage nodes responsible for the ",(0,i.kt)("a",{parentName:"li",href:"/learn/sharding/beacon-chain"},"Beacon Chain"))),(0,i.kt)("ol",{start:9},(0,i.kt)("li",{parentName:"ol"},"The storage for the new transaction chain will notify the validation nodes and the ",(0,i.kt)("inlineCode",{parentName:"li"},"Welcome Node")," about the replication, and the ",(0,i.kt)("inlineCode",{parentName:"li"},"Welcome Node")," will notify the client about it.")))}m.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/e0b1087e.f89ee85b.js b/assets/js/e0b1087e.cc59d189.js similarity index 99% rename from assets/js/e0b1087e.f89ee85b.js rename to assets/js/e0b1087e.cc59d189.js index 2efc47966..366e07152 100644 --- a/assets/js/e0b1087e.f89ee85b.js +++ b/assets/js/e0b1087e.cc59d189.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4898],{3905:(e,t,n)=>{n.d(t,{Zo:()=>i,kt:()=>u});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var d=a.createContext({}),c=function(e){var t=a.useContext(d),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},i=function(e){var t=c(e.components);return a.createElement(d.Provider,{value:t},e.children)},f="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},k=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,d=e.parentName,i=s(e,["components","mdxType","originalType","parentName"]),f=c(n),k=r,u=f["".concat(d,".").concat(k)]||f[k]||p[k]||o;return n?a.createElement(u,l(l({ref:t},i),{},{components:n})):a.createElement(u,l({ref:t},i))}));function u(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,l=new Array(o);l[0]=k;var s={};for(var d in t)hasOwnProperty.call(t,d)&&(s[d]=t[d]);s.originalType=e,s[f]="string"==typeof e?e:r,l[1]=s;for(var c=2;c{n.r(t),n.d(t,{Badge:()=>p,Bullet:()=>i,Details:()=>u,SpecifiedBy:()=>f,assets:()=>c,contentTitle:()=>s,default:()=>g,frontMatter:()=>l,metadata:()=>d,toc:()=>k});var a=n(87462),r=n(67294),o=n(3905);n(8209);const l={id:"token-transfer",title:"TokenTransfer",hide_table_of_contents:!1},s=void 0,d={unversionedId:"build/api/schema/objects/token-transfer",id:"build/api/schema/objects/token-transfer",title:"TokenTransfer",description:"[TokenTransfer] represents the an asset transfer",source:"@site/docs/build/api/schema/objects/token-transfer.mdx",sourceDirName:"build/api/schema/objects",slug:"/build/api/schema/objects/token-transfer",permalink:"/build/api/schema/objects/token-transfer",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"token-transfer",title:"TokenTransfer",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"TokenLedger",permalink:"/build/api/schema/objects/token-ledger"},next:{title:"Token",permalink:"/build/api/schema/objects/token"}},c={},i=()=>(0,o.kt)(r.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),f=e=>(0,o.kt)(r.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),p=e=>(0,o.kt)(r.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),k=[{value:"Fields",id:"fields",level:3},{value:'TokenTransfer.amountInt ',id:"code-style-fontweight-normal-tokentransferbamountbcodeint-",level:4},{value:'TokenTransfer.toAddress ',id:"code-style-fontweight-normal-tokentransferbtobcodeaddress-",level:4},{value:'TokenTransfer.tokenAddressAddress ',id:"code-style-fontweight-normal-tokentransferbtokenaddressbcodeaddress-",level:4},{value:'TokenTransfer.tokenIdInt ',id:"code-style-fontweight-normal-tokentransferbtokenidbcodeint-",level:4},{value:"Member of",id:"member-of",level:3}],u=e=>{let{dataOpen:t,dataClose:n,children:l,startOpen:s=!1}=e;const[d,c]=(0,r.useState)(s);return(0,o.kt)("details",(0,a.Z)({},d?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),c((e=>!e))},style:{listStyle:"none"}},d?t:n),d&&l)},m={Bullet:i,SpecifiedBy:f,Badge:p,toc:k,Details:u},b="wrapper";function g(e){let{components:t,...n}=e;return(0,o.kt)(b,(0,a.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"[TokenTransfer]"," represents the an asset transfer"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"type TokenTransfer {\n amount: Int\n to: Address\n tokenAddress: Address\n tokenId: Int\n}\n")),(0,o.kt)("h3",{id:"fields"},"Fields"),(0,o.kt)("h4",{id:"code-style-fontweight-normal-tokentransferbamountbcodeint-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"TokenTransfer.",(0,o.kt)("b",null,"amount"))),(0,o.kt)(i,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/int"},(0,o.kt)("inlineCode",{parentName:"a"},"Int"))," ",(0,o.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h4",{id:"code-style-fontweight-normal-tokentransferbtobcodeaddress-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"TokenTransfer.",(0,o.kt)("b",null,"to"))),(0,o.kt)(i,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/address"},(0,o.kt)("inlineCode",{parentName:"a"},"Address"))," ",(0,o.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h4",{id:"code-style-fontweight-normal-tokentransferbtokenaddressbcodeaddress-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"TokenTransfer.",(0,o.kt)("b",null,"tokenAddress"))),(0,o.kt)(i,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/address"},(0,o.kt)("inlineCode",{parentName:"a"},"Address"))," ",(0,o.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h4",{id:"code-style-fontweight-normal-tokentransferbtokenidbcodeint-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"TokenTransfer.",(0,o.kt)("b",null,"tokenId"))),(0,o.kt)(i,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/int"},(0,o.kt)("inlineCode",{parentName:"a"},"Int"))," ",(0,o.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h3",{id:"member-of"},"Member of"),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/token-ledger"},(0,o.kt)("inlineCode",{parentName:"a"},"TokenLedger"))," ",(0,o.kt)(p,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}g.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4898],{3905:(e,t,n)=>{n.d(t,{Zo:()=>i,kt:()=>u});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var d=a.createContext({}),c=function(e){var t=a.useContext(d),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},i=function(e){var t=c(e.components);return a.createElement(d.Provider,{value:t},e.children)},f="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},k=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,d=e.parentName,i=s(e,["components","mdxType","originalType","parentName"]),f=c(n),k=r,u=f["".concat(d,".").concat(k)]||f[k]||p[k]||o;return n?a.createElement(u,l(l({ref:t},i),{},{components:n})):a.createElement(u,l({ref:t},i))}));function u(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,l=new Array(o);l[0]=k;var s={};for(var d in t)hasOwnProperty.call(t,d)&&(s[d]=t[d]);s.originalType=e,s[f]="string"==typeof e?e:r,l[1]=s;for(var c=2;c{n.r(t),n.d(t,{Badge:()=>p,Bullet:()=>i,Details:()=>u,SpecifiedBy:()=>f,assets:()=>c,contentTitle:()=>s,default:()=>g,frontMatter:()=>l,metadata:()=>d,toc:()=>k});var a=n(87462),r=n(67294),o=n(3905);n(8209);const l={id:"token-transfer",title:"TokenTransfer",hide_table_of_contents:!1},s=void 0,d={unversionedId:"build/api/schema/objects/token-transfer",id:"build/api/schema/objects/token-transfer",title:"TokenTransfer",description:"[TokenTransfer] represents the an asset transfer",source:"@site/docs/build/api/schema/objects/token-transfer.mdx",sourceDirName:"build/api/schema/objects",slug:"/build/api/schema/objects/token-transfer",permalink:"/build/api/schema/objects/token-transfer",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"token-transfer",title:"TokenTransfer",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"TokenLedger",permalink:"/build/api/schema/objects/token-ledger"},next:{title:"Token",permalink:"/build/api/schema/objects/token"}},c={},i=()=>(0,o.kt)(r.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),f=e=>(0,o.kt)(r.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),p=e=>(0,o.kt)(r.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),k=[{value:"Fields",id:"fields",level:3},{value:'TokenTransfer.amountInt ',id:"code-style-fontweight-normal-tokentransferbamountbcodeint-",level:4},{value:'TokenTransfer.toAddress ',id:"code-style-fontweight-normal-tokentransferbtobcodeaddress-",level:4},{value:'TokenTransfer.tokenAddressAddress ',id:"code-style-fontweight-normal-tokentransferbtokenaddressbcodeaddress-",level:4},{value:'TokenTransfer.tokenIdInt ',id:"code-style-fontweight-normal-tokentransferbtokenidbcodeint-",level:4},{value:"Member of",id:"member-of",level:3}],u=e=>{let{dataOpen:t,dataClose:n,children:l,startOpen:s=!1}=e;const[d,c]=(0,r.useState)(s);return(0,o.kt)("details",(0,a.Z)({},d?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),c((e=>!e))},style:{listStyle:"none"}},d?t:n),d&&l)},m={Bullet:i,SpecifiedBy:f,Badge:p,toc:k,Details:u},b="wrapper";function g(e){let{components:t,...n}=e;return(0,o.kt)(b,(0,a.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"[TokenTransfer]"," represents the an asset transfer"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"type TokenTransfer {\n amount: Int\n to: Address\n tokenAddress: Address\n tokenId: Int\n}\n")),(0,o.kt)("h3",{id:"fields"},"Fields"),(0,o.kt)("h4",{id:"code-style-fontweight-normal-tokentransferbamountbcodeint-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"TokenTransfer.",(0,o.kt)("b",null,"amount"))),(0,o.kt)(i,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/int"},(0,o.kt)("inlineCode",{parentName:"a"},"Int"))," ",(0,o.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h4",{id:"code-style-fontweight-normal-tokentransferbtobcodeaddress-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"TokenTransfer.",(0,o.kt)("b",null,"to"))),(0,o.kt)(i,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/address"},(0,o.kt)("inlineCode",{parentName:"a"},"Address"))," ",(0,o.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h4",{id:"code-style-fontweight-normal-tokentransferbtokenaddressbcodeaddress-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"TokenTransfer.",(0,o.kt)("b",null,"tokenAddress"))),(0,o.kt)(i,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/address"},(0,o.kt)("inlineCode",{parentName:"a"},"Address"))," ",(0,o.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h4",{id:"code-style-fontweight-normal-tokentransferbtokenidbcodeint-"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"TokenTransfer.",(0,o.kt)("b",null,"tokenId"))),(0,o.kt)(i,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/int"},(0,o.kt)("inlineCode",{parentName:"a"},"Int"))," ",(0,o.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h3",{id:"member-of"},"Member of"),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/token-ledger"},(0,o.kt)("inlineCode",{parentName:"a"},"TokenLedger"))," ",(0,o.kt)(p,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}g.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/e2b19375.41f1fc26.js b/assets/js/e2b19375.95451724.js similarity index 97% rename from assets/js/e2b19375.41f1fc26.js rename to assets/js/e2b19375.95451724.js index 0c210d230..fe22fa3ce 100644 --- a/assets/js/e2b19375.41f1fc26.js +++ b/assets/js/e2b19375.95451724.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4338],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>h});var o=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function a(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=o.createContext({}),l=function(e){var t=o.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},p=function(e){var t=l(e.components);return o.createElement(s.Provider,{value:t},e.children)},u="mdxType",f={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},d=o.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),u=l(n),d=r,h=u["".concat(s,".").concat(d)]||u[d]||f[d]||i;return n?o.createElement(h,a(a({ref:t},p),{},{components:n})):o.createElement(h,a({ref:t},p))}));function h(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,a=new Array(i);a[0]=d;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[u]="string"==typeof e?e:r,a[1]=c;for(var l=2;l{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>a,default:()=>f,frontMatter:()=>i,metadata:()=>c,toc:()=>l});var o=n(87462),r=(n(67294),n(3905));n(8209);const i={id:"proof-of-work",title:"Proof of Work"},a=void 0,c={unversionedId:"learn/arch-consensus/proof-of-work",id:"learn/arch-consensus/proof-of-work",title:"Proof of Work",description:"Others blockchains are using the concept of Proof of Work to ensure an unpredictable and pseudo random election of block validation (mining).",source:"@site/docs/learn/arch-consensus/proof-of-work.md",sourceDirName:"learn/arch-consensus",slug:"/learn/arch-consensus/proof-of-work",permalink:"/learn/arch-consensus/proof-of-work",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"proof-of-work",title:"Proof of Work"},sidebar:"docs",previous:{title:"ARCH consensus",permalink:"/learn/arch-consensus/"},next:{title:"Cryptography",permalink:"/learn/cryptography/"}},s={},l=[],p={toc:l},u="wrapper";function f(e){let{components:t,...n}=e;return(0,r.kt)(u,(0,o.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"Others blockchains are using the concept of ",(0,r.kt)("inlineCode",{parentName:"p"},"Proof of Work")," to ensure an unpredictable and pseudo random election of block validation (mining).\nBut this technique requires a lot of energy consumption and can still be subject to exploit by HashRate control."),(0,r.kt)("p",null,"Archethic Blockchain is using a new kind of ",(0,r.kt)("inlineCode",{parentName:"p"},"Proof of Work")," to ensure the authenticity of the transaction origination devices.\nThis allows the additional security requirements on transaction validation like:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"prohibit any transaction even in case of key theft"),(0,r.kt)("li",{parentName:"ul"},"allow user to consult their balance on any smartphone, but generate a transaction only on a trusted device"),(0,r.kt)("li",{parentName:"ul"},"enable the organizers of an election to ensure biometric identity of a voter")),(0,r.kt)("p",null,"The ",(0,r.kt)("inlineCode",{parentName:"p"},"Proof Of Work")," consists of finding the right public key associated to the ",(0,r.kt)("inlineCode",{parentName:"p"},"Origin Signature")," of the transaction\nfrom a list of public keys known by the network."),(0,r.kt)("p",null,"This verification is performed during the ",(0,r.kt)("inlineCode",{parentName:"p"},"Validation Stamp")," creation by the ",(0,r.kt)("inlineCode",{parentName:"p"},"Coordinator Node")," and ensure the device is authorized to generate the transaction"),(0,r.kt)("p",null,"Just like any other actor into the system, devices will have their own transaction chain allowing them to update their keys. "),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"Each origin device public keys are grouped by family which helps nodes to determine which set of keys, must be played to produce the Proof of Work. (i.e: software, usb, biometric).")),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"Each origin device public key is encrypted and renewed by the network ensuring confidentiality and authenticity of devices.")))}f.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4338],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>h});var o=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function a(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=o.createContext({}),l=function(e){var t=o.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},p=function(e){var t=l(e.components);return o.createElement(s.Provider,{value:t},e.children)},u="mdxType",f={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},d=o.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),u=l(n),d=r,h=u["".concat(s,".").concat(d)]||u[d]||f[d]||i;return n?o.createElement(h,a(a({ref:t},p),{},{components:n})):o.createElement(h,a({ref:t},p))}));function h(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,a=new Array(i);a[0]=d;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[u]="string"==typeof e?e:r,a[1]=c;for(var l=2;l{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>a,default:()=>f,frontMatter:()=>i,metadata:()=>c,toc:()=>l});var o=n(87462),r=(n(67294),n(3905));n(8209);const i={id:"proof-of-work",title:"Proof of Work"},a=void 0,c={unversionedId:"learn/arch-consensus/proof-of-work",id:"learn/arch-consensus/proof-of-work",title:"Proof of Work",description:"Others blockchains are using the concept of Proof of Work to ensure an unpredictable and pseudo random election of block validation (mining).",source:"@site/docs/learn/arch-consensus/proof-of-work.md",sourceDirName:"learn/arch-consensus",slug:"/learn/arch-consensus/proof-of-work",permalink:"/learn/arch-consensus/proof-of-work",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"proof-of-work",title:"Proof of Work"},sidebar:"docs",previous:{title:"ARCH consensus",permalink:"/learn/arch-consensus/"},next:{title:"Cryptography",permalink:"/learn/cryptography/"}},s={},l=[],p={toc:l},u="wrapper";function f(e){let{components:t,...n}=e;return(0,r.kt)(u,(0,o.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"Others blockchains are using the concept of ",(0,r.kt)("inlineCode",{parentName:"p"},"Proof of Work")," to ensure an unpredictable and pseudo random election of block validation (mining).\nBut this technique requires a lot of energy consumption and can still be subject to exploit by HashRate control."),(0,r.kt)("p",null,"Archethic Blockchain is using a new kind of ",(0,r.kt)("inlineCode",{parentName:"p"},"Proof of Work")," to ensure the authenticity of the transaction origination devices.\nThis allows the additional security requirements on transaction validation like:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"prohibit any transaction even in case of key theft"),(0,r.kt)("li",{parentName:"ul"},"allow user to consult their balance on any smartphone, but generate a transaction only on a trusted device"),(0,r.kt)("li",{parentName:"ul"},"enable the organizers of an election to ensure biometric identity of a voter")),(0,r.kt)("p",null,"The ",(0,r.kt)("inlineCode",{parentName:"p"},"Proof Of Work")," consists of finding the right public key associated to the ",(0,r.kt)("inlineCode",{parentName:"p"},"Origin Signature")," of the transaction\nfrom a list of public keys known by the network."),(0,r.kt)("p",null,"This verification is performed during the ",(0,r.kt)("inlineCode",{parentName:"p"},"Validation Stamp")," creation by the ",(0,r.kt)("inlineCode",{parentName:"p"},"Coordinator Node")," and ensure the device is authorized to generate the transaction"),(0,r.kt)("p",null,"Just like any other actor into the system, devices will have their own transaction chain allowing them to update their keys. "),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"Each origin device public keys are grouped by family which helps nodes to determine which set of keys, must be played to produce the Proof of Work. (i.e: software, usb, biometric).")),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"Each origin device public key is encrypted and renewed by the network ensuring confidentiality and authenticity of devices.")))}f.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/e2f82150.f6fe9f1c.js b/assets/js/e2f82150.701c4fe3.js similarity index 97% rename from assets/js/e2f82150.f6fe9f1c.js rename to assets/js/e2f82150.701c4fe3.js index 12503dc16..6d93ef2df 100644 --- a/assets/js/e2f82150.f6fe9f1c.js +++ b/assets/js/e2f82150.701c4fe3.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5510],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>g});var r=a(67294);function s(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function n(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function d(e){for(var t=1;t=0||(s[a]=e[a]);return s}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(s[a]=e[a])}return s}var l=r.createContext({}),o=function(e){var t=r.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):d(d({},t),e)),a},c=function(e){var t=o(e.components);return r.createElement(l.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,s=e.mdxType,n=e.originalType,l=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),p=o(a),m=s,g=p["".concat(l,".").concat(m)]||p[m]||u[m]||n;return a?r.createElement(g,d(d({ref:t},c),{},{components:a})):r.createElement(g,d({ref:t},c))}));function g(e,t){var a=arguments,s=t&&t.mdxType;if("string"==typeof e||s){var n=a.length,d=new Array(n);d[0]=m;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[p]="string"==typeof e?e:s,d[1]=i;for(var o=2;o{a.r(t),a.d(t,{Badge:()=>u,Bullet:()=>c,Details:()=>g,SpecifiedBy:()=>p,assets:()=>o,contentTitle:()=>i,default:()=>y,frontMatter:()=>d,metadata:()=>l,toc:()=>m});var r=a(87462),s=a(67294),n=a(3905);a(8209);const d={id:"genesis-address",title:"genesisAddress",hide_table_of_contents:!1},i=void 0,l={unversionedId:"build/api/schema/queries/genesis-address",id:"build/api/schema/queries/genesis-address",title:"genesisAddress",description:"Query the network to find the genesis address of a transaction",source:"@site/docs/build/api/schema/queries/genesis-address.mdx",sourceDirName:"build/api/schema/queries",slug:"/build/api/schema/queries/genesis-address",permalink:"/build/api/schema/queries/genesis-address",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"genesis-address",title:"genesisAddress",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"chainUnspentOutputs",permalink:"/build/api/schema/queries/chain-unspent-outputs"},next:{title:"lastTransaction",permalink:"/build/api/schema/queries/last-transaction"}},o={},c=()=>(0,n.kt)(s.Fragment,null,(0,n.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=e=>(0,n.kt)(s.Fragment,null,"Specification",(0,n.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,n.kt)(s.Fragment,null,(0,n.kt)("span",{className:e.class},e.text)),m=[{value:"Arguments",id:"arguments",level:3},{value:'genesisAddress.addressAddress! ',id:"code-style-fontweight-normal-genesisaddressbaddressbcodeaddress--",level:4},{value:"Type",id:"type",level:3},{value:'Address ',id:"address-",level:4}],g=e=>{let{dataOpen:t,dataClose:a,children:d,startOpen:i=!1}=e;const[l,o]=(0,s.useState)(i);return(0,n.kt)("details",(0,r.Z)({},l?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,n.kt)("summary",{onClick:e=>{e.preventDefault(),o((e=>!e))},style:{listStyle:"none"}},l?t:a),l&&d)},f={Bullet:c,SpecifiedBy:p,Badge:u,toc:m,Details:g},b="wrapper";function y(e){let{components:t,...a}=e;return(0,n.kt)(b,(0,r.Z)({},f,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"Query the network to find the genesis address of a transaction"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-graphql"},"genesisAddress(\n address: Address!\n): Address\n")),(0,n.kt)("h3",{id:"arguments"},"Arguments"),(0,n.kt)("h4",{id:"code-style-fontweight-normal-genesisaddressbaddressbcodeaddress--"},(0,n.kt)("a",{parentName:"h4",href:"#"},(0,n.kt)("code",{style:{fontWeight:"normal"}},"genesisAddress.",(0,n.kt)("b",null,"address"))),(0,n.kt)(c,{mdxType:"Bullet"}),(0,n.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/address"},(0,n.kt)("inlineCode",{parentName:"a"},"Address!"))," ",(0,n.kt)(u,{class:"badge badge--secondary",text:"non-null",mdxType:"Badge"})," ",(0,n.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,n.kt)("blockquote",null),(0,n.kt)("h3",{id:"type"},"Type"),(0,n.kt)("h4",{id:"address-"},(0,n.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/address"},(0,n.kt)("inlineCode",{parentName:"a"},"Address"))," ",(0,n.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,n.kt)("blockquote",null,(0,n.kt)("p",{parentName:"blockquote"},"The ","[Address]"," scalar type represents a transaction's address.\nThe Address appears in a JSON response as Base16 formatted string. The parsed address will\nbe converted to a binary and any invalid address with an invalid algorithm or invalid size will be rejected")))}y.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5510],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>g});var r=a(67294);function s(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function n(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function d(e){for(var t=1;t=0||(s[a]=e[a]);return s}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(s[a]=e[a])}return s}var l=r.createContext({}),o=function(e){var t=r.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):d(d({},t),e)),a},c=function(e){var t=o(e.components);return r.createElement(l.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,s=e.mdxType,n=e.originalType,l=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),p=o(a),m=s,g=p["".concat(l,".").concat(m)]||p[m]||u[m]||n;return a?r.createElement(g,d(d({ref:t},c),{},{components:a})):r.createElement(g,d({ref:t},c))}));function g(e,t){var a=arguments,s=t&&t.mdxType;if("string"==typeof e||s){var n=a.length,d=new Array(n);d[0]=m;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[p]="string"==typeof e?e:s,d[1]=i;for(var o=2;o{a.r(t),a.d(t,{Badge:()=>u,Bullet:()=>c,Details:()=>g,SpecifiedBy:()=>p,assets:()=>o,contentTitle:()=>i,default:()=>y,frontMatter:()=>d,metadata:()=>l,toc:()=>m});var r=a(87462),s=a(67294),n=a(3905);a(8209);const d={id:"genesis-address",title:"genesisAddress",hide_table_of_contents:!1},i=void 0,l={unversionedId:"build/api/schema/queries/genesis-address",id:"build/api/schema/queries/genesis-address",title:"genesisAddress",description:"Query the network to find the genesis address of a transaction",source:"@site/docs/build/api/schema/queries/genesis-address.mdx",sourceDirName:"build/api/schema/queries",slug:"/build/api/schema/queries/genesis-address",permalink:"/build/api/schema/queries/genesis-address",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"genesis-address",title:"genesisAddress",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"chainUnspentOutputs",permalink:"/build/api/schema/queries/chain-unspent-outputs"},next:{title:"lastTransaction",permalink:"/build/api/schema/queries/last-transaction"}},o={},c=()=>(0,n.kt)(s.Fragment,null,(0,n.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=e=>(0,n.kt)(s.Fragment,null,"Specification",(0,n.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,n.kt)(s.Fragment,null,(0,n.kt)("span",{className:e.class},e.text)),m=[{value:"Arguments",id:"arguments",level:3},{value:'genesisAddress.addressAddress! ',id:"code-style-fontweight-normal-genesisaddressbaddressbcodeaddress--",level:4},{value:"Type",id:"type",level:3},{value:'Address ',id:"address-",level:4}],g=e=>{let{dataOpen:t,dataClose:a,children:d,startOpen:i=!1}=e;const[l,o]=(0,s.useState)(i);return(0,n.kt)("details",(0,r.Z)({},l?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,n.kt)("summary",{onClick:e=>{e.preventDefault(),o((e=>!e))},style:{listStyle:"none"}},l?t:a),l&&d)},f={Bullet:c,SpecifiedBy:p,Badge:u,toc:m,Details:g},b="wrapper";function y(e){let{components:t,...a}=e;return(0,n.kt)(b,(0,r.Z)({},f,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"Query the network to find the genesis address of a transaction"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-graphql"},"genesisAddress(\n address: Address!\n): Address\n")),(0,n.kt)("h3",{id:"arguments"},"Arguments"),(0,n.kt)("h4",{id:"code-style-fontweight-normal-genesisaddressbaddressbcodeaddress--"},(0,n.kt)("a",{parentName:"h4",href:"#"},(0,n.kt)("code",{style:{fontWeight:"normal"}},"genesisAddress.",(0,n.kt)("b",null,"address"))),(0,n.kt)(c,{mdxType:"Bullet"}),(0,n.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/address"},(0,n.kt)("inlineCode",{parentName:"a"},"Address!"))," ",(0,n.kt)(u,{class:"badge badge--secondary",text:"non-null",mdxType:"Badge"})," ",(0,n.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,n.kt)("blockquote",null),(0,n.kt)("h3",{id:"type"},"Type"),(0,n.kt)("h4",{id:"address-"},(0,n.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/address"},(0,n.kt)("inlineCode",{parentName:"a"},"Address"))," ",(0,n.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,n.kt)("blockquote",null,(0,n.kt)("p",{parentName:"blockquote"},"The ","[Address]"," scalar type represents a transaction's address.\nThe Address appears in a JSON response as Base16 formatted string. The parsed address will\nbe converted to a binary and any invalid address with an invalid algorithm or invalid size will be rejected")))}y.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file diff --git a/assets/js/e43c4cd3.cde3635a.js b/assets/js/e43c4cd3.2971f4a7.js similarity index 99% rename from assets/js/e43c4cd3.cde3635a.js rename to assets/js/e43c4cd3.2971f4a7.js index 5476e9523..0b01e7de1 100644 --- a/assets/js/e43c4cd3.cde3635a.js +++ b/assets/js/e43c4cd3.2971f4a7.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2034],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>c});var l=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,l)}return n}function r(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(l=0;l=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var p=l.createContext({}),o=function(e){var t=l.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},u=function(e){var t=o(e.components);return l.createElement(p.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return l.createElement(l.Fragment,{},t)}},k=l.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,p=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),d=o(n),k=a,c=d["".concat(p,".").concat(k)]||d[k]||m[k]||i;return n?l.createElement(c,r(r({ref:t},u),{},{components:n})):l.createElement(c,r({ref:t},u))}));function c(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,r=new Array(i);r[0]=k;var s={};for(var p in t)hasOwnProperty.call(t,p)&&(s[p]=t[p]);s.originalType=e,s[d]="string"==typeof e?e:a,r[1]=s;for(var o=2;o{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>r,default:()=>m,frontMatter:()=>i,metadata:()=>s,toc:()=>o});var l=n(87462),a=(n(67294),n(3905));n(8209);const i={id:"list",title:"List module",sidebar_label:"List"},r=void 0,s={unversionedId:"build/smart-contracts/language/library/list",id:"build/smart-contracts/language/library/list",title:"List module",description:"The List module contains functions to deal with lists. Lists are actually Linked List.",source:"@site/docs/build/smart-contracts/language/library/list.md",sourceDirName:"build/smart-contracts/language/library",slug:"/build/smart-contracts/language/library/list",permalink:"/build/smart-contracts/language/library/list",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"list",title:"List module",sidebar_label:"List"},sidebar:"docs",previous:{title:"Json",permalink:"/build/smart-contracts/language/library/json"},next:{title:"Map",permalink:"/build/smart-contracts/language/library/map"}},p={},o=[{value:"at/2",id:"at2",level:3},{value:"size/1",id:"size1",level:3},{value:"in?/2",id:"in2",level:3},{value:"empty?/1",id:"empty1",level:3},{value:"concat/2",id:"concat2",level:3},{value:"append/2",id:"append2",level:3},{value:"prepend/2",id:"prepend2",level:3},{value:"join/2",id:"join2",level:3},{value:"sort/1",id:"sort1",level:3},{value:"sort_by/2",id:"sort_by2",level:3},{value:"uniq/1",id:"uniq1",level:3},{value:"reverse/1",id:"reverse1",level:3},{value:"set_at/3",id:"set_at3",level:3},{value:"delete_at/3",id:"delete_at3",level:3}],u={toc:o},d="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(d,(0,l.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The ",(0,a.kt)("inlineCode",{parentName:"p"},"List")," module contains functions to deal with lists. Lists are actually ",(0,a.kt)("a",{parentName:"p",href:"https://en.wikipedia.org/wiki/Linked_list"},"Linked List"),"."),(0,a.kt)("h3",{id:"at2"},"at/2"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},'List.at(["a", "b", "c"], 0) # "a"\nList.at(["a", "b", "c"], 1) # "b"\nList.at(["a", "b", "c"], 2) # "c"\nList.at([], 0) # nil\n')),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"list")," the list"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"index")," the index (zero-based)")),(0,a.kt)("p",null,"Returns the element at ",(0,a.kt)("inlineCode",{parentName:"p"},"index")," in ",(0,a.kt)("inlineCode",{parentName:"p"},"list"),"."),(0,a.kt)("h3",{id:"size1"},"size/1"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},"List.size([]) # 0\nList.size([1,2,3,4]) # 4\n")),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"list")," the list")),(0,a.kt)("p",null,"Returns the number of keys in ",(0,a.kt)("inlineCode",{parentName:"p"},"list"),"."),(0,a.kt)("h3",{id:"in2"},"in?/2"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},'List.in?(["bob", "alice"], "alice") # true\nList.in?(["bob", "alice"], "fred") # false\n')),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"list")," the haystack"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"element")," the needle")),(0,a.kt)("p",null,"Returns whether the ",(0,a.kt)("inlineCode",{parentName:"p"},"needle")," is in the ",(0,a.kt)("inlineCode",{parentName:"p"},"haystack"),"."),(0,a.kt)("h3",{id:"empty1"},"empty?/1"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},'List.empty?([]) # true\nList.empty?(["apple"]) # false\n')),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"list")," the list")),(0,a.kt)("p",null,"Returns whether the ",(0,a.kt)("inlineCode",{parentName:"p"},"list")," is empty or not."),(0,a.kt)("h3",{id:"concat2"},"concat/2"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},"List.concat([], []) # []\nList.concat([1,2], [3,4]) # [1,2,3,4]\n")),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"list1")," a list"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"list2")," another list")),(0,a.kt)("p",null,"Returns a new list where ",(0,a.kt)("inlineCode",{parentName:"p"},"list2")," is concatenated to ",(0,a.kt)("inlineCode",{parentName:"p"},"list1"),"."),(0,a.kt)("h3",{id:"append2"},"append/2"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},"List.append([], 1) # [1]\nList.append([1], 2) # [1,2]\n")),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"list")," the list"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"element")," the element")),(0,a.kt)("p",null,"Returns a new list where ",(0,a.kt)("inlineCode",{parentName:"p"},"element")," is appended to the end of ",(0,a.kt)("inlineCode",{parentName:"p"},"list"),"."),(0,a.kt)("admonition",{type:"tip"},(0,a.kt)("p",{parentName:"admonition"},"If order doesn't matter, we suggest to use ",(0,a.kt)("inlineCode",{parentName:"p"},"prepend/2")," instead (Complexity: O(1) instead of O(n)).")),(0,a.kt)("h3",{id:"prepend2"},"prepend/2"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},"List.prepend([], 1) # [1]\nList.prepend([1], 0) # [0,1]\n")),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"list")," the list"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"element")," the element")),(0,a.kt)("p",null,"Returns a new list where ",(0,a.kt)("inlineCode",{parentName:"p"},"element")," is appended to the start of ",(0,a.kt)("inlineCode",{parentName:"p"},"list"),"."),(0,a.kt)("h3",{id:"join2"},"join/2"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},'List.join([], ", ") # ""\nList.join(["Mike", "Robert", "Joe"], ", ") # "Mike, Robert, Joe"\n')),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"list")," the list of strings"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"separator")," the separator")),(0,a.kt)("p",null,"Returns a string where all ",(0,a.kt)("inlineCode",{parentName:"p"},"list"),"'s elements have been joined with ",(0,a.kt)("inlineCode",{parentName:"p"},"separator")," separator."),(0,a.kt)("h3",{id:"sort1"},"sort/1"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},"List.sort([1,3,2]) # [1,2,3]\n")),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"list")," the list of maps")),(0,a.kt)("p",null,"Returns same ",(0,a.kt)("inlineCode",{parentName:"p"},"list")," but ordered ASC."),(0,a.kt)("h3",{id:"sort_by2"},"sort_by/2"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},'List.sort_by([[a: 1], [a: 3], [a: 2]], "a") # [[a: 1], [a: 2], [a: 3]]\n')),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"list")," the list of maps"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"field")," the field of the map to use for sorting")),(0,a.kt)("p",null,"Returns same ",(0,a.kt)("inlineCode",{parentName:"p"},"list")," but ordered ASC by the ",(0,a.kt)("inlineCode",{parentName:"p"},"field")," value of each items."),(0,a.kt)("h3",{id:"uniq1"},"uniq/1"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},"List.uniq([1,2,1,2,3]) # [1,2,3]\n")),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"list")," the list")),(0,a.kt)("p",null,"Returns same ",(0,a.kt)("inlineCode",{parentName:"p"},"list")," but without duplicated elements."),(0,a.kt)("h3",{id:"reverse1"},"reverse/1"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},"List.reverse([1,2,2,3]) # [3,2,2,1]\n")),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"list")," the list")),(0,a.kt)("p",null,"Returns same ",(0,a.kt)("inlineCode",{parentName:"p"},"list")," but reversed."),(0,a.kt)("h3",{id:"set_at3"},"set_at/3"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},'List.set_at(["index0", "index1"], 1, "value") # ["index0", "value"]\n')),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"list")," the list"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"index")," 0-based index"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"value")," the value to set at index")),(0,a.kt)("p",null,"Returns same ",(0,a.kt)("inlineCode",{parentName:"p"},"list")," but element at index ",(0,a.kt)("inlineCode",{parentName:"p"},"index")," is replaced by ",(0,a.kt)("inlineCode",{parentName:"p"},"value"),"."),(0,a.kt)("h3",{id:"delete_at3"},"delete_at/3"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},'List.delete_at(["index0", "index1"], 1) # ["index0"]\n')),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"list")," the list"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"index")," 0-based index")),(0,a.kt)("p",null,"Returns same ",(0,a.kt)("inlineCode",{parentName:"p"},"list")," but element at index ",(0,a.kt)("inlineCode",{parentName:"p"},"index")," is deleted."))}m.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2034],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>c});var l=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,l)}return n}function r(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(l=0;l=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var p=l.createContext({}),o=function(e){var t=l.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},u=function(e){var t=o(e.components);return l.createElement(p.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return l.createElement(l.Fragment,{},t)}},k=l.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,p=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),d=o(n),k=a,c=d["".concat(p,".").concat(k)]||d[k]||m[k]||i;return n?l.createElement(c,r(r({ref:t},u),{},{components:n})):l.createElement(c,r({ref:t},u))}));function c(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,r=new Array(i);r[0]=k;var s={};for(var p in t)hasOwnProperty.call(t,p)&&(s[p]=t[p]);s.originalType=e,s[d]="string"==typeof e?e:a,r[1]=s;for(var o=2;o{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>r,default:()=>m,frontMatter:()=>i,metadata:()=>s,toc:()=>o});var l=n(87462),a=(n(67294),n(3905));n(8209);const i={id:"list",title:"List module",sidebar_label:"List"},r=void 0,s={unversionedId:"build/smart-contracts/language/library/list",id:"build/smart-contracts/language/library/list",title:"List module",description:"The List module contains functions to deal with lists. Lists are actually Linked List.",source:"@site/docs/build/smart-contracts/language/library/list.md",sourceDirName:"build/smart-contracts/language/library",slug:"/build/smart-contracts/language/library/list",permalink:"/build/smart-contracts/language/library/list",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"list",title:"List module",sidebar_label:"List"},sidebar:"docs",previous:{title:"Json",permalink:"/build/smart-contracts/language/library/json"},next:{title:"Map",permalink:"/build/smart-contracts/language/library/map"}},p={},o=[{value:"at/2",id:"at2",level:3},{value:"size/1",id:"size1",level:3},{value:"in?/2",id:"in2",level:3},{value:"empty?/1",id:"empty1",level:3},{value:"concat/2",id:"concat2",level:3},{value:"append/2",id:"append2",level:3},{value:"prepend/2",id:"prepend2",level:3},{value:"join/2",id:"join2",level:3},{value:"sort/1",id:"sort1",level:3},{value:"sort_by/2",id:"sort_by2",level:3},{value:"uniq/1",id:"uniq1",level:3},{value:"reverse/1",id:"reverse1",level:3},{value:"set_at/3",id:"set_at3",level:3},{value:"delete_at/3",id:"delete_at3",level:3}],u={toc:o},d="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(d,(0,l.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The ",(0,a.kt)("inlineCode",{parentName:"p"},"List")," module contains functions to deal with lists. Lists are actually ",(0,a.kt)("a",{parentName:"p",href:"https://en.wikipedia.org/wiki/Linked_list"},"Linked List"),"."),(0,a.kt)("h3",{id:"at2"},"at/2"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},'List.at(["a", "b", "c"], 0) # "a"\nList.at(["a", "b", "c"], 1) # "b"\nList.at(["a", "b", "c"], 2) # "c"\nList.at([], 0) # nil\n')),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"list")," the list"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"index")," the index (zero-based)")),(0,a.kt)("p",null,"Returns the element at ",(0,a.kt)("inlineCode",{parentName:"p"},"index")," in ",(0,a.kt)("inlineCode",{parentName:"p"},"list"),"."),(0,a.kt)("h3",{id:"size1"},"size/1"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},"List.size([]) # 0\nList.size([1,2,3,4]) # 4\n")),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"list")," the list")),(0,a.kt)("p",null,"Returns the number of keys in ",(0,a.kt)("inlineCode",{parentName:"p"},"list"),"."),(0,a.kt)("h3",{id:"in2"},"in?/2"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},'List.in?(["bob", "alice"], "alice") # true\nList.in?(["bob", "alice"], "fred") # false\n')),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"list")," the haystack"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"element")," the needle")),(0,a.kt)("p",null,"Returns whether the ",(0,a.kt)("inlineCode",{parentName:"p"},"needle")," is in the ",(0,a.kt)("inlineCode",{parentName:"p"},"haystack"),"."),(0,a.kt)("h3",{id:"empty1"},"empty?/1"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},'List.empty?([]) # true\nList.empty?(["apple"]) # false\n')),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"list")," the list")),(0,a.kt)("p",null,"Returns whether the ",(0,a.kt)("inlineCode",{parentName:"p"},"list")," is empty or not."),(0,a.kt)("h3",{id:"concat2"},"concat/2"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},"List.concat([], []) # []\nList.concat([1,2], [3,4]) # [1,2,3,4]\n")),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"list1")," a list"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"list2")," another list")),(0,a.kt)("p",null,"Returns a new list where ",(0,a.kt)("inlineCode",{parentName:"p"},"list2")," is concatenated to ",(0,a.kt)("inlineCode",{parentName:"p"},"list1"),"."),(0,a.kt)("h3",{id:"append2"},"append/2"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},"List.append([], 1) # [1]\nList.append([1], 2) # [1,2]\n")),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"list")," the list"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"element")," the element")),(0,a.kt)("p",null,"Returns a new list where ",(0,a.kt)("inlineCode",{parentName:"p"},"element")," is appended to the end of ",(0,a.kt)("inlineCode",{parentName:"p"},"list"),"."),(0,a.kt)("admonition",{type:"tip"},(0,a.kt)("p",{parentName:"admonition"},"If order doesn't matter, we suggest to use ",(0,a.kt)("inlineCode",{parentName:"p"},"prepend/2")," instead (Complexity: O(1) instead of O(n)).")),(0,a.kt)("h3",{id:"prepend2"},"prepend/2"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},"List.prepend([], 1) # [1]\nList.prepend([1], 0) # [0,1]\n")),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"list")," the list"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"element")," the element")),(0,a.kt)("p",null,"Returns a new list where ",(0,a.kt)("inlineCode",{parentName:"p"},"element")," is appended to the start of ",(0,a.kt)("inlineCode",{parentName:"p"},"list"),"."),(0,a.kt)("h3",{id:"join2"},"join/2"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},'List.join([], ", ") # ""\nList.join(["Mike", "Robert", "Joe"], ", ") # "Mike, Robert, Joe"\n')),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"list")," the list of strings"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"separator")," the separator")),(0,a.kt)("p",null,"Returns a string where all ",(0,a.kt)("inlineCode",{parentName:"p"},"list"),"'s elements have been joined with ",(0,a.kt)("inlineCode",{parentName:"p"},"separator")," separator."),(0,a.kt)("h3",{id:"sort1"},"sort/1"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},"List.sort([1,3,2]) # [1,2,3]\n")),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"list")," the list of maps")),(0,a.kt)("p",null,"Returns same ",(0,a.kt)("inlineCode",{parentName:"p"},"list")," but ordered ASC."),(0,a.kt)("h3",{id:"sort_by2"},"sort_by/2"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},'List.sort_by([[a: 1], [a: 3], [a: 2]], "a") # [[a: 1], [a: 2], [a: 3]]\n')),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"list")," the list of maps"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"field")," the field of the map to use for sorting")),(0,a.kt)("p",null,"Returns same ",(0,a.kt)("inlineCode",{parentName:"p"},"list")," but ordered ASC by the ",(0,a.kt)("inlineCode",{parentName:"p"},"field")," value of each items."),(0,a.kt)("h3",{id:"uniq1"},"uniq/1"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},"List.uniq([1,2,1,2,3]) # [1,2,3]\n")),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"list")," the list")),(0,a.kt)("p",null,"Returns same ",(0,a.kt)("inlineCode",{parentName:"p"},"list")," but without duplicated elements."),(0,a.kt)("h3",{id:"reverse1"},"reverse/1"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},"List.reverse([1,2,2,3]) # [3,2,2,1]\n")),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"list")," the list")),(0,a.kt)("p",null,"Returns same ",(0,a.kt)("inlineCode",{parentName:"p"},"list")," but reversed."),(0,a.kt)("h3",{id:"set_at3"},"set_at/3"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},'List.set_at(["index0", "index1"], 1, "value") # ["index0", "value"]\n')),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"list")," the list"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"index")," 0-based index"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"value")," the value to set at index")),(0,a.kt)("p",null,"Returns same ",(0,a.kt)("inlineCode",{parentName:"p"},"list")," but element at index ",(0,a.kt)("inlineCode",{parentName:"p"},"index")," is replaced by ",(0,a.kt)("inlineCode",{parentName:"p"},"value"),"."),(0,a.kt)("h3",{id:"delete_at3"},"delete_at/3"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},'List.delete_at(["index0", "index1"], 1) # ["index0"]\n')),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"list")," the list"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"index")," 0-based index")),(0,a.kt)("p",null,"Returns same ",(0,a.kt)("inlineCode",{parentName:"p"},"list")," but element at index ",(0,a.kt)("inlineCode",{parentName:"p"},"index")," is deleted."))}m.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/e49ee1a9.ba0defca.js b/assets/js/e49ee1a9.e1d6864b.js similarity index 98% rename from assets/js/e49ee1a9.ba0defca.js rename to assets/js/e49ee1a9.e1d6864b.js index e6a15310e..886749891 100644 --- a/assets/js/e49ee1a9.ba0defca.js +++ b/assets/js/e49ee1a9.e1d6864b.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6509],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>m});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var s=n.createContext({}),i=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},d=function(e){var t=i(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},b=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,l=e.originalType,s=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),u=i(a),b=r,m=u["".concat(s,".").concat(b)]||u[b]||p[b]||l;return a?n.createElement(m,o(o({ref:t},d),{},{components:a})):n.createElement(m,o({ref:t},d))}));function m(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=a.length,o=new Array(l);o[0]=b;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[u]="string"==typeof e?e:r,o[1]=c;for(var i=2;i{a.r(t),a.d(t,{Badge:()=>p,Bullet:()=>d,Details:()=>m,SpecifiedBy:()=>u,assets:()=>i,contentTitle:()=>c,default:()=>g,frontMatter:()=>o,metadata:()=>s,toc:()=>b});var n=a(87462),r=a(67294),l=a(3905);a(8209);const o={id:"balance",title:"balance",hide_table_of_contents:!1},c=void 0,s={unversionedId:"build/api/schema/queries/balance",id:"build/api/schema/queries/balance",title:"balance",description:"Query the network to find a balance from an address coming from the latest transaction on the chain",source:"@site/docs/build/api/schema/queries/balance.mdx",sourceDirName:"build/api/schema/queries",slug:"/build/api/schema/queries/balance",permalink:"/build/api/schema/queries/balance",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"balance",title:"balance",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"Version",permalink:"/build/api/schema/objects/version"},next:{title:"beaconChainSummary",permalink:"/build/api/schema/queries/beacon-chain-summary"}},i={},d=()=>(0,l.kt)(r.Fragment,null,(0,l.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),u=e=>(0,l.kt)(r.Fragment,null,"Specification",(0,l.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),p=e=>(0,l.kt)(r.Fragment,null,(0,l.kt)("span",{className:e.class},e.text)),b=[{value:"Arguments",id:"arguments",level:3},{value:'balance.addressAddress! ',id:"code-style-fontweight-normal-balancebaddressbcodeaddress--",level:4},{value:"Type",id:"type",level:3},{value:'Balance ',id:"balance-",level:4}],m=e=>{let{dataOpen:t,dataClose:a,children:o,startOpen:c=!1}=e;const[s,i]=(0,r.useState)(c);return(0,l.kt)("details",(0,n.Z)({},s?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,l.kt)("summary",{onClick:e=>{e.preventDefault(),i((e=>!e))},style:{listStyle:"none"}},s?t:a),s&&o)},f={Bullet:d,SpecifiedBy:u,Badge:p,toc:b,Details:m},y="wrapper";function g(e){let{components:t,...a}=e;return(0,l.kt)(y,(0,n.Z)({},f,a,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("p",null,"Query the network to find a balance from an address coming from the latest transaction on the chain"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-graphql"},"balance(\n address: Address!\n): Balance\n")),(0,l.kt)("h3",{id:"arguments"},"Arguments"),(0,l.kt)("h4",{id:"code-style-fontweight-normal-balancebaddressbcodeaddress--"},(0,l.kt)("a",{parentName:"h4",href:"#"},(0,l.kt)("code",{style:{fontWeight:"normal"}},"balance.",(0,l.kt)("b",null,"address"))),(0,l.kt)(d,{mdxType:"Bullet"}),(0,l.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/address"},(0,l.kt)("inlineCode",{parentName:"a"},"Address!"))," ",(0,l.kt)(p,{class:"badge badge--secondary",text:"non-null",mdxType:"Badge"})," ",(0,l.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,l.kt)("blockquote",null),(0,l.kt)("h3",{id:"type"},"Type"),(0,l.kt)("h4",{id:"balance-"},(0,l.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/balance"},(0,l.kt)("inlineCode",{parentName:"a"},"Balance"))," ",(0,l.kt)(p,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"[Balance]"," represents a ledger balance.\nIt includes:"),(0,l.kt)("ul",{parentName:"blockquote"},(0,l.kt)("li",{parentName:"ul"},"UCO: uco balance"),(0,l.kt)("li",{parentName:"ul"},"token: token balances"))))}g.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6509],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>m});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var s=n.createContext({}),i=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},d=function(e){var t=i(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},b=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,l=e.originalType,s=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),u=i(a),b=r,m=u["".concat(s,".").concat(b)]||u[b]||p[b]||l;return a?n.createElement(m,o(o({ref:t},d),{},{components:a})):n.createElement(m,o({ref:t},d))}));function m(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=a.length,o=new Array(l);o[0]=b;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[u]="string"==typeof e?e:r,o[1]=c;for(var i=2;i{a.r(t),a.d(t,{Badge:()=>p,Bullet:()=>d,Details:()=>m,SpecifiedBy:()=>u,assets:()=>i,contentTitle:()=>c,default:()=>g,frontMatter:()=>o,metadata:()=>s,toc:()=>b});var n=a(87462),r=a(67294),l=a(3905);a(8209);const o={id:"balance",title:"balance",hide_table_of_contents:!1},c=void 0,s={unversionedId:"build/api/schema/queries/balance",id:"build/api/schema/queries/balance",title:"balance",description:"Query the network to find a balance from an address coming from the latest transaction on the chain",source:"@site/docs/build/api/schema/queries/balance.mdx",sourceDirName:"build/api/schema/queries",slug:"/build/api/schema/queries/balance",permalink:"/build/api/schema/queries/balance",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"balance",title:"balance",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"Version",permalink:"/build/api/schema/objects/version"},next:{title:"beaconChainSummary",permalink:"/build/api/schema/queries/beacon-chain-summary"}},i={},d=()=>(0,l.kt)(r.Fragment,null,(0,l.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),u=e=>(0,l.kt)(r.Fragment,null,"Specification",(0,l.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),p=e=>(0,l.kt)(r.Fragment,null,(0,l.kt)("span",{className:e.class},e.text)),b=[{value:"Arguments",id:"arguments",level:3},{value:'balance.addressAddress! ',id:"code-style-fontweight-normal-balancebaddressbcodeaddress--",level:4},{value:"Type",id:"type",level:3},{value:'Balance ',id:"balance-",level:4}],m=e=>{let{dataOpen:t,dataClose:a,children:o,startOpen:c=!1}=e;const[s,i]=(0,r.useState)(c);return(0,l.kt)("details",(0,n.Z)({},s?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,l.kt)("summary",{onClick:e=>{e.preventDefault(),i((e=>!e))},style:{listStyle:"none"}},s?t:a),s&&o)},f={Bullet:d,SpecifiedBy:u,Badge:p,toc:b,Details:m},y="wrapper";function g(e){let{components:t,...a}=e;return(0,l.kt)(y,(0,n.Z)({},f,a,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("p",null,"Query the network to find a balance from an address coming from the latest transaction on the chain"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-graphql"},"balance(\n address: Address!\n): Balance\n")),(0,l.kt)("h3",{id:"arguments"},"Arguments"),(0,l.kt)("h4",{id:"code-style-fontweight-normal-balancebaddressbcodeaddress--"},(0,l.kt)("a",{parentName:"h4",href:"#"},(0,l.kt)("code",{style:{fontWeight:"normal"}},"balance.",(0,l.kt)("b",null,"address"))),(0,l.kt)(d,{mdxType:"Bullet"}),(0,l.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/address"},(0,l.kt)("inlineCode",{parentName:"a"},"Address!"))," ",(0,l.kt)(p,{class:"badge badge--secondary",text:"non-null",mdxType:"Badge"})," ",(0,l.kt)(p,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,l.kt)("blockquote",null),(0,l.kt)("h3",{id:"type"},"Type"),(0,l.kt)("h4",{id:"balance-"},(0,l.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/balance"},(0,l.kt)("inlineCode",{parentName:"a"},"Balance"))," ",(0,l.kt)(p,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"[Balance]"," represents a ledger balance.\nIt includes:"),(0,l.kt)("ul",{parentName:"blockquote"},(0,l.kt)("li",{parentName:"ul"},"UCO: uco balance"),(0,l.kt)("li",{parentName:"ul"},"token: token balances"))))}g.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file diff --git a/assets/js/e8aebf52.7cf6129a.js b/assets/js/e8aebf52.fe39dc27.js similarity index 98% rename from assets/js/e8aebf52.7cf6129a.js rename to assets/js/e8aebf52.fe39dc27.js index a8406d6ab..2cf42876f 100644 --- a/assets/js/e8aebf52.7cf6129a.js +++ b/assets/js/e8aebf52.fe39dc27.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5471],{3905:(e,t,a)=>{a.d(t,{Zo:()=>i,kt:()=>b});var n=a(67294);function o(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function s(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e){for(var t=1;t=0||(o[a]=e[a]);return o}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(o[a]=e[a])}return o}var r=n.createContext({}),c=function(e){var t=n.useContext(r),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},i=function(e){var t=c(e.components);return n.createElement(r.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},p=n.forwardRef((function(e,t){var a=e.components,o=e.mdxType,s=e.originalType,r=e.parentName,i=d(e,["components","mdxType","originalType","parentName"]),u=c(a),p=o,b=u["".concat(r,".").concat(p)]||u[p]||m[p]||s;return a?n.createElement(b,l(l({ref:t},i),{},{components:a})):n.createElement(b,l({ref:t},i))}));function b(e,t){var a=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var s=a.length,l=new Array(s);l[0]=p;var d={};for(var r in t)hasOwnProperty.call(t,r)&&(d[r]=t[r]);d.originalType=e,d[u]="string"==typeof e?e:o,l[1]=d;for(var c=2;c{a.r(t),a.d(t,{Badge:()=>m,Bullet:()=>i,Details:()=>b,SpecifiedBy:()=>u,assets:()=>c,contentTitle:()=>d,default:()=>f,frontMatter:()=>l,metadata:()=>r,toc:()=>p});var n=a(87462),o=a(67294),s=a(3905);a(8209);const l={id:"consumed-inputs",title:"ConsumedInputs",hide_table_of_contents:!1},d=void 0,r={unversionedId:"build/api/schema/objects/consumed-inputs",id:"build/api/schema/objects/consumed-inputs",title:"ConsumedInputs",description:"[ConsumedInputs] represents the inputs consumed by the transaction",source:"@site/docs/build/api/schema/objects/consumed-inputs.mdx",sourceDirName:"build/api/schema/objects",slug:"/build/api/schema/objects/consumed-inputs",permalink:"/build/api/schema/objects/consumed-inputs",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"consumed-inputs",title:"ConsumedInputs",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"BeaconChainSummary",permalink:"/build/api/schema/objects/beacon-chain-summary"},next:{title:"CrossValidationStamp",permalink:"/build/api/schema/objects/cross-validation-stamp"}},c={},i=()=>(0,s.kt)(o.Fragment,null,(0,s.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),u=e=>(0,s.kt)(o.Fragment,null,"Specification",(0,s.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),m=e=>(0,s.kt)(o.Fragment,null,(0,s.kt)("span",{className:e.class},e.text)),p=[{value:"Fields",id:"fields",level:3},{value:'ConsumedInputs.amountInt ',id:"code-style-fontweight-normal-consumedinputsbamountbcodeint-",level:4},{value:'ConsumedInputs.fromAddress ',id:"code-style-fontweight-normal-consumedinputsbfrombcodeaddress-",level:4},{value:'ConsumedInputs.protocolVersionInt ',id:"code-style-fontweight-normal-consumedinputsbprotocolversionbcodeint-",level:4},{value:'ConsumedInputs.stateState ',id:"code-style-fontweight-normal-consumedinputsbstatebcodestate-",level:4},{value:'ConsumedInputs.timestampTimestamp ',id:"code-style-fontweight-normal-consumedinputsbtimestampbcodetimestamp-",level:4},{value:'ConsumedInputs.tokenAddressAddress ',id:"code-style-fontweight-normal-consumedinputsbtokenaddressbcodeaddress-",level:4},{value:'ConsumedInputs.tokenIdInt ',id:"code-style-fontweight-normal-consumedinputsbtokenidbcodeint-",level:4},{value:'ConsumedInputs.typeString ',id:"code-style-fontweight-normal-consumedinputsbtypebcodestring-",level:4},{value:"Member of",id:"member-of",level:3}],b=e=>{let{dataOpen:t,dataClose:a,children:l,startOpen:d=!1}=e;const[r,c]=(0,o.useState)(d);return(0,s.kt)("details",(0,n.Z)({},r?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,s.kt)("summary",{onClick:e=>{e.preventDefault(),c((e=>!e))},style:{listStyle:"none"}},r?t:a),r&&l)},k={Bullet:i,SpecifiedBy:u,Badge:m,toc:p,Details:b},h="wrapper";function f(e){let{components:t,...a}=e;return(0,s.kt)(h,(0,n.Z)({},k,a,{components:t,mdxType:"MDXLayout"}),(0,s.kt)("p",null,"[ConsumedInputs]"," represents the inputs consumed by the transaction\nIt includes:"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"From: transaction which send the amount of assets"),(0,s.kt)("li",{parentName:"ul"},"Amount: asset amount"),(0,s.kt)("li",{parentName:"ul"},"Type: UCO / token / state / call"),(0,s.kt)("li",{parentName:"ul"},"token address: address of the token if the type is token"),(0,s.kt)("li",{parentName:"ul"},"token id: It is the id for a token which is allocated when the token is minted."),(0,s.kt)("li",{parentName:"ul"},"Timestamp: Date time when the UTXO created/manipulated"),(0,s.kt)("li",{parentName:"ul"},"Protocol Version: Version of the UTXO data structure"),(0,s.kt)("li",{parentName:"ul"},"State: It is the state of a smart contract")),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-graphql"},"type ConsumedInputs {\n amount: Int\n from: Address\n protocolVersion: Int\n state: State\n timestamp: Timestamp\n tokenAddress: Address\n tokenId: Int\n type: String\n}\n")),(0,s.kt)("h3",{id:"fields"},"Fields"),(0,s.kt)("h4",{id:"code-style-fontweight-normal-consumedinputsbamountbcodeint-"},(0,s.kt)("a",{parentName:"h4",href:"#"},(0,s.kt)("code",{style:{fontWeight:"normal"}},"ConsumedInputs.",(0,s.kt)("b",null,"amount"))),(0,s.kt)(i,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/int"},(0,s.kt)("inlineCode",{parentName:"a"},"Int"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,s.kt)("blockquote",null),(0,s.kt)("h4",{id:"code-style-fontweight-normal-consumedinputsbfrombcodeaddress-"},(0,s.kt)("a",{parentName:"h4",href:"#"},(0,s.kt)("code",{style:{fontWeight:"normal"}},"ConsumedInputs.",(0,s.kt)("b",null,"from"))),(0,s.kt)(i,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/address"},(0,s.kt)("inlineCode",{parentName:"a"},"Address"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,s.kt)("blockquote",null),(0,s.kt)("h4",{id:"code-style-fontweight-normal-consumedinputsbprotocolversionbcodeint-"},(0,s.kt)("a",{parentName:"h4",href:"#"},(0,s.kt)("code",{style:{fontWeight:"normal"}},"ConsumedInputs.",(0,s.kt)("b",null,"protocolVersion"))),(0,s.kt)(i,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/int"},(0,s.kt)("inlineCode",{parentName:"a"},"Int"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,s.kt)("blockquote",null),(0,s.kt)("h4",{id:"code-style-fontweight-normal-consumedinputsbstatebcodestate-"},(0,s.kt)("a",{parentName:"h4",href:"#"},(0,s.kt)("code",{style:{fontWeight:"normal"}},"ConsumedInputs.",(0,s.kt)("b",null,"state"))),(0,s.kt)(i,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/state"},(0,s.kt)("inlineCode",{parentName:"a"},"State"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,s.kt)("blockquote",null),(0,s.kt)("h4",{id:"code-style-fontweight-normal-consumedinputsbtimestampbcodetimestamp-"},(0,s.kt)("a",{parentName:"h4",href:"#"},(0,s.kt)("code",{style:{fontWeight:"normal"}},"ConsumedInputs.",(0,s.kt)("b",null,"timestamp"))),(0,s.kt)(i,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/timestamp"},(0,s.kt)("inlineCode",{parentName:"a"},"Timestamp"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,s.kt)("blockquote",null),(0,s.kt)("h4",{id:"code-style-fontweight-normal-consumedinputsbtokenaddressbcodeaddress-"},(0,s.kt)("a",{parentName:"h4",href:"#"},(0,s.kt)("code",{style:{fontWeight:"normal"}},"ConsumedInputs.",(0,s.kt)("b",null,"tokenAddress"))),(0,s.kt)(i,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/address"},(0,s.kt)("inlineCode",{parentName:"a"},"Address"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,s.kt)("blockquote",null),(0,s.kt)("h4",{id:"code-style-fontweight-normal-consumedinputsbtokenidbcodeint-"},(0,s.kt)("a",{parentName:"h4",href:"#"},(0,s.kt)("code",{style:{fontWeight:"normal"}},"ConsumedInputs.",(0,s.kt)("b",null,"tokenId"))),(0,s.kt)(i,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/int"},(0,s.kt)("inlineCode",{parentName:"a"},"Int"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,s.kt)("blockquote",null),(0,s.kt)("h4",{id:"code-style-fontweight-normal-consumedinputsbtypebcodestring-"},(0,s.kt)("a",{parentName:"h4",href:"#"},(0,s.kt)("code",{style:{fontWeight:"normal"}},"ConsumedInputs.",(0,s.kt)("b",null,"type"))),(0,s.kt)(i,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/string"},(0,s.kt)("inlineCode",{parentName:"a"},"String"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,s.kt)("blockquote",null),(0,s.kt)("h3",{id:"member-of"},"Member of"),(0,s.kt)("p",null,(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/ledger-operations"},(0,s.kt)("inlineCode",{parentName:"a"},"LedgerOperations"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}f.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5471],{3905:(e,t,a)=>{a.d(t,{Zo:()=>i,kt:()=>b});var n=a(67294);function o(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function s(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e){for(var t=1;t=0||(o[a]=e[a]);return o}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(o[a]=e[a])}return o}var r=n.createContext({}),c=function(e){var t=n.useContext(r),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},i=function(e){var t=c(e.components);return n.createElement(r.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},p=n.forwardRef((function(e,t){var a=e.components,o=e.mdxType,s=e.originalType,r=e.parentName,i=d(e,["components","mdxType","originalType","parentName"]),u=c(a),p=o,b=u["".concat(r,".").concat(p)]||u[p]||m[p]||s;return a?n.createElement(b,l(l({ref:t},i),{},{components:a})):n.createElement(b,l({ref:t},i))}));function b(e,t){var a=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var s=a.length,l=new Array(s);l[0]=p;var d={};for(var r in t)hasOwnProperty.call(t,r)&&(d[r]=t[r]);d.originalType=e,d[u]="string"==typeof e?e:o,l[1]=d;for(var c=2;c{a.r(t),a.d(t,{Badge:()=>m,Bullet:()=>i,Details:()=>b,SpecifiedBy:()=>u,assets:()=>c,contentTitle:()=>d,default:()=>f,frontMatter:()=>l,metadata:()=>r,toc:()=>p});var n=a(87462),o=a(67294),s=a(3905);a(8209);const l={id:"consumed-inputs",title:"ConsumedInputs",hide_table_of_contents:!1},d=void 0,r={unversionedId:"build/api/schema/objects/consumed-inputs",id:"build/api/schema/objects/consumed-inputs",title:"ConsumedInputs",description:"[ConsumedInputs] represents the inputs consumed by the transaction",source:"@site/docs/build/api/schema/objects/consumed-inputs.mdx",sourceDirName:"build/api/schema/objects",slug:"/build/api/schema/objects/consumed-inputs",permalink:"/build/api/schema/objects/consumed-inputs",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"consumed-inputs",title:"ConsumedInputs",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"BeaconChainSummary",permalink:"/build/api/schema/objects/beacon-chain-summary"},next:{title:"CrossValidationStamp",permalink:"/build/api/schema/objects/cross-validation-stamp"}},c={},i=()=>(0,s.kt)(o.Fragment,null,(0,s.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),u=e=>(0,s.kt)(o.Fragment,null,"Specification",(0,s.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),m=e=>(0,s.kt)(o.Fragment,null,(0,s.kt)("span",{className:e.class},e.text)),p=[{value:"Fields",id:"fields",level:3},{value:'ConsumedInputs.amountInt ',id:"code-style-fontweight-normal-consumedinputsbamountbcodeint-",level:4},{value:'ConsumedInputs.fromAddress ',id:"code-style-fontweight-normal-consumedinputsbfrombcodeaddress-",level:4},{value:'ConsumedInputs.protocolVersionInt ',id:"code-style-fontweight-normal-consumedinputsbprotocolversionbcodeint-",level:4},{value:'ConsumedInputs.stateState ',id:"code-style-fontweight-normal-consumedinputsbstatebcodestate-",level:4},{value:'ConsumedInputs.timestampTimestamp ',id:"code-style-fontweight-normal-consumedinputsbtimestampbcodetimestamp-",level:4},{value:'ConsumedInputs.tokenAddressAddress ',id:"code-style-fontweight-normal-consumedinputsbtokenaddressbcodeaddress-",level:4},{value:'ConsumedInputs.tokenIdInt ',id:"code-style-fontweight-normal-consumedinputsbtokenidbcodeint-",level:4},{value:'ConsumedInputs.typeString ',id:"code-style-fontweight-normal-consumedinputsbtypebcodestring-",level:4},{value:"Member of",id:"member-of",level:3}],b=e=>{let{dataOpen:t,dataClose:a,children:l,startOpen:d=!1}=e;const[r,c]=(0,o.useState)(d);return(0,s.kt)("details",(0,n.Z)({},r?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,s.kt)("summary",{onClick:e=>{e.preventDefault(),c((e=>!e))},style:{listStyle:"none"}},r?t:a),r&&l)},k={Bullet:i,SpecifiedBy:u,Badge:m,toc:p,Details:b},h="wrapper";function f(e){let{components:t,...a}=e;return(0,s.kt)(h,(0,n.Z)({},k,a,{components:t,mdxType:"MDXLayout"}),(0,s.kt)("p",null,"[ConsumedInputs]"," represents the inputs consumed by the transaction\nIt includes:"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"From: transaction which send the amount of assets"),(0,s.kt)("li",{parentName:"ul"},"Amount: asset amount"),(0,s.kt)("li",{parentName:"ul"},"Type: UCO / token / state / call"),(0,s.kt)("li",{parentName:"ul"},"token address: address of the token if the type is token"),(0,s.kt)("li",{parentName:"ul"},"token id: It is the id for a token which is allocated when the token is minted."),(0,s.kt)("li",{parentName:"ul"},"Timestamp: Date time when the UTXO created/manipulated"),(0,s.kt)("li",{parentName:"ul"},"Protocol Version: Version of the UTXO data structure"),(0,s.kt)("li",{parentName:"ul"},"State: It is the state of a smart contract")),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-graphql"},"type ConsumedInputs {\n amount: Int\n from: Address\n protocolVersion: Int\n state: State\n timestamp: Timestamp\n tokenAddress: Address\n tokenId: Int\n type: String\n}\n")),(0,s.kt)("h3",{id:"fields"},"Fields"),(0,s.kt)("h4",{id:"code-style-fontweight-normal-consumedinputsbamountbcodeint-"},(0,s.kt)("a",{parentName:"h4",href:"#"},(0,s.kt)("code",{style:{fontWeight:"normal"}},"ConsumedInputs.",(0,s.kt)("b",null,"amount"))),(0,s.kt)(i,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/int"},(0,s.kt)("inlineCode",{parentName:"a"},"Int"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,s.kt)("blockquote",null),(0,s.kt)("h4",{id:"code-style-fontweight-normal-consumedinputsbfrombcodeaddress-"},(0,s.kt)("a",{parentName:"h4",href:"#"},(0,s.kt)("code",{style:{fontWeight:"normal"}},"ConsumedInputs.",(0,s.kt)("b",null,"from"))),(0,s.kt)(i,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/address"},(0,s.kt)("inlineCode",{parentName:"a"},"Address"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,s.kt)("blockquote",null),(0,s.kt)("h4",{id:"code-style-fontweight-normal-consumedinputsbprotocolversionbcodeint-"},(0,s.kt)("a",{parentName:"h4",href:"#"},(0,s.kt)("code",{style:{fontWeight:"normal"}},"ConsumedInputs.",(0,s.kt)("b",null,"protocolVersion"))),(0,s.kt)(i,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/int"},(0,s.kt)("inlineCode",{parentName:"a"},"Int"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,s.kt)("blockquote",null),(0,s.kt)("h4",{id:"code-style-fontweight-normal-consumedinputsbstatebcodestate-"},(0,s.kt)("a",{parentName:"h4",href:"#"},(0,s.kt)("code",{style:{fontWeight:"normal"}},"ConsumedInputs.",(0,s.kt)("b",null,"state"))),(0,s.kt)(i,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/state"},(0,s.kt)("inlineCode",{parentName:"a"},"State"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,s.kt)("blockquote",null),(0,s.kt)("h4",{id:"code-style-fontweight-normal-consumedinputsbtimestampbcodetimestamp-"},(0,s.kt)("a",{parentName:"h4",href:"#"},(0,s.kt)("code",{style:{fontWeight:"normal"}},"ConsumedInputs.",(0,s.kt)("b",null,"timestamp"))),(0,s.kt)(i,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/timestamp"},(0,s.kt)("inlineCode",{parentName:"a"},"Timestamp"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,s.kt)("blockquote",null),(0,s.kt)("h4",{id:"code-style-fontweight-normal-consumedinputsbtokenaddressbcodeaddress-"},(0,s.kt)("a",{parentName:"h4",href:"#"},(0,s.kt)("code",{style:{fontWeight:"normal"}},"ConsumedInputs.",(0,s.kt)("b",null,"tokenAddress"))),(0,s.kt)(i,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/address"},(0,s.kt)("inlineCode",{parentName:"a"},"Address"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,s.kt)("blockquote",null),(0,s.kt)("h4",{id:"code-style-fontweight-normal-consumedinputsbtokenidbcodeint-"},(0,s.kt)("a",{parentName:"h4",href:"#"},(0,s.kt)("code",{style:{fontWeight:"normal"}},"ConsumedInputs.",(0,s.kt)("b",null,"tokenId"))),(0,s.kt)(i,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/int"},(0,s.kt)("inlineCode",{parentName:"a"},"Int"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,s.kt)("blockquote",null),(0,s.kt)("h4",{id:"code-style-fontweight-normal-consumedinputsbtypebcodestring-"},(0,s.kt)("a",{parentName:"h4",href:"#"},(0,s.kt)("code",{style:{fontWeight:"normal"}},"ConsumedInputs.",(0,s.kt)("b",null,"type"))),(0,s.kt)(i,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/string"},(0,s.kt)("inlineCode",{parentName:"a"},"String"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,s.kt)("blockquote",null),(0,s.kt)("h3",{id:"member-of"},"Member of"),(0,s.kt)("p",null,(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/ledger-operations"},(0,s.kt)("inlineCode",{parentName:"a"},"LedgerOperations"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}f.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file diff --git a/assets/js/e98eede6.d968686d.js b/assets/js/e98eede6.71d24949.js similarity index 99% rename from assets/js/e98eede6.d968686d.js rename to assets/js/e98eede6.71d24949.js index 1012477a6..4bbc2564e 100644 --- a/assets/js/e98eede6.d968686d.js +++ b/assets/js/e98eede6.71d24949.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9185],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>m});var a=n(67294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function r(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var c=a.createContext({}),l=function(e){var t=a.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},p=function(e){var t=l(e.components);return a.createElement(c.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var n=e.components,i=e.mdxType,s=e.originalType,c=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),d=l(n),h=i,m=d["".concat(c,".").concat(h)]||d[h]||u[h]||s;return n?a.createElement(m,r(r({ref:t},p),{},{components:n})):a.createElement(m,r({ref:t},p))}));function m(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var s=n.length,r=new Array(s);r[0]=h;var o={};for(var c in t)hasOwnProperty.call(t,c)&&(o[c]=t[c]);o.originalType=e,o[d]="string"==typeof e?e:i,r[1]=o;for(var l=2;l{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>r,default:()=>u,frontMatter:()=>s,metadata:()=>o,toc:()=>l});var a=n(87462),i=(n(67294),n(3905));n(8209);const s={id:"dapps-communication",title:"Communication with DApps",sidebar_label:"Communication with DApps",sidebar_position:1},r=void 0,o={unversionedId:"participate/wallet/dapps-communication",id:"participate/wallet/dapps-communication",title:"Communication with DApps",description:"In the blockchain ecosystem, decentralized applications (dApps) are becoming increasingly popular. To enable reliable and secure communication between these applications and the blockchain, Archethic has developed a communication protocol with its Archethic Wallet application. This protocol allows dApps to delegate secure communication with the blockchain to the wallet and to protect private information within the wallet (seed, private keys) without exposing it to the dApps.",source:"@site/docs/participate/wallet/dapps-communication.md",sourceDirName:"participate/wallet",slug:"/participate/wallet/dapps-communication",permalink:"/participate/wallet/dapps-communication",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",sidebarPosition:1,frontMatter:{id:"dapps-communication",title:"Communication with DApps",sidebar_label:"Communication with DApps",sidebar_position:1},sidebar:"docs",previous:{title:"Archethic Wallet (aeWallet)",permalink:"/participate/wallet/"},next:{title:"Build",permalink:"/category/build"}},c={},l=[{value:"get_endpoint",id:"get_endpoint",level:2},{value:"Request",id:"request",level:3},{value:"Success Response",id:"success-response",level:3},{value:"refresh_current_account",id:"refresh_current_account",level:2},{value:"Request",id:"request-1",level:3},{value:"Success Response",id:"success-response-1",level:3},{value:"get_accounts",id:"get_accounts",level:2},{value:"Request",id:"request-2",level:3},{value:"Success Response",id:"success-response-2",level:3},{value:"send_transaction",id:"send_transaction",level:2},{value:"Request",id:"request-3",level:3},{value:"Success Response",id:"success-response-3",level:3},{value:"add_service",id:"add_service",level:2},{value:"Request",id:"request-4",level:3},{value:"Success Response",id:"success-response-4",level:3},{value:"remove_service",id:"remove_service",level:2},{value:"Request",id:"request-5",level:3},{value:"Success Response",id:"success-response-5",level:3},{value:"get_services_from_keychain",id:"get_services_from_keychain",level:2},{value:"Request",id:"request-6",level:3},{value:"Success Response",id:"success-response-6",level:3},{value:"keychain_derive_keypair",id:"keychain_derive_keypair",level:2},{value:"Request",id:"request-7",level:3},{value:"Success Response",id:"success-response-7",level:3},{value:"keychain_derive_address",id:"keychain_derive_address",level:2},{value:"Request",id:"request-8",level:3},{value:"Success Response",id:"success-response-8",level:3},{value:"get_current_account",id:"get_current_account",level:2},{value:"Request",id:"request-9",level:3},{value:"Success Response",id:"success-response-9",level:3},{value:"sign_transactions",id:"sign_transactions",level:2},{value:"Request",id:"request-10",level:3},{value:"Success Response",id:"success-response-10",level:3},{value:"sign_payloads",id:"sign_payloads",level:2},{value:"Request",id:"request-11",level:3},{value:"Success Response",id:"success-response-11",level:3}],p={toc:l},d="wrapper";function u(e){let{components:t,...s}=e;return(0,i.kt)(d,(0,a.Z)({},p,s,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"In the blockchain ecosystem, decentralized applications (dApps) are becoming increasingly popular. To enable reliable and secure communication between these applications and the blockchain, Archethic has developed a communication protocol with its Archethic Wallet application. This protocol allows dApps to delegate secure communication with the blockchain to the wallet and to protect private information within the wallet (seed, private keys) without exposing it to the dApps."),(0,i.kt)("h1",{id:"point-of-view-on-usage"},"Point of view on usage"),(0,i.kt)("p",null,"When a dApp wants to perform a transaction that requires the use of private keys, it must call on the user\u2019s wallet to protect this information and avoid unauthorized exposure. There are several ways to do this:"),(0,i.kt)("p",null,"The dApp can solicit the wallet in a \u201ccovert\u201d manner without requiring the user\u2019s intervention. For example, it can retrieve information about the current account or services available in the decentralized wallet."),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"1",src:n(53148).Z,width:"815",height:"158"})),(0,i.kt)("p",null,"The dApp can also listen to the wallet and adapt itself according to the actions performed in it. For example, a change in the current account in the wallet may result in a change in the current account in the dApp."),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"2",src:n(13886).Z,width:"1004",height:"295"})),(0,i.kt)("p",null,"Finally, the dApp can solicit the wallet and ask the user to confirm an action. For example, this could be the signing of a transaction."),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"3",src:n(61079).Z,width:"1262",height:"420"})),(0,i.kt)("h1",{id:"technical-point-of-view"},"Technical point of view"),(0,i.kt)("p",null,"In order not to limit the platforms, Archethic has implemented two protocols to allow an easy integration of its wallet with dApps:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"For Desktop and Web Client platforms, Archethic uses the Local RPC server protocol. A WebSocket server is provided by Archethic Wallet, using the JSON-RPC 2.0 protocol. DApp developers can use the Dart or JS coded communication libraries provided by Archethic to easily integrate this functionality into their dApp."),(0,i.kt)("li",{parentName:"ul"},"For Mobile platforms, Archethic uses DeepLinks via an HTTPS URL to enable communication between the dApp and the Archethic wallet.")),(0,i.kt)("p",null,"For the Dart and Flutter part, these protocols have been implemented within the \u201cArchethic Wallet Client\u201d (AWC) communication library, which therefore allows Dapps to communicate with the Archethic wallet through a unified interface."),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"4",src:n(88268).Z,width:"1321",height:"685"})),(0,i.kt)("p",null,"AWC supports several API methods, including signing and sending transactions to the Archethic blockchain, retrieving the wallet\u2019s endpoint URL, retrieving accounts available on the wallet, adding services to the keychain, and more."),(0,i.kt)("p",null,"Using AWC allows Dapps developers to focus on developing their application rather than managing communication with the wallet and blockchain. The solution is also cross-platform (macOS, iOS, Android, Web, Windows, Linux), which facilitates the interaction between users and the blockchain and avoids forcing developers to develop their Dapps on a specific platform."),(0,i.kt)("p",null,"It is worth noting that for the JS part, developers can find the interfaces directly in the \u201clibjs\u201d library of Archethic. This greatly facilitates the integration of the wallet with dApps written in JavaScript."),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"5",src:n(4389).Z,width:"1321",height:"684"})),(0,i.kt)("h1",{id:"available-commands"},"Available commands"),(0,i.kt)("p",null,"The wallet context related commands that do not require user confirmation in the wallet are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Endpoint retrieval,"),(0,i.kt)("li",{parentName:"ul"},"Recovery of user accounts,"),(0,i.kt)("li",{parentName:"ul"},"Recovery of the current account,"),(0,i.kt)("li",{parentName:"ul"},"Recovery of the services contained in the decentralized wallet,"),(0,i.kt)("li",{parentName:"ul"},"Derivation of a key pair for a given service and index and recovery of the public key,"),(0,i.kt)("li",{parentName:"ul"},"Deriving an address for a given service and index.")),(0,i.kt)("p",null,"The information that can be listened to is:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The change of balance or last address of the current account,"),(0,i.kt)("li",{parentName:"ul"},"The change of the current account.")),(0,i.kt)("p",null,"The commands related to the wallet context requiring the user\u2019s confirmation in the wallet are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Signing and sending a transaction to the blockchain,"),(0,i.kt)("li",{parentName:"ul"},"Signature of a list of transactions,"),(0,i.kt)("li",{parentName:"ul"},"Adding a service in the decentralized wallet.")),(0,i.kt)("h1",{id:"rpc-methods"},"RPC Methods"),(0,i.kt)("p",null,"There are two kinds of methods :"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"one time call"),(0,i.kt)("li",{parentName:"ul"},"subscriptions.")),(0,i.kt)("p",null,"Subscriptions won't be available on Deeplink channel because of technical limitations."),(0,i.kt)("h2",{id:"get_endpoint"},"get_endpoint"),(0,i.kt)("p",null,"Gets the endpoint URL used on AEWallet."),(0,i.kt)("h3",{id:"request"},"Request"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript"},"// no payload in request\n")),(0,i.kt)("h3",{id:"success-response"},"Success Response"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript"},'{\n "endpointUrl": String // Endpoint URL\n}\n')),(0,i.kt)("h2",{id:"refresh_current_account"},"refresh_current_account"),(0,i.kt)("p",null,"Request the wallet to refresh current account info"),(0,i.kt)("h3",{id:"request-1"},"Request"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript"},"// no payload in request\n")),(0,i.kt)("h3",{id:"success-response-1"},"Success Response"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript"},"// no response\n")),(0,i.kt)("h2",{id:"get_accounts"},"get_accounts"),(0,i.kt)("p",null,"Gets the accounts available on AEWallet."),(0,i.kt)("h3",{id:"request-2"},"Request"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript"},"// No payload\n")),(0,i.kt)("h3",{id:"success-response-2"},"Success Response"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript"},'{\n "accounts": [\n {\n "shortName": String, // Account name\n "serviceName": String // Service name\n "genesisAddress": String, // Genesis address\n }\n ]\n}\n')),(0,i.kt)("h2",{id:"send_transaction"},"send_transaction"),(0,i.kt)("p",null,"Signs and sends a transaction."),(0,i.kt)("h3",{id:"request-3"},"Request"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript"},'{\n "type": String, // Type of transaction\n "version": Number, // Version of the transaction (used for backward compatiblity)\n "data": Object, // Transaction data zone (identity, keychain, smart contract, etc.)\n "generateEncryptedSeedSC": bool // (Optional) : if true, add a encrypted (by storage nonce public key) seed in the transaction\'s ownerships to allow nodes to manage smart contract\n}\n')),(0,i.kt)("h3",{id:"success-response-3"},"Success Response"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript"},'{\n "transactionAddress": String, // Sent transaction address.\n "nbConfirmations": Number, // Number of received confirmations.\n "maxConfirmations": Number, // Max number of confirmations.\n}\n')),(0,i.kt)("h2",{id:"add_service"},"add_service"),(0,i.kt)("p",null,"Add a service in the keychain"),(0,i.kt)("h3",{id:"request-4"},"Request"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript"},'{\n "name": String, // Name of the service\n}\n')),(0,i.kt)("h3",{id:"success-response-4"},"Success Response"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript"},'{\n "transactionAddress": String, // Transaction address.\n "nbConfirmations": Number, // Number of received confirmations.\n "maxConfirmations": Number, // Max number of confirmations.\n}\n')),(0,i.kt)("h2",{id:"remove_service"},"remove_service"),(0,i.kt)("p",null,"Remove a service from the keychain"),(0,i.kt)("h3",{id:"request-5"},"Request"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript"},'{\n "name": String, // Name of the service\n}\n')),(0,i.kt)("h3",{id:"success-response-5"},"Success Response"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript"},'{\n "transactionAddress": String, // Transaction address.\n "nbConfirmations": Number, // Number of received confirmations.\n "maxConfirmations": Number, // Max number of confirmations.\n}\n')),(0,i.kt)("h2",{id:"get_services_from_keychain"},"get_services_from_keychain"),(0,i.kt)("p",null,"Gets keychain's services from the keychain connected to AEWallet."),(0,i.kt)("h3",{id:"request-6"},"Request"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript"},"// No payload\n")),(0,i.kt)("h3",{id:"success-response-6"},"Success Response"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript"},'{\n "services": [\n {\n "derivationPath": String, // Derivation path\n "curve": String, // Curve\n "hashAlgo": String // Hash Algo\n }\n ]\n}\n')),(0,i.kt)("h2",{id:"keychain_derive_keypair"},"keychain_derive_keypair"),(0,i.kt)("p",null,"Derive a keypair for the given service at the index given and get the public key"),(0,i.kt)("h3",{id:"request-7"},"Request"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript"},'{\n "serviceName": String, // Service name to identify the derivation path to use\n "index": Number, // Chain index to derive (optional - default to 0)\n "pathSuffix": String // Additional information to add to a service derivation path (optional - default to empty)\n}\n')),(0,i.kt)("h3",{id:"success-response-7"},"Success Response"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript"},'{\n "publicKey": String // Public key of the service at the index given\n}\n')),(0,i.kt)("h2",{id:"keychain_derive_address"},"keychain_derive_address"),(0,i.kt)("p",null,"Derive an address for the given service at the index given"),(0,i.kt)("h3",{id:"request-8"},"Request"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript"},'{\n "serviceName": String, // Service name to identify the derivation path to use\n "index": Number, // Chain index to derive (optional - default to 0)\n "pathSuffix": String // Additional information to add to a service derivation path (optional - default to empty)\n}\n')),(0,i.kt)("h3",{id:"success-response-8"},"Success Response"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript"},'{\n "address": String // Address derived\n}\n')),(0,i.kt)("h2",{id:"get_current_account"},"get_current_account"),(0,i.kt)("p",null,"Gets the current account selected on AEWallet."),(0,i.kt)("h3",{id:"request-9"},"Request"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript"},"// No payload\n")),(0,i.kt)("h3",{id:"success-response-9"},"Success Response"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript"},'{\n "shortName": String, // Account name\n "serviceName": String // Service name\n "genesisAddress": String, // Genesis address\n}\n')),(0,i.kt)("h2",{id:"sign_transactions"},"sign_transactions"),(0,i.kt)("p",null,"Signs many transactions."),(0,i.kt)("h3",{id:"request-10"},"Request"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript"},'{\n "serviceName": String, // Service name to use to sign the tx\n "pathSuffix": String, // Additional information to add to a service derivation path (optional)\n "description": String { // Readable description to explain the purpose of signing transactions (locale + description)\n "en": "Readable description in English",\n "fr": "Description lisible en fran\xe7ais",\n },\n "transactions": [\n {\n "type": String, // Type of transaction\n "version": Number, // Version of the transaction (used for backward compatiblity)\n "data": Object // Transaction data zone (identity, keychain, smart contract, etc.)\n }\n ]\n}\n')),(0,i.kt)("h3",{id:"success-response-10"},"Success Response"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript"},'{\n "signedTxs": [\n {\n "address": String, // Address: hash of the new generated public key for the given transaction\n "previousPublicKey": String, // Previous generated public key matching the previous signature\n "previousSignature": String, // Signature from the previous public key\n "originSignature": String // Signature from the device which originated the transaction (used in the Proof of work)\n }\n ]\n}\n')),(0,i.kt)("h2",{id:"sign_payloads"},"sign_payloads"),(0,i.kt)("p",null,"Signs many payloads."),(0,i.kt)("h3",{id:"request-11"},"Request"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript"},'{\n "serviceName": String, // Service name to use to sign the payload\n "pathSuffix": String, // Additional information to add to a service derivation path (optional)\n "description": String { // Readable description to explain the purpose of signing payloads (locale + description)\n "en": "Readable description in English",\n "fr": "Description lisible en fran\xe7ais",\n },\n "payloads": [\n {\n "payload": String, // Payload to sign\n "isHexa": boolean // Precise if the payload if in hexadecimal format\n }\n ]\n}\n')),(0,i.kt)("h3",{id:"success-response-11"},"Success Response"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript"},'{\n "signedPayloads": [\n {\n "signedPayload": String, // Signed payload\n }\n ]\n}\n')),(0,i.kt)("h1",{id:"in-conclusion"},"In conclusion"),(0,i.kt)("p",null,"The communication protocol developed by Archethic allows an easy and secure interaction between dApps and the blockchain by delegating the communication to the user\u2019s wallet. The integration methods proposed are simple and efficient, especially thanks to the \u201cArchethic Wallet Client\u201d (AWC) communication library which facilitates the use of the API. Developers can focus on developing their application without having to manage communication with the wallet and the blockchain. This cross-platform solution is therefore a wise choice for developers who want to write dApps that are compatible with different platforms. Finally, the availability of interfaces in the \u201clibjs\u201d library also facilitates integration for developers of applications written in JavaScript."),(0,i.kt)("p",null,"Find more information at the following links."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"AEIP 4 / Specifications: ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/archethic-foundation/aeip/blob/main/AEIP-4.md"},"https://github.com/archethic-foundation/aeip/blob/main/AEIP-4.md")),(0,i.kt)("li",{parentName:"ul"},"AWC Dart lib: ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/archethic-foundation/archethic-wallet-client-dart"},"https://github.com/archethic-foundation/archethic-wallet-client-dart")),(0,i.kt)("li",{parentName:"ul"},"AWC JS lib (into archethic JS lib): ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/archethic-foundation/libjs"},"https://github.com/archethic-foundation/libjs"))))}u.isMDXComponent=!0},53148:(e,t,n)=>{n.d(t,{Z:()=>a});const a="data:image/webp;base64,UklGRhwXAABXRUJQVlA4WAoAAAAIAAAALgMAnQAAVlA4IDwWAABQdwCdASovA54APm0ylUkkIqGhIZC7SIANiWlu57MuFrbcRNq5pZHm/+zeE/+F/wv5DedP4j8v/ZfyC/JT8Wrh/zf9L/wPQv+Y/Yn79/Yv3M+Nn3XeCvwB/ivtm+QL8e/k39j/LT+68VvrvmEeo/zj/Nf3r95/818q3xv+79EPq9/nfcA/kn9H/yP5mfv/76fhF/af9F7AH8v/qn+g/xH5JfHj/2f5j8p/db+hf4z/nf5/4Cv5N/U/9r/f/8r+0nzmewb93PZe/cMdOs2kPrMLhxROXvHDkDVVmgzr7WcOKJy1cTHpq54JBmEF2pDdBru9hTI473fMiYA38fmMZIP5z0sbjh2dx7uEHgiivIrqUffhAZtbVfwgM2tqv4QHIdE2Es48Q473d8I7/UGW/j8ysoyRx3u+ZEvvrhkIQe/j71zNxVaC9NxoJlO09uO60sx9eI7yGLReT3WoyRx3u7i+xMjjvd8yJgDfx+ZWT8GU5l/upXT9c2C+5Ley5xBTkpXzI2nsyhzkNcvkKZ8jequCexdsYiYA38eqjp4Q6PdGkY+0+XPq1HNGtFdf1ii5pveYbxEJZF5Xk3pEw910fMKqxyF2yEH1PDgPCG1mrj1k2RkHrE3zgnnFugzynJ84Fp1FTipAJe9WiZYRQBDmiNiciLjRQl8fTJOVBdr9KcbK4Z6ACn826g8bGipGiHtQj8oBzQK78jAZtaTk5uBEILX0BTiejhtprytxwPlFMt34bHZ4vby0x2ZvWi8B7Qy9BS6csfZtS6NRx4nw3/x+ZWUI3uRXL5kS+4wG1RuYdAOTi2FNnIooOimEX4hzKr8xbIbDtodrliwrTN2wGhG6bObBYne/iNVVA1WyMNbB54LxErWZgjv/8ewcWHenap9kgHpyUYHp7dUlxIY6HksPDJoJyC5+YhazJi/G58ikB+eOBsuLyWdlJ96wPDoJ3qQCH2O8RPpFNf7Creu4Oy9gF8X+ZwmU3CpG4Ua0YecFjnWFIw69SMuQiS004AnAOgqTBH4G/4l2GkF0yt9+24caJYj02BaBbbwq7erTTeaJPqIV1eglHnkLniKZExk/8N231HN7sL2FMjjmiD0/WiasDfx+ZWWcUcd7vmJkaRKdQKZHHd8iZVkwbVGiVB3Z3bOBRBIELJo7SFksKawSPzKyjJHHe75kTAG/hylZqWoyRx3u7pLVdp7Qtsh4i3FLr8R1MeKX8PEy1wFEwBv4/MrKMkcd7vmQysVykuKGdN5Q4U2gzYyC21F0XvXkXIu800U1ukHgWAAA/vhdg/m8/mLYO03jNpSueHiiOQIggnsvHGXPLsogeY9WhcsaGqrgXOAKeyBdnhynUN/ijUQlXXgwASOX049LJqTtsJHNtkvBVzMark35Su3J/0ZrGHtQVrFenXxbOp4DA73mEG9dhUBO5xwCcKFT2GV6le4LYlgxD0zuJ98/ZKCoO1n8FO9OVUXbpdYRtvJH4AGtrTf743ZyfgLj6+kg58PV8Zk7WoKUasC2RTxB+swR16PCDZOtKlKRxSXC5y7jXsFwjXtMWoU5guiGyCvAekbNpM0+WvcJLzCGu1Ak7FCBGS/wn0JmSsg6TWPLzDHCJEk7hfnQZ3hN8x1vnQTBQ3uT0+NnolBhx9A4/9M7JCnj1yr8hUtPMCdcSaGPZnctugHhDFO4J5EYCXWQ3YGfr/i5MYyoiunPfIDhAP1Om30NrB2p9vWBerJI4Z9gskve9WggNCfg9+eJZ1hhivfrgKaOolQe/HmOBHUkGFYGLfxaIOx+mHegohR2dRVcFnGYvtSq0Hn34PfcmUkwILSUNY02bCW6Ujr/QbHpep+yoseo7evzPKUbDMaqfpYXW5mn03QX/KdJ3h7dunHSNuqgJn+xXCmI6D2+97zd5AoW8s2XyAHTslfOy3lP+33PJisTNBFsyClhAoDaYTbI3T2CtCMYvQ2+qqTunIKfkJUsrZBq6ozoal/OuWF1O5ZapeLBxSUrlV9uwF0efcvTd9LTGSR35Lmnv/1oLeEPZorP4+FqI1Xz4SD5uPmkEux+VxzmPIWce7X8oFTygCmf9AlElEUzF1GxPK9GdfJV+eAPXNQ/v0Nlg8iP5jKhT/T/pSntRTXnwYUYqeCabj6SEQQLad6xa1dvIE11m1fspGrM2cd3QpYy6M9jRrnveGAa7U/7LNs1f6AQqPyHLRKh6m/c1/uxtPp/Ltv7ZzW4bR5kTz/AtUZetGYj1Muq/JM9KKJd+VY/v7Hz3On3kEXx7f8521HSdYZOc7/aSP+42TZ+bX4gZXYmxcb+W7yMPugDYlzIZoFgHsZEw2R1tZ0WkzSaN8eP7PaR+EyStWYIBsDeSdNCbJANGsr4Sls3FQEg52pSJfb5Kf/RsBAULqZRQQAFjgblpaEgpS3KUVGoOmysoih9af3+AOplCNpS5Dw5zxtgGd3aCIlNJ4dWOAVuVNGS7JouDcsMP33BkKARdcXejTw8C+etJMmbFEL2q1CpKRdt8jHrqSDBMLDtfzMj6lIw3IIKhEqXVrrLol9fGhudb3co8zj3PcRTSm4YlpeMcg7Ttyb/0NLWyMC3qkV3LRi36Zj6LVW1hObnZai/3KMcbfmFhp+J9SIB657dKOivZjJoYWEDclHLvSAT5ZrKcJ1PzwjifELiojZoJLJ+iVej+uaDBsWD3hqkeLWL8p46tLQfwU17ZXlPVpvmzC1tS8zV+vYo5pwDps/oqA7KszY9OMwmkWjsSh+kY+4zU4yCFIwLRq8OI6O5WrxxL59hWUa09nglJtu9aCGda13iSBCSPLT+tjP/0t227UOQ+y9hz3v0KyzQGDwJ6q2RIIsnmd+rvx6nVXgjg4ovfCH/MGCnItWJpDRr4hIGtyP0aWBNrTPauvJsNvpYWmFTnABFrhNHt/ep0VguNdp/+wOKfVqNQEo97z4P2BJrygrn8cKzepNbGbbFaPRtCS65zjMIWiFjZBjsG4w0HspZ/j/y68t8b3QbUO3OqP6m/Xju93r54l/58LWp+D6ssn3Gx5mkcH7YXBRvPwm643dT+0E5fazTRFS3K4CW052HBWl5Y3nEZqdEOv3z4wPRvERoYhZu0coWlsfzS3fxvBj+hKQGG9OxtawE9tV4ZUKfK/DVmFigoPojOXv37/lst/ZokufD8ZcgG/yqhtPNmyEFH6OTnCTjC3ryCry1VWiz9AYKuu72qaEuKbZHcMvMjCvLDqlaLxP71uEgq/rbOCk5MV4PWH9/PAyxit+H++H9V1dvwc3U9N1flz7TQ4v/cyOa0GF0KoQvneQzGKhzysgn/jzUq/mUZhMoPkFy3qaNOXUNdyVvmkd2i0Ayb0KPHT38edNhw63FzePlUndQ1cKgAsyrO3leSdyF8Mskc9U2sx6P//5Qtd7cKS3F8mCuvspq2ozBgtSsWgvAXND4/Ed/oZHM92SS2f3gL95HuTx8mnOXx125vETwbFWJ7YhvYOdoQRiCiiBUyeCrRYX1Mkog/UXyhM6IPPv13C9nYwdVwmBH4KkYmZBKfe6OEdvUmkOGYJXPobXTbSf27n4ijMmCK42qUBK262gyaEtcdFeafEkIwqLMqh+2zu7tuCZSSKtdDe6f3O5dDDcuub2XhvZmPfDIlXBMMBBZ1AfHHsXL9/kdHPHCrRpE/ppb74oNOzDUqz05Cum9ZHGRD/ZIdM8RUus8jJ5x2nil08pjdF5yHB9IRGSf3eDTtOtEZgOpHbHGs+mtjiGjVK2K0+lZsb9EdD/0DY/fdnBk9EbyL4ynCoAIXkDQGitB91DxsPfsMIHBPM3M93+hR0sW3vYkyQhAskSkA+f7J26WpA1um7pOmk3S+l1E/zNDdaomjvFb5gIEugVpWvd1hVjch/O1yAZb1Lbu6j4CLvAk8FoNY4zgdNReX7BUZz5x7rv1N2VT4h6udRjtlR0UIWiyuefdDG0tKERk1Oc6UDaXqy2RXvrM+1a+QW3X3lGTNhJPmBbjppcOcYFrYg76TUqcmswRnkJO/3dEWmTHmZ+mj8QkD6Ynk12bFGYDmm4zo4RvC3PdnvOB+2AulTWPeKTpin1zBhgcQLmtcnHjdXtNjvc1nsi8MARwEd0SKhffEP9aVhaS063uZ29cwJuWJwAwic+mbp+8goNmQBTm9qscxTUzIxp3dhNoYe2CBnQ4rxo357oBdqdhyky8Bl/0HjJgi7AoEy7/EodlOsBDUZaa3k2Bk4eopn078qGKMx/fgv4a/PgHSaJmqtM3iwt3AaN/B2XMnltopoa8zeMeIu63k4jBAPh6+/hQ2yuaXc4f75dJkB7Gkts9Y1s5LNzf7dc18xD6aefse9YlRGt8Wt4ezhsgCRTpMXr6phncT3RAepd6wEHxeYo7KmKvyfv9VX2g53KqoFfs9gPZEI2xkHgIMXYr4Y2AByV8V/XQbKsMZQk7ukYTawpwGxeQato8hN39bQ2h3w/sIc1NSHKqyKZ5LGHRKcKCXY+kaL90SOEPyRM6WI4A9ni65k/8ZFf87WPyKgrNiIOc/wMFfYsnMbupIgcyizLqm1i/60xKkP7AZ6MlIzQ8jDrRZc0zh5GsgawqycGjkOZmjCB60Ycqy/CsK9R6LxoRZX0e46V/P2c1lyYQeKLMnrz7mFzkgk48z4Awn5odqrHGB/aEYuGhm3exfP1rPVbtdrnntnqHFxIMCZP0sMawpdWUi5o8gByndt1v2nqGaeKAFlrTAcZABjcLlN9pKL+WL/BcnTQAQA/CkmlSwH5nmp1IK1ZYVK/H8uhW/DjMuMFqQ6VwZm2uBy6eBR/OFq6pjdAuiwWdDePSYIDNdbb0dsJRWsVUsRJf7e2tDnhhGmLYfqpRYQT1LSao3YWwdYhxIetaGOnpZeX/95F50s0Ki3yCmwBdlXwAMx1rF2T37vZ0k7C8rz5SOefqPG9qjyEfA3Ss3X40pueeKnv5n0vM8Yz/aLnFX9HDLRL0xmxS8Hh3TmUyDLedlL/BU4b+y07bkQuc6MZotRauyrh0mojzSeGQjSHHvi7TRCeAKLhIoiw6xnEusX7B7yVVjWcxnDtNPG/yo7ERnHEIKE9NxrkPylIwIy3Ftni9ji/xRPTt1ozBvPg5CYW/M10nWj8y2K8PE9Su0tX4pA6t2TI+9p3bNjeQcofie39WIt3rU62AE5tHhi1NStrlqyYumd/eIcFwCuEqqHCj7tC4dPVRIUSYg5lthCskwPJgmsoVGGXSvev4pMNE/NeJ5M4Wq7m85JijTa3EeSMzNILg/v15d3fDPtYYAZmHEWfdJ8Rq561HfS1e28HnFSNpV5wsq8FqqnsxIlHlG1mNj+j/mKeQsaMBSGcivn3SRO6UeJarQQ0Letgfg6wJioaZVYfajwU6uL5iasBJanexrlNwyHZQx497ZcSJN7DTbvDkf9ovvRWqyyvwlZvfj0B2hR+IM0kA/OvJF/IcL0CMone/0eIf6a29hhln/3gptOSKlhiVQWUJ+q99vaTrGQvv07XWvJcY7je27Cddv1//3+db8Tgc337wuLRPsw25Ql5uQmor4tZ3i8dRdLNpmSSN2VUhymBz/ALLAPKJuz5mT1DAlWxPTi2WPJjKEOpbUHVZ6+cb0pXTd8HBaNFc7YPiD1QxmMX7qQqbXwL099DxcNxXD9GwViIshy1vzKOUuonZgCJ2sAWZiaRZUAyOwb3WjsLH/ETVN0MofjDJym5qBdUzuLgJjRM846zFcrPfq3/O/8z3rZbdp+T+XOzirMHnMr1PHkNUmQhfpDBiwH89cdrd+sCbhzvpOokH3QB+5iNoAXSqNFKb9TPcGTn85eZngzToZB1gxk5xJ3/ip6yby/hg/1CBwm8pzclhqHdegjAOzJNBMHabspBNr9kUh9alRTTjihh0xUzihpMh1cd8FJIqsDbWrzuRIg7zL02NyAQRFrwmj4nIY8bd3NC6iNNV6lfGaf7y1ic4caVTjQu1E6O2TDVUL7/DQq1pyilULk5o2tr2BQY5NFvf55viOinfh15FHEOkyQ2Ydu3ofpmRfzMBf7nKl5T+Y2No/uHNz7YokGTuf8NXi5NomVUogR4DItY4luy13jNtksNGDaSFXGdG+eS6Qb62xtv7iq0rjo+FEvT+2U0ing/u7796OGbzMHpGrXJyTm3leyUucpA00nmlJquTx4/RsmC5Bb2gwWfr+f4hPDq/JqceNUcpu0/3V6GGZC1vtpDFvMjNoNuEBASzrZYDUhMOd4OXEqMYRZo7FTpxOdAEU442spUvcCtifiijDGq/lKXdWjf1my6VnMlXywVMTKsvQeh9Ymb7Vsk8od3Wi/1spmRIxUyFeqq53zDinuKzP7rgQ/GF7gdwxAyXVWMoH/masCujUqH6cFYL9Rg4IeMgwBwmIxUpjboAdQcnPmSmoEGjcS488U5PyJrNgraIPmqFblPmtVBbp0VeLPLy6YOLTMg2bVXW7Guzs8eoJvTuZDUAR7up1j6O90/YdCs01Jqd1vtKoebkz4PN8n7TrF4JZB3R6x+ZWSQz6n8NECCXiyf+fHNbLwmn2uc4Omy5Qfo5DEfUqvjL4EQiGhHvkfsfGv20xRQ3WaTAchJK50hf4FXUviVyYg+79dQgbx22TVnv7kLktSULFfXYzavUtizpGQaNM2h7PX70WnFhGOFt5HQMVI0dERWcbvU9FgmZv08uKAAjTT63ySTZ4NeJBYQC+jXvkyE+F7Y+E3hSs085PGYA+/LQXqAtPUgNh10VBRXHIb1YsCNyzxEWJ87NH1juWH/6Bh0e91AEjfyP1aSnugjMpEDFvAZ+oUVTK//1VCth0i8UZBtCoEUzMqLBYAtHF3vr2PIf8/+Cest6Zp3JFIJMiZ+UNMt3AJrcUWqeA9mV14mvTK7vAjpQs7Nu2yrgCvvGDXCtYvAk2tNzRDdCmrlJL4N3RUAaYsw2MYrDXLpKdOjssWopI7yc7Uoi+TGstJmLkAgTh11VNhyR+hkF8mP2hJPEblEWcXyiQVPU6z34oz7inOQhSzcPaAhlex3gJZWrlorlRfXrUQK6aI5k+lcAAUEdtRxefYCDhvC/gUYFp04k1LToAQoZuE/VJSVz6gLIxLq/VN5PfMbA+KyMLq4get6B9o//zGkn/AU4F10I9nkiGo4fmmM61ZT0WL3S6GA2ZLKK688wdfKvc/iuBau4WHQq2WzaBApOx5eCYwuRUwwW1O+N5rIKDymflv8QOPojX6QPR8Iepof7hTcirYmenQ5UC+4Y0z/XBCf6goOkxHNRTN7OeViTtRN2fgrQUTx2fHn8Oq+oe37O66zhDQYVW6oWJwxpvFEOA+vGWxnB3IqZRIYuSL4+n8D3DS7A9c+qii0HkDtZ18G0LmTPzS/yD4AZJNhY7W69WTdC7g8sf8JG05ZCQAIdDfctu4E/9TsXvA0cvi20qT1KyjtuuiGAHO2697jni/PkY/c6XMTYaNdIM3V7JOLbCY61Gvx9uKteHFqJZuvBqv+lo2RyUYLRujwnYABoU62w9+uXHJSejenONHe1nHK7v1/ycY4xIQKrcUg6xzUzMV4DgtaSoazm5sVxEC4HdZmdZXoPLraKsGatvWPd580t/jS2flQwJgAARVhJRroAAABFeGlmAABJSSoACAAAAAYAEgEDAAEAAAABAAAAGgEFAAEAAABWAAAAGwEFAAEAAABeAAAAKAEDAAEAAAACAAAAEwIDAAEAAAABAAAAaYcEAAEAAABmAAAAAAAAAEgAAAABAAAASAAAAAEAAAAGAACQBwAEAAAAMDIxMAGRBwAEAAAAAQIDAACgBwAEAAAAMDEwMAGgAwABAAAA//8AAAKgBAABAAAALwMAAAOgBAABAAAAngAAAAAAAAA="},13886:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/2-5d6085ceb76c0bd0ffdb9a438a83d08d.webp"},61079:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/3-3258cf4b259426fbb84541316eca5d55.webp"},88268:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/4-2fb8682543e15e738aacb6684b57b221.webp"},4389:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/5-997d8657ade91f1c2a419d5187b3de61.webp"},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9185],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>m});var a=n(67294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function r(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var c=a.createContext({}),l=function(e){var t=a.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},p=function(e){var t=l(e.components);return a.createElement(c.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var n=e.components,i=e.mdxType,s=e.originalType,c=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),d=l(n),h=i,m=d["".concat(c,".").concat(h)]||d[h]||u[h]||s;return n?a.createElement(m,r(r({ref:t},p),{},{components:n})):a.createElement(m,r({ref:t},p))}));function m(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var s=n.length,r=new Array(s);r[0]=h;var o={};for(var c in t)hasOwnProperty.call(t,c)&&(o[c]=t[c]);o.originalType=e,o[d]="string"==typeof e?e:i,r[1]=o;for(var l=2;l{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>r,default:()=>u,frontMatter:()=>s,metadata:()=>o,toc:()=>l});var a=n(87462),i=(n(67294),n(3905));n(8209);const s={id:"dapps-communication",title:"Communication with DApps",sidebar_label:"Communication with DApps",sidebar_position:1},r=void 0,o={unversionedId:"participate/wallet/dapps-communication",id:"participate/wallet/dapps-communication",title:"Communication with DApps",description:"In the blockchain ecosystem, decentralized applications (dApps) are becoming increasingly popular. To enable reliable and secure communication between these applications and the blockchain, Archethic has developed a communication protocol with its Archethic Wallet application. This protocol allows dApps to delegate secure communication with the blockchain to the wallet and to protect private information within the wallet (seed, private keys) without exposing it to the dApps.",source:"@site/docs/participate/wallet/dapps-communication.md",sourceDirName:"participate/wallet",slug:"/participate/wallet/dapps-communication",permalink:"/participate/wallet/dapps-communication",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",sidebarPosition:1,frontMatter:{id:"dapps-communication",title:"Communication with DApps",sidebar_label:"Communication with DApps",sidebar_position:1},sidebar:"docs",previous:{title:"Archethic Wallet (aeWallet)",permalink:"/participate/wallet/"},next:{title:"Build",permalink:"/category/build"}},c={},l=[{value:"get_endpoint",id:"get_endpoint",level:2},{value:"Request",id:"request",level:3},{value:"Success Response",id:"success-response",level:3},{value:"refresh_current_account",id:"refresh_current_account",level:2},{value:"Request",id:"request-1",level:3},{value:"Success Response",id:"success-response-1",level:3},{value:"get_accounts",id:"get_accounts",level:2},{value:"Request",id:"request-2",level:3},{value:"Success Response",id:"success-response-2",level:3},{value:"send_transaction",id:"send_transaction",level:2},{value:"Request",id:"request-3",level:3},{value:"Success Response",id:"success-response-3",level:3},{value:"add_service",id:"add_service",level:2},{value:"Request",id:"request-4",level:3},{value:"Success Response",id:"success-response-4",level:3},{value:"remove_service",id:"remove_service",level:2},{value:"Request",id:"request-5",level:3},{value:"Success Response",id:"success-response-5",level:3},{value:"get_services_from_keychain",id:"get_services_from_keychain",level:2},{value:"Request",id:"request-6",level:3},{value:"Success Response",id:"success-response-6",level:3},{value:"keychain_derive_keypair",id:"keychain_derive_keypair",level:2},{value:"Request",id:"request-7",level:3},{value:"Success Response",id:"success-response-7",level:3},{value:"keychain_derive_address",id:"keychain_derive_address",level:2},{value:"Request",id:"request-8",level:3},{value:"Success Response",id:"success-response-8",level:3},{value:"get_current_account",id:"get_current_account",level:2},{value:"Request",id:"request-9",level:3},{value:"Success Response",id:"success-response-9",level:3},{value:"sign_transactions",id:"sign_transactions",level:2},{value:"Request",id:"request-10",level:3},{value:"Success Response",id:"success-response-10",level:3},{value:"sign_payloads",id:"sign_payloads",level:2},{value:"Request",id:"request-11",level:3},{value:"Success Response",id:"success-response-11",level:3}],p={toc:l},d="wrapper";function u(e){let{components:t,...s}=e;return(0,i.kt)(d,(0,a.Z)({},p,s,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"In the blockchain ecosystem, decentralized applications (dApps) are becoming increasingly popular. To enable reliable and secure communication between these applications and the blockchain, Archethic has developed a communication protocol with its Archethic Wallet application. This protocol allows dApps to delegate secure communication with the blockchain to the wallet and to protect private information within the wallet (seed, private keys) without exposing it to the dApps."),(0,i.kt)("h1",{id:"point-of-view-on-usage"},"Point of view on usage"),(0,i.kt)("p",null,"When a dApp wants to perform a transaction that requires the use of private keys, it must call on the user\u2019s wallet to protect this information and avoid unauthorized exposure. There are several ways to do this:"),(0,i.kt)("p",null,"The dApp can solicit the wallet in a \u201ccovert\u201d manner without requiring the user\u2019s intervention. For example, it can retrieve information about the current account or services available in the decentralized wallet."),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"1",src:n(53148).Z,width:"815",height:"158"})),(0,i.kt)("p",null,"The dApp can also listen to the wallet and adapt itself according to the actions performed in it. For example, a change in the current account in the wallet may result in a change in the current account in the dApp."),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"2",src:n(13886).Z,width:"1004",height:"295"})),(0,i.kt)("p",null,"Finally, the dApp can solicit the wallet and ask the user to confirm an action. For example, this could be the signing of a transaction."),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"3",src:n(61079).Z,width:"1262",height:"420"})),(0,i.kt)("h1",{id:"technical-point-of-view"},"Technical point of view"),(0,i.kt)("p",null,"In order not to limit the platforms, Archethic has implemented two protocols to allow an easy integration of its wallet with dApps:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"For Desktop and Web Client platforms, Archethic uses the Local RPC server protocol. A WebSocket server is provided by Archethic Wallet, using the JSON-RPC 2.0 protocol. DApp developers can use the Dart or JS coded communication libraries provided by Archethic to easily integrate this functionality into their dApp."),(0,i.kt)("li",{parentName:"ul"},"For Mobile platforms, Archethic uses DeepLinks via an HTTPS URL to enable communication between the dApp and the Archethic wallet.")),(0,i.kt)("p",null,"For the Dart and Flutter part, these protocols have been implemented within the \u201cArchethic Wallet Client\u201d (AWC) communication library, which therefore allows Dapps to communicate with the Archethic wallet through a unified interface."),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"4",src:n(88268).Z,width:"1321",height:"685"})),(0,i.kt)("p",null,"AWC supports several API methods, including signing and sending transactions to the Archethic blockchain, retrieving the wallet\u2019s endpoint URL, retrieving accounts available on the wallet, adding services to the keychain, and more."),(0,i.kt)("p",null,"Using AWC allows Dapps developers to focus on developing their application rather than managing communication with the wallet and blockchain. The solution is also cross-platform (macOS, iOS, Android, Web, Windows, Linux), which facilitates the interaction between users and the blockchain and avoids forcing developers to develop their Dapps on a specific platform."),(0,i.kt)("p",null,"It is worth noting that for the JS part, developers can find the interfaces directly in the \u201clibjs\u201d library of Archethic. This greatly facilitates the integration of the wallet with dApps written in JavaScript."),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"5",src:n(4389).Z,width:"1321",height:"684"})),(0,i.kt)("h1",{id:"available-commands"},"Available commands"),(0,i.kt)("p",null,"The wallet context related commands that do not require user confirmation in the wallet are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Endpoint retrieval,"),(0,i.kt)("li",{parentName:"ul"},"Recovery of user accounts,"),(0,i.kt)("li",{parentName:"ul"},"Recovery of the current account,"),(0,i.kt)("li",{parentName:"ul"},"Recovery of the services contained in the decentralized wallet,"),(0,i.kt)("li",{parentName:"ul"},"Derivation of a key pair for a given service and index and recovery of the public key,"),(0,i.kt)("li",{parentName:"ul"},"Deriving an address for a given service and index.")),(0,i.kt)("p",null,"The information that can be listened to is:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The change of balance or last address of the current account,"),(0,i.kt)("li",{parentName:"ul"},"The change of the current account.")),(0,i.kt)("p",null,"The commands related to the wallet context requiring the user\u2019s confirmation in the wallet are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Signing and sending a transaction to the blockchain,"),(0,i.kt)("li",{parentName:"ul"},"Signature of a list of transactions,"),(0,i.kt)("li",{parentName:"ul"},"Adding a service in the decentralized wallet.")),(0,i.kt)("h1",{id:"rpc-methods"},"RPC Methods"),(0,i.kt)("p",null,"There are two kinds of methods :"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"one time call"),(0,i.kt)("li",{parentName:"ul"},"subscriptions.")),(0,i.kt)("p",null,"Subscriptions won't be available on Deeplink channel because of technical limitations."),(0,i.kt)("h2",{id:"get_endpoint"},"get_endpoint"),(0,i.kt)("p",null,"Gets the endpoint URL used on AEWallet."),(0,i.kt)("h3",{id:"request"},"Request"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript"},"// no payload in request\n")),(0,i.kt)("h3",{id:"success-response"},"Success Response"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript"},'{\n "endpointUrl": String // Endpoint URL\n}\n')),(0,i.kt)("h2",{id:"refresh_current_account"},"refresh_current_account"),(0,i.kt)("p",null,"Request the wallet to refresh current account info"),(0,i.kt)("h3",{id:"request-1"},"Request"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript"},"// no payload in request\n")),(0,i.kt)("h3",{id:"success-response-1"},"Success Response"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript"},"// no response\n")),(0,i.kt)("h2",{id:"get_accounts"},"get_accounts"),(0,i.kt)("p",null,"Gets the accounts available on AEWallet."),(0,i.kt)("h3",{id:"request-2"},"Request"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript"},"// No payload\n")),(0,i.kt)("h3",{id:"success-response-2"},"Success Response"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript"},'{\n "accounts": [\n {\n "shortName": String, // Account name\n "serviceName": String // Service name\n "genesisAddress": String, // Genesis address\n }\n ]\n}\n')),(0,i.kt)("h2",{id:"send_transaction"},"send_transaction"),(0,i.kt)("p",null,"Signs and sends a transaction."),(0,i.kt)("h3",{id:"request-3"},"Request"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript"},'{\n "type": String, // Type of transaction\n "version": Number, // Version of the transaction (used for backward compatiblity)\n "data": Object, // Transaction data zone (identity, keychain, smart contract, etc.)\n "generateEncryptedSeedSC": bool // (Optional) : if true, add a encrypted (by storage nonce public key) seed in the transaction\'s ownerships to allow nodes to manage smart contract\n}\n')),(0,i.kt)("h3",{id:"success-response-3"},"Success Response"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript"},'{\n "transactionAddress": String, // Sent transaction address.\n "nbConfirmations": Number, // Number of received confirmations.\n "maxConfirmations": Number, // Max number of confirmations.\n}\n')),(0,i.kt)("h2",{id:"add_service"},"add_service"),(0,i.kt)("p",null,"Add a service in the keychain"),(0,i.kt)("h3",{id:"request-4"},"Request"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript"},'{\n "name": String, // Name of the service\n}\n')),(0,i.kt)("h3",{id:"success-response-4"},"Success Response"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript"},'{\n "transactionAddress": String, // Transaction address.\n "nbConfirmations": Number, // Number of received confirmations.\n "maxConfirmations": Number, // Max number of confirmations.\n}\n')),(0,i.kt)("h2",{id:"remove_service"},"remove_service"),(0,i.kt)("p",null,"Remove a service from the keychain"),(0,i.kt)("h3",{id:"request-5"},"Request"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript"},'{\n "name": String, // Name of the service\n}\n')),(0,i.kt)("h3",{id:"success-response-5"},"Success Response"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript"},'{\n "transactionAddress": String, // Transaction address.\n "nbConfirmations": Number, // Number of received confirmations.\n "maxConfirmations": Number, // Max number of confirmations.\n}\n')),(0,i.kt)("h2",{id:"get_services_from_keychain"},"get_services_from_keychain"),(0,i.kt)("p",null,"Gets keychain's services from the keychain connected to AEWallet."),(0,i.kt)("h3",{id:"request-6"},"Request"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript"},"// No payload\n")),(0,i.kt)("h3",{id:"success-response-6"},"Success Response"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript"},'{\n "services": [\n {\n "derivationPath": String, // Derivation path\n "curve": String, // Curve\n "hashAlgo": String // Hash Algo\n }\n ]\n}\n')),(0,i.kt)("h2",{id:"keychain_derive_keypair"},"keychain_derive_keypair"),(0,i.kt)("p",null,"Derive a keypair for the given service at the index given and get the public key"),(0,i.kt)("h3",{id:"request-7"},"Request"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript"},'{\n "serviceName": String, // Service name to identify the derivation path to use\n "index": Number, // Chain index to derive (optional - default to 0)\n "pathSuffix": String // Additional information to add to a service derivation path (optional - default to empty)\n}\n')),(0,i.kt)("h3",{id:"success-response-7"},"Success Response"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript"},'{\n "publicKey": String // Public key of the service at the index given\n}\n')),(0,i.kt)("h2",{id:"keychain_derive_address"},"keychain_derive_address"),(0,i.kt)("p",null,"Derive an address for the given service at the index given"),(0,i.kt)("h3",{id:"request-8"},"Request"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript"},'{\n "serviceName": String, // Service name to identify the derivation path to use\n "index": Number, // Chain index to derive (optional - default to 0)\n "pathSuffix": String // Additional information to add to a service derivation path (optional - default to empty)\n}\n')),(0,i.kt)("h3",{id:"success-response-8"},"Success Response"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript"},'{\n "address": String // Address derived\n}\n')),(0,i.kt)("h2",{id:"get_current_account"},"get_current_account"),(0,i.kt)("p",null,"Gets the current account selected on AEWallet."),(0,i.kt)("h3",{id:"request-9"},"Request"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript"},"// No payload\n")),(0,i.kt)("h3",{id:"success-response-9"},"Success Response"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript"},'{\n "shortName": String, // Account name\n "serviceName": String // Service name\n "genesisAddress": String, // Genesis address\n}\n')),(0,i.kt)("h2",{id:"sign_transactions"},"sign_transactions"),(0,i.kt)("p",null,"Signs many transactions."),(0,i.kt)("h3",{id:"request-10"},"Request"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript"},'{\n "serviceName": String, // Service name to use to sign the tx\n "pathSuffix": String, // Additional information to add to a service derivation path (optional)\n "description": String { // Readable description to explain the purpose of signing transactions (locale + description)\n "en": "Readable description in English",\n "fr": "Description lisible en fran\xe7ais",\n },\n "transactions": [\n {\n "type": String, // Type of transaction\n "version": Number, // Version of the transaction (used for backward compatiblity)\n "data": Object // Transaction data zone (identity, keychain, smart contract, etc.)\n }\n ]\n}\n')),(0,i.kt)("h3",{id:"success-response-10"},"Success Response"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript"},'{\n "signedTxs": [\n {\n "address": String, // Address: hash of the new generated public key for the given transaction\n "previousPublicKey": String, // Previous generated public key matching the previous signature\n "previousSignature": String, // Signature from the previous public key\n "originSignature": String // Signature from the device which originated the transaction (used in the Proof of work)\n }\n ]\n}\n')),(0,i.kt)("h2",{id:"sign_payloads"},"sign_payloads"),(0,i.kt)("p",null,"Signs many payloads."),(0,i.kt)("h3",{id:"request-11"},"Request"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript"},'{\n "serviceName": String, // Service name to use to sign the payload\n "pathSuffix": String, // Additional information to add to a service derivation path (optional)\n "description": String { // Readable description to explain the purpose of signing payloads (locale + description)\n "en": "Readable description in English",\n "fr": "Description lisible en fran\xe7ais",\n },\n "payloads": [\n {\n "payload": String, // Payload to sign\n "isHexa": boolean // Precise if the payload if in hexadecimal format\n }\n ]\n}\n')),(0,i.kt)("h3",{id:"success-response-11"},"Success Response"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript"},'{\n "signedPayloads": [\n {\n "signedPayload": String, // Signed payload\n }\n ]\n}\n')),(0,i.kt)("h1",{id:"in-conclusion"},"In conclusion"),(0,i.kt)("p",null,"The communication protocol developed by Archethic allows an easy and secure interaction between dApps and the blockchain by delegating the communication to the user\u2019s wallet. The integration methods proposed are simple and efficient, especially thanks to the \u201cArchethic Wallet Client\u201d (AWC) communication library which facilitates the use of the API. Developers can focus on developing their application without having to manage communication with the wallet and the blockchain. This cross-platform solution is therefore a wise choice for developers who want to write dApps that are compatible with different platforms. Finally, the availability of interfaces in the \u201clibjs\u201d library also facilitates integration for developers of applications written in JavaScript."),(0,i.kt)("p",null,"Find more information at the following links."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"AEIP 4 / Specifications: ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/archethic-foundation/aeip/blob/main/AEIP-4.md"},"https://github.com/archethic-foundation/aeip/blob/main/AEIP-4.md")),(0,i.kt)("li",{parentName:"ul"},"AWC Dart lib: ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/archethic-foundation/archethic-wallet-client-dart"},"https://github.com/archethic-foundation/archethic-wallet-client-dart")),(0,i.kt)("li",{parentName:"ul"},"AWC JS lib (into archethic JS lib): ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/archethic-foundation/libjs"},"https://github.com/archethic-foundation/libjs"))))}u.isMDXComponent=!0},53148:(e,t,n)=>{n.d(t,{Z:()=>a});const a="data:image/webp;base64,UklGRhwXAABXRUJQVlA4WAoAAAAIAAAALgMAnQAAVlA4IDwWAABQdwCdASovA54APm0ylUkkIqGhIZC7SIANiWlu57MuFrbcRNq5pZHm/+zeE/+F/wv5DedP4j8v/ZfyC/JT8Wrh/zf9L/wPQv+Y/Yn79/Yv3M+Nn3XeCvwB/ivtm+QL8e/k39j/LT+68VvrvmEeo/zj/Nf3r95/818q3xv+79EPq9/nfcA/kn9H/yP5mfv/76fhF/af9F7AH8v/qn+g/xH5JfHj/2f5j8p/db+hf4z/nf5/4Cv5N/U/9r/f/8r+0nzmewb93PZe/cMdOs2kPrMLhxROXvHDkDVVmgzr7WcOKJy1cTHpq54JBmEF2pDdBru9hTI473fMiYA38fmMZIP5z0sbjh2dx7uEHgiivIrqUffhAZtbVfwgM2tqv4QHIdE2Es48Q473d8I7/UGW/j8ysoyRx3u+ZEvvrhkIQe/j71zNxVaC9NxoJlO09uO60sx9eI7yGLReT3WoyRx3u7i+xMjjvd8yJgDfx+ZWT8GU5l/upXT9c2C+5Ley5xBTkpXzI2nsyhzkNcvkKZ8jequCexdsYiYA38eqjp4Q6PdGkY+0+XPq1HNGtFdf1ii5pveYbxEJZF5Xk3pEw910fMKqxyF2yEH1PDgPCG1mrj1k2RkHrE3zgnnFugzynJ84Fp1FTipAJe9WiZYRQBDmiNiciLjRQl8fTJOVBdr9KcbK4Z6ACn826g8bGipGiHtQj8oBzQK78jAZtaTk5uBEILX0BTiejhtprytxwPlFMt34bHZ4vby0x2ZvWi8B7Qy9BS6csfZtS6NRx4nw3/x+ZWUI3uRXL5kS+4wG1RuYdAOTi2FNnIooOimEX4hzKr8xbIbDtodrliwrTN2wGhG6bObBYne/iNVVA1WyMNbB54LxErWZgjv/8ewcWHenap9kgHpyUYHp7dUlxIY6HksPDJoJyC5+YhazJi/G58ikB+eOBsuLyWdlJ96wPDoJ3qQCH2O8RPpFNf7Creu4Oy9gF8X+ZwmU3CpG4Ua0YecFjnWFIw69SMuQiS004AnAOgqTBH4G/4l2GkF0yt9+24caJYj02BaBbbwq7erTTeaJPqIV1eglHnkLniKZExk/8N231HN7sL2FMjjmiD0/WiasDfx+ZWWcUcd7vmJkaRKdQKZHHd8iZVkwbVGiVB3Z3bOBRBIELJo7SFksKawSPzKyjJHHe75kTAG/hylZqWoyRx3u7pLVdp7Qtsh4i3FLr8R1MeKX8PEy1wFEwBv4/MrKMkcd7vmQysVykuKGdN5Q4U2gzYyC21F0XvXkXIu800U1ukHgWAAA/vhdg/m8/mLYO03jNpSueHiiOQIggnsvHGXPLsogeY9WhcsaGqrgXOAKeyBdnhynUN/ijUQlXXgwASOX049LJqTtsJHNtkvBVzMark35Su3J/0ZrGHtQVrFenXxbOp4DA73mEG9dhUBO5xwCcKFT2GV6le4LYlgxD0zuJ98/ZKCoO1n8FO9OVUXbpdYRtvJH4AGtrTf743ZyfgLj6+kg58PV8Zk7WoKUasC2RTxB+swR16PCDZOtKlKRxSXC5y7jXsFwjXtMWoU5guiGyCvAekbNpM0+WvcJLzCGu1Ak7FCBGS/wn0JmSsg6TWPLzDHCJEk7hfnQZ3hN8x1vnQTBQ3uT0+NnolBhx9A4/9M7JCnj1yr8hUtPMCdcSaGPZnctugHhDFO4J5EYCXWQ3YGfr/i5MYyoiunPfIDhAP1Om30NrB2p9vWBerJI4Z9gskve9WggNCfg9+eJZ1hhivfrgKaOolQe/HmOBHUkGFYGLfxaIOx+mHegohR2dRVcFnGYvtSq0Hn34PfcmUkwILSUNY02bCW6Ujr/QbHpep+yoseo7evzPKUbDMaqfpYXW5mn03QX/KdJ3h7dunHSNuqgJn+xXCmI6D2+97zd5AoW8s2XyAHTslfOy3lP+33PJisTNBFsyClhAoDaYTbI3T2CtCMYvQ2+qqTunIKfkJUsrZBq6ozoal/OuWF1O5ZapeLBxSUrlV9uwF0efcvTd9LTGSR35Lmnv/1oLeEPZorP4+FqI1Xz4SD5uPmkEux+VxzmPIWce7X8oFTygCmf9AlElEUzF1GxPK9GdfJV+eAPXNQ/v0Nlg8iP5jKhT/T/pSntRTXnwYUYqeCabj6SEQQLad6xa1dvIE11m1fspGrM2cd3QpYy6M9jRrnveGAa7U/7LNs1f6AQqPyHLRKh6m/c1/uxtPp/Ltv7ZzW4bR5kTz/AtUZetGYj1Muq/JM9KKJd+VY/v7Hz3On3kEXx7f8521HSdYZOc7/aSP+42TZ+bX4gZXYmxcb+W7yMPugDYlzIZoFgHsZEw2R1tZ0WkzSaN8eP7PaR+EyStWYIBsDeSdNCbJANGsr4Sls3FQEg52pSJfb5Kf/RsBAULqZRQQAFjgblpaEgpS3KUVGoOmysoih9af3+AOplCNpS5Dw5zxtgGd3aCIlNJ4dWOAVuVNGS7JouDcsMP33BkKARdcXejTw8C+etJMmbFEL2q1CpKRdt8jHrqSDBMLDtfzMj6lIw3IIKhEqXVrrLol9fGhudb3co8zj3PcRTSm4YlpeMcg7Ttyb/0NLWyMC3qkV3LRi36Zj6LVW1hObnZai/3KMcbfmFhp+J9SIB657dKOivZjJoYWEDclHLvSAT5ZrKcJ1PzwjifELiojZoJLJ+iVej+uaDBsWD3hqkeLWL8p46tLQfwU17ZXlPVpvmzC1tS8zV+vYo5pwDps/oqA7KszY9OMwmkWjsSh+kY+4zU4yCFIwLRq8OI6O5WrxxL59hWUa09nglJtu9aCGda13iSBCSPLT+tjP/0t227UOQ+y9hz3v0KyzQGDwJ6q2RIIsnmd+rvx6nVXgjg4ovfCH/MGCnItWJpDRr4hIGtyP0aWBNrTPauvJsNvpYWmFTnABFrhNHt/ep0VguNdp/+wOKfVqNQEo97z4P2BJrygrn8cKzepNbGbbFaPRtCS65zjMIWiFjZBjsG4w0HspZ/j/y68t8b3QbUO3OqP6m/Xju93r54l/58LWp+D6ssn3Gx5mkcH7YXBRvPwm643dT+0E5fazTRFS3K4CW052HBWl5Y3nEZqdEOv3z4wPRvERoYhZu0coWlsfzS3fxvBj+hKQGG9OxtawE9tV4ZUKfK/DVmFigoPojOXv37/lst/ZokufD8ZcgG/yqhtPNmyEFH6OTnCTjC3ryCry1VWiz9AYKuu72qaEuKbZHcMvMjCvLDqlaLxP71uEgq/rbOCk5MV4PWH9/PAyxit+H++H9V1dvwc3U9N1flz7TQ4v/cyOa0GF0KoQvneQzGKhzysgn/jzUq/mUZhMoPkFy3qaNOXUNdyVvmkd2i0Ayb0KPHT38edNhw63FzePlUndQ1cKgAsyrO3leSdyF8Mskc9U2sx6P//5Qtd7cKS3F8mCuvspq2ozBgtSsWgvAXND4/Ed/oZHM92SS2f3gL95HuTx8mnOXx125vETwbFWJ7YhvYOdoQRiCiiBUyeCrRYX1Mkog/UXyhM6IPPv13C9nYwdVwmBH4KkYmZBKfe6OEdvUmkOGYJXPobXTbSf27n4ijMmCK42qUBK262gyaEtcdFeafEkIwqLMqh+2zu7tuCZSSKtdDe6f3O5dDDcuub2XhvZmPfDIlXBMMBBZ1AfHHsXL9/kdHPHCrRpE/ppb74oNOzDUqz05Cum9ZHGRD/ZIdM8RUus8jJ5x2nil08pjdF5yHB9IRGSf3eDTtOtEZgOpHbHGs+mtjiGjVK2K0+lZsb9EdD/0DY/fdnBk9EbyL4ynCoAIXkDQGitB91DxsPfsMIHBPM3M93+hR0sW3vYkyQhAskSkA+f7J26WpA1um7pOmk3S+l1E/zNDdaomjvFb5gIEugVpWvd1hVjch/O1yAZb1Lbu6j4CLvAk8FoNY4zgdNReX7BUZz5x7rv1N2VT4h6udRjtlR0UIWiyuefdDG0tKERk1Oc6UDaXqy2RXvrM+1a+QW3X3lGTNhJPmBbjppcOcYFrYg76TUqcmswRnkJO/3dEWmTHmZ+mj8QkD6Ynk12bFGYDmm4zo4RvC3PdnvOB+2AulTWPeKTpin1zBhgcQLmtcnHjdXtNjvc1nsi8MARwEd0SKhffEP9aVhaS063uZ29cwJuWJwAwic+mbp+8goNmQBTm9qscxTUzIxp3dhNoYe2CBnQ4rxo357oBdqdhyky8Bl/0HjJgi7AoEy7/EodlOsBDUZaa3k2Bk4eopn078qGKMx/fgv4a/PgHSaJmqtM3iwt3AaN/B2XMnltopoa8zeMeIu63k4jBAPh6+/hQ2yuaXc4f75dJkB7Gkts9Y1s5LNzf7dc18xD6aefse9YlRGt8Wt4ezhsgCRTpMXr6phncT3RAepd6wEHxeYo7KmKvyfv9VX2g53KqoFfs9gPZEI2xkHgIMXYr4Y2AByV8V/XQbKsMZQk7ukYTawpwGxeQato8hN39bQ2h3w/sIc1NSHKqyKZ5LGHRKcKCXY+kaL90SOEPyRM6WI4A9ni65k/8ZFf87WPyKgrNiIOc/wMFfYsnMbupIgcyizLqm1i/60xKkP7AZ6MlIzQ8jDrRZc0zh5GsgawqycGjkOZmjCB60Ycqy/CsK9R6LxoRZX0e46V/P2c1lyYQeKLMnrz7mFzkgk48z4Awn5odqrHGB/aEYuGhm3exfP1rPVbtdrnntnqHFxIMCZP0sMawpdWUi5o8gByndt1v2nqGaeKAFlrTAcZABjcLlN9pKL+WL/BcnTQAQA/CkmlSwH5nmp1IK1ZYVK/H8uhW/DjMuMFqQ6VwZm2uBy6eBR/OFq6pjdAuiwWdDePSYIDNdbb0dsJRWsVUsRJf7e2tDnhhGmLYfqpRYQT1LSao3YWwdYhxIetaGOnpZeX/95F50s0Ki3yCmwBdlXwAMx1rF2T37vZ0k7C8rz5SOefqPG9qjyEfA3Ss3X40pueeKnv5n0vM8Yz/aLnFX9HDLRL0xmxS8Hh3TmUyDLedlL/BU4b+y07bkQuc6MZotRauyrh0mojzSeGQjSHHvi7TRCeAKLhIoiw6xnEusX7B7yVVjWcxnDtNPG/yo7ERnHEIKE9NxrkPylIwIy3Ftni9ji/xRPTt1ozBvPg5CYW/M10nWj8y2K8PE9Su0tX4pA6t2TI+9p3bNjeQcofie39WIt3rU62AE5tHhi1NStrlqyYumd/eIcFwCuEqqHCj7tC4dPVRIUSYg5lthCskwPJgmsoVGGXSvev4pMNE/NeJ5M4Wq7m85JijTa3EeSMzNILg/v15d3fDPtYYAZmHEWfdJ8Rq561HfS1e28HnFSNpV5wsq8FqqnsxIlHlG1mNj+j/mKeQsaMBSGcivn3SRO6UeJarQQ0Letgfg6wJioaZVYfajwU6uL5iasBJanexrlNwyHZQx497ZcSJN7DTbvDkf9ovvRWqyyvwlZvfj0B2hR+IM0kA/OvJF/IcL0CMone/0eIf6a29hhln/3gptOSKlhiVQWUJ+q99vaTrGQvv07XWvJcY7je27Cddv1//3+db8Tgc337wuLRPsw25Ql5uQmor4tZ3i8dRdLNpmSSN2VUhymBz/ALLAPKJuz5mT1DAlWxPTi2WPJjKEOpbUHVZ6+cb0pXTd8HBaNFc7YPiD1QxmMX7qQqbXwL099DxcNxXD9GwViIshy1vzKOUuonZgCJ2sAWZiaRZUAyOwb3WjsLH/ETVN0MofjDJym5qBdUzuLgJjRM846zFcrPfq3/O/8z3rZbdp+T+XOzirMHnMr1PHkNUmQhfpDBiwH89cdrd+sCbhzvpOokH3QB+5iNoAXSqNFKb9TPcGTn85eZngzToZB1gxk5xJ3/ip6yby/hg/1CBwm8pzclhqHdegjAOzJNBMHabspBNr9kUh9alRTTjihh0xUzihpMh1cd8FJIqsDbWrzuRIg7zL02NyAQRFrwmj4nIY8bd3NC6iNNV6lfGaf7y1ic4caVTjQu1E6O2TDVUL7/DQq1pyilULk5o2tr2BQY5NFvf55viOinfh15FHEOkyQ2Ydu3ofpmRfzMBf7nKl5T+Y2No/uHNz7YokGTuf8NXi5NomVUogR4DItY4luy13jNtksNGDaSFXGdG+eS6Qb62xtv7iq0rjo+FEvT+2U0ing/u7796OGbzMHpGrXJyTm3leyUucpA00nmlJquTx4/RsmC5Bb2gwWfr+f4hPDq/JqceNUcpu0/3V6GGZC1vtpDFvMjNoNuEBASzrZYDUhMOd4OXEqMYRZo7FTpxOdAEU442spUvcCtifiijDGq/lKXdWjf1my6VnMlXywVMTKsvQeh9Ymb7Vsk8od3Wi/1spmRIxUyFeqq53zDinuKzP7rgQ/GF7gdwxAyXVWMoH/masCujUqH6cFYL9Rg4IeMgwBwmIxUpjboAdQcnPmSmoEGjcS488U5PyJrNgraIPmqFblPmtVBbp0VeLPLy6YOLTMg2bVXW7Guzs8eoJvTuZDUAR7up1j6O90/YdCs01Jqd1vtKoebkz4PN8n7TrF4JZB3R6x+ZWSQz6n8NECCXiyf+fHNbLwmn2uc4Omy5Qfo5DEfUqvjL4EQiGhHvkfsfGv20xRQ3WaTAchJK50hf4FXUviVyYg+79dQgbx22TVnv7kLktSULFfXYzavUtizpGQaNM2h7PX70WnFhGOFt5HQMVI0dERWcbvU9FgmZv08uKAAjTT63ySTZ4NeJBYQC+jXvkyE+F7Y+E3hSs085PGYA+/LQXqAtPUgNh10VBRXHIb1YsCNyzxEWJ87NH1juWH/6Bh0e91AEjfyP1aSnugjMpEDFvAZ+oUVTK//1VCth0i8UZBtCoEUzMqLBYAtHF3vr2PIf8/+Cest6Zp3JFIJMiZ+UNMt3AJrcUWqeA9mV14mvTK7vAjpQs7Nu2yrgCvvGDXCtYvAk2tNzRDdCmrlJL4N3RUAaYsw2MYrDXLpKdOjssWopI7yc7Uoi+TGstJmLkAgTh11VNhyR+hkF8mP2hJPEblEWcXyiQVPU6z34oz7inOQhSzcPaAhlex3gJZWrlorlRfXrUQK6aI5k+lcAAUEdtRxefYCDhvC/gUYFp04k1LToAQoZuE/VJSVz6gLIxLq/VN5PfMbA+KyMLq4get6B9o//zGkn/AU4F10I9nkiGo4fmmM61ZT0WL3S6GA2ZLKK688wdfKvc/iuBau4WHQq2WzaBApOx5eCYwuRUwwW1O+N5rIKDymflv8QOPojX6QPR8Iepof7hTcirYmenQ5UC+4Y0z/XBCf6goOkxHNRTN7OeViTtRN2fgrQUTx2fHn8Oq+oe37O66zhDQYVW6oWJwxpvFEOA+vGWxnB3IqZRIYuSL4+n8D3DS7A9c+qii0HkDtZ18G0LmTPzS/yD4AZJNhY7W69WTdC7g8sf8JG05ZCQAIdDfctu4E/9TsXvA0cvi20qT1KyjtuuiGAHO2697jni/PkY/c6XMTYaNdIM3V7JOLbCY61Gvx9uKteHFqJZuvBqv+lo2RyUYLRujwnYABoU62w9+uXHJSejenONHe1nHK7v1/ycY4xIQKrcUg6xzUzMV4DgtaSoazm5sVxEC4HdZmdZXoPLraKsGatvWPd580t/jS2flQwJgAARVhJRroAAABFeGlmAABJSSoACAAAAAYAEgEDAAEAAAABAAAAGgEFAAEAAABWAAAAGwEFAAEAAABeAAAAKAEDAAEAAAACAAAAEwIDAAEAAAABAAAAaYcEAAEAAABmAAAAAAAAAEgAAAABAAAASAAAAAEAAAAGAACQBwAEAAAAMDIxMAGRBwAEAAAAAQIDAACgBwAEAAAAMDEwMAGgAwABAAAA//8AAAKgBAABAAAALwMAAAOgBAABAAAAngAAAAAAAAA="},13886:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/2-5d6085ceb76c0bd0ffdb9a438a83d08d.webp"},61079:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/3-3258cf4b259426fbb84541316eca5d55.webp"},88268:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/4-2fb8682543e15e738aacb6684b57b221.webp"},4389:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/5-997d8657ade91f1c2a419d5187b3de61.webp"},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/e9cd6030.937c7369.js b/assets/js/e9cd6030.f3578d3a.js similarity index 97% rename from assets/js/e9cd6030.937c7369.js rename to assets/js/e9cd6030.f3578d3a.js index 06cda0146..8f2eb7fb3 100644 --- a/assets/js/e9cd6030.937c7369.js +++ b/assets/js/e9cd6030.f3578d3a.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2665],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>g});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),s=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=s(e.components);return r.createElement(l.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),u=s(n),m=a,g=u["".concat(l,".").concat(m)]||u[m]||p[m]||o;return n?r.createElement(g,i(i({ref:t},d),{},{components:n})):r.createElement(g,i({ref:t},d))}));function g(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=m;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[u]="string"==typeof e?e:a,i[1]=c;for(var s=2;s{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>p,frontMatter:()=>o,metadata:()=>c,toc:()=>s});var r=n(87462),a=(n(67294),n(3905));n(8209);const o={id:"code",title:"Code module",sidebar_label:"Code"},i=void 0,c={unversionedId:"build/smart-contracts/language/library/code",id:"build/smart-contracts/language/library/code",title:"Code module",description:"The Code module contains functions that deal with strings of code.",source:"@site/docs/build/smart-contracts/language/library/code.md",sourceDirName:"build/smart-contracts/language/library",slug:"/build/smart-contracts/language/library/code",permalink:"/build/smart-contracts/language/library/code",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"code",title:"Code module",sidebar_label:"Code"},sidebar:"docs",previous:{title:"Chain",permalink:"/build/smart-contracts/language/library/chain"},next:{title:"Contract",permalink:"/build/smart-contracts/language/library/contract"}},l={},s=[{value:"is_same?/2",id:"is_same2",level:3},{value:"is_valid?/1",id:"is_valid1",level:3}],d={toc:s},u="wrapper";function p(e){let{components:t,...n}=e;return(0,a.kt)(u,(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The ",(0,a.kt)("inlineCode",{parentName:"p"},"Code")," module contains functions that deal with strings of code."),(0,a.kt)("h3",{id:"is_same2"},"is_same?/2"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},'code = """\n@version\n\ncondition triggered_by: transaction, as: []\n\nactions triggered_by: transaction do\n Contract.add_uco_transfer to: 0x1234, amount: 15.5\nend\n"""\n\nCode.is_same?(code, transaction.code)\n')),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"first_code")," a string containing a smart contract code"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"second_code")," a string containing a smart contract code")),(0,a.kt)("p",null,"Return true if codes are the same, false otherwise.\nThis function is more accurate than comparing two strings, as it convert code into structured AST and compare only code instruction and not line numbers, carriage return ..."),(0,a.kt)("h3",{id:"is_valid1"},"is_valid?/1"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},'code = """\n@version\n\ncondition triggered_by: transaction, as: []\n\nactions triggered_by: transaction do\n Contract.add_uco_transfer to: 0x1234, amount: 15.5\nend\n"""\n\nCode.is_valid?(code)\n')),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"code")," a string containing a smart contract code")),(0,a.kt)("p",null,"Returns true if the code is valid according to Archethic smart contracts language, false otherwise"))}p.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2665],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>g});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),s=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=s(e.components);return r.createElement(l.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),u=s(n),m=a,g=u["".concat(l,".").concat(m)]||u[m]||p[m]||o;return n?r.createElement(g,i(i({ref:t},d),{},{components:n})):r.createElement(g,i({ref:t},d))}));function g(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=m;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[u]="string"==typeof e?e:a,i[1]=c;for(var s=2;s{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>p,frontMatter:()=>o,metadata:()=>c,toc:()=>s});var r=n(87462),a=(n(67294),n(3905));n(8209);const o={id:"code",title:"Code module",sidebar_label:"Code"},i=void 0,c={unversionedId:"build/smart-contracts/language/library/code",id:"build/smart-contracts/language/library/code",title:"Code module",description:"The Code module contains functions that deal with strings of code.",source:"@site/docs/build/smart-contracts/language/library/code.md",sourceDirName:"build/smart-contracts/language/library",slug:"/build/smart-contracts/language/library/code",permalink:"/build/smart-contracts/language/library/code",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"code",title:"Code module",sidebar_label:"Code"},sidebar:"docs",previous:{title:"Chain",permalink:"/build/smart-contracts/language/library/chain"},next:{title:"Contract",permalink:"/build/smart-contracts/language/library/contract"}},l={},s=[{value:"is_same?/2",id:"is_same2",level:3},{value:"is_valid?/1",id:"is_valid1",level:3}],d={toc:s},u="wrapper";function p(e){let{components:t,...n}=e;return(0,a.kt)(u,(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The ",(0,a.kt)("inlineCode",{parentName:"p"},"Code")," module contains functions that deal with strings of code."),(0,a.kt)("h3",{id:"is_same2"},"is_same?/2"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},'code = """\n@version\n\ncondition triggered_by: transaction, as: []\n\nactions triggered_by: transaction do\n Contract.add_uco_transfer to: 0x1234, amount: 15.5\nend\n"""\n\nCode.is_same?(code, transaction.code)\n')),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"first_code")," a string containing a smart contract code"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"second_code")," a string containing a smart contract code")),(0,a.kt)("p",null,"Return true if codes are the same, false otherwise.\nThis function is more accurate than comparing two strings, as it convert code into structured AST and compare only code instruction and not line numbers, carriage return ..."),(0,a.kt)("h3",{id:"is_valid1"},"is_valid?/1"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-elixir"},'code = """\n@version\n\ncondition triggered_by: transaction, as: []\n\nactions triggered_by: transaction do\n Contract.add_uco_transfer to: 0x1234, amount: 15.5\nend\n"""\n\nCode.is_valid?(code)\n')),(0,a.kt)("p",null,"Parameters:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"code")," a string containing a smart contract code")),(0,a.kt)("p",null,"Returns true if the code is valid according to Archethic smart contracts language, false otherwise"))}p.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/ecdd1e85.e15c45af.js b/assets/js/ecdd1e85.0789f4ed.js similarity index 99% rename from assets/js/ecdd1e85.e15c45af.js rename to assets/js/ecdd1e85.0789f4ed.js index e1278cd2c..bf7845f1e 100644 --- a/assets/js/ecdd1e85.e15c45af.js +++ b/assets/js/ecdd1e85.0789f4ed.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1696],{3905:(e,t,r)=>{r.d(t,{Zo:()=>h,kt:()=>f});var o=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=o.createContext({}),l=function(e){var t=o.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},h=function(e){var t=l(e.components);return o.createElement(c.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},d=o.forwardRef((function(e,t){var r=e.components,a=e.mdxType,n=e.originalType,c=e.parentName,h=s(e,["components","mdxType","originalType","parentName"]),u=l(r),d=a,f=u["".concat(c,".").concat(d)]||u[d]||p[d]||n;return r?o.createElement(f,i(i({ref:t},h),{},{components:r})):o.createElement(f,i({ref:t},h))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var n=r.length,i=new Array(n);i[0]=d;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[u]="string"==typeof e?e:a,i[1]=s;for(var l=2;l{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>p,frontMatter:()=>n,metadata:()=>s,toc:()=>l});var o=r(87462),a=(r(67294),r(3905));r(8209);const n={id:"hardware-root-of-trust",title:"Hardware Root of Trust"},i=void 0,s={unversionedId:"learn/cryptography/hardware-root-of-trust",id:"learn/cryptography/hardware-root-of-trust",title:"Hardware Root of Trust",description:"What is hardware root of trust?",source:"@site/docs/learn/cryptography/hardware-root-of-trust.md",sourceDirName:"learn/cryptography",slug:"/learn/cryptography/hardware-root-of-trust",permalink:"/learn/cryptography/hardware-root-of-trust",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"hardware-root-of-trust",title:"Hardware Root of Trust"},sidebar:"docs",previous:{title:"Cryptography",permalink:"/learn/cryptography/"},next:{title:"Decentralized Identity",permalink:"/learn/decentralized-id/"}},c={},l=[{value:"What is hardware root of trust?",id:"what-is-hardware-root-of-trust",level:2},{value:"Why hardware root of trust for Archethic?",id:"why-hardware-root-of-trust-for-archethic",level:2},{value:"Implementation of Hardware Root of Trust (HRT)",id:"implementation-of-hardware-root-of-trust-hrt",level:2},{value:"Placement of HRT in Archethic Blockchain/Ecosystem",id:"placement-of-hrt-in-archethic-blockchainecosystem",level:2}],h={toc:l},u="wrapper";function p(e){let{components:t,...r}=e;return(0,a.kt)(u,(0,o.Z)({},h,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"what-is-hardware-root-of-trust"},"What is hardware root of trust?"),(0,a.kt)("p",null,"A hardware root of trust is the foundation on which all secure operations of a computing system depend. It contains the keys used for cryptographic functions and enables a secure boot process. It is inherently trusted, and therefore must be secure by design. The most secure implementation of a root of trust is in hardware making it immune from malware attacks. As such, it can be a stand-alone security module or implemented as security module within a processor or system on chip (SoC) (",(0,a.kt)("a",{parentName:"p",href:"https://www.rambus.com/blogs/hardware-root-of-trust/#:~:text=for%20my%20application%3F-,What%20is%20hardware%20root%20of%20trust%3F,must%20be%20secure%20by%20design."},"source"),")."),(0,a.kt)("h2",{id:"why-hardware-root-of-trust-for-archethic"},"Why hardware root of trust for Archethic?"),(0,a.kt)("p",null,"The ability to sustain the network even with more than 90% of malicious nodes effectively comes from 2 very important steps."),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Identifying the malcious nodes effectively and preemptively."),(0,a.kt)("li",{parentName:"ul"},"Banish and effectively ban the malicious nodes.")),(0,a.kt)("p",null,"While the first part involves complex alogrithms implemented in the software layer, the second part involves uniquely tying node's identity to its hardware. This way, the malicious node, once identified and banished, cannot rejoin the network by changing its representive identity."),(0,a.kt)("p",null,"This second part can be effectively achieved using the concept of hardware root of trust. With hardware root of trust, a unique keypair is injected in the into the wafer at the time of fabrication, thus tying the identity with this keypair. Once, this keypair is certified, the node cannot effectively use another keypair, once banished, thus eliminating identity forgery. This is, in principle, possible due to fact once a key-pair is injected, it cannot be changed for that particular hardware."),(0,a.kt)("p",null,"Further, with this hardware root of trust, we can also ensure that no two nodes have the same public key tied to their identity. Thus, using hardware root of trust, contributes significantly to the increased miner security and makes the Archethic blockchain more resilient against bad actors."),(0,a.kt)("h2",{id:"implementation-of-hardware-root-of-trust-hrt"},"Implementation of Hardware Root of Trust (HRT)"),(0,a.kt)("p",null,"To implement hardware root of Trust, within Archethic ecosystem, two technologies have been used."),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Trusted Platform Module (TPM 2.O)"),(0,a.kt)("li",{parentName:"ul"},"Yubico Yubikey (PIV)")),(0,a.kt)("p",null,"Both of these technologies are based on Secure Element (SE) which are certified under Common Criteria (CC)."),(0,a.kt)("h2",{id:"placement-of-hrt-in-archethic-blockchainecosystem"},"Placement of HRT in Archethic Blockchain/Ecosystem"),(0,a.kt)("p",null,"Along with the initial software crypto library, the HRT is now the de-facto crypto engine for all the cryptographic operations carried out by Archethic miners. This includes signature (ECC), verification (ECC), encryption (AES), decryption (AES), hashing (SHA2/SHA3), etc."),(0,a.kt)("p",null,"The Archethic node software delegates all the cryptography operations to the HRT libraries of TPM and Yubikey, which are specially developed for this purpose by Uniris."),(0,a.kt)("p",null,"Given the latency constraints, a new hybrid mechanism have been developed involving usage of software crypto library and the HRT libraries (TPM/Yubikey). In this approach, the root of trust - crypto operation are still HRT based while the stem and branches will be software crypto library based."),(0,a.kt)("p",null,"The advantages of this mechanism over pure HRT based mechanism is:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Possiblity of key aggregation"),(0,a.kt)("li",{parentName:"ul"},"Freedom of using newer elliptic curves that are not yet supported by TPM/Yubikey."),(0,a.kt)("li",{parentName:"ul"},"Scalability without impacting security and performance.")))}p.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1696],{3905:(e,t,r)=>{r.d(t,{Zo:()=>h,kt:()=>f});var o=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=o.createContext({}),l=function(e){var t=o.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},h=function(e){var t=l(e.components);return o.createElement(c.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},d=o.forwardRef((function(e,t){var r=e.components,a=e.mdxType,n=e.originalType,c=e.parentName,h=s(e,["components","mdxType","originalType","parentName"]),u=l(r),d=a,f=u["".concat(c,".").concat(d)]||u[d]||p[d]||n;return r?o.createElement(f,i(i({ref:t},h),{},{components:r})):o.createElement(f,i({ref:t},h))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var n=r.length,i=new Array(n);i[0]=d;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[u]="string"==typeof e?e:a,i[1]=s;for(var l=2;l{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>p,frontMatter:()=>n,metadata:()=>s,toc:()=>l});var o=r(87462),a=(r(67294),r(3905));r(8209);const n={id:"hardware-root-of-trust",title:"Hardware Root of Trust"},i=void 0,s={unversionedId:"learn/cryptography/hardware-root-of-trust",id:"learn/cryptography/hardware-root-of-trust",title:"Hardware Root of Trust",description:"What is hardware root of trust?",source:"@site/docs/learn/cryptography/hardware-root-of-trust.md",sourceDirName:"learn/cryptography",slug:"/learn/cryptography/hardware-root-of-trust",permalink:"/learn/cryptography/hardware-root-of-trust",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"hardware-root-of-trust",title:"Hardware Root of Trust"},sidebar:"docs",previous:{title:"Cryptography",permalink:"/learn/cryptography/"},next:{title:"Decentralized Identity",permalink:"/learn/decentralized-id/"}},c={},l=[{value:"What is hardware root of trust?",id:"what-is-hardware-root-of-trust",level:2},{value:"Why hardware root of trust for Archethic?",id:"why-hardware-root-of-trust-for-archethic",level:2},{value:"Implementation of Hardware Root of Trust (HRT)",id:"implementation-of-hardware-root-of-trust-hrt",level:2},{value:"Placement of HRT in Archethic Blockchain/Ecosystem",id:"placement-of-hrt-in-archethic-blockchainecosystem",level:2}],h={toc:l},u="wrapper";function p(e){let{components:t,...r}=e;return(0,a.kt)(u,(0,o.Z)({},h,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"what-is-hardware-root-of-trust"},"What is hardware root of trust?"),(0,a.kt)("p",null,"A hardware root of trust is the foundation on which all secure operations of a computing system depend. It contains the keys used for cryptographic functions and enables a secure boot process. It is inherently trusted, and therefore must be secure by design. The most secure implementation of a root of trust is in hardware making it immune from malware attacks. As such, it can be a stand-alone security module or implemented as security module within a processor or system on chip (SoC) (",(0,a.kt)("a",{parentName:"p",href:"https://www.rambus.com/blogs/hardware-root-of-trust/#:~:text=for%20my%20application%3F-,What%20is%20hardware%20root%20of%20trust%3F,must%20be%20secure%20by%20design."},"source"),")."),(0,a.kt)("h2",{id:"why-hardware-root-of-trust-for-archethic"},"Why hardware root of trust for Archethic?"),(0,a.kt)("p",null,"The ability to sustain the network even with more than 90% of malicious nodes effectively comes from 2 very important steps."),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Identifying the malcious nodes effectively and preemptively."),(0,a.kt)("li",{parentName:"ul"},"Banish and effectively ban the malicious nodes.")),(0,a.kt)("p",null,"While the first part involves complex alogrithms implemented in the software layer, the second part involves uniquely tying node's identity to its hardware. This way, the malicious node, once identified and banished, cannot rejoin the network by changing its representive identity."),(0,a.kt)("p",null,"This second part can be effectively achieved using the concept of hardware root of trust. With hardware root of trust, a unique keypair is injected in the into the wafer at the time of fabrication, thus tying the identity with this keypair. Once, this keypair is certified, the node cannot effectively use another keypair, once banished, thus eliminating identity forgery. This is, in principle, possible due to fact once a key-pair is injected, it cannot be changed for that particular hardware."),(0,a.kt)("p",null,"Further, with this hardware root of trust, we can also ensure that no two nodes have the same public key tied to their identity. Thus, using hardware root of trust, contributes significantly to the increased miner security and makes the Archethic blockchain more resilient against bad actors."),(0,a.kt)("h2",{id:"implementation-of-hardware-root-of-trust-hrt"},"Implementation of Hardware Root of Trust (HRT)"),(0,a.kt)("p",null,"To implement hardware root of Trust, within Archethic ecosystem, two technologies have been used."),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Trusted Platform Module (TPM 2.O)"),(0,a.kt)("li",{parentName:"ul"},"Yubico Yubikey (PIV)")),(0,a.kt)("p",null,"Both of these technologies are based on Secure Element (SE) which are certified under Common Criteria (CC)."),(0,a.kt)("h2",{id:"placement-of-hrt-in-archethic-blockchainecosystem"},"Placement of HRT in Archethic Blockchain/Ecosystem"),(0,a.kt)("p",null,"Along with the initial software crypto library, the HRT is now the de-facto crypto engine for all the cryptographic operations carried out by Archethic miners. This includes signature (ECC), verification (ECC), encryption (AES), decryption (AES), hashing (SHA2/SHA3), etc."),(0,a.kt)("p",null,"The Archethic node software delegates all the cryptography operations to the HRT libraries of TPM and Yubikey, which are specially developed for this purpose by Uniris."),(0,a.kt)("p",null,"Given the latency constraints, a new hybrid mechanism have been developed involving usage of software crypto library and the HRT libraries (TPM/Yubikey). In this approach, the root of trust - crypto operation are still HRT based while the stem and branches will be software crypto library based."),(0,a.kt)("p",null,"The advantages of this mechanism over pure HRT based mechanism is:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Possiblity of key aggregation"),(0,a.kt)("li",{parentName:"ul"},"Freedom of using newer elliptic curves that are not yet supported by TPM/Yubikey."),(0,a.kt)("li",{parentName:"ul"},"Scalability without impacting security and performance.")))}p.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file diff --git a/assets/js/ee388bf8.2715e259.js b/assets/js/ee388bf8.609080d7.js similarity index 97% rename from assets/js/ee388bf8.2715e259.js rename to assets/js/ee388bf8.609080d7.js index 7ff41b93b..f3335bcb7 100644 --- a/assets/js/ee388bf8.2715e259.js +++ b/assets/js/ee388bf8.609080d7.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7701],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>f});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),s=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},u=function(e){var t=s(e.components);return n.createElement(c.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),d=s(r),m=o,f=d["".concat(c,".").concat(m)]||d[m]||p[m]||a;return r?n.createElement(f,l(l({ref:t},u),{},{components:r})):n.createElement(f,l({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=m;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[d]="string"==typeof e?e:o,l[1]=i;for(var s=2;s{r.r(t),r.d(t,{Badge:()=>p,Bullet:()=>u,Details:()=>f,SpecifiedBy:()=>d,assets:()=>s,contentTitle:()=>i,default:()=>k,frontMatter:()=>l,metadata:()=>c,toc:()=>m});var n=r(87462),o=r(67294),a=r(3905);r(8209);const l={id:"error-context",title:"ErrorContext",hide_table_of_contents:!1},i=void 0,c={unversionedId:"build/api/schema/enums/error-context",id:"build/api/schema/enums/error-context",title:"ErrorContext",description:"Transaction error context",source:"@site/docs/build/api/schema/enums/error-context.mdx",sourceDirName:"build/api/schema/enums",slug:"/build/api/schema/enums/error-context",permalink:"/build/api/schema/enums/error-context",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"error-context",title:"ErrorContext",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"skip",permalink:"/build/api/schema/directives/skip"},next:{title:"SortOrder",permalink:"/build/api/schema/enums/sort-order"}},s={},u=()=>(0,a.kt)(o.Fragment,null,(0,a.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),d=e=>(0,a.kt)(o.Fragment,null,"Specification",(0,a.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),p=e=>(0,a.kt)(o.Fragment,null,(0,a.kt)("span",{className:e.class},e.text)),m=[{value:"Values",id:"values",level:3},{value:"ErrorContext.INVALID_TRANSACTION",id:"code-style-fontweight-normal-errorcontextbinvalid_transactionbcode",level:4},{value:"ErrorContext.NETWORK_ISSUE",id:"code-style-fontweight-normal-errorcontextbnetwork_issuebcode",level:4},{value:"Member of",id:"member-of",level:3}],f=e=>{let{dataOpen:t,dataClose:r,children:l,startOpen:i=!1}=e;const[c,s]=(0,o.useState)(i);return(0,a.kt)("details",(0,n.Z)({},c?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,a.kt)("summary",{onClick:e=>{e.preventDefault(),s((e=>!e))},style:{listStyle:"none"}},c?t:r),c&&l)},b={Bullet:u,SpecifiedBy:d,Badge:p,toc:m,Details:f},y="wrapper";function k(e){let{components:t,...r}=e;return(0,a.kt)(y,(0,n.Z)({},b,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"Transaction error context"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-graphql"},"enum ErrorContext {\n INVALID_TRANSACTION\n NETWORK_ISSUE\n}\n")),(0,a.kt)("h3",{id:"values"},"Values"),(0,a.kt)("h4",{id:"code-style-fontweight-normal-errorcontextbinvalid_transactionbcode"},(0,a.kt)("a",{parentName:"h4",href:"#"},(0,a.kt)("code",{style:{fontWeight:"normal"}},"ErrorContext.",(0,a.kt)("b",null,"INVALID_TRANSACTION")))),(0,a.kt)("blockquote",null,(0,a.kt)("p",{parentName:"blockquote"},"Transaction is invalid")),(0,a.kt)("h4",{id:"code-style-fontweight-normal-errorcontextbnetwork_issuebcode"},(0,a.kt)("a",{parentName:"h4",href:"#"},(0,a.kt)("code",{style:{fontWeight:"normal"}},"ErrorContext.",(0,a.kt)("b",null,"NETWORK_ISSUE")))),(0,a.kt)("blockquote",null,(0,a.kt)("p",{parentName:"blockquote"},"Network problem")),(0,a.kt)("h3",{id:"member-of"},"Member of"),(0,a.kt)("p",null,(0,a.kt)("a",{parentName:"p",href:"/build/api/schema/objects/transaction-error"},(0,a.kt)("inlineCode",{parentName:"a"},"TransactionError"))," ",(0,a.kt)(p,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}k.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7701],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>f});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),s=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},u=function(e){var t=s(e.components);return n.createElement(c.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),d=s(r),m=o,f=d["".concat(c,".").concat(m)]||d[m]||p[m]||a;return r?n.createElement(f,l(l({ref:t},u),{},{components:r})):n.createElement(f,l({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=m;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[d]="string"==typeof e?e:o,l[1]=i;for(var s=2;s{r.r(t),r.d(t,{Badge:()=>p,Bullet:()=>u,Details:()=>f,SpecifiedBy:()=>d,assets:()=>s,contentTitle:()=>i,default:()=>k,frontMatter:()=>l,metadata:()=>c,toc:()=>m});var n=r(87462),o=r(67294),a=r(3905);r(8209);const l={id:"error-context",title:"ErrorContext",hide_table_of_contents:!1},i=void 0,c={unversionedId:"build/api/schema/enums/error-context",id:"build/api/schema/enums/error-context",title:"ErrorContext",description:"Transaction error context",source:"@site/docs/build/api/schema/enums/error-context.mdx",sourceDirName:"build/api/schema/enums",slug:"/build/api/schema/enums/error-context",permalink:"/build/api/schema/enums/error-context",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"error-context",title:"ErrorContext",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"skip",permalink:"/build/api/schema/directives/skip"},next:{title:"SortOrder",permalink:"/build/api/schema/enums/sort-order"}},s={},u=()=>(0,a.kt)(o.Fragment,null,(0,a.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),d=e=>(0,a.kt)(o.Fragment,null,"Specification",(0,a.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),p=e=>(0,a.kt)(o.Fragment,null,(0,a.kt)("span",{className:e.class},e.text)),m=[{value:"Values",id:"values",level:3},{value:"ErrorContext.INVALID_TRANSACTION",id:"code-style-fontweight-normal-errorcontextbinvalid_transactionbcode",level:4},{value:"ErrorContext.NETWORK_ISSUE",id:"code-style-fontweight-normal-errorcontextbnetwork_issuebcode",level:4},{value:"Member of",id:"member-of",level:3}],f=e=>{let{dataOpen:t,dataClose:r,children:l,startOpen:i=!1}=e;const[c,s]=(0,o.useState)(i);return(0,a.kt)("details",(0,n.Z)({},c?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,a.kt)("summary",{onClick:e=>{e.preventDefault(),s((e=>!e))},style:{listStyle:"none"}},c?t:r),c&&l)},b={Bullet:u,SpecifiedBy:d,Badge:p,toc:m,Details:f},y="wrapper";function k(e){let{components:t,...r}=e;return(0,a.kt)(y,(0,n.Z)({},b,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"Transaction error context"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-graphql"},"enum ErrorContext {\n INVALID_TRANSACTION\n NETWORK_ISSUE\n}\n")),(0,a.kt)("h3",{id:"values"},"Values"),(0,a.kt)("h4",{id:"code-style-fontweight-normal-errorcontextbinvalid_transactionbcode"},(0,a.kt)("a",{parentName:"h4",href:"#"},(0,a.kt)("code",{style:{fontWeight:"normal"}},"ErrorContext.",(0,a.kt)("b",null,"INVALID_TRANSACTION")))),(0,a.kt)("blockquote",null,(0,a.kt)("p",{parentName:"blockquote"},"Transaction is invalid")),(0,a.kt)("h4",{id:"code-style-fontweight-normal-errorcontextbnetwork_issuebcode"},(0,a.kt)("a",{parentName:"h4",href:"#"},(0,a.kt)("code",{style:{fontWeight:"normal"}},"ErrorContext.",(0,a.kt)("b",null,"NETWORK_ISSUE")))),(0,a.kt)("blockquote",null,(0,a.kt)("p",{parentName:"blockquote"},"Network problem")),(0,a.kt)("h3",{id:"member-of"},"Member of"),(0,a.kt)("p",null,(0,a.kt)("a",{parentName:"p",href:"/build/api/schema/objects/transaction-error"},(0,a.kt)("inlineCode",{parentName:"a"},"TransactionError"))," ",(0,a.kt)(p,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}k.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file diff --git a/assets/js/eeb513bd.d1e550ce.js b/assets/js/eeb513bd.0ccd57bd.js similarity index 99% rename from assets/js/eeb513bd.d1e550ce.js rename to assets/js/eeb513bd.0ccd57bd.js index 6c156f162..926c1adac 100644 --- a/assets/js/eeb513bd.d1e550ce.js +++ b/assets/js/eeb513bd.0ccd57bd.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5371],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>m});var a=n(67294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l=a.createContext({}),c=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},d=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var n=e.components,i=e.mdxType,r=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),p=c(n),h=i,m=p["".concat(l,".").concat(h)]||p[h]||u[h]||r;return n?a.createElement(m,o(o({ref:t},d),{},{components:n})):a.createElement(m,o({ref:t},d))}));function m(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=n.length,o=new Array(r);o[0]=h;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[p]="string"==typeof e?e:i,o[1]=s;for(var c=2;c{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>u,frontMatter:()=>r,metadata:()=>s,toc:()=>c});var a=n(87462),i=(n(67294),n(3905));n(8209);const r={id:"beacon-chain",title:"Beacon Chain"},o=void 0,s={unversionedId:"learn/sharding/beacon-chain/beacon-chain",id:"learn/sharding/beacon-chain/beacon-chain",title:"Beacon Chain",description:"Archethic Blockchain is using Sharding mechanism to ensure scalability in terms of storage and validation.",source:"@site/docs/learn/sharding/beacon-chain/README.md",sourceDirName:"learn/sharding/beacon-chain",slug:"/learn/sharding/beacon-chain/",permalink:"/learn/sharding/beacon-chain/",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"beacon-chain",title:"Beacon Chain"},sidebar:"docs",previous:{title:"Sharding",permalink:"/learn/sharding/"},next:{title:"Beacon Explorer",permalink:"/learn/sharding/beacon-chain/explorer"}},l={},c=[{value:"Concepts",id:"concepts",level:2},{value:"Transaction tracking and timestamping",id:"transaction-tracking-and-timestamping",level:2},{value:"Status and Network Coordinates of nodes",id:"status-and-network-coordinates-of-nodes",level:2},{value:"Slot",id:"slot",level:2}],d={toc:c},p="wrapper";function u(e){let{components:t,...n}=e;return(0,i.kt)(p,(0,a.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"Archethic Blockchain is using ",(0,i.kt)("inlineCode",{parentName:"p"},"Sharding")," mechanism to ensure scalability in terms of storage and validation."),(0,i.kt)("p",null,"But since there is no way in a well sharded and distributed network to know all the transaction in the system,\na ",(0,i.kt)("inlineCode",{parentName:"p"},"Beacon Chain")," is used to keep a global synchronization and reference."),(0,i.kt)("h2",{id:"concepts"},"Concepts"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"Beacon Chain")," is used as tracer/marker of a global state but to face some scalability issue, Archethic Blockchain is using ",(0,i.kt)("inlineCode",{parentName:"p"},"Sharding")," also for the ",(0,i.kt)("inlineCode",{parentName:"p"},"Beacon Chain"),"."),(0,i.kt)("p",null,"Which means that the ",(0,i.kt)("inlineCode",{parentName:"p"},"Beacon Chain")," is sharded and divided into ",(0,i.kt)("inlineCode",{parentName:"p"},"subset")," defined by the transaction's address and a given date."),(0,i.kt)("p",null,"For example: a transaction's address starting by ",(0,i.kt)("inlineCode",{parentName:"p"},"0F")," for a given day, will not be stored on the same subset as a transaction's address starting by ",(0,i.kt)("inlineCode",{parentName:"p"},"9F")," for the same day."),(0,i.kt)("h2",{id:"transaction-tracking-and-timestamping"},"Transaction tracking and timestamping"),(0,i.kt)("p",null,"Each time a transaction is validated, the validation nodes will send the transaction to the right Beacon Chain storage nodes, to transmit the address of the transaction and its timestamp."),(0,i.kt)("p",null,"For each Beacon Chain interval, a new slot is generated referencing all the transaction during this interval."),(0,i.kt)("p",null,"At the end of the day, a transaction chain is formed, and a last transaction is computed to generate a summary of the current day for a given subset."),(0,i.kt)("p",null,"Because each transaction has its own storage nodes, ",(0,i.kt)("inlineCode",{parentName:"p"},"Beacon Chains")," are balanced between the storage nodes to ensure a better scalability and distribution."),(0,i.kt)("h2",{id:"status-and-network-coordinates-of-nodes"},"Status and Network Coordinates of nodes"),(0,i.kt)("p",null,"Beacon Chains also contains network status of the nodes where the public key starts by the Beacon Chain subset."),(0,i.kt)("p",null,"The storage nodes in each subset is in charge of:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"checking the node availabilities"),(0,i.kt)("li",{parentName:"ul"},"gathering networking information such as latency, bandwidth")),(0,i.kt)("p",null,"At the end of the day, a transaction is formed as well and a last transaction is computed to generate a summary of node availability and network coordinates"),(0,i.kt)("h2",{id:"slot"},"Slot"),(0,i.kt)("p",null,"Each ",(0,i.kt)("inlineCode",{parentName:"p"},"Beacon Chain")," is divided during the day into multiple slots, defined by interval (for instance every 10 min)."),(0,i.kt)("p",null,"Those slot contains the following information:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Transaction summaries: timestamping of the validated transactions",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"address: Transaction's address"),(0,i.kt)("li",{parentName:"ul"},"timestamp: Transaction validation time"),(0,i.kt)("li",{parentName:"ul"},"movements addresses: List of outputs addresses of the transaction"))),(0,i.kt)("li",{parentName:"ul"},"End of node synchronization: timestamping when a node finished its synchronization",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"node public key: Node's first public key"),(0,i.kt)("li",{parentName:"ul"},"timestamp: Time when the node synchronization ended"))),(0,i.kt)("li",{parentName:"ul"},"P2P view:",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"availabilities: binary form of the availability of the sampled nodes for the given subset"),(0,i.kt)("li",{parentName:"ul"},"network statistics: latency and bandwidth of the sampled nodes for the given subset")))))}u.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5371],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>m});var a=n(67294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l=a.createContext({}),c=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},d=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var n=e.components,i=e.mdxType,r=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),p=c(n),h=i,m=p["".concat(l,".").concat(h)]||p[h]||u[h]||r;return n?a.createElement(m,o(o({ref:t},d),{},{components:n})):a.createElement(m,o({ref:t},d))}));function m(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=n.length,o=new Array(r);o[0]=h;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[p]="string"==typeof e?e:i,o[1]=s;for(var c=2;c{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>u,frontMatter:()=>r,metadata:()=>s,toc:()=>c});var a=n(87462),i=(n(67294),n(3905));n(8209);const r={id:"beacon-chain",title:"Beacon Chain"},o=void 0,s={unversionedId:"learn/sharding/beacon-chain/beacon-chain",id:"learn/sharding/beacon-chain/beacon-chain",title:"Beacon Chain",description:"Archethic Blockchain is using Sharding mechanism to ensure scalability in terms of storage and validation.",source:"@site/docs/learn/sharding/beacon-chain/README.md",sourceDirName:"learn/sharding/beacon-chain",slug:"/learn/sharding/beacon-chain/",permalink:"/learn/sharding/beacon-chain/",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"beacon-chain",title:"Beacon Chain"},sidebar:"docs",previous:{title:"Sharding",permalink:"/learn/sharding/"},next:{title:"Beacon Explorer",permalink:"/learn/sharding/beacon-chain/explorer"}},l={},c=[{value:"Concepts",id:"concepts",level:2},{value:"Transaction tracking and timestamping",id:"transaction-tracking-and-timestamping",level:2},{value:"Status and Network Coordinates of nodes",id:"status-and-network-coordinates-of-nodes",level:2},{value:"Slot",id:"slot",level:2}],d={toc:c},p="wrapper";function u(e){let{components:t,...n}=e;return(0,i.kt)(p,(0,a.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"Archethic Blockchain is using ",(0,i.kt)("inlineCode",{parentName:"p"},"Sharding")," mechanism to ensure scalability in terms of storage and validation."),(0,i.kt)("p",null,"But since there is no way in a well sharded and distributed network to know all the transaction in the system,\na ",(0,i.kt)("inlineCode",{parentName:"p"},"Beacon Chain")," is used to keep a global synchronization and reference."),(0,i.kt)("h2",{id:"concepts"},"Concepts"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"Beacon Chain")," is used as tracer/marker of a global state but to face some scalability issue, Archethic Blockchain is using ",(0,i.kt)("inlineCode",{parentName:"p"},"Sharding")," also for the ",(0,i.kt)("inlineCode",{parentName:"p"},"Beacon Chain"),"."),(0,i.kt)("p",null,"Which means that the ",(0,i.kt)("inlineCode",{parentName:"p"},"Beacon Chain")," is sharded and divided into ",(0,i.kt)("inlineCode",{parentName:"p"},"subset")," defined by the transaction's address and a given date."),(0,i.kt)("p",null,"For example: a transaction's address starting by ",(0,i.kt)("inlineCode",{parentName:"p"},"0F")," for a given day, will not be stored on the same subset as a transaction's address starting by ",(0,i.kt)("inlineCode",{parentName:"p"},"9F")," for the same day."),(0,i.kt)("h2",{id:"transaction-tracking-and-timestamping"},"Transaction tracking and timestamping"),(0,i.kt)("p",null,"Each time a transaction is validated, the validation nodes will send the transaction to the right Beacon Chain storage nodes, to transmit the address of the transaction and its timestamp."),(0,i.kt)("p",null,"For each Beacon Chain interval, a new slot is generated referencing all the transaction during this interval."),(0,i.kt)("p",null,"At the end of the day, a transaction chain is formed, and a last transaction is computed to generate a summary of the current day for a given subset."),(0,i.kt)("p",null,"Because each transaction has its own storage nodes, ",(0,i.kt)("inlineCode",{parentName:"p"},"Beacon Chains")," are balanced between the storage nodes to ensure a better scalability and distribution."),(0,i.kt)("h2",{id:"status-and-network-coordinates-of-nodes"},"Status and Network Coordinates of nodes"),(0,i.kt)("p",null,"Beacon Chains also contains network status of the nodes where the public key starts by the Beacon Chain subset."),(0,i.kt)("p",null,"The storage nodes in each subset is in charge of:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"checking the node availabilities"),(0,i.kt)("li",{parentName:"ul"},"gathering networking information such as latency, bandwidth")),(0,i.kt)("p",null,"At the end of the day, a transaction is formed as well and a last transaction is computed to generate a summary of node availability and network coordinates"),(0,i.kt)("h2",{id:"slot"},"Slot"),(0,i.kt)("p",null,"Each ",(0,i.kt)("inlineCode",{parentName:"p"},"Beacon Chain")," is divided during the day into multiple slots, defined by interval (for instance every 10 min)."),(0,i.kt)("p",null,"Those slot contains the following information:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Transaction summaries: timestamping of the validated transactions",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"address: Transaction's address"),(0,i.kt)("li",{parentName:"ul"},"timestamp: Transaction validation time"),(0,i.kt)("li",{parentName:"ul"},"movements addresses: List of outputs addresses of the transaction"))),(0,i.kt)("li",{parentName:"ul"},"End of node synchronization: timestamping when a node finished its synchronization",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"node public key: Node's first public key"),(0,i.kt)("li",{parentName:"ul"},"timestamp: Time when the node synchronization ended"))),(0,i.kt)("li",{parentName:"ul"},"P2P view:",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"availabilities: binary form of the availability of the sampled nodes for the given subset"),(0,i.kt)("li",{parentName:"ul"},"network statistics: latency and bandwidth of the sampled nodes for the given subset")))))}u.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/f2faff8f.e367a436.js b/assets/js/f2faff8f.52b89b85.js similarity index 99% rename from assets/js/f2faff8f.e367a436.js rename to assets/js/f2faff8f.52b89b85.js index b808ee47c..f520456a1 100644 --- a/assets/js/f2faff8f.e367a436.js +++ b/assets/js/f2faff8f.52b89b85.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4106],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>m});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var s=n.createContext({}),h=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},c=function(e){var t=h(e.components);return n.createElement(s.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},p=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),d=h(a),p=r,m=d["".concat(s,".").concat(p)]||d[p]||u[p]||o;return a?n.createElement(m,i(i({ref:t},c),{},{components:a})):n.createElement(m,i({ref:t},c))}));function m(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,i=new Array(o);i[0]=p;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[d]="string"==typeof e?e:r,i[1]=l;for(var h=2;h{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>h});var n=a(87462),r=(a(67294),a(3905));a(8209);const o={id:"dex",title:"aeSwap"},i=void 0,l={unversionedId:"FAQ/dex",id:"FAQ/dex",title:"aeSwap",description:"General",source:"@site/docs/FAQ/dex.md",sourceDirName:"FAQ",slug:"/FAQ/dex",permalink:"/FAQ/dex",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"dex",title:"aeSwap"},sidebar:"docs",previous:{title:"aeBridge",permalink:"/FAQ/bridge-2-ways"},next:{title:"Migration of ERC-20 UCO Tokens",permalink:"/FAQ/migration-erc-token"}},s={},h=[{value:"General",id:"general",level:2},{value:"How to access the Archethic DEX named aeSwap ?",id:"how-to-access-the-archethic-dex-named-aeswap-",level:3},{value:"Is the Archethic DEX available on mobile devices?",id:"is-the-archethic-dex-available-on-mobile-devices",level:3},{value:"How is the price of UCO estimated?",id:"how-is-the-price-of-uco-estimated",level:3},{value:"What web browsers are not supported?",id:"what-web-browsers-are-not-supported",level:3},{value:"Why is a small quantity of liquidity pool shares removed when the first liquidity is added to a pool on Archethic?",id:"why-is-a-small-quantity-of-liquidity-pool-shares-removed-when-the-first-liquidity-is-added-to-a-pool-on-archethic",level:3},{value:"What does APR (24h) mean in the pool information?",id:"what-does-apr-24h-mean-in-the-pool-information",level:3},{value:"Wallet",id:"wallet",level:2},{value:"I\u2019m using the Mainnet network in the Wallet, how can I switch on the Testnet?",id:"im-using-the-mainnet-network-in-the-wallet-how-can-i-switch-on-the-testnet",level:3},{value:"Why can't I connect to the Archethic wallet with my Brave browser?",id:"why-cant-i-connect-to-the-archethic-wallet-with-my-brave-browser",level:3}],c={toc:h},d="wrapper";function u(e){let{components:t,...a}=e;return(0,r.kt)(d,(0,n.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"general"},"General"),(0,r.kt)("h3",{id:"how-to-access-the-archethic-dex-named-aeswap-"},"How to access the Archethic DEX named aeSwap ?"),(0,r.kt)("p",null,"You can access to aeSwap at : ",(0,r.kt)("a",{parentName:"p",href:"https://dex.archethic.net"},"https://dex.archethic.net")),(0,r.kt)("h3",{id:"is-the-archethic-dex-available-on-mobile-devices"},"Is the Archethic DEX available on mobile devices?"),(0,r.kt)("p",null,"Yes, from version 3 of aeWallet available on iOS and Android. ",(0,r.kt)("a",{parentName:"p",href:"https://www.archethic.net/wallet.html"},"https://www.archethic.net/wallet.html")),(0,r.kt)("h3",{id:"how-is-the-price-of-uco-estimated"},"How is the price of UCO estimated?"),(0,r.kt)("p",null,"The price of UCO is determined using an Archethic Oracle that consolidates information from various sources, including Coingecko and CoinMarketCap."),(0,r.kt)("h3",{id:"what-web-browsers-are-not-supported"},"What web browsers are not supported?"),(0,r.kt)("p",null,"The unsupported browsers are Edge and Internet Explorer.\nIf you experience issues with other browsers, please inform our teams via social media platforms such as Discord or Telegram, or submit an issue on GitHub.\nAll relevant links can be found on the Archethic website.\nThank you for your assistance."),(0,r.kt)("h3",{id:"why-is-a-small-quantity-of-liquidity-pool-shares-removed-when-the-first-liquidity-is-added-to-a-pool-on-archethic"},"Why is a small quantity of liquidity pool shares removed when the first liquidity is added to a pool on Archethic?"),(0,r.kt)("p",null,'During the initial creation of liquidity in a pool on Archethic, a small quantity of pool shares (exactly 10 shares on a scale of 100 million per share) is removed to prevent manipulations and rounding issues. This process involves the "burning" (destruction) of these shares by removing them from circulation. When a pool is created, we subtract 10 shares from what would normally be minted (created) for the user. '),(0,r.kt)("p",null,"This prevents potential attacks where someone might try to manipulate the value of the pool shares with very small amounts of liquidity, thus making participation more secure and equitable for all future liquidity providers. This mechanism ensures that the shares remain accessible even if the value of the pool increases significantly."),(0,r.kt)("h3",{id:"what-does-apr-24h-mean-in-the-pool-information"},"What does APR (24h) mean in the pool information?"),(0,r.kt)("p",null,"This is an estimation of the annual yield based on the fees generated by swaps over the last 24 hours. It provides an idea of the potential annual return based on recent performance."),(0,r.kt)("p",null,"The calculation is as follows: ","(","Fees from the last 24 hours ","*"," 365 ","*"," 100 / TVL",")","."),(0,r.kt)("h2",{id:"wallet"},"Wallet"),(0,r.kt)("h3",{id:"im-using-the-mainnet-network-in-the-wallet-how-can-i-switch-on-the-testnet"},"I\u2019m using the Mainnet network in the Wallet, how can I switch on the Testnet?"),(0,r.kt)("p",null,"The switch is not possible because the seed is not shared between Mainnet and Testnet. Later, the wallet will be multiseeds, but not for the moment. The only way for the moment is to remove the Wallet (don\u2019t forget the 24 words) and create/import a wallet on the Testnet network."),(0,r.kt)("h3",{id:"why-cant-i-connect-to-the-archethic-wallet-with-my-brave-browser"},"Why can't I connect to the Archethic wallet with my Brave browser?"),(0,r.kt)("p",null,"Brave includes a shield feature that might block certain local connections.\nTo successfully connect to the Archethic wallet, you'll need to modify the Brave browser\u2019s shield settings as per its documentation"),(0,r.kt)("hr",null))}u.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4106],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>m});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var s=n.createContext({}),h=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},c=function(e){var t=h(e.components);return n.createElement(s.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},p=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),d=h(a),p=r,m=d["".concat(s,".").concat(p)]||d[p]||u[p]||o;return a?n.createElement(m,i(i({ref:t},c),{},{components:a})):n.createElement(m,i({ref:t},c))}));function m(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,i=new Array(o);i[0]=p;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[d]="string"==typeof e?e:r,i[1]=l;for(var h=2;h{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>h});var n=a(87462),r=(a(67294),a(3905));a(8209);const o={id:"dex",title:"aeSwap"},i=void 0,l={unversionedId:"FAQ/dex",id:"FAQ/dex",title:"aeSwap",description:"General",source:"@site/docs/FAQ/dex.md",sourceDirName:"FAQ",slug:"/FAQ/dex",permalink:"/FAQ/dex",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"dex",title:"aeSwap"},sidebar:"docs",previous:{title:"aeBridge",permalink:"/FAQ/bridge-2-ways"},next:{title:"Migration of ERC-20 UCO Tokens",permalink:"/FAQ/migration-erc-token"}},s={},h=[{value:"General",id:"general",level:2},{value:"How to access the Archethic DEX named aeSwap ?",id:"how-to-access-the-archethic-dex-named-aeswap-",level:3},{value:"Is the Archethic DEX available on mobile devices?",id:"is-the-archethic-dex-available-on-mobile-devices",level:3},{value:"How is the price of UCO estimated?",id:"how-is-the-price-of-uco-estimated",level:3},{value:"What web browsers are not supported?",id:"what-web-browsers-are-not-supported",level:3},{value:"Why is a small quantity of liquidity pool shares removed when the first liquidity is added to a pool on Archethic?",id:"why-is-a-small-quantity-of-liquidity-pool-shares-removed-when-the-first-liquidity-is-added-to-a-pool-on-archethic",level:3},{value:"What does APR (24h) mean in the pool information?",id:"what-does-apr-24h-mean-in-the-pool-information",level:3},{value:"Wallet",id:"wallet",level:2},{value:"I\u2019m using the Mainnet network in the Wallet, how can I switch on the Testnet?",id:"im-using-the-mainnet-network-in-the-wallet-how-can-i-switch-on-the-testnet",level:3},{value:"Why can't I connect to the Archethic wallet with my Brave browser?",id:"why-cant-i-connect-to-the-archethic-wallet-with-my-brave-browser",level:3}],c={toc:h},d="wrapper";function u(e){let{components:t,...a}=e;return(0,r.kt)(d,(0,n.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"general"},"General"),(0,r.kt)("h3",{id:"how-to-access-the-archethic-dex-named-aeswap-"},"How to access the Archethic DEX named aeSwap ?"),(0,r.kt)("p",null,"You can access to aeSwap at : ",(0,r.kt)("a",{parentName:"p",href:"https://dex.archethic.net"},"https://dex.archethic.net")),(0,r.kt)("h3",{id:"is-the-archethic-dex-available-on-mobile-devices"},"Is the Archethic DEX available on mobile devices?"),(0,r.kt)("p",null,"Yes, from version 3 of aeWallet available on iOS and Android. ",(0,r.kt)("a",{parentName:"p",href:"https://www.archethic.net/wallet.html"},"https://www.archethic.net/wallet.html")),(0,r.kt)("h3",{id:"how-is-the-price-of-uco-estimated"},"How is the price of UCO estimated?"),(0,r.kt)("p",null,"The price of UCO is determined using an Archethic Oracle that consolidates information from various sources, including Coingecko and CoinMarketCap."),(0,r.kt)("h3",{id:"what-web-browsers-are-not-supported"},"What web browsers are not supported?"),(0,r.kt)("p",null,"The unsupported browsers are Edge and Internet Explorer.\nIf you experience issues with other browsers, please inform our teams via social media platforms such as Discord or Telegram, or submit an issue on GitHub.\nAll relevant links can be found on the Archethic website.\nThank you for your assistance."),(0,r.kt)("h3",{id:"why-is-a-small-quantity-of-liquidity-pool-shares-removed-when-the-first-liquidity-is-added-to-a-pool-on-archethic"},"Why is a small quantity of liquidity pool shares removed when the first liquidity is added to a pool on Archethic?"),(0,r.kt)("p",null,'During the initial creation of liquidity in a pool on Archethic, a small quantity of pool shares (exactly 10 shares on a scale of 100 million per share) is removed to prevent manipulations and rounding issues. This process involves the "burning" (destruction) of these shares by removing them from circulation. When a pool is created, we subtract 10 shares from what would normally be minted (created) for the user. '),(0,r.kt)("p",null,"This prevents potential attacks where someone might try to manipulate the value of the pool shares with very small amounts of liquidity, thus making participation more secure and equitable for all future liquidity providers. This mechanism ensures that the shares remain accessible even if the value of the pool increases significantly."),(0,r.kt)("h3",{id:"what-does-apr-24h-mean-in-the-pool-information"},"What does APR (24h) mean in the pool information?"),(0,r.kt)("p",null,"This is an estimation of the annual yield based on the fees generated by swaps over the last 24 hours. It provides an idea of the potential annual return based on recent performance."),(0,r.kt)("p",null,"The calculation is as follows: ","(","Fees from the last 24 hours ","*"," 365 ","*"," 100 / TVL",")","."),(0,r.kt)("h2",{id:"wallet"},"Wallet"),(0,r.kt)("h3",{id:"im-using-the-mainnet-network-in-the-wallet-how-can-i-switch-on-the-testnet"},"I\u2019m using the Mainnet network in the Wallet, how can I switch on the Testnet?"),(0,r.kt)("p",null,"The switch is not possible because the seed is not shared between Mainnet and Testnet. Later, the wallet will be multiseeds, but not for the moment. The only way for the moment is to remove the Wallet (don\u2019t forget the 24 words) and create/import a wallet on the Testnet network."),(0,r.kt)("h3",{id:"why-cant-i-connect-to-the-archethic-wallet-with-my-brave-browser"},"Why can't I connect to the Archethic wallet with my Brave browser?"),(0,r.kt)("p",null,"Brave includes a shield feature that might block certain local connections.\nTo successfully connect to the Archethic wallet, you'll need to modify the Brave browser\u2019s shield settings as per its documentation"),(0,r.kt)("hr",null))}u.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file diff --git a/assets/js/f3b8755c.f82fa72a.js b/assets/js/f3b8755c.87616385.js similarity index 99% rename from assets/js/f3b8755c.f82fa72a.js rename to assets/js/f3b8755c.87616385.js index 5274d1598..86907d648 100644 --- a/assets/js/f3b8755c.f82fa72a.js +++ b/assets/js/f3b8755c.87616385.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4082],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>d});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var c=r.createContext({}),p=function(e){var t=r.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},s=function(e){var t=p(e.components);return r.createElement(c.Provider,{value:t},e.children)},h="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,l=e.originalType,c=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),h=p(a),m=n,d=h["".concat(c,".").concat(m)]||h[m]||u[m]||l;return a?r.createElement(d,i(i({ref:t},s),{},{components:a})):r.createElement(d,i({ref:t},s))}));function d(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=a.length,i=new Array(l);i[0]=m;var o={};for(var c in t)hasOwnProperty.call(t,c)&&(o[c]=t[c]);o.originalType=e,o[h]="string"==typeof e?e:n,i[1]=o;for(var p=2;p{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>u,frontMatter:()=>l,metadata:()=>o,toc:()=>p});var r=a(87462),n=(a(67294),a(3905));a(8209);const l={id:"crypto",title:"Crypto module",sidebar_label:"Crypto"},i=void 0,o={unversionedId:"build/smart-contracts/language/library/crypto",id:"build/smart-contracts/language/library/crypto",title:"Crypto module",description:"The Crypto module contains functions that deal with cryptography.",source:"@site/docs/build/smart-contracts/language/library/crypto.md",sourceDirName:"build/smart-contracts/language/library",slug:"/build/smart-contracts/language/library/crypto",permalink:"/build/smart-contracts/language/library/crypto",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"crypto",title:"Crypto module",sidebar_label:"Crypto"},sidebar:"docs",previous:{title:"Contract",permalink:"/build/smart-contracts/language/library/contract"},next:{title:"Evm",permalink:"/build/smart-contracts/language/library/evm"}},c={},p=[{value:"hash/1",id:"hash1",level:3},{value:"hash/2",id:"hash2",level:3},{value:"hmac/1",id:"hmac1",level:3},{value:"hmac/2",id:"hmac2",level:3},{value:"hmac/3",id:"hmac3",level:3},{value:"sign_with_recovery/1",id:"sign_with_recovery1",level:3},{value:"decrypt_with_storage_nonce/1",id:"decrypt_with_storage_nonce1",level:3}],s={toc:p},h="wrapper";function u(e){let{components:t,...a}=e;return(0,n.kt)(h,(0,r.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"The ",(0,n.kt)("inlineCode",{parentName:"p"},"Crypto")," module contains functions that deal with cryptography."),(0,n.kt)("h3",{id:"hash1"},"hash/1"),(0,n.kt)("p",null,"Equivalent to ",(0,n.kt)("a",{parentName:"p",href:"#hash2"},"hash/2"),' with the second argument "sha256".'),(0,n.kt)("h3",{id:"hash2"},"hash/2"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-elixir"},'Crypto.hash("my text", "sha256") # "7330D2B39CA35EA..."\nCrypto.hash("my text", "sha512") # "A3D7E45A0D9BE5F..."\n')),(0,n.kt)("p",null,"Parameters:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"str")," the text to hash"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"algo"),' the hash algorithm ("sha256", "sha512", "sha3_256", "sha3_512", "blake2b", "keccak256")')),(0,n.kt)("p",null,"Returns the hash of ",(0,n.kt)("inlineCode",{parentName:"p"},"str")," by using ",(0,n.kt)("inlineCode",{parentName:"p"},"algo")," algorithm."),(0,n.kt)("h3",{id:"hmac1"},"hmac/1"),(0,n.kt)("p",null,"Equivalent to ",(0,n.kt)("a",{parentName:"p",href:"#hmac2"},"hmac/2"),' with the second argument "sha256".'),(0,n.kt)("h3",{id:"hmac2"},"hmac/2"),(0,n.kt)("p",null,"Equivalent to ",(0,n.kt)("a",{parentName:"p",href:"#hmac3"},"hmac/3")," with the third argument being a key created from the contract seed and secret data known by nodes.\nThe key created is deterministic and will always be the same for a contract."),(0,n.kt)("h3",{id:"hmac3"},"hmac/3"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-elixir"},'Crypto.hmac("my text") # "374C7527733556..."\nCrypto.hmac("my text", "sha256") # "374C7527733556..."\nCrypto.hmac("my text", "sha256", "secret_key") # "901A365FF22B895..."\n')),(0,n.kt)("p",null,"Parameters:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"data")," the data to hash (if the data is hexadecimal it will be decoded in binary)"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"algo"),' the hash algorithm ("sha256", "sha512", "sha3_256", "sha3_512")'),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"key")," the key to perform the hmac (if the data is hexadecimal it will be decoded in binary)")),(0,n.kt)("p",null,"Returns the hmac of ",(0,n.kt)("inlineCode",{parentName:"p"},"data")," with ",(0,n.kt)("inlineCode",{parentName:"p"},"key")," using ",(0,n.kt)("inlineCode",{parentName:"p"},"algo"),"."),(0,n.kt)("h3",{id:"sign_with_recovery1"},"sign_with_recovery/1"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-elixir"},'signature_payload = Crypto.hash("tintin", "keccak256")\nCrypto.sign_with_recovery(signature_payload) # [r: "00ABCD...", s: "00BCDE...", v: 0]\n')),(0,n.kt)("p",null,"Parameters:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"hash")," the hash to sign")),(0,n.kt)("p",null,"Return a signature of the given ",(0,n.kt)("inlineCode",{parentName:"p"},"hash"),"."),(0,n.kt)("h3",{id:"decrypt_with_storage_nonce1"},"decrypt_with_storage_nonce/1"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-elixir"},"ciphertext = 0x374C7527733556\nCrypto.decrypt_with_storage_nonce(ciphertext) # Clear text\n")),(0,n.kt)("p",null,"Parameters:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"ciphertext")," The encrypted data to decrypt")),(0,n.kt)("p",null,"Return the cleartext out from the decryption algorithm"))}u.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4082],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>d});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var c=r.createContext({}),p=function(e){var t=r.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},s=function(e){var t=p(e.components);return r.createElement(c.Provider,{value:t},e.children)},h="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,l=e.originalType,c=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),h=p(a),m=n,d=h["".concat(c,".").concat(m)]||h[m]||u[m]||l;return a?r.createElement(d,i(i({ref:t},s),{},{components:a})):r.createElement(d,i({ref:t},s))}));function d(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=a.length,i=new Array(l);i[0]=m;var o={};for(var c in t)hasOwnProperty.call(t,c)&&(o[c]=t[c]);o.originalType=e,o[h]="string"==typeof e?e:n,i[1]=o;for(var p=2;p{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>u,frontMatter:()=>l,metadata:()=>o,toc:()=>p});var r=a(87462),n=(a(67294),a(3905));a(8209);const l={id:"crypto",title:"Crypto module",sidebar_label:"Crypto"},i=void 0,o={unversionedId:"build/smart-contracts/language/library/crypto",id:"build/smart-contracts/language/library/crypto",title:"Crypto module",description:"The Crypto module contains functions that deal with cryptography.",source:"@site/docs/build/smart-contracts/language/library/crypto.md",sourceDirName:"build/smart-contracts/language/library",slug:"/build/smart-contracts/language/library/crypto",permalink:"/build/smart-contracts/language/library/crypto",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"crypto",title:"Crypto module",sidebar_label:"Crypto"},sidebar:"docs",previous:{title:"Contract",permalink:"/build/smart-contracts/language/library/contract"},next:{title:"Evm",permalink:"/build/smart-contracts/language/library/evm"}},c={},p=[{value:"hash/1",id:"hash1",level:3},{value:"hash/2",id:"hash2",level:3},{value:"hmac/1",id:"hmac1",level:3},{value:"hmac/2",id:"hmac2",level:3},{value:"hmac/3",id:"hmac3",level:3},{value:"sign_with_recovery/1",id:"sign_with_recovery1",level:3},{value:"decrypt_with_storage_nonce/1",id:"decrypt_with_storage_nonce1",level:3}],s={toc:p},h="wrapper";function u(e){let{components:t,...a}=e;return(0,n.kt)(h,(0,r.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"The ",(0,n.kt)("inlineCode",{parentName:"p"},"Crypto")," module contains functions that deal with cryptography."),(0,n.kt)("h3",{id:"hash1"},"hash/1"),(0,n.kt)("p",null,"Equivalent to ",(0,n.kt)("a",{parentName:"p",href:"#hash2"},"hash/2"),' with the second argument "sha256".'),(0,n.kt)("h3",{id:"hash2"},"hash/2"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-elixir"},'Crypto.hash("my text", "sha256") # "7330D2B39CA35EA..."\nCrypto.hash("my text", "sha512") # "A3D7E45A0D9BE5F..."\n')),(0,n.kt)("p",null,"Parameters:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"str")," the text to hash"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"algo"),' the hash algorithm ("sha256", "sha512", "sha3_256", "sha3_512", "blake2b", "keccak256")')),(0,n.kt)("p",null,"Returns the hash of ",(0,n.kt)("inlineCode",{parentName:"p"},"str")," by using ",(0,n.kt)("inlineCode",{parentName:"p"},"algo")," algorithm."),(0,n.kt)("h3",{id:"hmac1"},"hmac/1"),(0,n.kt)("p",null,"Equivalent to ",(0,n.kt)("a",{parentName:"p",href:"#hmac2"},"hmac/2"),' with the second argument "sha256".'),(0,n.kt)("h3",{id:"hmac2"},"hmac/2"),(0,n.kt)("p",null,"Equivalent to ",(0,n.kt)("a",{parentName:"p",href:"#hmac3"},"hmac/3")," with the third argument being a key created from the contract seed and secret data known by nodes.\nThe key created is deterministic and will always be the same for a contract."),(0,n.kt)("h3",{id:"hmac3"},"hmac/3"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-elixir"},'Crypto.hmac("my text") # "374C7527733556..."\nCrypto.hmac("my text", "sha256") # "374C7527733556..."\nCrypto.hmac("my text", "sha256", "secret_key") # "901A365FF22B895..."\n')),(0,n.kt)("p",null,"Parameters:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"data")," the data to hash (if the data is hexadecimal it will be decoded in binary)"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"algo"),' the hash algorithm ("sha256", "sha512", "sha3_256", "sha3_512")'),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"key")," the key to perform the hmac (if the data is hexadecimal it will be decoded in binary)")),(0,n.kt)("p",null,"Returns the hmac of ",(0,n.kt)("inlineCode",{parentName:"p"},"data")," with ",(0,n.kt)("inlineCode",{parentName:"p"},"key")," using ",(0,n.kt)("inlineCode",{parentName:"p"},"algo"),"."),(0,n.kt)("h3",{id:"sign_with_recovery1"},"sign_with_recovery/1"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-elixir"},'signature_payload = Crypto.hash("tintin", "keccak256")\nCrypto.sign_with_recovery(signature_payload) # [r: "00ABCD...", s: "00BCDE...", v: 0]\n')),(0,n.kt)("p",null,"Parameters:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"hash")," the hash to sign")),(0,n.kt)("p",null,"Return a signature of the given ",(0,n.kt)("inlineCode",{parentName:"p"},"hash"),"."),(0,n.kt)("h3",{id:"decrypt_with_storage_nonce1"},"decrypt_with_storage_nonce/1"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-elixir"},"ciphertext = 0x374C7527733556\nCrypto.decrypt_with_storage_nonce(ciphertext) # Clear text\n")),(0,n.kt)("p",null,"Parameters:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"ciphertext")," The encrypted data to decrypt")),(0,n.kt)("p",null,"Return the cleartext out from the decryption algorithm"))}u.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file diff --git a/assets/js/f3ebdb21.e8c16e04.js b/assets/js/f3ebdb21.e8c16e04.js deleted file mode 100644 index 151125d17..000000000 --- a/assets/js/f3ebdb21.e8c16e04.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9333],{3905:(e,t,i)=>{i.d(t,{Zo:()=>M,kt:()=>u});var a=i(67294);function n(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function r(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,a)}return i}function o(e){for(var t=1;t=0||(n[i]=e[i]);return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(n[i]=e[i])}return n}var c=a.createContext({}),l=function(e){var t=a.useContext(c),i=t;return e&&(i="function"==typeof e?e(t):o(o({},t),e)),i},M=function(e){var t=l(e.components);return a.createElement(c.Provider,{value:t},e.children)},h="mdxType",g={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},I=a.forwardRef((function(e,t){var i=e.components,n=e.mdxType,r=e.originalType,c=e.parentName,M=s(e,["components","mdxType","originalType","parentName"]),h=l(i),I=n,u=h["".concat(c,".").concat(I)]||h[I]||g[I]||r;return i?a.createElement(u,o(o({ref:t},M),{},{components:i})):a.createElement(u,o({ref:t},M))}));function u(e,t){var i=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var r=i.length,o=new Array(r);o[0]=I;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[h]="string"==typeof e?e:n,o[1]=s;for(var l=2;l{i.r(t),i.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>g,frontMatter:()=>r,metadata:()=>s,toc:()=>l});var a=i(87462),n=(i(67294),i(3905));i(8209);const r={id:"bridge-2-ways",title:"aeBridge"},o=void 0,s={unversionedId:"FAQ/bridge-2-ways",id:"FAQ/bridge-2-ways",title:"aeBridge",description:"General",source:"@site/docs/FAQ/bridge-2-ways.md",sourceDirName:"FAQ",slug:"/FAQ/bridge-2-ways",permalink:"/FAQ/bridge-2-ways",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"bridge-2-ways",title:"aeBridge"},sidebar:"docs",previous:{title:"aeHosting",permalink:"/FAQ/aeweb"},next:{title:"aeSwap",permalink:"/FAQ/dex"}},c={},l=[{value:"General",id:"general",level:2},{value:"What is Archethic Bridge?",id:"what-is-archethic-bridge",level:3},{value:"How to access the Archethic Bridge ?",id:"how-to-access-the-archethic-bridge-",level:3},{value:"Which blockchain is better to bridge my UCOs?",id:"which-blockchain-is-better-to-bridge-my-ucos",level:3},{value:"What blockchains does the Archethic Bridge support?",id:"what-blockchains-does-the-archethic-bridge-support",level:3},{value:"Is the Archethic Bridge available on mobile devices?",id:"is-the-archethic-bridge-available-on-mobile-devices",level:3},{value:"What is an EVM wallet?",id:"what-is-an-evm-wallet",level:3},{value:"How is the price of $UCO estimated?",id:"how-is-the-price-of-uco-estimated",level:3},{value:"How long is the predetermined time?",id:"how-long-is-the-predetermined-time",level:3},{value:"Is the bridge audited?",id:"is-the-bridge-audited",level:3},{value:"Key Concepts",id:"key-concepts",level:2},{value:"What is an HTLC (Hash Time Lock Contract) in the context of Archethic's bridge?",id:"what-is-an-htlc-hash-time-lock-contract-in-the-context-of-archethics-bridge",level:3},{value:"How does Archethic's cross-chain verification work?",id:"how-does-archethics-cross-chain-verification-work",level:3},{value:"Specifics of Bridging",id:"specifics-of-bridging",level:2},{value:"How does the process of bridging from EVM to Archethic work?",id:"how-does-the-process-of-bridging-from-evm-to-archethic-work",level:3},{value:"What is the process for bridging from Archethic to EVM?",id:"what-is-the-process-for-bridging-from-archethic-to-evm",level:3},{value:"Wallet",id:"wallet",level:2},{value:"I\u2019m using the Mainnet network in the Wallet, how can I switch on the Testnet?",id:"im-using-the-mainnet-network-in-the-wallet-how-can-i-switch-on-the-testnet",level:3},{value:"Why can't I connect to the Archethic wallet with my Brave browser?",id:"why-cant-i-connect-to-the-archethic-wallet-with-my-brave-browser",level:3},{value:"Testnet",id:"testnet",level:2},{value:"How do I set up Ethereum Sepolia, Binance Testnet and Polygon Mumbai in my EVM Wallet?",id:"how-do-i-set-up-ethereum-sepolia-binance-testnet-and-polygon-mumbai-in-my-evm-wallet",level:3},{value:"How can I buy $UCO after receiving $ETH, $MATIC, or $BNB?",id:"how-can-i-buy-uco-after-receiving-eth-matic-or-bnb",level:3},{value:"Issues management",id:"issues-management",level:2},{value:"What happens if a problem occurs, or I refuse a transaction during the transfer?",id:"what-happens-if-a-problem-occurs-or-i-refuse-a-transaction-during-the-transfer",level:3},{value:"If I sent the tokens to a wrong Mainnet address, what to do?",id:"if-i-sent-the-tokens-to-a-wrong-mainnet-address-what-to-do",level:3},{value:"Can I help the developers analyze the problems?",id:"can-i-help-the-developers-analyze-the-problems",level:3},{value:"While a bridge from Archethic to EVM Blockchain, I have an error '1405'",id:"while-a-bridge-from-archethic-to-evm-blockchain-i-have-an-error-1405",level:3},{value:"The bridge does not recognize my EVM wallet. What should I do?",id:"the-bridge-does-not-recognize-my-evm-wallet-what-should-i-do",level:3}],M={toc:l},h="wrapper";function g(e){let{components:t,...r}=e;return(0,n.kt)(h,(0,a.Z)({},M,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"general"},"General"),(0,n.kt)("h3",{id:"what-is-archethic-bridge"},"What is Archethic Bridge?"),(0,n.kt)("p",null,"The Archethic Bridge is a decentralized, peer-to-peer bridge that enables the seamless exchange of UCO ERC20 tokens and other major cryptocurrencies like ETH, MATIC, and BNB between the Archethic blockchain and various other blockchains, including Ethereum, Polygon, and BSC."),(0,n.kt)("p",null,"This functionality allows for the transfer of these assets into their equivalent forms on Archethic, such as aeETH, aeMATIC, and aeBNB, providing a secure and straightforward method for exchanging assets. The bridge utilizes atomic swap technology, specifically Hash Time Lock Contracts (HTLC), to facilitate secure and intermediary-free transactions."),(0,n.kt)("p",null,"Moreover, it incorporates Archethic's unique cross-chain verification technique, enhancing the security and decentralization of these exchanges."),(0,n.kt)("p",null,"This bridge significantly expands the interoperability between Archethic and other blockchain networks, allowing for greater flexibility and integration within the broader blockchain ecosystem."),(0,n.kt)("h3",{id:"how-to-access-the-archethic-bridge-"},"How to access the Archethic Bridge ?"),(0,n.kt)("p",null,"You can access the bridge at : ",(0,n.kt)("a",{parentName:"p",href:"https://bridge.archethic.net"},"https://bridge.archethic.net")),(0,n.kt)("h3",{id:"which-blockchain-is-better-to-bridge-my-ucos"},"Which blockchain is better to bridge my UCOs?"),(0,n.kt)("p",null,"Using the 3 blockchains, the result will be the same, but fees are not the same between Ethereum, Polygon (PoS) and BSC.\nPolygon has the lowest fees."),(0,n.kt)("p",null,(0,n.kt)("img",{alt:"bridge-blockchains",src:i(32909).Z,width:"111",height:"102"})),(0,n.kt)("h3",{id:"what-blockchains-does-the-archethic-bridge-support"},"What blockchains does the Archethic Bridge support?"),(0,n.kt)("p",null,"The Archethic Bridge currently supports bridging between the Archethic blockchain and various EVM (Ethereum Virtual Machine) compatible blockchains."),(0,n.kt)("h3",{id:"is-the-archethic-bridge-available-on-mobile-devices"},"Is the Archethic Bridge available on mobile devices?"),(0,n.kt)("p",null,"No, the Archethic Bridge application is designed exclusively for the moment for desktop use and is compatible with macOS, Linux, and Windows operating systems."),(0,n.kt)("h3",{id:"what-is-an-evm-wallet"},"What is an EVM wallet?"),(0,n.kt)("p",null,"An EVM (Ethereum Virtual Machine) wallet is a digital wallet designed to interact with blockchains that are compatible with the Ethereum Virtual Machine. EVM wallets can store, send, and receive Ether (ETH) and other EVM-compatible tokens, execute smart contracts, and interact with decentralized applications (dApps) on EVM-compatible networks."),(0,n.kt)("h3",{id:"how-is-the-price-of-uco-estimated"},"How is the price of $UCO estimated?"),(0,n.kt)("p",null,"The price of $UCO is determined using an Archethic Oracle that consolidates information from various sources, including Coingecko and CoinMarketCap."),(0,n.kt)("h3",{id:"how-long-is-the-predetermined-time"},"How long is the predetermined time?"),(0,n.kt)("p",null,"The timelock lasts 2 hours."),(0,n.kt)("h3",{id:"is-the-bridge-audited"},"Is the bridge audited?"),(0,n.kt)("p",null,"Yes, our EVM smart contracts have been audited by ",(0,n.kt)("a",{parentName:"p",href:"https://hacken.io"},"Hacken"),", a recognized leader in blockchain security. The full audit report is available ",(0,n.kt)("a",{target:"_blank",href:i(78188).Z},"here"),"."),(0,n.kt)("h2",{id:"key-concepts"},"Key Concepts"),(0,n.kt)("h3",{id:"what-is-an-htlc-hash-time-lock-contract-in-the-context-of-archethics-bridge"},"What is an HTLC (Hash Time Lock Contract) in the context of Archethic's bridge?"),(0,n.kt)("p",null,"HTLC stands for Hash Time Lock Contract. In Archethic's bridge, it is a type of contract used in atomic swaps to securely exchange assets in a peer-to-peer manner without intermediaries. These contracts lock funds until a secret is revealed or a specified time period elapses, ensuring a secure and reversible asset exchange."),(0,n.kt)("h3",{id:"how-does-archethics-cross-chain-verification-work"},"How does Archethic's cross-chain verification work?"),(0,n.kt)("p",null,"Archethic's cross-chain verification enhances atomic swaps by allowing data retrieval outside of the blockchain. This makes the process fully decentralized and strengthens the security model. Archethic's nodes can verify transaction status on other chains, like EVM blockchains, establishing a strong consensus on the status of a swap."),(0,n.kt)("h2",{id:"specifics-of-bridging"},"Specifics of Bridging"),(0,n.kt)("h3",{id:"how-does-the-process-of-bridging-from-evm-to-archethic-work"},"How does the process of bridging from EVM to Archethic work?"),(0,n.kt)("p",null,"To bridge from EVM to Archethic, a user deploys an HTLC smart contract on both blockchains. The process involves locking funds using a secret and its hash, verifying the transaction across chains, minting new tokens on Archethic, and transferring funds to respective recipient wallets. The entire process is secured by atomic swaps and Archethic's cross-chain verification."),(0,n.kt)("h3",{id:"what-is-the-process-for-bridging-from-archethic-to-evm"},"What is the process for bridging from Archethic to EVM?"),(0,n.kt)("p",null,"Bridging from Archethic to EVM follows a similar pattern but in reverse. It introduces an additional step where EVM cannot directly request information from the blockchain. Instead, cryptography is used to assert actions through signatures, ensuring non-repudiation. This involves creating and funding HTLC contracts on both blockchains, revealing secrets, and transferring funds securely."),(0,n.kt)("h2",{id:"wallet"},"Wallet"),(0,n.kt)("h3",{id:"im-using-the-mainnet-network-in-the-wallet-how-can-i-switch-on-the-testnet"},"I\u2019m using the Mainnet network in the Wallet, how can I switch on the Testnet?"),(0,n.kt)("p",null,"The switch is not possible because the seed is not shared between Mainnet and Testnet. Later, the wallet will be multiseeds, but not for the moment. The only way for the moment is to remove the Wallet (don\u2019t forget the 24 words) and create/import a wallet on the Testnet network."),(0,n.kt)("h3",{id:"why-cant-i-connect-to-the-archethic-wallet-with-my-brave-browser"},"Why can't I connect to the Archethic wallet with my Brave browser?"),(0,n.kt)("p",null,"Brave includes a shield feature that might block certain local connections.\nTo successfully connect to the Archethic wallet, you'll need to modify the Brave browser\u2019s shield settings as per its documentation"),(0,n.kt)("h2",{id:"testnet"},"Testnet"),(0,n.kt)("h3",{id:"how-do-i-set-up-ethereum-sepolia-binance-testnet-and-polygon-mumbai-in-my-evm-wallet"},"How do I set up Ethereum Sepolia, Binance Testnet and Polygon Mumbai in my EVM Wallet?"),(0,n.kt)("p",null,"To configure these networks in your EVM Wallet, you'll need to go to the wallet's settings and manually add each network using the Chain ID and Explorer URL provided above."),(0,n.kt)("p",null,"Ethereum Sepolia Testnet:",(0,n.kt)("br",null),"\nURL RPC: Choose a RPC server address: ",(0,n.kt)("a",{parentName:"p",href:"https://chainlist.org/chain/11155111"},"https://chainlist.org/chain/11155111"),(0,n.kt)("br",null),"\nChain ID: 11155111",(0,n.kt)("br",null),"\nSymbol: ETH",(0,n.kt)("br",null),"\nExplorer URL: ",(0,n.kt)("a",{parentName:"p",href:"https://sepolia.etherscan.io/"},"https://sepolia.etherscan.io/"),(0,n.kt)("br",null)),(0,n.kt)("p",null,"Binance Smart Chain Testnet:",(0,n.kt)("br",null),"\nURL RPC: Choose a RPC server address: ",(0,n.kt)("a",{parentName:"p",href:"https://chainlist.org/chain/97"},"https://chainlist.org/chain/97"),(0,n.kt)("br",null),"\nChain ID: 97",(0,n.kt)("br",null),"\nSymbol: tBNB",(0,n.kt)("br",null),"\nExplorer URL: ",(0,n.kt)("a",{parentName:"p",href:"https://testnet.bscscan.com/"},"https://testnet.bscscan.com/"),(0,n.kt)("br",null)),(0,n.kt)("p",null,"Polygon Mumbai Testnet no longer supported. Amoy will be later"),(0,n.kt)("h3",{id:"how-can-i-buy-uco-after-receiving-eth-matic-or-bnb"},"How can I buy $UCO after receiving $ETH, $MATIC, or $BNB?"),(0,n.kt)("p",null,"You will be able to buy some $UCO with $ETH / $MATIC or $BNB using the appropriate decentralized exchange (DEX) for your network.\nRemember to set the slippage according to the amount's impact on liquidity.\nHere's how you can do it for each network:"),(0,n.kt)("p",null,"ETH : ",(0,n.kt)("a",{parentName:"p",href:"https://app.uniswap.org/"},"https://app.uniswap.org/"),(0,n.kt)("br",null),"\nERC20 UCO contract address: 0x8a3d77e9d6968b780564936d15B09805827C21fa",(0,n.kt)("br",null)),(0,n.kt)("p",null,"Polygon: ",(0,n.kt)("a",{parentName:"p",href:"https://app.uniswap.org/"},"https://app.uniswap.org/"),(0,n.kt)("br",null),"\nERC20 UCO contract address: 0x3c720206bfacb2d16fa3ac0ed87d2048dbc401fc",(0,n.kt)("br",null)),(0,n.kt)("p",null,"BSC: ",(0,n.kt)("a",{parentName:"p",href:"https://pancakeswap.finance/liquidity?chain=bscTestnet"},"https://pancakeswap.finance/liquidity?chain=bscTestnet"),(0,n.kt)("br",null),"\nERC20 UCO contract address: 0xb001f1e7c8bda414ac7cf7ecba5469fe8d24b6de",(0,n.kt)("br",null)),(0,n.kt)("p",null,"Ensure that you connect your wallet to the respective DEX platform and follow the instructions to make the swap."),(0,n.kt)("h2",{id:"issues-management"},"Issues management"),(0,n.kt)("h3",{id:"what-happens-if-a-problem-occurs-or-i-refuse-a-transaction-during-the-transfer"},"What happens if a problem occurs, or I refuse a transaction during the transfer?"),(0,n.kt)("p",null,'During the delay of the acknowledgment, you should wait for the end of the duration, and you can tell the refund of your ERC20 Wallet with the "Refund" button available on your Archethic Bridge application.'),(0,n.kt)("h3",{id:"if-i-sent-the-tokens-to-a-wrong-mainnet-address-what-to-do"},"If I sent the tokens to a wrong Mainnet address, what to do?"),(0,n.kt)("p",null,"You lose the tokens if the Mainnet address is not your address. Same thing if you do an error in the address (for example a 0 instead of 1)."),(0,n.kt)("h3",{id:"can-i-help-the-developers-analyze-the-problems"},"Can I help the developers analyze the problems?"),(0,n.kt)("p",null,"You can help developers improve the application by submitting information that describes the state of the application.\nTo do this, you can copy/paste your transaction from your local history in the application."),(0,n.kt)("h3",{id:"while-a-bridge-from-archethic-to-evm-blockchain-i-have-an-error-1405"},"While a bridge from Archethic to EVM Blockchain, I have an error '1405'"),(0,n.kt)("p",null,"First, rest assured that you will not lose your funds initiated in the bridging process.\nNote the address of the Archethic contract indicated under the error message (or available in your local history) and contact Archethic support via social media (Telegram or Discord) who will resolve the issue and help you complete your bridge."),(0,n.kt)("h3",{id:"the-bridge-does-not-recognize-my-evm-wallet-what-should-i-do"},"The bridge does not recognize my EVM wallet. What should I do?"),(0,n.kt)("p",null,"If your EVM wallet is not recognized by the bridge, follow these steps to resolve the issue:"),(0,n.kt)("p",null,"1) ",(0,n.kt)("strong",{parentName:"p"},"Check your wallet version"),": Make sure you are using the latest version of your EVM wallet. Update if necessary.",(0,n.kt)("br",null),"\n2) ",(0,n.kt)("strong",{parentName:"p"},"Open your wallet"),": Ensure that your EVM wallet is open and that you have entered your password.",(0,n.kt)("br",null),"\n3) ",(0,n.kt)("strong",{parentName:"p"},"Wallet conflicts"),": Verify that you do not have multiple EVM wallets active at the same time. Having several wallets open can cause conflicts.",(0,n.kt)("br",null),"\n4) ",(0,n.kt)("strong",{parentName:"p"},"Deactivate other wallets"),": Deactivate all open EVM wallets except the one you want to use. This ensures that only the desired wallet is active, avoiding any conflicts.",(0,n.kt)("br",null)),(0,n.kt)("p",null,"By following these steps, you should be able to resolve the issue of the bridge not recognizing your EVM wallet."),(0,n.kt)("hr",null))}g.isMDXComponent=!0},78188:(e,t,i)=>{i.d(t,{Z:()=>a});const a=i.p+"assets/files/aebridge_hacken-5b4da95c00238c6be091290aa6e2e503.pdf"},32909:(e,t,i)=>{i.d(t,{Z:()=>a});const a="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMTExcHgiIGhlaWdodD0iMTAycHgiIHZpZXdCb3g9IjAgMCAxMTEgMTAyIiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogICAgPHRpdGxlPkJsb2NrY2hhbjwvdGl0bGU+CiAgICA8ZGVmcz4KICAgICAgICA8cmVjdCBpZD0icGF0aC0xIiB4PSIwIiB5PSIwIiB3aWR0aD0iMzIiIGhlaWdodD0iMjgiPjwvcmVjdD4KICAgIDwvZGVmcz4KICAgIDxnIGlkPSJCcmlkZ2UiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSJCbG9ja2NoYW4iPgogICAgICAgICAgICA8ZyBpZD0iQlNDIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyOS4wMDAwMDAsIDAuMDAwMDAwKSI+CiAgICAgICAgICAgICAgICA8Y2lyY2xlIGlkPSJPdmFsIiBmaWxsPSIjRjNCQTJGIiBjeD0iMjQiIGN5PSIyNCIgcj0iMjQiPjwvY2lyY2xlPgogICAgICAgICAgICAgICAgPGcgaWQ9Ikljb25zX3gyRl9pY29uLTI0X3gyRl9uZXR3b3Jrc194MkZfYmluYW5jZV94NUZfc21hcnRfeDVGX2NoYWluIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg4LjAwMDAwMCwgOC4wMDAwMDApIiBmaWxsPSIjMTMxNDE1Ij4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMjIuMjIxMDY2MywxOC41NTQ3OTY3IEwyNS44NDEzNTI0LDIyLjE2NTg1MzcgTDE2LDMyIEw2LjE2OTA1MDcyLDIyLjE2NTg1MzcgTDkuNzg5MzM2OCwxOC41NTQ3OTY3IEwxNiwyNC43Njc0Nzk3IEwyMi4yMjEwNjYzLDE4LjU1NDc5NjcgWiBNMTYsMTIuMzMxNzA3MyBMMTkuNjcyMzAxNywxNi4wMDUyMDMzIEwxOS42NzIzMDE3LDE2LjAwNTIwMzMgTDE5LjY3MjMwMTcsMTYuMDA1MjAzMyBMMTYsMTkuNjc4Njk5MiBMMTIuMzM4MTAxNCwxNi4wMTU2MDk4IEwxMi4zMzgxMDE0LDE2LjAwNTIwMzMgTDEyLjMzODEwMTQsMTYuMDA1MjAzMyBMMTIuOTgzMDk0OSwxNS4zNiBMMTMuMjk1MTg4NiwxNS4wNDc4MDQ5IEwxNiwxMi4zMzE3MDczIFogTTMuNjIwMjg2MDksMTIuMzgzNzM5OCBMNy4yNDA1NzIxNywxNi4wMDUyMDMzIEwzLjYyMDI4NjA5LDE5LjYxNjI2MDIgTDAsMTUuOTk0Nzk2NyBMMy42MjAyODYwOSwxMi4zODM3Mzk4IFogTTI4LjM3OTcxMzksMTIuMzgzNzM5OCBMMzIsMTYuMDA1MjAzMyBMMjguMzc5NzEzOSwxOS42MTYyNjAyIEwyNC43NTk0Mjc4LDE1Ljk5NDc5NjcgTDI4LjM3OTcxMzksMTIuMzgzNzM5OCBaIE0xNiwwIEwyNS44MzA5NDkzLDkuODM0MTQ2MzQgTDIyLjIxMDY2MzIsMTMuNDU1NjA5OCBMMTYsNy4yMzI1MjAzMyBMOS43ODkzMzY4LDEzLjQ0NTIwMzMgTDYuMTY5MDUwNzIsOS44MzQxNDYzNCBMMTYsMCBaIiBpZD0iQ29tYmluZWQtU2hhcGUiPjwvcGF0aD4KICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgPC9nPgogICAgICAgICAgICA8ZyBpZD0iUG9seWdvbiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNjMuMDAwMDAwLCA1NC4wMDAwMDApIj4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMy45OTA1NTgsMCBMMjMuOTkwNTU4LDAgQzM3LjI1MTQ3NzIsMCA0OCwxMC43NDY0MDk2IDQ4LDI0LjAwNDcyMTYgTDQ4LDI0LjAwNDcyMTYgQzQ4LDM3LjI2MzAzMzYgMzcuMjUxNDc3Miw0OCAyNCw0OCBMMjQsNDggQzEwLjczOTA4MzksNDggMCwzNy4yNTM1OTA0IDAsMjQuMDA0NzIxNiBMMCwyNC4wMDQ3MjE2IEMtMC4wMDk0Mzg4NzkxLDEwLjc0NjQwOTYgMTAuNzM5MDgzOSwwIDIzLjk5MDU1OCwwIFoiIGlkPSJQYXRoIiBmaWxsPSIjODI0N0U1IiBmaWxsLXJ1bGU9Im5vbnplcm8iPjwvcGF0aD4KICAgICAgICAgICAgICAgIDxnIGlkPSJDbGlwcGVkIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg4LjAwMDAwMCwgMTAuMDAwMDAwKSI+CiAgICAgICAgICAgICAgICAgICAgPG1hc2sgaWQ9Im1hc2stMiIgZmlsbD0id2hpdGUiPgogICAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNwYXRoLTEiPjwvdXNlPgogICAgICAgICAgICAgICAgICAgIDwvbWFzaz4KICAgICAgICAgICAgICAgICAgICA8ZyBpZD0iU1ZHSURfMV8iPjwvZz4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMjQuMTcwNTE5NCw4LjUyNzU3Nzk0IEMyMy41ODQ1MDkyLDguMTkxODQ2NTIgMjIuODM1MTg0Niw4LjE5MTg0NjUyIDIyLjE3MjMyMDYsOC41Mjc1Nzc5NCBMMTcuNTAzNDUyNCwxMS4yOTAxNjc5IEwxNC4zMzMyMzMzLDEzLjA0NTU2MzUgTDkuNzUwODI1NTgsMTUuNzk4NTYxMiBDOS4xNjQ4MTUzNywxNi4xMzQyOTI2IDguNDE1NDkwODQsMTYuMTM0MjkyNiA3Ljc1MjYyNjg0LDE1Ljc5ODU2MTIgTDQuMTY5MzE4NTIsMTMuNjIxMTAzMSBDMy41ODMzMDgzMiwxMy4yODUzNzE3IDMuMTcwMjE5MTUsMTIuNjEzOTA4OSAzLjE3MDIxOTE1LDExLjg2NTcwNzQgTDMuMTcwMjE5MTUsNy42ODM0NTMyNCBDMy4xNzAyMTkxNSw3LjAxMTk5MDQxIDMuNTA2NDU0NTIsNi4zNTAxMTk5IDQuMTY5MzE4NTIsNS45MjgwNTc1NSBMNy43NTI2MjY4NCwzLjgzNjkzMDQ2IEM4LjMzODYzNzA1LDMuNTAxMTk5MDQgOS4wODc5NjE1NywzLjUwMTE5OTA0IDkuNzUwODI1NTgsMy44MzY5MzA0NiBMMTMuMzM0MTMzOSw2LjAxNDM4ODQ5IEMxMy45MjAxNDQxLDYuMzUwMTE5OSAxNC4zMzMyMzMzLDcuMDIxNTgyNzMgMTQuMzMzMjMzMyw3Ljc2OTc4NDE3IEwxNC4zMzMyMzMzLDEwLjUzMjM3NDEgTDE3LjUwMzQ1MjQsOC42OTA2NDc0OCBMMTcuNTAzNDUyNCw1Ljg1MTMxODk0IEMxNy41MDM0NTI0LDUuMTc5ODU2MTIgMTcuMTY3MjE3MSw0LjUxNzk4NTYxIDE2LjUwNDM1Myw0LjA5NTkyMzI2IEw5LjgzNzI4NjEsMC4xNjMwNjk1NDQgQzkuMjUxMjc1ODksLTAuMTcyNjYxODcxIDguNTAxOTUxMzcsLTAuMTcyNjYxODcxIDcuODM5MDg3MzYsMC4xNjMwNjk1NDQgTDEuMDA4NzA2MDksNC4xODIyNTQyIEMwLjM0NTg0MjA4OSw0LjUxNzk4NTYxIDAuMDA5NjA2NzI0NzEsNS4xODk0NDg0NCAwLjAwOTYwNjcyNDcxLDUuODUxMzE4OTQgTDAuMDA5NjA2NzI0NzEsMTMuNzA3NDM0MSBDMC4wMDk2MDY3MjQ3MSwxNC4zNzg4OTY5IDAuMzQ1ODQyMDg5LDE1LjA0MDc2NzQgMS4wMDg3MDYwOSwxNS40NjI4Mjk3IEw3Ljc2MjIzMzU2LDE5LjM5NTY4MzUgQzguMzQ4MjQzNzcsMTkuNzMxNDE0OSA5LjA5NzU2ODMsMTkuNzMxNDE0OSA5Ljc2MDQzMjMsMTkuMzk1NjgzNSBMMTQuMzQyODQsMTYuNzE5NDI0NSBMMTcuNTEzMDU5MSwxNC44Nzc2OTc4IEwyMi4wOTU0NjY4LDEyLjIwMTQzODggQzIyLjY4MTQ3NywxMS44NjU3MDc0IDIzLjQzMDgwMTYsMTEuODY1NzA3NCAyNC4wOTM2NjU2LDEyLjIwMTQzODggTDI3LjY3Njk3MzksMTQuMjkyNTY1OSBDMjguMjYyOTg0MSwxNC42MjgyOTc0IDI4LjY3NjA3MzMsMTUuMjk5NzYwMiAyOC42NzYwNzMzLDE2LjA0Nzk2MTYgTDI4LjY3NjA3MzMsMjAuMjMwMjE1OCBDMjguNjc2MDczMywyMC45MDE2Nzg3IDI4LjMzOTgzNzksMjEuNTYzNTQ5MiAyNy42NzY5NzM5LDIxLjk4NTYxMTUgTDI0LjE4MDEyNjEsMjQuMDc2NzM4NiBDMjMuNTk0MTE1OSwyNC40MTI0NyAyMi44NDQ3OTE0LDI0LjQxMjQ3IDIyLjE4MTkyNzMsMjQuMDc2NzM4NiBMMTguNTg5MDEyMywyMS45ODU2MTE1IEMxOC4wMDMwMDIxLDIxLjY0OTg4MDEgMTcuNTg5OTEyOSwyMC45Nzg0MTczIDE3LjU4OTkxMjksMjAuMjMwMjE1OCBMMTcuNTg5OTEyOSwxNy41NTM5NTY4IEwxNC40MTk2OTM4LDE5LjM5NTY4MzUgTDE0LjQxOTY5MzgsMjIuMTU4MjczNCBDMTQuNDE5NjkzOCwyMi44Mjk3MzYyIDE0Ljc1NTkyOTIsMjMuNDkxNjA2NyAxNS40MTg3OTMyLDIzLjkxMzY2OTEgTDIyLjE3MjMyMDYsMjcuODQ2NTIyOCBDMjIuNzU4MzMwOCwyOC4xODIyNTQyIDIzLjUwNzY1NTQsMjguMTgyMjU0MiAyNC4xNzA1MTk0LDI3Ljg0NjUyMjggTDMwLjkyNDA0NjgsMjMuOTEzNjY5MSBDMzEuNTEwMDU3LDIzLjU3NzkzNzYgMzEuOTIzMTQ2MiwyMi45MDY0NzQ4IDMxLjkyMzE0NjIsMjIuMTU4MjczNCBMMzEuOTIzMTQ2MiwxNC4yMTU4MjczIEMzMS45MjMxNDYyLDEzLjU0NDM2NDUgMzEuNTg2OTEwOCwxMi44ODI0OTQgMzAuOTI0MDQ2OCwxMi40NjA0MzE3IEwyNC4xNzA1MTk0LDguNTI3NTc3OTQgWiIgaWQ9IlBhdGgiIGZpbGw9IiNGRkZGRkYiIGZpbGwtcnVsZT0ibm9uemVybyIgbWFzaz0idXJsKCNtYXNrLTIpIj48L3BhdGg+CiAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgPGcgaWQ9IkV0aGVyZXVtIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLjAwMDAwMCwgNTQuMDAwMDAwKSIgZmlsbC1ydWxlPSJub256ZXJvIj4KICAgICAgICAgICAgICAgIDxnIGlkPSJHcm91cC00NSI+CiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBpZD0iT3ZhbCIgZmlsbD0iIzYyN0VFQSIgY3g9IjI0IiBjeT0iMjQiIHI9IjI0Ij48L2NpcmNsZT4KICAgICAgICAgICAgICAgICAgICA8cG9seWdvbiBpZD0iUGF0aCIgZmlsbC1vcGFjaXR5PSIwLjYwMiIgZmlsbD0iI0ZGRkZGRiIgcG9pbnRzPSIyNC43NDc5NDk3IDUuOTk2NzE5NTIgMjQuNzQ3OTQ5NyAxOS4zMDIzNTEgMzUuOTkzNDM5IDI0LjMyODA0ODEiPjwvcG9seWdvbj4KICAgICAgICAgICAgICAgICAgICA8cG9seWdvbiBpZD0iUGF0aF8xXyIgZmlsbD0iI0ZGRkZGRiIgcG9pbnRzPSIyNC43NDc5NDk3IDUuOTk2NzE5NTIgMTMuNTAyNDYwNCAyNC4zMjgwNDgxIDI0Ljc0Nzk0OTcgMTkuMzAyMzUxIj48L3BvbHlnb24+CiAgICAgICAgICAgICAgICAgICAgPHBvbHlnb24gaWQ9IlBhdGhfMl8iIGZpbGwtb3BhY2l0eT0iMC42MDIiIGZpbGw9IiNGRkZGRkYiIHBvaW50cz0iMjQuNzQ3OTQ5NyAzMi45NDkxNTI1IDI0Ljc0Nzk0OTcgNDEuOTkwMTU4NiAzNiAyNi40MjA5OTUxIj48L3BvbHlnb24+CiAgICAgICAgICAgICAgICAgICAgPHBvbHlnb24gaWQ9IlBhdGhfM18iIGZpbGw9IiNGRkZGRkYiIHBvaW50cz0iMjQuNzQ3OTQ5NyA0MS45OTAxNTg2IDI0Ljc0Nzk0OTcgMzIuOTQ5MTUyNSAxMy41MDI0NjA0IDI2LjQyMDk5NTEiPjwvcG9seWdvbj4KICAgICAgICAgICAgICAgICAgICA8cG9seWdvbiBpZD0iUGF0aF80XyIgZmlsbC1vcGFjaXR5PSIwLjIiIGZpbGw9IiNGRkZGRkYiIHBvaW50cz0iMjQuNzQ3OTQ5NyAzMC44NTYyMDU2IDM1Ljk5MzQzOSAyNC4zMjgwNDgxIDI0Ljc0Nzk0OTcgMTkuMzAyMzUxIj48L3BvbHlnb24+CiAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgICAgICA8cG9seWdvbiBpZD0iUGF0aF81XyIgZmlsbC1vcGFjaXR5PSIwLjYwMiIgZmlsbD0iI0ZGRkZGRiIgcG9pbnRzPSIxNCAyNC4yMTk3NjE1IDI1IDMxIDI1IDE5Ij48L3BvbHlnb24+CiAgICAgICAgICAgIDwvZz4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPg=="},8209:(e,t,i)=>{i(67294)}}]); \ No newline at end of file diff --git a/assets/js/f3ebdb21.ede7fad3.js b/assets/js/f3ebdb21.ede7fad3.js new file mode 100644 index 000000000..b593d4e6e --- /dev/null +++ b/assets/js/f3ebdb21.ede7fad3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9333],{3905:(e,t,i)=>{i.d(t,{Zo:()=>l,kt:()=>d});var a=i(67294);function r(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function n(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,a)}return i}function c(e){for(var t=1;t=0||(r[i]=e[i]);return r}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(r[i]=e[i])}return r}var s=a.createContext({}),M=function(e){var t=a.useContext(s),i=t;return e&&(i="function"==typeof e?e(t):c(c({},t),e)),i},l=function(e){var t=M(e.components);return a.createElement(s.Provider,{value:t},e.children)},h="mdxType",g={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},I=a.forwardRef((function(e,t){var i=e.components,r=e.mdxType,n=e.originalType,s=e.parentName,l=o(e,["components","mdxType","originalType","parentName"]),h=M(i),I=r,d=h["".concat(s,".").concat(I)]||h[I]||g[I]||n;return i?a.createElement(d,c(c({ref:t},l),{},{components:i})):a.createElement(d,c({ref:t},l))}));function d(e,t){var i=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var n=i.length,c=new Array(n);c[0]=I;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[h]="string"==typeof e?e:r,c[1]=o;for(var M=2;M{i.r(t),i.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>g,frontMatter:()=>n,metadata:()=>o,toc:()=>M});var a=i(87462),r=(i(67294),i(3905));i(8209);const n={id:"bridge-2-ways",title:"aeBridge"},c=void 0,o={unversionedId:"FAQ/bridge-2-ways",id:"FAQ/bridge-2-ways",title:"aeBridge",description:"General",source:"@site/docs/FAQ/bridge-2-ways.md",sourceDirName:"FAQ",slug:"/FAQ/bridge-2-ways",permalink:"/FAQ/bridge-2-ways",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"bridge-2-ways",title:"aeBridge"},sidebar:"docs",previous:{title:"aeHosting",permalink:"/FAQ/aeweb"},next:{title:"aeSwap",permalink:"/FAQ/dex"}},s={},M=[{value:"General",id:"general",level:2},{value:"What is Archethic Bridge?",id:"what-is-archethic-bridge",level:3},{value:"How to access the Archethic Bridge ?",id:"how-to-access-the-archethic-bridge-",level:3},{value:"Which blockchain is better to bridge my UCOs?",id:"which-blockchain-is-better-to-bridge-my-ucos",level:3},{value:"What blockchains does the Archethic Bridge support?",id:"what-blockchains-does-the-archethic-bridge-support",level:3},{value:"Is the Archethic Bridge available on mobile devices?",id:"is-the-archethic-bridge-available-on-mobile-devices",level:3},{value:"What is an EVM wallet?",id:"what-is-an-evm-wallet",level:3},{value:"How is the price of $UCO estimated?",id:"how-is-the-price-of-uco-estimated",level:3},{value:"How long is the predetermined time?",id:"how-long-is-the-predetermined-time",level:3},{value:"Is the bridge audited?",id:"is-the-bridge-audited",level:3},{value:"Key Concepts",id:"key-concepts",level:2},{value:"What is an HTLC (Hash Time Lock Contract) in the context of Archethic's bridge?",id:"what-is-an-htlc-hash-time-lock-contract-in-the-context-of-archethics-bridge",level:3},{value:"How does Archethic's cross-chain verification work?",id:"how-does-archethics-cross-chain-verification-work",level:3},{value:"Specifics of Bridging",id:"specifics-of-bridging",level:2},{value:"How does the process of bridging from EVM to Archethic work?",id:"how-does-the-process-of-bridging-from-evm-to-archethic-work",level:3},{value:"What is the process for bridging from Archethic to EVM?",id:"what-is-the-process-for-bridging-from-archethic-to-evm",level:3},{value:"Wallet",id:"wallet",level:2},{value:"I\u2019m using the Mainnet network in the Wallet, how can I switch on the Testnet?",id:"im-using-the-mainnet-network-in-the-wallet-how-can-i-switch-on-the-testnet",level:3},{value:"Why can't I connect to the Archethic wallet with my Brave browser?",id:"why-cant-i-connect-to-the-archethic-wallet-with-my-brave-browser",level:3},{value:"Issues management",id:"issues-management",level:2},{value:"What happens if a problem occurs, or I refuse a transaction during the transfer?",id:"what-happens-if-a-problem-occurs-or-i-refuse-a-transaction-during-the-transfer",level:3},{value:"If I sent the tokens to a wrong Mainnet address, what to do?",id:"if-i-sent-the-tokens-to-a-wrong-mainnet-address-what-to-do",level:3},{value:"Can I help the developers analyze the problems?",id:"can-i-help-the-developers-analyze-the-problems",level:3},{value:"While a bridge from Archethic to EVM Blockchain, I have an error '1405'",id:"while-a-bridge-from-archethic-to-evm-blockchain-i-have-an-error-1405",level:3},{value:"The bridge does not recognize my EVM wallet. What should I do?",id:"the-bridge-does-not-recognize-my-evm-wallet-what-should-i-do",level:3}],l={toc:M},h="wrapper";function g(e){let{components:t,...n}=e;return(0,r.kt)(h,(0,a.Z)({},l,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"general"},"General"),(0,r.kt)("h3",{id:"what-is-archethic-bridge"},"What is Archethic Bridge?"),(0,r.kt)("p",null,"The Archethic Bridge is a decentralized, peer-to-peer bridge that enables the seamless exchange of UCO ERC20 tokens and other major cryptocurrencies like ETH, POL (ex MATIC), and BNB between the Archethic blockchain and various other blockchains, including Ethereum, Polygon (PoS), and BSC."),(0,r.kt)("p",null,"This functionality allows for the transfer of these assets into their equivalent forms on Archethic, such as aeETH, aeMATIC, and aeBNB, providing a secure and straightforward method for exchanging assets. The bridge utilizes atomic swap technology, specifically Hash Time Lock Contracts (HTLC), to facilitate secure and intermediary-free transactions."),(0,r.kt)("p",null,"Moreover, it incorporates Archethic's unique cross-chain verification technique, enhancing the security and decentralization of these exchanges."),(0,r.kt)("p",null,"This bridge significantly expands the interoperability between Archethic and other blockchain networks, allowing for greater flexibility and integration within the broader blockchain ecosystem."),(0,r.kt)("h3",{id:"how-to-access-the-archethic-bridge-"},"How to access the Archethic Bridge ?"),(0,r.kt)("p",null,"You can access the bridge at : ",(0,r.kt)("a",{parentName:"p",href:"https://bridge.archethic.net"},"https://bridge.archethic.net")),(0,r.kt)("h3",{id:"which-blockchain-is-better-to-bridge-my-ucos"},"Which blockchain is better to bridge my UCOs?"),(0,r.kt)("p",null,"Using the 3 blockchains, the result will be the same, but fees are not the same between Ethereum, Polygon (PoS) and BSC.\nPolygon has the lowest fees."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"bridge-blockchains",src:i(32909).Z,width:"111",height:"102"})),(0,r.kt)("h3",{id:"what-blockchains-does-the-archethic-bridge-support"},"What blockchains does the Archethic Bridge support?"),(0,r.kt)("p",null,"The Archethic Bridge currently supports bridging between the Archethic blockchain and various EVM (Ethereum Virtual Machine) compatible blockchains."),(0,r.kt)("h3",{id:"is-the-archethic-bridge-available-on-mobile-devices"},"Is the Archethic Bridge available on mobile devices?"),(0,r.kt)("p",null,"No, the Archethic Bridge application is designed exclusively for the moment for desktop use and is compatible with macOS, Linux, and Windows operating systems."),(0,r.kt)("h3",{id:"what-is-an-evm-wallet"},"What is an EVM wallet?"),(0,r.kt)("p",null,"An EVM (Ethereum Virtual Machine) wallet is a digital wallet designed to interact with blockchains that are compatible with the Ethereum Virtual Machine. EVM wallets can store, send, and receive Ether (ETH) and other EVM-compatible tokens, execute smart contracts, and interact with decentralized applications (dApps) on EVM-compatible networks."),(0,r.kt)("h3",{id:"how-is-the-price-of-uco-estimated"},"How is the price of $UCO estimated?"),(0,r.kt)("p",null,"The price of $UCO is determined using an Archethic Oracle that consolidates information from various sources, including Coingecko and CoinMarketCap."),(0,r.kt)("h3",{id:"how-long-is-the-predetermined-time"},"How long is the predetermined time?"),(0,r.kt)("p",null,"The timelock lasts 2 hours."),(0,r.kt)("h3",{id:"is-the-bridge-audited"},"Is the bridge audited?"),(0,r.kt)("p",null,"Yes, our EVM smart contracts have been audited by ",(0,r.kt)("a",{parentName:"p",href:"https://hacken.io"},"Hacken"),", a recognized leader in blockchain security. The full audit report is available ",(0,r.kt)("a",{target:"_blank",href:i(78188).Z},"here"),"."),(0,r.kt)("h2",{id:"key-concepts"},"Key Concepts"),(0,r.kt)("h3",{id:"what-is-an-htlc-hash-time-lock-contract-in-the-context-of-archethics-bridge"},"What is an HTLC (Hash Time Lock Contract) in the context of Archethic's bridge?"),(0,r.kt)("p",null,"HTLC stands for Hash Time Lock Contract. In Archethic's bridge, it is a type of contract used in atomic swaps to securely exchange assets in a peer-to-peer manner without intermediaries. These contracts lock funds until a secret is revealed or a specified time period elapses, ensuring a secure and reversible asset exchange."),(0,r.kt)("h3",{id:"how-does-archethics-cross-chain-verification-work"},"How does Archethic's cross-chain verification work?"),(0,r.kt)("p",null,"Archethic's cross-chain verification enhances atomic swaps by allowing data retrieval outside of the blockchain. This makes the process fully decentralized and strengthens the security model. Archethic's nodes can verify transaction status on other chains, like EVM blockchains, establishing a strong consensus on the status of a swap."),(0,r.kt)("h2",{id:"specifics-of-bridging"},"Specifics of Bridging"),(0,r.kt)("h3",{id:"how-does-the-process-of-bridging-from-evm-to-archethic-work"},"How does the process of bridging from EVM to Archethic work?"),(0,r.kt)("p",null,"To bridge from EVM to Archethic, a user deploys an HTLC smart contract on both blockchains. The process involves locking funds using a secret and its hash, verifying the transaction across chains, minting new tokens on Archethic, and transferring funds to respective recipient wallets. The entire process is secured by atomic swaps and Archethic's cross-chain verification."),(0,r.kt)("h3",{id:"what-is-the-process-for-bridging-from-archethic-to-evm"},"What is the process for bridging from Archethic to EVM?"),(0,r.kt)("p",null,"Bridging from Archethic to EVM follows a similar pattern but in reverse. It introduces an additional step where EVM cannot directly request information from the blockchain. Instead, cryptography is used to assert actions through signatures, ensuring non-repudiation. This involves creating and funding HTLC contracts on both blockchains, revealing secrets, and transferring funds securely."),(0,r.kt)("h2",{id:"wallet"},"Wallet"),(0,r.kt)("h3",{id:"im-using-the-mainnet-network-in-the-wallet-how-can-i-switch-on-the-testnet"},"I\u2019m using the Mainnet network in the Wallet, how can I switch on the Testnet?"),(0,r.kt)("p",null,"The switch is not possible because the seed is not shared between Mainnet and Testnet. Later, the wallet will be multiseeds, but not for the moment. The only way for the moment is to remove the Wallet (don\u2019t forget the 24 words) and create/import a wallet on the Testnet network."),(0,r.kt)("h3",{id:"why-cant-i-connect-to-the-archethic-wallet-with-my-brave-browser"},"Why can't I connect to the Archethic wallet with my Brave browser?"),(0,r.kt)("p",null,"Brave includes a shield feature that might block certain local connections.\nTo successfully connect to the Archethic wallet, you'll need to modify the Brave browser\u2019s shield settings as per its documentation"),(0,r.kt)("h2",{id:"issues-management"},"Issues management"),(0,r.kt)("h3",{id:"what-happens-if-a-problem-occurs-or-i-refuse-a-transaction-during-the-transfer"},"What happens if a problem occurs, or I refuse a transaction during the transfer?"),(0,r.kt)("p",null,'During the delay of the acknowledgment, you should wait for the end of the duration, and you can tell the refund of your ERC20 Wallet with the "Refund" button available on your Archethic Bridge application.'),(0,r.kt)("h3",{id:"if-i-sent-the-tokens-to-a-wrong-mainnet-address-what-to-do"},"If I sent the tokens to a wrong Mainnet address, what to do?"),(0,r.kt)("p",null,"You lose the tokens if the Mainnet address is not your address. Same thing if you do an error in the address (for example a 0 instead of 1)."),(0,r.kt)("h3",{id:"can-i-help-the-developers-analyze-the-problems"},"Can I help the developers analyze the problems?"),(0,r.kt)("p",null,"You can help developers improve the application by submitting information that describes the state of the application.\nTo do this, you can copy/paste your transaction from your local history in the application."),(0,r.kt)("h3",{id:"while-a-bridge-from-archethic-to-evm-blockchain-i-have-an-error-1405"},"While a bridge from Archethic to EVM Blockchain, I have an error '1405'"),(0,r.kt)("p",null,"First, rest assured that you will not lose your funds initiated in the bridging process.\nNote the address of the Archethic contract indicated under the error message (or available in your local history) and contact Archethic support via social media (Telegram or Discord) who will resolve the issue and help you complete your bridge."),(0,r.kt)("h3",{id:"the-bridge-does-not-recognize-my-evm-wallet-what-should-i-do"},"The bridge does not recognize my EVM wallet. What should I do?"),(0,r.kt)("p",null,"If your EVM wallet is not recognized by the bridge, follow these steps to resolve the issue:"),(0,r.kt)("p",null,"1) ",(0,r.kt)("strong",{parentName:"p"},"Check your wallet version"),": Make sure you are using the latest version of your EVM wallet. Update if necessary.",(0,r.kt)("br",null),"\n2) ",(0,r.kt)("strong",{parentName:"p"},"Open your wallet"),": Ensure that your EVM wallet is open and that you have entered your password.",(0,r.kt)("br",null),"\n3) ",(0,r.kt)("strong",{parentName:"p"},"Wallet conflicts"),": Verify that you do not have multiple EVM wallets active at the same time. Having several wallets open can cause conflicts.",(0,r.kt)("br",null),"\n4) ",(0,r.kt)("strong",{parentName:"p"},"Deactivate other wallets"),": Deactivate all open EVM wallets except the one you want to use. This ensures that only the desired wallet is active, avoiding any conflicts.",(0,r.kt)("br",null)),(0,r.kt)("p",null,"By following these steps, you should be able to resolve the issue of the bridge not recognizing your EVM wallet."),(0,r.kt)("hr",null))}g.isMDXComponent=!0},78188:(e,t,i)=>{i.d(t,{Z:()=>a});const a=i.p+"assets/files/aebridge_hacken-5b4da95c00238c6be091290aa6e2e503.pdf"},32909:(e,t,i)=>{i.d(t,{Z:()=>a});const a="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMTExcHgiIGhlaWdodD0iMTAycHgiIHZpZXdCb3g9IjAgMCAxMTEgMTAyIiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogICAgPHRpdGxlPkJsb2NrY2hhbjwvdGl0bGU+CiAgICA8ZGVmcz4KICAgICAgICA8cmVjdCBpZD0icGF0aC0xIiB4PSIwIiB5PSIwIiB3aWR0aD0iMzIiIGhlaWdodD0iMjgiPjwvcmVjdD4KICAgIDwvZGVmcz4KICAgIDxnIGlkPSJCcmlkZ2UiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSJCbG9ja2NoYW4iPgogICAgICAgICAgICA8ZyBpZD0iQlNDIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyOS4wMDAwMDAsIDAuMDAwMDAwKSI+CiAgICAgICAgICAgICAgICA8Y2lyY2xlIGlkPSJPdmFsIiBmaWxsPSIjRjNCQTJGIiBjeD0iMjQiIGN5PSIyNCIgcj0iMjQiPjwvY2lyY2xlPgogICAgICAgICAgICAgICAgPGcgaWQ9Ikljb25zX3gyRl9pY29uLTI0X3gyRl9uZXR3b3Jrc194MkZfYmluYW5jZV94NUZfc21hcnRfeDVGX2NoYWluIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg4LjAwMDAwMCwgOC4wMDAwMDApIiBmaWxsPSIjMTMxNDE1Ij4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMjIuMjIxMDY2MywxOC41NTQ3OTY3IEwyNS44NDEzNTI0LDIyLjE2NTg1MzcgTDE2LDMyIEw2LjE2OTA1MDcyLDIyLjE2NTg1MzcgTDkuNzg5MzM2OCwxOC41NTQ3OTY3IEwxNiwyNC43Njc0Nzk3IEwyMi4yMjEwNjYzLDE4LjU1NDc5NjcgWiBNMTYsMTIuMzMxNzA3MyBMMTkuNjcyMzAxNywxNi4wMDUyMDMzIEwxOS42NzIzMDE3LDE2LjAwNTIwMzMgTDE5LjY3MjMwMTcsMTYuMDA1MjAzMyBMMTYsMTkuNjc4Njk5MiBMMTIuMzM4MTAxNCwxNi4wMTU2MDk4IEwxMi4zMzgxMDE0LDE2LjAwNTIwMzMgTDEyLjMzODEwMTQsMTYuMDA1MjAzMyBMMTIuOTgzMDk0OSwxNS4zNiBMMTMuMjk1MTg4NiwxNS4wNDc4MDQ5IEwxNiwxMi4zMzE3MDczIFogTTMuNjIwMjg2MDksMTIuMzgzNzM5OCBMNy4yNDA1NzIxNywxNi4wMDUyMDMzIEwzLjYyMDI4NjA5LDE5LjYxNjI2MDIgTDAsMTUuOTk0Nzk2NyBMMy42MjAyODYwOSwxMi4zODM3Mzk4IFogTTI4LjM3OTcxMzksMTIuMzgzNzM5OCBMMzIsMTYuMDA1MjAzMyBMMjguMzc5NzEzOSwxOS42MTYyNjAyIEwyNC43NTk0Mjc4LDE1Ljk5NDc5NjcgTDI4LjM3OTcxMzksMTIuMzgzNzM5OCBaIE0xNiwwIEwyNS44MzA5NDkzLDkuODM0MTQ2MzQgTDIyLjIxMDY2MzIsMTMuNDU1NjA5OCBMMTYsNy4yMzI1MjAzMyBMOS43ODkzMzY4LDEzLjQ0NTIwMzMgTDYuMTY5MDUwNzIsOS44MzQxNDYzNCBMMTYsMCBaIiBpZD0iQ29tYmluZWQtU2hhcGUiPjwvcGF0aD4KICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgPC9nPgogICAgICAgICAgICA8ZyBpZD0iUG9seWdvbiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNjMuMDAwMDAwLCA1NC4wMDAwMDApIj4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMy45OTA1NTgsMCBMMjMuOTkwNTU4LDAgQzM3LjI1MTQ3NzIsMCA0OCwxMC43NDY0MDk2IDQ4LDI0LjAwNDcyMTYgTDQ4LDI0LjAwNDcyMTYgQzQ4LDM3LjI2MzAzMzYgMzcuMjUxNDc3Miw0OCAyNCw0OCBMMjQsNDggQzEwLjczOTA4MzksNDggMCwzNy4yNTM1OTA0IDAsMjQuMDA0NzIxNiBMMCwyNC4wMDQ3MjE2IEMtMC4wMDk0Mzg4NzkxLDEwLjc0NjQwOTYgMTAuNzM5MDgzOSwwIDIzLjk5MDU1OCwwIFoiIGlkPSJQYXRoIiBmaWxsPSIjODI0N0U1IiBmaWxsLXJ1bGU9Im5vbnplcm8iPjwvcGF0aD4KICAgICAgICAgICAgICAgIDxnIGlkPSJDbGlwcGVkIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg4LjAwMDAwMCwgMTAuMDAwMDAwKSI+CiAgICAgICAgICAgICAgICAgICAgPG1hc2sgaWQ9Im1hc2stMiIgZmlsbD0id2hpdGUiPgogICAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNwYXRoLTEiPjwvdXNlPgogICAgICAgICAgICAgICAgICAgIDwvbWFzaz4KICAgICAgICAgICAgICAgICAgICA8ZyBpZD0iU1ZHSURfMV8iPjwvZz4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMjQuMTcwNTE5NCw4LjUyNzU3Nzk0IEMyMy41ODQ1MDkyLDguMTkxODQ2NTIgMjIuODM1MTg0Niw4LjE5MTg0NjUyIDIyLjE3MjMyMDYsOC41Mjc1Nzc5NCBMMTcuNTAzNDUyNCwxMS4yOTAxNjc5IEwxNC4zMzMyMzMzLDEzLjA0NTU2MzUgTDkuNzUwODI1NTgsMTUuNzk4NTYxMiBDOS4xNjQ4MTUzNywxNi4xMzQyOTI2IDguNDE1NDkwODQsMTYuMTM0MjkyNiA3Ljc1MjYyNjg0LDE1Ljc5ODU2MTIgTDQuMTY5MzE4NTIsMTMuNjIxMTAzMSBDMy41ODMzMDgzMiwxMy4yODUzNzE3IDMuMTcwMjE5MTUsMTIuNjEzOTA4OSAzLjE3MDIxOTE1LDExLjg2NTcwNzQgTDMuMTcwMjE5MTUsNy42ODM0NTMyNCBDMy4xNzAyMTkxNSw3LjAxMTk5MDQxIDMuNTA2NDU0NTIsNi4zNTAxMTk5IDQuMTY5MzE4NTIsNS45MjgwNTc1NSBMNy43NTI2MjY4NCwzLjgzNjkzMDQ2IEM4LjMzODYzNzA1LDMuNTAxMTk5MDQgOS4wODc5NjE1NywzLjUwMTE5OTA0IDkuNzUwODI1NTgsMy44MzY5MzA0NiBMMTMuMzM0MTMzOSw2LjAxNDM4ODQ5IEMxMy45MjAxNDQxLDYuMzUwMTE5OSAxNC4zMzMyMzMzLDcuMDIxNTgyNzMgMTQuMzMzMjMzMyw3Ljc2OTc4NDE3IEwxNC4zMzMyMzMzLDEwLjUzMjM3NDEgTDE3LjUwMzQ1MjQsOC42OTA2NDc0OCBMMTcuNTAzNDUyNCw1Ljg1MTMxODk0IEMxNy41MDM0NTI0LDUuMTc5ODU2MTIgMTcuMTY3MjE3MSw0LjUxNzk4NTYxIDE2LjUwNDM1Myw0LjA5NTkyMzI2IEw5LjgzNzI4NjEsMC4xNjMwNjk1NDQgQzkuMjUxMjc1ODksLTAuMTcyNjYxODcxIDguNTAxOTUxMzcsLTAuMTcyNjYxODcxIDcuODM5MDg3MzYsMC4xNjMwNjk1NDQgTDEuMDA4NzA2MDksNC4xODIyNTQyIEMwLjM0NTg0MjA4OSw0LjUxNzk4NTYxIDAuMDA5NjA2NzI0NzEsNS4xODk0NDg0NCAwLjAwOTYwNjcyNDcxLDUuODUxMzE4OTQgTDAuMDA5NjA2NzI0NzEsMTMuNzA3NDM0MSBDMC4wMDk2MDY3MjQ3MSwxNC4zNzg4OTY5IDAuMzQ1ODQyMDg5LDE1LjA0MDc2NzQgMS4wMDg3MDYwOSwxNS40NjI4Mjk3IEw3Ljc2MjIzMzU2LDE5LjM5NTY4MzUgQzguMzQ4MjQzNzcsMTkuNzMxNDE0OSA5LjA5NzU2ODMsMTkuNzMxNDE0OSA5Ljc2MDQzMjMsMTkuMzk1NjgzNSBMMTQuMzQyODQsMTYuNzE5NDI0NSBMMTcuNTEzMDU5MSwxNC44Nzc2OTc4IEwyMi4wOTU0NjY4LDEyLjIwMTQzODggQzIyLjY4MTQ3NywxMS44NjU3MDc0IDIzLjQzMDgwMTYsMTEuODY1NzA3NCAyNC4wOTM2NjU2LDEyLjIwMTQzODggTDI3LjY3Njk3MzksMTQuMjkyNTY1OSBDMjguMjYyOTg0MSwxNC42MjgyOTc0IDI4LjY3NjA3MzMsMTUuMjk5NzYwMiAyOC42NzYwNzMzLDE2LjA0Nzk2MTYgTDI4LjY3NjA3MzMsMjAuMjMwMjE1OCBDMjguNjc2MDczMywyMC45MDE2Nzg3IDI4LjMzOTgzNzksMjEuNTYzNTQ5MiAyNy42NzY5NzM5LDIxLjk4NTYxMTUgTDI0LjE4MDEyNjEsMjQuMDc2NzM4NiBDMjMuNTk0MTE1OSwyNC40MTI0NyAyMi44NDQ3OTE0LDI0LjQxMjQ3IDIyLjE4MTkyNzMsMjQuMDc2NzM4NiBMMTguNTg5MDEyMywyMS45ODU2MTE1IEMxOC4wMDMwMDIxLDIxLjY0OTg4MDEgMTcuNTg5OTEyOSwyMC45Nzg0MTczIDE3LjU4OTkxMjksMjAuMjMwMjE1OCBMMTcuNTg5OTEyOSwxNy41NTM5NTY4IEwxNC40MTk2OTM4LDE5LjM5NTY4MzUgTDE0LjQxOTY5MzgsMjIuMTU4MjczNCBDMTQuNDE5NjkzOCwyMi44Mjk3MzYyIDE0Ljc1NTkyOTIsMjMuNDkxNjA2NyAxNS40MTg3OTMyLDIzLjkxMzY2OTEgTDIyLjE3MjMyMDYsMjcuODQ2NTIyOCBDMjIuNzU4MzMwOCwyOC4xODIyNTQyIDIzLjUwNzY1NTQsMjguMTgyMjU0MiAyNC4xNzA1MTk0LDI3Ljg0NjUyMjggTDMwLjkyNDA0NjgsMjMuOTEzNjY5MSBDMzEuNTEwMDU3LDIzLjU3NzkzNzYgMzEuOTIzMTQ2MiwyMi45MDY0NzQ4IDMxLjkyMzE0NjIsMjIuMTU4MjczNCBMMzEuOTIzMTQ2MiwxNC4yMTU4MjczIEMzMS45MjMxNDYyLDEzLjU0NDM2NDUgMzEuNTg2OTEwOCwxMi44ODI0OTQgMzAuOTI0MDQ2OCwxMi40NjA0MzE3IEwyNC4xNzA1MTk0LDguNTI3NTc3OTQgWiIgaWQ9IlBhdGgiIGZpbGw9IiNGRkZGRkYiIGZpbGwtcnVsZT0ibm9uemVybyIgbWFzaz0idXJsKCNtYXNrLTIpIj48L3BhdGg+CiAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgPGcgaWQ9IkV0aGVyZXVtIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLjAwMDAwMCwgNTQuMDAwMDAwKSIgZmlsbC1ydWxlPSJub256ZXJvIj4KICAgICAgICAgICAgICAgIDxnIGlkPSJHcm91cC00NSI+CiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBpZD0iT3ZhbCIgZmlsbD0iIzYyN0VFQSIgY3g9IjI0IiBjeT0iMjQiIHI9IjI0Ij48L2NpcmNsZT4KICAgICAgICAgICAgICAgICAgICA8cG9seWdvbiBpZD0iUGF0aCIgZmlsbC1vcGFjaXR5PSIwLjYwMiIgZmlsbD0iI0ZGRkZGRiIgcG9pbnRzPSIyNC43NDc5NDk3IDUuOTk2NzE5NTIgMjQuNzQ3OTQ5NyAxOS4zMDIzNTEgMzUuOTkzNDM5IDI0LjMyODA0ODEiPjwvcG9seWdvbj4KICAgICAgICAgICAgICAgICAgICA8cG9seWdvbiBpZD0iUGF0aF8xXyIgZmlsbD0iI0ZGRkZGRiIgcG9pbnRzPSIyNC43NDc5NDk3IDUuOTk2NzE5NTIgMTMuNTAyNDYwNCAyNC4zMjgwNDgxIDI0Ljc0Nzk0OTcgMTkuMzAyMzUxIj48L3BvbHlnb24+CiAgICAgICAgICAgICAgICAgICAgPHBvbHlnb24gaWQ9IlBhdGhfMl8iIGZpbGwtb3BhY2l0eT0iMC42MDIiIGZpbGw9IiNGRkZGRkYiIHBvaW50cz0iMjQuNzQ3OTQ5NyAzMi45NDkxNTI1IDI0Ljc0Nzk0OTcgNDEuOTkwMTU4NiAzNiAyNi40MjA5OTUxIj48L3BvbHlnb24+CiAgICAgICAgICAgICAgICAgICAgPHBvbHlnb24gaWQ9IlBhdGhfM18iIGZpbGw9IiNGRkZGRkYiIHBvaW50cz0iMjQuNzQ3OTQ5NyA0MS45OTAxNTg2IDI0Ljc0Nzk0OTcgMzIuOTQ5MTUyNSAxMy41MDI0NjA0IDI2LjQyMDk5NTEiPjwvcG9seWdvbj4KICAgICAgICAgICAgICAgICAgICA8cG9seWdvbiBpZD0iUGF0aF80XyIgZmlsbC1vcGFjaXR5PSIwLjIiIGZpbGw9IiNGRkZGRkYiIHBvaW50cz0iMjQuNzQ3OTQ5NyAzMC44NTYyMDU2IDM1Ljk5MzQzOSAyNC4zMjgwNDgxIDI0Ljc0Nzk0OTcgMTkuMzAyMzUxIj48L3BvbHlnb24+CiAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgICAgICA8cG9seWdvbiBpZD0iUGF0aF81XyIgZmlsbC1vcGFjaXR5PSIwLjYwMiIgZmlsbD0iI0ZGRkZGRiIgcG9pbnRzPSIxNCAyNC4yMTk3NjE1IDI1IDMxIDI1IDE5Ij48L3BvbHlnb24+CiAgICAgICAgICAgIDwvZz4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPg=="},8209:(e,t,i)=>{i(67294)}}]); \ No newline at end of file diff --git a/assets/js/f5288705.5797524f.js b/assets/js/f5288705.480e9e11.js similarity index 99% rename from assets/js/f5288705.5797524f.js rename to assets/js/f5288705.480e9e11.js index 24c7b4791..c1c6abb2c 100644 --- a/assets/js/f5288705.5797524f.js +++ b/assets/js/f5288705.480e9e11.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6087],{3905:(e,t,a)=>{a.d(t,{Zo:()=>i,kt:()=>b});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function s(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var c=n.createContext({}),d=function(e){var t=n.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},i=function(e){var t=d(e.components);return n.createElement(c.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},p=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,s=e.originalType,c=e.parentName,i=l(e,["components","mdxType","originalType","parentName"]),m=d(a),p=r,b=m["".concat(c,".").concat(p)]||m[p]||u[p]||s;return a?n.createElement(b,o(o({ref:t},i),{},{components:a})):n.createElement(b,o({ref:t},i))}));function b(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var s=a.length,o=new Array(s);o[0]=p;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[m]="string"==typeof e?e:r,o[1]=l;for(var d=2;d{a.r(t),a.d(t,{Badge:()=>u,Bullet:()=>i,Details:()=>b,SpecifiedBy:()=>m,assets:()=>d,contentTitle:()=>l,default:()=>f,frontMatter:()=>o,metadata:()=>c,toc:()=>p});var n=a(87462),r=a(67294),s=a(3905);a(8209);const o={id:"transaction-summary",title:"TransactionSummary",hide_table_of_contents:!1},l=void 0,c={unversionedId:"build/api/schema/objects/transaction-summary",id:"build/api/schema/objects/transaction-summary",title:"TransactionSummary",description:"[Transaction Summary] Represents transaction header or extract to summarize it",source:"@site/docs/build/api/schema/objects/transaction-summary.mdx",sourceDirName:"build/api/schema/objects",slug:"/build/api/schema/objects/transaction-summary",permalink:"/build/api/schema/objects/transaction-summary",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"transaction-summary",title:"TransactionSummary",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"TransactionMovement",permalink:"/build/api/schema/objects/transaction-movement"},next:{title:"Transaction",permalink:"/build/api/schema/objects/transaction"}},d={},i=()=>(0,s.kt)(r.Fragment,null,(0,s.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),m=e=>(0,s.kt)(r.Fragment,null,"Specification",(0,s.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,s.kt)(r.Fragment,null,(0,s.kt)("span",{className:e.class},e.text)),p=[{value:"Fields",id:"fields",level:3},{value:'TransactionSummary.addressAddress ',id:"code-style-fontweight-normal-transactionsummarybaddressbcodeaddress-",level:4},{value:'TransactionSummary.feeInt ',id:"code-style-fontweight-normal-transactionsummarybfeebcodeint-",level:4},{value:'TransactionSummary.movementsAddresses[Address] ',id:"code-style-fontweight-normal-transactionsummarybmovementsaddressesbcodeaddress--",level:4},{value:'TransactionSummary.timestampTimestamp ',id:"code-style-fontweight-normal-transactionsummarybtimestampbcodetimestamp-",level:4},{value:'TransactionSummary.typeString ',id:"code-style-fontweight-normal-transactionsummarybtypebcodestring-",level:4},{value:'TransactionSummary.validationStampChecksumSha256Hash ',id:"code-style-fontweight-normal-transactionsummarybvalidationstampchecksumbcodesha256hash-",level:4},{value:"Member of",id:"member-of",level:3}],b=e=>{let{dataOpen:t,dataClose:a,children:o,startOpen:l=!1}=e;const[c,d]=(0,r.useState)(l);return(0,s.kt)("details",(0,n.Z)({},c?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,s.kt)("summary",{onClick:e=>{e.preventDefault(),d((e=>!e))},style:{listStyle:"none"}},c?t:a),c&&o)},y={Bullet:i,SpecifiedBy:m,Badge:u,toc:p,Details:b},h="wrapper";function f(e){let{components:t,...a}=e;return(0,s.kt)(h,(0,n.Z)({},y,a,{components:t,mdxType:"MDXLayout"}),(0,s.kt)("p",null,"[Transaction Summary]"," Represents transaction header or extract to summarize it"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-graphql"},"type TransactionSummary {\n address: Address\n fee: Int\n movementsAddresses: [Address]\n timestamp: Timestamp\n type: String\n validationStampChecksum: Sha256Hash\n}\n")),(0,s.kt)("h3",{id:"fields"},"Fields"),(0,s.kt)("h4",{id:"code-style-fontweight-normal-transactionsummarybaddressbcodeaddress-"},(0,s.kt)("a",{parentName:"h4",href:"#"},(0,s.kt)("code",{style:{fontWeight:"normal"}},"TransactionSummary.",(0,s.kt)("b",null,"address"))),(0,s.kt)(i,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/address"},(0,s.kt)("inlineCode",{parentName:"a"},"Address"))," ",(0,s.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,s.kt)("blockquote",null),(0,s.kt)("h4",{id:"code-style-fontweight-normal-transactionsummarybfeebcodeint-"},(0,s.kt)("a",{parentName:"h4",href:"#"},(0,s.kt)("code",{style:{fontWeight:"normal"}},"TransactionSummary.",(0,s.kt)("b",null,"fee"))),(0,s.kt)(i,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/int"},(0,s.kt)("inlineCode",{parentName:"a"},"Int"))," ",(0,s.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,s.kt)("blockquote",null),(0,s.kt)("h4",{id:"code-style-fontweight-normal-transactionsummarybmovementsaddressesbcodeaddress--"},(0,s.kt)("a",{parentName:"h4",href:"#"},(0,s.kt)("code",{style:{fontWeight:"normal"}},"TransactionSummary.",(0,s.kt)("b",null,"movementsAddresses"))),(0,s.kt)(i,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/address"},(0,s.kt)("inlineCode",{parentName:"a"},"[Address]"))," ",(0,s.kt)(u,{class:"badge badge--secondary",text:"list",mdxType:"Badge"})," ",(0,s.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,s.kt)("blockquote",null),(0,s.kt)("h4",{id:"code-style-fontweight-normal-transactionsummarybtimestampbcodetimestamp-"},(0,s.kt)("a",{parentName:"h4",href:"#"},(0,s.kt)("code",{style:{fontWeight:"normal"}},"TransactionSummary.",(0,s.kt)("b",null,"timestamp"))),(0,s.kt)(i,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/timestamp"},(0,s.kt)("inlineCode",{parentName:"a"},"Timestamp"))," ",(0,s.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,s.kt)("blockquote",null),(0,s.kt)("h4",{id:"code-style-fontweight-normal-transactionsummarybtypebcodestring-"},(0,s.kt)("a",{parentName:"h4",href:"#"},(0,s.kt)("code",{style:{fontWeight:"normal"}},"TransactionSummary.",(0,s.kt)("b",null,"type"))),(0,s.kt)(i,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/string"},(0,s.kt)("inlineCode",{parentName:"a"},"String"))," ",(0,s.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,s.kt)("blockquote",null),(0,s.kt)("h4",{id:"code-style-fontweight-normal-transactionsummarybvalidationstampchecksumbcodesha256hash-"},(0,s.kt)("a",{parentName:"h4",href:"#"},(0,s.kt)("code",{style:{fontWeight:"normal"}},"TransactionSummary.",(0,s.kt)("b",null,"validationStampChecksum"))),(0,s.kt)(i,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/sha-256-hash"},(0,s.kt)("inlineCode",{parentName:"a"},"Sha256Hash"))," ",(0,s.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,s.kt)("blockquote",null),(0,s.kt)("h3",{id:"member-of"},"Member of"),(0,s.kt)("p",null,(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/beacon-chain-summary"},(0,s.kt)("inlineCode",{parentName:"a"},"BeaconChainSummary"))," ",(0,s.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}f.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6087],{3905:(e,t,a)=>{a.d(t,{Zo:()=>i,kt:()=>b});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function s(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var c=n.createContext({}),d=function(e){var t=n.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},i=function(e){var t=d(e.components);return n.createElement(c.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},p=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,s=e.originalType,c=e.parentName,i=l(e,["components","mdxType","originalType","parentName"]),m=d(a),p=r,b=m["".concat(c,".").concat(p)]||m[p]||u[p]||s;return a?n.createElement(b,o(o({ref:t},i),{},{components:a})):n.createElement(b,o({ref:t},i))}));function b(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var s=a.length,o=new Array(s);o[0]=p;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[m]="string"==typeof e?e:r,o[1]=l;for(var d=2;d{a.r(t),a.d(t,{Badge:()=>u,Bullet:()=>i,Details:()=>b,SpecifiedBy:()=>m,assets:()=>d,contentTitle:()=>l,default:()=>f,frontMatter:()=>o,metadata:()=>c,toc:()=>p});var n=a(87462),r=a(67294),s=a(3905);a(8209);const o={id:"transaction-summary",title:"TransactionSummary",hide_table_of_contents:!1},l=void 0,c={unversionedId:"build/api/schema/objects/transaction-summary",id:"build/api/schema/objects/transaction-summary",title:"TransactionSummary",description:"[Transaction Summary] Represents transaction header or extract to summarize it",source:"@site/docs/build/api/schema/objects/transaction-summary.mdx",sourceDirName:"build/api/schema/objects",slug:"/build/api/schema/objects/transaction-summary",permalink:"/build/api/schema/objects/transaction-summary",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"transaction-summary",title:"TransactionSummary",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"TransactionMovement",permalink:"/build/api/schema/objects/transaction-movement"},next:{title:"Transaction",permalink:"/build/api/schema/objects/transaction"}},d={},i=()=>(0,s.kt)(r.Fragment,null,(0,s.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),m=e=>(0,s.kt)(r.Fragment,null,"Specification",(0,s.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,s.kt)(r.Fragment,null,(0,s.kt)("span",{className:e.class},e.text)),p=[{value:"Fields",id:"fields",level:3},{value:'TransactionSummary.addressAddress ',id:"code-style-fontweight-normal-transactionsummarybaddressbcodeaddress-",level:4},{value:'TransactionSummary.feeInt ',id:"code-style-fontweight-normal-transactionsummarybfeebcodeint-",level:4},{value:'TransactionSummary.movementsAddresses[Address] ',id:"code-style-fontweight-normal-transactionsummarybmovementsaddressesbcodeaddress--",level:4},{value:'TransactionSummary.timestampTimestamp ',id:"code-style-fontweight-normal-transactionsummarybtimestampbcodetimestamp-",level:4},{value:'TransactionSummary.typeString ',id:"code-style-fontweight-normal-transactionsummarybtypebcodestring-",level:4},{value:'TransactionSummary.validationStampChecksumSha256Hash ',id:"code-style-fontweight-normal-transactionsummarybvalidationstampchecksumbcodesha256hash-",level:4},{value:"Member of",id:"member-of",level:3}],b=e=>{let{dataOpen:t,dataClose:a,children:o,startOpen:l=!1}=e;const[c,d]=(0,r.useState)(l);return(0,s.kt)("details",(0,n.Z)({},c?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,s.kt)("summary",{onClick:e=>{e.preventDefault(),d((e=>!e))},style:{listStyle:"none"}},c?t:a),c&&o)},y={Bullet:i,SpecifiedBy:m,Badge:u,toc:p,Details:b},h="wrapper";function f(e){let{components:t,...a}=e;return(0,s.kt)(h,(0,n.Z)({},y,a,{components:t,mdxType:"MDXLayout"}),(0,s.kt)("p",null,"[Transaction Summary]"," Represents transaction header or extract to summarize it"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-graphql"},"type TransactionSummary {\n address: Address\n fee: Int\n movementsAddresses: [Address]\n timestamp: Timestamp\n type: String\n validationStampChecksum: Sha256Hash\n}\n")),(0,s.kt)("h3",{id:"fields"},"Fields"),(0,s.kt)("h4",{id:"code-style-fontweight-normal-transactionsummarybaddressbcodeaddress-"},(0,s.kt)("a",{parentName:"h4",href:"#"},(0,s.kt)("code",{style:{fontWeight:"normal"}},"TransactionSummary.",(0,s.kt)("b",null,"address"))),(0,s.kt)(i,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/address"},(0,s.kt)("inlineCode",{parentName:"a"},"Address"))," ",(0,s.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,s.kt)("blockquote",null),(0,s.kt)("h4",{id:"code-style-fontweight-normal-transactionsummarybfeebcodeint-"},(0,s.kt)("a",{parentName:"h4",href:"#"},(0,s.kt)("code",{style:{fontWeight:"normal"}},"TransactionSummary.",(0,s.kt)("b",null,"fee"))),(0,s.kt)(i,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/int"},(0,s.kt)("inlineCode",{parentName:"a"},"Int"))," ",(0,s.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,s.kt)("blockquote",null),(0,s.kt)("h4",{id:"code-style-fontweight-normal-transactionsummarybmovementsaddressesbcodeaddress--"},(0,s.kt)("a",{parentName:"h4",href:"#"},(0,s.kt)("code",{style:{fontWeight:"normal"}},"TransactionSummary.",(0,s.kt)("b",null,"movementsAddresses"))),(0,s.kt)(i,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/address"},(0,s.kt)("inlineCode",{parentName:"a"},"[Address]"))," ",(0,s.kt)(u,{class:"badge badge--secondary",text:"list",mdxType:"Badge"})," ",(0,s.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,s.kt)("blockquote",null),(0,s.kt)("h4",{id:"code-style-fontweight-normal-transactionsummarybtimestampbcodetimestamp-"},(0,s.kt)("a",{parentName:"h4",href:"#"},(0,s.kt)("code",{style:{fontWeight:"normal"}},"TransactionSummary.",(0,s.kt)("b",null,"timestamp"))),(0,s.kt)(i,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/timestamp"},(0,s.kt)("inlineCode",{parentName:"a"},"Timestamp"))," ",(0,s.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,s.kt)("blockquote",null),(0,s.kt)("h4",{id:"code-style-fontweight-normal-transactionsummarybtypebcodestring-"},(0,s.kt)("a",{parentName:"h4",href:"#"},(0,s.kt)("code",{style:{fontWeight:"normal"}},"TransactionSummary.",(0,s.kt)("b",null,"type"))),(0,s.kt)(i,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/string"},(0,s.kt)("inlineCode",{parentName:"a"},"String"))," ",(0,s.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,s.kt)("blockquote",null),(0,s.kt)("h4",{id:"code-style-fontweight-normal-transactionsummarybvalidationstampchecksumbcodesha256hash-"},(0,s.kt)("a",{parentName:"h4",href:"#"},(0,s.kt)("code",{style:{fontWeight:"normal"}},"TransactionSummary.",(0,s.kt)("b",null,"validationStampChecksum"))),(0,s.kt)(i,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/sha-256-hash"},(0,s.kt)("inlineCode",{parentName:"a"},"Sha256Hash"))," ",(0,s.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,s.kt)("blockquote",null),(0,s.kt)("h3",{id:"member-of"},"Member of"),(0,s.kt)("p",null,(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/beacon-chain-summary"},(0,s.kt)("inlineCode",{parentName:"a"},"BeaconChainSummary"))," ",(0,s.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}f.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file diff --git a/assets/js/f57a1375.9b113543.js b/assets/js/f57a1375.b3f50d75.js similarity index 97% rename from assets/js/f57a1375.9b113543.js rename to assets/js/f57a1375.b3f50d75.js index 12a53302d..34d86b4e5 100644 --- a/assets/js/f57a1375.9b113543.js +++ b/assets/js/f57a1375.b3f50d75.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[330],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>h});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),d=p(r),m=o,h=d["".concat(l,".").concat(m)]||d[m]||u[m]||a;return r?n.createElement(h,i(i({ref:t},s),{},{components:r})):n.createElement(h,i({ref:t},s))}));function h(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=m;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[d]="string"==typeof e?e:o,i[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>u,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(87462),o=(r(67294),r(3905));r(8209);const a={id:"code-proposals-ci",title:"CI"},i=void 0,c={unversionedId:"build/core/governance/code-proposals-ci",id:"build/core/governance/code-proposals-ci",title:"CI",description:"After a code proposal is received by a node in the network and passes initial validation, the next step in the process is the CI.",source:"@site/docs/build/core/governance/ci.md",sourceDirName:"build/core/governance",slug:"/build/core/governance/code-proposals-ci",permalink:"/build/core/governance/code-proposals-ci",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"code-proposals-ci",title:"CI"},sidebar:"docs",previous:{title:"CD",permalink:"/build/core/governance/code-proposals-cd"},next:{title:"Code Proposals",permalink:"/build/core/governance/code-proposals"}},l={},p=[],s={toc:p},d="wrapper";function u(e){let{components:t,...r}=e;return(0,o.kt)(d,(0,n.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"After a code proposal is received by a node in the network and passes initial validation, the next step in the process is the CI."),(0,o.kt)("p",null,"The ",(0,o.kt)("inlineCode",{parentName:"p"},"archethic-ci")," target produces an image with build tools.\nIts goal is to compile the source code into ",(0,o.kt)("inlineCode",{parentName:"p"},"archethic_node")," release.\nThe CI part is powered by ",(0,o.kt)("inlineCode",{parentName:"p"},"scripts/proposal_ci_job.sh"),".\nThe script runs in a container named ",(0,o.kt)("inlineCode",{parentName:"p"},"archethic-prop-{address}"),", it produces: release upgrade of ",(0,o.kt)("inlineCode",{parentName:"p"},"archethic_node")," and combined log of application of a code proposal to the source code, execution of unit tests, and log from linter. The log can be obtained with ",(0,o.kt)("inlineCode",{parentName:"p"},"docker logs"),", the release upgrade and the validator with ",(0,o.kt)("inlineCode",{parentName:"p"},"docker cp"),", after that the container can be disposed."),(0,o.kt)("p",null,"the logs are collected in ",(0,o.kt)("inlineCode",{parentName:"p"},"ci_logfile.txt")," and this file is copied at the end to tmp directory created in filesystem."),(0,o.kt)("p",null,"the script runs multiple commands:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Creates a branch prop_{proposal_address}"),(0,o.kt)("li",{parentName:"ul"},"Apply the changes to the branch"),(0,o.kt)("li",{parentName:"ul"},"Add the changes and commit"),(0,o.kt)("li",{parentName:"ul"},"Checking if the project is formatted correctly"),(0,o.kt)("li",{parentName:"ul"},"Check if the project compiles without warning"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/rrrene/credo"},"Credo")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/nccgroup/sobelow"},"Sobelow")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/sascha-wolf/knigge"},"Knigge")),(0,o.kt)("li",{parentName:"ul"},"Runs the test suite"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/jeremyjh/dialyxir"},"Dialyzer")),(0,o.kt)("li",{parentName:"ul"},"Checks if dependencies are outdated"),(0,o.kt)("li",{parentName:"ul"},"And Finally it creates an upgrade release with ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/bitwalker/distillery"},"Distillery"))))}u.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[330],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>h});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),d=p(r),m=o,h=d["".concat(l,".").concat(m)]||d[m]||u[m]||a;return r?n.createElement(h,i(i({ref:t},s),{},{components:r})):n.createElement(h,i({ref:t},s))}));function h(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=m;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[d]="string"==typeof e?e:o,i[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>u,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(87462),o=(r(67294),r(3905));r(8209);const a={id:"code-proposals-ci",title:"CI"},i=void 0,c={unversionedId:"build/core/governance/code-proposals-ci",id:"build/core/governance/code-proposals-ci",title:"CI",description:"After a code proposal is received by a node in the network and passes initial validation, the next step in the process is the CI.",source:"@site/docs/build/core/governance/ci.md",sourceDirName:"build/core/governance",slug:"/build/core/governance/code-proposals-ci",permalink:"/build/core/governance/code-proposals-ci",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"code-proposals-ci",title:"CI"},sidebar:"docs",previous:{title:"CD",permalink:"/build/core/governance/code-proposals-cd"},next:{title:"Code Proposals",permalink:"/build/core/governance/code-proposals"}},l={},p=[],s={toc:p},d="wrapper";function u(e){let{components:t,...r}=e;return(0,o.kt)(d,(0,n.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"After a code proposal is received by a node in the network and passes initial validation, the next step in the process is the CI."),(0,o.kt)("p",null,"The ",(0,o.kt)("inlineCode",{parentName:"p"},"archethic-ci")," target produces an image with build tools.\nIts goal is to compile the source code into ",(0,o.kt)("inlineCode",{parentName:"p"},"archethic_node")," release.\nThe CI part is powered by ",(0,o.kt)("inlineCode",{parentName:"p"},"scripts/proposal_ci_job.sh"),".\nThe script runs in a container named ",(0,o.kt)("inlineCode",{parentName:"p"},"archethic-prop-{address}"),", it produces: release upgrade of ",(0,o.kt)("inlineCode",{parentName:"p"},"archethic_node")," and combined log of application of a code proposal to the source code, execution of unit tests, and log from linter. The log can be obtained with ",(0,o.kt)("inlineCode",{parentName:"p"},"docker logs"),", the release upgrade and the validator with ",(0,o.kt)("inlineCode",{parentName:"p"},"docker cp"),", after that the container can be disposed."),(0,o.kt)("p",null,"the logs are collected in ",(0,o.kt)("inlineCode",{parentName:"p"},"ci_logfile.txt")," and this file is copied at the end to tmp directory created in filesystem."),(0,o.kt)("p",null,"the script runs multiple commands:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Creates a branch prop_{proposal_address}"),(0,o.kt)("li",{parentName:"ul"},"Apply the changes to the branch"),(0,o.kt)("li",{parentName:"ul"},"Add the changes and commit"),(0,o.kt)("li",{parentName:"ul"},"Checking if the project is formatted correctly"),(0,o.kt)("li",{parentName:"ul"},"Check if the project compiles without warning"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/rrrene/credo"},"Credo")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/nccgroup/sobelow"},"Sobelow")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/sascha-wolf/knigge"},"Knigge")),(0,o.kt)("li",{parentName:"ul"},"Runs the test suite"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/jeremyjh/dialyxir"},"Dialyzer")),(0,o.kt)("li",{parentName:"ul"},"Checks if dependencies are outdated"),(0,o.kt)("li",{parentName:"ul"},"And Finally it creates an upgrade release with ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/bitwalker/distillery"},"Distillery"))))}u.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file diff --git a/assets/js/f63a5cf4.9ea4ef2a.js b/assets/js/f63a5cf4.7b847348.js similarity index 98% rename from assets/js/f63a5cf4.9ea4ef2a.js rename to assets/js/f63a5cf4.7b847348.js index a2326f87e..cdc5136d4 100644 --- a/assets/js/f63a5cf4.9ea4ef2a.js +++ b/assets/js/f63a5cf4.7b847348.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3446],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>m});var o=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function l(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var i=o.createContext({}),p=function(e){var t=o.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},s=function(e){var t=p(e.components);return o.createElement(i.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},f=o.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,i=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),u=p(r),f=n,m=u["".concat(i,".").concat(f)]||u[f]||d[f]||a;return r?o.createElement(m,l(l({ref:t},s),{},{components:r})):o.createElement(m,l({ref:t},s))}));function m(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,l=new Array(a);l[0]=f;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[u]="string"==typeof e?e:n,l[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var o=r(87462),n=(r(67294),r(3905));r(8209);const a={id:"code-proposals",title:"Code Proposals"},l=void 0,c={unversionedId:"build/core/governance/code-proposals",id:"build/core/governance/code-proposals",title:"Code Proposals",description:"Archethic Blockchain is using code proposals to have a way to upgrade current blockchain",source:"@site/docs/build/core/governance/code-proposals.md",sourceDirName:"build/core/governance",slug:"/build/core/governance/code-proposals",permalink:"/build/core/governance/code-proposals",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"code-proposals",title:"Code Proposals"},sidebar:"docs",previous:{title:"CI",permalink:"/build/core/governance/code-proposals-ci"},next:{title:"Mining",permalink:"/build/core/mining/"}},i={},p=[],s={toc:p},u="wrapper";function d(e){let{components:t,...r}=e;return(0,n.kt)(u,(0,o.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"Archethic Blockchain is using code proposals to have a way to upgrade current blockchain\ncode in a automated and tested way."),(0,n.kt)("p",null,"A pending code proposal contains the following fields:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Address: Address of the code proposal"),(0,n.kt)("li",{parentName:"ul"},"Approvals: Approvals signed by the users"),(0,n.kt)("li",{parentName:"ul"},"Changes: Diff between current version and code proposal"),(0,n.kt)("li",{parentName:"ul"},"Description: Description of the code proposal"),(0,n.kt)("li",{parentName:"ul"},"Files: Files changed in code proposal"),(0,n.kt)("li",{parentName:"ul"},"Previous Public Key"),(0,n.kt)("li",{parentName:"ul"},"Timestamp"),(0,n.kt)("li",{parentName:"ul"},"Version: target version")),(0,n.kt)("p",null,"For a code proposal to be valid it needs to validate 3 conditions:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"The version in code proposal needs to be a successor version of the current one"),(0,n.kt)("li",{parentName:"ul"},"The changes need to contain a valid ",(0,n.kt)("a",{parentName:"li",href:"https://www.erlang.org/doc/man/appup.html"},"appup file")),(0,n.kt)("li",{parentName:"ul"},"the code proposal is applicable on the current branch")),(0,n.kt)("p",null,"Code proposals can be visualised in the governance section of the UI."),(0,n.kt)("p",null,"when a code proposal get enough approvals from members of technical council (more than the threshhold), it automatically launchs the CI/CD process."))}d.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3446],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>m});var o=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function l(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var i=o.createContext({}),p=function(e){var t=o.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},s=function(e){var t=p(e.components);return o.createElement(i.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},f=o.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,i=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),u=p(r),f=n,m=u["".concat(i,".").concat(f)]||u[f]||d[f]||a;return r?o.createElement(m,l(l({ref:t},s),{},{components:r})):o.createElement(m,l({ref:t},s))}));function m(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,l=new Array(a);l[0]=f;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[u]="string"==typeof e?e:n,l[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var o=r(87462),n=(r(67294),r(3905));r(8209);const a={id:"code-proposals",title:"Code Proposals"},l=void 0,c={unversionedId:"build/core/governance/code-proposals",id:"build/core/governance/code-proposals",title:"Code Proposals",description:"Archethic Blockchain is using code proposals to have a way to upgrade current blockchain",source:"@site/docs/build/core/governance/code-proposals.md",sourceDirName:"build/core/governance",slug:"/build/core/governance/code-proposals",permalink:"/build/core/governance/code-proposals",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"code-proposals",title:"Code Proposals"},sidebar:"docs",previous:{title:"CI",permalink:"/build/core/governance/code-proposals-ci"},next:{title:"Mining",permalink:"/build/core/mining/"}},i={},p=[],s={toc:p},u="wrapper";function d(e){let{components:t,...r}=e;return(0,n.kt)(u,(0,o.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"Archethic Blockchain is using code proposals to have a way to upgrade current blockchain\ncode in a automated and tested way."),(0,n.kt)("p",null,"A pending code proposal contains the following fields:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Address: Address of the code proposal"),(0,n.kt)("li",{parentName:"ul"},"Approvals: Approvals signed by the users"),(0,n.kt)("li",{parentName:"ul"},"Changes: Diff between current version and code proposal"),(0,n.kt)("li",{parentName:"ul"},"Description: Description of the code proposal"),(0,n.kt)("li",{parentName:"ul"},"Files: Files changed in code proposal"),(0,n.kt)("li",{parentName:"ul"},"Previous Public Key"),(0,n.kt)("li",{parentName:"ul"},"Timestamp"),(0,n.kt)("li",{parentName:"ul"},"Version: target version")),(0,n.kt)("p",null,"For a code proposal to be valid it needs to validate 3 conditions:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"The version in code proposal needs to be a successor version of the current one"),(0,n.kt)("li",{parentName:"ul"},"The changes need to contain a valid ",(0,n.kt)("a",{parentName:"li",href:"https://www.erlang.org/doc/man/appup.html"},"appup file")),(0,n.kt)("li",{parentName:"ul"},"the code proposal is applicable on the current branch")),(0,n.kt)("p",null,"Code proposals can be visualised in the governance section of the UI."),(0,n.kt)("p",null,"when a code proposal get enough approvals from members of technical council (more than the threshhold), it automatically launchs the CI/CD process."))}d.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file diff --git a/assets/js/f821c4a8.9ede2e5a.js b/assets/js/f821c4a8.75f9f325.js similarity index 99% rename from assets/js/f821c4a8.9ede2e5a.js rename to assets/js/f821c4a8.75f9f325.js index 6f4962ff1..225677b98 100644 --- a/assets/js/f821c4a8.9ede2e5a.js +++ b/assets/js/f821c4a8.75f9f325.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4860],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>k});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var c=a.createContext({}),s=function(e){var t=a.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=s(e.components);return a.createElement(c.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,c=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),p=s(n),m=r,k=p["".concat(c,".").concat(m)]||p[m]||u[m]||o;return n?a.createElement(k,i(i({ref:t},d),{},{components:n})):a.createElement(k,i({ref:t},d))}));function k(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=m;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[p]="string"==typeof e?e:r,i[1]=l;for(var s=2;s{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var a=n(87462),r=(n(67294),n(3905));n(8209);const o={id:"contract",title:"Contract module",sidebar_label:"Contract"},i=void 0,l={unversionedId:"build/smart-contracts/language/library/contract",id:"build/smart-contracts/language/library/contract",title:"Contract module",description:"The Contract module contains functions that deals with current and other contracts.",source:"@site/docs/build/smart-contracts/language/library/contract.md",sourceDirName:"build/smart-contracts/language/library",slug:"/build/smart-contracts/language/library/contract",permalink:"/build/smart-contracts/language/library/contract",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"contract",title:"Contract module",sidebar_label:"Contract"},sidebar:"docs",previous:{title:"Code",permalink:"/build/smart-contracts/language/library/code"},next:{title:"Crypto",permalink:"/build/smart-contracts/language/library/crypto"}},c={},s=[{value:"call_function/3 [I/O]",id:"call_function3-io",level:3},{value:"set_type/1 [Transaction]",id:"set_type1-transaction",level:3},{value:"set_content/1 [Transaction]",id:"set_content1-transaction",level:3},{value:"set_code/1 [Transaction]",id:"set_code1-transaction",level:3},{value:"add_uco_transfer/1 [Transaction]",id:"add_uco_transfer1-transaction",level:3},{value:"add_uco_transfers/1 [Transaction]",id:"add_uco_transfers1-transaction",level:3},{value:"add_token_transfer/1 [Transaction]",id:"add_token_transfer1-transaction",level:3},{value:"add_token_transfers/1 [Transaction]",id:"add_token_transfers1-transaction",level:3},{value:"add_ownership/1 [Transaction]",id:"add_ownership1-transaction",level:3},{value:"add_ownerships/1 [Transaction]",id:"add_ownerships1-transaction",level:3},{value:"add_recipient/1 [Transaction]",id:"add_recipient1-transaction",level:3},{value:"add_recipients/1 [Transaction]",id:"add_recipients1-transaction",level:3}],d={toc:s},p="wrapper";function u(e){let{components:t,...n}=e;return(0,r.kt)(p,(0,a.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"The ",(0,r.kt)("inlineCode",{parentName:"p"},"Contract")," module contains functions that deals with current and other contracts."),(0,r.kt)("h3",{id:"call_function3-io"},"call_function/3 ",(0,r.kt)("inlineCode",{parentName:"h3"},"[I/O]")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},'Contract.call_function(0x0000ABCD..., "add", [1, 2])\n')),(0,r.kt)("p",null,"Parameters:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"contract_address")," the contract's adddress"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"function_name")," the function name"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"args")," the list of arguments to call the function with")),(0,r.kt)("p",null,"Calls the exported function ",(0,r.kt)("inlineCode",{parentName:"p"},"function_name")," of the Smart Contract at ",(0,r.kt)("inlineCode",{parentName:"p"},"contract_address")," with given ",(0,r.kt)("inlineCode",{parentName:"p"},"args")," and return the result value."),(0,r.kt)("h3",{id:"set_type1-transaction"},"set_type/1 ",(0,r.kt)("inlineCode",{parentName:"h3"},"[Transaction]")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},'Contract.set_type("transfer")\n')),(0,r.kt)("p",null,"Parameters:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"type"),' the transaction type ("contract", "transfer", "data", "hosting")')),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Mutates")," the next transaction to be of type ",(0,r.kt)("inlineCode",{parentName:"p"},"type"),"."),(0,r.kt)("h3",{id:"set_content1-transaction"},"set_content/1 ",(0,r.kt)("inlineCode",{parentName:"h3"},"[Transaction]")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},'Contract.set_content("Hello Smart Contract")\n')),(0,r.kt)("p",null,"Parameters:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"content")," the transaction's content (we usually use this as the state of the smart contract)")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Mutates")," the next transaction content to be ",(0,r.kt)("inlineCode",{parentName:"p"},"content"),"."),(0,r.kt)("admonition",{type:"tip"},(0,r.kt)("p",{parentName:"admonition"},"While ",(0,r.kt)("inlineCode",{parentName:"p"},"content")," is always a string when you read it, it is possible here to send an integer or a float for convenience.\nFor any other data structure, you should serialize it with the ",(0,r.kt)("a",{parentName:"p",href:"/build/smart-contracts/language/library#json"},"Json module")," for example.")),(0,r.kt)("h3",{id:"set_code1-transaction"},"set_code/1 ",(0,r.kt)("inlineCode",{parentName:"h3"},"[Transaction]")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},'Contract.set_code("@version 1\\ncondition inherit: []")\n')),(0,r.kt)("p",null,"Parameters:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"code")," the code")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Mutates")," the next transaction code to be ",(0,r.kt)("inlineCode",{parentName:"p"},"code"),"."),(0,r.kt)("admonition",{type:"tip"},(0,r.kt)("p",{parentName:"admonition"},'This example "closes" the contract, by adding an ',(0,r.kt)("inlineCode",{parentName:"p"},"condition inherit")," that doesn't accept anything. It will be impossible to create a new transaction in this chain.")),(0,r.kt)("h3",{id:"add_uco_transfer1-transaction"},"add_uco_transfer/1 ",(0,r.kt)("inlineCode",{parentName:"h3"},"[Transaction]")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},'Contract.add_uco_transfer(to: "000012345...", amount: 1)\n')),(0,r.kt)("p",null,"Parameters:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"uco_transfer")," a map with two keys:",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"to"),": the destination address"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"amount"),": the number of UCO")))),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Mutates")," the next transaction to add the ",(0,r.kt)("inlineCode",{parentName:"p"},"uco_transfer"),"."),(0,r.kt)("h3",{id:"add_uco_transfers1-transaction"},"add_uco_transfers/1 ",(0,r.kt)("inlineCode",{parentName:"h3"},"[Transaction]")),(0,r.kt)("p",null,"Equivalent to call ",(0,r.kt)("a",{parentName:"p",href:"#add_uco_transfer1-transaction"},"add_uco_transfer/1")," for each element of the list"),(0,r.kt)("h3",{id:"add_token_transfer1-transaction"},"add_token_transfer/1 ",(0,r.kt)("inlineCode",{parentName:"h3"},"[Transaction]")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},'Contract.add_token_transfer(\n to: "000012345...",\n amount: 1.2,\n token_address: "000023456...")\nContract.add_token_transfer(\n to: "000012345...",\n amount: 1.2,\n token_id: 4,\n token_address: "000023456...")\n')),(0,r.kt)("p",null,"Parameters:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"token_transfer")," a map with three or four keys:",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"to"),": the destination address"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"amount"),": the number of UCO"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"token_address"),": the transaction address of the token"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"[token_id]"),": an optional integer to specify which index in the list (used for the NFTs)")))),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Mutates")," the next transaction to add the ",(0,r.kt)("inlineCode",{parentName:"p"},"token_transfer"),"."),(0,r.kt)("h3",{id:"add_token_transfers1-transaction"},"add_token_transfers/1 ",(0,r.kt)("inlineCode",{parentName:"h3"},"[Transaction]")),(0,r.kt)("p",null,"Equivalent to call ",(0,r.kt)("a",{parentName:"p",href:"#add_token_transfer1-transaction"},"add_token_transfer/1")," for each element of the list"),(0,r.kt)("h3",{id:"add_ownership1-transaction"},"add_ownership/1 ",(0,r.kt)("inlineCode",{parentName:"h3"},"[Transaction]")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},'authorized_keys = Map.new()\nauthorized_keys = Map.set(authorized_keys, public_key, encoded_secret_key)\nContract.add_ownership(\n secret: "ENCODED_SECRET1",\n authorized_keys: authorized_keys\n)\n')),(0,r.kt)("p",null,"Parameters:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"ownership")," a map with two keys:",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"secret"),": the encoded secret"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"authorized_keys"),": a map where the keys are the ",(0,r.kt)("inlineCode",{parentName:"li"},"public_keys")," and the values are the ",(0,r.kt)("inlineCode",{parentName:"li"},"encoded_secret_keys")," (the keys to decode the secret encoded by each ",(0,r.kt)("inlineCode",{parentName:"li"},"public_key"),")")))),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"It is the developer's job to encode the secret & the secret key for each authorized key.")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Mutates")," the next transaction to add the ",(0,r.kt)("inlineCode",{parentName:"p"},"ownership"),"."),(0,r.kt)("h3",{id:"add_ownerships1-transaction"},"add_ownerships/1 ",(0,r.kt)("inlineCode",{parentName:"h3"},"[Transaction]")),(0,r.kt)("p",null,"Equivalent to call ",(0,r.kt)("a",{parentName:"p",href:"#add_ownership1-transaction"},"add_ownership/1")," for each element of the list"),(0,r.kt)("h3",{id:"add_recipient1-transaction"},"add_recipient/1 ",(0,r.kt)("inlineCode",{parentName:"h3"},"[Transaction]")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},'Contract.add_recipient("000012345...")\n')),(0,r.kt)("p",null,"Parameters:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"address"),": a transaction address (one with a smart contract)")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Mutates")," the next transaction to add the ",(0,r.kt)("inlineCode",{parentName:"p"},"address")," in the recipients."),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"Recipients are used to trigger smart contracts")),(0,r.kt)("h3",{id:"add_recipients1-transaction"},"add_recipients/1 ",(0,r.kt)("inlineCode",{parentName:"h3"},"[Transaction]")),(0,r.kt)("p",null,"Equivalent to call ",(0,r.kt)("a",{parentName:"p",href:"#add_recipient1-transaction"},"add_recipients/1")," for each element of the list"))}u.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4860],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>k});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var c=a.createContext({}),s=function(e){var t=a.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=s(e.components);return a.createElement(c.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,c=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),p=s(n),m=r,k=p["".concat(c,".").concat(m)]||p[m]||u[m]||o;return n?a.createElement(k,i(i({ref:t},d),{},{components:n})):a.createElement(k,i({ref:t},d))}));function k(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=m;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[p]="string"==typeof e?e:r,i[1]=l;for(var s=2;s{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var a=n(87462),r=(n(67294),n(3905));n(8209);const o={id:"contract",title:"Contract module",sidebar_label:"Contract"},i=void 0,l={unversionedId:"build/smart-contracts/language/library/contract",id:"build/smart-contracts/language/library/contract",title:"Contract module",description:"The Contract module contains functions that deals with current and other contracts.",source:"@site/docs/build/smart-contracts/language/library/contract.md",sourceDirName:"build/smart-contracts/language/library",slug:"/build/smart-contracts/language/library/contract",permalink:"/build/smart-contracts/language/library/contract",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"contract",title:"Contract module",sidebar_label:"Contract"},sidebar:"docs",previous:{title:"Code",permalink:"/build/smart-contracts/language/library/code"},next:{title:"Crypto",permalink:"/build/smart-contracts/language/library/crypto"}},c={},s=[{value:"call_function/3 [I/O]",id:"call_function3-io",level:3},{value:"set_type/1 [Transaction]",id:"set_type1-transaction",level:3},{value:"set_content/1 [Transaction]",id:"set_content1-transaction",level:3},{value:"set_code/1 [Transaction]",id:"set_code1-transaction",level:3},{value:"add_uco_transfer/1 [Transaction]",id:"add_uco_transfer1-transaction",level:3},{value:"add_uco_transfers/1 [Transaction]",id:"add_uco_transfers1-transaction",level:3},{value:"add_token_transfer/1 [Transaction]",id:"add_token_transfer1-transaction",level:3},{value:"add_token_transfers/1 [Transaction]",id:"add_token_transfers1-transaction",level:3},{value:"add_ownership/1 [Transaction]",id:"add_ownership1-transaction",level:3},{value:"add_ownerships/1 [Transaction]",id:"add_ownerships1-transaction",level:3},{value:"add_recipient/1 [Transaction]",id:"add_recipient1-transaction",level:3},{value:"add_recipients/1 [Transaction]",id:"add_recipients1-transaction",level:3}],d={toc:s},p="wrapper";function u(e){let{components:t,...n}=e;return(0,r.kt)(p,(0,a.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"The ",(0,r.kt)("inlineCode",{parentName:"p"},"Contract")," module contains functions that deals with current and other contracts."),(0,r.kt)("h3",{id:"call_function3-io"},"call_function/3 ",(0,r.kt)("inlineCode",{parentName:"h3"},"[I/O]")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},'Contract.call_function(0x0000ABCD..., "add", [1, 2])\n')),(0,r.kt)("p",null,"Parameters:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"contract_address")," the contract's adddress"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"function_name")," the function name"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"args")," the list of arguments to call the function with")),(0,r.kt)("p",null,"Calls the exported function ",(0,r.kt)("inlineCode",{parentName:"p"},"function_name")," of the Smart Contract at ",(0,r.kt)("inlineCode",{parentName:"p"},"contract_address")," with given ",(0,r.kt)("inlineCode",{parentName:"p"},"args")," and return the result value."),(0,r.kt)("h3",{id:"set_type1-transaction"},"set_type/1 ",(0,r.kt)("inlineCode",{parentName:"h3"},"[Transaction]")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},'Contract.set_type("transfer")\n')),(0,r.kt)("p",null,"Parameters:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"type"),' the transaction type ("contract", "transfer", "data", "hosting")')),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Mutates")," the next transaction to be of type ",(0,r.kt)("inlineCode",{parentName:"p"},"type"),"."),(0,r.kt)("h3",{id:"set_content1-transaction"},"set_content/1 ",(0,r.kt)("inlineCode",{parentName:"h3"},"[Transaction]")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},'Contract.set_content("Hello Smart Contract")\n')),(0,r.kt)("p",null,"Parameters:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"content")," the transaction's content (we usually use this as the state of the smart contract)")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Mutates")," the next transaction content to be ",(0,r.kt)("inlineCode",{parentName:"p"},"content"),"."),(0,r.kt)("admonition",{type:"tip"},(0,r.kt)("p",{parentName:"admonition"},"While ",(0,r.kt)("inlineCode",{parentName:"p"},"content")," is always a string when you read it, it is possible here to send an integer or a float for convenience.\nFor any other data structure, you should serialize it with the ",(0,r.kt)("a",{parentName:"p",href:"/build/smart-contracts/language/library#json"},"Json module")," for example.")),(0,r.kt)("h3",{id:"set_code1-transaction"},"set_code/1 ",(0,r.kt)("inlineCode",{parentName:"h3"},"[Transaction]")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},'Contract.set_code("@version 1\\ncondition inherit: []")\n')),(0,r.kt)("p",null,"Parameters:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"code")," the code")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Mutates")," the next transaction code to be ",(0,r.kt)("inlineCode",{parentName:"p"},"code"),"."),(0,r.kt)("admonition",{type:"tip"},(0,r.kt)("p",{parentName:"admonition"},'This example "closes" the contract, by adding an ',(0,r.kt)("inlineCode",{parentName:"p"},"condition inherit")," that doesn't accept anything. It will be impossible to create a new transaction in this chain.")),(0,r.kt)("h3",{id:"add_uco_transfer1-transaction"},"add_uco_transfer/1 ",(0,r.kt)("inlineCode",{parentName:"h3"},"[Transaction]")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},'Contract.add_uco_transfer(to: "000012345...", amount: 1)\n')),(0,r.kt)("p",null,"Parameters:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"uco_transfer")," a map with two keys:",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"to"),": the destination address"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"amount"),": the number of UCO")))),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Mutates")," the next transaction to add the ",(0,r.kt)("inlineCode",{parentName:"p"},"uco_transfer"),"."),(0,r.kt)("h3",{id:"add_uco_transfers1-transaction"},"add_uco_transfers/1 ",(0,r.kt)("inlineCode",{parentName:"h3"},"[Transaction]")),(0,r.kt)("p",null,"Equivalent to call ",(0,r.kt)("a",{parentName:"p",href:"#add_uco_transfer1-transaction"},"add_uco_transfer/1")," for each element of the list"),(0,r.kt)("h3",{id:"add_token_transfer1-transaction"},"add_token_transfer/1 ",(0,r.kt)("inlineCode",{parentName:"h3"},"[Transaction]")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},'Contract.add_token_transfer(\n to: "000012345...",\n amount: 1.2,\n token_address: "000023456...")\nContract.add_token_transfer(\n to: "000012345...",\n amount: 1.2,\n token_id: 4,\n token_address: "000023456...")\n')),(0,r.kt)("p",null,"Parameters:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"token_transfer")," a map with three or four keys:",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"to"),": the destination address"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"amount"),": the number of UCO"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"token_address"),": the transaction address of the token"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"[token_id]"),": an optional integer to specify which index in the list (used for the NFTs)")))),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Mutates")," the next transaction to add the ",(0,r.kt)("inlineCode",{parentName:"p"},"token_transfer"),"."),(0,r.kt)("h3",{id:"add_token_transfers1-transaction"},"add_token_transfers/1 ",(0,r.kt)("inlineCode",{parentName:"h3"},"[Transaction]")),(0,r.kt)("p",null,"Equivalent to call ",(0,r.kt)("a",{parentName:"p",href:"#add_token_transfer1-transaction"},"add_token_transfer/1")," for each element of the list"),(0,r.kt)("h3",{id:"add_ownership1-transaction"},"add_ownership/1 ",(0,r.kt)("inlineCode",{parentName:"h3"},"[Transaction]")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},'authorized_keys = Map.new()\nauthorized_keys = Map.set(authorized_keys, public_key, encoded_secret_key)\nContract.add_ownership(\n secret: "ENCODED_SECRET1",\n authorized_keys: authorized_keys\n)\n')),(0,r.kt)("p",null,"Parameters:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"ownership")," a map with two keys:",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"secret"),": the encoded secret"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"authorized_keys"),": a map where the keys are the ",(0,r.kt)("inlineCode",{parentName:"li"},"public_keys")," and the values are the ",(0,r.kt)("inlineCode",{parentName:"li"},"encoded_secret_keys")," (the keys to decode the secret encoded by each ",(0,r.kt)("inlineCode",{parentName:"li"},"public_key"),")")))),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"It is the developer's job to encode the secret & the secret key for each authorized key.")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Mutates")," the next transaction to add the ",(0,r.kt)("inlineCode",{parentName:"p"},"ownership"),"."),(0,r.kt)("h3",{id:"add_ownerships1-transaction"},"add_ownerships/1 ",(0,r.kt)("inlineCode",{parentName:"h3"},"[Transaction]")),(0,r.kt)("p",null,"Equivalent to call ",(0,r.kt)("a",{parentName:"p",href:"#add_ownership1-transaction"},"add_ownership/1")," for each element of the list"),(0,r.kt)("h3",{id:"add_recipient1-transaction"},"add_recipient/1 ",(0,r.kt)("inlineCode",{parentName:"h3"},"[Transaction]")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-elixir"},'Contract.add_recipient("000012345...")\n')),(0,r.kt)("p",null,"Parameters:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"address"),": a transaction address (one with a smart contract)")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Mutates")," the next transaction to add the ",(0,r.kt)("inlineCode",{parentName:"p"},"address")," in the recipients."),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"Recipients are used to trigger smart contracts")),(0,r.kt)("h3",{id:"add_recipients1-transaction"},"add_recipients/1 ",(0,r.kt)("inlineCode",{parentName:"h3"},"[Transaction]")),(0,r.kt)("p",null,"Equivalent to call ",(0,r.kt)("a",{parentName:"p",href:"#add_recipient1-transaction"},"add_recipients/1")," for each element of the list"))}u.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/fa629964.19dbc43b.js b/assets/js/fa629964.fbc69141.js similarity index 98% rename from assets/js/fa629964.19dbc43b.js rename to assets/js/fa629964.fbc69141.js index 004948e50..60dedd0bd 100644 --- a/assets/js/fa629964.19dbc43b.js +++ b/assets/js/fa629964.fbc69141.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8607],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>m});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),c=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),u=c(n),h=r,m=u["".concat(l,".").concat(h)]||u[h]||p[h]||o;return n?a.createElement(m,i(i({ref:t},d),{},{components:n})):a.createElement(m,i({ref:t},d))}));function m(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=h;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[u]="string"==typeof e?e:r,i[1]=s;for(var c=2;c{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>p,frontMatter:()=>o,metadata:()=>s,toc:()=>c});var a=n(87462),r=(n(67294),n(3905));n(8209);const o={id:"sharding",title:"Sharding"},i=void 0,s={unversionedId:"learn/sharding/sharding",id:"learn/sharding/sharding",title:"Sharding",description:"To become an unlimited decentralized network, Archethic Blockchain is using a feature called Sharding, used to split processing and storage power to ensure a scalable system.",source:"@site/docs/learn/sharding/README.md",sourceDirName:"learn/sharding",slug:"/learn/sharding/",permalink:"/learn/sharding/",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"sharding",title:"Sharding"},sidebar:"docs",previous:{title:"Self Repair",permalink:"/learn/p2p/self-repair"},next:{title:"Beacon Chain",permalink:"/learn/sharding/beacon-chain/"}},l={},c=[{value:"Validation",id:"validation",level:2},{value:"Storage",id:"storage",level:2},{value:"Rotating Election",id:"rotating-election",level:2}],d={toc:c},u="wrapper";function p(e){let{components:t,...n}=e;return(0,r.kt)(u,(0,a.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"To become an unlimited decentralized network, Archethic Blockchain is using a feature called ",(0,r.kt)("inlineCode",{parentName:"p"},"Sharding"),", used to split processing and storage power to ensure a scalable system."),(0,r.kt)("p",null,"Thanks to the ",(0,r.kt)("inlineCode",{parentName:"p"},"Transaction Chain")," paradigm, transactions can be divided into chains, to ensure a concurrent processing\nas the opposite of traditional blockchains."),(0,r.kt)("p",null,"Other new blockchain networks start to use ",(0,r.kt)("inlineCode",{parentName:"p"},"Sharding")," but sometimes not in a complete form: "),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"either storage"),(0,r.kt)("li",{parentName:"ul"},"either validation")),(0,r.kt)("p",null,"Archethic Blockchain supports a complete sharding scheme for validation and for storage."),(0,r.kt)("h2",{id:"validation"},"Validation"),(0,r.kt)("p",null,"Each transaction is validated by a new set of rotating nodes."),(0,r.kt)("p",null,"This ensures the distribution of validation and processing, to achieve a linear scalability and a high TPS."),(0,r.kt)("p",null,"Because transaction are using the UTXO model,\nthere is no reality out of the transaction, so the network is not subject to issues like:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"cross shards synchronization"),(0,r.kt)("li",{parentName:"ul"},"state channels communication")),(0,r.kt)("p",null,"To get the state of a transaction, only the transaction and the transaction inputs will be taken into consideration"),(0,r.kt)("h2",{id:"storage"},"Storage"),(0,r.kt)("p",null,"After the validation of the transaction, validation nodes will be in charge to send the transaction to several pools of nodes:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Transaction Chain Storage Pool: All the transaction associated with the same chain must be replicated on the storage nodes associated with the new transaction's address."),(0,r.kt)("li",{parentName:"ul"},"I/O Storage Pool: Each validated transaction is replicated on the storage nodes associated with the addresses of the transaction input/outputs:",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Transaction movements addresses storage pools"),(0,r.kt)("li",{parentName:"ul"},"Node movements public key storage pools"),(0,r.kt)("li",{parentName:"ul"},"Recipients addresses storage pools"))),(0,r.kt)("li",{parentName:"ul"},"Beacon Storage Pool: Each transaction address must be replicated on the storage nodes of the associated address subset ",(0,r.kt)("a",{parentName:"li",href:"/learn/sharding/beacon-chain"},"See BeaconChain"))),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},"For each transaction, the Transaction Chain Storage Pool will change, assuring a completed distribution of nodes and the data replication. Nevertheless, nothing prevents the storage nodes to overlap within the chain.")),(0,r.kt)("h2",{id:"rotating-election"},"Rotating Election"),(0,r.kt)("p",null,"Like the validation nodes election, the storage nodes election is subject to a rotating election.\nIn other terms, each transaction will have its own shard and storage nodes."),(0,r.kt)("p",null,"The storage node election is based on:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"the address of the transaction"),(0,r.kt)("li",{parentName:"ul"},"the storage nonce: a stable secret known by the network"),(0,r.kt)("li",{parentName:"ul"},"the list of nodes")),(0,r.kt)("p",null,"This permits any node to perform this computation autonomously to reproduce this list and to request a transaction from the closest node."),(0,r.kt)("p",null,"To ensure the best availability of the data, this list is refined by some criteria, such as:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"P2P availability"),(0,r.kt)("li",{parentName:"ul"},"Geographical distribution")))}p.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8607],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>m});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),c=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),u=c(n),h=r,m=u["".concat(l,".").concat(h)]||u[h]||p[h]||o;return n?a.createElement(m,i(i({ref:t},d),{},{components:n})):a.createElement(m,i({ref:t},d))}));function m(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=h;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[u]="string"==typeof e?e:r,i[1]=s;for(var c=2;c{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>p,frontMatter:()=>o,metadata:()=>s,toc:()=>c});var a=n(87462),r=(n(67294),n(3905));n(8209);const o={id:"sharding",title:"Sharding"},i=void 0,s={unversionedId:"learn/sharding/sharding",id:"learn/sharding/sharding",title:"Sharding",description:"To become an unlimited decentralized network, Archethic Blockchain is using a feature called Sharding, used to split processing and storage power to ensure a scalable system.",source:"@site/docs/learn/sharding/README.md",sourceDirName:"learn/sharding",slug:"/learn/sharding/",permalink:"/learn/sharding/",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"sharding",title:"Sharding"},sidebar:"docs",previous:{title:"Self Repair",permalink:"/learn/p2p/self-repair"},next:{title:"Beacon Chain",permalink:"/learn/sharding/beacon-chain/"}},l={},c=[{value:"Validation",id:"validation",level:2},{value:"Storage",id:"storage",level:2},{value:"Rotating Election",id:"rotating-election",level:2}],d={toc:c},u="wrapper";function p(e){let{components:t,...n}=e;return(0,r.kt)(u,(0,a.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"To become an unlimited decentralized network, Archethic Blockchain is using a feature called ",(0,r.kt)("inlineCode",{parentName:"p"},"Sharding"),", used to split processing and storage power to ensure a scalable system."),(0,r.kt)("p",null,"Thanks to the ",(0,r.kt)("inlineCode",{parentName:"p"},"Transaction Chain")," paradigm, transactions can be divided into chains, to ensure a concurrent processing\nas the opposite of traditional blockchains."),(0,r.kt)("p",null,"Other new blockchain networks start to use ",(0,r.kt)("inlineCode",{parentName:"p"},"Sharding")," but sometimes not in a complete form: "),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"either storage"),(0,r.kt)("li",{parentName:"ul"},"either validation")),(0,r.kt)("p",null,"Archethic Blockchain supports a complete sharding scheme for validation and for storage."),(0,r.kt)("h2",{id:"validation"},"Validation"),(0,r.kt)("p",null,"Each transaction is validated by a new set of rotating nodes."),(0,r.kt)("p",null,"This ensures the distribution of validation and processing, to achieve a linear scalability and a high TPS."),(0,r.kt)("p",null,"Because transaction are using the UTXO model,\nthere is no reality out of the transaction, so the network is not subject to issues like:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"cross shards synchronization"),(0,r.kt)("li",{parentName:"ul"},"state channels communication")),(0,r.kt)("p",null,"To get the state of a transaction, only the transaction and the transaction inputs will be taken into consideration"),(0,r.kt)("h2",{id:"storage"},"Storage"),(0,r.kt)("p",null,"After the validation of the transaction, validation nodes will be in charge to send the transaction to several pools of nodes:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Transaction Chain Storage Pool: All the transaction associated with the same chain must be replicated on the storage nodes associated with the new transaction's address."),(0,r.kt)("li",{parentName:"ul"},"I/O Storage Pool: Each validated transaction is replicated on the storage nodes associated with the addresses of the transaction input/outputs:",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Transaction movements addresses storage pools"),(0,r.kt)("li",{parentName:"ul"},"Node movements public key storage pools"),(0,r.kt)("li",{parentName:"ul"},"Recipients addresses storage pools"))),(0,r.kt)("li",{parentName:"ul"},"Beacon Storage Pool: Each transaction address must be replicated on the storage nodes of the associated address subset ",(0,r.kt)("a",{parentName:"li",href:"/learn/sharding/beacon-chain"},"See BeaconChain"))),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},"For each transaction, the Transaction Chain Storage Pool will change, assuring a completed distribution of nodes and the data replication. Nevertheless, nothing prevents the storage nodes to overlap within the chain.")),(0,r.kt)("h2",{id:"rotating-election"},"Rotating Election"),(0,r.kt)("p",null,"Like the validation nodes election, the storage nodes election is subject to a rotating election.\nIn other terms, each transaction will have its own shard and storage nodes."),(0,r.kt)("p",null,"The storage node election is based on:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"the address of the transaction"),(0,r.kt)("li",{parentName:"ul"},"the storage nonce: a stable secret known by the network"),(0,r.kt)("li",{parentName:"ul"},"the list of nodes")),(0,r.kt)("p",null,"This permits any node to perform this computation autonomously to reproduce this list and to request a transaction from the closest node."),(0,r.kt)("p",null,"To ensure the best availability of the data, this list is refined by some criteria, such as:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"P2P availability"),(0,r.kt)("li",{parentName:"ul"},"Geographical distribution")))}p.isMDXComponent=!0},8209:(e,t,n)=>{n(67294)}}]); \ No newline at end of file diff --git a/assets/js/fb57a917.f8faeb0e.js b/assets/js/fb57a917.191b1059.js similarity index 98% rename from assets/js/fb57a917.f8faeb0e.js rename to assets/js/fb57a917.191b1059.js index e69ba36c3..f74c7caa4 100644 --- a/assets/js/fb57a917.f8faeb0e.js +++ b/assets/js/fb57a917.191b1059.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4875],{3905:(e,t,i)=>{i.d(t,{Zo:()=>h,kt:()=>k});var n=i(67294);function r(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function c(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,n)}return i}function a(e){for(var t=1;t=0||(r[i]=e[i]);return r}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(r[i]=e[i])}return r}var o=n.createContext({}),d=function(e){var t=n.useContext(o),i=t;return e&&(i="function"==typeof e?e(t):a(a({},t),e)),i},h=function(e){var t=d(e.components);return n.createElement(o.Provider,{value:t},e.children)},l="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var i=e.components,r=e.mdxType,c=e.originalType,o=e.parentName,h=s(e,["components","mdxType","originalType","parentName"]),l=d(i),u=r,k=l["".concat(o,".").concat(u)]||l[u]||y[u]||c;return i?n.createElement(k,a(a({ref:t},h),{},{components:i})):n.createElement(k,a({ref:t},h))}));function k(e,t){var i=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var c=i.length,a=new Array(c);a[0]=u;var s={};for(var o in t)hasOwnProperty.call(t,o)&&(s[o]=t[o]);s.originalType=e,s[l]="string"==typeof e?e:r,a[1]=s;for(var d=2;d{i.r(t),i.d(t,{assets:()=>o,contentTitle:()=>a,default:()=>y,frontMatter:()=>c,metadata:()=>s,toc:()=>d});var n=i(87462),r=(i(67294),i(3905));i(8209);const c={id:"yubikey",title:"Yubikey implementation"},a=void 0,s={unversionedId:"build/core/cryptography/yubikey",id:"build/core/cryptography/yubikey",title:"Yubikey implementation",description:"This section explains the HRT Yubikey Library implementation.",source:"@site/docs/build/core/cryptography/yubikey.md",sourceDirName:"build/core/cryptography",slug:"/build/core/cryptography/yubikey",permalink:"/build/core/cryptography/yubikey",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"yubikey",title:"Yubikey implementation"},sidebar:"docs",previous:{title:"TPM Implementation",permalink:"/build/core/cryptography/tpm"},next:{title:"Archethic's database",permalink:"/build/core/database"}},o={},d=[{value:"initializeYK() :",id:"initializeyk-",level:2},{value:"bool checkYK():",id:"bool-checkyk",level:2},{value:"verifyPinYK():",id:"verifypinyk",level:2},{value:"authenticateYK():",id:"authenticateyk",level:2},{value:"fetchKey(keyIndex):",id:"fetchkeykeyindex",level:2},{value:"generateKey(ykIndex):",id:"generatekeyykindex",level:2},{value:"generateCertificate(ykIndex):",id:"generatecertificateykindex",level:2},{value:"getYKIndex():",id:"getykindex",level:2},{value:"saveIndex(ykIndex, archethicIndex):",id:"saveindexykindex-archethicindex",level:2},{value:"signECDSA(hashtoSign, ykIndex):",id:"signecdsahashtosign-ykindex",level:2},{value:"getECDHPoint(ykIndex, euphermerakley) :",id:"getecdhpointykindex-euphermerakley-",level:2},{value:"getArchEthicIndex():",id:"getarchethicindex",level:2},{value:"incrementIndex():",id:"incrementindex",level:2},{value:"getRootKey():",id:"getrootkey",level:2},{value:"getCurrentKey(publicKeySize):",id:"getcurrentkeypublickeysize",level:2},{value:"getNextKey( publicKeySize):",id:"getnextkey-publickeysize",level:2},{value:"getPastKey(archEthicIndex, publicKeySize):",id:"getpastkeyarchethicindex-publickeysize",level:2},{value:"getRootCertificate( certificateSize):",id:"getrootcertificate-certificatesize",level:2},{value:"getCurrentCertificate(certificateSize):",id:"getcurrentcertificatecertificatesize",level:2},{value:"getNextCertificate(certificateSize):",id:"getnextcertificatecertificatesize",level:2},{value:"getPastCertificate(archEthicIndex, certificateSize):",id:"getpastcertificatearchethicindex-certificatesize",level:2},{value:"signCurrentKey(hashToSign, eccSignSize):",id:"signcurrentkeyhashtosign-eccsignsize",level:2},{value:"signPastKey(archEthicIndex, hashToSign, eccSignSize):",id:"signpastkeyarchethicindex-hashtosign-eccsignsize",level:2},{value:"ecdhCurrentKey(euphemeralKey, eccPointSize):",id:"ecdhcurrentkeyeuphemeralkey-eccpointsize",level:2},{value:"ecdhPastKey( archEthicIndex, euphemeralKey, eccPointSize):",id:"ecdhpastkey-archethicindex-euphemeralkey-eccpointsize",level:2}],h={toc:d},l="wrapper";function y(e){let{components:t,...i}=e;return(0,r.kt)(l,(0,n.Z)({},h,i,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"This section explains the HRT Yubikey Library implementation."),(0,r.kt)("admonition",{type:"success"},(0,r.kt)("p",{parentName:"admonition"},"Reference Files:\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/UNIRIS/yubikey-core/blob/main/uniris-yubikey.c"},"uniris-yubikey.c"),"\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/UNIRIS/yubikey-core/blob/main/uniris-yubikey.h"},"uniris-yubikey.h"))),(0,r.kt)("h2",{id:"initializeyk-"},"initializeYK() :"),(0,r.kt)("p",null,"Initializes the context of the yubikey application in the variable g_state and connects to the hardware device. If successful, then gets the key index of Archethic as well as key index of the yubikey device."),(0,r.kt)("h2",{id:"bool-checkyk"},"bool checkYK():"),(0,r.kt)("p",null,'displays the model of yubikey device used returns true if the device list contains "Yubico Yubikey".'),(0,r.kt)("h2",{id:"verifypinyk"},"verifyPinYK():"),(0,r.kt)("p",null,"verifies the pin code using ykpiv_verify() required to access PIV interface."),(0,r.kt)("h2",{id:"authenticateyk"},"authenticateYK():"),(0,r.kt)("p",null,"Management key is required to do administrative actions. First it does hex decoding of the management key and authenticates if ykpiv_authenticate() returns 0."),(0,r.kt)("h2",{id:"fetchkeykeyindex"},"fetchKey(keyIndex):"),(0,r.kt)("p",null,"A PIV card contains some interoperable seven mandatory and twenty optional data objects. These objects are identified with their respective ids. We use these twenty optional data objects to store the key certificates. fetchKey index takes the yubikey key index ykindex as input and fetches the certificate at the key_certificates","[ykindex]",". This X509 certificate is decoded and public key is extracted from it using X509_get0_pubkey_bitstr and copied to ecc_public_key."),(0,r.kt)("h2",{id:"generatekeyykindex"},"generateKey(ykIndex):"),(0,r.kt)("p",null,"It takes the ykIndex and generates an ECC key using ykpiv_util_generate_key(). It generates key at one of the slots {0x82.. 0x95} pointed by ykindex - key_slots","[ykIndex]"),(0,r.kt)("h2",{id:"generatecertificateykindex"},"generateCertificate(ykIndex):"),(0,r.kt)("p",null,"The keys in the slot are attested through ykpiv_attest() by taking the slot on the index as input. It returns attested key and its length which is then saved into an object pointed by ykIndex using ykpiv_save_object()."),(0,r.kt)("h2",{id:"getykindex"},"getYKIndex():"),(0,r.kt)("p",null,"The YKPIV_OBJ_KEY_HISTORY keeps the count of the keys generated in the yubikey. This fucntion fetches the YKPIV_OBJ_KEY_HISTORY using ykpiv_fetch_object() to get the index_yk and returns it."),(0,r.kt)("h2",{id:"saveindexykindex-archethicindex"},"saveIndex(ykIndex, archethicIndex):"),(0,r.kt)("p",null,"It takes ykindex and archethicIndex as input and generates index by combining ykindex and archethic index and keeps it in YKPIV_OBJ_HISTORY."),(0,r.kt)("h2",{id:"signecdsahashtosign-ykindex"},"signECDSA(hashtoSign, ykIndex):"),(0,r.kt)("p",null,"It uses ykpiv_sign_data() to sign hashToSign using YKPIV_ALGO_ECCP256 through the key pointed by ykindex - key_slots","[ykindex]","."),(0,r.kt)("h2",{id:"getecdhpointykindex-euphermerakley-"},"getECDHPoint(ykIndex, euphermerakley) :"),(0,r.kt)("p",null,"It generated an ecdh point using ykpiv_decipher_data() for the slot pointed by ykindex key_slots","[ykIndex]","."),(0,r.kt)("h2",{id:"getarchethicindex"},"getArchEthicIndex():"),(0,r.kt)("p",null,"Fetches the YKPIV_OBJ_KEY_HISTORY and derives the archethicindex from index_yk saved in key history object."),(0,r.kt)("h2",{id:"incrementindex"},"incrementIndex():"),(0,r.kt)("p",null,"We use the 20 data objects to store 20 keys certificates at once. The 21st key generated on the yubikey is stored in newYKIndex = ykindex % 20. The archethic index is incremented and a new key is generated using newYKindex .A certificate is generated and saved in the slot pointed by newYKindex. Finally it returns true if the current YK index is equal to newYKindex and current archethicindex is equal to newarchethic index ."),(0,r.kt)("h2",{id:"getrootkey"},"getRootKey():"),(0,r.kt)("p",null,"Reads the root key certificate from f9 slot and fetches public key from the certificate. Finally it copies the key into rsa_root_key and returns it."),(0,r.kt)("h2",{id:"getcurrentkeypublickeysize"},"getCurrentKey(publicKeySize):"),(0,r.kt)("p",null,"Generates the previous key index by and fetches the key behind previous key index and returns the ecc key."),(0,r.kt)("h2",{id:"getnextkey-publickeysize"},"getNextKey( publicKeySize):"),(0,r.kt)("p",null,"It fetches the key from the ykIndex and returns the ecc_public_key behind the index."),(0,r.kt)("h2",{id:"getpastkeyarchethicindex-publickeysize"},"getPastKey(archEthicIndex, publicKeySize):"),(0,r.kt)("p",null,"It fetches the keys stored previously in the slot. It first calculates the slot position and then fetches the key at the slot position and return it."),(0,r.kt)("h2",{id:"getrootcertificate-certificatesize"},"getRootCertificate( certificateSize):"),(0,r.kt)("p",null,"Reads the certificate of the rootkey from 0xf9 slot, copies it ykcertificate and returns it."),(0,r.kt)("h2",{id:"getcurrentcertificatecertificatesize"},"getCurrentCertificate(certificateSize):"),(0,r.kt)("p",null,"Calculates the curent key index and fetches the certificate from the object pointed by the current key index."),(0,r.kt)("h2",{id:"getnextcertificatecertificatesize"},"getNextCertificate(certificateSize):"),(0,r.kt)("p",null,"fetches the certificate of the key pointed by ykindex and returns it."),(0,r.kt)("h2",{id:"getpastcertificatearchethicindex-certificatesize"},"getPastCertificate(archEthicIndex, certificateSize):"),(0,r.kt)("p",null,"calculates the slot posistion according to the offset using archethicindex then fetches the object at the slot position which is a certificate amd returns it."),(0,r.kt)("h2",{id:"signcurrentkeyhashtosign-eccsignsize"},"signCurrentKey(hashToSign, eccSignSize):"),(0,r.kt)("p",null,"Calculates the current key index then verifies the Yubikey pin using verifyPinYK() and then signs hashToSign using signECDSA(). The signECDSA() signs the key at the currentkeyindex."),(0,r.kt)("h2",{id:"signpastkeyarchethicindex-hashtosign-eccsignsize"},"signPastKey(archEthicIndex, hashToSign, eccSignSize):"),(0,r.kt)("p",null,"Calculates the slot position by first calculating the offset by using archethicindex. Then it verifies the yubikey pin and signs the key pointed at the slotPosition."),(0,r.kt)("h2",{id:"ecdhcurrentkeyeuphemeralkey-eccpointsize"},"ecdhCurrentKey(euphemeralKey, eccPointSize):"),(0,r.kt)("p",null,"Calculates the current key index, verifies the yubikey pin to get the ECDH point through getECDHPoint() fucntion and finally returns it."),(0,r.kt)("h2",{id:"ecdhpastkey-archethicindex-euphemeralkey-eccpointsize"},"ecdhPastKey( archEthicIndex, euphemeralKey, eccPointSize):"),(0,r.kt)("p",null,"Calculates the offset and slotPosition using archEthicIndex., verifies Yubikey PIN and gets the ECDH point for the key pointed by slotPosiotion and returns it."))}y.isMDXComponent=!0},8209:(e,t,i)=>{i(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4875],{3905:(e,t,i)=>{i.d(t,{Zo:()=>h,kt:()=>k});var n=i(67294);function r(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function c(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,n)}return i}function a(e){for(var t=1;t=0||(r[i]=e[i]);return r}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(r[i]=e[i])}return r}var o=n.createContext({}),d=function(e){var t=n.useContext(o),i=t;return e&&(i="function"==typeof e?e(t):a(a({},t),e)),i},h=function(e){var t=d(e.components);return n.createElement(o.Provider,{value:t},e.children)},l="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var i=e.components,r=e.mdxType,c=e.originalType,o=e.parentName,h=s(e,["components","mdxType","originalType","parentName"]),l=d(i),u=r,k=l["".concat(o,".").concat(u)]||l[u]||y[u]||c;return i?n.createElement(k,a(a({ref:t},h),{},{components:i})):n.createElement(k,a({ref:t},h))}));function k(e,t){var i=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var c=i.length,a=new Array(c);a[0]=u;var s={};for(var o in t)hasOwnProperty.call(t,o)&&(s[o]=t[o]);s.originalType=e,s[l]="string"==typeof e?e:r,a[1]=s;for(var d=2;d{i.r(t),i.d(t,{assets:()=>o,contentTitle:()=>a,default:()=>y,frontMatter:()=>c,metadata:()=>s,toc:()=>d});var n=i(87462),r=(i(67294),i(3905));i(8209);const c={id:"yubikey",title:"Yubikey implementation"},a=void 0,s={unversionedId:"build/core/cryptography/yubikey",id:"build/core/cryptography/yubikey",title:"Yubikey implementation",description:"This section explains the HRT Yubikey Library implementation.",source:"@site/docs/build/core/cryptography/yubikey.md",sourceDirName:"build/core/cryptography",slug:"/build/core/cryptography/yubikey",permalink:"/build/core/cryptography/yubikey",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"yubikey",title:"Yubikey implementation"},sidebar:"docs",previous:{title:"TPM Implementation",permalink:"/build/core/cryptography/tpm"},next:{title:"Archethic's database",permalink:"/build/core/database"}},o={},d=[{value:"initializeYK() :",id:"initializeyk-",level:2},{value:"bool checkYK():",id:"bool-checkyk",level:2},{value:"verifyPinYK():",id:"verifypinyk",level:2},{value:"authenticateYK():",id:"authenticateyk",level:2},{value:"fetchKey(keyIndex):",id:"fetchkeykeyindex",level:2},{value:"generateKey(ykIndex):",id:"generatekeyykindex",level:2},{value:"generateCertificate(ykIndex):",id:"generatecertificateykindex",level:2},{value:"getYKIndex():",id:"getykindex",level:2},{value:"saveIndex(ykIndex, archethicIndex):",id:"saveindexykindex-archethicindex",level:2},{value:"signECDSA(hashtoSign, ykIndex):",id:"signecdsahashtosign-ykindex",level:2},{value:"getECDHPoint(ykIndex, euphermerakley) :",id:"getecdhpointykindex-euphermerakley-",level:2},{value:"getArchEthicIndex():",id:"getarchethicindex",level:2},{value:"incrementIndex():",id:"incrementindex",level:2},{value:"getRootKey():",id:"getrootkey",level:2},{value:"getCurrentKey(publicKeySize):",id:"getcurrentkeypublickeysize",level:2},{value:"getNextKey( publicKeySize):",id:"getnextkey-publickeysize",level:2},{value:"getPastKey(archEthicIndex, publicKeySize):",id:"getpastkeyarchethicindex-publickeysize",level:2},{value:"getRootCertificate( certificateSize):",id:"getrootcertificate-certificatesize",level:2},{value:"getCurrentCertificate(certificateSize):",id:"getcurrentcertificatecertificatesize",level:2},{value:"getNextCertificate(certificateSize):",id:"getnextcertificatecertificatesize",level:2},{value:"getPastCertificate(archEthicIndex, certificateSize):",id:"getpastcertificatearchethicindex-certificatesize",level:2},{value:"signCurrentKey(hashToSign, eccSignSize):",id:"signcurrentkeyhashtosign-eccsignsize",level:2},{value:"signPastKey(archEthicIndex, hashToSign, eccSignSize):",id:"signpastkeyarchethicindex-hashtosign-eccsignsize",level:2},{value:"ecdhCurrentKey(euphemeralKey, eccPointSize):",id:"ecdhcurrentkeyeuphemeralkey-eccpointsize",level:2},{value:"ecdhPastKey( archEthicIndex, euphemeralKey, eccPointSize):",id:"ecdhpastkey-archethicindex-euphemeralkey-eccpointsize",level:2}],h={toc:d},l="wrapper";function y(e){let{components:t,...i}=e;return(0,r.kt)(l,(0,n.Z)({},h,i,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"This section explains the HRT Yubikey Library implementation."),(0,r.kt)("admonition",{type:"success"},(0,r.kt)("p",{parentName:"admonition"},"Reference Files:\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/UNIRIS/yubikey-core/blob/main/uniris-yubikey.c"},"uniris-yubikey.c"),"\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/UNIRIS/yubikey-core/blob/main/uniris-yubikey.h"},"uniris-yubikey.h"))),(0,r.kt)("h2",{id:"initializeyk-"},"initializeYK() :"),(0,r.kt)("p",null,"Initializes the context of the yubikey application in the variable g_state and connects to the hardware device. If successful, then gets the key index of Archethic as well as key index of the yubikey device."),(0,r.kt)("h2",{id:"bool-checkyk"},"bool checkYK():"),(0,r.kt)("p",null,'displays the model of yubikey device used returns true if the device list contains "Yubico Yubikey".'),(0,r.kt)("h2",{id:"verifypinyk"},"verifyPinYK():"),(0,r.kt)("p",null,"verifies the pin code using ykpiv_verify() required to access PIV interface."),(0,r.kt)("h2",{id:"authenticateyk"},"authenticateYK():"),(0,r.kt)("p",null,"Management key is required to do administrative actions. First it does hex decoding of the management key and authenticates if ykpiv_authenticate() returns 0."),(0,r.kt)("h2",{id:"fetchkeykeyindex"},"fetchKey(keyIndex):"),(0,r.kt)("p",null,"A PIV card contains some interoperable seven mandatory and twenty optional data objects. These objects are identified with their respective ids. We use these twenty optional data objects to store the key certificates. fetchKey index takes the yubikey key index ykindex as input and fetches the certificate at the key_certificates","[ykindex]",". This X509 certificate is decoded and public key is extracted from it using X509_get0_pubkey_bitstr and copied to ecc_public_key."),(0,r.kt)("h2",{id:"generatekeyykindex"},"generateKey(ykIndex):"),(0,r.kt)("p",null,"It takes the ykIndex and generates an ECC key using ykpiv_util_generate_key(). It generates key at one of the slots {0x82.. 0x95} pointed by ykindex - key_slots","[ykIndex]"),(0,r.kt)("h2",{id:"generatecertificateykindex"},"generateCertificate(ykIndex):"),(0,r.kt)("p",null,"The keys in the slot are attested through ykpiv_attest() by taking the slot on the index as input. It returns attested key and its length which is then saved into an object pointed by ykIndex using ykpiv_save_object()."),(0,r.kt)("h2",{id:"getykindex"},"getYKIndex():"),(0,r.kt)("p",null,"The YKPIV_OBJ_KEY_HISTORY keeps the count of the keys generated in the yubikey. This fucntion fetches the YKPIV_OBJ_KEY_HISTORY using ykpiv_fetch_object() to get the index_yk and returns it."),(0,r.kt)("h2",{id:"saveindexykindex-archethicindex"},"saveIndex(ykIndex, archethicIndex):"),(0,r.kt)("p",null,"It takes ykindex and archethicIndex as input and generates index by combining ykindex and archethic index and keeps it in YKPIV_OBJ_HISTORY."),(0,r.kt)("h2",{id:"signecdsahashtosign-ykindex"},"signECDSA(hashtoSign, ykIndex):"),(0,r.kt)("p",null,"It uses ykpiv_sign_data() to sign hashToSign using YKPIV_ALGO_ECCP256 through the key pointed by ykindex - key_slots","[ykindex]","."),(0,r.kt)("h2",{id:"getecdhpointykindex-euphermerakley-"},"getECDHPoint(ykIndex, euphermerakley) :"),(0,r.kt)("p",null,"It generated an ecdh point using ykpiv_decipher_data() for the slot pointed by ykindex key_slots","[ykIndex]","."),(0,r.kt)("h2",{id:"getarchethicindex"},"getArchEthicIndex():"),(0,r.kt)("p",null,"Fetches the YKPIV_OBJ_KEY_HISTORY and derives the archethicindex from index_yk saved in key history object."),(0,r.kt)("h2",{id:"incrementindex"},"incrementIndex():"),(0,r.kt)("p",null,"We use the 20 data objects to store 20 keys certificates at once. The 21st key generated on the yubikey is stored in newYKIndex = ykindex % 20. The archethic index is incremented and a new key is generated using newYKindex .A certificate is generated and saved in the slot pointed by newYKindex. Finally it returns true if the current YK index is equal to newYKindex and current archethicindex is equal to newarchethic index ."),(0,r.kt)("h2",{id:"getrootkey"},"getRootKey():"),(0,r.kt)("p",null,"Reads the root key certificate from f9 slot and fetches public key from the certificate. Finally it copies the key into rsa_root_key and returns it."),(0,r.kt)("h2",{id:"getcurrentkeypublickeysize"},"getCurrentKey(publicKeySize):"),(0,r.kt)("p",null,"Generates the previous key index by and fetches the key behind previous key index and returns the ecc key."),(0,r.kt)("h2",{id:"getnextkey-publickeysize"},"getNextKey( publicKeySize):"),(0,r.kt)("p",null,"It fetches the key from the ykIndex and returns the ecc_public_key behind the index."),(0,r.kt)("h2",{id:"getpastkeyarchethicindex-publickeysize"},"getPastKey(archEthicIndex, publicKeySize):"),(0,r.kt)("p",null,"It fetches the keys stored previously in the slot. It first calculates the slot position and then fetches the key at the slot position and return it."),(0,r.kt)("h2",{id:"getrootcertificate-certificatesize"},"getRootCertificate( certificateSize):"),(0,r.kt)("p",null,"Reads the certificate of the rootkey from 0xf9 slot, copies it ykcertificate and returns it."),(0,r.kt)("h2",{id:"getcurrentcertificatecertificatesize"},"getCurrentCertificate(certificateSize):"),(0,r.kt)("p",null,"Calculates the curent key index and fetches the certificate from the object pointed by the current key index."),(0,r.kt)("h2",{id:"getnextcertificatecertificatesize"},"getNextCertificate(certificateSize):"),(0,r.kt)("p",null,"fetches the certificate of the key pointed by ykindex and returns it."),(0,r.kt)("h2",{id:"getpastcertificatearchethicindex-certificatesize"},"getPastCertificate(archEthicIndex, certificateSize):"),(0,r.kt)("p",null,"calculates the slot posistion according to the offset using archethicindex then fetches the object at the slot position which is a certificate amd returns it."),(0,r.kt)("h2",{id:"signcurrentkeyhashtosign-eccsignsize"},"signCurrentKey(hashToSign, eccSignSize):"),(0,r.kt)("p",null,"Calculates the current key index then verifies the Yubikey pin using verifyPinYK() and then signs hashToSign using signECDSA(). The signECDSA() signs the key at the currentkeyindex."),(0,r.kt)("h2",{id:"signpastkeyarchethicindex-hashtosign-eccsignsize"},"signPastKey(archEthicIndex, hashToSign, eccSignSize):"),(0,r.kt)("p",null,"Calculates the slot position by first calculating the offset by using archethicindex. Then it verifies the yubikey pin and signs the key pointed at the slotPosition."),(0,r.kt)("h2",{id:"ecdhcurrentkeyeuphemeralkey-eccpointsize"},"ecdhCurrentKey(euphemeralKey, eccPointSize):"),(0,r.kt)("p",null,"Calculates the current key index, verifies the yubikey pin to get the ECDH point through getECDHPoint() fucntion and finally returns it."),(0,r.kt)("h2",{id:"ecdhpastkey-archethicindex-euphemeralkey-eccpointsize"},"ecdhPastKey( archEthicIndex, euphemeralKey, eccPointSize):"),(0,r.kt)("p",null,"Calculates the offset and slotPosition using archEthicIndex., verifies Yubikey PIN and gets the ECDH point for the key pointed by slotPosiotion and returns it."))}y.isMDXComponent=!0},8209:(e,t,i)=>{i(67294)}}]); \ No newline at end of file diff --git a/assets/js/fbab86a0.124e4970.js b/assets/js/fbab86a0.c1613f2d.js similarity index 98% rename from assets/js/fbab86a0.124e4970.js rename to assets/js/fbab86a0.c1613f2d.js index 28cebaae5..12407759e 100644 --- a/assets/js/fbab86a0.124e4970.js +++ b/assets/js/fbab86a0.c1613f2d.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7007],{3905:(e,t,r)=>{r.d(t,{Zo:()=>d,kt:()=>f});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),c=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},d=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),u=c(r),m=o,f=u["".concat(s,".").concat(m)]||u[m]||p[m]||a;return r?n.createElement(f,l(l({ref:t},d),{},{components:r})):n.createElement(f,l({ref:t},d))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=m;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[u]="string"==typeof e?e:o,l[1]=i;for(var c=2;c{r.r(t),r.d(t,{Badge:()=>p,Bullet:()=>d,Details:()=>f,SpecifiedBy:()=>u,assets:()=>c,contentTitle:()=>i,default:()=>h,frontMatter:()=>l,metadata:()=>s,toc:()=>m});var n=r(87462),o=r(67294),a=r(3905);r(8209);const l={id:"sort-order",title:"SortOrder",hide_table_of_contents:!1},i=void 0,s={unversionedId:"build/api/schema/enums/sort-order",id:"build/api/schema/enums/sort-order",title:"SortOrder",description:"SortOrder represents the order of the result",source:"@site/docs/build/api/schema/enums/sort-order.mdx",sourceDirName:"build/api/schema/enums",slug:"/build/api/schema/enums/sort-order",permalink:"/build/api/schema/enums/sort-order",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"sort-order",title:"SortOrder",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"ErrorContext",permalink:"/build/api/schema/enums/error-context"},next:{title:"AuthorizedKey",permalink:"/build/api/schema/objects/authorized-key"}},c={},d=()=>(0,a.kt)(o.Fragment,null,(0,a.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),u=e=>(0,a.kt)(o.Fragment,null,"Specification",(0,a.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),p=e=>(0,a.kt)(o.Fragment,null,(0,a.kt)("span",{className:e.class},e.text)),m=[{value:"Values",id:"values",level:3},{value:"SortOrder.ASC",id:"code-style-fontweight-normal-sortorderbascbcode",level:4},{value:"SortOrder.DESC",id:"code-style-fontweight-normal-sortorderbdescbcode",level:4},{value:"Member of",id:"member-of",level:3}],f=e=>{let{dataOpen:t,dataClose:r,children:l,startOpen:i=!1}=e;const[s,c]=(0,o.useState)(i);return(0,a.kt)("details",(0,n.Z)({},s?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,a.kt)("summary",{onClick:e=>{e.preventDefault(),c((e=>!e))},style:{listStyle:"none"}},s?t:r),s&&l)},b={Bullet:d,SpecifiedBy:u,Badge:p,toc:m,Details:f},y="wrapper";function h(e){let{components:t,...r}=e;return(0,a.kt)(y,(0,n.Z)({},b,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"SortOrder represents the order of the result\npossible values are ASC or DESC"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-graphql"},"enum SortOrder {\n ASC\n DESC\n}\n")),(0,a.kt)("h3",{id:"values"},"Values"),(0,a.kt)("h4",{id:"code-style-fontweight-normal-sortorderbascbcode"},(0,a.kt)("a",{parentName:"h4",href:"#"},(0,a.kt)("code",{style:{fontWeight:"normal"}},"SortOrder.",(0,a.kt)("b",null,"ASC")))),(0,a.kt)("blockquote",null,(0,a.kt)("p",{parentName:"blockquote"},"Ascending order")),(0,a.kt)("h4",{id:"code-style-fontweight-normal-sortorderbdescbcode"},(0,a.kt)("a",{parentName:"h4",href:"#"},(0,a.kt)("code",{style:{fontWeight:"normal"}},"SortOrder.",(0,a.kt)("b",null,"DESC")))),(0,a.kt)("blockquote",null,(0,a.kt)("p",{parentName:"blockquote"},"Descending order")),(0,a.kt)("h3",{id:"member-of"},"Member of"),(0,a.kt)("p",null,(0,a.kt)("a",{parentName:"p",href:"/build/api/schema/queries/transaction-chain"},(0,a.kt)("inlineCode",{parentName:"a"},"transactionChain"))," ",(0,a.kt)(p,{class:"badge badge--secondary",text:"query",mdxType:"Badge"})))}h.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7007],{3905:(e,t,r)=>{r.d(t,{Zo:()=>d,kt:()=>f});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),c=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},d=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),u=c(r),m=o,f=u["".concat(s,".").concat(m)]||u[m]||p[m]||a;return r?n.createElement(f,l(l({ref:t},d),{},{components:r})):n.createElement(f,l({ref:t},d))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=m;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[u]="string"==typeof e?e:o,l[1]=i;for(var c=2;c{r.r(t),r.d(t,{Badge:()=>p,Bullet:()=>d,Details:()=>f,SpecifiedBy:()=>u,assets:()=>c,contentTitle:()=>i,default:()=>h,frontMatter:()=>l,metadata:()=>s,toc:()=>m});var n=r(87462),o=r(67294),a=r(3905);r(8209);const l={id:"sort-order",title:"SortOrder",hide_table_of_contents:!1},i=void 0,s={unversionedId:"build/api/schema/enums/sort-order",id:"build/api/schema/enums/sort-order",title:"SortOrder",description:"SortOrder represents the order of the result",source:"@site/docs/build/api/schema/enums/sort-order.mdx",sourceDirName:"build/api/schema/enums",slug:"/build/api/schema/enums/sort-order",permalink:"/build/api/schema/enums/sort-order",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"sort-order",title:"SortOrder",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"ErrorContext",permalink:"/build/api/schema/enums/error-context"},next:{title:"AuthorizedKey",permalink:"/build/api/schema/objects/authorized-key"}},c={},d=()=>(0,a.kt)(o.Fragment,null,(0,a.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),u=e=>(0,a.kt)(o.Fragment,null,"Specification",(0,a.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),p=e=>(0,a.kt)(o.Fragment,null,(0,a.kt)("span",{className:e.class},e.text)),m=[{value:"Values",id:"values",level:3},{value:"SortOrder.ASC",id:"code-style-fontweight-normal-sortorderbascbcode",level:4},{value:"SortOrder.DESC",id:"code-style-fontweight-normal-sortorderbdescbcode",level:4},{value:"Member of",id:"member-of",level:3}],f=e=>{let{dataOpen:t,dataClose:r,children:l,startOpen:i=!1}=e;const[s,c]=(0,o.useState)(i);return(0,a.kt)("details",(0,n.Z)({},s?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,a.kt)("summary",{onClick:e=>{e.preventDefault(),c((e=>!e))},style:{listStyle:"none"}},s?t:r),s&&l)},b={Bullet:d,SpecifiedBy:u,Badge:p,toc:m,Details:f},y="wrapper";function h(e){let{components:t,...r}=e;return(0,a.kt)(y,(0,n.Z)({},b,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"SortOrder represents the order of the result\npossible values are ASC or DESC"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-graphql"},"enum SortOrder {\n ASC\n DESC\n}\n")),(0,a.kt)("h3",{id:"values"},"Values"),(0,a.kt)("h4",{id:"code-style-fontweight-normal-sortorderbascbcode"},(0,a.kt)("a",{parentName:"h4",href:"#"},(0,a.kt)("code",{style:{fontWeight:"normal"}},"SortOrder.",(0,a.kt)("b",null,"ASC")))),(0,a.kt)("blockquote",null,(0,a.kt)("p",{parentName:"blockquote"},"Ascending order")),(0,a.kt)("h4",{id:"code-style-fontweight-normal-sortorderbdescbcode"},(0,a.kt)("a",{parentName:"h4",href:"#"},(0,a.kt)("code",{style:{fontWeight:"normal"}},"SortOrder.",(0,a.kt)("b",null,"DESC")))),(0,a.kt)("blockquote",null,(0,a.kt)("p",{parentName:"blockquote"},"Descending order")),(0,a.kt)("h3",{id:"member-of"},"Member of"),(0,a.kt)("p",null,(0,a.kt)("a",{parentName:"p",href:"/build/api/schema/queries/transaction-chain"},(0,a.kt)("inlineCode",{parentName:"a"},"transactionChain"))," ",(0,a.kt)(p,{class:"badge badge--secondary",text:"query",mdxType:"Badge"})))}h.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file diff --git a/assets/js/fe068327.1186a009.js b/assets/js/fe068327.ca384ada.js similarity index 97% rename from assets/js/fe068327.1186a009.js rename to assets/js/fe068327.ca384ada.js index a3d67d22b..be1b84e4a 100644 --- a/assets/js/fe068327.1186a009.js +++ b/assets/js/fe068327.ca384ada.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8568],{3905:(e,t,r)=>{r.d(t,{Zo:()=>i,kt:()=>m});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),d=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},i=function(e){var t=d(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,i=c(e,["components","mdxType","originalType","parentName"]),p=d(r),f=a,m=p["".concat(s,".").concat(f)]||p[f]||u[f]||o;return r?n.createElement(m,l(l({ref:t},i),{},{components:r})):n.createElement(m,l({ref:t},i))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=f;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[p]="string"==typeof e?e:a,l[1]=c;for(var d=2;d{r.r(t),r.d(t,{Badge:()=>u,Bullet:()=>i,Details:()=>m,SpecifiedBy:()=>p,assets:()=>d,contentTitle:()=>c,default:()=>y,frontMatter:()=>l,metadata:()=>s,toc:()=>f});var n=r(87462),a=r(67294),o=r(3905);r(8209);const l={id:"uco-ledger",title:"UcoLedger",hide_table_of_contents:!1},c=void 0,s={unversionedId:"build/api/schema/objects/uco-ledger",id:"build/api/schema/objects/uco-ledger",title:"UcoLedger",description:"[UCOLedger] represents the transfers to perform on the UCO ledger",source:"@site/docs/build/api/schema/objects/uco-ledger.mdx",sourceDirName:"build/api/schema/objects",slug:"/build/api/schema/objects/uco-ledger",permalink:"/build/api/schema/objects/uco-ledger",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"uco-ledger",title:"UcoLedger",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"UcoData",permalink:"/build/api/schema/objects/uco-data"},next:{title:"UcoTransfer",permalink:"/build/api/schema/objects/uco-transfer"}},d={},i=()=>(0,o.kt)(a.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=e=>(0,o.kt)(a.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,o.kt)(a.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),f=[{value:"Fields",id:"fields",level:3},{value:'UcoLedger.transfers[UcoTransfer] ',id:"code-style-fontweight-normal-ucoledgerbtransfersbcodeucotransfer--",level:4},{value:"Member of",id:"member-of",level:3}],m=e=>{let{dataOpen:t,dataClose:r,children:l,startOpen:c=!1}=e;const[s,d]=(0,a.useState)(c);return(0,o.kt)("details",(0,n.Z)({},s?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),d((e=>!e))},style:{listStyle:"none"}},s?t:r),s&&l)},b={Bullet:i,SpecifiedBy:p,Badge:u,toc:f,Details:m},g="wrapper";function y(e){let{components:t,...r}=e;return(0,o.kt)(g,(0,n.Z)({},b,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"[UCOLedger]"," represents the transfers to perform on the UCO ledger"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"type UcoLedger {\n transfers: [UcoTransfer]\n}\n")),(0,o.kt)("h3",{id:"fields"},"Fields"),(0,o.kt)("h4",{id:"code-style-fontweight-normal-ucoledgerbtransfersbcodeucotransfer--"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"UcoLedger.",(0,o.kt)("b",null,"transfers"))),(0,o.kt)(i,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/uco-transfer"},(0,o.kt)("inlineCode",{parentName:"a"},"[UcoTransfer]"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"list",mdxType:"Badge"})," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h3",{id:"member-of"},"Member of"),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/ledger"},(0,o.kt)("inlineCode",{parentName:"a"},"Ledger"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}y.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8568],{3905:(e,t,r)=>{r.d(t,{Zo:()=>i,kt:()=>m});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),d=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},i=function(e){var t=d(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,i=c(e,["components","mdxType","originalType","parentName"]),p=d(r),f=a,m=p["".concat(s,".").concat(f)]||p[f]||u[f]||o;return r?n.createElement(m,l(l({ref:t},i),{},{components:r})):n.createElement(m,l({ref:t},i))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=f;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[p]="string"==typeof e?e:a,l[1]=c;for(var d=2;d{r.r(t),r.d(t,{Badge:()=>u,Bullet:()=>i,Details:()=>m,SpecifiedBy:()=>p,assets:()=>d,contentTitle:()=>c,default:()=>y,frontMatter:()=>l,metadata:()=>s,toc:()=>f});var n=r(87462),a=r(67294),o=r(3905);r(8209);const l={id:"uco-ledger",title:"UcoLedger",hide_table_of_contents:!1},c=void 0,s={unversionedId:"build/api/schema/objects/uco-ledger",id:"build/api/schema/objects/uco-ledger",title:"UcoLedger",description:"[UCOLedger] represents the transfers to perform on the UCO ledger",source:"@site/docs/build/api/schema/objects/uco-ledger.mdx",sourceDirName:"build/api/schema/objects",slug:"/build/api/schema/objects/uco-ledger",permalink:"/build/api/schema/objects/uco-ledger",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"uco-ledger",title:"UcoLedger",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"UcoData",permalink:"/build/api/schema/objects/uco-data"},next:{title:"UcoTransfer",permalink:"/build/api/schema/objects/uco-transfer"}},d={},i=()=>(0,o.kt)(a.Fragment,null,(0,o.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=e=>(0,o.kt)(a.Fragment,null,"Specification",(0,o.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,o.kt)(a.Fragment,null,(0,o.kt)("span",{className:e.class},e.text)),f=[{value:"Fields",id:"fields",level:3},{value:'UcoLedger.transfers[UcoTransfer] ',id:"code-style-fontweight-normal-ucoledgerbtransfersbcodeucotransfer--",level:4},{value:"Member of",id:"member-of",level:3}],m=e=>{let{dataOpen:t,dataClose:r,children:l,startOpen:c=!1}=e;const[s,d]=(0,a.useState)(c);return(0,o.kt)("details",(0,n.Z)({},s?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,o.kt)("summary",{onClick:e=>{e.preventDefault(),d((e=>!e))},style:{listStyle:"none"}},s?t:r),s&&l)},b={Bullet:i,SpecifiedBy:p,Badge:u,toc:f,Details:m},g="wrapper";function y(e){let{components:t,...r}=e;return(0,o.kt)(g,(0,n.Z)({},b,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"[UCOLedger]"," represents the transfers to perform on the UCO ledger"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-graphql"},"type UcoLedger {\n transfers: [UcoTransfer]\n}\n")),(0,o.kt)("h3",{id:"fields"},"Fields"),(0,o.kt)("h4",{id:"code-style-fontweight-normal-ucoledgerbtransfersbcodeucotransfer--"},(0,o.kt)("a",{parentName:"h4",href:"#"},(0,o.kt)("code",{style:{fontWeight:"normal"}},"UcoLedger.",(0,o.kt)("b",null,"transfers"))),(0,o.kt)(i,{mdxType:"Bullet"}),(0,o.kt)("a",{parentName:"h4",href:"/build/api/schema/objects/uco-transfer"},(0,o.kt)("inlineCode",{parentName:"a"},"[UcoTransfer]"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"list",mdxType:"Badge"})," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})),(0,o.kt)("blockquote",null),(0,o.kt)("h3",{id:"member-of"},"Member of"),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"/build/api/schema/objects/ledger"},(0,o.kt)("inlineCode",{parentName:"a"},"Ledger"))," ",(0,o.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}y.isMDXComponent=!0},8209:(e,t,r)=>{r(67294)}}]); \ No newline at end of file diff --git a/assets/js/fe294169.6652d076.js b/assets/js/fe294169.f2d3ffaa.js similarity index 98% rename from assets/js/fe294169.6652d076.js rename to assets/js/fe294169.f2d3ffaa.js index 6b86436f0..8a1862d3b 100644 --- a/assets/js/fe294169.6652d076.js +++ b/assets/js/fe294169.f2d3ffaa.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3651],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>b});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var o=n.createContext({}),s=function(e){var t=n.useContext(o),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},d=function(e){var t=s(e.components);return n.createElement(o.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,o=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),p=s(a),m=r,b=p["".concat(o,".").concat(m)]||p[m]||u[m]||i;return a?n.createElement(b,l(l({ref:t},d),{},{components:a})):n.createElement(b,l({ref:t},d))}));function b(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,l=new Array(i);l[0]=m;var c={};for(var o in t)hasOwnProperty.call(t,o)&&(c[o]=t[o]);c.originalType=e,c[p]="string"==typeof e?e:r,l[1]=c;for(var s=2;s{a.r(t),a.d(t,{Badge:()=>u,Bullet:()=>d,Details:()=>b,SpecifiedBy:()=>p,assets:()=>s,contentTitle:()=>c,default:()=>y,frontMatter:()=>l,metadata:()=>o,toc:()=>m});var n=a(87462),r=a(67294),i=a(3905);a(8209);const l={id:"recipient",title:"Recipient",hide_table_of_contents:!1},c=void 0,o={unversionedId:"build/api/schema/objects/recipient",id:"build/api/schema/objects/recipient",title:"Recipient",description:"[Recipient] represents a Smart Contract call",source:"@site/docs/build/api/schema/objects/recipient.mdx",sourceDirName:"build/api/schema/objects",slug:"/build/api/schema/objects/recipient",permalink:"/build/api/schema/objects/recipient",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"recipient",title:"Recipient",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"Ownership",permalink:"/build/api/schema/objects/ownership"},next:{title:"SharedSecrets",permalink:"/build/api/schema/objects/shared-secrets"}},s={},d=()=>(0,i.kt)(r.Fragment,null,(0,i.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=e=>(0,i.kt)(r.Fragment,null,"Specification",(0,i.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,i.kt)(r.Fragment,null,(0,i.kt)("span",{className:e.class},e.text)),m=[{value:"Fields",id:"fields",level:3},{value:'Recipient.actionString ',id:"code-style-fontweight-normal-recipientbactionbcodestring-",level:4},{value:'Recipient.addressHex ',id:"code-style-fontweight-normal-recipientbaddressbcodehex-",level:4},{value:'Recipient.argsRecipientArgs ',id:"code-style-fontweight-normal-recipientbargsbcoderecipientargs-",level:4},{value:"Member of",id:"member-of",level:3}],b=e=>{let{dataOpen:t,dataClose:a,children:l,startOpen:c=!1}=e;const[o,s]=(0,r.useState)(c);return(0,i.kt)("details",(0,n.Z)({},o?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,i.kt)("summary",{onClick:e=>{e.preventDefault(),s((e=>!e))},style:{listStyle:"none"}},o?t:a),o&&l)},f={Bullet:d,SpecifiedBy:p,Badge:u,toc:m,Details:b},g="wrapper";function y(e){let{components:t,...a}=e;return(0,i.kt)(g,(0,n.Z)({},f,a,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"[Recipient]"," represents a Smart Contract call"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-graphql"},"type Recipient {\n action: String\n address: Hex\n args: RecipientArgs\n}\n")),(0,i.kt)("h3",{id:"fields"},"Fields"),(0,i.kt)("h4",{id:"code-style-fontweight-normal-recipientbactionbcodestring-"},(0,i.kt)("a",{parentName:"h4",href:"#"},(0,i.kt)("code",{style:{fontWeight:"normal"}},"Recipient.",(0,i.kt)("b",null,"action"))),(0,i.kt)(d,{mdxType:"Bullet"}),(0,i.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/string"},(0,i.kt)("inlineCode",{parentName:"a"},"String"))," ",(0,i.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,i.kt)("blockquote",null),(0,i.kt)("h4",{id:"code-style-fontweight-normal-recipientbaddressbcodehex-"},(0,i.kt)("a",{parentName:"h4",href:"#"},(0,i.kt)("code",{style:{fontWeight:"normal"}},"Recipient.",(0,i.kt)("b",null,"address"))),(0,i.kt)(d,{mdxType:"Bullet"}),(0,i.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/hex"},(0,i.kt)("inlineCode",{parentName:"a"},"Hex"))," ",(0,i.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,i.kt)("blockquote",null),(0,i.kt)("h4",{id:"code-style-fontweight-normal-recipientbargsbcoderecipientargs-"},(0,i.kt)("a",{parentName:"h4",href:"#"},(0,i.kt)("code",{style:{fontWeight:"normal"}},"Recipient.",(0,i.kt)("b",null,"args"))),(0,i.kt)(d,{mdxType:"Bullet"}),(0,i.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/recipient-args"},(0,i.kt)("inlineCode",{parentName:"a"},"RecipientArgs"))," ",(0,i.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,i.kt)("blockquote",null),(0,i.kt)("h3",{id:"member-of"},"Member of"),(0,i.kt)("p",null,(0,i.kt)("a",{parentName:"p",href:"/build/api/schema/objects/data"},(0,i.kt)("inlineCode",{parentName:"a"},"Data"))," ",(0,i.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}y.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3651],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>b});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var o=n.createContext({}),s=function(e){var t=n.useContext(o),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},d=function(e){var t=s(e.components);return n.createElement(o.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,o=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),p=s(a),m=r,b=p["".concat(o,".").concat(m)]||p[m]||u[m]||i;return a?n.createElement(b,l(l({ref:t},d),{},{components:a})):n.createElement(b,l({ref:t},d))}));function b(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,l=new Array(i);l[0]=m;var c={};for(var o in t)hasOwnProperty.call(t,o)&&(c[o]=t[o]);c.originalType=e,c[p]="string"==typeof e?e:r,l[1]=c;for(var s=2;s{a.r(t),a.d(t,{Badge:()=>u,Bullet:()=>d,Details:()=>b,SpecifiedBy:()=>p,assets:()=>s,contentTitle:()=>c,default:()=>y,frontMatter:()=>l,metadata:()=>o,toc:()=>m});var n=a(87462),r=a(67294),i=a(3905);a(8209);const l={id:"recipient",title:"Recipient",hide_table_of_contents:!1},c=void 0,o={unversionedId:"build/api/schema/objects/recipient",id:"build/api/schema/objects/recipient",title:"Recipient",description:"[Recipient] represents a Smart Contract call",source:"@site/docs/build/api/schema/objects/recipient.mdx",sourceDirName:"build/api/schema/objects",slug:"/build/api/schema/objects/recipient",permalink:"/build/api/schema/objects/recipient",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"recipient",title:"Recipient",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"Ownership",permalink:"/build/api/schema/objects/ownership"},next:{title:"SharedSecrets",permalink:"/build/api/schema/objects/shared-secrets"}},s={},d=()=>(0,i.kt)(r.Fragment,null,(0,i.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=e=>(0,i.kt)(r.Fragment,null,"Specification",(0,i.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),u=e=>(0,i.kt)(r.Fragment,null,(0,i.kt)("span",{className:e.class},e.text)),m=[{value:"Fields",id:"fields",level:3},{value:'Recipient.actionString ',id:"code-style-fontweight-normal-recipientbactionbcodestring-",level:4},{value:'Recipient.addressHex ',id:"code-style-fontweight-normal-recipientbaddressbcodehex-",level:4},{value:'Recipient.argsRecipientArgs ',id:"code-style-fontweight-normal-recipientbargsbcoderecipientargs-",level:4},{value:"Member of",id:"member-of",level:3}],b=e=>{let{dataOpen:t,dataClose:a,children:l,startOpen:c=!1}=e;const[o,s]=(0,r.useState)(c);return(0,i.kt)("details",(0,n.Z)({},o?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,i.kt)("summary",{onClick:e=>{e.preventDefault(),s((e=>!e))},style:{listStyle:"none"}},o?t:a),o&&l)},f={Bullet:d,SpecifiedBy:p,Badge:u,toc:m,Details:b},g="wrapper";function y(e){let{components:t,...a}=e;return(0,i.kt)(g,(0,n.Z)({},f,a,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"[Recipient]"," represents a Smart Contract call"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-graphql"},"type Recipient {\n action: String\n address: Hex\n args: RecipientArgs\n}\n")),(0,i.kt)("h3",{id:"fields"},"Fields"),(0,i.kt)("h4",{id:"code-style-fontweight-normal-recipientbactionbcodestring-"},(0,i.kt)("a",{parentName:"h4",href:"#"},(0,i.kt)("code",{style:{fontWeight:"normal"}},"Recipient.",(0,i.kt)("b",null,"action"))),(0,i.kt)(d,{mdxType:"Bullet"}),(0,i.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/string"},(0,i.kt)("inlineCode",{parentName:"a"},"String"))," ",(0,i.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,i.kt)("blockquote",null),(0,i.kt)("h4",{id:"code-style-fontweight-normal-recipientbaddressbcodehex-"},(0,i.kt)("a",{parentName:"h4",href:"#"},(0,i.kt)("code",{style:{fontWeight:"normal"}},"Recipient.",(0,i.kt)("b",null,"address"))),(0,i.kt)(d,{mdxType:"Bullet"}),(0,i.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/hex"},(0,i.kt)("inlineCode",{parentName:"a"},"Hex"))," ",(0,i.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,i.kt)("blockquote",null),(0,i.kt)("h4",{id:"code-style-fontweight-normal-recipientbargsbcoderecipientargs-"},(0,i.kt)("a",{parentName:"h4",href:"#"},(0,i.kt)("code",{style:{fontWeight:"normal"}},"Recipient.",(0,i.kt)("b",null,"args"))),(0,i.kt)(d,{mdxType:"Bullet"}),(0,i.kt)("a",{parentName:"h4",href:"/build/api/schema/scalars/recipient-args"},(0,i.kt)("inlineCode",{parentName:"a"},"RecipientArgs"))," ",(0,i.kt)(u,{class:"badge badge--secondary",text:"scalar",mdxType:"Badge"})),(0,i.kt)("blockquote",null),(0,i.kt)("h3",{id:"member-of"},"Member of"),(0,i.kt)("p",null,(0,i.kt)("a",{parentName:"p",href:"/build/api/schema/objects/data"},(0,i.kt)("inlineCode",{parentName:"a"},"Data"))," ",(0,i.kt)(u,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}y.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file diff --git a/assets/js/fe684f20.eb4eac9a.js b/assets/js/fe684f20.49895922.js similarity index 99% rename from assets/js/fe684f20.eb4eac9a.js rename to assets/js/fe684f20.49895922.js index ac7d558b8..3be790b26 100644 --- a/assets/js/fe684f20.eb4eac9a.js +++ b/assets/js/fe684f20.49895922.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5412],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>b});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function s(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var l=r.createContext({}),c=function(e){var t=r.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},d=function(e){var t=c(e.components);return r.createElement(l.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,s=e.originalType,l=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),p=c(a),u=n,b=p["".concat(l,".").concat(u)]||p[u]||m[u]||s;return a?r.createElement(b,o(o({ref:t},d),{},{components:a})):r.createElement(b,o({ref:t},d))}));function b(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var s=a.length,o=new Array(s);o[0]=u;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[p]="string"==typeof e?e:n,o[1]=i;for(var c=2;c{a.r(t),a.d(t,{Badge:()=>m,Bullet:()=>d,Details:()=>b,SpecifiedBy:()=>p,assets:()=>c,contentTitle:()=>i,default:()=>k,frontMatter:()=>o,metadata:()=>l,toc:()=>u});var r=a(87462),n=a(67294),s=a(3905);a(8209);const o={id:"string",title:"String",hide_table_of_contents:!1},i=void 0,l={unversionedId:"build/api/schema/scalars/string",id:"build/api/schema/scalars/string",title:"String",description:"The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.",source:"@site/docs/build/api/schema/scalars/string.mdx",sourceDirName:"build/api/schema/scalars",slug:"/build/api/schema/scalars/string",permalink:"/build/api/schema/scalars/string",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",frontMatter:{id:"string",title:"String",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"State",permalink:"/build/api/schema/scalars/state"},next:{title:"Timestamp",permalink:"/build/api/schema/scalars/timestamp"}},c={},d=()=>(0,s.kt)(n.Fragment,null,(0,s.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=e=>(0,s.kt)(n.Fragment,null,"Specification",(0,s.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),m=e=>(0,s.kt)(n.Fragment,null,(0,s.kt)("span",{className:e.class},e.text)),u=[{value:"Member of",id:"member-of",level:3}],b=e=>{let{dataOpen:t,dataClose:a,children:o,startOpen:i=!1}=e;const[l,c]=(0,n.useState)(i);return(0,s.kt)("details",(0,r.Z)({},l?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,s.kt)("summary",{onClick:e=>{e.preventDefault(),c((e=>!e))},style:{listStyle:"none"}},l?t:a),l&&o)},y={Bullet:d,SpecifiedBy:p,Badge:m,toc:u,Details:b},g="wrapper";function k(e){let{components:t,...a}=e;return(0,s.kt)(g,(0,r.Z)({},y,a,{components:t,mdxType:"MDXLayout"}),(0,s.kt)("p",null,"The ",(0,s.kt)("inlineCode",{parentName:"p"},"String")," scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text."),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-graphql"},"scalar String\n")),(0,s.kt)("h3",{id:"member-of"},"Member of"),(0,s.kt)("p",null,(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/consumed-inputs"},(0,s.kt)("inlineCode",{parentName:"a"},"ConsumedInputs"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(d,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/data"},(0,s.kt)("inlineCode",{parentName:"a"},"Data"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(d,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/endpoint"},(0,s.kt)("inlineCode",{parentName:"a"},"Endpoint"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(d,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/error-details"},(0,s.kt)("inlineCode",{parentName:"a"},"ErrorDetails"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(d,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/node"},(0,s.kt)("inlineCode",{parentName:"a"},"Node"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(d,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/recipient"},(0,s.kt)("inlineCode",{parentName:"a"},"Recipient"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(d,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/token"},(0,s.kt)("inlineCode",{parentName:"a"},"Token"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(d,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/transaction"},(0,s.kt)("inlineCode",{parentName:"a"},"Transaction"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(d,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/transaction-error"},(0,s.kt)("inlineCode",{parentName:"a"},"TransactionError"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(d,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/transaction-input"},(0,s.kt)("inlineCode",{parentName:"a"},"TransactionInput"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(d,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/transaction-movement"},(0,s.kt)("inlineCode",{parentName:"a"},"TransactionMovement"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(d,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/transaction-summary"},(0,s.kt)("inlineCode",{parentName:"a"},"TransactionSummary"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(d,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/unspent-output"},(0,s.kt)("inlineCode",{parentName:"a"},"UnspentOutput"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(d,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/version"},(0,s.kt)("inlineCode",{parentName:"a"},"Version"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}k.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5412],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>b});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function s(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var l=r.createContext({}),c=function(e){var t=r.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},d=function(e){var t=c(e.components);return r.createElement(l.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,s=e.originalType,l=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),p=c(a),u=n,b=p["".concat(l,".").concat(u)]||p[u]||m[u]||s;return a?r.createElement(b,o(o({ref:t},d),{},{components:a})):r.createElement(b,o({ref:t},d))}));function b(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var s=a.length,o=new Array(s);o[0]=u;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[p]="string"==typeof e?e:n,o[1]=i;for(var c=2;c{a.r(t),a.d(t,{Badge:()=>m,Bullet:()=>d,Details:()=>b,SpecifiedBy:()=>p,assets:()=>c,contentTitle:()=>i,default:()=>k,frontMatter:()=>o,metadata:()=>l,toc:()=>u});var r=a(87462),n=a(67294),s=a(3905);a(8209);const o={id:"string",title:"String",hide_table_of_contents:!1},i=void 0,l={unversionedId:"build/api/schema/scalars/string",id:"build/api/schema/scalars/string",title:"String",description:"The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.",source:"@site/docs/build/api/schema/scalars/string.mdx",sourceDirName:"build/api/schema/scalars",slug:"/build/api/schema/scalars/string",permalink:"/build/api/schema/scalars/string",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",frontMatter:{id:"string",title:"String",hide_table_of_contents:!1},sidebar:"docs",previous:{title:"State",permalink:"/build/api/schema/scalars/state"},next:{title:"Timestamp",permalink:"/build/api/schema/scalars/timestamp"}},c={},d=()=>(0,s.kt)(n.Fragment,null,(0,s.kt)("span",{style:{fontWeight:"normal",fontSize:".5em",color:"var(--ifm-color-secondary-darkest)"}},"\xa0\u25cf\xa0")),p=e=>(0,s.kt)(n.Fragment,null,"Specification",(0,s.kt)("a",{className:"link",style:{fontSize:"1.5em",paddingLeft:"4px"},target:"_blank",href:e.url,title:"Specified by "+e.url},"\u2398")),m=e=>(0,s.kt)(n.Fragment,null,(0,s.kt)("span",{className:e.class},e.text)),u=[{value:"Member of",id:"member-of",level:3}],b=e=>{let{dataOpen:t,dataClose:a,children:o,startOpen:i=!1}=e;const[l,c]=(0,n.useState)(i);return(0,s.kt)("details",(0,r.Z)({},l?{open:!0}:{},{className:"details",style:{border:"none",boxShadow:"none",background:"var(--ifm-background-color)"}}),(0,s.kt)("summary",{onClick:e=>{e.preventDefault(),c((e=>!e))},style:{listStyle:"none"}},l?t:a),l&&o)},y={Bullet:d,SpecifiedBy:p,Badge:m,toc:u,Details:b},g="wrapper";function k(e){let{components:t,...a}=e;return(0,s.kt)(g,(0,r.Z)({},y,a,{components:t,mdxType:"MDXLayout"}),(0,s.kt)("p",null,"The ",(0,s.kt)("inlineCode",{parentName:"p"},"String")," scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text."),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-graphql"},"scalar String\n")),(0,s.kt)("h3",{id:"member-of"},"Member of"),(0,s.kt)("p",null,(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/consumed-inputs"},(0,s.kt)("inlineCode",{parentName:"a"},"ConsumedInputs"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(d,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/data"},(0,s.kt)("inlineCode",{parentName:"a"},"Data"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(d,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/endpoint"},(0,s.kt)("inlineCode",{parentName:"a"},"Endpoint"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(d,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/error-details"},(0,s.kt)("inlineCode",{parentName:"a"},"ErrorDetails"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(d,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/node"},(0,s.kt)("inlineCode",{parentName:"a"},"Node"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(d,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/recipient"},(0,s.kt)("inlineCode",{parentName:"a"},"Recipient"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(d,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/token"},(0,s.kt)("inlineCode",{parentName:"a"},"Token"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(d,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/transaction"},(0,s.kt)("inlineCode",{parentName:"a"},"Transaction"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(d,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/transaction-error"},(0,s.kt)("inlineCode",{parentName:"a"},"TransactionError"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(d,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/transaction-input"},(0,s.kt)("inlineCode",{parentName:"a"},"TransactionInput"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(d,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/transaction-movement"},(0,s.kt)("inlineCode",{parentName:"a"},"TransactionMovement"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(d,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/transaction-summary"},(0,s.kt)("inlineCode",{parentName:"a"},"TransactionSummary"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(d,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/unspent-output"},(0,s.kt)("inlineCode",{parentName:"a"},"UnspentOutput"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"}),(0,s.kt)(d,{mdxType:"Bullet"}),(0,s.kt)("a",{parentName:"p",href:"/build/api/schema/objects/version"},(0,s.kt)("inlineCode",{parentName:"a"},"Version"))," ",(0,s.kt)(m,{class:"badge badge--secondary",text:"object",mdxType:"Badge"})))}k.isMDXComponent=!0},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file diff --git a/assets/js/ff9f076d.b56de1e9.js b/assets/js/ff9f076d.af511957.js similarity index 98% rename from assets/js/ff9f076d.b56de1e9.js rename to assets/js/ff9f076d.af511957.js index dca6e7513..b67475501 100644 --- a/assets/js/ff9f076d.b56de1e9.js +++ b/assets/js/ff9f076d.af511957.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1399],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>h});var n=a(67294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function r(e){for(var t=1;t=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var l=n.createContext({}),p=function(e){var t=n.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):r(r({},t),e)),a},c=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,i=e.mdxType,o=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),u=p(a),m=i,h=u["".concat(l,".").concat(m)]||u[m]||d[m]||o;return a?n.createElement(h,r(r({ref:t},c),{},{components:a})):n.createElement(h,r({ref:t},c))}));function h(e,t){var a=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=a.length,r=new Array(o);r[0]=m;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[u]="string"==typeof e?e:i,r[1]=s;for(var p=2;p{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>d,frontMatter:()=>o,metadata:()=>s,toc:()=>p});var n=a(87462),i=(a(67294),a(3905));a(8209);const o={title:"Swap",id:"swap",sidebar_label:"Swap"},r=void 0,s={unversionedId:"participate/dex/Guide_Usage/swap",id:"participate/dex/Guide_Usage/swap",title:"Swap",description:"Swapping Your Tokens",source:"@site/docs/participate/dex/05-Guide_Usage/01-swap.md",sourceDirName:"participate/dex/05-Guide_Usage",slug:"/participate/dex/Guide_Usage/swap",permalink:"/participate/dex/Guide_Usage/swap",draft:!1,tags:[],version:"current",lastUpdatedAt:1733153757,formattedLastUpdatedAt:"Dec 2, 2024",sidebarPosition:1,frontMatter:{title:"Swap",id:"swap",sidebar_label:"Swap"},sidebar:"docs",previous:{title:"Tutorial",permalink:"/participate/dex/Guide_Usage/"},next:{title:"Liquidity Pool",permalink:"/participate/dex/Guide_Usage/liquidity_pool"}},l={},p=[{value:"Swapping Your Tokens",id:"swapping-your-tokens",level:2},{value:"Step 1: Swap - Essential Information",id:"step-1-swap---essential-information",level:3},{value:"Pre-transaction Validations",id:"pre-transaction-validations",level:4},{value:"Step 2: Finalizing swap: Confirmation and Validation Steps",id:"step-2-finalizing-swap-confirmation-and-validation-steps",level:3},{value:"Wallet Validations for Swap Transaction",id:"wallet-validations-for-swap-transaction",level:4}],c={toc:p},u="wrapper";function d(e){let{components:t,...o}=e;return(0,i.kt)(u,(0,n.Z)({},c,o,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"swapping-your-tokens"},"Swapping Your Tokens"),(0,i.kt)("p",null,"aeSwap involves multiple steps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Inputting information to initiate the swap"),(0,i.kt)("li",{parentName:"ol"},"Confirming the entered details"),(0,i.kt)("li",{parentName:"ol"},"Executing the swap, with progress tracking and transaction signing in the Archethic wallet")),(0,i.kt)("h3",{id:"step-1-swap---essential-information"},"Step 1: Swap - Essential Information"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"Swap form",src:a(29595).Z,width:"1342",height:"986"})),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Select tokens to swap"),': Click on "Select a token" to access a popup with token info'),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"Token Selection",src:a(79460).Z,width:"1272",height:"1096"})),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Entering Token Amount to swap"),": Begin by inputting the amount of one of the two tokens in the pool's pair. The system will automatically calculate the necessary amount of the second token based on the current pool ratio."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Slippage Tolerance Configuration"),': To manage the impact of price fluctuations during your transaction, click on the wheel icon next to "slippage tolerance." Slippage occurs when the price at which your transaction is executed differs from the price when you submitted it. Adjusting your slippage tolerance allows you to control the maximum price variation you\'re willing to accept.'),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Transaction Details"),": Once you've set the amounts, the system will display information about your transaction:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Fees"),": Displayed prominently, this includes the fees charged by liquidity providers for facilitating the swap, as well as any operating costs associated with using the Archethic Public Blockchain. These fees are integral to the transaction cost and contribute to the rewards for liquidity providers."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Price Impact"),": The system calculates and shows the price impact of your transaction, which is the effect your trade will have on the pool's price for the token pair. The price impact is a crucial metric for understanding how the size of your transaction relative to the pool's liquidity can alter the price of the tokens you are trading. A significant transaction in a pool with limited liquidity can lead to a higher price impact.",(0,i.kt)("admonition",{parentName:"li",type:"info"},(0,i.kt)("p",{parentName:"admonition"},"If the price impact exceeds certain thresholds (greater than 1% or 5%), the system issues a warning. This is to alert you that your transaction could significantly alter market prices, potentially leading to less favorable trade conditions."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Minimum received"),": This figure represents the least amount you can expect to receive as a result of your transaction, taking into account slippage and fees. It ensures that you are aware of the worst-case scenario based on the current market conditions and your specified slippage tolerance."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Current TVL of the Pool"),": The Total Value Locked (TVL) in the pool is provided, giving you an idea of the pool's size and liquidity. A larger TVL indicates a more significant pool, which generally leads to lower price impact from individual transactions."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Current Token Ratio"),": Lastly, you will see the current ratio of tokens in the pool. This ratio is vital for understanding the liquidity dynamics and potential price movements within the pool.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Swap"),': Click the "Swap" button to finalize your swap. This action initiates the transaction and swaps your tokens.'),(0,i.kt)("h4",{id:"pre-transaction-validations"},"Pre-transaction Validations"),(0,i.kt)("p",null,"Before swapping, the system performs a vital check to ensure:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Token Availability"),": Verifies that the necessary token to swap is available in your wallet.")),(0,i.kt)("admonition",{type:"info"},(0,i.kt)("p",{parentName:"admonition"},"When swapping involving UCO (the native token of the Archethic Public Blockchain), the system automatically calculates and reserves the necessary amount for transaction fees associated with liquidity addition. As a result, the maximum amount of UCO that can be allocated is less than your total UCO balance to accommodate these costs.")),(0,i.kt)("h3",{id:"step-2-finalizing-swap-confirmation-and-validation-steps"},"Step 2: Finalizing swap: Confirmation and Validation Steps"),(0,i.kt)("p",null,'After you submit the swap form by clicking the "Swap" button, you will be directed to a confirmation screen. This screen serves a critical role in the swap process, enabling you to:'),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Minimum received")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Balances Verification"),": Check your account balances before and after the swap to understand the impact of your transaction."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Fees")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Price impact"),'\nIf the details align with your intentions and you are content with the proposed setup, proceed by clicking on the "Confirm swap" button to move forward in the process.')),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"Swap confirm",src:a(10950).Z,width:"1350",height:"1198"})),(0,i.kt)("h4",{id:"wallet-validations-for-swap-transaction"},"Wallet Validations for Swap Transaction"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Transaction Confirmation"),": You will need to approve 1 transaction."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Transaction Address"),": Upon successful completion of this transaction, you will be provided with the address and the amount swapped. This address allows you to verify the transaction on the blockchain, ensuring transparency and security in your operation."),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"Swap end",src:a(47135).Z,width:"1308",height:"906"})))}d.isMDXComponent=!0},79460:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/aeSwap-Select-Token-5fce5577fb565e85438b3c131998ec26.png"},10950:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/aeSwap-Swap-Confirm-36792469ae184a5c693787475596082c.png"},47135:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/aeSwap-Swap-End-7189173e5acb56bf8665cb97e3952980.png"},29595:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/aeSwap-Swap-Form-b0e07a331b2600924687a9db683ef6a6.png"},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1399],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>h});var n=a(67294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function r(e){for(var t=1;t=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var l=n.createContext({}),p=function(e){var t=n.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):r(r({},t),e)),a},c=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,i=e.mdxType,o=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),u=p(a),m=i,h=u["".concat(l,".").concat(m)]||u[m]||d[m]||o;return a?n.createElement(h,r(r({ref:t},c),{},{components:a})):n.createElement(h,r({ref:t},c))}));function h(e,t){var a=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=a.length,r=new Array(o);r[0]=m;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[u]="string"==typeof e?e:i,r[1]=s;for(var p=2;p{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>d,frontMatter:()=>o,metadata:()=>s,toc:()=>p});var n=a(87462),i=(a(67294),a(3905));a(8209);const o={title:"Swap",id:"swap",sidebar_label:"Swap"},r=void 0,s={unversionedId:"participate/dex/Guide_Usage/swap",id:"participate/dex/Guide_Usage/swap",title:"Swap",description:"Swapping Your Tokens",source:"@site/docs/participate/dex/05-Guide_Usage/01-swap.md",sourceDirName:"participate/dex/05-Guide_Usage",slug:"/participate/dex/Guide_Usage/swap",permalink:"/participate/dex/Guide_Usage/swap",draft:!1,tags:[],version:"current",lastUpdatedAt:1733336498,formattedLastUpdatedAt:"Dec 4, 2024",sidebarPosition:1,frontMatter:{title:"Swap",id:"swap",sidebar_label:"Swap"},sidebar:"docs",previous:{title:"Tutorial",permalink:"/participate/dex/Guide_Usage/"},next:{title:"Liquidity Pool",permalink:"/participate/dex/Guide_Usage/liquidity_pool"}},l={},p=[{value:"Swapping Your Tokens",id:"swapping-your-tokens",level:2},{value:"Step 1: Swap - Essential Information",id:"step-1-swap---essential-information",level:3},{value:"Pre-transaction Validations",id:"pre-transaction-validations",level:4},{value:"Step 2: Finalizing swap: Confirmation and Validation Steps",id:"step-2-finalizing-swap-confirmation-and-validation-steps",level:3},{value:"Wallet Validations for Swap Transaction",id:"wallet-validations-for-swap-transaction",level:4}],c={toc:p},u="wrapper";function d(e){let{components:t,...o}=e;return(0,i.kt)(u,(0,n.Z)({},c,o,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"swapping-your-tokens"},"Swapping Your Tokens"),(0,i.kt)("p",null,"aeSwap involves multiple steps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Inputting information to initiate the swap"),(0,i.kt)("li",{parentName:"ol"},"Confirming the entered details"),(0,i.kt)("li",{parentName:"ol"},"Executing the swap, with progress tracking and transaction signing in the Archethic wallet")),(0,i.kt)("h3",{id:"step-1-swap---essential-information"},"Step 1: Swap - Essential Information"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"Swap form",src:a(29595).Z,width:"1342",height:"986"})),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Select tokens to swap"),': Click on "Select a token" to access a popup with token info'),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"Token Selection",src:a(79460).Z,width:"1272",height:"1096"})),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Entering Token Amount to swap"),": Begin by inputting the amount of one of the two tokens in the pool's pair. The system will automatically calculate the necessary amount of the second token based on the current pool ratio."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Slippage Tolerance Configuration"),': To manage the impact of price fluctuations during your transaction, click on the wheel icon next to "slippage tolerance." Slippage occurs when the price at which your transaction is executed differs from the price when you submitted it. Adjusting your slippage tolerance allows you to control the maximum price variation you\'re willing to accept.'),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Transaction Details"),": Once you've set the amounts, the system will display information about your transaction:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Fees"),": Displayed prominently, this includes the fees charged by liquidity providers for facilitating the swap, as well as any operating costs associated with using the Archethic Public Blockchain. These fees are integral to the transaction cost and contribute to the rewards for liquidity providers."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Price Impact"),": The system calculates and shows the price impact of your transaction, which is the effect your trade will have on the pool's price for the token pair. The price impact is a crucial metric for understanding how the size of your transaction relative to the pool's liquidity can alter the price of the tokens you are trading. A significant transaction in a pool with limited liquidity can lead to a higher price impact.",(0,i.kt)("admonition",{parentName:"li",type:"info"},(0,i.kt)("p",{parentName:"admonition"},"If the price impact exceeds certain thresholds (greater than 1% or 5%), the system issues a warning. This is to alert you that your transaction could significantly alter market prices, potentially leading to less favorable trade conditions."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Minimum received"),": This figure represents the least amount you can expect to receive as a result of your transaction, taking into account slippage and fees. It ensures that you are aware of the worst-case scenario based on the current market conditions and your specified slippage tolerance."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Current TVL of the Pool"),": The Total Value Locked (TVL) in the pool is provided, giving you an idea of the pool's size and liquidity. A larger TVL indicates a more significant pool, which generally leads to lower price impact from individual transactions."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Current Token Ratio"),": Lastly, you will see the current ratio of tokens in the pool. This ratio is vital for understanding the liquidity dynamics and potential price movements within the pool.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Swap"),': Click the "Swap" button to finalize your swap. This action initiates the transaction and swaps your tokens.'),(0,i.kt)("h4",{id:"pre-transaction-validations"},"Pre-transaction Validations"),(0,i.kt)("p",null,"Before swapping, the system performs a vital check to ensure:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Token Availability"),": Verifies that the necessary token to swap is available in your wallet.")),(0,i.kt)("admonition",{type:"info"},(0,i.kt)("p",{parentName:"admonition"},"When swapping involving UCO (the native token of the Archethic Public Blockchain), the system automatically calculates and reserves the necessary amount for transaction fees associated with liquidity addition. As a result, the maximum amount of UCO that can be allocated is less than your total UCO balance to accommodate these costs.")),(0,i.kt)("h3",{id:"step-2-finalizing-swap-confirmation-and-validation-steps"},"Step 2: Finalizing swap: Confirmation and Validation Steps"),(0,i.kt)("p",null,'After you submit the swap form by clicking the "Swap" button, you will be directed to a confirmation screen. This screen serves a critical role in the swap process, enabling you to:'),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Minimum received")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Balances Verification"),": Check your account balances before and after the swap to understand the impact of your transaction."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Fees")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Price impact"),'\nIf the details align with your intentions and you are content with the proposed setup, proceed by clicking on the "Confirm swap" button to move forward in the process.')),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"Swap confirm",src:a(10950).Z,width:"1350",height:"1198"})),(0,i.kt)("h4",{id:"wallet-validations-for-swap-transaction"},"Wallet Validations for Swap Transaction"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Transaction Confirmation"),": You will need to approve 1 transaction."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Transaction Address"),": Upon successful completion of this transaction, you will be provided with the address and the amount swapped. This address allows you to verify the transaction on the blockchain, ensuring transparency and security in your operation."),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"Swap end",src:a(47135).Z,width:"1308",height:"906"})))}d.isMDXComponent=!0},79460:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/aeSwap-Select-Token-5fce5577fb565e85438b3c131998ec26.png"},10950:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/aeSwap-Swap-Confirm-36792469ae184a5c693787475596082c.png"},47135:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/aeSwap-Swap-End-7189173e5acb56bf8665cb97e3952980.png"},29595:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/aeSwap-Swap-Form-b0e07a331b2600924687a9db683ef6a6.png"},8209:(e,t,a)=>{a(67294)}}]); \ No newline at end of file diff --git a/assets/js/runtime~main.4082722d.js b/assets/js/runtime~main.32361b0e.js similarity index 56% rename from assets/js/runtime~main.4082722d.js rename to assets/js/runtime~main.32361b0e.js index b6944ff70..394392dbe 100644 --- a/assets/js/runtime~main.4082722d.js +++ b/assets/js/runtime~main.32361b0e.js @@ -1 +1 @@ -(()=>{"use strict";var e,f,b,c,a,d={},t={};function r(e){var f=t[e];if(void 0!==f)return f.exports;var b=t[e]={exports:{}};return d[e].call(b.exports,b,b.exports,r),b.exports}r.m=d,e=[],r.O=(f,b,c,a)=>{if(!b){var d=1/0;for(i=0;i=a)&&Object.keys(r.O).every((e=>r.O[e](b[o])))?b.splice(o--,1):(t=!1,a0&&e[i-1][2]>a;i--)e[i]=e[i-1];e[i]=[b,c,a]},r.n=e=>{var f=e&&e.__esModule?()=>e.default:()=>e;return r.d(f,{a:f}),f},b=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,c){if(1&c&&(e=this(e)),8&c)return e;if("object"==typeof e&&e){if(4&c&&e.__esModule)return e;if(16&c&&"function"==typeof e.then)return e}var a=Object.create(null);r.r(a);var d={};f=f||[null,b({}),b([]),b(b)];for(var t=2&c&&e;"object"==typeof t&&!~f.indexOf(t);t=b(t))Object.getOwnPropertyNames(t).forEach((f=>d[f]=()=>e[f]));return d.default=()=>e,r.d(a,d),a},r.d=(e,f)=>{for(var b in f)r.o(f,b)&&!r.o(e,b)&&Object.defineProperty(e,b,{enumerable:!0,get:f[b]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((f,b)=>(r.f[b](e,f),f)),[])),r.u=e=>"assets/js/"+({53:"935f2afb",81:"61e43ac9",228:"3f3bfce2",246:"5037eb2b",330:"f57a1375",420:"72ec880a",428:"ab699365",669:"d2674f84",681:"dd15e14a",711:"8153e280",798:"4775ecc5",827:"851bf865",844:"6efc9e6d",847:"710ae1bb",866:"1b1339dc",932:"4ad6f564",974:"9bb63452",1113:"8a9337ba",1137:"12706266",1166:"147d0e4e",1171:"87dfbf5d",1172:"4eef9a57",1248:"a0393694",1260:"79891879",1263:"199f22fd",1328:"2fdf8aec",1340:"24510ea8",1399:"ff9f076d",1484:"764c3c46",1592:"70e1f15f",1601:"4bf323b4",1690:"bbc3785e",1696:"ecdd1e85",1697:"bf6e295d",1710:"2bbc5cd2",1714:"5185999b",1718:"daff3ff4",1719:"ac1890eb",1778:"a1844ead",1938:"b2e52e63",1946:"3d4047db",1950:"db2ee795",1996:"7764509b",2034:"e43c4cd3",2052:"bf608a00",2217:"4c0f205c",2282:"16e43f8e",2323:"ceaeeb36",2488:"441b3d3d",2491:"07f0fc78",2502:"840f9766",2614:"8d60aa1f",2665:"e9cd6030",2814:"9280a2e5",2849:"66dc3ce4",2926:"5fe1ab02",2971:"2d63ea61",3042:"11838df3",3079:"b3ae0c51",3085:"1f391b9e",3168:"66076425",3252:"8baedca9",3355:"1b311f41",3382:"27ab3fd0",3446:"f63a5cf4",3559:"16aa5868",3561:"638e4778",3592:"7bfcff53",3594:"42c0b8d9",3610:"dbbf52bd",3633:"0666b85a",3651:"fe294169",3723:"c204078c",3747:"1872c6b8",3812:"07620fdf",3826:"d8579283",3849:"5b112661",3890:"a18b1795",3930:"c9e924cb",4060:"bd14bfe1",4082:"f3b8755c",4099:"b17a2c3b",4106:"f2faff8f",4189:"41637b9f",4195:"c4f5d8e4",4230:"89af9b08",4338:"e2b19375",4398:"bb9d9339",4435:"9e3de0ed",4439:"45e94216",4552:"d781e8a6",4560:"77c64564",4708:"4417e8c8",4732:"2c3d8110",4856:"3c967327",4859:"cfbe1bc9",4860:"f821c4a8",4875:"fb57a917",4889:"57fb9911",4898:"e0b1087e",4923:"cc5722e1",5050:"56f0859a",5073:"31a1e1b3",5254:"300a963c",5258:"76b1eb51",5295:"0126df03",5344:"c65c1395",5352:"44c96576",5371:"eeb513bd",5400:"2ab0cde1",5412:"fe684f20",5471:"e8aebf52",5510:"e2f82150",5630:"65c808a4",5646:"a3bcfc8d",5682:"f43cc2fc",5888:"36739131",5896:"93c272fe",5935:"7746a795",5944:"d0a652bb",5986:"310207c7",6087:"f5288705",6269:"145b7035",6289:"193cb586",6328:"410469d2",6451:"8b5bd275",6484:"244870c6",6509:"e49ee1a9",6518:"6aade8bf",6605:"21e44e7e",6631:"2bc40b18",6691:"7d24ac82",6694:"aa1914e6",6697:"be94c4be",6716:"02486155",6748:"5eea7269",6753:"cc668907",6783:"9de09737",6829:"b684cce9",6894:"0607e0c5",6898:"2f55ba46",6907:"d409b53d",6975:"32b86e0c",7007:"fbab86a0",7028:"9d5784d1",7045:"66545c3d",7080:"4d54d076",7136:"c47075b4",7155:"4a0589af",7157:"0c928027",7224:"941e9194",7265:"009f927a",7414:"393be207",7443:"ae218501",7482:"378b5e98",7486:"6638f55a",7527:"c31d0f42",7611:"0945e04b",7655:"7e96883b",7701:"ee388bf8",7741:"16c17b5d",7766:"2159a0a5",7790:"0946372c",7793:"41e024b6",7817:"9ffe0250",7840:"c1456968",7849:"777b0dfa",7866:"b434a052",7870:"14d826f7",7918:"17896441",7945:"1821a3cc",8011:"05f2d199",8016:"9327017b",8087:"1735c347",8208:"c325c1c7",8227:"32bd85cf",8268:"145f3c45",8342:"55620597",8370:"c1d281e2",8423:"d39a7100",8544:"d5f21d1f",8568:"fe068327",8574:"70d0ac84",8607:"fa629964",8610:"08912224",8715:"9c964f59",8731:"8a7bb9f4",8959:"b4914bc5",8992:"3247e900",9036:"bd1424fb",9056:"a90ecf70",9091:"17dede69",9156:"5c6aa1cd",9161:"4b0f8212",9174:"05fd4dd8",9185:"e98eede6",9199:"59ac5e04",9216:"cc71d488",9254:"8dbf302e",9255:"6fa4dae1",9286:"a22626c5",9333:"f3ebdb21",9514:"1be78505",9559:"9c94cf05",9573:"aef11b3c",9712:"749f8745",9740:"c505f0d9",9782:"c31aa05f",9817:"14eb3368",9852:"c4bb8d44",9855:"d54033d7",9903:"93a4d248",9909:"c8c61268"}[e]||e)+"."+{53:"d0bdcd23",81:"e762bd90",120:"cbee9891",228:"95641d89",246:"8f83e448",330:"9b113543",420:"a3075658",428:"2d46b070",669:"c963f5f1",681:"5628a34d",711:"73bcee29",798:"8088a150",827:"26030a83",844:"9c42a23c",847:"8c928fc6",866:"66e19035",932:"efc96b7a",974:"f069d5c8",1113:"d6f6d745",1137:"827b6014",1166:"9880dd08",1171:"3cecfc4c",1172:"025378e4",1248:"7dadc27d",1260:"39defe87",1263:"7360f299",1328:"8476c5a8",1340:"1bc549b1",1399:"b56de1e9",1484:"daf4a4a8",1592:"7042c701",1601:"38bfdb5c",1690:"415c1cd8",1696:"e15c45af",1697:"40852c2f",1710:"0aa12c9b",1714:"07ca23cd",1718:"d1822931",1719:"0d21c0cf",1778:"62f19d9a",1938:"589f58c7",1946:"758a4c19",1950:"1bbff77e",1996:"f2df9592",2034:"cde3635a",2052:"91a96269",2217:"b92ccc05",2282:"302bdc48",2323:"cbe995f0",2488:"de6255c0",2491:"6f8d3165",2502:"a032cce3",2614:"f0137bc3",2665:"937c7369",2784:"695a9cad",2814:"66872908",2849:"43989ef2",2926:"913aec32",2971:"e8664f03",3042:"6ac8d5ae",3079:"02f5864a",3085:"eee24fbc",3168:"32639d65",3252:"ae7c17d2",3355:"4afc1c94",3382:"5fb09b92",3446:"9ea4ef2a",3559:"e0dd7883",3561:"99783ffd",3592:"22e6cbfa",3594:"f05ede9a",3610:"d3a2f325",3633:"a31d67b0",3651:"6652d076",3723:"defbe5f1",3747:"007df33b",3812:"209ac10b",3826:"624e0117",3849:"acc620d4",3890:"9088e434",3930:"f83c55a8",4060:"c6f8dbf7",4082:"f82fa72a",4099:"6e3dbb6f",4106:"e367a436",4189:"ebe004fb",4195:"74017d04",4230:"e42b51a0",4338:"41f1fc26",4398:"00e99657",4435:"7deaec72",4439:"3d4015ca",4552:"abfba630",4560:"7544908c",4708:"7a9dbe60",4732:"91130eed",4856:"ce73bf04",4859:"9a9ac6ae",4860:"9ede2e5a",4875:"f8faeb0e",4889:"33e0dca6",4898:"f89ee85b",4923:"3ffef60d",4972:"23a83985",5050:"a1b705b4",5073:"e993715e",5254:"43e0ece2",5258:"d6d4e386",5295:"dc9b66fa",5344:"76ad25e2",5352:"13bef4d4",5371:"d1e550ce",5400:"8619d981",5412:"eb4eac9a",5471:"7cf6129a",5510:"f6fe9f1c",5630:"ad3a6bd9",5646:"b3104399",5682:"47e52f04",5888:"338b06dc",5896:"44575829",5935:"3c38e694",5944:"efd46029",5986:"e61c303e",6087:"5797524f",6269:"2ce1c27c",6289:"2c890804",6328:"b1c1adc3",6451:"9c85f86b",6484:"68c8b1fa",6509:"ba0defca",6518:"c26e6f4b",6605:"30743647",6631:"3da04b94",6691:"d7039c7e",6694:"44bdf214",6697:"84e690e3",6716:"02606f94",6748:"2a76ce22",6753:"e2a5a133",6783:"ac0b77d9",6829:"b14941ad",6894:"9c3c382e",6898:"c82ed54e",6907:"f64bc96e",6975:"8320e789",7007:"124e4970",7028:"12c52e82",7045:"b432ed58",7080:"f650cb94",7136:"04a04253",7155:"121e4d05",7157:"3f238f29",7224:"2674a90b",7265:"a3e72bb3",7319:"f324ac43",7414:"bea833d2",7443:"d4f8bc9f",7482:"30203991",7486:"3495400f",7527:"29718849",7611:"7eb53a89",7655:"4650e50a",7701:"2715e259",7741:"a02c1db1",7766:"e34cb647",7790:"2c9e364e",7793:"e21956f3",7817:"c35837a4",7840:"5cca09f8",7849:"e2fe4569",7866:"e8fb0331",7870:"7d4e8d05",7888:"4739547a",7918:"041e7958",7945:"ffae28ea",8011:"186a9d06",8016:"4004b014",8087:"b655972c",8208:"d3068d5d",8227:"9fc69ce4",8268:"03d1c136",8342:"2fb97967",8370:"7cda39ee",8423:"f03b5781",8544:"d805e545",8568:"1186a009",8574:"f87d7e46",8607:"19dbc43b",8610:"ff41bbb9",8715:"9b7322b2",8731:"8a873059",8959:"bb869270",8992:"37246bc9",9036:"1c943e7f",9056:"b32dd3f0",9091:"41575ec7",9156:"577dec07",9161:"ff9f42a9",9174:"f3691616",9185:"d968686d",9199:"1e3bcaf9",9216:"0c7216f4",9254:"daaafd19",9255:"f20fd867",9286:"9d01666d",9333:"e8c16e04",9514:"e90a379a",9559:"539d3fd6",9573:"2d680cf0",9712:"3a4d1fae",9740:"7889a7f5",9782:"2f74d91f",9817:"4faedf91",9852:"a15dddcf",9855:"60e90b0d",9903:"81051700",9909:"23eb9aa7"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,f)=>Object.prototype.hasOwnProperty.call(e,f),c={},a="docs:",r.l=(e,f,b,d)=>{if(c[e])c[e].push(f);else{var t,o;if(void 0!==b)for(var n=document.getElementsByTagName("script"),i=0;i{t.onerror=t.onload=null,clearTimeout(s);var a=c[e];if(delete c[e],t.parentNode&&t.parentNode.removeChild(t),a&&a.forEach((e=>e(b))),f)return f(b)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/",r.gca=function(e){return e={12706266:"1137",17896441:"7918",36739131:"5888",55620597:"8342",66076425:"3168",79891879:"1260","935f2afb":"53","61e43ac9":"81","3f3bfce2":"228","5037eb2b":"246",f57a1375:"330","72ec880a":"420",ab699365:"428",d2674f84:"669",dd15e14a:"681","8153e280":"711","4775ecc5":"798","851bf865":"827","6efc9e6d":"844","710ae1bb":"847","1b1339dc":"866","4ad6f564":"932","9bb63452":"974","8a9337ba":"1113","147d0e4e":"1166","87dfbf5d":"1171","4eef9a57":"1172",a0393694:"1248","199f22fd":"1263","2fdf8aec":"1328","24510ea8":"1340",ff9f076d:"1399","764c3c46":"1484","70e1f15f":"1592","4bf323b4":"1601",bbc3785e:"1690",ecdd1e85:"1696",bf6e295d:"1697","2bbc5cd2":"1710","5185999b":"1714",daff3ff4:"1718",ac1890eb:"1719",a1844ead:"1778",b2e52e63:"1938","3d4047db":"1946",db2ee795:"1950","7764509b":"1996",e43c4cd3:"2034",bf608a00:"2052","4c0f205c":"2217","16e43f8e":"2282",ceaeeb36:"2323","441b3d3d":"2488","07f0fc78":"2491","840f9766":"2502","8d60aa1f":"2614",e9cd6030:"2665","9280a2e5":"2814","66dc3ce4":"2849","5fe1ab02":"2926","2d63ea61":"2971","11838df3":"3042",b3ae0c51:"3079","1f391b9e":"3085","8baedca9":"3252","1b311f41":"3355","27ab3fd0":"3382",f63a5cf4:"3446","16aa5868":"3559","638e4778":"3561","7bfcff53":"3592","42c0b8d9":"3594",dbbf52bd:"3610","0666b85a":"3633",fe294169:"3651",c204078c:"3723","1872c6b8":"3747","07620fdf":"3812",d8579283:"3826","5b112661":"3849",a18b1795:"3890",c9e924cb:"3930",bd14bfe1:"4060",f3b8755c:"4082",b17a2c3b:"4099",f2faff8f:"4106","41637b9f":"4189",c4f5d8e4:"4195","89af9b08":"4230",e2b19375:"4338",bb9d9339:"4398","9e3de0ed":"4435","45e94216":"4439",d781e8a6:"4552","77c64564":"4560","4417e8c8":"4708","2c3d8110":"4732","3c967327":"4856",cfbe1bc9:"4859",f821c4a8:"4860",fb57a917:"4875","57fb9911":"4889",e0b1087e:"4898",cc5722e1:"4923","56f0859a":"5050","31a1e1b3":"5073","300a963c":"5254","76b1eb51":"5258","0126df03":"5295",c65c1395:"5344","44c96576":"5352",eeb513bd:"5371","2ab0cde1":"5400",fe684f20:"5412",e8aebf52:"5471",e2f82150:"5510","65c808a4":"5630",a3bcfc8d:"5646",f43cc2fc:"5682","93c272fe":"5896","7746a795":"5935",d0a652bb:"5944","310207c7":"5986",f5288705:"6087","145b7035":"6269","193cb586":"6289","410469d2":"6328","8b5bd275":"6451","244870c6":"6484",e49ee1a9:"6509","6aade8bf":"6518","21e44e7e":"6605","2bc40b18":"6631","7d24ac82":"6691",aa1914e6:"6694",be94c4be:"6697","02486155":"6716","5eea7269":"6748",cc668907:"6753","9de09737":"6783",b684cce9:"6829","0607e0c5":"6894","2f55ba46":"6898",d409b53d:"6907","32b86e0c":"6975",fbab86a0:"7007","9d5784d1":"7028","66545c3d":"7045","4d54d076":"7080",c47075b4:"7136","4a0589af":"7155","0c928027":"7157","941e9194":"7224","009f927a":"7265","393be207":"7414",ae218501:"7443","378b5e98":"7482","6638f55a":"7486",c31d0f42:"7527","0945e04b":"7611","7e96883b":"7655",ee388bf8:"7701","16c17b5d":"7741","2159a0a5":"7766","0946372c":"7790","41e024b6":"7793","9ffe0250":"7817",c1456968:"7840","777b0dfa":"7849",b434a052:"7866","14d826f7":"7870","1821a3cc":"7945","05f2d199":"8011","9327017b":"8016","1735c347":"8087",c325c1c7:"8208","32bd85cf":"8227","145f3c45":"8268",c1d281e2:"8370",d39a7100:"8423",d5f21d1f:"8544",fe068327:"8568","70d0ac84":"8574",fa629964:"8607","08912224":"8610","9c964f59":"8715","8a7bb9f4":"8731",b4914bc5:"8959","3247e900":"8992",bd1424fb:"9036",a90ecf70:"9056","17dede69":"9091","5c6aa1cd":"9156","4b0f8212":"9161","05fd4dd8":"9174",e98eede6:"9185","59ac5e04":"9199",cc71d488:"9216","8dbf302e":"9254","6fa4dae1":"9255",a22626c5:"9286",f3ebdb21:"9333","1be78505":"9514","9c94cf05":"9559",aef11b3c:"9573","749f8745":"9712",c505f0d9:"9740",c31aa05f:"9782","14eb3368":"9817",c4bb8d44:"9852",d54033d7:"9855","93a4d248":"9903",c8c61268:"9909"}[e]||e,r.p+r.u(e)},(()=>{var e={1303:0,532:0};r.f.j=(f,b)=>{var c=r.o(e,f)?e[f]:void 0;if(0!==c)if(c)b.push(c[2]);else if(/^(1303|532)$/.test(f))e[f]=0;else{var a=new Promise(((b,a)=>c=e[f]=[b,a]));b.push(c[2]=a);var d=r.p+r.u(f),t=new Error;r.l(d,(b=>{if(r.o(e,f)&&(0!==(c=e[f])&&(e[f]=void 0),c)){var a=b&&("load"===b.type?"missing":b.type),d=b&&b.target&&b.target.src;t.message="Loading chunk "+f+" failed.\n("+a+": "+d+")",t.name="ChunkLoadError",t.type=a,t.request=d,c[1](t)}}),"chunk-"+f,f)}},r.O.j=f=>0===e[f];var f=(f,b)=>{var c,a,d=b[0],t=b[1],o=b[2],n=0;if(d.some((f=>0!==e[f]))){for(c in t)r.o(t,c)&&(r.m[c]=t[c]);if(o)var i=o(r)}for(f&&f(b);n{"use strict";var e,a,f,c,b,d={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var f=t[e]={exports:{}};return d[e].call(f.exports,f,f.exports,r),f.exports}r.m=d,e=[],r.O=(a,f,c,b)=>{if(!f){var d=1/0;for(i=0;i=b)&&Object.keys(r.O).every((e=>r.O[e](f[o])))?f.splice(o--,1):(t=!1,b0&&e[i-1][2]>b;i--)e[i]=e[i-1];e[i]=[f,c,b]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},f=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,c){if(1&c&&(e=this(e)),8&c)return e;if("object"==typeof e&&e){if(4&c&&e.__esModule)return e;if(16&c&&"function"==typeof e.then)return e}var b=Object.create(null);r.r(b);var d={};a=a||[null,f({}),f([]),f(f)];for(var t=2&c&&e;"object"==typeof t&&!~a.indexOf(t);t=f(t))Object.getOwnPropertyNames(t).forEach((a=>d[a]=()=>e[a]));return d.default=()=>e,r.d(b,d),b},r.d=(e,a)=>{for(var f in a)r.o(a,f)&&!r.o(e,f)&&Object.defineProperty(e,f,{enumerable:!0,get:a[f]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((a,f)=>(r.f[f](e,a),a)),[])),r.u=e=>"assets/js/"+({53:"935f2afb",81:"61e43ac9",228:"3f3bfce2",246:"5037eb2b",330:"f57a1375",420:"72ec880a",428:"ab699365",669:"d2674f84",681:"dd15e14a",711:"8153e280",798:"4775ecc5",827:"851bf865",844:"6efc9e6d",847:"710ae1bb",866:"1b1339dc",932:"4ad6f564",974:"9bb63452",1113:"8a9337ba",1137:"12706266",1166:"147d0e4e",1171:"87dfbf5d",1172:"4eef9a57",1248:"a0393694",1260:"79891879",1263:"199f22fd",1328:"2fdf8aec",1340:"24510ea8",1399:"ff9f076d",1484:"764c3c46",1592:"70e1f15f",1601:"4bf323b4",1690:"bbc3785e",1696:"ecdd1e85",1697:"bf6e295d",1710:"2bbc5cd2",1714:"5185999b",1718:"daff3ff4",1719:"ac1890eb",1778:"a1844ead",1938:"b2e52e63",1946:"3d4047db",1950:"db2ee795",1996:"7764509b",2034:"e43c4cd3",2052:"bf608a00",2217:"4c0f205c",2282:"16e43f8e",2323:"ceaeeb36",2488:"441b3d3d",2491:"07f0fc78",2502:"840f9766",2614:"8d60aa1f",2665:"e9cd6030",2814:"9280a2e5",2849:"66dc3ce4",2926:"5fe1ab02",2971:"2d63ea61",3042:"11838df3",3079:"b3ae0c51",3085:"1f391b9e",3168:"66076425",3252:"8baedca9",3355:"1b311f41",3382:"27ab3fd0",3446:"f63a5cf4",3559:"16aa5868",3561:"638e4778",3592:"7bfcff53",3594:"42c0b8d9",3610:"dbbf52bd",3633:"0666b85a",3651:"fe294169",3723:"c204078c",3747:"1872c6b8",3812:"07620fdf",3826:"d8579283",3849:"5b112661",3890:"a18b1795",3930:"c9e924cb",4060:"bd14bfe1",4082:"f3b8755c",4099:"b17a2c3b",4106:"f2faff8f",4189:"41637b9f",4195:"c4f5d8e4",4230:"89af9b08",4338:"e2b19375",4398:"bb9d9339",4435:"9e3de0ed",4439:"45e94216",4552:"d781e8a6",4560:"77c64564",4708:"4417e8c8",4732:"2c3d8110",4856:"3c967327",4859:"cfbe1bc9",4860:"f821c4a8",4875:"fb57a917",4889:"57fb9911",4898:"e0b1087e",4923:"cc5722e1",5050:"56f0859a",5073:"31a1e1b3",5254:"300a963c",5258:"76b1eb51",5295:"0126df03",5344:"c65c1395",5352:"44c96576",5371:"eeb513bd",5400:"2ab0cde1",5412:"fe684f20",5471:"e8aebf52",5510:"e2f82150",5630:"65c808a4",5646:"a3bcfc8d",5682:"f43cc2fc",5888:"36739131",5896:"93c272fe",5935:"7746a795",5944:"d0a652bb",5986:"310207c7",6087:"f5288705",6269:"145b7035",6289:"193cb586",6328:"410469d2",6451:"8b5bd275",6484:"244870c6",6509:"e49ee1a9",6518:"6aade8bf",6605:"21e44e7e",6631:"2bc40b18",6691:"7d24ac82",6694:"aa1914e6",6697:"be94c4be",6716:"02486155",6748:"5eea7269",6753:"cc668907",6783:"9de09737",6829:"b684cce9",6894:"0607e0c5",6898:"2f55ba46",6907:"d409b53d",6975:"32b86e0c",7007:"fbab86a0",7028:"9d5784d1",7045:"66545c3d",7080:"4d54d076",7136:"c47075b4",7155:"4a0589af",7157:"0c928027",7224:"941e9194",7265:"009f927a",7414:"393be207",7443:"ae218501",7482:"378b5e98",7486:"6638f55a",7527:"c31d0f42",7611:"0945e04b",7655:"7e96883b",7701:"ee388bf8",7741:"16c17b5d",7766:"2159a0a5",7790:"0946372c",7793:"41e024b6",7817:"9ffe0250",7840:"c1456968",7849:"777b0dfa",7866:"b434a052",7870:"14d826f7",7918:"17896441",7945:"1821a3cc",8011:"05f2d199",8016:"9327017b",8087:"1735c347",8208:"c325c1c7",8227:"32bd85cf",8268:"145f3c45",8342:"55620597",8370:"c1d281e2",8423:"d39a7100",8544:"d5f21d1f",8568:"fe068327",8574:"70d0ac84",8607:"fa629964",8610:"08912224",8715:"9c964f59",8731:"8a7bb9f4",8959:"b4914bc5",8992:"3247e900",9036:"bd1424fb",9056:"a90ecf70",9091:"17dede69",9156:"5c6aa1cd",9161:"4b0f8212",9174:"05fd4dd8",9185:"e98eede6",9199:"59ac5e04",9216:"cc71d488",9254:"8dbf302e",9255:"6fa4dae1",9286:"a22626c5",9333:"f3ebdb21",9514:"1be78505",9559:"9c94cf05",9573:"aef11b3c",9712:"749f8745",9740:"c505f0d9",9782:"c31aa05f",9817:"14eb3368",9852:"c4bb8d44",9855:"d54033d7",9903:"93a4d248",9909:"c8c61268"}[e]||e)+"."+{53:"d0bdcd23",81:"771105f6",120:"cbee9891",228:"ae00b356",246:"27255450",330:"b3f50d75",420:"731e5b9e",428:"f26a8819",669:"ac4f761f",681:"219b7194",711:"ac282253",798:"f7b05864",827:"63be9d7c",844:"c4984ba5",847:"5c81f36c",866:"8be64298",932:"f7ca3381",974:"cbf60b92",1113:"d45b9719",1137:"a8c95f4f",1166:"44af8841",1171:"94afd6b0",1172:"025378e4",1248:"f31c259d",1260:"708b9981",1263:"940f0505",1328:"4eb3ddfa",1340:"dbb3a60d",1399:"af511957",1484:"cae9aa2f",1592:"0d01de48",1601:"ca536d46",1690:"65a7cd77",1696:"0789f4ed",1697:"baaf9d78",1710:"8b0cd709",1714:"1d684353",1718:"a5ccee75",1719:"ee744173",1778:"bb87513d",1938:"b02590e5",1946:"d47dcd1b",1950:"9d980ee2",1996:"51ebbb5f",2034:"2971f4a7",2052:"e4c0ba87",2217:"4076354d",2282:"d4649320",2323:"c12b247a",2488:"69cf1157",2491:"e12ec0eb",2502:"a032cce3",2614:"5171c709",2665:"f3578d3a",2784:"695a9cad",2814:"5c874cb2",2849:"43989ef2",2926:"c642eb7f",2971:"2bfd46f7",3042:"2fd9dcec",3079:"686b04cf",3085:"eee24fbc",3168:"47bbefd4",3252:"56e7f07d",3355:"440095ab",3382:"4a4dcc4b",3446:"7b847348",3559:"f049f95d",3561:"3fd92f7d",3592:"b7480514",3594:"0bfb06ea",3610:"48985f63",3633:"1c477c4a",3651:"f2d3ffaa",3723:"bfae96f4",3747:"0a1396cb",3812:"859fd8c9",3826:"1bfcabc8",3849:"bd427609",3890:"ce7cf21a",3930:"0792dfa3",4060:"8887aa42",4082:"87616385",4099:"0b1476ca",4106:"52b89b85",4189:"42bc5076",4195:"74017d04",4230:"e5fe57ee",4338:"95451724",4398:"59720d48",4435:"f650d8ae",4439:"1fdcc9b2",4552:"568850ba",4560:"7544908c",4708:"aba1304d",4732:"51a5f60b",4856:"791d0126",4859:"b80cd48b",4860:"75f9f325",4875:"191b1059",4889:"42177e78",4898:"cc59d189",4923:"9f1ad7fe",4972:"23a83985",5050:"08f83872",5073:"e937393e",5254:"048f2071",5258:"b3cf8030",5295:"6c107f9c",5344:"3f77d5dd",5352:"e1033bcf",5371:"0ccd57bd",5400:"fe4bdc39",5412:"49895922",5471:"fe39dc27",5510:"701c4fe3",5630:"4e45a456",5646:"80d721c4",5682:"47e52f04",5888:"e26d6da7",5896:"4c9fc451",5935:"db3d9851",5944:"2112bdb5",5986:"e4546dbf",6087:"480e9e11",6269:"40b0b566",6289:"f29fd90b",6328:"6ce7ae85",6451:"fa6f3191",6484:"73e2f834",6509:"e1d6864b",6518:"38f4fb8f",6605:"34955461",6631:"7d04deaa",6691:"8f95171c",6694:"44fbb06d",6697:"76b87cd3",6716:"447d404d",6748:"12d9a147",6753:"1e8d4bbe",6783:"462de350",6829:"525366d0",6894:"5a768f7b",6898:"4d7b1c45",6907:"866aee65",6975:"9d887fb8",7007:"c1613f2d",7028:"5a8f1d95",7045:"4c401298",7080:"51b2ce18",7136:"8637181c",7155:"6ef5e455",7157:"5e835147",7224:"f77cb91b",7265:"b285cba8",7319:"f324ac43",7414:"bea833d2",7443:"0699d432",7482:"092ddd3b",7486:"566befd3",7527:"dc7f1c07",7611:"a05c4618",7655:"382e4c9e",7701:"609080d7",7741:"c392d872",7766:"fa657859",7790:"b1ac5120",7793:"12894d0e",7817:"a96e3596",7840:"8418eed2",7849:"847d535a",7866:"e8fb0331",7870:"3443eb61",7888:"4739547a",7918:"041e7958",7945:"72aa987d",8011:"ac76c698",8016:"e3104ac6",8087:"a9889805",8208:"bb5195ce",8227:"723e8354",8268:"9650e815",8342:"87e09165",8370:"7cda39ee",8423:"3f130c98",8544:"ea089d07",8568:"ca384ada",8574:"93b364bc",8607:"fbc69141",8610:"c2f9a4e1",8715:"83a02b6c",8731:"8a873059",8959:"4c764fc1",8992:"ab615c3d",9036:"e22c4e36",9056:"8f3c5ed5",9091:"c64d26e9",9156:"20d45c63",9161:"cf4e77f6",9174:"a5a4f187",9185:"71d24949",9199:"93027639",9216:"e8f0d1ad",9254:"28458d20",9255:"878847e3",9286:"59096cb1",9333:"ede7fad3",9514:"e90a379a",9559:"af791dd2",9573:"e6caae34",9712:"517d979d",9740:"7889a7f5",9782:"33c2f585",9817:"4faedf91",9852:"5bd4fdf1",9855:"f4c562a9",9903:"84d91c65",9909:"850412c9"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),c={},b="docs:",r.l=(e,a,f,d)=>{if(c[e])c[e].push(a);else{var t,o;if(void 0!==f)for(var n=document.getElementsByTagName("script"),i=0;i{t.onerror=t.onload=null,clearTimeout(s);var b=c[e];if(delete c[e],t.parentNode&&t.parentNode.removeChild(t),b&&b.forEach((e=>e(f))),a)return a(f)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/",r.gca=function(e){return e={12706266:"1137",17896441:"7918",36739131:"5888",55620597:"8342",66076425:"3168",79891879:"1260","935f2afb":"53","61e43ac9":"81","3f3bfce2":"228","5037eb2b":"246",f57a1375:"330","72ec880a":"420",ab699365:"428",d2674f84:"669",dd15e14a:"681","8153e280":"711","4775ecc5":"798","851bf865":"827","6efc9e6d":"844","710ae1bb":"847","1b1339dc":"866","4ad6f564":"932","9bb63452":"974","8a9337ba":"1113","147d0e4e":"1166","87dfbf5d":"1171","4eef9a57":"1172",a0393694:"1248","199f22fd":"1263","2fdf8aec":"1328","24510ea8":"1340",ff9f076d:"1399","764c3c46":"1484","70e1f15f":"1592","4bf323b4":"1601",bbc3785e:"1690",ecdd1e85:"1696",bf6e295d:"1697","2bbc5cd2":"1710","5185999b":"1714",daff3ff4:"1718",ac1890eb:"1719",a1844ead:"1778",b2e52e63:"1938","3d4047db":"1946",db2ee795:"1950","7764509b":"1996",e43c4cd3:"2034",bf608a00:"2052","4c0f205c":"2217","16e43f8e":"2282",ceaeeb36:"2323","441b3d3d":"2488","07f0fc78":"2491","840f9766":"2502","8d60aa1f":"2614",e9cd6030:"2665","9280a2e5":"2814","66dc3ce4":"2849","5fe1ab02":"2926","2d63ea61":"2971","11838df3":"3042",b3ae0c51:"3079","1f391b9e":"3085","8baedca9":"3252","1b311f41":"3355","27ab3fd0":"3382",f63a5cf4:"3446","16aa5868":"3559","638e4778":"3561","7bfcff53":"3592","42c0b8d9":"3594",dbbf52bd:"3610","0666b85a":"3633",fe294169:"3651",c204078c:"3723","1872c6b8":"3747","07620fdf":"3812",d8579283:"3826","5b112661":"3849",a18b1795:"3890",c9e924cb:"3930",bd14bfe1:"4060",f3b8755c:"4082",b17a2c3b:"4099",f2faff8f:"4106","41637b9f":"4189",c4f5d8e4:"4195","89af9b08":"4230",e2b19375:"4338",bb9d9339:"4398","9e3de0ed":"4435","45e94216":"4439",d781e8a6:"4552","77c64564":"4560","4417e8c8":"4708","2c3d8110":"4732","3c967327":"4856",cfbe1bc9:"4859",f821c4a8:"4860",fb57a917:"4875","57fb9911":"4889",e0b1087e:"4898",cc5722e1:"4923","56f0859a":"5050","31a1e1b3":"5073","300a963c":"5254","76b1eb51":"5258","0126df03":"5295",c65c1395:"5344","44c96576":"5352",eeb513bd:"5371","2ab0cde1":"5400",fe684f20:"5412",e8aebf52:"5471",e2f82150:"5510","65c808a4":"5630",a3bcfc8d:"5646",f43cc2fc:"5682","93c272fe":"5896","7746a795":"5935",d0a652bb:"5944","310207c7":"5986",f5288705:"6087","145b7035":"6269","193cb586":"6289","410469d2":"6328","8b5bd275":"6451","244870c6":"6484",e49ee1a9:"6509","6aade8bf":"6518","21e44e7e":"6605","2bc40b18":"6631","7d24ac82":"6691",aa1914e6:"6694",be94c4be:"6697","02486155":"6716","5eea7269":"6748",cc668907:"6753","9de09737":"6783",b684cce9:"6829","0607e0c5":"6894","2f55ba46":"6898",d409b53d:"6907","32b86e0c":"6975",fbab86a0:"7007","9d5784d1":"7028","66545c3d":"7045","4d54d076":"7080",c47075b4:"7136","4a0589af":"7155","0c928027":"7157","941e9194":"7224","009f927a":"7265","393be207":"7414",ae218501:"7443","378b5e98":"7482","6638f55a":"7486",c31d0f42:"7527","0945e04b":"7611","7e96883b":"7655",ee388bf8:"7701","16c17b5d":"7741","2159a0a5":"7766","0946372c":"7790","41e024b6":"7793","9ffe0250":"7817",c1456968:"7840","777b0dfa":"7849",b434a052:"7866","14d826f7":"7870","1821a3cc":"7945","05f2d199":"8011","9327017b":"8016","1735c347":"8087",c325c1c7:"8208","32bd85cf":"8227","145f3c45":"8268",c1d281e2:"8370",d39a7100:"8423",d5f21d1f:"8544",fe068327:"8568","70d0ac84":"8574",fa629964:"8607","08912224":"8610","9c964f59":"8715","8a7bb9f4":"8731",b4914bc5:"8959","3247e900":"8992",bd1424fb:"9036",a90ecf70:"9056","17dede69":"9091","5c6aa1cd":"9156","4b0f8212":"9161","05fd4dd8":"9174",e98eede6:"9185","59ac5e04":"9199",cc71d488:"9216","8dbf302e":"9254","6fa4dae1":"9255",a22626c5:"9286",f3ebdb21:"9333","1be78505":"9514","9c94cf05":"9559",aef11b3c:"9573","749f8745":"9712",c505f0d9:"9740",c31aa05f:"9782","14eb3368":"9817",c4bb8d44:"9852",d54033d7:"9855","93a4d248":"9903",c8c61268:"9909"}[e]||e,r.p+r.u(e)},(()=>{var e={1303:0,532:0};r.f.j=(a,f)=>{var c=r.o(e,a)?e[a]:void 0;if(0!==c)if(c)f.push(c[2]);else if(/^(1303|532)$/.test(a))e[a]=0;else{var b=new Promise(((f,b)=>c=e[a]=[f,b]));f.push(c[2]=b);var d=r.p+r.u(a),t=new Error;r.l(d,(f=>{if(r.o(e,a)&&(0!==(c=e[a])&&(e[a]=void 0),c)){var b=f&&("load"===f.type?"missing":f.type),d=f&&f.target&&f.target.src;t.message="Loading chunk "+a+" failed.\n("+b+": "+d+")",t.name="ChunkLoadError",t.type=b,t.request=d,c[1](t)}}),"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,f)=>{var c,b,d=f[0],t=f[1],o=f[2],n=0;if(d.some((a=>0!==e[a]))){for(c in t)r.o(t,c)&&(r.m[c]=t[c]);if(o)var i=o(r)}for(a&&a(f);n include | Archethic - +
-

include

Directs the executor to include this field or fragment only when the if argument is true.

directive @include(
if: Boolean!
) on
| FIELD
| FRAGMENT_SPREAD
| INLINE_FRAGMENT

Arguments

include.if ● Boolean! non-null scalar

Included when true.

- +

include

Directs the executor to include this field or fragment only when the if argument is true.

directive @include(
if: Boolean!
) on
| FIELD
| FRAGMENT_SPREAD
| INLINE_FRAGMENT

Arguments

include.if ● Boolean! non-null scalar

Included when true.

+ \ No newline at end of file diff --git a/build/api/schema/directives/skip/index.html b/build/api/schema/directives/skip/index.html index 4f774c645..7bfa4d091 100644 --- a/build/api/schema/directives/skip/index.html +++ b/build/api/schema/directives/skip/index.html @@ -4,13 +4,13 @@ skip | Archethic - +
-

skip

Directs the executor to skip this field or fragment when the if argument is true.

directive @skip(
if: Boolean!
) on
| FIELD
| FRAGMENT_SPREAD
| INLINE_FRAGMENT

Arguments

skip.if ● Boolean! non-null scalar

Skipped when true.

- +

skip

Directs the executor to skip this field or fragment when the if argument is true.

directive @skip(
if: Boolean!
) on
| FIELD
| FRAGMENT_SPREAD
| INLINE_FRAGMENT

Arguments

skip.if ● Boolean! non-null scalar

Skipped when true.

+ \ No newline at end of file diff --git a/build/api/schema/enums/error-context/index.html b/build/api/schema/enums/error-context/index.html index 9a2881a3a..9e8c40957 100644 --- a/build/api/schema/enums/error-context/index.html +++ b/build/api/schema/enums/error-context/index.html @@ -4,13 +4,13 @@ ErrorContext | Archethic - + - + + \ No newline at end of file diff --git a/build/api/schema/enums/sort-order/index.html b/build/api/schema/enums/sort-order/index.html index 461fb9cad..91782565f 100644 --- a/build/api/schema/enums/sort-order/index.html +++ b/build/api/schema/enums/sort-order/index.html @@ -4,14 +4,14 @@ SortOrder | Archethic - + - +possible values are ASC or DESC

enum SortOrder {
ASC
DESC
}

Values

SortOrder.ASC

Ascending order

SortOrder.DESC

Descending order

Member of

transactionChain query

+ \ No newline at end of file diff --git a/build/api/schema/objects/authorized-key/index.html b/build/api/schema/objects/authorized-key/index.html index 18c4ed9ed..397ba9562 100644 --- a/build/api/schema/objects/authorized-key/index.html +++ b/build/api/schema/objects/authorized-key/index.html @@ -4,14 +4,14 @@ AuthorizedKey | Archethic - + - +By decrypting this secret key, the authorized public key will be able to decrypt its related secret

type AuthorizedKey {
encryptedSecretKey: Hex
publicKey: PublicKey
}

Fields

AuthorizedKey.encryptedSecretKey ● Hex scalar

AuthorizedKey.publicKey ● PublicKey scalar

Member of

Ownership object

+ \ No newline at end of file diff --git a/build/api/schema/objects/balance/index.html b/build/api/schema/objects/balance/index.html index 19a836f96..5b2ba2f85 100644 --- a/build/api/schema/objects/balance/index.html +++ b/build/api/schema/objects/balance/index.html @@ -4,14 +4,14 @@ Balance | Archethic - + - +It includes:

  • UCO: uco balance
  • token: token balances
type Balance {
token: [TokenBalance]
uco: Int
}

Fields

Balance.token ● [TokenBalance] list object

Balance.uco ● Int scalar

Returned by

balance query

Member of

Transaction object

+ \ No newline at end of file diff --git a/build/api/schema/objects/beacon-chain-summary/index.html b/build/api/schema/objects/beacon-chain-summary/index.html index f33694905..f6d8c862c 100644 --- a/build/api/schema/objects/beacon-chain-summary/index.html +++ b/build/api/schema/objects/beacon-chain-summary/index.html @@ -4,13 +4,13 @@ BeaconChainSummary | Archethic - +
-

BeaconChainSummary

[Beacon Chain Summary] represents the beacon chain aggregate for a certain date

type BeaconChainSummary {
availabilityAddingTime: Int
p2pAvailabilities: P2pAvailabilities
summaryTime: Timestamp
transactionSummaries(
limit: PosInteger
pagingOffset: NonNegInteger
): [TransactionSummary]
version: Int
}

Fields

BeaconChainSummary.availabilityAddingTime ● Int scalar

BeaconChainSummary.p2pAvailabilities ● P2pAvailabilities scalar

BeaconChainSummary.summaryTime ● Timestamp scalar

BeaconChainSummary.transactionSummaries ● [TransactionSummary] list object

BeaconChainSummary.transactionSummaries.limit ● PosInteger scalar
BeaconChainSummary.transactionSummaries.pagingOffset ● NonNegInteger scalar

BeaconChainSummary.version ● Int scalar

Returned by

beaconChainSummary query

- +

BeaconChainSummary

[Beacon Chain Summary] represents the beacon chain aggregate for a certain date

type BeaconChainSummary {
availabilityAddingTime: Int
p2pAvailabilities: P2pAvailabilities
summaryTime: Timestamp
transactionSummaries(
limit: PosInteger
pagingOffset: NonNegInteger
): [TransactionSummary]
version: Int
}

Fields

BeaconChainSummary.availabilityAddingTime ● Int scalar

BeaconChainSummary.p2pAvailabilities ● P2pAvailabilities scalar

BeaconChainSummary.summaryTime ● Timestamp scalar

BeaconChainSummary.transactionSummaries ● [TransactionSummary] list object

BeaconChainSummary.transactionSummaries.limit ● PosInteger scalar
BeaconChainSummary.transactionSummaries.pagingOffset ● NonNegInteger scalar

BeaconChainSummary.version ● Int scalar

Returned by

beaconChainSummary query

+ \ No newline at end of file diff --git a/build/api/schema/objects/consumed-inputs/index.html b/build/api/schema/objects/consumed-inputs/index.html index ee567ebe2..34cca6fad 100644 --- a/build/api/schema/objects/consumed-inputs/index.html +++ b/build/api/schema/objects/consumed-inputs/index.html @@ -4,14 +4,14 @@ ConsumedInputs | Archethic - +

ConsumedInputs

[ConsumedInputs] represents the inputs consumed by the transaction -It includes:

  • From: transaction which send the amount of assets
  • Amount: asset amount
  • Type: UCO / token / state / call
  • token address: address of the token if the type is token
  • token id: It is the id for a token which is allocated when the token is minted.
  • Timestamp: Date time when the UTXO created/manipulated
  • Protocol Version: Version of the UTXO data structure
  • State: It is the state of a smart contract
type ConsumedInputs {
amount: Int
from: Address
protocolVersion: Int
state: State
timestamp: Timestamp
tokenAddress: Address
tokenId: Int
type: String
}

Fields

ConsumedInputs.amount ● Int scalar

ConsumedInputs.from ● Address scalar

ConsumedInputs.protocolVersion ● Int scalar

ConsumedInputs.state ● State scalar

ConsumedInputs.timestamp ● Timestamp scalar

ConsumedInputs.tokenAddress ● Address scalar

ConsumedInputs.tokenId ● Int scalar

ConsumedInputs.type ● String scalar

Member of

LedgerOperations object

- +It includes:

  • From: transaction which send the amount of assets
  • Amount: asset amount
  • Type: UCO / token / state / call
  • token address: address of the token if the type is token
  • token id: It is the id for a token which is allocated when the token is minted.
  • Timestamp: Date time when the UTXO created/manipulated
  • Protocol Version: Version of the UTXO data structure
  • State: It is the state of a smart contract
type ConsumedInputs {
amount: Int
from: Address
protocolVersion: Int
state: State
timestamp: Timestamp
tokenAddress: Address
tokenId: Int
type: String
}

Fields

ConsumedInputs.amount ● Int scalar

ConsumedInputs.from ● Address scalar

ConsumedInputs.protocolVersion ● Int scalar

ConsumedInputs.state ● State scalar

ConsumedInputs.timestamp ● Timestamp scalar

ConsumedInputs.tokenAddress ● Address scalar

ConsumedInputs.tokenId ● Int scalar

ConsumedInputs.type ● String scalar

Member of

LedgerOperations object

+ \ No newline at end of file diff --git a/build/api/schema/objects/cross-validation-stamp/index.html b/build/api/schema/objects/cross-validation-stamp/index.html index 6fef9fd15..5376e639e 100644 --- a/build/api/schema/objects/cross-validation-stamp/index.html +++ b/build/api/schema/objects/cross-validation-stamp/index.html @@ -4,14 +4,14 @@ CrossValidationStamp | Archethic - + - +It includes:

  • Signature: signature of the validation stamp
  • Node public key: cross validation node's public key
type CrossValidationStamp {
nodePublicKey: PublicKey
signature: Hex
}

Fields

CrossValidationStamp.nodePublicKey ● PublicKey scalar

CrossValidationStamp.signature ● Hex scalar

Member of

Transaction object

+ \ No newline at end of file diff --git a/build/api/schema/objects/data/index.html b/build/api/schema/objects/data/index.html index 03bc35605..a281eecd7 100644 --- a/build/api/schema/objects/data/index.html +++ b/build/api/schema/objects/data/index.html @@ -4,14 +4,14 @@ Data | Archethic - +

Data

[TransactionData] represents the data section for every transaction. -It includes:

  • Ledger: asset transfers
  • Code: smart contract code (hexadecimal),
  • Content: free zone for data hosting (string or hexadecimal)
  • Ownership: authorization/delegations containing list of secrets and their authorized public keys to proof the ownership
  • Recipients: For non asset transfers, the list of recipients of the transaction (e.g Smart contract interactions)
type Data {
actionRecipients: [Recipient]
code: String
content: Content
ledger: Ledger
ownerships: [Ownership]
recipients: [Address]
}

Fields

Data.actionRecipients ● [Recipient] list object

Data.code ● String scalar

Data.content ● Content scalar

Data.ledger ● Ledger object

Data.ownerships ● [Ownership] list object

Data.recipients ● [Address] list scalar

Member of

Transaction object

- +It includes:

  • Ledger: asset transfers
  • Code: smart contract code (hexadecimal),
  • Content: free zone for data hosting (string or hexadecimal)
  • Ownership: authorization/delegations containing list of secrets and their authorized public keys to proof the ownership
  • Recipients: For non asset transfers, the list of recipients of the transaction (e.g Smart contract interactions)
type Data {
actionRecipients: [Recipient]
code: String
content: Content
ledger: Ledger
ownerships: [Ownership]
recipients: [Address]
}

Fields

Data.actionRecipients ● [Recipient] list object

Data.code ● String scalar

Data.content ● Content scalar

Data.ledger ● Ledger object

Data.ownerships ● [Ownership] list object

Data.recipients ● [Address] list scalar

Member of

Transaction object

+ \ No newline at end of file diff --git a/build/api/schema/objects/endpoint/index.html b/build/api/schema/objects/endpoint/index.html index 820ca7fd0..ec074cb1b 100644 --- a/build/api/schema/objects/endpoint/index.html +++ b/build/api/schema/objects/endpoint/index.html @@ -4,13 +4,13 @@ Endpoint | Archethic - + - + + \ No newline at end of file diff --git a/build/api/schema/objects/error-details/index.html b/build/api/schema/objects/error-details/index.html index 05dce2999..ff1cfd696 100644 --- a/build/api/schema/objects/error-details/index.html +++ b/build/api/schema/objects/error-details/index.html @@ -4,13 +4,13 @@ ErrorDetails | Archethic - + - + + \ No newline at end of file diff --git a/build/api/schema/objects/ledger-operations/index.html b/build/api/schema/objects/ledger-operations/index.html index b7b6937e4..ad5a87c64 100644 --- a/build/api/schema/objects/ledger-operations/index.html +++ b/build/api/schema/objects/ledger-operations/index.html @@ -4,14 +4,14 @@ LedgerOperations | Archethic - +
- +It includes:

  • Transaction movements: assets transfers
  • Unspent outputs: remaining unspent outputs
  • Fee: transaction fee
type LedgerOperations {
consumedInputs: [ConsumedInputs]
fee: Int
transactionMovements: [TransactionMovement]
unspentOutputs: [UnspentOutput]
}

Fields

LedgerOperations.consumedInputs ● [ConsumedInputs] list object

LedgerOperations.fee ● Int scalar

LedgerOperations.transactionMovements ● [TransactionMovement] list object

LedgerOperations.unspentOutputs ● [UnspentOutput] list object

Member of

ValidationStamp object

+ \ No newline at end of file diff --git a/build/api/schema/objects/ledger/index.html b/build/api/schema/objects/ledger/index.html index ce385604a..14244ebc6 100644 --- a/build/api/schema/objects/ledger/index.html +++ b/build/api/schema/objects/ledger/index.html @@ -4,13 +4,13 @@ Ledger | Archethic - + - + + \ No newline at end of file diff --git a/build/api/schema/objects/node/index.html b/build/api/schema/objects/node/index.html index af63d25bd..d326a041b 100644 --- a/build/api/schema/objects/node/index.html +++ b/build/api/schema/objects/node/index.html @@ -4,13 +4,13 @@ Node | Archethic - +
-

Node

[Node] represents a node in the network

type Node {
authorizationDate: Timestamp
authorized: Boolean
available: Boolean
averageAvailability: Float
enrollmentDate: Timestamp
firstPublicKey: PublicKey
geoPatch: String
ip: String
lastPublicKey: PublicKey
networkPatch: String
originPublicKey: PublicKey
port: Int
rewardAddress: Address
}

Fields

Node.authorizationDate ● Timestamp scalar

Node.authorized ● Boolean scalar

Node.available ● Boolean scalar

Node.averageAvailability ● Float scalar

Node.enrollmentDate ● Timestamp scalar

Node.firstPublicKey ● PublicKey scalar

Node.geoPatch ● String scalar

Node.ip ● String scalar

Node.lastPublicKey ● PublicKey scalar

Node.networkPatch ● String scalar

Node.originPublicKey ● PublicKey scalar

Node.port ● Int scalar

Node.rewardAddress ● Address scalar

Returned by

nodes query

- +

Node

[Node] represents a node in the network

type Node {
authorizationDate: Timestamp
authorized: Boolean
available: Boolean
averageAvailability: Float
enrollmentDate: Timestamp
firstPublicKey: PublicKey
geoPatch: String
ip: String
lastPublicKey: PublicKey
networkPatch: String
originPublicKey: PublicKey
port: Int
rewardAddress: Address
}

Fields

Node.authorizationDate ● Timestamp scalar

Node.authorized ● Boolean scalar

Node.available ● Boolean scalar

Node.averageAvailability ● Float scalar

Node.enrollmentDate ● Timestamp scalar

Node.firstPublicKey ● PublicKey scalar

Node.geoPatch ● String scalar

Node.ip ● String scalar

Node.lastPublicKey ● PublicKey scalar

Node.networkPatch ● String scalar

Node.originPublicKey ● PublicKey scalar

Node.port ● Int scalar

Node.rewardAddress ● Address scalar

Returned by

nodes query

+ \ No newline at end of file diff --git a/build/api/schema/objects/oracle-data/index.html b/build/api/schema/objects/oracle-data/index.html index a360b41d2..5e5100f07 100644 --- a/build/api/schema/objects/oracle-data/index.html +++ b/build/api/schema/objects/oracle-data/index.html @@ -4,13 +4,13 @@ OracleData | Archethic - + - + + \ No newline at end of file diff --git a/build/api/schema/objects/oracle-services/index.html b/build/api/schema/objects/oracle-services/index.html index 29dabe14a..a8bb66756 100644 --- a/build/api/schema/objects/oracle-services/index.html +++ b/build/api/schema/objects/oracle-services/index.html @@ -4,13 +4,13 @@ OracleServices | Archethic - + - + + \ No newline at end of file diff --git a/build/api/schema/objects/ownership/index.html b/build/api/schema/objects/ownership/index.html index bb82e3712..da9c32131 100644 --- a/build/api/schema/objects/ownership/index.html +++ b/build/api/schema/objects/ownership/index.html @@ -4,13 +4,13 @@ Ownership | Archethic - + - + + \ No newline at end of file diff --git a/build/api/schema/objects/recipient/index.html b/build/api/schema/objects/recipient/index.html index f3434a7ac..66b79a117 100644 --- a/build/api/schema/objects/recipient/index.html +++ b/build/api/schema/objects/recipient/index.html @@ -4,13 +4,13 @@ Recipient | Archethic - + - + + \ No newline at end of file diff --git a/build/api/schema/objects/shared-secrets/index.html b/build/api/schema/objects/shared-secrets/index.html index 45a608250..63877ff2d 100644 --- a/build/api/schema/objects/shared-secrets/index.html +++ b/build/api/schema/objects/shared-secrets/index.html @@ -4,14 +4,14 @@ SharedSecrets | Archethic - + - +It includes:

  • The storage nonce public key: Public Key to encrypt data for the node, so they will be able to decrypt it (mostly for smart contract authorized key)
type SharedSecrets {
storageNoncePublicKey: PublicKey
}

Fields

SharedSecrets.storageNoncePublicKey ● PublicKey scalar

Returned by

sharedSecrets query

+ \ No newline at end of file diff --git a/build/api/schema/objects/token-balance/index.html b/build/api/schema/objects/token-balance/index.html index 3018898d1..c22cfb362 100644 --- a/build/api/schema/objects/token-balance/index.html +++ b/build/api/schema/objects/token-balance/index.html @@ -4,14 +4,14 @@ TokenBalance | Archethic - + - +It includes:

  • Token: address of the token
  • Amount: amount of token
  • Token ID: ID of the token
type TokenBalance {
address: Address
amount: Int
tokenId: Int
}

Fields

TokenBalance.address ● Address scalar

TokenBalance.amount ● Int scalar

TokenBalance.tokenId ● Int scalar

Member of

Balance object

+ \ No newline at end of file diff --git a/build/api/schema/objects/token-ledger/index.html b/build/api/schema/objects/token-ledger/index.html index 9089c4379..bc17bff1c 100644 --- a/build/api/schema/objects/token-ledger/index.html +++ b/build/api/schema/objects/token-ledger/index.html @@ -4,13 +4,13 @@ TokenLedger | Archethic - + - + + \ No newline at end of file diff --git a/build/api/schema/objects/token-transfer/index.html b/build/api/schema/objects/token-transfer/index.html index 0db99ec05..36cd5aa2a 100644 --- a/build/api/schema/objects/token-transfer/index.html +++ b/build/api/schema/objects/token-transfer/index.html @@ -4,13 +4,13 @@ TokenTransfer | Archethic - + - + + \ No newline at end of file diff --git a/build/api/schema/objects/token/index.html b/build/api/schema/objects/token/index.html index fe3468c08..855cdc90b 100644 --- a/build/api/schema/objects/token/index.html +++ b/build/api/schema/objects/token/index.html @@ -4,14 +4,14 @@ Token | Archethic - +

Token

[token] represents a token metadata. -It includes:

  • genesis: Genesis address to the token
  • name: Name of the token
  • symbol: Symbol of the token
  • supply: Supply of the token
  • type: Type of the token
  • decimals: Number of decimals of the token
  • properties: Properties of the token (if any)
  • collection: List of properties for a collection (if any)
  • ownerships: authorization/delegations containing list of secrets and their authorized public keys to proof the ownership
  • id: Unique identification of the token on the chain
type Token {
collection: [TokenProperties]
decimals: Int
genesis: Address
id: String
name: String
ownerships: [Ownership]
properties: TokenProperties
supply: Int
symbol: String
type: String
}

Fields

Token.collection ● [TokenProperties] list scalar

Token.decimals ● Int scalar

Token.genesis ● Address scalar

Token.id ● String scalar

Token.name ● String scalar

Token.ownerships ● [Ownership] list object

Token.properties ● TokenProperties scalar

Token.supply ● Int scalar

Token.symbol ● String scalar

Token.type ● String scalar

Returned by

token query

- +It includes:

  • genesis: Genesis address to the token
  • name: Name of the token
  • symbol: Symbol of the token
  • supply: Supply of the token
  • type: Type of the token
  • decimals: Number of decimals of the token
  • properties: Properties of the token (if any)
  • collection: List of properties for a collection (if any)
  • ownerships: authorization/delegations containing list of secrets and their authorized public keys to proof the ownership
  • id: Unique identification of the token on the chain
type Token {
collection: [TokenProperties]
decimals: Int
genesis: Address
id: String
name: String
ownerships: [Ownership]
properties: TokenProperties
supply: Int
symbol: String
type: String
}

Fields

Token.collection ● [TokenProperties] list scalar

Token.decimals ● Int scalar

Token.genesis ● Address scalar

Token.id ● String scalar

Token.name ● String scalar

Token.ownerships ● [Ownership] list object

Token.properties ● TokenProperties scalar

Token.supply ● Int scalar

Token.symbol ● String scalar

Token.type ● String scalar

Returned by

token query

+ \ No newline at end of file diff --git a/build/api/schema/objects/transaction-attestation/index.html b/build/api/schema/objects/transaction-attestation/index.html index c878364af..c3934a9f6 100644 --- a/build/api/schema/objects/transaction-attestation/index.html +++ b/build/api/schema/objects/transaction-attestation/index.html @@ -4,14 +4,14 @@ TransactionAttestation | Archethic - + - +Few attestations can be received with differents confirmations to ensure a better security of the replication.

type TransactionAttestation {
address: Address
maxConfirmations: Int
nbConfirmations: Int
}

Fields

TransactionAttestation.address ● Address scalar

TransactionAttestation.maxConfirmations ● Int scalar

TransactionAttestation.nbConfirmations ● Int scalar

Returned by

transactionConfirmed subscription

+ \ No newline at end of file diff --git a/build/api/schema/objects/transaction-error/index.html b/build/api/schema/objects/transaction-error/index.html index ec4a3207a..2974db399 100644 --- a/build/api/schema/objects/transaction-error/index.html +++ b/build/api/schema/objects/transaction-error/index.html @@ -4,13 +4,13 @@ TransactionError | Archethic - + - + + \ No newline at end of file diff --git a/build/api/schema/objects/transaction-input/index.html b/build/api/schema/objects/transaction-input/index.html index 88ec4d3f5..778c1c8ad 100644 --- a/build/api/schema/objects/transaction-input/index.html +++ b/build/api/schema/objects/transaction-input/index.html @@ -4,14 +4,14 @@ TransactionInput | Archethic - +

TransactionInput

[TransactionInput] represents the inputs from the transaction -It includes:

  • From: transaction which send the amount of assets
  • Amount: asset amount
  • Type: UCO/token/Call
  • token address: address of the token if the type is token
  • Spent: determines if the input has been spent
  • Timestamp: Date time when the inputs was generated
  • token id: It is the id for a token which is allocated when the token is minted.
type TransactionInput {
amount: Int
from: Address
spent: Boolean
timestamp: Timestamp
tokenAddress: Address
tokenId: Int
type: String
}

Fields

TransactionInput.amount ● Int scalar

TransactionInput.from ● Address scalar

TransactionInput.spent ● Boolean scalar

TransactionInput.timestamp ● Timestamp scalar

TransactionInput.tokenAddress ● Address scalar

TransactionInput.tokenId ● Int scalar

TransactionInput.type ● String scalar

Returned by

transactionInputs query

Member of

Transaction object

- +It includes:

  • From: transaction which send the amount of assets
  • Amount: asset amount
  • Type: UCO/token/Call
  • token address: address of the token if the type is token
  • Spent: determines if the input has been spent
  • Timestamp: Date time when the inputs was generated
  • token id: It is the id for a token which is allocated when the token is minted.
type TransactionInput {
amount: Int
from: Address
spent: Boolean
timestamp: Timestamp
tokenAddress: Address
tokenId: Int
type: String
}

Fields

TransactionInput.amount ● Int scalar

TransactionInput.from ● Address scalar

TransactionInput.spent ● Boolean scalar

TransactionInput.timestamp ● Timestamp scalar

TransactionInput.tokenAddress ● Address scalar

TransactionInput.tokenId ● Int scalar

TransactionInput.type ● String scalar

Returned by

transactionInputs query

Member of

Transaction object

+ \ No newline at end of file diff --git a/build/api/schema/objects/transaction-movement/index.html b/build/api/schema/objects/transaction-movement/index.html index c2a3ee3f8..dd2f800b9 100644 --- a/build/api/schema/objects/transaction-movement/index.html +++ b/build/api/schema/objects/transaction-movement/index.html @@ -4,14 +4,14 @@ TransactionMovement | Archethic - +

TransactionMovement

[TransactionMovement] represents ledger transaction movement -It includes:

  • TO: asset transfer recipient
  • Amount: asset amount
  • Type: UCO/token
  • token address: address of the token if the type is token
  • token id: It is the id for a token which is allocated when the token is minted.
type TransactionMovement {
amount: Int
to: Address
tokenAddress: Address
tokenId: Int
type: String
}

Fields

TransactionMovement.amount ● Int scalar

TransactionMovement.to ● Address scalar

TransactionMovement.tokenAddress ● Address scalar

TransactionMovement.tokenId ● Int scalar

TransactionMovement.type ● String scalar

Member of

LedgerOperations object

- +It includes:

  • TO: asset transfer recipient
  • Amount: asset amount
  • Type: UCO/token
  • token address: address of the token if the type is token
  • token id: It is the id for a token which is allocated when the token is minted.
type TransactionMovement {
amount: Int
to: Address
tokenAddress: Address
tokenId: Int
type: String
}

Fields

TransactionMovement.amount ● Int scalar

TransactionMovement.to ● Address scalar

TransactionMovement.tokenAddress ● Address scalar

TransactionMovement.tokenId ● Int scalar

TransactionMovement.type ● String scalar

Member of

LedgerOperations object

+ \ No newline at end of file diff --git a/build/api/schema/objects/transaction-summary/index.html b/build/api/schema/objects/transaction-summary/index.html index 1c8c6aa47..4ad8e708c 100644 --- a/build/api/schema/objects/transaction-summary/index.html +++ b/build/api/schema/objects/transaction-summary/index.html @@ -4,13 +4,13 @@ TransactionSummary | Archethic - +
-
- + + \ No newline at end of file diff --git a/build/api/schema/objects/transaction/index.html b/build/api/schema/objects/transaction/index.html index e7d36c149..de44e637d 100644 --- a/build/api/schema/objects/transaction/index.html +++ b/build/api/schema/objects/transaction/index.html @@ -4,13 +4,13 @@ Transaction | Archethic - +
-

Transaction

[Transaction] represents a unitary transaction in the Archethic network.

type Transaction {
address: Address
balance: Balance
chainLength: Int
crossValidationStamps: [CrossValidationStamp]
data: Data
inputs(
limit: PosInteger
pagingOffset: NonNegInteger
): [TransactionInput]
originSignature: Hex
previousAddress: Address
previousPublicKey: PublicKey
previousSignature: Hex
type: String
validationStamp: ValidationStamp
version: Int
}

Fields

Transaction.address ● Address scalar

Transaction.balance ● Balance object

Transaction.chainLength ● Int scalar

Transaction.crossValidationStamps ● [CrossValidationStamp] list object

Transaction.data ● Data object

Transaction.inputs ● [TransactionInput] list object

Transaction.inputs.limit ● PosInteger scalar
Transaction.inputs.pagingOffset ● NonNegInteger scalar

Transaction.originSignature ● Hex scalar

Transaction.previousAddress ● Address scalar

Transaction.previousPublicKey ● PublicKey scalar

Transaction.previousSignature ● Hex scalar

Transaction.type ● String scalar

Transaction.validationStamp ● ValidationStamp object

Transaction.version ● Int scalar

Returned by

lastTransaction query ● networkTransactions query ● transaction query ● transactionChain query ● transactions query

- +

Transaction

[Transaction] represents a unitary transaction in the Archethic network.

type Transaction {
address: Address
balance: Balance
chainLength: Int
crossValidationStamps: [CrossValidationStamp]
data: Data
inputs(
limit: PosInteger
pagingOffset: NonNegInteger
): [TransactionInput]
originSignature: Hex
previousAddress: Address
previousPublicKey: PublicKey
previousSignature: Hex
type: String
validationStamp: ValidationStamp
version: Int
}

Fields

Transaction.address ● Address scalar

Transaction.balance ● Balance object

Transaction.chainLength ● Int scalar

Transaction.crossValidationStamps ● [CrossValidationStamp] list object

Transaction.data ● Data object

Transaction.inputs ● [TransactionInput] list object

Transaction.inputs.limit ● PosInteger scalar
Transaction.inputs.pagingOffset ● NonNegInteger scalar

Transaction.originSignature ● Hex scalar

Transaction.previousAddress ● Address scalar

Transaction.previousPublicKey ● PublicKey scalar

Transaction.previousSignature ● Hex scalar

Transaction.type ● String scalar

Transaction.validationStamp ● ValidationStamp object

Transaction.version ● Int scalar

Returned by

lastTransaction query ● networkTransactions query ● transaction query ● transactionChain query ● transactions query

+ \ No newline at end of file diff --git a/build/api/schema/objects/uco-data/index.html b/build/api/schema/objects/uco-data/index.html index 44a6afab4..6137086c2 100644 --- a/build/api/schema/objects/uco-data/index.html +++ b/build/api/schema/objects/uco-data/index.html @@ -4,13 +4,13 @@ UcoData | Archethic - + - + + \ No newline at end of file diff --git a/build/api/schema/objects/uco-ledger/index.html b/build/api/schema/objects/uco-ledger/index.html index 113982d0c..4c026a5cc 100644 --- a/build/api/schema/objects/uco-ledger/index.html +++ b/build/api/schema/objects/uco-ledger/index.html @@ -4,13 +4,13 @@ UcoLedger | Archethic - + - + + \ No newline at end of file diff --git a/build/api/schema/objects/uco-transfer/index.html b/build/api/schema/objects/uco-transfer/index.html index 3ac746c3b..31f686407 100644 --- a/build/api/schema/objects/uco-transfer/index.html +++ b/build/api/schema/objects/uco-transfer/index.html @@ -4,13 +4,13 @@ UcoTransfer | Archethic - + - + + \ No newline at end of file diff --git a/build/api/schema/objects/unspent-output/index.html b/build/api/schema/objects/unspent-output/index.html index 8429389dd..2db9493cf 100644 --- a/build/api/schema/objects/unspent-output/index.html +++ b/build/api/schema/objects/unspent-output/index.html @@ -4,14 +4,14 @@ UnspentOutput | Archethic - +

UnspentOutput

[UnspentOutput] represents the remaining unspent output of the transaction. -It includes:

  • From: transaction which send the amount of assets
  • Amount: asset amount
  • Type: UCO / token / state
  • token address: address of the token if the type is token
  • token id: It is the id for a token which is allocated when the token is minted.
  • Timestamp: Date time when the UTXO created/manipulated
  • State: It is the state of a smart contract
type UnspentOutput {
amount: Int
from: Address
state: State
timestamp: Timestamp
tokenAddress: Address
tokenId: Int
type: String
}

Fields

UnspentOutput.amount ● Int scalar

UnspentOutput.from ● Address scalar

UnspentOutput.state ● State scalar

UnspentOutput.timestamp ● Timestamp scalar

UnspentOutput.tokenAddress ● Address scalar

UnspentOutput.tokenId ● Int scalar

UnspentOutput.type ● String scalar

Returned by

chainUnspentOutputs query

Member of

LedgerOperations object

- +It includes:

  • From: transaction which send the amount of assets
  • Amount: asset amount
  • Type: UCO / token / state
  • token address: address of the token if the type is token
  • token id: It is the id for a token which is allocated when the token is minted.
  • Timestamp: Date time when the UTXO created/manipulated
  • State: It is the state of a smart contract
type UnspentOutput {
amount: Int
from: Address
state: State
timestamp: Timestamp
tokenAddress: Address
tokenId: Int
type: String
}

Fields

UnspentOutput.amount ● Int scalar

UnspentOutput.from ● Address scalar

UnspentOutput.state ● State scalar

UnspentOutput.timestamp ● Timestamp scalar

UnspentOutput.tokenAddress ● Address scalar

UnspentOutput.tokenId ● Int scalar

UnspentOutput.type ● String scalar

Returned by

chainUnspentOutputs query

Member of

LedgerOperations object

+ \ No newline at end of file diff --git a/build/api/schema/objects/validation-stamp/index.html b/build/api/schema/objects/validation-stamp/index.html index 00b12df22..ccad65bad 100644 --- a/build/api/schema/objects/validation-stamp/index.html +++ b/build/api/schema/objects/validation-stamp/index.html @@ -4,14 +4,14 @@ ValidationStamp | Archethic - +

ValidationStamp

[ValidationStamp] represents the validation performs by the coordinator -It includes:

  • Proof of work: Public key matching the origin signature
  • Proof of integrity: Hash of the previous proof of integrity and the transaction
  • Ledger operations: All the operations performed by the transaction
  • Signature: Coordinator signature of the stamp
  • Protocol version: Version of the transaction validation protocol
type ValidationStamp {
ledgerOperations: LedgerOperations
proofOfIntegrity: VersionedHash
proofOfWork: PublicKey
protocolVersion: Int
signature: Hex
timestamp: Timestamp
}

Fields

ValidationStamp.ledgerOperations ● LedgerOperations object

ValidationStamp.proofOfIntegrity ● VersionedHash scalar

ValidationStamp.proofOfWork ● PublicKey scalar

ValidationStamp.protocolVersion ● Int scalar

ValidationStamp.signature ● Hex scalar

ValidationStamp.timestamp ● Timestamp scalar

Member of

Transaction object

- +It includes:

  • Proof of work: Public key matching the origin signature
  • Proof of integrity: Hash of the previous proof of integrity and the transaction
  • Ledger operations: All the operations performed by the transaction
  • Signature: Coordinator signature of the stamp
  • Protocol version: Version of the transaction validation protocol
type ValidationStamp {
ledgerOperations: LedgerOperations
proofOfIntegrity: VersionedHash
proofOfWork: PublicKey
protocolVersion: Int
signature: Hex
timestamp: Timestamp
}

Fields

ValidationStamp.ledgerOperations ● LedgerOperations object

ValidationStamp.proofOfIntegrity ● VersionedHash scalar

ValidationStamp.proofOfWork ● PublicKey scalar

ValidationStamp.protocolVersion ● Int scalar

ValidationStamp.signature ● Hex scalar

ValidationStamp.timestamp ● Timestamp scalar

Member of

Transaction object

+ \ No newline at end of file diff --git a/build/api/schema/objects/version/index.html b/build/api/schema/objects/version/index.html index 4111791e3..32bffaadd 100644 --- a/build/api/schema/objects/version/index.html +++ b/build/api/schema/objects/version/index.html @@ -4,13 +4,13 @@ Version | Archethic - + - + + \ No newline at end of file diff --git a/build/api/schema/queries/balance/index.html b/build/api/schema/queries/balance/index.html index 24e33c026..231c03562 100644 --- a/build/api/schema/queries/balance/index.html +++ b/build/api/schema/queries/balance/index.html @@ -4,14 +4,14 @@ balance | Archethic - + - +It includes:

  • UCO: uco balance
  • token: token balances
+ \ No newline at end of file diff --git a/build/api/schema/queries/beacon-chain-summary/index.html b/build/api/schema/queries/beacon-chain-summary/index.html index 153e2248d..1003a6558 100644 --- a/build/api/schema/queries/beacon-chain-summary/index.html +++ b/build/api/schema/queries/beacon-chain-summary/index.html @@ -4,13 +4,13 @@ beaconChainSummary | Archethic - +
-

beaconChainSummary

Query the network to get the value of the summary of beacon chain at a specific time or the last value

beaconChainSummary(
timestamp: Timestamp
): BeaconChainSummary

Arguments

beaconChainSummary.timestamp ● Timestamp scalar

Type

BeaconChainSummary object

[Beacon Chain Summary] represents the beacon chain aggregate for a certain date

- +

beaconChainSummary

Query the network to get the value of the summary of beacon chain at a specific time or the last value

beaconChainSummary(
timestamp: Timestamp
): BeaconChainSummary

Arguments

beaconChainSummary.timestamp ● Timestamp scalar

Type

BeaconChainSummary object

[Beacon Chain Summary] represents the beacon chain aggregate for a certain date

+ \ No newline at end of file diff --git a/build/api/schema/queries/chain-unspent-outputs/index.html b/build/api/schema/queries/chain-unspent-outputs/index.html index 2bf7ccc6a..4dd599c3c 100644 --- a/build/api/schema/queries/chain-unspent-outputs/index.html +++ b/build/api/schema/queries/chain-unspent-outputs/index.html @@ -4,15 +4,15 @@ chainUnspentOutputs | Archethic - +

chainUnspentOutputs

Query the network to retrieve the unspent output of a chain (address should be the genesis address of the chain)

chainUnspentOutputs(
address: Address!
limit: PosInteger
pagingOffset: Sha256Hash
): [UnspentOutput]

Arguments

chainUnspentOutputs.address ● Address! non-null scalar

chainUnspentOutputs.limit ● PosInteger scalar

chainUnspentOutputs.pagingOffset ● Sha256Hash scalar

Type

UnspentOutput object

[UnspentOutput] represents the remaining unspent output of the transaction. -It includes:

  • From: transaction which send the amount of assets
  • Amount: asset amount
  • Type: UCO / token / state
  • token address: address of the token if the type is token
  • token id: It is the id for a token which is allocated when the token is minted.
  • Timestamp: Date time when the UTXO created/manipulated
  • State: It is the state of a smart contract
- +It includes:

  • From: transaction which send the amount of assets
  • Amount: asset amount
  • Type: UCO / token / state
  • token address: address of the token if the type is token
  • token id: It is the id for a token which is allocated when the token is minted.
  • Timestamp: Date time when the UTXO created/manipulated
  • State: It is the state of a smart contract
+ \ No newline at end of file diff --git a/build/api/schema/queries/genesis-address/index.html b/build/api/schema/queries/genesis-address/index.html index a357eb99f..950de5ba1 100644 --- a/build/api/schema/queries/genesis-address/index.html +++ b/build/api/schema/queries/genesis-address/index.html @@ -4,15 +4,15 @@ genesisAddress | Archethic - +

genesisAddress

Query the network to find the genesis address of a transaction

genesisAddress(
address: Address!
): Address

Arguments

genesisAddress.address ● Address! non-null scalar

Type

Address scalar

The [Address] scalar type represents a transaction's address. The Address appears in a JSON response as Base16 formatted string. The parsed address will -be converted to a binary and any invalid address with an invalid algorithm or invalid size will be rejected

- +be converted to a binary and any invalid address with an invalid algorithm or invalid size will be rejected

+ \ No newline at end of file diff --git a/build/api/schema/queries/last-transaction/index.html b/build/api/schema/queries/last-transaction/index.html index 4a574886c..cb1b075a5 100644 --- a/build/api/schema/queries/last-transaction/index.html +++ b/build/api/schema/queries/last-transaction/index.html @@ -4,13 +4,13 @@ lastTransaction | Archethic - + - + + \ No newline at end of file diff --git a/build/api/schema/queries/nearest-endpoints/index.html b/build/api/schema/queries/nearest-endpoints/index.html index 9cda8e4d1..f26e2a793 100644 --- a/build/api/schema/queries/nearest-endpoints/index.html +++ b/build/api/schema/queries/nearest-endpoints/index.html @@ -4,13 +4,13 @@ nearestEndpoints | Archethic - + - + + \ No newline at end of file diff --git a/build/api/schema/queries/network-transactions/index.html b/build/api/schema/queries/network-transactions/index.html index 63dd31b88..5114395ff 100644 --- a/build/api/schema/queries/network-transactions/index.html +++ b/build/api/schema/queries/network-transactions/index.html @@ -4,13 +4,13 @@ networkTransactions | Archethic - + - + + \ No newline at end of file diff --git a/build/api/schema/queries/nodes/index.html b/build/api/schema/queries/nodes/index.html index c05b55a4e..df5d458a2 100644 --- a/build/api/schema/queries/nodes/index.html +++ b/build/api/schema/queries/nodes/index.html @@ -4,13 +4,13 @@ nodes | Archethic - + - + + \ No newline at end of file diff --git a/build/api/schema/queries/oracle-data/index.html b/build/api/schema/queries/oracle-data/index.html index a61716fe2..2a2b2f3fd 100644 --- a/build/api/schema/queries/oracle-data/index.html +++ b/build/api/schema/queries/oracle-data/index.html @@ -4,13 +4,13 @@ oracleData | Archethic - + - + + \ No newline at end of file diff --git a/build/api/schema/queries/shared-secrets/index.html b/build/api/schema/queries/shared-secrets/index.html index 5c24e93ed..43f254053 100644 --- a/build/api/schema/queries/shared-secrets/index.html +++ b/build/api/schema/queries/shared-secrets/index.html @@ -4,14 +4,14 @@ sharedSecrets | Archethic - +

sharedSecrets

Query the network to get the storage nonce public key

sharedSecrets: SharedSecrets

Type

SharedSecrets object

[SharedSecrets] represents the public shared secret information -It includes:

  • The storage nonce public key: Public Key to encrypt data for the node, so they will be able to decrypt it (mostly for smart contract authorized key)
- +It includes:

  • The storage nonce public key: Public Key to encrypt data for the node, so they will be able to decrypt it (mostly for smart contract authorized key)
+ \ No newline at end of file diff --git a/build/api/schema/queries/token/index.html b/build/api/schema/queries/token/index.html index 73a3fac42..4bd5b9e22 100644 --- a/build/api/schema/queries/token/index.html +++ b/build/api/schema/queries/token/index.html @@ -4,14 +4,14 @@ token | Archethic - +

token

Query the network to find a token's data

token(
address: Address!
): Token

Arguments

token.address ● Address! non-null scalar

Type

Token object

[token] represents a token metadata. -It includes:

  • genesis: Genesis address to the token
  • name: Name of the token
  • symbol: Symbol of the token
  • supply: Supply of the token
  • type: Type of the token
  • decimals: Number of decimals of the token
  • properties: Properties of the token (if any)
  • collection: List of properties for a collection (if any)
  • ownerships: authorization/delegations containing list of secrets and their authorized public keys to proof the ownership
  • id: Unique identification of the token on the chain
- +It includes:

  • genesis: Genesis address to the token
  • name: Name of the token
  • symbol: Symbol of the token
  • supply: Supply of the token
  • type: Type of the token
  • decimals: Number of decimals of the token
  • properties: Properties of the token (if any)
  • collection: List of properties for a collection (if any)
  • ownerships: authorization/delegations containing list of secrets and their authorized public keys to proof the ownership
  • id: Unique identification of the token on the chain
+ \ No newline at end of file diff --git a/build/api/schema/queries/transaction-chain/index.html b/build/api/schema/queries/transaction-chain/index.html index 2e0bbfeb3..439c2f950 100644 --- a/build/api/schema/queries/transaction-chain/index.html +++ b/build/api/schema/queries/transaction-chain/index.html @@ -4,13 +4,13 @@ transactionChain | Archethic - + - + + \ No newline at end of file diff --git a/build/api/schema/queries/transaction-inputs/index.html b/build/api/schema/queries/transaction-inputs/index.html index 369094349..275a19cfa 100644 --- a/build/api/schema/queries/transaction-inputs/index.html +++ b/build/api/schema/queries/transaction-inputs/index.html @@ -4,14 +4,14 @@ transactionInputs | Archethic - +

transactionInputs

Query the network to list the transaction inputs from an address

transactionInputs(
address: Address!
limit: PosInteger
pagingOffset: NonNegInteger
): [TransactionInput]

Arguments

transactionInputs.address ● Address! non-null scalar

transactionInputs.limit ● PosInteger scalar

transactionInputs.pagingOffset ● NonNegInteger scalar

Type

TransactionInput object

[TransactionInput] represents the inputs from the transaction -It includes:

  • From: transaction which send the amount of assets
  • Amount: asset amount
  • Type: UCO/token/Call
  • token address: address of the token if the type is token
  • Spent: determines if the input has been spent
  • Timestamp: Date time when the inputs was generated
  • token id: It is the id for a token which is allocated when the token is minted.
- +It includes:

  • From: transaction which send the amount of assets
  • Amount: asset amount
  • Type: UCO/token/Call
  • token address: address of the token if the type is token
  • Spent: determines if the input has been spent
  • Timestamp: Date time when the inputs was generated
  • token id: It is the id for a token which is allocated when the token is minted.
+ \ No newline at end of file diff --git a/build/api/schema/queries/transaction/index.html b/build/api/schema/queries/transaction/index.html index 22c0cc157..941d53f64 100644 --- a/build/api/schema/queries/transaction/index.html +++ b/build/api/schema/queries/transaction/index.html @@ -4,13 +4,13 @@ transaction | Archethic - + - + + \ No newline at end of file diff --git a/build/api/schema/queries/transactions/index.html b/build/api/schema/queries/transactions/index.html index b95c44b84..3edf89000 100644 --- a/build/api/schema/queries/transactions/index.html +++ b/build/api/schema/queries/transactions/index.html @@ -4,13 +4,13 @@ transactions | Archethic - + - + + \ No newline at end of file diff --git a/build/api/schema/queries/version/index.html b/build/api/schema/queries/version/index.html index b17d83cb7..7cde82b9d 100644 --- a/build/api/schema/queries/version/index.html +++ b/build/api/schema/queries/version/index.html @@ -4,13 +4,13 @@ version | Archethic - + - + + \ No newline at end of file diff --git a/build/api/schema/scalars/address/index.html b/build/api/schema/scalars/address/index.html index b1e033f76..15c727874 100644 --- a/build/api/schema/scalars/address/index.html +++ b/build/api/schema/scalars/address/index.html @@ -4,15 +4,15 @@ Address | Archethic - +

Address

The [Address] scalar type represents a transaction's address. The Address appears in a JSON response as Base16 formatted string. The parsed address will -be converted to a binary and any invalid address with an invalid algorithm or invalid size will be rejected

scalar Address

Returned by

genesisAddress query

Member of

balance query ● chainUnspentOutputs query ● ConsumedInputs object ● Data object ● genesisAddress query ● lastTransaction query ● Node object ● Token object ● token query ● TokenBalance object ● TokenTransfer object ● Transaction object ● transaction query ● TransactionAttestation object ● transactionChain query ● transactionConfirmed subscription ● TransactionError object ● transactionError subscription ● TransactionInput object ● transactionInputs query ● TransactionMovement object ● TransactionSummary object ● UcoTransfer object ● UnspentOutput object

- +be converted to a binary and any invalid address with an invalid algorithm or invalid size will be rejected

scalar Address

Returned by

genesisAddress query

Member of

balance query ● chainUnspentOutputs query ● ConsumedInputs object ● Data object ● genesisAddress query ● lastTransaction query ● Node object ● Token object ● token query ● TokenBalance object ● TokenTransfer object ● Transaction object ● transaction query ● TransactionAttestation object ● transactionChain query ● transactionConfirmed subscription ● TransactionError object ● transactionError subscription ● TransactionInput object ● transactionInputs query ● TransactionMovement object ● TransactionSummary object ● UcoTransfer object ● UnspentOutput object

+ \ No newline at end of file diff --git a/build/api/schema/scalars/boolean/index.html b/build/api/schema/scalars/boolean/index.html index e057d2ec6..494384220 100644 --- a/build/api/schema/scalars/boolean/index.html +++ b/build/api/schema/scalars/boolean/index.html @@ -4,13 +4,13 @@ Boolean | Archethic - + - + + \ No newline at end of file diff --git a/build/api/schema/scalars/content/index.html b/build/api/schema/scalars/content/index.html index f5f44c834..786145af4 100644 --- a/build/api/schema/scalars/content/index.html +++ b/build/api/schema/scalars/content/index.html @@ -4,14 +4,14 @@ Content | Archethic - + - +it will be rendered as plain text otherwise in hexadecimal

scalar Content

Member of

Data object

+ \ No newline at end of file diff --git a/build/api/schema/scalars/error-data/index.html b/build/api/schema/scalars/error-data/index.html index c002b5509..ae9b700ea 100644 --- a/build/api/schema/scalars/error-data/index.html +++ b/build/api/schema/scalars/error-data/index.html @@ -4,14 +4,14 @@ ErrorData | Archethic - + - +It could be any type (string, map, list, number or null)

scalar ErrorData

Member of

ErrorDetails object

+ \ No newline at end of file diff --git a/build/api/schema/scalars/float/index.html b/build/api/schema/scalars/float/index.html index 9a637ae6f..8c11e2997 100644 --- a/build/api/schema/scalars/float/index.html +++ b/build/api/schema/scalars/float/index.html @@ -4,13 +4,13 @@ Float | Archethic - + - + + \ No newline at end of file diff --git a/build/api/schema/scalars/hash/index.html b/build/api/schema/scalars/hash/index.html index daeed23f8..ab8dcf0ca 100644 --- a/build/api/schema/scalars/hash/index.html +++ b/build/api/schema/scalars/hash/index.html @@ -4,7 +4,7 @@ Hash | Archethic - + @@ -12,8 +12,8 @@

Hash

The [Hash] scalar type represents a cryptographic hash used in the Archethic network with an identification byte to specify from which algorithm the hash was generated. The Hash appears in a JSON response as Base16 formatted string. The parsed hash will -be converted to a binary and any invalid hash with an invalid algorithm or invalid size will be rejected

scalar Hash

Member of

TransactionSummary object ● ValidationStamp object

- +be converted to a binary and any invalid hash with an invalid algorithm or invalid size will be rejected

scalar Hash

Member of

TransactionSummary object ● ValidationStamp object

+ \ No newline at end of file diff --git a/build/api/schema/scalars/hex/index.html b/build/api/schema/scalars/hex/index.html index f745c968b..0d8e5e13f 100644 --- a/build/api/schema/scalars/hex/index.html +++ b/build/api/schema/scalars/hex/index.html @@ -4,13 +4,13 @@ Hex | Archethic - + - + + \ No newline at end of file diff --git a/build/api/schema/scalars/int/index.html b/build/api/schema/scalars/int/index.html index 2efba0a49..484825c9b 100644 --- a/build/api/schema/scalars/int/index.html +++ b/build/api/schema/scalars/int/index.html @@ -4,13 +4,13 @@ Int | Archethic - +
-

Int

The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.

scalar Int

Member of

Balance object ● BeaconChainSummary object ● ConsumedInputs object ● Endpoint object ● ErrorDetails object ● LedgerOperations object ● Node object ● Token object ● TokenBalance object ● TokenTransfer object ● Transaction object ● TransactionAttestation object ● TransactionInput object ● TransactionMovement object ● TransactionSummary object ● UcoTransfer object ● UnspentOutput object ● ValidationStamp object

- +

Int

The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.

scalar Int

Member of

Balance object ● BeaconChainSummary object ● ConsumedInputs object ● Endpoint object ● ErrorDetails object ● LedgerOperations object ● Node object ● Token object ● TokenBalance object ● TokenTransfer object ● Transaction object ● TransactionAttestation object ● TransactionInput object ● TransactionMovement object ● TransactionSummary object ● UcoTransfer object ● UnspentOutput object ● ValidationStamp object

+ \ No newline at end of file diff --git a/build/api/schema/scalars/non-neg-integer/index.html b/build/api/schema/scalars/non-neg-integer/index.html index ddaf25fb9..29e0f42ea 100644 --- a/build/api/schema/scalars/non-neg-integer/index.html +++ b/build/api/schema/scalars/non-neg-integer/index.html @@ -4,13 +4,13 @@ NonNegInteger | Archethic - + - + + \ No newline at end of file diff --git a/build/api/schema/scalars/p2-p-availabilities/index.html b/build/api/schema/scalars/p2-p-availabilities/index.html index fd2480ee1..ace927498 100644 --- a/build/api/schema/scalars/p2-p-availabilities/index.html +++ b/build/api/schema/scalars/p2-p-availabilities/index.html @@ -4,13 +4,13 @@ P2pAvailabilities | Archethic - + - + + \ No newline at end of file diff --git a/build/api/schema/scalars/pos-integer/index.html b/build/api/schema/scalars/pos-integer/index.html index cd6ad2ea5..edee4b613 100644 --- a/build/api/schema/scalars/pos-integer/index.html +++ b/build/api/schema/scalars/pos-integer/index.html @@ -4,13 +4,13 @@ PosInteger | Archethic - + - + + \ No newline at end of file diff --git a/build/api/schema/scalars/public-key/index.html b/build/api/schema/scalars/public-key/index.html index 7767e4e98..bc6213fd2 100644 --- a/build/api/schema/scalars/public-key/index.html +++ b/build/api/schema/scalars/public-key/index.html @@ -4,15 +4,15 @@ PublicKey | Archethic - +

PublicKey

The [PublicKey] scalar type represents a public key. The PublicKey appears in a JSON response as Base16 formatted string. The parsed public key will -be converted to a binary and any invalid address with an invalid algorithm or invalid size will be rejected

scalar PublicKey

Member of

AuthorizedKey object ● CrossValidationStamp object ● Node object ● SharedSecrets object ● Transaction object ● ValidationStamp object

- +be converted to a binary and any invalid address with an invalid algorithm or invalid size will be rejected

scalar PublicKey

Member of

AuthorizedKey object ● CrossValidationStamp object ● Node object ● SharedSecrets object ● Transaction object ● ValidationStamp object

+ \ No newline at end of file diff --git a/build/api/schema/scalars/recipient-args/index.html b/build/api/schema/scalars/recipient-args/index.html index 64f002ede..7a881fc76 100644 --- a/build/api/schema/scalars/recipient-args/index.html +++ b/build/api/schema/scalars/recipient-args/index.html @@ -4,13 +4,13 @@ RecipientArgs | Archethic - + - + + \ No newline at end of file diff --git a/build/api/schema/scalars/sha-256-hash/index.html b/build/api/schema/scalars/sha-256-hash/index.html index 8bebc58b0..31f2ce983 100644 --- a/build/api/schema/scalars/sha-256-hash/index.html +++ b/build/api/schema/scalars/sha-256-hash/index.html @@ -4,13 +4,13 @@ Sha256Hash | Archethic - + - + + \ No newline at end of file diff --git a/build/api/schema/scalars/state/index.html b/build/api/schema/scalars/state/index.html index 59b450c31..dfaaf3efe 100644 --- a/build/api/schema/scalars/state/index.html +++ b/build/api/schema/scalars/state/index.html @@ -4,13 +4,13 @@ State | Archethic - + - + + \ No newline at end of file diff --git a/build/api/schema/scalars/string/index.html b/build/api/schema/scalars/string/index.html index e067862f2..184974a81 100644 --- a/build/api/schema/scalars/string/index.html +++ b/build/api/schema/scalars/string/index.html @@ -4,13 +4,13 @@ String | Archethic - +
-

String

The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.

scalar String

Member of

ConsumedInputs object ● Data object ● Endpoint object ● ErrorDetails object ● Node object ● Recipient object ● Token object ● Transaction object ● TransactionError object ● TransactionInput object ● TransactionMovement object ● TransactionSummary object ● UnspentOutput object ● Version object

- +

String

The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.

scalar String

Member of

ConsumedInputs object ● Data object ● Endpoint object ● ErrorDetails object ● Node object ● Recipient object ● Token object ● Transaction object ● TransactionError object ● TransactionInput object ● TransactionMovement object ● TransactionSummary object ● UnspentOutput object ● Version object

+ \ No newline at end of file diff --git a/build/api/schema/scalars/timestamp/index.html b/build/api/schema/scalars/timestamp/index.html index 0dd41c53a..1d9cd7070 100644 --- a/build/api/schema/scalars/timestamp/index.html +++ b/build/api/schema/scalars/timestamp/index.html @@ -4,13 +4,13 @@ Timestamp | Archethic - + - + + \ No newline at end of file diff --git a/build/api/schema/scalars/token-properties/index.html b/build/api/schema/scalars/token-properties/index.html index 0d40fd24b..3c1090911 100644 --- a/build/api/schema/scalars/token-properties/index.html +++ b/build/api/schema/scalars/token-properties/index.html @@ -4,13 +4,13 @@ TokenProperties | Archethic - + - + + \ No newline at end of file diff --git a/build/api/schema/scalars/transaction-type/index.html b/build/api/schema/scalars/transaction-type/index.html index bea86748e..c24c88f0a 100644 --- a/build/api/schema/scalars/transaction-type/index.html +++ b/build/api/schema/scalars/transaction-type/index.html @@ -4,13 +4,13 @@ TransactionType | Archethic - + - + + \ No newline at end of file diff --git a/build/api/schema/scalars/versioned-hash/index.html b/build/api/schema/scalars/versioned-hash/index.html index 19d920dd9..df566ae2f 100644 --- a/build/api/schema/scalars/versioned-hash/index.html +++ b/build/api/schema/scalars/versioned-hash/index.html @@ -4,7 +4,7 @@ VersionedHash | Archethic - + @@ -12,8 +12,8 @@

VersionedHash

The [Hash] scalar type represents a cryptographic hash used in the Archethic network with an identification byte to specify from which algorithm the hash was generated. The Hash appears in a JSON response as Base16 formatted string. The parsed hash will -be converted to a binary and any invalid hash with an invalid algorithm or invalid size will be rejected

scalar VersionedHash

Member of

ValidationStamp object

- +be converted to a binary and any invalid hash with an invalid algorithm or invalid size will be rejected

scalar VersionedHash

Member of

ValidationStamp object

+ \ No newline at end of file diff --git a/build/api/schema/subscriptions/oracle-update/index.html b/build/api/schema/subscriptions/oracle-update/index.html index 3a3d39955..96d1c5973 100644 --- a/build/api/schema/subscriptions/oracle-update/index.html +++ b/build/api/schema/subscriptions/oracle-update/index.html @@ -4,13 +4,13 @@ oracleUpdate | Archethic - + - +

oracleUpdate

Subscribe to be notified when a new oracle data is stored

oracleUpdate: OracleData

Type

OracleData object

[OracleData] represents an oracle data.

+ \ No newline at end of file diff --git a/build/api/schema/subscriptions/transaction-confirmed/index.html b/build/api/schema/subscriptions/transaction-confirmed/index.html index 22b7e54b7..41f3ee5c5 100644 --- a/build/api/schema/subscriptions/transaction-confirmed/index.html +++ b/build/api/schema/subscriptions/transaction-confirmed/index.html @@ -4,14 +4,14 @@ transactionConfirmed | Archethic - +

transactionConfirmed

Subscribe to be notified when a transaction is stored (if acted as welcome node)

transactionConfirmed(
address: Address!
): TransactionAttestation

Arguments

transactionConfirmed.address ● Address! non-null scalar

Type

TransactionAttestation object

[TransactionAttestation] represents an attestation when a transaction is successfully validated and stored. -Few attestations can be received with differents confirmations to ensure a better security of the replication.

- +Few attestations can be received with differents confirmations to ensure a better security of the replication.

+ \ No newline at end of file diff --git a/build/api/schema/subscriptions/transaction-error/index.html b/build/api/schema/subscriptions/transaction-error/index.html index 67522cc44..b0d2105f0 100644 --- a/build/api/schema/subscriptions/transaction-error/index.html +++ b/build/api/schema/subscriptions/transaction-error/index.html @@ -4,13 +4,13 @@ transactionError | Archethic - +
-
- +
+ \ No newline at end of file diff --git a/build/clients/ledger-wallet/api/index.html b/build/clients/ledger-wallet/api/index.html index 841e122a5..a90631f02 100644 --- a/build/clients/ledger-wallet/api/index.html +++ b/build/clients/ledger-wallet/api/index.html @@ -4,7 +4,7 @@ Ledger Application API | Archethic - + @@ -28,8 +28,8 @@ getTransactionHash(uint8_t *senderAddr, uint8_t senderAddrLen, uint8_t *receiveAddr, uint8_t receiveAddrLen, uint8_t *amount, uint8_t *txHash, uint8_t *txHashLen)
  • Format for Transaction Hash Generation
    • tx_version | senderAddr | tx_type | code_size | content_size | ownership_length | total_uco_transfers | recieverAddr | amount | total_token_transfers | recipients
  • We apply cx_hash_sha256() and return the hash in txHash
  • We prompt user in GUI to approve the transaction
  • Once approve we performECDSA on the transactionHash
    • Function Signature -performECDSA(uint8_t *txHash, uint8_t txHashLen, uint32_t address_index, uint8_t *encoded_wallet, uint8_t *wallet_len, uint8_t sequence_no, uint8_t *asn_sign, uint8_t *sign_len)
    • We generateKey from Wallet Similar to when getting address and give back publicKey and privateKey
    • We copy curve_type on asn_sign buffer
    • We set 0 to signify onchain wallet
    • We copy the publicKey on asn_sign buffer
    • We sign the txnHash with the privateKet and append signature to asn_sign buffer
    • We increase sign_len by publicKey length + 2 bytes
  • Once signature is performed we copy the txnHash to the G_io_apdu_buffer
  • Then, we copy the contents of encodedWallet on which we have overwritten the signature to the G_io_apdu_buffer
  • And we return the APDU with SW_OK and total length as txnhash length + walletLen
  • - +performECDSA(uint8_t *txHash, uint8_t txHashLen, uint32_t address_index, uint8_t *encoded_wallet, uint8_t *wallet_len, uint8_t sequence_no, uint8_t *asn_sign, uint8_t *sign_len)
  • We generateKey from Wallet Similar to when getting address and give back publicKey and privateKey
  • We copy curve_type on asn_sign buffer
  • We set 0 to signify onchain wallet
  • We copy the publicKey on asn_sign buffer
  • We sign the txnHash with the privateKet and append signature to asn_sign buffer
  • We increase sign_len by publicKey length + 2 bytes
  • Once signature is performed we copy the txnHash to the G_io_apdu_buffer
  • Then, we copy the contents of encodedWallet on which we have overwritten the signature to the G_io_apdu_buffer
  • And we return the APDU with SW_OK and total length as txnhash length + walletLen
  • + \ No newline at end of file diff --git a/build/clients/ledger-wallet/commands/index.html b/build/clients/ledger-wallet/commands/index.html index d0c84de6a..5fd004cfb 100644 --- a/build/clients/ledger-wallet/commands/index.html +++ b/build/clients/ledger-wallet/commands/index.html @@ -4,13 +4,13 @@ ADPU commands | Archethic - +
    -

    ADPU commands

    APDU commands

    Get Origin Public Key

    APDU Command [bytes]:

    CLA = E0INS = 02P1 = 00P2 = 00Lc = 00

    APDU Response = Encoded Origin Public Key i.e., encode(o_{pub})

    Get Archethic Account Address

    APDU Command [bytes] =

    CLA = E0INS = 04P1 = hash_type (for addr) [1 byte]P2 = address_index (for bip44) [4 bytes]Lc = len(ewk{aes}+ew{aes}) [1 byte]ewk_{aes} [bytes]ew_{aes} [bytes]

    APDU Response = Encoded Archethic Account Address i.e., arch_address

    Get Signature

    CLA = E0INS = 08P1 = hash_type (of tx_hash) [1 byte]P2 = address_index (for bip44) [4 bytes]Lc = len(txhash+ewk{aes}+ew_{aes}) [1 byte]tx_hash [bytes]ewk_{aes} [bytes]ew_{aes} [bytes]

    APDU Response = ASN DER Signature || Corresponding public key from whose private key the signature was made, i.e., encode(pub_key)

    - +

    ADPU commands

    APDU commands

    Get Origin Public Key

    APDU Command [bytes]:

    CLA = E0INS = 02P1 = 00P2 = 00Lc = 00

    APDU Response = Encoded Origin Public Key i.e., encode(o_{pub})

    Get Archethic Account Address

    APDU Command [bytes] =

    CLA = E0INS = 04P1 = hash_type (for addr) [1 byte]P2 = address_index (for bip44) [4 bytes]Lc = len(ewk{aes}+ew{aes}) [1 byte]ewk_{aes} [bytes]ew_{aes} [bytes]

    APDU Response = Encoded Archethic Account Address i.e., arch_address

    Get Signature

    CLA = E0INS = 08P1 = hash_type (of tx_hash) [1 byte]P2 = address_index (for bip44) [4 bytes]Lc = len(txhash+ewk{aes}+ew_{aes}) [1 byte]tx_hash [bytes]ewk_{aes} [bytes]ew_{aes} [bytes]

    APDU Response = ASN DER Signature || Corresponding public key from whose private key the signature was made, i.e., encode(pub_key)

    + \ No newline at end of file diff --git a/build/clients/ledger-wallet/index.html b/build/clients/ledger-wallet/index.html index 78468e5f1..7b46d25a7 100644 --- a/build/clients/ledger-wallet/index.html +++ b/build/clients/ledger-wallet/index.html @@ -4,7 +4,7 @@ Ledger wallet | Archethic - + @@ -13,8 +13,8 @@ This application is written in C and resides on the physical Ledger device. For Archethic's blockchain, this can be found on Archethic's github and the functional documentation for the app can be found on the official docs repository.

  • Companion App This is the application which acts like a bridge of communication between user/blockchain and the Bolos application mentioned above. For Archethic's blockchain, this is ALCA (CLI) and Flutter based Wallet (GUI).

  • Remote backend -This is the node which accepts data (signed transactions) from the Companion app mentioned above in order to include it into the blockchain. For Archethic's blockchain, it is the testnet node. Once transaction is published, the data can be verified on archethic.net.

  • Synopsis

    This guide will help you to connect your Ledger device to ALCA, dedicated Command Line Interface (CLI). ALCA (Archethic Ledger CLI App) enables you to Send and Receive UCOs on Archethic Testnet with the Ledger Device.

    Soon, ALCA will be replaced by Archethic's Wallet, which is GUI-based, thus enabling non-tech users to experiment with Archethic's testnet.

    tip

    This is a developer guide and not for general public. This guide assumes the reader has a prior knowledge of ArchEthic and Ledger Ecosystem.

    Prerequisites

    info

    A more general public guide will soon be released once security audit for developer release is done and GUI support for Ledger Device is added to current Archethic's Wallet (Mobile + Desktop)

    Before You Start, Make Sure:

    • You’ve initialized your Ledger Device.
    • The latest firmware is installed (Ledger Nano S).
    • Archethic Bolos App is loaded on Ledger (Tested with Nano S only).
    • Install the latest version of ALCA.
    • Nodejs (v14.0+)

    Installation Instructions

    • Clone the repository from github
    • Run yarn or npm install from root folder of the project
    • Run npm link
    • Use it as ledger_cli (commands)

    Testing

    From Terminal use it as ledger_cli (about | getAppVersion | getPublicKey | getArchAddress | sendTxn)

    Demo

    The demo shows various screens a user will be shown for getting origin public key, onchain wallet address and performing signature on transaction involving single UCO transfer at a time between 2 parties.

    - +This is the node which accepts data (signed transactions) from the Companion app mentioned above in order to include it into the blockchain. For Archethic's blockchain, it is the testnet node. Once transaction is published, the data can be verified on archethic.net.

    Synopsis

    This guide will help you to connect your Ledger device to ALCA, dedicated Command Line Interface (CLI). ALCA (Archethic Ledger CLI App) enables you to Send and Receive UCOs on Archethic Testnet with the Ledger Device.

    Soon, ALCA will be replaced by Archethic's Wallet, which is GUI-based, thus enabling non-tech users to experiment with Archethic's testnet.

    tip

    This is a developer guide and not for general public. This guide assumes the reader has a prior knowledge of ArchEthic and Ledger Ecosystem.

    Prerequisites

    info

    A more general public guide will soon be released once security audit for developer release is done and GUI support for Ledger Device is added to current Archethic's Wallet (Mobile + Desktop)

    Before You Start, Make Sure:

    • You’ve initialized your Ledger Device.
    • The latest firmware is installed (Ledger Nano S).
    • Archethic Bolos App is loaded on Ledger (Tested with Nano S only).
    • Install the latest version of ALCA.
    • Nodejs (v14.0+)

    Installation Instructions

    • Clone the repository from github
    • Run yarn or npm install from root folder of the project
    • Run npm link
    • Use it as ledger_cli (commands)

    Testing

    From Terminal use it as ledger_cli (about | getAppVersion | getPublicKey | getArchAddress | sendTxn)

    Demo

    The demo shows various screens a user will be shown for getting origin public key, onchain wallet address and performing signature on transaction involving single UCO transfer at a time between 2 parties.

    + \ No newline at end of file diff --git a/build/clients/wallet-access/index.html b/build/clients/wallet-access/index.html index cedc6674c..404baa618 100644 --- a/build/clients/wallet-access/index.html +++ b/build/clients/wallet-access/index.html @@ -4,14 +4,14 @@ Archethic's wallet access | Archethic - +

    Archethic's wallet access

    Onchain wallet (aka Keychain) is a wallet stored on Archethic blockchain in encrypted form, to allow only the authorized access to read it and build transaction from it.

    Also to avoid disclosure of information, access and keychain are using end to end encryption with elliptic curve cryptography to secure it.

    Hence any client which would like to support wallet access and transaction building will have to be authorized.

    Access enrollment

    When a device or application want to become an access to the wallet, it first have to create a transaction where the keychain transaction's address is encrypted into it. -This data is stored in the /data/ownerships section of the transaction., where the authorized public key is the transaction's public key and the secret is an aes encryption of the keychain's address.

    Then the keychain will create a new transaction on its chain by encrypting the wallet with a new AES key itself encrypted for the list of authorized access public keys wanted. (For instance the new device or application)

    Keychain retrieval

    In order to retrieve the keychain from a device or application perspective, the access transaction's will be generated to be retrieved from the network.

    Then the device or application will decrypt the encrypted keychain address to be able to download the keychain transaction.

    Once received, the device or application - as being authorized by the keychain - will be able to decrypt the AES key to decrypt the wallet and perform any key derivation and transaction building from it.

    Then, because the key have been generated on the fly, the client will forget about the private keys and seeds decrypted.

    - +This data is stored in the /data/ownerships section of the transaction., where the authorized public key is the transaction's public key and the secret is an aes encryption of the keychain's address.

    Then the keychain will create a new transaction on its chain by encrypting the wallet with a new AES key itself encrypted for the list of authorized access public keys wanted. (For instance the new device or application)

    Keychain retrieval

    In order to retrieve the keychain from a device or application perspective, the access transaction's will be generated to be retrieved from the network.

    Then the device or application will decrypt the encrypted keychain address to be able to download the keychain transaction.

    Once received, the device or application - as being authorized by the keychain - will be able to decrypt the AES key to decrypt the wallet and perform any key derivation and transaction building from it.

    Then, because the key have been generated on the fly, the client will forget about the private keys and seeds decrypted.

    + \ No newline at end of file diff --git a/build/clients/wallet-spec/index.html b/build/clients/wallet-spec/index.html index d97b0e8dc..0ff06ac16 100644 --- a/build/clients/wallet-spec/index.html +++ b/build/clients/wallet-spec/index.html @@ -4,7 +4,7 @@ Archethic's wallet specification | Archethic - + @@ -13,8 +13,8 @@ It can also support multichains identification through the use of key derivation and derivation path.

    A keychain is then a wallet which stores a main master seed, with a list of services (Archethic chains / other crypto identification) encrypted and only accessible by a list of authorized public keys

    Glossary

    • w_{e} = Encoded Onchain Archethic Wallet
    • wk_{aes} = AES256 CTR Key used to encrypt w_{e}
    • enc(w_{e}) = AES256 CTR Encryption of w_{e} using wk_{aes}
    • ew_{aes} = Encoded enc(w_{e})
    • aes_key = AES256 CBC Key used to encrypt wk_{aes}
    • enc(wk_{aes}) = AES256 CBC Encryption of wk_{aes} using aes_key
    • ewk_{aes} = Encoded enc(wk_{aes})
    • encode(pub_key) = Encoded Public Key.
    • arch_address = Encoded Account Address.
    • o_{priv} = Origin Device Private Key
    • o_{pub} = Origin Device Public Key (raw 04xy)
    • encode(o_{pub}) = Encoded Origin Device Public Key
    • e_{key} = Ephemeral Key Pair
    • e_{pub} = Ephemeral Public Key (raw 04xy)
    • e_{priv} = Ephemeral Private Key

    Cryptography

    Derivation path

    Archethic's keychain is using hierarchical derivation key scheme inspired by BIP32 to define a way to generate keys and addresses.

    Because Archethic cryptography and transaction chain paradigm differs from traditional blockchain (used in BIP32/BIP44) we adapted it to use specific derivation scheme (as describe in the BIP43)

    The main derivation path of Archethic keychain is: m/650'/account/index (where 650 is the Archethic transaction chain purpose - in the BIP43 terminology)

    The account can be anything, by default 0 is the main uco transaction chain, but it could be customized to create more entropy.

    The index is the number of transaction in the chain, used to compute the derived keys and addresses

    Key derivation

    In order to derive the keys using the derivation path mentioned above, we implemented our own key derivation scheme, which takes inspiration from BIP32 but simplifies it a bit.

    Replace the derivation path index

    Given the derivation path: m/650'/0/0, we change the last number (the transaction's index in the chain) we some variable provided by the application(ie: m/650'/0/1 will give the 1st transaction's address on the chain)

    Hash of the derivation path

    Once the derivation path index is replaced we hashed it to give a constant size through SHA256

    hashedPath = SHA256(ReplaceDerivationPath(derivationPath, index))

    Derive private key

    Then we have to derive the private key based on the hashedPath and the master seed by using HMAC and extracting the first 32 bytes of the result

    extendedSeed = HMAC-SHA512(Key=MasterSeed, Data=hashedPath)
    extendedPrivateKey = extendedSeed.slice(0, 32)

    Derive public key

    Now with the given private key we can easily extract the public key for the given curve specified in the Keychain's service

    { publicKey, private } = generateKeyPair(extendedPrivateKey, curve)

    Encryption

    The keychain is using a double encryption scheme where:

    • the wallet is encrypted with AES
    • the aes_key is encrypted with elliptic curve cryptography using ECIES (Elliptic Curve Integration Encryption Scheme): wk_{aes} for the authorized public keys
    info

    Ephemeral key is used to perform ECDH with authorized public key, in order to derive aes_key. This aes_key is then used to encrypt the wk_{aes}. This is called ECIESE(Elliptic Curve Integration Encryption Scheme Ephemeral)

    Then to guarantee the security of the wallet, only the authorized public keys are able to decrypt the encrypted aes key(enc(aes_key)) to be able to decrypt the encrypted wallet (wk_{aes})

    Encrypting the Onchain Wallet

    The onchain encoded wallet w_{e} is encrypted using symmetric encryption AES256 CTR key wk_{aes} as follows:

    wallet_iv [16 bytes], reserved [16 bytes] = sha256(sha256(wk_{aes})) 
    enc(w_{e}) = aes256(mode=ctr, key = wk_{aes}, iv = wallet_iv, data = w_{e})

    Encoding of Encrypted Wallet

    The above encrypted wallet enc(w_{e}) is stored on the Archethic Blockchain with the following format.

    enc(w_{e}) [bytes]

    Encrypting Wallet Encryption Key

    The key (wk_{aes}) which encrypts the wallet (w_{e}) is subsequently encrypted using Elliptic Curve Integrated Encryption Scheme to support different authorized public keys and to reduce the increased space overhead of the encryptions.

    Algorithm$ for encrypting wk_{aes}= ECIES (ECDH + AES256 CBC)

    ecdh_secret = ecdh_point_x(e_{pub}, o_{priv}) = ecdh_point_x(e_{priv}, o_{pub}) 

    aes_key [32 bytes], iv [16 bytes], auth_seed [16 bytes] = sha512(sha512(ecdh\_secret))

    enc(wk_{aes}) = aes256(mode=cbc, key = aes\_key, iv = iv, data = wk_{aes})

    auth_key = sha256(auth_seed)

    auth_tag [16 bytes], reserved [16 bytes] = hmac256(key = auth_key, data = enc(wk_{aes}))

    Encoding of Encrypted Wallet Key

    The above encrypted key enc(wk_{aes}) is stored on the Archethic Blockchain with the following format.

    e_{pub} 04xy [bytes]auth_tag [16 bytes]enc(wk_{aes}) [32 bytes]

    Encoding

    The wallet before encryption is encoding into a binary format

    Encoding of wallet

    VersionSeed sizeSeedNb servicesService name sizeService nameDerivation path lengthDerivation pathCurve typeHash type...
    4 bytes1 byteN bytes1 byte1 byteN bytes1 byteN bytes1 byte1 byte...

    Encoding of Curve Types

    The curve_type is a 1 byte long field, hex encoded. Currently, following curves are supported:

    • 0: ED25519
    • 1: NISTP256
    • 2: SECP256K1

    Encoding of Hash Types

    The hash_type is a 1 byte long field, hex encoded. Currently, following hashes are supported:

    • 0: SHA256 (sha2)
    • 1: SHA512 (sha2)
    • 2: SHA3_256 (keccak)
    • 3: SHA3_512 (keccak)
    • 4: BLAKE2B

    Transaction representation

    Transaction 
    - Data:
    - Ownerships:
    Secret: Encrypted Wallet,
    Authorized Keys:
    Public Key: Origin Device / Password Public Key,
    Encrypted Secret Key: Encrypted AES Key for the authorized public key

    Format

    Public Key Format

    When clients have to produce public key, an origin type identification byte have to prepend before the key material as well as the curve type.

    Curve IDOrigin IDKey material
    1 byte1 byteN bytes

    The origin_type is a 1 byte long field, hex encoded. Currently, following origins are defined:

    • 0: Onchain Wallet
    • 1: Software Wallet (Node, Mobile App, Desktop, etc.)
    • 2: TPM (Node)
    • 3: Yubikey (Node, Hardware Wallet)
    • 4: Ledger (Hardware Wallet)

    Account Address Format

    Archethic addresses following a specific format to version algorithms used helping -to evolve easily between curves and hash algorithms.

    Curve TypeHash algohash(encode(pub_key))
    1 byte1 byteN bytes
    - +to evolve easily between curves and hash algorithms.

    Curve TypeHash algohash(encode(pub_key))
    1 byte1 byteN bytes
    + \ No newline at end of file diff --git a/build/core/account/index.html b/build/core/account/index.html index c6d471742..5dd15637c 100644 --- a/build/core/account/index.html +++ b/build/core/account/index.html @@ -4,13 +4,13 @@ Account | Archethic - +
    -

    Account

    Archethic node provides a high level and fast access to an account assets using primarily memory tables with ETS.

    This gives us faster computation and data retrieval to asserts balances and UTXO loading.

    UCO

    A memory table is defined to list of the UCO available for a given address

    Few functions are provided to be able to query this table in order to:

    • get the UCO balance
    • get the UTXOs
    • get the total inputs (spent and unspent)
    • spend all the UTXOs
    • add new UCO UTXO

    Ledger

    Each entry is indexed by a tuple recipient/sender to identify uniquely an UTXO

    Recipient, SenderAmountSpent ?Date

    Index

    An index table is provided to be able to retrieve all the sender UTXOs for a given recipient

    RecipientSender

    Token

    A memory table is defined to list al the token available for a given address

    Few functions are provided to be able to query this table in order to:

    • get the token balance s
    • get the UTXOs
    • get the total inputs (spent and unspent)
    • spend all the UTXOs
    • add new token UTXO

    Ledger

    Each entry is indexed by a tuple recipient/sender/token address to identify uniquely an UTXO

    Recipient, Sender, TokenAmountSpent ?Date

    Index

    An index table is provided to be able to retrieve all the sender UTXOs for a given recipient

    RecipientSenderToken address

    Loading

    When a transaction replicated, the storage nodes in charge of storing the new transaction (chain replicas or recipient replicas) will load the transaction in those tables to index the UTXO and build in memory view.

    The same goes when a node is bootstraping, a process will load all the transactions from the database to load them into those tables.

    - +

    Account

    Archethic node provides a high level and fast access to an account assets using primarily memory tables with ETS.

    This gives us faster computation and data retrieval to asserts balances and UTXO loading.

    UCO

    A memory table is defined to list of the UCO available for a given address

    Few functions are provided to be able to query this table in order to:

    • get the UCO balance
    • get the UTXOs
    • get the total inputs (spent and unspent)
    • spend all the UTXOs
    • add new UCO UTXO

    Ledger

    Each entry is indexed by a tuple recipient/sender to identify uniquely an UTXO

    Recipient, SenderAmountSpent ?Date

    Index

    An index table is provided to be able to retrieve all the sender UTXOs for a given recipient

    RecipientSender

    Token

    A memory table is defined to list al the token available for a given address

    Few functions are provided to be able to query this table in order to:

    • get the token balance s
    • get the UTXOs
    • get the total inputs (spent and unspent)
    • spend all the UTXOs
    • add new token UTXO

    Ledger

    Each entry is indexed by a tuple recipient/sender/token address to identify uniquely an UTXO

    Recipient, Sender, TokenAmountSpent ?Date

    Index

    An index table is provided to be able to retrieve all the sender UTXOs for a given recipient

    RecipientSenderToken address

    Loading

    When a transaction replicated, the storage nodes in charge of storing the new transaction (chain replicas or recipient replicas) will load the transaction in those tables to index the UTXO and build in memory view.

    The same goes when a node is bootstraping, a process will load all the transactions from the database to load them into those tables.

    + \ No newline at end of file diff --git a/build/core/beacon-chain/index.html b/build/core/beacon-chain/index.html index 2428e3652..d5fe43343 100644 --- a/build/core/beacon-chain/index.html +++ b/build/core/beacon-chain/index.html @@ -4,14 +4,14 @@ BeaconChain | Archethic - +

    BeaconChain

    BeaconChain helps the Archethic sharding network to be supervised and provided global view of the system.

    To be able to manage it, few modules and functions are needed to make this possible.

    Subsets

    The BeaconChain is divided into a set of subsets (shards of the BeaconChain) based on hexadecimal splits. -Currently the BeaconChain supports 256 subsets, from 0 to F (hex)

    Each subset is maintained by its own process

    This process is responsible of:

    • Add transaction replication confirmation to the current slot
    • Check P2P availability of the nodes where their public key starts by the subset hexadecimal identifier
    • Create beacon transaction and notify BeaconChain summary nodes (for the current epoch)
    • Create beacon summary transaction (if it's one of the summary node)
    • Notify explorer about the new transaction validated (See Sharded Explorer)

    Timers and schedulers

    Because each BeaconChain subsets change over time, we need a may to determine what are the current nodes for those subsets and so on. So we have two kind of timers and schedulers:

    • Slot timer: Manage the interval for the beacon slot creations
    • Summary timer: Manage the interval for the beacon summary creations

    Each of those timer provides helpers to be able to generate previous or next dates

    Transaction loading

    Before a transaction's confirmation is loaded into the BeaconChain, a phase of validation is performed to ensure the correctness of the replication:

    • it asserts the transaction's address is the right one
    • it asserts the transaction attestation (node election, signatures, etc.)

    For more details, SlotValidation

    Then the slot is deserialized to be loaded into a cache, for a faster summary aggregation and computation

    Supervisor

    To manage all those processes and isolation a proper supervision tree is defined

    - +Currently the BeaconChain supports 256 subsets, from 0 to F (hex)

    Each subset is maintained by its own process

    This process is responsible of:

    • Add transaction replication confirmation to the current slot
    • Check P2P availability of the nodes where their public key starts by the subset hexadecimal identifier
    • Create beacon transaction and notify BeaconChain summary nodes (for the current epoch)
    • Create beacon summary transaction (if it's one of the summary node)
    • Notify explorer about the new transaction validated (See Sharded Explorer)

    Timers and schedulers

    Because each BeaconChain subsets change over time, we need a may to determine what are the current nodes for those subsets and so on. So we have two kind of timers and schedulers:

    • Slot timer: Manage the interval for the beacon slot creations
    • Summary timer: Manage the interval for the beacon summary creations

    Each of those timer provides helpers to be able to generate previous or next dates

    Transaction loading

    Before a transaction's confirmation is loaded into the BeaconChain, a phase of validation is performed to ensure the correctness of the replication:

    • it asserts the transaction's address is the right one
    • it asserts the transaction attestation (node election, signatures, etc.)

    For more details, SlotValidation

    Then the slot is deserialized to be loaded into a cache, for a faster summary aggregation and computation

    Supervisor

    To manage all those processes and isolation a proper supervision tree is defined

    + \ No newline at end of file diff --git a/build/core/beacon-chain/p2p-sampling/index.html b/build/core/beacon-chain/p2p-sampling/index.html index 6cabf76f0..ecd313be5 100644 --- a/build/core/beacon-chain/p2p-sampling/index.html +++ b/build/core/beacon-chain/p2p-sampling/index.html @@ -4,13 +4,13 @@ P2P availability sampling | Archethic - +
    -

    P2P availability sampling

    Each beacon chain's subset is responsible to perform verification of the nodes is in charge to monitor.

    Heartbeat

    So periodically (when a transaction is confirmed or before a slot creation), the nodes of a given subset perform P2P availability sampling of the given peers.

    info

    If multiple transactions arrive to a given subset quickly, a timespan of 3s from the previous sampling is used, to determine if we need to sample availability again

    A timeout of 1s is given in which a node should respond otherwise it will considered as locally offline by the beacon chain

    Aggregation

    During the transaction generation of the BeaconChain summary, we aggregate multiple slots into a common structure.

    All the aggregated P2P samples are accumulated to determine the frequencies of availability and determine the average.

    So during the Self-Repair, we are using those summary and aggregated data to determine if a node is considered as available for the next epoch/cycle.

    - +

    P2P availability sampling

    Each beacon chain's subset is responsible to perform verification of the nodes is in charge to monitor.

    Heartbeat

    So periodically (when a transaction is confirmed or before a slot creation), the nodes of a given subset perform P2P availability sampling of the given peers.

    info

    If multiple transactions arrive to a given subset quickly, a timespan of 3s from the previous sampling is used, to determine if we need to sample availability again

    A timeout of 1s is given in which a node should respond otherwise it will considered as locally offline by the beacon chain

    Aggregation

    During the transaction generation of the BeaconChain summary, we aggregate multiple slots into a common structure.

    All the aggregated P2P samples are accumulated to determine the frequencies of availability and determine the average.

    So during the Self-Repair, we are using those summary and aggregated data to determine if a node is considered as available for the next epoch/cycle.

    + \ No newline at end of file diff --git a/build/core/bootstrap/index.html b/build/core/bootstrap/index.html index 835848e10..15f8e2d84 100644 --- a/build/core/bootstrap/index.html +++ b/build/core/bootstrap/index.html @@ -4,13 +4,13 @@ Bootstrap | Archethic - +
    -

    Bootstrap

    When the Archethic node, a task is launched to perform the node bootstrapping to join the network.

    To be able to bootstrap a node, we gather connectivity information (IP, Port, Transport, Reward address, Bootstrapping seeds) and also last synchronization date.

    But a flow is determine to define what is the state of the bootstrap: network initialization, first bootstrap, next bootstrap

    Network initizialiation

    The first node joining the network will be in charge to initialize the network by defining few transaction chains:

    • Create first node shared secrets transaction chain with initial dailly nonce
    • Create genesis wallets according to the allocation from the UCO token distribution

    First node bootstrapping

    During the first initialization, a node will contact P2P bootstrapping seeds (anchor nodes) to be able to fetch existing nodes.

    Next a node will create transaction to publish its connectivity and crypto information which will authorize or not new joining node.

    Once a node is authorized, after the success of this transaction, it can decrypt/load the storage nonce (will be used for self-repair) and start the self-repair initial cycle to sync transactions.

    Next time bootstraps

    For further bootstraps, the bootstrap tasks determine if an update is required based on connectivity/crypto information changes, then a transaction is emitted to the node chain.

    Once validated, the self-repair is also triggered to resync missed transactions.

    - +

    Bootstrap

    When the Archethic node, a task is launched to perform the node bootstrapping to join the network.

    To be able to bootstrap a node, we gather connectivity information (IP, Port, Transport, Reward address, Bootstrapping seeds) and also last synchronization date.

    But a flow is determine to define what is the state of the bootstrap: network initialization, first bootstrap, next bootstrap

    Network initizialiation

    The first node joining the network will be in charge to initialize the network by defining few transaction chains:

    • Create first node shared secrets transaction chain with initial dailly nonce
    • Create genesis wallets according to the allocation from the UCO token distribution

    First node bootstrapping

    During the first initialization, a node will contact P2P bootstrapping seeds (anchor nodes) to be able to fetch existing nodes.

    Next a node will create transaction to publish its connectivity and crypto information which will authorize or not new joining node.

    Once a node is authorized, after the success of this transaction, it can decrypt/load the storage nonce (will be used for self-repair) and start the self-repair initial cycle to sync transactions.

    Next time bootstraps

    For further bootstraps, the bootstrap tasks determine if an update is required based on connectivity/crypto information changes, then a transaction is emitted to the node chain.

    Once validated, the self-repair is also triggered to resync missed transactions.

    + \ No newline at end of file diff --git a/build/core/cryptography/index.html b/build/core/cryptography/index.html index 75a8b822f..cfee4dd67 100644 --- a/build/core/cryptography/index.html +++ b/build/core/cryptography/index.html @@ -4,13 +4,13 @@ Cryptography | Archethic - +
    -

    Cryptography

    Node cryptography is maintains through keystores

    Node Keystore

    Node cryptography is maintain through keystore which stores the transaction index and reference to the public keys.

    A behavior is defined to be able swap and test easily implementations.

    There are several implementations of the node keystore:

    • Software implementation (used in dev mode and testnet)
    • Hardware implementation

    More details here: Node keystore

    Node Shared Secrets Keystore

    Along with node keystore, node shared secrets have their own keystore as it used to store secrets as daily nonce, storage nonce and provide the API to leverage them for transaction validation, election algorithm, etc..

    A behavior is also provided to be able to swap implementations. Right now only the software implementation is supported.

    More details here: Shared Secrets keystore

    - +

    Cryptography

    Node cryptography is maintains through keystores

    Node Keystore

    Node cryptography is maintain through keystore which stores the transaction index and reference to the public keys.

    A behavior is defined to be able swap and test easily implementations.

    There are several implementations of the node keystore:

    • Software implementation (used in dev mode and testnet)
    • Hardware implementation

    More details here: Node keystore

    Node Shared Secrets Keystore

    Along with node keystore, node shared secrets have their own keystore as it used to store secrets as daily nonce, storage nonce and provide the API to leverage them for transaction validation, election algorithm, etc..

    A behavior is also provided to be able to swap implementations. Right now only the software implementation is supported.

    More details here: Shared Secrets keystore

    + \ No newline at end of file diff --git a/build/core/cryptography/tpm/index.html b/build/core/cryptography/tpm/index.html index ec924182d..24bf2e9c6 100644 --- a/build/core/cryptography/tpm/index.html +++ b/build/core/cryptography/tpm/index.html @@ -4,7 +4,7 @@ TPM Implementation | Archethic - + @@ -15,8 +15,8 @@ The function adds the headers squentially and then the raw x coordinate of public key and then the y coordinate finally the size is updated.

    void signToASN(BYTE r, INT sizeR, BYTE s, INT sizeS, INT *asnSignSize)

    tip

    Converts uncompressed signature values to ASN DER format.

    TPM generates the raw signature in form of integer values : R & S. signToASN() converts these raw values into ASN DER format. It first prepends the ASN sequence then checks the MSB of R . If it is 1 then it prepends a byte (0) to R otherwise it move on to increase the index pointed to the asn by the size of R. Similarly, it does the above for S.

    void generatePublicKey(INT keyIndex)

    danger

    Generates public key on the endorsement key hierarchy of TPM by taking one byte key index as input.

    Firstly, the template of the public key is defined in the inPublicECC which contains the endorsement key template such that certificate on the keys can be generated except modifying the endorsement key object attributes. The inPublicECC structure defines the following sub-structure:

    1. publicArea : defines the attributes of the public key to be generated. For endorsement key the signing operation is restricted due to privacy concern, defined under this structure. In this case we are generating key in the endordement hierarchy by using the template of the endorsement key.
    • The object attributes of generating key are as follows:
    * TPMA_OBJECT_USERWITHAUTH: Signifies the approval of "USER" actions with associated with the public key with a password.
    * TPMA_OBJECT_ADMINWITHPOLICY: Signifies the Approval of "ADMIN" role actions with this object may only be done with a policy session.
    * TPMA_OBJECT_SIGN_ENCRYPT: For a symmetric cipher object, the private portion of the key be used to encrypt. For other objects, the private portion of the key can be used to sign.
    * TPMA_OBJECT_DECRYPT:The private portion of the key can be used to decrypt
    * TPMA_OBJECT_FIXEDTPM: Indicates that the hierarchy of the key genrated cannot be changed.
    * TPMA_OBJECT_FIXEDPARENT:Indicates that the parent of the object cannot be changed.
    * TPMA_OBJECT_SENSITIVEDATAORIGIN: Indicates that the sensitive data is generated by the TPM on the key generation except the authvalue.
    .objectAttributes = (TPMA_OBJECT_USERWITHAUTH |
    TPMA_OBJECT_ADMINWITHPOLICY |
    TPMA_OBJECT_SIGN_ENCRYPT |
    TPMA_OBJECT_DECRYPT |
    TPMA_OBJECT_FIXEDTPM |
    TPMA_OBJECT_FIXEDPARENT |
    TPMA_OBJECT_SENSITIVEDATAORIGIN),

    • Object attributes for generating under Endorsement key hierarchy:
      • TPMA_OBJECT_RESTRICTED: Key usage is restricted to manipulate structures of known format.
    info

    Endorsement key has same template except that there is no SIGN_ENCRYPT FLAG in the object attribute.

    .objectAttributes = (TPMA_OBJECT_RESTRICTED |
    TPMA_OBJECT_ADMINWITHPOLICY |
    TPMA_OBJECT_DECRYPT |
    TPMA_OBJECT_FIXEDTPM |
    TPMA_OBJECT_FIXEDPARENT |
    TPMA_OBJECT_SENSITIVEDATAORIGIN),
    1. authPolicy: this substructure contains a 32 byte buffer with values exactly same as endorsement key attributes. This parameter associates the generated key template to the TPM hence during certificate generation the CA is able to return the certificate for the public key generated under Endorsement key hierarchy.
    .authPolicy = {
    .size = 32,
    .buffer = {0x83, 0x71, 0x97, 0x67, 0x44, 0x84, 0xB3, 0xF8, 0x1A, 0x90, 0xCC,
    0x8D, 0x46, 0xA5, 0xD7, 0x24, 0xFD, 0x52, 0xD7, 0x6E, 0x06, 0x52,
    0x0B, 0x64, 0xF2, 0xA1, 0xDA, 0x1B, 0x33, 0x14, 0x69, 0xAA}},
    1. parameters: In the parameter structure we define the algorithm to be used for private key cryptography and public key cryptography operations.
     .parameters.eccDetail = {.symmetric = {
    .algorithm = TPM2_ALG_AES,
    .keyBits.aes = 128,
    .mode.sym = TPM2_ALG_CFB,
    },
    .scheme = {.scheme = TPM2_ALG_NULL, .details = {.ecdsa = {.hashAlg = TPM2_ALG_SHA256}}},
    .curveID = TPM2_ECC_NIST_P256,
    .kdf = {.scheme = TPM2_ALG_NULL, .details = {}}},

    After definning the template of the public key, a unique data is passed to each key in the unique structure of inPublicEC which is root key hash and key index. For the root key the root key hash is 0 and key index is 0.

    .unique.ecc = {.x = {.size = 32, .buffer = {0}}, .y = {.size = 32, .buffer = {0}}},

    The primary key is created by using Esys_CreatePrimary() function with the following parameters:

    • ESYS_TR_RH_ENDORSEMENT: To generate key in the endorsement hierarchy6.
    • ESYS_TR_PASSWORD: indicates a password authorization
    • inPublicECC: the public key template defined is passed.

    Finally the created key is converted to ASN DER format.

    setRootKey()

    danger

    Initializes root key by calling generatePublicKey(0) since 0 is the index of root key.

    It also sets the root key hash. It is calculated by concatenating the raw x and y part of the root key and then hashing it.

    The rootkey hash is stored statically and is important for every new primary key generation since it is passed as parameter to the unique structure of inPublicEC.X part. The key index is passed as parameter to the inpublicEc.y.

    updateHandlesIndexes()

    tip

    Increments the current index value by 1 and also updates all the corresponding keys.

    Flushes the previous key handles index and points it to the nextKeyHandle then increments NEXT index by 1 to store it in the nextkeyindex. Then generates a new public key by sending nextkeyIndex as the parameter. Finally it assigns the currentKeyhandle to the nextkey handle .

    initializeTPM(INT keyIndex):

    danger

    Initializes TPM context by calling Esys_Initialize() function and sets the previous key handle and nextkey handle as null. Then it sets the root key and key index.

    getKeyIndex():

    info

    Returns previous key index because that is the "current" key index used for performing signature.

    setKeyIndex(INT keyIndex):

    danger

    Sets the previous key index (which is our current key) to the key index passed as parameter.

    Also sets keyIndex+1 as the nextKey index.

    For the key generated at after first initialization it flushes the previous key handle and generates the key with keyIndex then points then populates the previous key handle with the current key handle value. -Next it generates the public key with keyIndex+1 and stores it in the nextkey handle.

    getPublicKey(INT keyIndex, INT *publicKeySize):

    tip

    Returns the public key for the given index.

    Takes keyIndex and returns root key if the keyINDEX is 0, next key if the keyindex matches with the nextKey index, previous key if the keyINdex matches with the previous Key index.

    If it matches with none of these indexes, then it flushes the root key from the tpm (due to the limit of max 3 transient handles), generates the key for the corresponding keyIndex and copies it into temp key then flushes it from the TPM. Finally, it regenerates the root key and then returns temp key.

    signECDSA(INT keyIndex, BYTE hashToSign, INT eccSignSize, bool increment):

    danger

    Signs the given hash using the key referred by the key index.

    Converts the byte hash to TPM2B_hash object and then checks the key index . If it is root key or previous key then assigns it to the signing key handle otherwise;

    Sets the previous key index to the given keyindex by calling setkeyindex() function and assigns it to the signing handle. It signs the hash using Esys_Sign() function. Finally the signature is converted to ASN DER format which is returned by signECDSA().

    getECDHPoint(INT keyIndex, BYTE *euphemeralKey):

    info

    Performs Elliptic Curve Diffe Hellmen Key Exchange using the private part of the key referred by the Key Index and public euphemeral key. Returns the derived shared secret uncompressed point.

    Takes the key index and checks whether it's previous key, next key or root key. If it's one of these then it assigns it to the ECDH key handle else it removes the root key and generates a new key for the given key index and use it in the ECDH handle.

    Next, it re-structures the euphemeral key with the format 04 x y and generates an ECDH point using the Esys_ECDH_ZGen() function and stores it 04 x y format in zPoint which is then returned by the function.

    - +Next it generates the public key with keyIndex+1 and stores it in the nextkey handle.

    getPublicKey(INT keyIndex, INT *publicKeySize):

    tip

    Returns the public key for the given index.

    Takes keyIndex and returns root key if the keyINDEX is 0, next key if the keyindex matches with the nextKey index, previous key if the keyINdex matches with the previous Key index.

    If it matches with none of these indexes, then it flushes the root key from the tpm (due to the limit of max 3 transient handles), generates the key for the corresponding keyIndex and copies it into temp key then flushes it from the TPM. Finally, it regenerates the root key and then returns temp key.

    signECDSA(INT keyIndex, BYTE hashToSign, INT eccSignSize, bool increment):

    danger

    Signs the given hash using the key referred by the key index.

    Converts the byte hash to TPM2B_hash object and then checks the key index . If it is root key or previous key then assigns it to the signing key handle otherwise;

    Sets the previous key index to the given keyindex by calling setkeyindex() function and assigns it to the signing handle. It signs the hash using Esys_Sign() function. Finally the signature is converted to ASN DER format which is returned by signECDSA().

    getECDHPoint(INT keyIndex, BYTE *euphemeralKey):

    info

    Performs Elliptic Curve Diffe Hellmen Key Exchange using the private part of the key referred by the Key Index and public euphemeral key. Returns the derived shared secret uncompressed point.

    Takes the key index and checks whether it's previous key, next key or root key. If it's one of these then it assigns it to the ECDH key handle else it removes the root key and generates a new key for the given key index and use it in the ECDH handle.

    Next, it re-structures the euphemeral key with the format 04 x y and generates an ECDH point using the Esys_ECDH_ZGen() function and stores it 04 x y format in zPoint which is then returned by the function.

    + \ No newline at end of file diff --git a/build/core/cryptography/yubikey/index.html b/build/core/cryptography/yubikey/index.html index 5f203585d..b6db5a29d 100644 --- a/build/core/cryptography/yubikey/index.html +++ b/build/core/cryptography/yubikey/index.html @@ -4,15 +4,15 @@ Yubikey implementation | Archethic - +

    Yubikey implementation

    This section explains the HRT Yubikey Library implementation.

    tip

    initializeYK() :

    Initializes the context of the yubikey application in the variable g_state and connects to the hardware device. If successful, then gets the key index of Archethic as well as key index of the yubikey device.

    bool checkYK():

    displays the model of yubikey device used returns true if the device list contains "Yubico Yubikey".

    verifyPinYK():

    verifies the pin code using ykpiv_verify() required to access PIV interface.

    authenticateYK():

    Management key is required to do administrative actions. First it does hex decoding of the management key and authenticates if ykpiv_authenticate() returns 0.

    fetchKey(keyIndex):

    A PIV card contains some interoperable seven mandatory and twenty optional data objects. These objects are identified with their respective ids. We use these twenty optional data objects to store the key certificates. fetchKey index takes the yubikey key index ykindex as input and fetches the certificate at the key_certificates[ykindex]. This X509 certificate is decoded and public key is extracted from it using X509_get0_pubkey_bitstr and copied to ecc_public_key.

    generateKey(ykIndex):

    It takes the ykIndex and generates an ECC key using ykpiv_util_generate_key(). It generates key at one of the slots {0x82.. 0x95} pointed by ykindex - key_slots[ykIndex]

    generateCertificate(ykIndex):

    The keys in the slot are attested through ykpiv_attest() by taking the slot on the index as input. It returns attested key and its length which is then saved into an object pointed by ykIndex using ykpiv_save_object().

    getYKIndex():

    The YKPIV_OBJ_KEY_HISTORY keeps the count of the keys generated in the yubikey. This fucntion fetches the YKPIV_OBJ_KEY_HISTORY using ykpiv_fetch_object() to get the index_yk and returns it.

    saveIndex(ykIndex, archethicIndex):

    It takes ykindex and archethicIndex as input and generates index by combining ykindex and archethic index and keeps it in YKPIV_OBJ_HISTORY.

    signECDSA(hashtoSign, ykIndex):

    It uses ykpiv_sign_data() to sign hashToSign using YKPIV_ALGO_ECCP256 through the key pointed by ykindex - key_slots[ykindex].

    getECDHPoint(ykIndex, euphermerakley) :

    It generated an ecdh point using ykpiv_decipher_data() for the slot pointed by ykindex key_slots[ykIndex].

    getArchEthicIndex():

    Fetches the YKPIV_OBJ_KEY_HISTORY and derives the archethicindex from index_yk saved in key history object.

    incrementIndex():

    We use the 20 data objects to store 20 keys certificates at once. The 21st key generated on the yubikey is stored in newYKIndex = ykindex % 20. The archethic index is incremented and a new key is generated using newYKindex .A certificate is generated and saved in the slot pointed by newYKindex. Finally it returns true if the current YK index is equal to newYKindex and current archethicindex is equal to newarchethic index .

    getRootKey():

    Reads the root key certificate from f9 slot and fetches public key from the certificate. Finally it copies the key into rsa_root_key and returns it.

    getCurrentKey(publicKeySize):

    Generates the previous key index by and fetches the key behind previous key index and returns the ecc key.

    getNextKey( publicKeySize):

    It fetches the key from the ykIndex and returns the ecc_public_key behind the index.

    getPastKey(archEthicIndex, publicKeySize):

    It fetches the keys stored previously in the slot. It first calculates the slot position and then fetches the key at the slot position and return it.

    getRootCertificate( certificateSize):

    Reads the certificate of the rootkey from 0xf9 slot, copies it ykcertificate and returns it.

    getCurrentCertificate(certificateSize):

    Calculates the curent key index and fetches the certificate from the object pointed by the current key index.

    getNextCertificate(certificateSize):

    fetches the certificate of the key pointed by ykindex and returns it.

    getPastCertificate(archEthicIndex, certificateSize):

    calculates the slot posistion according to the offset using archethicindex then fetches the object at the slot position which is a certificate amd returns it.

    signCurrentKey(hashToSign, eccSignSize):

    Calculates the current key index then verifies the Yubikey pin using verifyPinYK() and then signs hashToSign using signECDSA(). The signECDSA() signs the key at the currentkeyindex.

    signPastKey(archEthicIndex, hashToSign, eccSignSize):

    Calculates the slot position by first calculating the offset by using archethicindex. Then it verifies the yubikey pin and signs the key pointed at the slotPosition.

    ecdhCurrentKey(euphemeralKey, eccPointSize):

    Calculates the current key index, verifies the yubikey pin to get the ECDH point through getECDHPoint() fucntion and finally returns it.

    ecdhPastKey( archEthicIndex, euphemeralKey, eccPointSize):

    Calculates the offset and slotPosition using archEthicIndex., verifies Yubikey PIN and gets the ECDH point for the key pointed by slotPosiotion and returns it.

    - +uniris-yubikey.h

    initializeYK() :

    Initializes the context of the yubikey application in the variable g_state and connects to the hardware device. If successful, then gets the key index of Archethic as well as key index of the yubikey device.

    bool checkYK():

    displays the model of yubikey device used returns true if the device list contains "Yubico Yubikey".

    verifyPinYK():

    verifies the pin code using ykpiv_verify() required to access PIV interface.

    authenticateYK():

    Management key is required to do administrative actions. First it does hex decoding of the management key and authenticates if ykpiv_authenticate() returns 0.

    fetchKey(keyIndex):

    A PIV card contains some interoperable seven mandatory and twenty optional data objects. These objects are identified with their respective ids. We use these twenty optional data objects to store the key certificates. fetchKey index takes the yubikey key index ykindex as input and fetches the certificate at the key_certificates[ykindex]. This X509 certificate is decoded and public key is extracted from it using X509_get0_pubkey_bitstr and copied to ecc_public_key.

    generateKey(ykIndex):

    It takes the ykIndex and generates an ECC key using ykpiv_util_generate_key(). It generates key at one of the slots {0x82.. 0x95} pointed by ykindex - key_slots[ykIndex]

    generateCertificate(ykIndex):

    The keys in the slot are attested through ykpiv_attest() by taking the slot on the index as input. It returns attested key and its length which is then saved into an object pointed by ykIndex using ykpiv_save_object().

    getYKIndex():

    The YKPIV_OBJ_KEY_HISTORY keeps the count of the keys generated in the yubikey. This fucntion fetches the YKPIV_OBJ_KEY_HISTORY using ykpiv_fetch_object() to get the index_yk and returns it.

    saveIndex(ykIndex, archethicIndex):

    It takes ykindex and archethicIndex as input and generates index by combining ykindex and archethic index and keeps it in YKPIV_OBJ_HISTORY.

    signECDSA(hashtoSign, ykIndex):

    It uses ykpiv_sign_data() to sign hashToSign using YKPIV_ALGO_ECCP256 through the key pointed by ykindex - key_slots[ykindex].

    getECDHPoint(ykIndex, euphermerakley) :

    It generated an ecdh point using ykpiv_decipher_data() for the slot pointed by ykindex key_slots[ykIndex].

    getArchEthicIndex():

    Fetches the YKPIV_OBJ_KEY_HISTORY and derives the archethicindex from index_yk saved in key history object.

    incrementIndex():

    We use the 20 data objects to store 20 keys certificates at once. The 21st key generated on the yubikey is stored in newYKIndex = ykindex % 20. The archethic index is incremented and a new key is generated using newYKindex .A certificate is generated and saved in the slot pointed by newYKindex. Finally it returns true if the current YK index is equal to newYKindex and current archethicindex is equal to newarchethic index .

    getRootKey():

    Reads the root key certificate from f9 slot and fetches public key from the certificate. Finally it copies the key into rsa_root_key and returns it.

    getCurrentKey(publicKeySize):

    Generates the previous key index by and fetches the key behind previous key index and returns the ecc key.

    getNextKey( publicKeySize):

    It fetches the key from the ykIndex and returns the ecc_public_key behind the index.

    getPastKey(archEthicIndex, publicKeySize):

    It fetches the keys stored previously in the slot. It first calculates the slot position and then fetches the key at the slot position and return it.

    getRootCertificate( certificateSize):

    Reads the certificate of the rootkey from 0xf9 slot, copies it ykcertificate and returns it.

    getCurrentCertificate(certificateSize):

    Calculates the curent key index and fetches the certificate from the object pointed by the current key index.

    getNextCertificate(certificateSize):

    fetches the certificate of the key pointed by ykindex and returns it.

    getPastCertificate(archEthicIndex, certificateSize):

    calculates the slot posistion according to the offset using archethicindex then fetches the object at the slot position which is a certificate amd returns it.

    signCurrentKey(hashToSign, eccSignSize):

    Calculates the current key index then verifies the Yubikey pin using verifyPinYK() and then signs hashToSign using signECDSA(). The signECDSA() signs the key at the currentkeyindex.

    signPastKey(archEthicIndex, hashToSign, eccSignSize):

    Calculates the slot position by first calculating the offset by using archethicindex. Then it verifies the yubikey pin and signs the key pointed at the slotPosition.

    ecdhCurrentKey(euphemeralKey, eccPointSize):

    Calculates the current key index, verifies the yubikey pin to get the ECDH point through getECDHPoint() fucntion and finally returns it.

    ecdhPastKey( archEthicIndex, euphemeralKey, eccPointSize):

    Calculates the offset and slotPosition using archEthicIndex., verifies Yubikey PIN and gets the ECDH point for the key pointed by slotPosiotion and returns it.

    + \ No newline at end of file diff --git a/build/core/database/index.html b/build/core/database/index.html index 1f297a6af..0caf916ea 100644 --- a/build/core/database/index.html +++ b/build/core/database/index.html @@ -4,7 +4,7 @@ Archethic's database | Archethic - + @@ -24,8 +24,8 @@ So during the write, the transaction index/summary is notified about the last offset of the chain, and help to move forward in the location of new transaction.

    Last index

    As we mentioned in the last addresses chain index file, we need to quickly know what is the last address of a chain, so here we a cache, we says for a given genesis address what is the latest.

    So this table is filled every time a node receives a last address notification.

    Type index

    Because we have type index file, we can also leverages a memory index to know how many transactions for a given type exists. This is useful for key derivation for network transactions. So we can easily and quickly get the size of a chain.

    Chain reader

    Wide column storages provides the capability to extract sub columns information to avoid the load of an entire row in the memory to let the application filter the data. -The filtering can be done on the disk, while make it efficients.

    The behaviour like is a two dimensional key-value pair, where the 1st dimension targets the partition key and the 2nd targets the columns of the row.

    So we achieve a similar approach here, by eing the 1st dimension as the chain file and the 2nd as the list of columns names encoded during the transaction write.

    1. After being able to get the lookup informations from the chain indexes to identify the file and offset in the file of a given transaction, we seek (put the cursor) at the offset position.
    2. Then we can sequentially read columns and values and pick the ones we want
    3. When we reached the end of the transaction (thanks to the size information from the indexes) or the enf of file, we convert those values into a transaction where the values retrieved will be filled in to the structure.

    Write path

    So in order to be written, a transaction follows a write path to make reads efficient.

    After a transaction is written to disk in the genesis chain file, several disks and memory writes are performed to help the indexing of this transaction.

    Transaction's address is written to:

    • the summary index from the subset of the transaction (file)
    • the last addresses index of the chain (in memory and file)
    • the transaction's type index (in memory)
    • the bloom filters (in memory)
    • transaction index (in memory)

    Its public key is also written to the chain's public key index. (file)

    Then transaction's type in memory index number incremented, as well as the chain stats in memory index.

    Read path

    To make read efficients, when a transaction wants to be retrieved, it goes to the read path:

    • Check if the transaction index is present, if yes we have information about the file and position
    • Otherwise we check the bloom filter, if yes, we read the subset summary to identify the position of the transaction, otherwise you inform the transaction does not exists
    • Then a reader is able to perform reads according to the fields requested and the position retrieved.

    Additional of-chain storage

    For now, we have covered the scope of chain storage and retrieval, however we also need to persist some data which are not really inserted into a chain and are important for well-being of the node execution.

    So we have to leverage others kind of storages and indexes as simple key-value in memory loaded from disk.

    The scope of those storages are:

    • Bootstrapping information (last P2P bootstrapping seeds, storage nonce, last sync date)
    • Network statistics (aggregated TPS and nb of transactions)
    • P2P view (aggregated node availability from the beacon chain)
    - +The filtering can be done on the disk, while make it efficients.

    The behaviour like is a two dimensional key-value pair, where the 1st dimension targets the partition key and the 2nd targets the columns of the row.

    So we achieve a similar approach here, by eing the 1st dimension as the chain file and the 2nd as the list of columns names encoded during the transaction write.

    1. After being able to get the lookup informations from the chain indexes to identify the file and offset in the file of a given transaction, we seek (put the cursor) at the offset position.
    2. Then we can sequentially read columns and values and pick the ones we want
    3. When we reached the end of the transaction (thanks to the size information from the indexes) or the enf of file, we convert those values into a transaction where the values retrieved will be filled in to the structure.

    Write path

    So in order to be written, a transaction follows a write path to make reads efficient.

    After a transaction is written to disk in the genesis chain file, several disks and memory writes are performed to help the indexing of this transaction.

    Transaction's address is written to:

    • the summary index from the subset of the transaction (file)
    • the last addresses index of the chain (in memory and file)
    • the transaction's type index (in memory)
    • the bloom filters (in memory)
    • transaction index (in memory)

    Its public key is also written to the chain's public key index. (file)

    Then transaction's type in memory index number incremented, as well as the chain stats in memory index.

    Read path

    To make read efficients, when a transaction wants to be retrieved, it goes to the read path:

    • Check if the transaction index is present, if yes we have information about the file and position
    • Otherwise we check the bloom filter, if yes, we read the subset summary to identify the position of the transaction, otherwise you inform the transaction does not exists
    • Then a reader is able to perform reads according to the fields requested and the position retrieved.

    Additional of-chain storage

    For now, we have covered the scope of chain storage and retrieval, however we also need to persist some data which are not really inserted into a chain and are important for well-being of the node execution.

    So we have to leverage others kind of storages and indexes as simple key-value in memory loaded from disk.

    The scope of those storages are:

    • Bootstrapping information (last P2P bootstrapping seeds, storage nonce, last sync date)
    • Network statistics (aggregated TPS and nb of transactions)
    • P2P view (aggregated node availability from the beacon chain)
    + \ No newline at end of file diff --git a/build/core/election/index.html b/build/core/election/index.html index 87ea7fafb..232342183 100644 --- a/build/core/election/index.html +++ b/build/core/election/index.html @@ -4,15 +4,15 @@ Election | Archethic - +

    Election

    Archethic provides rotating algorithm to elect validation and storage nodes.

    Validation and Storage Election algorithm provides also list of heuristic constraints to fine grained elections.

    Heuristic constraints

    An ETS table is used to store the last constraints values for a faster lookup.

    Storage constraints are defined by:

    • minimum storage geographical patches
    • minimum storage average by geographical patch
    • number of replicast

    Validation constraints are defined by:

    • minimum validation geographical patch distribution
    • minimum validation nodes
    • validation number based on a given transaction

    Low-Level integrations

    Sometimes for performance issue, we are leveraging low-level programming in C, to perform fast computation.

    Hypergeomtric distribution

    For example, the Hypergeometric Distribution simulation is computed in C and wrapped in an Erlang port communication. But for better simulation lookup, a cache is provided as process to hold the last value for a given number of nodes. -If the number of nodes changes, the hypergeometric distribution will be trigger.

    The C program is using GMP for big float arithemetic operations and OMP for parallel computations to make it efficient.

    - +If the number of nodes changes, the hypergeometric distribution will be trigger.

    The C program is using GMP for big float arithemetic operations and OMP for parallel computations to make it efficient.

    + \ No newline at end of file diff --git a/build/core/governance/code-proposals-cd/index.html b/build/core/governance/code-proposals-cd/index.html index e4f6792ef..37c0404a7 100644 --- a/build/core/governance/code-proposals-cd/index.html +++ b/build/core/governance/code-proposals-cd/index.html @@ -4,14 +4,14 @@ CD | Archethic - +

    CD

    The archethic-cd target produces an image capable of running archethic_node release. -The objective of cd is to test the code proposal in a testnet environment which means spawning:

    • 5 nodes that run the new version
    • 2 validator containers
    • 1 prometheus container
    • 1 benchmark container

    the cd happens in multiple steps:

    • first we start by copying the upgrade release and the logs we created in the CI part to a tmp folder
    • next we create the subnet and we start all the containers responsible for the CD
    • The validator container ensures that every node is up and do a benchmark before we apply the upgrade
    • We apply the upgrade
    • we start the second round of validation which is responsible for running benchmarks again, running the playbooks and gathering metrics from prometheus.
    • we wait for the final validation message and we clean all containers and images we created.

    nb: the cleaning phase will happen even in the case of failure.

    - +The objective of cd is to test the code proposal in a testnet environment which means spawning:

    • 5 nodes that run the new version
    • 2 validator containers
    • 1 prometheus container
    • 1 benchmark container

    the cd happens in multiple steps:

    • first we start by copying the upgrade release and the logs we created in the CI part to a tmp folder
    • next we create the subnet and we start all the containers responsible for the CD
    • The validator container ensures that every node is up and do a benchmark before we apply the upgrade
    • We apply the upgrade
    • we start the second round of validation which is responsible for running benchmarks again, running the playbooks and gathering metrics from prometheus.
    • we wait for the final validation message and we clean all containers and images we created.

    nb: the cleaning phase will happen even in the case of failure.

    + \ No newline at end of file diff --git a/build/core/governance/code-proposals-ci/index.html b/build/core/governance/code-proposals-ci/index.html index cca91a79f..5ef74649f 100644 --- a/build/core/governance/code-proposals-ci/index.html +++ b/build/core/governance/code-proposals-ci/index.html @@ -4,7 +4,7 @@ CI | Archethic - + @@ -12,8 +12,8 @@

    CI

    After a code proposal is received by a node in the network and passes initial validation, the next step in the process is the CI.

    The archethic-ci target produces an image with build tools. Its goal is to compile the source code into archethic_node release. The CI part is powered by scripts/proposal_ci_job.sh. -The script runs in a container named archethic-prop-{address}, it produces: release upgrade of archethic_node and combined log of application of a code proposal to the source code, execution of unit tests, and log from linter. The log can be obtained with docker logs, the release upgrade and the validator with docker cp, after that the container can be disposed.

    the logs are collected in ci_logfile.txt and this file is copied at the end to tmp directory created in filesystem.

    the script runs multiple commands:

    • Creates a branch prop_{proposal_address}
    • Apply the changes to the branch
    • Add the changes and commit
    • Checking if the project is formatted correctly
    • Check if the project compiles without warning
    • Credo
    • Sobelow
    • Knigge
    • Runs the test suite
    • Dialyzer
    • Checks if dependencies are outdated
    • And Finally it creates an upgrade release with Distillery
    - +The script runs in a container named archethic-prop-{address}, it produces: release upgrade of archethic_node and combined log of application of a code proposal to the source code, execution of unit tests, and log from linter. The log can be obtained with docker logs, the release upgrade and the validator with docker cp, after that the container can be disposed.

    the logs are collected in ci_logfile.txt and this file is copied at the end to tmp directory created in filesystem.

    the script runs multiple commands:

    • Creates a branch prop_{proposal_address}
    • Apply the changes to the branch
    • Add the changes and commit
    • Checking if the project is formatted correctly
    • Check if the project compiles without warning
    • Credo
    • Sobelow
    • Knigge
    • Runs the test suite
    • Dialyzer
    • Checks if dependencies are outdated
    • And Finally it creates an upgrade release with Distillery
    + \ No newline at end of file diff --git a/build/core/governance/code-proposals/index.html b/build/core/governance/code-proposals/index.html index 3ee490af4..eb6f1f7ec 100644 --- a/build/core/governance/code-proposals/index.html +++ b/build/core/governance/code-proposals/index.html @@ -4,14 +4,14 @@ Code Proposals | Archethic - +

    Code Proposals

    Archethic Blockchain is using code proposals to have a way to upgrade current blockchain -code in a automated and tested way.

    A pending code proposal contains the following fields:

    • Address: Address of the code proposal
    • Approvals: Approvals signed by the users
    • Changes: Diff between current version and code proposal
    • Description: Description of the code proposal
    • Files: Files changed in code proposal
    • Previous Public Key
    • Timestamp
    • Version: target version

    For a code proposal to be valid it needs to validate 3 conditions:

    • The version in code proposal needs to be a successor version of the current one
    • The changes need to contain a valid appup file
    • the code proposal is applicable on the current branch

    Code proposals can be visualised in the governance section of the UI.

    when a code proposal get enough approvals from members of technical council (more than the threshhold), it automatically launchs the CI/CD process.

    - +code in a automated and tested way.

    A pending code proposal contains the following fields:

    • Address: Address of the code proposal
    • Approvals: Approvals signed by the users
    • Changes: Diff between current version and code proposal
    • Description: Description of the code proposal
    • Files: Files changed in code proposal
    • Previous Public Key
    • Timestamp
    • Version: target version

    For a code proposal to be valid it needs to validate 3 conditions:

    • The version in code proposal needs to be a successor version of the current one
    • The changes need to contain a valid appup file
    • the code proposal is applicable on the current branch

    Code proposals can be visualised in the governance section of the UI.

    when a code proposal get enough approvals from members of technical council (more than the threshhold), it automatically launchs the CI/CD process.

    + \ No newline at end of file diff --git a/build/core/index.html b/build/core/index.html index f33deea9d..01cf4e7e7 100644 --- a/build/core/index.html +++ b/build/core/index.html @@ -4,15 +4,15 @@ Core development | Archethic - +

    Core development

    Archethic Node repository can be found here

    Technology Stack

    Archethic Blockchain node used a combination of Elixir & C programming languages to achieve fast and reliable decentralized network.

    Why Elixir ?

    Elixir is a dynamic, functional language for building scalable and maintainable applications.

    It leverages the Erlang VM, known for running low-latency, distributed, and fault-tolerant systems.

    Elixir is successfully used in web development, embedded software, data ingestion, and multimedia processing, across a wide range of industries.

    When we are building P2P systems and Blockchain technologies we need to think about fault-tolerance, low-latency, concurrent/parallelism. Elixir matches all those requirements.

    Because all Elixir code runs inside lightweight threads of execution (called processes) that are isolated and exchange information via messages, we can build fast -processing of data which result in a high TPS for a better scalability.

    The unavoidable truth about software running in production is that things will go wrong.

    Even more when we take network, file systems, and other third-party resources into account.

    Elixir provides supervisors which describe how to restart parts of your system when things go awry, going back to a known initial state that is guaranteed to work.

    This feature ensures in case of failure, the entire system will not be down, and the isolation provided by the processes and their restarting strategy helps us to achieve it.

    Functional programming promotes a coding style that helps developers write code that is short, concise, and maintainable.

    Out of the box, Erlang VM provides the capability to hot reload code, which is the best case scenario if we want to provide an on-chain governance without restarting nodes.

    Why C ?

    We need to interact with hardware components and C seems the best candidate, so we are using this language to communicate with TPM for instance.

    But also, for some intensive task which are really complex in computing, we rely on C to perform those processing.

    Structure

    Code base is divided into domains (contexts) for better single responsibility principle:

    core structure

    - +processing of data which result in a high TPS for a better scalability.

    The unavoidable truth about software running in production is that things will go wrong.

    Even more when we take network, file systems, and other third-party resources into account.

    Elixir provides supervisors which describe how to restart parts of your system when things go awry, going back to a known initial state that is guaranteed to work.

    This feature ensures in case of failure, the entire system will not be down, and the isolation provided by the processes and their restarting strategy helps us to achieve it.

    Functional programming promotes a coding style that helps developers write code that is short, concise, and maintainable.

    Out of the box, Erlang VM provides the capability to hot reload code, which is the best case scenario if we want to provide an on-chain governance without restarting nodes.

    Why C ?

    We need to interact with hardware components and C seems the best candidate, so we are using this language to communicate with TPM for instance.

    But also, for some intensive task which are really complex in computing, we rely on C to perform those processing.

    Structure

    Code base is divided into domains (contexts) for better single responsibility principle:

    core structure

    + \ No newline at end of file diff --git a/build/core/mining/index.html b/build/core/mining/index.html index d4619788c..d5a0641ad 100644 --- a/build/core/mining/index.html +++ b/build/core/mining/index.html @@ -4,14 +4,14 @@ Mining | Archethic - +

    Mining

    Transaction validation (aka Mining) defines processes and validations algorithms.

    Once a transaction is under validation a given process is dedicated to this transaction. -Depending of the number of validation nodes several validation implementation are defined.

    Along with validation workflow and processes, this context defines high levels functions to get the validation nodes and to assert their election.

    Standalone validation workflow

    When there is not only a single validation nodes (during the network initialization), a process is spawn to manage the transaction validation as a Task to run it (fire-off)

    Distributed validation

    Worflow

    FSM

    When there are multiple validation nodes, a distributed workflow process is spawn as FSM to define the states and evolution of the ARCH consensus algorithm.

    This FSM process is ran by all the validation nodes.

    Therefore each validation maintains a Registry of all the pending transaction validation processes, to be able to redirect P2P messages to the right process.

    - +Depending of the number of validation nodes several validation implementation are defined.

    Along with validation workflow and processes, this context defines high levels functions to get the validation nodes and to assert their election.

    Standalone validation workflow

    When there is not only a single validation nodes (during the network initialization), a process is spawn to manage the transaction validation as a Task to run it (fire-off)

    Distributed validation

    Worflow

    FSM

    When there are multiple validation nodes, a distributed workflow process is spawn as FSM to define the states and evolution of the ARCH consensus algorithm.

    This FSM process is ran by all the validation nodes.

    Therefore each validation maintains a Registry of all the pending transaction validation processes, to be able to redirect P2P messages to the right process.

    + \ No newline at end of file diff --git a/build/core/mining/proof-of-work/index.html b/build/core/mining/proof-of-work/index.html index 3f287540b..bb1e29b56 100644 --- a/build/core/mining/proof-of-work/index.html +++ b/build/core/mining/proof-of-work/index.html @@ -4,14 +4,14 @@ Proof of Work algorithm | Archethic - +

    Proof of Work algorithm

    The Archethic's proof of work algorithm defines way to assert the validity of the origin signature.

    It defines two main components:

    • List of origin public key candidates
    • Lookup of the origin public key to verify the signature

    Origin public key candidates

    Origin public keys listed for a given transaction are known by the entire network and are shared between clients and nodes.

    However, a given transaction can specify - through smart-contract the origin family.

    By this way, the nodes are able to extract the list of origin public keys to assert with the signature.

    Lookup

    A simple algorithm is defined to scan the entire list of public keys candidates and verify the cryptographic origin signature.

    Once the public key is found, it becomes the Proof of Work. -If no public key is found, the proof of work is invalid and the transaction as well.

    info

    Telemetry timing is used for this algorithm to indicate how fast the algorithm is with a given number of public keys

    - +If no public key is found, the proof of work is invalid and the transaction as well.

    info

    Telemetry timing is used for this algorithm to indicate how fast the algorithm is with a given number of public keys

    + \ No newline at end of file diff --git a/build/core/mining/transaction-context/index.html b/build/core/mining/transaction-context/index.html index f179bffb8..02f497845 100644 --- a/build/core/mining/transaction-context/index.html +++ b/build/core/mining/transaction-context/index.html @@ -4,14 +4,14 @@ Transaction context retrieval | Archethic - +

    Transaction context retrieval

    When a transaction is under validation, after the pending transaction validation, the nodes are fetching the context of the transaction.

    Retrieval

    This retrieval include multiple queries to be able to perform an efficient validation:

    • Get the previous transaction
    • Get the unspent outputs
    • Get the P2P view of the storage nodes (chain and beacon)

    All of thoses queries happen concurrently making efficient the transaction validation.

    To be sure the data is fetched faster, an algorithm is provided to first target the closest nodes from the validation node but -also ensure the if node fails to respond, other nodes will take the relay.

    However, if for the P2P view query, some node doesn't respond in a timeframe, it will be considered as offline, and through aggregation during the replication tree creation, this node will not receive replication request

    Node distribution

    To be sure all the validation will get the best of this retrieval, an algorithm have been developed to ensure a fair distribution of the nodes invovled in those queries.

    The storage nodes for the previous chain are split into 2 group: previous transaction and unspent outputs

    This way a given node will get several responses ensuring the atomic commitment of the transaction.

    The algorithm defines the number of group to have and the number of nodes in each group.

    Also it balances the groups to be sure a group have the same number of node without duplication

    - +also ensure the if node fails to respond, other nodes will take the relay.

    However, if for the P2P view query, some node doesn't respond in a timeframe, it will be considered as offline, and through aggregation during the replication tree creation, this node will not receive replication request

    Node distribution

    To be sure all the validation will get the best of this retrieval, an algorithm have been developed to ensure a fair distribution of the nodes invovled in those queries.

    The storage nodes for the previous chain are split into 2 group: previous transaction and unspent outputs

    This way a given node will get several responses ensuring the atomic commitment of the transaction.

    The algorithm defines the number of group to have and the number of nodes in each group.

    Also it balances the groups to be sure a group have the same number of node without duplication

    + \ No newline at end of file diff --git a/build/core/mining/transaction-validation/index.html b/build/core/mining/transaction-validation/index.html index cd749e224..36e801707 100644 --- a/build/core/mining/transaction-validation/index.html +++ b/build/core/mining/transaction-validation/index.html @@ -4,7 +4,7 @@ Pending transaction validation | Archethic - + @@ -12,8 +12,8 @@

    Pending transaction validation

    When a transaction is under validation a process is started to perform the ARCH consensus workflow.

    At the beginning of this workflow, a prior validation is done to detect if the transaction is errornous according of several implementations based on the type of the transactions and other criterias.

    1. Check of the previous signature
    2. Check if there is smart contract, of its validity
    3. Check the content size does not exceed the threshold defined in the configuration
    4. Provide verification based on the transaction type

    Smart contract verification

    If a transaction contains smart contract, it needs to verify certains things to be sure the smart contract is valid and the nodes will be able to interpret the contract, for example:

    • Parse the contract and determines its validity
    • If an ownership and its secret have been encoded for the node shared storage nonce public key, so they will be able create new transaction on the chain

    Transaction type verification

    Node transaction verification

    Before to join the network, node must submit a transaction with a type "node". The following checks are performed:

    • Decoding of the transaction's content
    • Assert the origin key is authorized along with the certification. (See Hardware Root of Trust)
    • Check if there are not already existing nodes with the same ip, port and public key

    Node shared secrets transaction verification

    Periodically the nodes submit a renewal of node shared secrets through a transaction. The following checks are performed:

    • Decoding of the transactio's content
    • Check is the new authorized node proposed are available

    Token transaction verification

    To create a new asset (Token), a transaction with a type "token" is submitted to the network.

    The nodes asserts the content of the Token transactions respects the formatting to be able for the node to interpret it and mint tokens.

    Oracle transaction verification

    When the OracleChain polled some external data and build a transaction to propose the new changes, the nodes will assert the content from the services data are correct regarding the service SLA. (See OracleChain Service)

    OracleSummary transaction verification

    Periodically, after a cycle/epoch, the nodes submit a transaction which summarizes the entire oracle chain data for this epoch. -Then the nodes have to assert the changes through:

    • Fetching the entire oracle chain for this epoch
    • Assert the aggregated content in the oracle chain summary matches the data from all the transaction in the oracle chain

    Code proposal transaction verification

    When a new upgrade of the network is proposed, a transaction embeds the changes and is sent to the network. (See: On-Chain Governance

    The following checks are performed:

    • Decoding the proposal changes (like Git patch)
    • Assert the validity of the changes: format, conformity with the latest Git commit

    Code approval transaction verification

    When an updated have been proposed, technical commitee member can vote for a proposal, then a transaction is sent. (See: On-Chain Governance)

    The following checks are performed:

    • Check if the approver is a member of the technical commitee,
    • Check if the proposal exists
    • Check if the proposal hasn't been signed by the approver earlier
    - +Then the nodes have to assert the changes through:

    • Fetching the entire oracle chain for this epoch
    • Assert the aggregated content in the oracle chain summary matches the data from all the transaction in the oracle chain

    Code proposal transaction verification

    When a new upgrade of the network is proposed, a transaction embeds the changes and is sent to the network. (See: On-Chain Governance

    The following checks are performed:

    • Decoding the proposal changes (like Git patch)
    • Assert the validity of the changes: format, conformity with the latest Git commit

    Code approval transaction verification

    When an updated have been proposed, technical commitee member can vote for a proposal, then a transaction is sent. (See: On-Chain Governance)

    The following checks are performed:

    • Check if the approver is a member of the technical commitee,
    • Check if the proposal exists
    • Check if the proposal hasn't been signed by the approver earlier
    + \ No newline at end of file diff --git a/build/core/oracle-chain/index.html b/build/core/oracle-chain/index.html index 74c4e6ed2..0f77fd587 100644 --- a/build/core/oracle-chain/index.html +++ b/build/core/oracle-chain/index.html @@ -4,13 +4,13 @@ OracleChain | Archethic - +
    -

    OracleChain

    OracleChain is an internal mechanism inside Archethic Node Software making external data fetching embedded into a transaction chain.

    It's built around three main components:

    - +

    OracleChain

    OracleChain is an internal mechanism inside Archethic Node Software making external data fetching embedded into a transaction chain.

    It's built around three main components:

    + \ No newline at end of file diff --git a/build/core/oracle-chain/memory-table/index.html b/build/core/oracle-chain/memory-table/index.html index be24bf3d7..aa1704a09 100644 --- a/build/core/oracle-chain/memory-table/index.html +++ b/build/core/oracle-chain/memory-table/index.html @@ -4,13 +4,13 @@ OracleChain Memory Tables | Archethic - +
    -

    OracleChain Memory Tables

    OracleChain component provides scheduler and services to maintain transaction chain and real world data integration.

    But we need a way to access quickly this information for better computation latency.

    For this purpose, the OracleChain service maintains a memory table using ETS to hold the information according to their date.

    It represented in that way:

    TimestampServiceData

    For example for the UCO service we may have:

    TimestampServiceData
    1622801400UCO%{ "eur" => 0.02 }

    The table is loading after each oracle or oracle summary transaction and during the bootstrap for faster computation.

    info

    The transaction's fee algorithm is using this cached information to provide this computation quickly

    - +

    OracleChain Memory Tables

    OracleChain component provides scheduler and services to maintain transaction chain and real world data integration.

    But we need a way to access quickly this information for better computation latency.

    For this purpose, the OracleChain service maintains a memory table using ETS to hold the information according to their date.

    It represented in that way:

    TimestampServiceData

    For example for the UCO service we may have:

    TimestampServiceData
    1622801400UCO%{ "eur" => 0.02 }

    The table is loading after each oracle or oracle summary transaction and during the bootstrap for faster computation.

    info

    The transaction's fee algorithm is using this cached information to provide this computation quickly

    + \ No newline at end of file diff --git a/build/core/oracle-chain/scheduler/index.html b/build/core/oracle-chain/scheduler/index.html index 6f965069c..e0e5cea4d 100644 --- a/build/core/oracle-chain/scheduler/index.html +++ b/build/core/oracle-chain/scheduler/index.html @@ -4,14 +4,14 @@ OracleChain Scheduler | Archethic - +

    OracleChain Scheduler

    The OracleChain module contains a process in charge of scheduling the data fetching and transaction submitting.

    It's modeled as finite state machine.

    Three main state are represented:

    • IDLE: When the process is waiting a new tick to be triggered based on some interval
    • Polling: When the process must fetch data from external sources
    • Summary: When the process must aggregate the entire polling transactions for a given interval
    info

    Mainnet and Testnet can have different values based on environment variables.

    This is due to simulate quicker events and summary.

    For example,

    • on Mainnet: each polling is triggered each minute and the summary each day at 00:00 UTC.
    • on Testnet: each polling is triggered each 10s and the summary each minute. -:::

    For each actionable state, the process determines if the current running node is in charge to fetch or emit the transaction, based on the election algorithm.

    Also to avoid any useless transactions, the process identifies if a new transaction must be emitted regarding the freshness of the information retrieved from the Oracle services.

    You can find below a schema representing this finite state machine and its related events.

    :::note

    - +:::

    For each actionable state, the process determines if the current running node is in charge to fetch or emit the transaction, based on the election algorithm.

    Also to avoid any useless transactions, the process identifies if a new transaction must be emitted regarding the freshness of the information retrieved from the Oracle services.

    You can find below a schema representing this finite state machine and its related events.

    :::note

    + \ No newline at end of file diff --git a/build/core/oracle-chain/service/index.html b/build/core/oracle-chain/service/index.html index 57d1c5700..d2a05764d 100644 --- a/build/core/oracle-chain/service/index.html +++ b/build/core/oracle-chain/service/index.html @@ -4,14 +4,14 @@ Oracle Chain Service | Archethic - +

    Oracle Chain Service

    OracleChain provides a way to extend it and to add more services to the scheduler.

    Behavior

    The behavior defines functions to extend to support new services

    • Fetch: This will perform the data fetching and will return a map of the data to be serialized by the transaction
    • Verify: This will let validation nodes asserts the information provided in the new oracle transaction
    • Parse data: This will parse the incoming data from the oracle transaction and checks its validatity

    Example

    UCO service behavior is implemented in such way:

    • Fetch: it request Coingecko to fetch the USD/EUR pair of the Archethic token
    • Verify: fetch Coingecko again to gather the token price and compare price using a standard deviation function with a threshold of 0.01
    • Parse data: Ensure the data is map with the USD/EUR pair and an amount encoded as float

    Configuration

    Along with the definition of the new service, we need to inform how to add this service to the scheduler. -For this we need to add the service in the configuration (config.exs)

    config :archethic, Archethic.OracleChain,
    services: [
    uco: Archethic.OracleChain.Services.UCOPrice,
    mynewservice: Archethic.OracleChain.Service.MyNewService # Added line
    ]
    - +For this we need to add the service in the configuration (config.exs)

    config :archethic, Archethic.OracleChain,
    services: [
    uco: Archethic.OracleChain.Services.UCOPrice,
    mynewservice: Archethic.OracleChain.Service.MyNewService # Added line
    ]
    + \ No newline at end of file diff --git a/build/core/p2p/index.html b/build/core/p2p/index.html index ae5e30b82..8b206c17a 100644 --- a/build/core/p2p/index.html +++ b/build/core/p2p/index.html @@ -4,13 +4,13 @@ P2P | Archethic - + - + + \ No newline at end of file diff --git a/build/core/p2p/messaging/index.html b/build/core/p2p/messaging/index.html index 8b737b5bd..001b14e83 100644 --- a/build/core/p2p/messaging/index.html +++ b/build/core/p2p/messaging/index.html @@ -4,14 +4,14 @@ Messaging | Archethic - +

    Messaging

    Archethic Blockchain is used a brand new P2P layer from the Supervised Multicast, but to ensure the best data transmission possible, we are using two modern approaches: Stream Multiplexer and Binary Protocol.

    Those two features helps to achieve a low latency P2P messaging.

    Stream Multiplexer

    Stream Multiplexing allows multiple independent logical streams to share a common underlying transport stream and
    -there are many independent streams of communication between peers.

    Stream Multiplexing amortizes the overhead of establishing a transport connection and helps to distinguish which messages to handle in a concurrent way.

    |---------|                           |---------|
    | Service | | Service |
    |---------| |---------|
    | Msg ID: 2 |------------| |
    |--------------| Connection |---------| Msg ID: 1
    | TCP |
    |--------------|------------|---------|
    | Msg ID: 1 | Msg ID: 2
    |---------| |---------|
    | Service | | Service |
    |---------| |---------|

    In the current implementation, each node connection is backed by a GenServer which serializes the call the remote endpoint, through an established connection.

    Even if the calls are serialized, it leverages a non-blocking messaging, so multiple messages can be sent with several independant clients. However after a certain amount of time(timeout: 5s), the message is dropped to reduce the message queue.

    Binary Protocol

    Network latency is very important to reach an unlimited and really scalable network and using binary protocol helps to reduce bandwidth.

    Different kind of solutions existing for binary protocol: Protobuf, Avro, Thrift, MsgPack, etc.

    However, to support a custom and efficient binary serialization, Archethic uses it own binary protocol through the transport layer to reduce and to optimize by the message, the data to send.

    This aspect is important, when we are dealing with bits, to reduce byte size.

    For example, if we want to serialize this bitstring: 11100000

    • With existing solutions, we may end up with a list of 8 bytes
    • With a custom solution, we serialize it with only 1 byte

    Message envelop

    To support privacy and security, each message is wrapped in a MessageEnvelop struct within:

    • Message ID: used in the stream multiplexing
    • Message to send
    • Sender public key: used to determine the liveness of the node from the recipient P2P view

    The envelop is then encrypted with the recipient public key (known by the network) using ECIES cryptography protocol.

    - +there are many independent streams of communication between peers.

    Stream Multiplexing amortizes the overhead of establishing a transport connection and helps to distinguish which messages to handle in a concurrent way.

    |---------|                           |---------|
    | Service | | Service |
    |---------| |---------|
    | Msg ID: 2 |------------| |
    |--------------| Connection |---------| Msg ID: 1
    | TCP |
    |--------------|------------|---------|
    | Msg ID: 1 | Msg ID: 2
    |---------| |---------|
    | Service | | Service |
    |---------| |---------|

    In the current implementation, each node connection is backed by a GenServer which serializes the call the remote endpoint, through an established connection.

    Even if the calls are serialized, it leverages a non-blocking messaging, so multiple messages can be sent with several independant clients. However after a certain amount of time(timeout: 5s), the message is dropped to reduce the message queue.

    Binary Protocol

    Network latency is very important to reach an unlimited and really scalable network and using binary protocol helps to reduce bandwidth.

    Different kind of solutions existing for binary protocol: Protobuf, Avro, Thrift, MsgPack, etc.

    However, to support a custom and efficient binary serialization, Archethic uses it own binary protocol through the transport layer to reduce and to optimize by the message, the data to send.

    This aspect is important, when we are dealing with bits, to reduce byte size.

    For example, if we want to serialize this bitstring: 11100000

    • With existing solutions, we may end up with a list of 8 bytes
    • With a custom solution, we serialize it with only 1 byte

    Message envelop

    To support privacy and security, each message is wrapped in a MessageEnvelop struct within:

    • Message ID: used in the stream multiplexing
    • Message to send
    • Sender public key: used to determine the liveness of the node from the recipient P2P view

    The envelop is then encrypted with the recipient public key (known by the network) using ECIES cryptography protocol.

    + \ No newline at end of file diff --git a/build/core/p2p/node/index.html b/build/core/p2p/node/index.html index 86f003114..feb496fca 100644 --- a/build/core/p2p/node/index.html +++ b/build/core/p2p/node/index.html @@ -4,14 +4,14 @@ Node | Archethic - +

    Node

    Data structure

    Archethic is using a structured and open P2P network based on some properties:

    A node include a list P2P information such as:

    • IP
    • P2P Port
    • HTTP Port (Web layer - Explorer)
    • P2P Protocol (i.e TCP)
    • First public key
    • Last public key
    • GeoPatch (for geographical distribution based on the GeoIP of the IP)
    • NetworkPatch (for P2P responsiveness based on the latency to reach it)
    • Reward address (the address where the mining rewards should be sent)
    • Global availability (from BeaconChain qualification)
    • Local availability (from Supervised Multicast)
    • Average availability (from BeaconChain qualification)
    • Authorized
    • Authorization Date

    P2P tables view

    The application is stored a P2P view in memory table using ETS (Erlang Term Storage) to support fast query to fetch node information.

    When network transaction(node, node shared secrets) are loaded inside the system, MemTableLoader module is called to populate the tables. This is also true during the bootstrap of the node to fill up the data as cache.

    Discovery table

    first public keylast public keyIPP2P portHTTP portgeo patchnetwork patchaverage availabilityavailability historyenrollment datetransportreward ddress

    This table contains all the P2P information for a given node index by its first public key

    Availability lookup table

    first public key

    This table indicates the node availability, if its first public key is present in the table. -The purpose of this short table is to provide a really fast access to determine the availability.

    Authorized nodes table

    first public keyauthorization date

    All the node public keys presents in this table will be considered at authorized nodes along with their authorization date.

    So in order to determine if a node is authorized a fast lookup can be performed.

    In the same order, to get the list of authorized nodes by folding this table which can then lookup data from the discovery table to fetch all the information regarding the authorized node.

    Nodes key lookup table

    last public keyfirst public key

    This is a reverse ordered table where we can have access to the first node public key from its last public key, without traversing the entire discovery table

    - +The purpose of this short table is to provide a really fast access to determine the availability.

    Authorized nodes table

    first public keyauthorization date

    All the node public keys presents in this table will be considered at authorized nodes along with their authorization date.

    So in order to determine if a node is authorized a fast lookup can be performed.

    In the same order, to get the list of authorized nodes by folding this table which can then lookup data from the discovery table to fetch all the information regarding the authorized node.

    Nodes key lookup table

    last public keyfirst public key

    This is a reverse ordered table where we can have access to the first node public key from its last public key, without traversing the entire discovery table

    + \ No newline at end of file diff --git a/build/sdk/dart/index.html b/build/sdk/dart/index.html index a61a5826f..0b0b6a1f6 100644 --- a/build/sdk/dart/index.html +++ b/build/sdk/dart/index.html @@ -4,14 +4,14 @@ Dart SDK | Archethic - +

    Dart SDK

    Archethic Blockchain Official Dart SDK available on Github -Dart Packages published on Pub.dev

    This SDK will help you to generate transaction on top of Archethic Blockchain.

    info

    This SDK is mainly used in the official Archethic Wallet using Flutter. Please have a look if you are interested.

    - +Dart Packages published on Pub.dev

    This SDK will help you to generate transaction on top of Archethic Blockchain.

    info

    This SDK is mainly used in the official Archethic Wallet using Flutter. Please have a look if you are interested.

    + \ No newline at end of file diff --git a/build/sdk/go/index.html b/build/sdk/go/index.html index bc7bd2f6a..e6174d37c 100644 --- a/build/sdk/go/index.html +++ b/build/sdk/go/index.html @@ -4,13 +4,13 @@ Go SDK | Archethic - +
    -

    Go SDK

    Archethic Blockchain Official Go SDK is available on Github


    This SDK will help you to generate transaction on top of Archethic Blockchain.

    - +

    Go SDK

    Archethic Blockchain Official Go SDK is available on Github


    This SDK will help you to generate transaction on top of Archethic Blockchain.

    + \ No newline at end of file diff --git a/build/sdk/index.html b/build/sdk/index.html index 666fc4d32..29a4f1583 100644 --- a/build/sdk/index.html +++ b/build/sdk/index.html @@ -4,13 +4,13 @@ SDK | Archethic - + - + + \ No newline at end of file diff --git a/build/sdk/js/index.html b/build/sdk/js/index.html index baf91e5b3..7fbc1c8ea 100644 --- a/build/sdk/js/index.html +++ b/build/sdk/js/index.html @@ -4,13 +4,13 @@ Javascript SDK | Archethic - +
    -

    Javascript SDK

    Archethic Blockchain Official Javascript SDK is available on Github


    This SDK will help you to generate transaction on top of Archethic Blockchain.

    info

    The AEWeb product is using this SDK to build transaction to deploy web hosting assets in the Archethic Blockchain. Please have a look

    - +

    Javascript SDK

    Archethic Blockchain Official Javascript SDK is available on Github


    This SDK will help you to generate transaction on top of Archethic Blockchain.

    info

    The AEWeb product is using this SDK to build transaction to deploy web hosting assets in the Archethic Blockchain. Please have a look

    + \ No newline at end of file diff --git a/build/smart-contracts/examples/index.html b/build/smart-contracts/examples/index.html index 3bd7ff4ee..b8926bb1e 100644 --- a/build/smart-contracts/examples/index.html +++ b/build/smart-contracts/examples/index.html @@ -4,7 +4,7 @@ Smart Contracts - Examples | Archethic - + @@ -13,8 +13,8 @@ It will create a new transaction with a content "Hello world!".

    @version 1

    actions triggered_by: datetime, at: 1689857160 do
    Contract.set_content("Hello world!")
    end

    ICO (Initial Coin Offering)

    This contract the crowdsale of an ICO.

    Users can send UCOs to this contract and will receive 10000 times the amount as token from this contract.

    It is possible for users to define a different receive address.

    The Smart Contract's chain must define a token.

    @version 1

    condition triggered_by: transaction, on: buyToken(recipient_address) do
    transfered_amount = Map.get(transaction.uco_movements, contract.address)
    transfered_amount != nil && transfered_amount > 0
    end

    actions triggered_by: transaction, on: buyToken(recipient_address) do
    transfers = get_transfered_amount()

    # Get the amount of UCO sent to this contract
    amount_send = number_of_uco_sent()

    # Convert UCO to the number of tokens to credit. Each UCO worth 10000 token
    token_to_credit = number_of_tokens(amount_send)

    Contract.set_type("transfer")

    # Users can specify to send the token in a different address
    Contract.add_token_transfer(to: recipient_address, token_address: token_address(), amount: token_to_credit)
    end

    fun number_of_tokens(uco_amount) do
    uco_amount * 10000
    end

    fun number_of_uco_sent() do
    Map.get(transaction.uco_movements, contract.address)
    end

    fun get_transfered_amount() do
    Map.get(transaction.uco_transfers, contract.address)
    end

    fun token_address() do
    Chain.get_genesis_address(contract.address)
    end

    Recurring ICO

    This contract will automatically call the ICO contract with 2 UCOs every hours. The tokens will be transfered in a different chain.

    @version 1

    actions triggered_by: interval, at: "0 * * * *" do

    ico_contract = 0x0000993F3BE0CE40541E47735AA083854ECAC7785B39435C90D8456C777B9E9D81F1

    Contract.set_type("transfer")
    Contract.add_recipient address: ico_contract, action: "buyTokens", args: [0x0000A3A066DD64FBD51AE384F2383684B3803BC72012BFEAA9CD1C93AB7C60F584DC]
    Contract.add_uco_transfer(amount: 2, to: ico_contract)
    end

    Vote system

    This contract counts the number of votes for list of candidates ("Miss Scarlett", "Colonel Mustard"). For each vote request, it increments the number of votes for the given candidate. -A voter can only vote once because the contract keep track of the voters genesis addresses.

    info

    A public function is available to be able to easily query the number of votes in the system

    @version 1
    condition triggered_by: transaction, on: vote(candidate) do
    if !List.in?(["Miss Scarlett", "Colonel Mustard"], candidate) do
    throw code: 1, message: "unknown candidate", data: candidate
    end

    voters_genesis_addresses = State.get("voters_genesis_addresses", [])
    voter_genesis_address = Chain.get_genesis_address(transaction.address)

    if List.in?(voters_genesis_addresses, voter_genesis_address) do
    throw code: 2, message: "already voted", data: [
    address: transaction.address,
    genesis: voter_genesis_address
    ]
    end

    true
    end

    actions triggered_by: transaction, on: vote(candidate) do
    scarlett_votes = State.get("Miss Scarlett", 0)
    mustard_votes = State.get("Colonel Mustard", 0)
    voters = State.get("voters_genesis_addresses", [])

    if candidate == "Miss Scarlett" do
    scarlett_votes = scarlett_votes + 1
    end
    if candidate == "Colonel Mustard" do
    mustard_votes = mustard_votes + 1
    end

    # Add the current voter genesis address to the list
    # So he/she cannot vote twice
    voters = List.prepend(voters, Chain.get_genesis_address(transaction.address))

    State.set("Miss Scarlett", scarlett_votes)
    State.set("Colonel Mustard", mustard_votes)
    State.set("voters_genesis_addresses", voters)
    end

    export fun get_votes() do
    [
    scarlett: State.get("Miss Scarlett", 0),
    mustard: State.get("Colonel Mustard", 0)
    ]
    end

    Insurance "at least 25°c"

    This Smart Contract holds some funds, and send them all to either the insurance company or the insuree at the end of the stay. The receiver is determined by the average temperature at destination during the stay.

    @version 1

    # float, float, string, string :: List float
    fun get_hourly_temperatures(lat, long, start_date, end_date) do
    # TODO: fetch multiple sources
    response = Http.request("https://archive-api.open-meteo.com/v1/archive?latitude=#{lat}&longitude=#{long}&start_date=#{start_date}&end_date=#{end_date}&hourly=temperature_2m")
    if response.status == 200 && Json.is_valid?(response.body) do
    json = Json.parse(response.body)
    json.hourly.temperature_2m
    else
    []
    end
    end

    # List float -> float
    fun average(xs) do
    sum = 0
    count = 0
    for x in xs do
    count = count + 1
    sum = sum + x
    end

    sum / count
    end

    # Trigger at the end of stay
    actions triggered_by: datetime, at: 1694728800 do
    insurance_company_wallet = 0x00002223BBD4EC3D64AE597696C7D7ADE1CEE65C639D885450AD2D7B75592AC76AFA
    insuree_wallet = 0x0000238C3A9CB5BFB7A863D698B71DFFF0C9C5C40CFF21EBDA2D83EBAEDDA1C6E10D
    lat = 41.591
    long = 9.2795
    start_date = "2023-09-08"
    end_date = "2023-09-15"
    threshold = 25
    amount = 4000


    hourly_temperatures = get_hourly_temperatures(lat, long, start_date, end_date)

    if hourly_temperatures == [] do
    # No data? arbitrary decision of splitting 50/50
    # To better deal with that situation, fetch multiple sources instead of a single one
    Contract.set_content("No average temperature available")
    Contract.add_uco_transfer to: insurance_company_wallet, amount: amount / 2
    Contract.add_uco_transfer to: insuree_wallet, amount: amount / 2
    else
    average_temperature = average(hourly_temperatures)

    Contract.set_content("Average temperature was: #{average_temperature}")
    if average_temperature >= threshold do
    Contract.add_uco_transfer to: insurance_company_wallet, amount: amount
    else
    Contract.add_uco_transfer to: insuree_wallet, amount: amount
    end
    end
    end
    - +A voter can only vote once because the contract keep track of the voters genesis addresses.

    info

    A public function is available to be able to easily query the number of votes in the system

    @version 1
    condition triggered_by: transaction, on: vote(candidate) do
    if !List.in?(["Miss Scarlett", "Colonel Mustard"], candidate) do
    throw code: 1, message: "unknown candidate", data: candidate
    end

    voters_genesis_addresses = State.get("voters_genesis_addresses", [])
    voter_genesis_address = Chain.get_genesis_address(transaction.address)

    if List.in?(voters_genesis_addresses, voter_genesis_address) do
    throw code: 2, message: "already voted", data: [
    address: transaction.address,
    genesis: voter_genesis_address
    ]
    end

    true
    end

    actions triggered_by: transaction, on: vote(candidate) do
    scarlett_votes = State.get("Miss Scarlett", 0)
    mustard_votes = State.get("Colonel Mustard", 0)
    voters = State.get("voters_genesis_addresses", [])

    if candidate == "Miss Scarlett" do
    scarlett_votes = scarlett_votes + 1
    end
    if candidate == "Colonel Mustard" do
    mustard_votes = mustard_votes + 1
    end

    # Add the current voter genesis address to the list
    # So he/she cannot vote twice
    voters = List.prepend(voters, Chain.get_genesis_address(transaction.address))

    State.set("Miss Scarlett", scarlett_votes)
    State.set("Colonel Mustard", mustard_votes)
    State.set("voters_genesis_addresses", voters)
    end

    export fun get_votes() do
    [
    scarlett: State.get("Miss Scarlett", 0),
    mustard: State.get("Colonel Mustard", 0)
    ]
    end

    Insurance "at least 25°c"

    This Smart Contract holds some funds, and send them all to either the insurance company or the insuree at the end of the stay. The receiver is determined by the average temperature at destination during the stay.

    @version 1

    # float, float, string, string :: List float
    fun get_hourly_temperatures(lat, long, start_date, end_date) do
    # TODO: fetch multiple sources
    response = Http.request("https://archive-api.open-meteo.com/v1/archive?latitude=#{lat}&longitude=#{long}&start_date=#{start_date}&end_date=#{end_date}&hourly=temperature_2m")
    if response.status == 200 && Json.is_valid?(response.body) do
    json = Json.parse(response.body)
    json.hourly.temperature_2m
    else
    []
    end
    end

    # List float -> float
    fun average(xs) do
    sum = 0
    count = 0
    for x in xs do
    count = count + 1
    sum = sum + x
    end

    sum / count
    end

    # Trigger at the end of stay
    actions triggered_by: datetime, at: 1694728800 do
    insurance_company_wallet = 0x00002223BBD4EC3D64AE597696C7D7ADE1CEE65C639D885450AD2D7B75592AC76AFA
    insuree_wallet = 0x0000238C3A9CB5BFB7A863D698B71DFFF0C9C5C40CFF21EBDA2D83EBAEDDA1C6E10D
    lat = 41.591
    long = 9.2795
    start_date = "2023-09-08"
    end_date = "2023-09-15"
    threshold = 25
    amount = 4000


    hourly_temperatures = get_hourly_temperatures(lat, long, start_date, end_date)

    if hourly_temperatures == [] do
    # No data? arbitrary decision of splitting 50/50
    # To better deal with that situation, fetch multiple sources instead of a single one
    Contract.set_content("No average temperature available")
    Contract.add_uco_transfer to: insurance_company_wallet, amount: amount / 2
    Contract.add_uco_transfer to: insuree_wallet, amount: amount / 2
    else
    average_temperature = average(hourly_temperatures)

    Contract.set_content("Average temperature was: #{average_temperature}")
    if average_temperature >= threshold do
    Contract.add_uco_transfer to: insurance_company_wallet, amount: amount
    else
    Contract.add_uco_transfer to: insuree_wallet, amount: amount
    end
    end
    end
    + \ No newline at end of file diff --git a/build/smart-contracts/fees/index.html b/build/smart-contracts/fees/index.html index fb6598469..38103d1ff 100644 --- a/build/smart-contracts/fees/index.html +++ b/build/smart-contracts/fees/index.html @@ -4,13 +4,13 @@ Smart Contracts - Fees | Archethic - + - + + \ No newline at end of file diff --git a/build/smart-contracts/index.html b/build/smart-contracts/index.html index b15f5ddef..eab9705a7 100644 --- a/build/smart-contracts/index.html +++ b/build/smart-contracts/index.html @@ -4,15 +4,15 @@ Smart Contracts | Archethic - +

    Smart Contracts

    Smart-contracts are in computing what robots are in real life: they perform actions according to events.

    Archethic Blockchain leverages next generation of smart contract to make the development of decentralized application easier to bring a mass adoption of the Blockchain technology.

    They introduce new features to this domain:

    • Completly autonomous and can be triggered from internal states (date, transactions) or real life (OracleChain updates).
    • Entirely modifiable: TransactionChains make update seamless
    • Interpreted: Code is interpreted and atomically verified by the miners
    • Without external reality: They are entirely based on the UTXO model and do not depend on the state of an internal database but only the transactions validated

    Archethic Smart Contract is defined by: triggers, conditions and actions

    • Triggers: events will automatically launch the execution of a contract.
    • Conditions: define the rules to accept new transactions (chain or UTXO)
    • Actions: operations to perform from a trigger's calls

    Autonomous

    Archethic smart contracts autonomous behavior is due to the capability to define different kind of triggers:

    • Datetime: when the current date matches this timestamp
    • Interval: when the current dates matches this cron interval scheduler
    • Transaction: when the contract receive a transaction in input (UTXO model)
    • Oracle: when the OracleChain pushed new data

    Transactions are then created on the behalf of the contract's owner which authorized nodes to use the chain's private key to generate transaction.

    info

    To restrict a misusage of the user's cryptographic keys, inherit conditions can be defined as a security guard by the contract's owner.

    However, in order to make contract development and improve readability, transparent inherit conditions are generated based on the action's code. This verification is done during the transaction validation and the ARCH consensus with atomic commitment and ensures the next transaction of the chain respects the inherit constraints either :

    • mentioned in the code by the contract's owner
    • derived by the action's code.

    This way, users can delegate the chain's private key to the nodes with the guarantee of a good usage of the chain's identity and signature capability.

    Modifiable:

    Archethic relies on TransactionChain which means that a smart contract can have its own transaction chain.

    Then, it is subject to the same properties of the transaction chain: any last transaction of a chain is considered as the reference.

    For example:

    We deployed a smart contract with the address @Contract1.

    Then we want to add a feature or to fix an issue, we resend a transaction on this chain, and we get the new address: @Contract2

    But clients which depends on the smart contract don't need to update their code or interaction, as each destination address is forwarded to the last one.

    So if we send a transaction to @Contract#, the code executed will be at @Contract2

    info

    Because we are not relying on internal state and database, and only with the UTXO, we don't need to provide migrations of data or funds, and neither implement cross shard synchronization

    Interpreted

    Archethic smart contracts are interpreted instead of compiled, here are the reasons:

    • Interpreted code is understandable by the human, and compiled code are only understandable by the computer.

    • Intepreted code makes the transparency and audit of smart contracts easier as we do need to provide the source of the contracts

    • Interpreted code makes verification and safety checks better, instead to execute a code in blindness, miners can step by step verify the instructions and avoid any security issues

    Stateless

    Archethic Smart Contracts does not depend on internal state or databases, only the UTXO is used as inputs and the source of truth relies on the transactions.

    For example, in an e-commerce smart contract, the smart-contract issued by a merchant will be able to define stocks, prices and interactions with its customers using a view which is continuously updated by the transactions validated to that same smart-contract.

    The contract doesn't hold a given state but allows it to be calculated. In the example above, can verify the proven status of orders through validated transactions.

    Hence, each state is irrefutable and unambiguous.

    However, if required, we could easily make a snapshot data during time to have faster reads for archived data, by creating a new transaction on the chain. -This operation would serialize the "state" of a contract and be able to be queried by applications.

    Be careful

    Any data processed within the contract which is not stored in the next transaction or send somewhere will be lost

    - +This operation would serialize the "state" of a contract and be able to be queried by applications.

    Be careful

    Any data processed within the contract which is not stored in the next transaction or send somewhere will be lost

    + \ No newline at end of file diff --git a/build/smart-contracts/language/actions/index.html b/build/smart-contracts/language/actions/index.html index c16e9ce61..631741d14 100644 --- a/build/smart-contracts/language/actions/index.html +++ b/build/smart-contracts/language/actions/index.html @@ -4,7 +4,7 @@ Smart Contracts - Actions block | Archethic - + @@ -13,8 +13,8 @@ Be careful not to rebind them inadvertedly. Do not use any of the reserved keywords as parameter.

    Argument VS Parameter

    A parameter is a variable in a function definition. It is a placeholder and hence does not have a concrete value. An argument is a value passed during function invocation. In a way, arguments fill in the place the parameters have held for them. Source: https://www.educative.io/answers/parameter-vs-argument

    actions trigger_by: transaction, on: vote(firstname, lastname) do
    full_name = String.to_lowercase("#{firstname} #{lastname}")
    ...
    end

    Generating the next transaction

    The main goal of the action block is to generate a new transaction in the smart contract chain. To do so, you can use the Contract module that allows to set the transaction field value.

    # Set uco ATH in content
    actions triggered_by: oracle do
    current_ath = State.get("ath", -1)
    new_price = Json.path_extract(transaction.content, "$.uco.usd")

    if new_price > current_ath do
    State.set("ath", new_price)
    end
    end
    info

    Note that there are 3 fields that are preset before executing the action code.

    • type: set to "contract" by default
    • code: set with the previous contract code
    • ownerships: set with the previous contract ownerships

    So you don't need to set the type, the code and the ownerships each time you generate a new transaction.

    Appendix 1: The transaction map

    • address is the transaction's address.
    • type is the transaction's type.
    • content is the transaction's content (it's a string that can contain anything, for example a smart contract state)
    • code is the transaction's code
    • timestamp is the transaction's validation timestamp
    • uco_movements is a map of UCO transfers grouped by resolved address of the transaction.
    ["00001ab...": 1, "00001bc...": 2]
    • token_movements is a map of list of token transfers grouped by resolved address of the transaction
    ["00001ab...":
    [
    [amount: 1, token_address: "0000ab12..." , token_id: 1],
    [amount: 1, token_address: "0000ab12..." , token_id: 4],
    ]
    ]
    • uco_transfers is a map of UCO transfers grouped by address of the transaction.
    ["00001ab...": 1, "00001bc...": 2]
    • token_transfers is a map of list of token transfers grouped by address of the transaction
    ["00001ab...":
    [
    [amount: 1, token_address: "0000ab12..." , token_id: 1],
    [amount: 1, token_address: "0000ab12..." , token_id: 4],
    ]
    ]
    Difference between transfers and movements

    The transfers and movements are almost the same thing. The difference is in the addresses. -The addresses of the transfers are "raw" whereas the addresses of the movements are "resolved".

    • raw address: address that was specified on a transfer (usually the genesis but not mandatory)
    • resolved address: address of the latest transaction of the chain (the chain that contains raw address)

    Here's an example to understand the difference:

    This is a UCO transfer to MyAmazingContract. The transfer is usually done on the genesis address (here: 0x00abc). But the transfer is actually creating an UTXO on the latest transaction of the chain (here: 0x00def).

    Thus contract.uco_transfers == [0x00abc: 1] and contract.uco_movements == [0x00def: 1].

    In most cases, you'll want to use movements instead of transfers.

    - +The addresses of the transfers are "raw" whereas the addresses of the movements are "resolved".

    • raw address: address that was specified on a transfer (usually the genesis but not mandatory)
    • resolved address: address of the latest transaction of the chain (the chain that contains raw address)

    Here's an example to understand the difference:

    This is a UCO transfer to MyAmazingContract. The transfer is usually done on the genesis address (here: 0x00abc). But the transfer is actually creating an UTXO on the latest transaction of the chain (here: 0x00def).

    Thus contract.uco_transfers == [0x00abc: 1] and contract.uco_movements == [0x00def: 1].

    In most cases, you'll want to use movements instead of transfers.

    + \ No newline at end of file diff --git a/build/smart-contracts/language/condition/index.html b/build/smart-contracts/language/condition/index.html index b445dbb46..889ebf36d 100644 --- a/build/smart-contracts/language/condition/index.html +++ b/build/smart-contracts/language/condition/index.html @@ -4,15 +4,15 @@ Smart Contracts - Condition block | Archethic - +

    Smart Contracts - Condition block

    Conditions are blocks which purpose is to check the validity of a transaction.

    There are 3 types of condition block:

    There are 2 differents forms. You may use whichever is the more suitable for you.

    condition triggered_by: oracle do
    <expr that returns a boolean>
    end

    condition triggered_by: transaction, on: <action> do
    <expr that returns a boolean>
    end

    # boolean expressions form
    condition inherit: [
    <prop1>: <value>,
    <prop2>: <boolean>,
    <prop3>: <expr that returns a value>,
    <prop4>: <expr that returns a boolean>
    ]

    # legacy: before there were named actions, there was only one possible action
    condition transaction: [
    <prop1>: <value>,
    <prop2>: <boolean>,
    <prop3>: <expr that returns a value>,
    <prop4>: <expr that returns a boolean>
    ]

    # legacy: old syntax
    condition oracle: [
    <prop1>: <value>,
    <prop2>: <boolean>,
    <prop3>: <expr that returns a value>,
    <prop4>: <expr that returns a boolean>
    ]
    throw keyword

    The throw keyword is another way to reject a condition. It stops the evaluation of the condition and rejects it with a code, a message and optionaly some data.

    Boolean expressions

    It is a map where the keys are the transaction's fields, and the values are expressions that must return a boolean or a value. They work for any conditions type, but we suggest to use them with the inherit conditions only.

    Example:

    condition inherit: [
    # <value>
    # all the transactions of this chain will be of type "contract"
    type: "contract",

    # <boolean>
    # the content is mutable
    content: true,

    # <expr that returns a boolean>
    # all the transactions must contains at least 1 UCO transfers
    # here uco_transfers is automatically given as 1st argument of Map.size()
    uco_transfers: Map.size() > 0
    ]

    Rules

    1. All "boolean expressions" must pass for the transaction to be valid.
    2. If the expression returns true, this "boolean expression" passes.
    3. If the expression returns false, this "boolean expression" fails.
    4. If the expression returns a value, this "boolean expression" passes if the transaction's property has the same value.
    info

    In these blocks, there is also some sugar to automatically add the property as an argument of the functions called. For example uco_transfers: Map.size() > 0 will automatically expand to uco_transfers: Map.size(transaction.uco_transfers) > 0.

    Condition inherit

    The condition inherit purpose is to check the next transaction generated by the smart contract after its code execution. It ensures the next transaction respects specific rules so the smart contract chain cannot be compromised. -It is automatically forwarded from transaction to transaction unless it is manually overriden.

    There are 2 global variables for this condition block:

    1. previous is the transaction of the current contract.
    2. next is the "next transaction".

    See Action's Appendix 1 for the details of the transaction map.

    caution

    A specific rule is applied for inherit condition, if a field is not specified in the conditions, it assumes that it must have the same value as the previous transaction. Example, if code is ommited, this is assumed: code: previous.code == next.code

    This means that an empty inherit condition (condition inherit: []) means no changes is accepted, resulting in locking the chain.

    Examples

    Pass only if it is executed before a timestamp:

    condition inherit: [
    timestamp: next.timestamp < 1677598185
    ]

    Pass only if the transaction is type "transfer", without any uco_transfers and at least one token_transfers:

    condition inherit: [
    type: "transfer",
    uco_transfers: Map.size() == 0,
    token_transfers: Map.size() > 0
    ]

    Pass only if chain has been closed (the code part) and there is a 2 UCO transfer to an address depending on the time:

    condition inherit: [
    code: "condition inherit: []",
    uco_transfers:
    if Time.now() >= 1674564088 do
    ["00003bafdfb7a8e66b59de5692b79088063853bbd69a7d555faec906e6215e57ff98": 2]
    else
    ["0000ba28ce06631ff2ef4fe3dc89a34be13c0d252f8952bbfa3173b03dbef3c04afd": 2]
    end
    ]

    Pass only if the key "index" of the content is greater than the previous one:

    condition inherit do
    json_path = "$.index"
    if Json.path_match?(next.content, json_path) do
    previous_index = Json.path_extract(previous.content, json_path)
    new_index = Json.path_extract(next.content, json_path)

    new_index > previous_index
    else
    false
    end
    end

    Condition triggered by a transaction

    Its purpose is to check the transaction that triggered an action on the contract. It must return a boolean.

    condition triggered_by: transaction do
    false
    end

    condition triggered_by: transaction, on: refund() do
    true
    end

    There are 2 global variables for this condition block:

    1. contract is the transaction of the current contract.
    2. transaction is the transaction that triggered the contract.

    See Action's Appendix 1 for the details of the transaction map.

    Examples

    Pass only if the transaction that triggered the contract comes from a specific chain (a chain can be identified by it's genesis address):

    condition triggered_by: transaction, as: [
    address: Chain.get_genesis_address() == 0x00001234ab
    ]

    Pass only if the transaction that triggered sent 10 UCOs to this contract:

    condition triggered_by: transaction, as: [
    uco_transfers: Map.get(contract.address) == 10
    ]

    Pass only if the candidate is in the list:

    condition triggered_by: transaction, on: vote(candidate) do
    List.in?(["Peter", "Sofia", "Claire"], candidate)
    end

    Pass only if the secret is correct and the lock_time is in the future:

    condition triggered_by: transaction, on: withdraw(secret) do
    valid_secret = Crypto.hash(secret) == State.get("secret_hash")
    valid_time = Time.now() < State.get("lock_time")
    valid_secret && valid_time
    end

    Same as previous but using throw:

    condition triggered_by: transaction, on: withdraw(secret) do
    if Crypto.hash(secret) != State.get("secret_hash") do
    throw code: 1, message: "invalid secret"
    end

    if Time.now() > State.get("lock_time") do
    throw code: 2, message: "time expired"
    end

    true
    end

    Condition triggered by an oracle

    Its purpose is to check the oracle transaction that triggered the contract. It must return a boolean. It is very useful because not every oracle transaction contains the data you need.

    condition triggered_by: oracle do
    true
    end

    There are 2 global variables for this condition block:

    1. contract is the transaction of the current contract.
    2. transaction is the oracle transaction that triggered the contract.

    See Action's Appendix 1 for the details of the transaction map.

    Examples

    Pass only if the transaction's content is a JSON string including the UCO price in USD.

    condition triggered_by: oracle, as: [
    content: Json.path_match?("$.uco.usd")
    ]

    Pass only if the transaction's content is a JSON string including the Vancouver's weather and if it's raining there.

    condition triggered_by: oracle do
    Json.path_match?(transaction.content, "$.canada.vancouver.raining?")
    end
    - +It is automatically forwarded from transaction to transaction unless it is manually overriden.

    There are 2 global variables for this condition block:

    1. previous is the transaction of the current contract.
    2. next is the "next transaction".

    See Action's Appendix 1 for the details of the transaction map.

    caution

    A specific rule is applied for inherit condition, if a field is not specified in the conditions, it assumes that it must have the same value as the previous transaction. Example, if code is ommited, this is assumed: code: previous.code == next.code

    This means that an empty inherit condition (condition inherit: []) means no changes is accepted, resulting in locking the chain.

    Examples

    Pass only if it is executed before a timestamp:

    condition inherit: [
    timestamp: next.timestamp < 1677598185
    ]

    Pass only if the transaction is type "transfer", without any uco_transfers and at least one token_transfers:

    condition inherit: [
    type: "transfer",
    uco_transfers: Map.size() == 0,
    token_transfers: Map.size() > 0
    ]

    Pass only if chain has been closed (the code part) and there is a 2 UCO transfer to an address depending on the time:

    condition inherit: [
    code: "condition inherit: []",
    uco_transfers:
    if Time.now() >= 1674564088 do
    ["00003bafdfb7a8e66b59de5692b79088063853bbd69a7d555faec906e6215e57ff98": 2]
    else
    ["0000ba28ce06631ff2ef4fe3dc89a34be13c0d252f8952bbfa3173b03dbef3c04afd": 2]
    end
    ]

    Pass only if the key "index" of the content is greater than the previous one:

    condition inherit do
    json_path = "$.index"
    if Json.path_match?(next.content, json_path) do
    previous_index = Json.path_extract(previous.content, json_path)
    new_index = Json.path_extract(next.content, json_path)

    new_index > previous_index
    else
    false
    end
    end

    Condition triggered by a transaction

    Its purpose is to check the transaction that triggered an action on the contract. It must return a boolean.

    condition triggered_by: transaction do
    false
    end

    condition triggered_by: transaction, on: refund() do
    true
    end

    There are 2 global variables for this condition block:

    1. contract is the transaction of the current contract.
    2. transaction is the transaction that triggered the contract.

    See Action's Appendix 1 for the details of the transaction map.

    Examples

    Pass only if the transaction that triggered the contract comes from a specific chain (a chain can be identified by it's genesis address):

    condition triggered_by: transaction, as: [
    address: Chain.get_genesis_address() == 0x00001234ab
    ]

    Pass only if the transaction that triggered sent 10 UCOs to this contract:

    condition triggered_by: transaction, as: [
    uco_transfers: Map.get(contract.address) == 10
    ]

    Pass only if the candidate is in the list:

    condition triggered_by: transaction, on: vote(candidate) do
    List.in?(["Peter", "Sofia", "Claire"], candidate)
    end

    Pass only if the secret is correct and the lock_time is in the future:

    condition triggered_by: transaction, on: withdraw(secret) do
    valid_secret = Crypto.hash(secret) == State.get("secret_hash")
    valid_time = Time.now() < State.get("lock_time")
    valid_secret && valid_time
    end

    Same as previous but using throw:

    condition triggered_by: transaction, on: withdraw(secret) do
    if Crypto.hash(secret) != State.get("secret_hash") do
    throw code: 1, message: "invalid secret"
    end

    if Time.now() > State.get("lock_time") do
    throw code: 2, message: "time expired"
    end

    true
    end

    Condition triggered by an oracle

    Its purpose is to check the oracle transaction that triggered the contract. It must return a boolean. It is very useful because not every oracle transaction contains the data you need.

    condition triggered_by: oracle do
    true
    end

    There are 2 global variables for this condition block:

    1. contract is the transaction of the current contract.
    2. transaction is the oracle transaction that triggered the contract.

    See Action's Appendix 1 for the details of the transaction map.

    Examples

    Pass only if the transaction's content is a JSON string including the UCO price in USD.

    condition triggered_by: oracle, as: [
    content: Json.path_match?("$.uco.usd")
    ]

    Pass only if the transaction's content is a JSON string including the Vancouver's weather and if it's raining there.

    condition triggered_by: oracle do
    Json.path_match?(transaction.content, "$.canada.vancouver.raining?")
    end
    + \ No newline at end of file diff --git a/build/smart-contracts/language/index.html b/build/smart-contracts/language/index.html index e647223bd..b30cbcc82 100644 --- a/build/smart-contracts/language/index.html +++ b/build/smart-contracts/language/index.html @@ -4,7 +4,7 @@ Smart Contracts - Language | Archethic - + @@ -13,8 +13,8 @@ The only thing to keep in mind is that we truncate at decimal 8.

    Ranges

    • 1..5 is equivalent to [1,2,3,4,5]

    Loop

    • for name in names do ... end
    • for i in 1..10 do ... end

    Variables & Scopes

    Variables are not typed, you can assign any value to them.

    Variables are mutable, if you update a variable declared in a parent scope, it will also update the value of this variable for the parent scope.

    A new scope is created every time you enter a new block (do .. end). A scope can access (read/write) the variables declared in its parent's scope, but not its child's scope.

    names = ["Tom", "Jerry", ""]
    text = ""
    for name in names do # ENTER SCOPE 1
    if name != "" do # ENTER SCOPE 1.1
    new_line = "\n"
    text = "#{name}#{new_line}"
    end # EXIT SCOPE 1.1
    # new_line does not exists here
    end # EXIT SCOPE 1
    # test = "Tom\nJerry\n"
    # name and new_line does not exists here

    Here's the tree of scopes and variables for the above example:

    [SCOPE 0]
    ├── names
    ├── text
    └── [SCOPE 1]
    ├── name
    └── [SCOPE 1.1]
    └── new_line

    Lists

    The list is the data structure to work with collections. The syntax is: [1, 2]. An empty list is: []. There is a List module in the library to manipulate lists.

    info

    Lists are actually Linked Lists.

    Maps

    The map is the key-value data structure in the Smart Contract language. The syntax is: [key1: 1, key2: 2] or if key starts with a number: ["00001abc...": 1]. The keys must be strings. There is 3 ways to retrieve a value:

    • map.property
    • map["property"]
    • Map.get(map, "property")

    We suggest to use the 1st syntax as often as possible. Use the 2nd or 3rd when dealing with dynamic properties.

    There is a Map module module in the library to manipulate maps.

    note

    Since the maps and the lists have a very close syntax, it is impossible to differentiate an empty map from an empty list. So, for semantic reasons, to create an empty map, use the Map.new() function call.

    tip

    The brackets are mostly optional! key1: 1, key2: 2 will work as well. But if you have a nested map, you cannot omit them!

    Functions

    In the Archethic Smart Contract Language, you can declare 2 types of functions:

    • Internal Functions declared with the fun keyword
    • Exported Functions declared with the export fun keyword

    Internal Functions

    Internal functions are functions that are only available in the Smart Contract. They are not callable from the outside.

    They are declared with the fun keyword and can be called from the Action or Condition blocks.

    They can have 0 argument:

    fun hello() do
    "Hello World!"
    end

    Or more:

    fun sum(a, b) do
    a + b
    end

    You can also have the same function name with different signature:

    fun sum(a, b) do
    a + b
    end

    fun sum(list) do
    acc = 0
    for i in list do
    acc = acc + i
    end
    acc
    end

    These functions aren't able to call another internal function but can call an Exported one.

    info

    Internal functions are able to use library module functions tagged as I/O but not the functions tagged as UPDATE_CONTRACT.

    Exported Functions

    Exported functions are callable from the Smart Contract but also through the outside via the JSON-RPC API. -They are declared like internal function but with the export fun syntax.

    export fun get_current_count() do
    State.get("count")
    end

    Unlike internal functions, they can be called from any block of code.

    info

    External functions are not able to use library module functions tagged as I/O or Transaction.

    Library

    You may use any functions from the library. The syntax is Module.function(arg1, arg2).

    tip

    The parenthesis are actually optional! Module.function arg1, arg2 will work as well.

    To see the list of functions available in the Smart Contract Language, check the Library page.

    Errors

    We introduced in v1.5.0 the throw keyword. It's useful to provide insightful errors to the end users and helps the dApp developers interacting with contracts.

    if Crypto.hash(secret) != State.get("secret_hash") do
    throw code: 1, message: "invalid secret", data: secret
    end

    The throw takes a map with the following keys:

    • code: an integer of your choice that dApp developers may use to react on a specific error. It should be uniquely identifiable within the contract.
    • message: a string describing the error.
    • data (opt): some context relevant to the error (can be any type).

    Reserved keywords

    • for
    • do
    • end
    • if
    • else

    ... to be completed

    - +They are declared like internal function but with the export fun syntax.

    export fun get_current_count() do
    State.get("count")
    end

    Unlike internal functions, they can be called from any block of code.

    info

    External functions are not able to use library module functions tagged as I/O or Transaction.

    Library

    You may use any functions from the library. The syntax is Module.function(arg1, arg2).

    tip

    The parenthesis are actually optional! Module.function arg1, arg2 will work as well.

    To see the list of functions available in the Smart Contract Language, check the Library page.

    Errors

    We introduced in v1.5.0 the throw keyword. It's useful to provide insightful errors to the end users and helps the dApp developers interacting with contracts.

    if Crypto.hash(secret) != State.get("secret_hash") do
    throw code: 1, message: "invalid secret", data: secret
    end

    The throw takes a map with the following keys:

    • code: an integer of your choice that dApp developers may use to react on a specific error. It should be uniquely identifiable within the contract.
    • message: a string describing the error.
    • data (opt): some context relevant to the error (can be any type).

    Reserved keywords

    • for
    • do
    • end
    • if
    • else

    ... to be completed

    + \ No newline at end of file diff --git a/build/smart-contracts/language/legacy/examples/index.html b/build/smart-contracts/language/legacy/examples/index.html index 8bfb069ad..8fe1e3259 100644 --- a/build/smart-contracts/language/legacy/examples/index.html +++ b/build/smart-contracts/language/legacy/examples/index.html @@ -4,13 +4,13 @@ Smart Contract examples | Archethic - +
    -

    Smart Contract examples

    Recurrent transfer

    # Send 1.0 each to the given address each month

    condition inherit: [
    type: transfer,
    uco_transfers: %{
    "0000D574D171A484F8DEAC2D61FC3F7CC984BEB52465D69B3B5F670090742CBF5CCA" => 100000000
    }
    ]

    actions triggered_by: interval, at: "0 0 1 * *" do
    set_type transfer
    add_uco_transfer to: "0000D574D171A484F8DEAC2D61FC3F7CC984BEB52465D69B3B5F670090742CBF5CCA", amount: 100000000
    end

    ICO / Crowdfunding


    # Ensure the next transaction will be a transfer
    condition inherit: [
    type: transfer,
    token_transfers: size() == 1
    # TODO: to provide more security, we should check the destination address is within the previous transaction inputs
    ]

    # Define conditions to accept incoming transactions
    condition transaction: [
    type: transfer,
    uco_transfers: size() > 0
    ]

    actions triggered_by: transaction do
    # Get the amount of uco send to this contract
    amount_send = transaction.uco_transfers[contract.address]

    if amount_send > 0 do
    # Convert UCO to the number of tokens to credit. Each UCO worth 10000 token
    token_to_credit = amount_send * 10000

    # Send the new transaction
    set_type transfer
    add_token_transfer to: transaction.address, token_address: contract.address, amount: token_to_credit
    end
    end
    - +

    Smart Contract examples

    Recurrent transfer

    # Send 1.0 each to the given address each month

    condition inherit: [
    type: transfer,
    uco_transfers: %{
    "0000D574D171A484F8DEAC2D61FC3F7CC984BEB52465D69B3B5F670090742CBF5CCA" => 100000000
    }
    ]

    actions triggered_by: interval, at: "0 0 1 * *" do
    set_type transfer
    add_uco_transfer to: "0000D574D171A484F8DEAC2D61FC3F7CC984BEB52465D69B3B5F670090742CBF5CCA", amount: 100000000
    end

    ICO / Crowdfunding


    # Ensure the next transaction will be a transfer
    condition inherit: [
    type: transfer,
    token_transfers: size() == 1
    # TODO: to provide more security, we should check the destination address is within the previous transaction inputs
    ]

    # Define conditions to accept incoming transactions
    condition transaction: [
    type: transfer,
    uco_transfers: size() > 0
    ]

    actions triggered_by: transaction do
    # Get the amount of uco send to this contract
    amount_send = transaction.uco_transfers[contract.address]

    if amount_send > 0 do
    # Convert UCO to the number of tokens to credit. Each UCO worth 10000 token
    token_to_credit = amount_send * 10000

    # Send the new transaction
    set_type transfer
    add_token_transfer to: transaction.address, token_address: contract.address, amount: token_to_credit
    end
    end
    + \ No newline at end of file diff --git a/build/smart-contracts/language/legacy/index.html b/build/smart-contracts/language/legacy/index.html index 803dc129f..335a1b705 100644 --- a/build/smart-contracts/language/legacy/index.html +++ b/build/smart-contracts/language/legacy/index.html @@ -4,13 +4,13 @@ Smart Contracts (Legacy) | Archethic - + - +

    Smart Contracts (Legacy)

    Disclaimer

    This specification is deprecated and will be still be valid for SC before 1.1.0. The new version is available here

    + \ No newline at end of file diff --git a/build/smart-contracts/language/legacy/language/index.html b/build/smart-contracts/language/legacy/language/index.html index 792436065..7b7927992 100644 --- a/build/smart-contracts/language/legacy/language/index.html +++ b/build/smart-contracts/language/legacy/language/index.html @@ -4,13 +4,13 @@ Smart Contract Language | Archethic - +
    -

    Smart Contract Language

    Archethic Blockchain defines a new smart contract language which was designed to resolve the issue of smart contracts:

    • Expressiveness
    • Simplify
    • Security

    Along with the new features of Archethic Smart Contracts (triggers, conditions, actions), a new custom language is defined

    Triggers/Actions

    To define a trigger, we need to specify an action block with its trigger type and the following parameters (if presents)

    For example:

    • based on an incoming transaction
    actions triggered_by: transaction do
    # do something when a receive transaction
    end
    • based on time interval
    actions triggered_by: interval, at: "0 8 * * *" do
    # do something each day at 8AM
    end

    Conditions

    To define a condition, we need to specify a condition block with its subject and the list conditions by fields:

    • type
    • content
    • code
    • authorized_keys
    • secrets
    • uco_transfers
    • token_transfers
    • previous_public_key
    • origin_family

    For example:

    • expecting the incoming transaction contains the content "hello"
    condition transaction: [
    content: "Hello"
    ]
    • expecting all the transaction in the chain should be generated from a biometric device
    condition inherit: [
    origin_family: biometric
    ]

    Global variables

    Smart Contract can use global variable in the different blocks:

    • contract: represent the actual contract
    • transaction: incoming transaction
    • (inherit condition only) next: next transaction on the chain
    • (inherit condition only) previous: previous transaction on the chain

    Each of this variables contains the following fields:

    • address (hex)
    • type
    • content (abitraty string)
    • code (abritraty string)
    • authorized_keys (map of public keys)
    • secrets (list of encrypted secrets in hex)
    • previous_public_key (hex)
    • recipients (list of smart contract recipients addresses in hex)
    • uco_transfers (map of the uco transfers: %{ recipient_address => amount }
    • token_transfers (map of the token transfers: %{ recipient_address => list(%{ amount: amount, token_address: token_to_transfer, token_id: token_id}})

    Functions

    Archethic Smart Contracts relies on function which can be used on condition or action blocks.

    There are two categories of functions:

    • Utilities
    • Statements (for transaction generation)

    Utilities

    info

    In the condition block, if no parameter is given, the transaction's field value will be the first one

    • hash(data): Perform a cryptographic hash
    condition transaction: [
    content: hash(contract.code)
    ]
    • regex_match?(data, pattern): Verify a regular expression
    condition transaction: [
    content: regex_match?("hello")
    ]
    • regex_extract(data, pattern): Extract data from a regular expression

    • json_match?: Verify the data matches a JSONPath expression

    condition oracle: [
    content: json_match?("$.uco.usd")
    ]
    • json_extract(data, pattern): Extract data from a JSONPath expression
    condition oracle: [
    content: json_extract("$.uco.usd") > 0.2
    ]

    Statements

    • set_type: Set the transaction type
    actions triggered_by: transaction do
    set_type transfer
    end
    • add_uco_transfer: Add a new UCO transfer
    actions triggered_by: transaction do
    add_uco_transfer to: "F28C3D5B3828AD3F8682F1B1D14A8507B829F65F7BE6C50427A6019CCB6801C", amount: 1.0
    end
    • add_token_transfer: Add a new token transfer
    actions triggered_by: transaction do
    add_token_transfer: to: "AF28C3D5B3828AD3F8682F1B1D14A8507B829F65F7BE6C50427A6019CCB6801C", token_address: "0D574D171A484F8DEAC2D61FC3F7CC984BEB52465D69B3B5F670090742CBF5CC", amount: 1.0
    end
    • set_content: Set the new content
    actions triggered_by: transaction do
    set_content "hello"
    end
    • set_code: Set the new code
    actions triggered_by: transaction do
    set_code """
    actions triggered_by: transaction do
    add_uco_transfer to: "0D574D171A484F8DEAC2D61FC3F7CC984BEB52465D69B3B5F670090742CBF5CC", amount: 2.0
    end
    """
    end
    • add_ownership: Add a new ownership with a secret and its authorized public keys
    actions triggered_by: transaction do
    add_ownership secret: "...", secret_key: "...", authorized_public_key: ["0D574D171A484F8DEAC2D61FC3F7CC984BEB52465D69B3B5F670090742CBF5CC"]
    end
    • add_recipient: Add a contract address to reach
    actions triggered_by: datetime, at: 1391309040 do
    add_recipient "0D574D171A484F8DEAC2D61FC3F7CC984BEB52465D69B3B5F670090742CBF5CC"
    end

    - +

    Smart Contract Language

    Archethic Blockchain defines a new smart contract language which was designed to resolve the issue of smart contracts:

    • Expressiveness
    • Simplify
    • Security

    Along with the new features of Archethic Smart Contracts (triggers, conditions, actions), a new custom language is defined

    Triggers/Actions

    To define a trigger, we need to specify an action block with its trigger type and the following parameters (if presents)

    For example:

    • based on an incoming transaction
    actions triggered_by: transaction do
    # do something when a receive transaction
    end
    • based on time interval
    actions triggered_by: interval, at: "0 8 * * *" do
    # do something each day at 8AM
    end

    Conditions

    To define a condition, we need to specify a condition block with its subject and the list conditions by fields:

    • type
    • content
    • code
    • authorized_keys
    • secrets
    • uco_transfers
    • token_transfers
    • previous_public_key
    • origin_family

    For example:

    • expecting the incoming transaction contains the content "hello"
    condition transaction: [
    content: "Hello"
    ]
    • expecting all the transaction in the chain should be generated from a biometric device
    condition inherit: [
    origin_family: biometric
    ]

    Global variables

    Smart Contract can use global variable in the different blocks:

    • contract: represent the actual contract
    • transaction: incoming transaction
    • (inherit condition only) next: next transaction on the chain
    • (inherit condition only) previous: previous transaction on the chain

    Each of this variables contains the following fields:

    • address (hex)
    • type
    • content (abitraty string)
    • code (abritraty string)
    • authorized_keys (map of public keys)
    • secrets (list of encrypted secrets in hex)
    • previous_public_key (hex)
    • recipients (list of smart contract recipients addresses in hex)
    • uco_transfers (map of the uco transfers: %{ recipient_address => amount }
    • token_transfers (map of the token transfers: %{ recipient_address => list(%{ amount: amount, token_address: token_to_transfer, token_id: token_id}})

    Functions

    Archethic Smart Contracts relies on function which can be used on condition or action blocks.

    There are two categories of functions:

    • Utilities
    • Statements (for transaction generation)

    Utilities

    info

    In the condition block, if no parameter is given, the transaction's field value will be the first one

    • hash(data): Perform a cryptographic hash
    condition transaction: [
    content: hash(contract.code)
    ]
    • regex_match?(data, pattern): Verify a regular expression
    condition transaction: [
    content: regex_match?("hello")
    ]
    • regex_extract(data, pattern): Extract data from a regular expression

    • json_match?: Verify the data matches a JSONPath expression

    condition oracle: [
    content: json_match?("$.uco.usd")
    ]
    • json_extract(data, pattern): Extract data from a JSONPath expression
    condition oracle: [
    content: json_extract("$.uco.usd") > 0.2
    ]

    Statements

    • set_type: Set the transaction type
    actions triggered_by: transaction do
    set_type transfer
    end
    • add_uco_transfer: Add a new UCO transfer
    actions triggered_by: transaction do
    add_uco_transfer to: "F28C3D5B3828AD3F8682F1B1D14A8507B829F65F7BE6C50427A6019CCB6801C", amount: 1.0
    end
    • add_token_transfer: Add a new token transfer
    actions triggered_by: transaction do
    add_token_transfer: to: "AF28C3D5B3828AD3F8682F1B1D14A8507B829F65F7BE6C50427A6019CCB6801C", token_address: "0D574D171A484F8DEAC2D61FC3F7CC984BEB52465D69B3B5F670090742CBF5CC", amount: 1.0
    end
    • set_content: Set the new content
    actions triggered_by: transaction do
    set_content "hello"
    end
    • set_code: Set the new code
    actions triggered_by: transaction do
    set_code """
    actions triggered_by: transaction do
    add_uco_transfer to: "0D574D171A484F8DEAC2D61FC3F7CC984BEB52465D69B3B5F670090742CBF5CC", amount: 2.0
    end
    """
    end
    • add_ownership: Add a new ownership with a secret and its authorized public keys
    actions triggered_by: transaction do
    add_ownership secret: "...", secret_key: "...", authorized_public_key: ["0D574D171A484F8DEAC2D61FC3F7CC984BEB52465D69B3B5F670090742CBF5CC"]
    end
    • add_recipient: Add a contract address to reach
    actions triggered_by: datetime, at: 1391309040 do
    add_recipient "0D574D171A484F8DEAC2D61FC3F7CC984BEB52465D69B3B5F670090742CBF5CC"
    end

    + \ No newline at end of file diff --git a/build/smart-contracts/language/library/chain/index.html b/build/smart-contracts/language/library/chain/index.html index f67b2c607..89b8d2c3f 100644 --- a/build/smart-contracts/language/library/chain/index.html +++ b/build/smart-contracts/language/library/chain/index.html @@ -4,7 +4,7 @@ Chain module | Archethic - + @@ -12,8 +12,8 @@

    Chain module

    The Chain module contains functions to fetch data from a Transaction Chain.

    get_genesis_address/1 [I/O]

    Chain.get_genesis_address("000012345...") # "000056789..."
    Chain.get_genesis_address("000012345...") # "000012345..."

    Parameters:

    • address the transaction address

    Returns the genesis address of the transaction chain that contains a transaction at address. If there is no transaction at address, it returns address.

    get_first_transaction_address/1 [I/O]

    Chain.get_first_transaction_address("000012345...") # "000056789..."

    Parameters:

    • address the transaction address

    Returns the address of the first transaction of the transaction chain that contains a transaction at address.

    danger

    [IT CURRENTLY CRASH IF THERE IS NO TRANSACTION]

    get_genesis_public_key/1 [I/O]

    Chain.get_genesis_public_key("00013B08D...") # "000108A5C..."

    Parameters:

    • public_key the public key

    Returns the genesis public key of public_key.

    get_burn_address/0

    Chain.get_burn_address() # "0000000000..."

    Returns the burn address.

    get_transaction/1 [I/O]

    Chain.get_transaction(0x00ABCD..) # [address: "00ABCD..", content: "...", uco_transfers: [], ...]

    Parameters:

    • address the transaction address

    Returns the transaction at address. If there is no transaction at address, it returns nil. See Appendix 1.

    get_last_address/1 [I/O]

    Chain.get_last_address(0x00ABCD..) # "00EFAB..."

    Parameters:

    • address the transaction address

    Returns the latest transaction address of the chain that contains address.

    get_last_transaction/1 [I/O]

    Chain.get_last_transaction(0x00ABCD..) # [address: "00EFAB..", content: "...", uco_transfers: [], ...]
    Chain.get_last_transaction(0x00ABCF..) # nil

    Parameters:

    • address the transaction address

    Returns the latest transaction of the chain that contains the transaction at address. May return nil if address does not exist. See Appendix 1.

    get_previous_address/1

    Chain.get_previous_address(0x00ABCD..) # "00EFAB.."
    Chain.get_previous_address(transaction) # "0014AC.."

    Parameters:

    • previous_public_key or transaction either a transaction map or a the previous_public_key

    Returns previous transaction's address. Usually called with a transaction, it is also possible to call it with the previous_public_key directly.

    get_balance/1 [I/O]

    balance = Chain.get_balance(0x00ABCD..)
    uco_balance = balance.uco # 181812.87
    testcoin_balance = Map.get(balance.tokens, [token_address: 0x00ABCD.., token_id: 0]) # 4756.5401

    Parameters:

    • address the address of a transaction in the chain you're interested in

    Returns the balance of the chain that contains the transaction at address.

    The return value is a map with two keys uco and tokens. The value behind tokens is a map where the keys are tokens' identifiers ([token_address: HEX, token_id: POS_INT]) and the values are floats.

    Useful if you need to retrieve the entire list of tokens (and uco) at the same time.

    get_uco_balance/1 [I/O]

    Chain.get_uco_balance(0x00ABCD..) # 14.26239

    Parameters:

    • address the address of a transaction in the chain you're interested in

    Returns the amount of UCO in the chain that contains the transaction at address.

    get_token_balance/2 [I/O]

    Same as get_token_balance/3 called with token_id: 0.

    get_token_balance/3 [I/O]

    transaction_address = 0x00ABCD..
    fungible_token_address = 0x00BCDE..
    non_fungible_token_address = 0x00FEDC..
    Chain.get_token_balance(transaction_address, fungible_token_address, 0) # 14.26239591
    Chain.get_token_balance(transaction_address, non_fungible_token_address, 1) # 1
    Chain.get_token_balance(transaction_address, non_fungible_token_address, 2) # 0

    Parameters:

    • address the address of a transaction in the chain you're interested in
    • token_address the address of the transaction that defined the token
    • token_id the index of the element in the collection (0 for fungible tokens)

    Returns the token balance of the token defined at token_address in the chain that contains the transaction at address. Non-fungible tokens must precise the token_id (index of the token in the collection).

    get_tokens_balance/1 [I/O]

    balance = Chain.get_tokens_balance(0x00ABCD..)
    abdecoin_balance = Map.get(balance, [token_address: 0x00ABDE.., token_id: 0]) # 8.90800012
    defacoin_balance = Map.get(balance, [token_address: 0x00DEFA.., token_id: 0]) # 4.05902597

    Parameters:

    • address the address of a transaction in the chain you're interested in

    Returns a subset of the token balance of the chain that contains the transaction at address. The return value is a map where the keys are the tokens' identifiers: [token_address: HEX, token_id: POS_INT] and the value are floats.

    Useful if you need to retrieve many tokens at the same time.

    get_tokens_balance/2 [I/O]

    balance = Chain.get_tokens_balance(0x00ABCD.., [
    [token_address: 0x00DEFA.., token_id: 1],
    [token_address: 0x00DEFA.., token_id: 2]
    ])
    nft1 = Map.get(balance, [token_address: 0x00DEFA.., token_id: 1]) # 1
    nft2 = Map.get(balance, [token_address: 0x00DEFA.., token_id: 2]) # 0

    Parameters:

    • address the address of a transaction in the chain you're interested in
    • tokens_identifiers the list of tokens' identifiers ([token_address: HEX, token_id: POS_INT]) to return

    Returns a subset of the token balance of the chain that contains the transaction at address. -The return value is a map where the keys are the tokens' identifiers: [token_address: HEX, token_id: POS_INT] and the value are floats.

    Useful if you need to retrieve many tokens at the same time.

    - +The return value is a map where the keys are the tokens' identifiers: [token_address: HEX, token_id: POS_INT] and the value are floats.

    Useful if you need to retrieve many tokens at the same time.

    + \ No newline at end of file diff --git a/build/smart-contracts/language/library/code/index.html b/build/smart-contracts/language/library/code/index.html index 543bb92a6..96a1db819 100644 --- a/build/smart-contracts/language/library/code/index.html +++ b/build/smart-contracts/language/library/code/index.html @@ -4,14 +4,14 @@ Code module | Archethic - +

    Code module

    The Code module contains functions that deal with strings of code.

    is_same?/2

    code = """
    @version

    condition triggered_by: transaction, as: []

    actions triggered_by: transaction do
    Contract.add_uco_transfer to: 0x1234, amount: 15.5
    end
    """

    Code.is_same?(code, transaction.code)

    Parameters:

    • first_code a string containing a smart contract code
    • second_code a string containing a smart contract code

    Return true if codes are the same, false otherwise. -This function is more accurate than comparing two strings, as it convert code into structured AST and compare only code instruction and not line numbers, carriage return ...

    is_valid?/1

    code = """
    @version

    condition triggered_by: transaction, as: []

    actions triggered_by: transaction do
    Contract.add_uco_transfer to: 0x1234, amount: 15.5
    end
    """

    Code.is_valid?(code)

    Parameters:

    • code a string containing a smart contract code

    Returns true if the code is valid according to Archethic smart contracts language, false otherwise

    - +This function is more accurate than comparing two strings, as it convert code into structured AST and compare only code instruction and not line numbers, carriage return ...

    is_valid?/1

    code = """
    @version

    condition triggered_by: transaction, as: []

    actions triggered_by: transaction do
    Contract.add_uco_transfer to: 0x1234, amount: 15.5
    end
    """

    Code.is_valid?(code)

    Parameters:

    • code a string containing a smart contract code

    Returns true if the code is valid according to Archethic smart contracts language, false otherwise

    + \ No newline at end of file diff --git a/build/smart-contracts/language/library/contract/index.html b/build/smart-contracts/language/library/contract/index.html index 76cd2be23..b8384b5a0 100644 --- a/build/smart-contracts/language/library/contract/index.html +++ b/build/smart-contracts/language/library/contract/index.html @@ -4,14 +4,14 @@ Contract module | Archethic - +

    Contract module

    The Contract module contains functions that deals with current and other contracts.

    call_function/3 [I/O]

    Contract.call_function(0x0000ABCD..., "add", [1, 2])

    Parameters:

    • contract_address the contract's adddress
    • function_name the function name
    • args the list of arguments to call the function with

    Calls the exported function function_name of the Smart Contract at contract_address with given args and return the result value.

    set_type/1 [Transaction]

    Contract.set_type("transfer")

    Parameters:

    • type the transaction type ("contract", "transfer", "data", "hosting")

    Mutates the next transaction to be of type type.

    set_content/1 [Transaction]

    Contract.set_content("Hello Smart Contract")

    Parameters:

    • content the transaction's content (we usually use this as the state of the smart contract)

    Mutates the next transaction content to be content.

    tip

    While content is always a string when you read it, it is possible here to send an integer or a float for convenience. -For any other data structure, you should serialize it with the Json module for example.

    set_code/1 [Transaction]

    Contract.set_code("@version 1\ncondition inherit: []")

    Parameters:

    • code the code

    Mutates the next transaction code to be code.

    tip

    This example "closes" the contract, by adding an condition inherit that doesn't accept anything. It will be impossible to create a new transaction in this chain.

    add_uco_transfer/1 [Transaction]

    Contract.add_uco_transfer(to: "000012345...", amount: 1)

    Parameters:

    • uco_transfer a map with two keys:
      • to: the destination address
      • amount: the number of UCO

    Mutates the next transaction to add the uco_transfer.

    add_uco_transfers/1 [Transaction]

    Equivalent to call add_uco_transfer/1 for each element of the list

    add_token_transfer/1 [Transaction]

    Contract.add_token_transfer(
    to: "000012345...",
    amount: 1.2,
    token_address: "000023456...")
    Contract.add_token_transfer(
    to: "000012345...",
    amount: 1.2,
    token_id: 4,
    token_address: "000023456...")

    Parameters:

    • token_transfer a map with three or four keys:
      • to: the destination address
      • amount: the number of UCO
      • token_address: the transaction address of the token
      • [token_id]: an optional integer to specify which index in the list (used for the NFTs)

    Mutates the next transaction to add the token_transfer.

    add_token_transfers/1 [Transaction]

    Equivalent to call add_token_transfer/1 for each element of the list

    add_ownership/1 [Transaction]

    authorized_keys = Map.new()
    authorized_keys = Map.set(authorized_keys, public_key, encoded_secret_key)
    Contract.add_ownership(
    secret: "ENCODED_SECRET1",
    authorized_keys: authorized_keys
    )

    Parameters:

    • ownership a map with two keys:
      • secret: the encoded secret
      • authorized_keys: a map where the keys are the public_keys and the values are the encoded_secret_keys (the keys to decode the secret encoded by each public_key)
    info

    It is the developer's job to encode the secret & the secret key for each authorized key.

    Mutates the next transaction to add the ownership.

    add_ownerships/1 [Transaction]

    Equivalent to call add_ownership/1 for each element of the list

    add_recipient/1 [Transaction]

    Contract.add_recipient("000012345...")

    Parameters:

    • address: a transaction address (one with a smart contract)

    Mutates the next transaction to add the address in the recipients.

    info

    Recipients are used to trigger smart contracts

    add_recipients/1 [Transaction]

    Equivalent to call add_recipients/1 for each element of the list

    - +For any other data structure, you should serialize it with the Json module for example.

    set_code/1 [Transaction]

    Contract.set_code("@version 1\ncondition inherit: []")

    Parameters:

    • code the code

    Mutates the next transaction code to be code.

    tip

    This example "closes" the contract, by adding an condition inherit that doesn't accept anything. It will be impossible to create a new transaction in this chain.

    add_uco_transfer/1 [Transaction]

    Contract.add_uco_transfer(to: "000012345...", amount: 1)

    Parameters:

    • uco_transfer a map with two keys:
      • to: the destination address
      • amount: the number of UCO

    Mutates the next transaction to add the uco_transfer.

    add_uco_transfers/1 [Transaction]

    Equivalent to call add_uco_transfer/1 for each element of the list

    add_token_transfer/1 [Transaction]

    Contract.add_token_transfer(
    to: "000012345...",
    amount: 1.2,
    token_address: "000023456...")
    Contract.add_token_transfer(
    to: "000012345...",
    amount: 1.2,
    token_id: 4,
    token_address: "000023456...")

    Parameters:

    • token_transfer a map with three or four keys:
      • to: the destination address
      • amount: the number of UCO
      • token_address: the transaction address of the token
      • [token_id]: an optional integer to specify which index in the list (used for the NFTs)

    Mutates the next transaction to add the token_transfer.

    add_token_transfers/1 [Transaction]

    Equivalent to call add_token_transfer/1 for each element of the list

    add_ownership/1 [Transaction]

    authorized_keys = Map.new()
    authorized_keys = Map.set(authorized_keys, public_key, encoded_secret_key)
    Contract.add_ownership(
    secret: "ENCODED_SECRET1",
    authorized_keys: authorized_keys
    )

    Parameters:

    • ownership a map with two keys:
      • secret: the encoded secret
      • authorized_keys: a map where the keys are the public_keys and the values are the encoded_secret_keys (the keys to decode the secret encoded by each public_key)
    info

    It is the developer's job to encode the secret & the secret key for each authorized key.

    Mutates the next transaction to add the ownership.

    add_ownerships/1 [Transaction]

    Equivalent to call add_ownership/1 for each element of the list

    add_recipient/1 [Transaction]

    Contract.add_recipient("000012345...")

    Parameters:

    • address: a transaction address (one with a smart contract)

    Mutates the next transaction to add the address in the recipients.

    info

    Recipients are used to trigger smart contracts

    add_recipients/1 [Transaction]

    Equivalent to call add_recipients/1 for each element of the list

    + \ No newline at end of file diff --git a/build/smart-contracts/language/library/crypto/index.html b/build/smart-contracts/language/library/crypto/index.html index 9a2e2e2ed..c6496c775 100644 --- a/build/smart-contracts/language/library/crypto/index.html +++ b/build/smart-contracts/language/library/crypto/index.html @@ -4,14 +4,14 @@ Crypto module | Archethic - +

    Crypto module

    The Crypto module contains functions that deal with cryptography.

    hash/1

    Equivalent to hash/2 with the second argument "sha256".

    hash/2

    Crypto.hash("my text", "sha256") # "7330D2B39CA35EA..."
    Crypto.hash("my text", "sha512") # "A3D7E45A0D9BE5F..."

    Parameters:

    • str the text to hash
    • algo the hash algorithm ("sha256", "sha512", "sha3_256", "sha3_512", "blake2b", "keccak256")

    Returns the hash of str by using algo algorithm.

    hmac/1

    Equivalent to hmac/2 with the second argument "sha256".

    hmac/2

    Equivalent to hmac/3 with the third argument being a key created from the contract seed and secret data known by nodes. -The key created is deterministic and will always be the same for a contract.

    hmac/3

    Crypto.hmac("my text") # "374C7527733556..."
    Crypto.hmac("my text", "sha256") # "374C7527733556..."
    Crypto.hmac("my text", "sha256", "secret_key") # "901A365FF22B895..."

    Parameters:

    • data the data to hash (if the data is hexadecimal it will be decoded in binary)
    • algo the hash algorithm ("sha256", "sha512", "sha3_256", "sha3_512")
    • key the key to perform the hmac (if the data is hexadecimal it will be decoded in binary)

    Returns the hmac of data with key using algo.

    sign_with_recovery/1

    signature_payload = Crypto.hash("tintin", "keccak256")
    Crypto.sign_with_recovery(signature_payload) # [r: "00ABCD...", s: "00BCDE...", v: 0]

    Parameters:

    • hash the hash to sign

    Return a signature of the given hash.

    decrypt_with_storage_nonce/1

    ciphertext = 0x374C7527733556
    Crypto.decrypt_with_storage_nonce(ciphertext) # Clear text

    Parameters:

    • ciphertext The encrypted data to decrypt

    Return the cleartext out from the decryption algorithm

    - +The key created is deterministic and will always be the same for a contract.

    hmac/3

    Crypto.hmac("my text") # "374C7527733556..."
    Crypto.hmac("my text", "sha256") # "374C7527733556..."
    Crypto.hmac("my text", "sha256", "secret_key") # "901A365FF22B895..."

    Parameters:

    • data the data to hash (if the data is hexadecimal it will be decoded in binary)
    • algo the hash algorithm ("sha256", "sha512", "sha3_256", "sha3_512")
    • key the key to perform the hmac (if the data is hexadecimal it will be decoded in binary)

    Returns the hmac of data with key using algo.

    sign_with_recovery/1

    signature_payload = Crypto.hash("tintin", "keccak256")
    Crypto.sign_with_recovery(signature_payload) # [r: "00ABCD...", s: "00BCDE...", v: 0]

    Parameters:

    • hash the hash to sign

    Return a signature of the given hash.

    decrypt_with_storage_nonce/1

    ciphertext = 0x374C7527733556
    Crypto.decrypt_with_storage_nonce(ciphertext) # Clear text

    Parameters:

    • ciphertext The encrypted data to decrypt

    Return the cleartext out from the decryption algorithm

    + \ No newline at end of file diff --git a/build/smart-contracts/language/library/evm/index.html b/build/smart-contracts/language/library/evm/index.html index 145d0731e..04ccb4603 100644 --- a/build/smart-contracts/language/library/evm/index.html +++ b/build/smart-contracts/language/library/evm/index.html @@ -4,13 +4,13 @@ Evm module | Archethic - +
    -

    Evm module

    The Evm module contains functions to deal with encoding/decoding ABI from the Ethereum Virtual Machine.

    abi_encode/2

    Evm.abi_encode(signature, data)

    Parameters:

    • signature: the function or tuple signature (ex: "baz(uint,address)")
    • data: the data to encode

    Encodes the given data according to the signature.

    abi_decode/2

    Evm.abi_decode(signature, encoded_data)

    Parameters:

    • signature: the function or tuple signature (ex: "baz(uint,address)")
    • encoded_data: the data to decode

    Decodes the given encoded_data according to the signature.

    - +

    Evm module

    The Evm module contains functions to deal with encoding/decoding ABI from the Ethereum Virtual Machine.

    abi_encode/2

    Evm.abi_encode(signature, data)

    Parameters:

    • signature: the function or tuple signature (ex: "baz(uint,address)")
    • data: the data to encode

    Encodes the given data according to the signature.

    abi_decode/2

    Evm.abi_decode(signature, encoded_data)

    Parameters:

    • signature: the function or tuple signature (ex: "baz(uint,address)")
    • encoded_data: the data to decode

    Decodes the given encoded_data according to the signature.

    + \ No newline at end of file diff --git a/build/smart-contracts/language/library/http/index.html b/build/smart-contracts/language/library/http/index.html index 3619b1ba3..57846d97c 100644 --- a/build/smart-contracts/language/library/http/index.html +++ b/build/smart-contracts/language/library/http/index.html @@ -4,13 +4,13 @@ Http module | Archethic - +
    -

    Http module

    The Http module contains functions to request data from outside the blockchain via HTTP.

    request/1 [I/O]

    Similar to request/2 with method: "GET".

    request/2 [I/O]

    Similar to request/3 with headers: Map.new().

    request/3 [I/O]

    Similar to request/4 with body: nil.

    request/4 [I/O]

    response = Http.request("https://fakerapi.it/api/v1/addresses?_quantity=1&_seed=watermelon", "GET", Map.new(), nil) # [status: 200, body: "..."]
    if response.status == 200 do
    # do something with response.body
    end

    Parameters:

    • url the url to fetch
    • method the HTTP method ("GET", "POST", "PUT", "DELETE" or "PATCH")
    • headers the HTTP headers
    • body the HTTP body

    Performs a HTTP request and returns a map with status (integer) and body (string).

    This status integer can be any HTTP status code.

    • The URL must use HTTPS protocol.
    • The response body's size must be less than 256KB.
    • The response must be received in less than 2 seconds.
    • The response must be idempotent (= identical every time it is called)
    • Only 1 call of either request/1,2,3,4 or request_many/1 is allowed per execution.
    caution

    The function raises if these requirements are not meet.

    Disclaimer

    We discourage to call services that change their internal state directly (such as writing to a database or notifying a user). Because Archethic relies on atomic commitment of all storage nodes, it may happen that atomic commitment is not reached and the transaction resulting of a Smart Contract is not validated.

    Instead, you should notify the service of the transaction being validated. The service subscribes to that transaction via the GraphQL API, and once it receives a confirmation, it should act accordingly.

    request_many/1 [I/O]

    responses = Http.request_many([
    [url: "https://fakerapi.it/api/v1/users?_quantity=1&_gender=male&_seed=cucumber"],
    [url: "https://fakerapi.it/api/v1/users?_quantity=1&_gender=female&_seed=tomato", method: "GET", headers: Map.new(), body: nil]
    ])
    for r in responses do
    if r.status == 200 do
    # do something with r.body
    end
    end

    Parameters:

    • request a list of requests to perform

    Performs a HTTP request and returns a map with status (integer) and body (string). Order and length is preserved.

    See request/4 for rules and more details.

    - +

    Http module

    The Http module contains functions to request data from outside the blockchain via HTTP.

    request/1 [I/O]

    Similar to request/2 with method: "GET".

    request/2 [I/O]

    Similar to request/3 with headers: Map.new().

    request/3 [I/O]

    Similar to request/4 with body: nil.

    request/4 [I/O]

    response = Http.request("https://fakerapi.it/api/v1/addresses?_quantity=1&_seed=watermelon", "GET", Map.new(), nil) # [status: 200, body: "..."]
    if response.status == 200 do
    # do something with response.body
    end

    Parameters:

    • url the url to fetch
    • method the HTTP method ("GET", "POST", "PUT", "DELETE" or "PATCH")
    • headers the HTTP headers
    • body the HTTP body

    Performs a HTTP request and returns a map with status (integer) and body (string).

    This status integer can be any HTTP status code.

    • The URL must use HTTPS protocol.
    • The response body's size must be less than 256KB.
    • The response must be received in less than 2 seconds.
    • The response must be idempotent (= identical every time it is called)
    • Only 1 call of either request/1,2,3,4 or request_many/1 is allowed per execution.
    caution

    The function raises if these requirements are not meet.

    Disclaimer

    We discourage to call services that change their internal state directly (such as writing to a database or notifying a user). Because Archethic relies on atomic commitment of all storage nodes, it may happen that atomic commitment is not reached and the transaction resulting of a Smart Contract is not validated.

    Instead, you should notify the service of the transaction being validated. The service subscribes to that transaction via the GraphQL API, and once it receives a confirmation, it should act accordingly.

    request_many/1 [I/O]

    responses = Http.request_many([
    [url: "https://fakerapi.it/api/v1/users?_quantity=1&_gender=male&_seed=cucumber"],
    [url: "https://fakerapi.it/api/v1/users?_quantity=1&_gender=female&_seed=tomato", method: "GET", headers: Map.new(), body: nil]
    ])
    for r in responses do
    if r.status == 200 do
    # do something with r.body
    end
    end

    Parameters:

    • request a list of requests to perform

    Performs a HTTP request and returns a map with status (integer) and body (string). Order and length is preserved.

    See request/4 for rules and more details.

    + \ No newline at end of file diff --git a/build/smart-contracts/language/library/index.html b/build/smart-contracts/language/library/index.html index 5959cd422..d454c19b3 100644 --- a/build/smart-contracts/language/library/index.html +++ b/build/smart-contracts/language/library/index.html @@ -4,14 +4,14 @@ Smart Contracts - Library | Archethic - +

    Smart Contracts - Library

    The Smart Contract library is composed of many modules with many functions in each. -Unless it is explicitely written, the functions will not mutate their arguments:

    # Don't
    sold_items = [1,2,3]
    List.concat(sold_items, [4,5,6])

    # Do
    sold_items = [1,2,3]
    sold_items = List.concat(sold_items, [4,5,6])

    Function's arity

    In this section, the number after the slash indicates the arity of the function (number or arguments).

    For example size/1 means the function size has 1 argument.

    Tagged functions

    Transaction:

    Functions tagged as [Transaction] are very special:

    • They are only available in the actions block.
    • They mutate an internal state, the "next transaction".
    • This "next transaction" is initiated with current contract (all values but transfers are copied)

    I/O:

    Functions tagged as [I/O] means they are accessing data outside of the node (inside or outside the blockchain). There is an impact in performance and in fees.

    • They are not available in public functions.

    Modules list

    - +Unless it is explicitely written, the functions will not mutate their arguments:

    # Don't
    sold_items = [1,2,3]
    List.concat(sold_items, [4,5,6])

    # Do
    sold_items = [1,2,3]
    sold_items = List.concat(sold_items, [4,5,6])

    Function's arity

    In this section, the number after the slash indicates the arity of the function (number or arguments).

    For example size/1 means the function size has 1 argument.

    Tagged functions

    Transaction:

    Functions tagged as [Transaction] are very special:

    • They are only available in the actions block.
    • They mutate an internal state, the "next transaction".
    • This "next transaction" is initiated with current contract (all values but transfers are copied)

    I/O:

    Functions tagged as [I/O] means they are accessing data outside of the node (inside or outside the blockchain). There is an impact in performance and in fees.

    • They are not available in public functions.

    Modules list

    + \ No newline at end of file diff --git a/build/smart-contracts/language/library/json/index.html b/build/smart-contracts/language/library/json/index.html index cb7f8d524..a5776d872 100644 --- a/build/smart-contracts/language/library/json/index.html +++ b/build/smart-contracts/language/library/json/index.html @@ -4,13 +4,13 @@ Json module | Archethic - +
    -

    Json module

    The Json module contains functions to manipulate JSON strings.

    path_extract/2

    Json.path_extract("{ \"firstName\": \"John\", \"lastName\": \"Doe\"}", "$.firstName") # "John"

    Parameters:

    • json the json string
    • path the path

    Returns the data at path in json.

    See the JSONPath documentation for more information abouth paths.

    path_match?/2

    Json.path_match?("{\"1622541930\":{\"uco\":{\"eur\":0.176922,\"usd\":0.21642}}}", "$.*.uco.usd") # true
    Json.path_match?("{\"1622541930\":{\"uco\":{\"eur\":0.176922,\"usd\":0.21642}}}", "$.*.uco.aud") # false

    Parameters:

    • json the json string
    • path the path

    Returns if there is a value at path in json.

    See the JSONPath documentation for more information about paths.

    to_string/1

    Json.to_string(1)           # "1"
    Json.to_string("str") # "\"str\""
    Json.to_string([1,2,3]) # "[1,2,3]"
    Json.to_string(foo: "bar") # "{\"foo\":\"bar\"}"

    Parameters:

    • any anything

    Returns the Json representation of any.

    parse/1

    Json.parse("1")                     # "1"
    Json.parse("\"str\"") # "str"
    Json.parse("[1,2,3]") # [1,2,3]
    Json.parse("{\"foo\":\"bar\"}") # foo: "bar"

    Parameters:

    • json the json string

    Returns the value represented by json.

    is_valid?/1

    Json.is_valid?("str")        # false
    Json.is_valid?("\"str\"") # true

    Parameters:

    • json the json string

    Returns whether the string is valid JSON or not.

    - +

    Json module

    The Json module contains functions to manipulate JSON strings.

    path_extract/2

    Json.path_extract("{ \"firstName\": \"John\", \"lastName\": \"Doe\"}", "$.firstName") # "John"

    Parameters:

    • json the json string
    • path the path

    Returns the data at path in json.

    See the JSONPath documentation for more information abouth paths.

    path_match?/2

    Json.path_match?("{\"1622541930\":{\"uco\":{\"eur\":0.176922,\"usd\":0.21642}}}", "$.*.uco.usd") # true
    Json.path_match?("{\"1622541930\":{\"uco\":{\"eur\":0.176922,\"usd\":0.21642}}}", "$.*.uco.aud") # false

    Parameters:

    • json the json string
    • path the path

    Returns if there is a value at path in json.

    See the JSONPath documentation for more information about paths.

    to_string/1

    Json.to_string(1)           # "1"
    Json.to_string("str") # "\"str\""
    Json.to_string([1,2,3]) # "[1,2,3]"
    Json.to_string(foo: "bar") # "{\"foo\":\"bar\"}"

    Parameters:

    • any anything

    Returns the Json representation of any.

    parse/1

    Json.parse("1")                     # "1"
    Json.parse("\"str\"") # "str"
    Json.parse("[1,2,3]") # [1,2,3]
    Json.parse("{\"foo\":\"bar\"}") # foo: "bar"

    Parameters:

    • json the json string

    Returns the value represented by json.

    is_valid?/1

    Json.is_valid?("str")        # false
    Json.is_valid?("\"str\"") # true

    Parameters:

    • json the json string

    Returns whether the string is valid JSON or not.

    + \ No newline at end of file diff --git a/build/smart-contracts/language/library/list/index.html b/build/smart-contracts/language/library/list/index.html index 1af024698..a1ee2c6fe 100644 --- a/build/smart-contracts/language/library/list/index.html +++ b/build/smart-contracts/language/library/list/index.html @@ -4,13 +4,13 @@ List module | Archethic - +
    -

    List module

    The List module contains functions to deal with lists. Lists are actually Linked List.

    at/2

    List.at(["a", "b", "c"], 0)     # "a"
    List.at(["a", "b", "c"], 1) # "b"
    List.at(["a", "b", "c"], 2) # "c"
    List.at([], 0) # nil

    Parameters:

    • list the list
    • index the index (zero-based)

    Returns the element at index in list.

    size/1

    List.size([])           # 0
    List.size([1,2,3,4]) # 4

    Parameters:

    • list the list

    Returns the number of keys in list.

    in?/2

    List.in?(["bob", "alice"], "alice") # true
    List.in?(["bob", "alice"], "fred") # false

    Parameters:

    • list the haystack
    • element the needle

    Returns whether the needle is in the haystack.

    empty?/1

    List.empty?([])         # true
    List.empty?(["apple"]) # false

    Parameters:

    • list the list

    Returns whether the list is empty or not.

    concat/2

    List.concat([], [])         # []
    List.concat([1,2], [3,4]) # [1,2,3,4]

    Parameters:

    • list1 a list
    • list2 another list

    Returns a new list where list2 is concatenated to list1.

    append/2

    List.append([], 1)    # [1]
    List.append([1], 2) # [1,2]

    Parameters:

    • list the list
    • element the element

    Returns a new list where element is appended to the end of list.

    tip

    If order doesn't matter, we suggest to use prepend/2 instead (Complexity: O(1) instead of O(n)).

    prepend/2

    List.prepend([], 1)    # [1]
    List.prepend([1], 0) # [0,1]

    Parameters:

    • list the list
    • element the element

    Returns a new list where element is appended to the start of list.

    join/2

    List.join([], ", ")    # ""
    List.join(["Mike", "Robert", "Joe"], ", ") # "Mike, Robert, Joe"

    Parameters:

    • list the list of strings
    • separator the separator

    Returns a string where all list's elements have been joined with separator separator.

    sort/1

    List.sort([1,3,2])    # [1,2,3]

    Parameters:

    • list the list of maps

    Returns same list but ordered ASC.

    sort_by/2

    List.sort_by([[a: 1], [a: 3], [a: 2]], "a")    # [[a: 1], [a: 2], [a: 3]]

    Parameters:

    • list the list of maps
    • field the field of the map to use for sorting

    Returns same list but ordered ASC by the field value of each items.

    uniq/1

    List.uniq([1,2,1,2,3])    # [1,2,3]

    Parameters:

    • list the list

    Returns same list but without duplicated elements.

    reverse/1

    List.reverse([1,2,2,3])    # [3,2,2,1]

    Parameters:

    • list the list

    Returns same list but reversed.

    set_at/3

    List.set_at(["index0", "index1"], 1, "value")    # ["index0", "value"]

    Parameters:

    • list the list
    • index 0-based index
    • value the value to set at index

    Returns same list but element at index index is replaced by value.

    delete_at/3

    List.delete_at(["index0", "index1"], 1)    # ["index0"]

    Parameters:

    • list the list
    • index 0-based index

    Returns same list but element at index index is deleted.

    - +

    List module

    The List module contains functions to deal with lists. Lists are actually Linked List.

    at/2

    List.at(["a", "b", "c"], 0)     # "a"
    List.at(["a", "b", "c"], 1) # "b"
    List.at(["a", "b", "c"], 2) # "c"
    List.at([], 0) # nil

    Parameters:

    • list the list
    • index the index (zero-based)

    Returns the element at index in list.

    size/1

    List.size([])           # 0
    List.size([1,2,3,4]) # 4

    Parameters:

    • list the list

    Returns the number of keys in list.

    in?/2

    List.in?(["bob", "alice"], "alice") # true
    List.in?(["bob", "alice"], "fred") # false

    Parameters:

    • list the haystack
    • element the needle

    Returns whether the needle is in the haystack.

    empty?/1

    List.empty?([])         # true
    List.empty?(["apple"]) # false

    Parameters:

    • list the list

    Returns whether the list is empty or not.

    concat/2

    List.concat([], [])         # []
    List.concat([1,2], [3,4]) # [1,2,3,4]

    Parameters:

    • list1 a list
    • list2 another list

    Returns a new list where list2 is concatenated to list1.

    append/2

    List.append([], 1)    # [1]
    List.append([1], 2) # [1,2]

    Parameters:

    • list the list
    • element the element

    Returns a new list where element is appended to the end of list.

    tip

    If order doesn't matter, we suggest to use prepend/2 instead (Complexity: O(1) instead of O(n)).

    prepend/2

    List.prepend([], 1)    # [1]
    List.prepend([1], 0) # [0,1]

    Parameters:

    • list the list
    • element the element

    Returns a new list where element is appended to the start of list.

    join/2

    List.join([], ", ")    # ""
    List.join(["Mike", "Robert", "Joe"], ", ") # "Mike, Robert, Joe"

    Parameters:

    • list the list of strings
    • separator the separator

    Returns a string where all list's elements have been joined with separator separator.

    sort/1

    List.sort([1,3,2])    # [1,2,3]

    Parameters:

    • list the list of maps

    Returns same list but ordered ASC.

    sort_by/2

    List.sort_by([[a: 1], [a: 3], [a: 2]], "a")    # [[a: 1], [a: 2], [a: 3]]

    Parameters:

    • list the list of maps
    • field the field of the map to use for sorting

    Returns same list but ordered ASC by the field value of each items.

    uniq/1

    List.uniq([1,2,1,2,3])    # [1,2,3]

    Parameters:

    • list the list

    Returns same list but without duplicated elements.

    reverse/1

    List.reverse([1,2,2,3])    # [3,2,2,1]

    Parameters:

    • list the list

    Returns same list but reversed.

    set_at/3

    List.set_at(["index0", "index1"], 1, "value")    # ["index0", "value"]

    Parameters:

    • list the list
    • index 0-based index
    • value the value to set at index

    Returns same list but element at index index is replaced by value.

    delete_at/3

    List.delete_at(["index0", "index1"], 1)    # ["index0"]

    Parameters:

    • list the list
    • index 0-based index

    Returns same list but element at index index is deleted.

    + \ No newline at end of file diff --git a/build/smart-contracts/language/library/map/index.html b/build/smart-contracts/language/library/map/index.html index a2cc184c1..8aae1e9d1 100644 --- a/build/smart-contracts/language/library/map/index.html +++ b/build/smart-contracts/language/library/map/index.html @@ -4,13 +4,13 @@ Map module | Archethic - +
    -

    Map module

    The Map module contains functions to manipulate maps (dicts). The keys and values can be of any type.

    new/0

    Map.new() # empty map

    Returns an empty map. There is no shorthand notation.

    size/1

    Map.size(key1: "value", key2: "value2") # 2

    Parameters:

    • map the map

    Returns the number of keys in map.

    get/2

    Map.get([key1: "value", key2: "value2"], "key1") # "value"
    Map.get([key1: "value", key2: "value2"], "key3") # nil

    Parameters:

    • map the map
    • key the key

    Returns the value at key in map or nil if key is not in the map.

    tip

    There is a shorthand notation map.key when key is not a variable.

    get/3

    Map.get([key1: "value", key2: "value2"], "key1", "not in map") # "value"
    Map.get([key1: "value", key2: "value2"], "key3", "not in map") # "not in map"

    Parameters:

    • map the map
    • key the key
    • default the default value

    Returns the value at key in map or default if key is not in the map.

    set/3

    Map.set([key1: "value", key2: "value2"], "key1", "valueX") # [key1: "valueX", key2: "value2"]
    Map.get([key1: "value", key2: "value2"], "key3", "value3") # [key1: "value", key2: "value2, key3: "value3"]

    Parameters:

    • map the map
    • key the key
    • value the value to set

    Returns a copy of map where the value at key is value.

    keys/1

    Map.keys(key1: "value", key2: "value2") # ["key1", "key2"]

    Parameters:

    • map the map

    Returns the list of keys in map.

    tip

    Use it with a for loop to iterate on a map!

    for key in Map.keys(map) do
    ...
    value = map[key]
    ...
    end

    values/1

    Map.values(key1: "value", key2: "value2") # ["value", "value2"]

    Parameters:

    • map the map

    Returns the list of values in map.

    delete/2

    Map.delete([key1: "value", key2: "value2"], "key2") # [key1: "value"]

    Parameters:

    • map the map
    • key the key to remove

    Returns a copy of the map without the value at given key.

    - +

    Map module

    The Map module contains functions to manipulate maps (dicts). The keys and values can be of any type.

    new/0

    Map.new() # empty map

    Returns an empty map. There is no shorthand notation.

    size/1

    Map.size(key1: "value", key2: "value2") # 2

    Parameters:

    • map the map

    Returns the number of keys in map.

    get/2

    Map.get([key1: "value", key2: "value2"], "key1") # "value"
    Map.get([key1: "value", key2: "value2"], "key3") # nil

    Parameters:

    • map the map
    • key the key

    Returns the value at key in map or nil if key is not in the map.

    tip

    There is a shorthand notation map.key when key is not a variable.

    get/3

    Map.get([key1: "value", key2: "value2"], "key1", "not in map") # "value"
    Map.get([key1: "value", key2: "value2"], "key3", "not in map") # "not in map"

    Parameters:

    • map the map
    • key the key
    • default the default value

    Returns the value at key in map or default if key is not in the map.

    set/3

    Map.set([key1: "value", key2: "value2"], "key1", "valueX") # [key1: "valueX", key2: "value2"]
    Map.get([key1: "value", key2: "value2"], "key3", "value3") # [key1: "value", key2: "value2, key3: "value3"]

    Parameters:

    • map the map
    • key the key
    • value the value to set

    Returns a copy of map where the value at key is value.

    keys/1

    Map.keys(key1: "value", key2: "value2") # ["key1", "key2"]

    Parameters:

    • map the map

    Returns the list of keys in map.

    tip

    Use it with a for loop to iterate on a map!

    for key in Map.keys(map) do
    ...
    value = map[key]
    ...
    end

    values/1

    Map.values(key1: "value", key2: "value2") # ["value", "value2"]

    Parameters:

    • map the map

    Returns the list of values in map.

    delete/2

    Map.delete([key1: "value", key2: "value2"], "key2") # [key1: "value"]

    Parameters:

    • map the map
    • key the key to remove

    Returns a copy of the map without the value at given key.

    + \ No newline at end of file diff --git a/build/smart-contracts/language/library/math/index.html b/build/smart-contracts/language/library/math/index.html index 251d955d9..520d88e13 100644 --- a/build/smart-contracts/language/library/math/index.html +++ b/build/smart-contracts/language/library/math/index.html @@ -4,13 +4,13 @@ Math module | Archethic - +
    -

    Math module

    The Math module contains mathematical functions.

    pow/2

    Math.pow(2, 3)
    # 8
    Math.pow(1.7, 8)
    # 69.75757441

    Parameters:

    • number the number to apply the power
    • exponent the exponent of the power

    Returns the result of the power of number by exponent.

    trunc/1

    Math.trunc(8.32)
    # 8

    Parameters:

    • number the number to truncate

    Returns the truncated number as an integer.

    sqrt/1

    Math.sqrt(16)
    # 4
    Math.sqrt(12.5)
    # 3.53553390

    Parameters:

    • number the number to calculate the square root

    Returns the square root if the number.

    rem/2

    Math.rem(2.1, 3)
    # 2.1
    Math.rem(10, 3)
    # 1
    Math.rem(-10, 3)
    # -1
    Math.rem(10.2, 1)
    # 0.2

    Parameters:

    • dividend the number to divid
    • divisor the number which divid

    Returns the remainder (modulo) of a division.

    - +

    Math module

    The Math module contains mathematical functions.

    pow/2

    Math.pow(2, 3)
    # 8
    Math.pow(1.7, 8)
    # 69.75757441

    Parameters:

    • number the number to apply the power
    • exponent the exponent of the power

    Returns the result of the power of number by exponent.

    trunc/1

    Math.trunc(8.32)
    # 8

    Parameters:

    • number the number to truncate

    Returns the truncated number as an integer.

    sqrt/1

    Math.sqrt(16)
    # 4
    Math.sqrt(12.5)
    # 3.53553390

    Parameters:

    • number the number to calculate the square root

    Returns the square root if the number.

    rem/2

    Math.rem(2.1, 3)
    # 2.1
    Math.rem(10, 3)
    # 1
    Math.rem(-10, 3)
    # -1
    Math.rem(10.2, 1)
    # 0.2

    Parameters:

    • dividend the number to divid
    • divisor the number which divid

    Returns the remainder (modulo) of a division.

    + \ No newline at end of file diff --git a/build/smart-contracts/language/library/regex/index.html b/build/smart-contracts/language/library/regex/index.html index 1a284dd56..fc129b53b 100644 --- a/build/smart-contracts/language/library/regex/index.html +++ b/build/smart-contracts/language/library/regex/index.html @@ -4,13 +4,13 @@ Regex module | Archethic - +
    -

    Regex module

    The Regex module contains functions to extract data from strings via Regular Expressions.

    extract/2

    Regex.extract("123456abc", "[0-9]+")    # "123456"
    Regex.extract("voodoo", "[abc]") # ""

    Parameters:

    • text the list
    • pattern the element

    Returns the data from text extract via the regex pattern.

    match?/2

    Regex.match?("123456", "^[0-9]+$")      # true
    Regex.match?("123456abc", "^[0-9]+$") # false

    Parameters:

    • text the list
    • pattern the element

    Returns whether the pattern matches the text or not.

    scan/2

    Regex.scan("foo", "bar")                                    # []
    Regex.scan("toto,123\ntutu,456\n", "toto,([0-9]+)") # ["123"]
    Regex.scan("toto,123\ntutu,456\n", "t.t.,([0-9]+)") # ["123", "456"]
    Regex.scan("A0B1C2,123\nD3E4F5,456\n", "^(\\w+),(\\d+)$") # [["A0B1C2", "123"], ["D3E4F5", "456"]]

    Parameters:

    • text the list
    • pattern the element

    Returns the data from text extract via the regex pattern.

    note

    This function requires the usage of capture groups (subexpressions).

    - +

    Regex module

    The Regex module contains functions to extract data from strings via Regular Expressions.

    extract/2

    Regex.extract("123456abc", "[0-9]+")    # "123456"
    Regex.extract("voodoo", "[abc]") # ""

    Parameters:

    • text the list
    • pattern the element

    Returns the data from text extract via the regex pattern.

    match?/2

    Regex.match?("123456", "^[0-9]+$")      # true
    Regex.match?("123456abc", "^[0-9]+$") # false

    Parameters:

    • text the list
    • pattern the element

    Returns whether the pattern matches the text or not.

    scan/2

    Regex.scan("foo", "bar")                                    # []
    Regex.scan("toto,123\ntutu,456\n", "toto,([0-9]+)") # ["123"]
    Regex.scan("toto,123\ntutu,456\n", "t.t.,([0-9]+)") # ["123", "456"]
    Regex.scan("A0B1C2,123\nD3E4F5,456\n", "^(\\w+),(\\d+)$") # [["A0B1C2", "123"], ["D3E4F5", "456"]]

    Parameters:

    • text the list
    • pattern the element

    Returns the data from text extract via the regex pattern.

    note

    This function requires the usage of capture groups (subexpressions).

    + \ No newline at end of file diff --git a/build/smart-contracts/language/library/state/index.html b/build/smart-contracts/language/library/state/index.html index 16dfd0d44..b56f6738a 100644 --- a/build/smart-contracts/language/library/state/index.html +++ b/build/smart-contracts/language/library/state/index.html @@ -4,13 +4,13 @@ State module | Archethic - +
    -

    State module

    The State module contains functions to read or write the current contract's state.

    get/1

    Equivalent to get/2 with default: nil.

    info

    Because a contract always start without state, you should always use get/2 or check for nil.

    get/2

    State.get(key, default)

    Parameters:

    • key: the key to read the state from
    • default: the value returned if there is no key key in the state

    Returns the state stored at given key, or return default if the key does not exist.

    set/2

    State.set(key, value)

    Parameters:

    • key: the key to write the state at
    • value: the value to store

    Writes the value in the state at key key.

    delete/1

    State.delete(key)

    Parameters:

    • key: the key to remove

    Removes the key key from the state.

    info

    A Smart Contract's state is persisted as an UTXO (unspent output) of the resulting transaction. Because of this, any state modification will result in a new transaction on the Smart Contract's transaction chain.

    - +

    State module

    The State module contains functions to read or write the current contract's state.

    get/1

    Equivalent to get/2 with default: nil.

    info

    Because a contract always start without state, you should always use get/2 or check for nil.

    get/2

    State.get(key, default)

    Parameters:

    • key: the key to read the state from
    • default: the value returned if there is no key key in the state

    Returns the state stored at given key, or return default if the key does not exist.

    set/2

    State.set(key, value)

    Parameters:

    • key: the key to write the state at
    • value: the value to store

    Writes the value in the state at key key.

    delete/1

    State.delete(key)

    Parameters:

    • key: the key to remove

    Removes the key key from the state.

    info

    A Smart Contract's state is persisted as an UTXO (unspent output) of the resulting transaction. Because of this, any state modification will result in a new transaction on the Smart Contract's transaction chain.

    + \ No newline at end of file diff --git a/build/smart-contracts/language/library/string/index.html b/build/smart-contracts/language/library/string/index.html index 3c0310666..5b6dc8cc0 100644 --- a/build/smart-contracts/language/library/string/index.html +++ b/build/smart-contracts/language/library/string/index.html @@ -4,14 +4,14 @@ String module | Archethic - +

    String module

    The String module contains functions to manipulate strings of text.

    size/1

    String.size("hello")   # 5
    String.size("你好") # 2

    Parameters:

    • str the string

    Returns the number of characters in str.

    in?/2

    String.in?("bob,alice,julia", "alice")  # true
    String.in?("bob,alice,julia", "fred") # false

    Parameters:

    • str1 the haystack
    • str2 the needle

    Returns whether the needle is in the haystack.

    to_number/1

    String.to_number("12")     # 12
    String.to_number("-12") # -12
    String.to_number("12.1") # 12.1

    Parameters:

    • str the string

    Returns the number which text representation is str.

    from_number/1

    String.from_number(13)     # "13"
    String.from_number(13.2) # "13.2"

    Parameters:

    • number the number

    Returns the text representation of number.

    to_hex/1

    String.to_hex("592ac76afa") # "592AC76AFA"
    String.to_hex("592AC76AFA") # "592AC76AFA"
    String.to_hex("hello") # "68656C6C6F"

    Parameters:

    • str the string

    Return the text representation of hexadecimal str. -If str is already an hex it just uppercase it

    to_uppercase/1

    String.to_uppercase("Arsène Lupin") # "ARSÈNE LUPIN"

    Parameters:

    • str the string

    Return the str in uppercase.

    to_lowercase/1

    String.to_lowercase("Sherlock Holmes") # "sherlock holmes"

    Parameters:

    • str the string

    Return the str in lowercase.

    - +If str is already an hex it just uppercase it

    to_uppercase/1

    String.to_uppercase("Arsène Lupin") # "ARSÈNE LUPIN"

    Parameters:

    • str the string

    Return the str in uppercase.

    to_lowercase/1

    String.to_lowercase("Sherlock Holmes") # "sherlock holmes"

    Parameters:

    • str the string

    Return the str in lowercase.

    + \ No newline at end of file diff --git a/build/smart-contracts/language/library/time/index.html b/build/smart-contracts/language/library/time/index.html index 122a149a1..1be7021df 100644 --- a/build/smart-contracts/language/library/time/index.html +++ b/build/smart-contracts/language/library/time/index.html @@ -4,15 +4,15 @@ Time module | Archethic - +

    Time module

    The Time module contains functions to deal with time & dates.

    now/0

    Time.now()  # 1677493444

    Returns an approximation of current time (seconds since epoch). It will always return the same value within a contract.

    Why an approximation?

    Because we need the Smart Contracts to be determinist. -Many nodes run them and all of them must produce the same transaction to validate a contract's execution.

    - +Many nodes run them and all of them must produce the same transaction to validate a contract's execution.

    + \ No newline at end of file diff --git a/build/smart-contracts/language/library/token/index.html b/build/smart-contracts/language/library/token/index.html index 7e0fa9b80..7db1ed514 100644 --- a/build/smart-contracts/language/library/token/index.html +++ b/build/smart-contracts/language/library/token/index.html @@ -4,13 +4,13 @@ Token module | Archethic - +
    -

    Token module

    The Token module contains functions that deal with tokens.

    fetch_id_from_address/1 [I/O] (DEPRECATED)

    Token.fetch_id_from_address("000012345") # "3C21EF708BF11B4232..."

    Parameters:

    • address the token address

    Returns the token's id of the token at address.

    - +

    Token module

    The Token module contains functions that deal with tokens.

    fetch_id_from_address/1 [I/O] (DEPRECATED)

    Token.fetch_id_from_address("000012345") # "3C21EF708BF11B4232..."

    Parameters:

    • address the token address

    Returns the token's id of the token at address.

    + \ No newline at end of file diff --git a/build/smart-contracts/language/triggers/index.html b/build/smart-contracts/language/triggers/index.html index 369bbf672..073d1b25f 100644 --- a/build/smart-contracts/language/triggers/index.html +++ b/build/smart-contracts/language/triggers/index.html @@ -4,13 +4,13 @@ Smart Contracts - Triggers | Archethic - +
    -

    Smart Contracts - Triggers

    Contract triggered by a transaction

    To trigger a SC execution, the incoming transaction must add the SC address in the recipients part of the transaction.

    tip

    This allows to activate a SC without sending funds to it, or to send funds to it without activating the code execution.

    Because the recipients field is a list, you can trigger multiple contracts in the same transaction 😉

    In this scenario:

    • a condition transaction may be used to check the incoming transaction (before executing the trigger).
    • a transaction variable is available in the blocks.
    @version 1
    condition triggered_by: transaction do
    ...
    end

    actions triggered_by: transaction do
    ...
    end

    Contract triggered by a transaction with a named action

    The SC caller may be able to execute a specific "named" action with specified arguments on the Smart Contract.

    In this scenario:

    • a condition transaction may be used to check the incoming transaction (before executing the trigger).
    • a transaction variable is available in the blocks.
    • every argument defined is available in the blocks.
    @version 1
    condition triggered_by: transaction, on: vote_for_class_president(firstname, lastname) do
    ...
    end

    actions triggered_by: transaction, on: vote_for_class_president(firstname, lastname) do
    ...
    end

    Contract triggered at a specific date and time

    You may trigger a contract at a specific date and time. You need to specify a Unix time (seconds since epoch).

    The datetime must be rounded to the minute

    A contract will not parse if the datetime isn't rounded.

    @version 1
    actions triggered_by: datetime, at: 1676332800 do
    ...
    end

    Contract triggered at a specific interval

    You may trigger a contract at a specific interval. You need to specify a CRON Format String.

    note

    The minimum granularity is the minute. Except in local development where the minimum granularity is the second.

    @version 1

    # ┌───────────── minute (0 - 59)
    # │ ┌───────────── hour (0 - 23)
    # │ │ ┌───────────── day of the month (1 - 31)
    # │ │ │ ┌───────────── month (1 - 12)
    # │ │ │ │ ┌───────────── day of the week (0 - 6) (Sunday to Saturday)
    # │ │ │ │ │
    # │ │ │ │ │
    # │ │ │ │ │
    # * * * * *
    actions triggered_by: interval, at: "0 8 * * *" do
    # do something each day at 8AM UTC
    end

    Contract triggered on every Oracle transaction

    You may trigger a contract on every Oracle transaction.

    In this scenario:

    • a condition oracle must be used to check the oracle transaction (to avoid running a contract if the oracle does not contain what you require)
    • a transaction variable is available in the blocks.
    @version 1
    condition triggered_by: oracle do
    # use transaction.content to make sure the oracle has the data you require
    end
    actions triggered_by: oracle do
    # do something with transaction.content
    end

    Multiple triggers

    Only named action triggers may have multiple triggers. Other triggers are limited to 1 per type.

    DO:

    @version 1

    actions triggered_by: transaction do
    ...
    end

    actions triggered_by: transaction, on: upgrade() do
    ...
    end

    actions triggered_by: transaction, on: calculate(x, y) do
    ...
    end

    actions triggered_by: interval, at: "0 8 * * *" do
    ...
    end

    DON'T:

    @version 1

    actions triggered_by: interval, at: "0 9 * * *" do
    ...
    end

    actions triggered_by: interval, at: "0 8 * * *" do
    ...
    end

    DON'T:

    @version 1

    actions triggered_by: transaction do
    ...
    end

    actions triggered_by: transaction do
    ...
    end

    DON'T:

    @version 1

    actions triggered_by: datetime, at: 1693519200 do
    ...
    end

    actions triggered_by: datetime, at: 1693605600 do
    ...
    end

    DON'T:

    @version 1

    actions triggered_by: transaction, on: lock(x, y) do
    ...
    end

    actions triggered_by: transaction, on: lock(x, y) do
    ...
    end
    - +

    Smart Contracts - Triggers

    Contract triggered by a transaction

    To trigger a SC execution, the incoming transaction must add the SC address in the recipients part of the transaction.

    tip

    This allows to activate a SC without sending funds to it, or to send funds to it without activating the code execution.

    Because the recipients field is a list, you can trigger multiple contracts in the same transaction 😉

    In this scenario:

    • a condition transaction may be used to check the incoming transaction (before executing the trigger).
    • a transaction variable is available in the blocks.
    @version 1
    condition triggered_by: transaction do
    ...
    end

    actions triggered_by: transaction do
    ...
    end

    Contract triggered by a transaction with a named action

    The SC caller may be able to execute a specific "named" action with specified arguments on the Smart Contract.

    In this scenario:

    • a condition transaction may be used to check the incoming transaction (before executing the trigger).
    • a transaction variable is available in the blocks.
    • every argument defined is available in the blocks.
    @version 1
    condition triggered_by: transaction, on: vote_for_class_president(firstname, lastname) do
    ...
    end

    actions triggered_by: transaction, on: vote_for_class_president(firstname, lastname) do
    ...
    end

    Contract triggered at a specific date and time

    You may trigger a contract at a specific date and time. You need to specify a Unix time (seconds since epoch).

    The datetime must be rounded to the minute

    A contract will not parse if the datetime isn't rounded.

    @version 1
    actions triggered_by: datetime, at: 1676332800 do
    ...
    end

    Contract triggered at a specific interval

    You may trigger a contract at a specific interval. You need to specify a CRON Format String.

    note

    The minimum granularity is the minute. Except in local development where the minimum granularity is the second.

    @version 1

    # ┌───────────── minute (0 - 59)
    # │ ┌───────────── hour (0 - 23)
    # │ │ ┌───────────── day of the month (1 - 31)
    # │ │ │ ┌───────────── month (1 - 12)
    # │ │ │ │ ┌───────────── day of the week (0 - 6) (Sunday to Saturday)
    # │ │ │ │ │
    # │ │ │ │ │
    # │ │ │ │ │
    # * * * * *
    actions triggered_by: interval, at: "0 8 * * *" do
    # do something each day at 8AM UTC
    end

    Contract triggered on every Oracle transaction

    You may trigger a contract on every Oracle transaction.

    In this scenario:

    • a condition oracle must be used to check the oracle transaction (to avoid running a contract if the oracle does not contain what you require)
    • a transaction variable is available in the blocks.
    @version 1
    condition triggered_by: oracle do
    # use transaction.content to make sure the oracle has the data you require
    end
    actions triggered_by: oracle do
    # do something with transaction.content
    end

    Multiple triggers

    Only named action triggers may have multiple triggers. Other triggers are limited to 1 per type.

    DO:

    @version 1

    actions triggered_by: transaction do
    ...
    end

    actions triggered_by: transaction, on: upgrade() do
    ...
    end

    actions triggered_by: transaction, on: calculate(x, y) do
    ...
    end

    actions triggered_by: interval, at: "0 8 * * *" do
    ...
    end

    DON'T:

    @version 1

    actions triggered_by: interval, at: "0 9 * * *" do
    ...
    end

    actions triggered_by: interval, at: "0 8 * * *" do
    ...
    end

    DON'T:

    @version 1

    actions triggered_by: transaction do
    ...
    end

    actions triggered_by: transaction do
    ...
    end

    DON'T:

    @version 1

    actions triggered_by: datetime, at: 1693519200 do
    ...
    end

    actions triggered_by: datetime, at: 1693605600 do
    ...
    end

    DON'T:

    @version 1

    actions triggered_by: transaction, on: lock(x, y) do
    ...
    end

    actions triggered_by: transaction, on: lock(x, y) do
    ...
    end
    + \ No newline at end of file diff --git a/build/smart-contracts/playground/build/index.html b/build/smart-contracts/playground/build/index.html index f39259a03..21c282ff9 100644 --- a/build/smart-contracts/playground/build/index.html +++ b/build/smart-contracts/playground/build/index.html @@ -4,15 +4,15 @@ Smart Contracts Playground - Build | Archethic - +

    Smart Contracts Playground - Build

    Let's create a small smart contracts that reacts to two different triggers. We'll then be able to test them separately.

    @version 1

    actions triggered_by: interval, at: "0 * * * *" do
    Contract.set_content "Hello from interval"
    end

    condition triggered_by: transaction, as: []
    actions triggered_by: transaction do
    Contract.set_content "Hello from tx"
    end

    I. Write the contract

    Write the code of the smart contract in the text area: the contract is written in the textarea

    As you write, you might see the console at the bottom reacting with different errors:

    a parsing error visible in the console

    II. Test the triggers

    To test a smart contract, you need to test all its triggers. We are going to open the trigger panel by clicking on the trigger button:

    the trigger button

    The trigger panel opens on the left hand side:

    the trigger panel

    You are now able to select which trigger you want to test, for this contract a selector of two triggers is displayed (as per the contract): -You'll also see the mock form that is used to mock the functions that does side-effect.

    Test trigger 'interval'

    An interval trigger is a contract that triggers automatically at a specific interval. It does not require anything so it's pretty easy to test. Just click on the trigger button.

    the resulting transaction is displayed in the console

    What you see above is the JSON representation of the output transaction payload. Here we can control that my contract behaved as expected. The content is set to "Hello from interval" as expected.

    You probably saw the trigger and update contract's transaction button. Let's click on it to see the difference:

    the resulting transaction is displayed in the contract&#39; transaction panel

    The difference is not easy to spot, but the transaction of the contract (the right panel) has been updated. This is useful to test a sequence of triggers.

    Test trigger 'transaction'

    This trigger is more complex to test because it requires you to mock the transaction that should trigger the contract. After selecting the transaction from the trigger selector, a form appears:

    the transaction form appears in the panel

    This form is composed of two forms:

    1. the transaction form
    2. the mock form

    Which results in a very big form that are covered in the links above. For this contract, we'll just submit the form without changing anything.

    I can now control that the output transaction payload is correct.

    Test trigger 'datetime'

    Testing a 'datetime' trigger is similar to testing a trigger 'interval'.

    Test trigger 'oracle'

    Testing an 'oracle' trigger is similar to testing a trigger 'transaction' (where the transaction is of type 'oracle').

    That's it!

    You should now be able to build your own smart contracts and test them! The next step now is to deploy them.

    - +You'll also see the mock form that is used to mock the functions that does side-effect.

    Test trigger 'interval'

    An interval trigger is a contract that triggers automatically at a specific interval. It does not require anything so it's pretty easy to test. Just click on the trigger button.

    the resulting transaction is displayed in the console

    What you see above is the JSON representation of the output transaction payload. Here we can control that my contract behaved as expected. The content is set to "Hello from interval" as expected.

    You probably saw the trigger and update contract's transaction button. Let's click on it to see the difference:

    the resulting transaction is displayed in the contract&#39; transaction panel

    The difference is not easy to spot, but the transaction of the contract (the right panel) has been updated. This is useful to test a sequence of triggers.

    Test trigger 'transaction'

    This trigger is more complex to test because it requires you to mock the transaction that should trigger the contract. After selecting the transaction from the trigger selector, a form appears:

    the transaction form appears in the panel

    This form is composed of two forms:

    1. the transaction form
    2. the mock form

    Which results in a very big form that are covered in the links above. For this contract, we'll just submit the form without changing anything.

    I can now control that the output transaction payload is correct.

    Test trigger 'datetime'

    Testing a 'datetime' trigger is similar to testing a trigger 'interval'.

    Test trigger 'oracle'

    Testing an 'oracle' trigger is similar to testing a trigger 'transaction' (where the transaction is of type 'oracle').

    That's it!

    You should now be able to build your own smart contracts and test them! The next step now is to deploy them.

    + \ No newline at end of file diff --git a/build/smart-contracts/playground/deploy/index.html b/build/smart-contracts/playground/deploy/index.html index a29eb28d9..e57b087a1 100644 --- a/build/smart-contracts/playground/deploy/index.html +++ b/build/smart-contracts/playground/deploy/index.html @@ -4,14 +4,14 @@ Smart Contracts Playground - Deploy | Archethic - +

    Smart Contracts Playground - Deploy

    Not mainnet-ready

    The communication via the archethic wallet has not been done yet. For this reason we disabled the deployment to the mainnet because it doesn't meet the security standard we expect.

    Once the code is written and the triggers are tested, the next step is to deploy the Smart Contract. Please open the deploy panel by clicking on the deploy button:

    the deploy button

    The deploy panel opens on the left hand side:

    the deploy panel

    1. Choose the network where you want to deploy the Smart Contract. This will always be "https://testnet.archethic.net" for now.
    2. You'll see that we automatically retrieve the storage nonce public key that is used to give ownership of the contract to the authorized nodes (miners).
    3. Then specify a seed of a transaction chain that will host the contract.

    While modifying the seed, you can see that the future contract's address is displayed. The contract's genesis address is also displayed.

    Genesis address

    The genesis address is the one you'll use in the faucet to transfer funds.

    Now you may click on estimate fees and then deploy. Hopefully you'll see a success message! -You may follow the link to view the transaction on the explorer.

    That's it!

    Congratulations on your contract's deployment.

    - +You may follow the link to view the transaction on the explorer.

    That's it!

    Congratulations on your contract's deployment.

    + \ No newline at end of file diff --git a/build/smart-contracts/playground/functions/index.html b/build/smart-contracts/playground/functions/index.html index b2f81e004..ab24d62b8 100644 --- a/build/smart-contracts/playground/functions/index.html +++ b/build/smart-contracts/playground/functions/index.html @@ -4,13 +4,13 @@ Smart Contracts Playground - Functions | Archethic - +
    -

    Smart Contracts Playground - Functions

    Since 1.3, we introduced the capability to have some public functions in to smart contract code.

    The playground have been updated to support this feature and be able to test it by calling those functions.

    Let's create a small smart contract that use function to export some data to the user

    @version 1
    condition triggered_by: transaction, on: increment(), as: []

    actions triggered_by: transaction, on: increment() do
    counter = String.to_number(contract.content) + 1
    Contract.set_content String.from_number(counter)
    end

    export fun counter() do
    Json.to_string([counter: contract.content])
    end

    Firstly, we initiate a transaction to increment the counter and update the contract

    a contract that send a transaction to increment a counter

    Now to test the function, we are going to open the function panel by clicking on the function button:

    the trigger button

    We can see the function panel on the left with the list of function availables to be called

    a function panel opened

    After clicking on "Execute", we can see in the console the return of the function

    a function executed

    - +

    Smart Contracts Playground - Functions

    Since 1.3, we introduced the capability to have some public functions in to smart contract code.

    The playground have been updated to support this feature and be able to test it by calling those functions.

    Let's create a small smart contract that use function to export some data to the user

    @version 1
    condition triggered_by: transaction, on: increment(), as: []

    actions triggered_by: transaction, on: increment() do
    counter = String.to_number(contract.content) + 1
    Contract.set_content String.from_number(counter)
    end

    export fun counter() do
    Json.to_string([counter: contract.content])
    end

    Firstly, we initiate a transaction to increment the counter and update the contract

    a contract that send a transaction to increment a counter

    Now to test the function, we are going to open the function panel by clicking on the function button:

    the trigger button

    We can see the function panel on the left with the list of function availables to be called

    a function panel opened

    After clicking on "Execute", we can see in the console the return of the function

    a function executed

    + \ No newline at end of file diff --git a/build/smart-contracts/playground/index.html b/build/smart-contracts/playground/index.html index ed0a5f51b..ddeb310d1 100644 --- a/build/smart-contracts/playground/index.html +++ b/build/smart-contracts/playground/index.html @@ -4,14 +4,14 @@ Smart Contracts Playground | Archethic - +

    Smart Contracts Playground

    The Smart Contracts playground is an online service use to write, test and deploy smart contracts. -It is available here: https://playground.archethic.net/.

    • Follow the Build menu to build a smart contracts with the playground.
    • Follow the Deploy menu to deploy a smart contracts.

    The Smart Contracts playground

    - +It is available here: https://playground.archethic.net/.

    • Follow the Build menu to build a smart contracts with the playground.
    • Follow the Deploy menu to deploy a smart contracts.

    The Smart Contracts playground

    + \ No newline at end of file diff --git a/build/smart-contracts/playground/mock-form/index.html b/build/smart-contracts/playground/mock-form/index.html index 848229671..2014c1f29 100644 --- a/build/smart-contracts/playground/mock-form/index.html +++ b/build/smart-contracts/playground/mock-form/index.html @@ -4,14 +4,14 @@ Smart Contracts Playground - Mock form | Archethic - +

    Smart Contracts Playground - Mock form

    Mocks allow developers to simulate the behaviour of functions that have side-effects. A few examples of side-effect: retrieve the genesis address of a chain, retrieve the date, a random value etc.

    The mock form is part of the trigger panel.

    the mock form is display

    These functions must be mocked to test Smart Contracts that use them:

    A function can be mocked multiple times, for example to mock multiple different inputs.

    Example: Time.now/0

    Time.now/0 can be mocked to simulate a future execution of the contract. This one is actually optional, the playground will use current time if it is not set.

    @version 1
    actions triggered_by: interval, at: "* * * * *" do
    Contract.set_content(Time.now())
    end

    All you need to do is fill the expected output (seconds since epoch):

    mocking the Time.now/0

    Then click on the Add button, then trigger to test the Smart Contract:

    Time.now/0 is mocked

    We can see via the console that the mock was called as expected.

    Example: Chain.get_genesis_address/1

    Let's see an example with a function that takes an argument. -In the form you specify the output for a given input. Let's try it!

    The screenshot below mocked the function with these values:

    • input: 00002223BBD4EC3D64AE597696C7D7ADE1CEE65C639D885450AD2D7B75592AC76AFA
    • output: MOCKED
    @version 1
    actions triggered_by: interval, at: "* * * * *" do
    Contract.set_content(Chain.get_genesis_address(0x00002223bbd4ec3d64ae597696c7d7ade1cee65c639d885450ad2d7b75592ac76afa))
    end

    a contract that used Chain.get_genesis_address/1 is tested

    We can see via the console that the mock was called as expected.

    a contract that used Chain.get_genesis_address/1 is tested

    - +In the form you specify the output for a given input. Let's try it!

    The screenshot below mocked the function with these values:

    • input: 00002223BBD4EC3D64AE597696C7D7ADE1CEE65C639D885450AD2D7B75592AC76AFA
    • output: MOCKED
    @version 1
    actions triggered_by: interval, at: "* * * * *" do
    Contract.set_content(Chain.get_genesis_address(0x00002223bbd4ec3d64ae597696c7d7ade1cee65c639d885450ad2d7b75592ac76afa))
    end

    a contract that used Chain.get_genesis_address/1 is tested

    We can see via the console that the mock was called as expected.

    a contract that used Chain.get_genesis_address/1 is tested

    + \ No newline at end of file diff --git a/build/smart-contracts/playground/transaction-form/index.html b/build/smart-contracts/playground/transaction-form/index.html index 689efe8f2..b2504438e 100644 --- a/build/smart-contracts/playground/transaction-form/index.html +++ b/build/smart-contracts/playground/transaction-form/index.html @@ -4,7 +4,7 @@ Smart Contracts Playground - Transaction form | Archethic - + @@ -12,8 +12,8 @@

    Smart Contracts Playground - Transaction form

    The transaction form is a form that you might encounter at different places:

    1. Trigger panel
    2. Previous contract panel
    3. Deploy panel

    The goal of this form is to prepare a transaction payload (everything non-crypto). We'll describe here every subpart of this form.

    type

    This is a selector to choose the transaction's type. It is used to give a hint about what's in the transaction. Some types impose some rules to follow.

    Read Transaction types for the details.

    code

    This is the text field for the code of the Smart Contract. It may be hidden because in the Smart Contracts Playground, the code is usually at the root level of the user interface.

    content

    The content is a text field. It often depends on the transaction's type. For Smart Contracts, we use it to store the aggregated state. This might change in the very near future (see AEIP-14).

    validation timestamp (not used in deployment)

    It represents the time at which the transaction was validated. This is only used to mock a value for your tests.

    address (not used in deployment)

    It's the transaction's address. It must be a 68 characters hexadecimal. This is only used to mock a value for your tests.

    uco transfers

    This is the list of transfers for the UCOs. Every transfer is defined by 2 fields:

    • amount: required - float
    • to: required - hexadecimal address of destination (68 characters)
    info

    The amount accepts 8 decimals maximum.

    token transfers

    This is the list of transfers for AEIP-02 tokens. Every transfer is defined by 3-4 fields:

    • amount: required - float
    • to: required - hexadecimal address of destination (68 characters)
    • token_address: required - hexadecimal address of the token's definition (68 characters)
    • token_id: optional - default: 0 - the index of the token in the token's definition (mainly used for NFTs)

    recipients

    This is the list of the Smart Contracts addresses to trigger. Note that the Smart Contracts are executed in dry mode (not writing anything) when the transaction is being validated, which means that if an execution fails, the transaction is invalid.

    note

    For now a Smart Contracts should not trigger other Smart Contracts because the execution is not atomic.

    ownerships

    This is the list of secrets with the public keys authorized to decrypt them. -Every secret is defined by 2 fields:

    • secret: required - the non-encrypted secret (the SDK will encrypt with a key that is then encrypted for every authorized_public_keys below)
    • authorized_public_keys: required - the list of public keys allowed to decrypt the secret
    contract's ownership

    When deploying, the playground automatically creates a secret that is used to give the ability to execute the contract to all authorized nodes.

    In raw terms, it encrypts the seed with the storage nonce public key.

    TODO

    missing mock for movements

    - +Every secret is defined by 2 fields:

    • secret: required - the non-encrypted secret (the SDK will encrypt with a key that is then encrypted for every authorized_public_keys below)
    • authorized_public_keys: required - the list of public keys allowed to decrypt the secret
    contract's ownership

    When deploying, the playground automatically creates a secret that is used to give the ability to execute the contract to all authorized nodes.

    In raw terms, it encrypts the seed with the storage nonce public key.

    TODO

    missing mock for movements

    + \ No newline at end of file diff --git a/build/smart-contracts/state/index.html b/build/smart-contracts/state/index.html index 7487a7981..1a341afc5 100644 --- a/build/smart-contracts/state/index.html +++ b/build/smart-contracts/state/index.html @@ -4,13 +4,13 @@ Smart Contracts - State | Archethic - +
    -

    Smart Contracts - State

    A Smart Contract's state is persisted as an UTXO (unspent output) of the resulting transaction. Because of this, any state modification will result in a new transaction on the Smart Contract's transaction chain.

    A state is a map with string as keys. You cannot access that map directly, instead, you have to use the module State that provides the functions to read and write the state.

    When a contract is deployed, it cannot have a state. There is no initial state. So it's always good to deal with this case by using State.get/2 where you provide a default value. Here's an example to give you an idea:

    Counter example

    @version 1

    condition triggered_by: transaction, as: []
    actions triggered_by: transaction do
    # Retrieve the count from previous contract's transaction or default to 0
    count = State.get("count", 0)

    # Increment the count
    new_count = count + 1

    # Write the new value in the state
    State.set("count", new_count)
    end
    - +

    Smart Contracts - State

    A Smart Contract's state is persisted as an UTXO (unspent output) of the resulting transaction. Because of this, any state modification will result in a new transaction on the Smart Contract's transaction chain.

    A state is a map with string as keys. You cannot access that map directly, instead, you have to use the module State that provides the functions to read and write the state.

    When a contract is deployed, it cannot have a state. There is no initial state. So it's always good to deal with this case by using State.get/2 where you provide a default value. Here's an example to give you an idea:

    Counter example

    @version 1

    condition triggered_by: transaction, as: []
    actions triggered_by: transaction do
    # Retrieve the count from previous contract's transaction or default to 0
    count = State.get("count", 0)

    # Increment the count
    new_count = count + 1

    # Write the new value in the state
    State.set("count", new_count)
    end
    + \ No newline at end of file diff --git a/build/testnet/index.html b/build/testnet/index.html index 353f108a9..8c6cd2c84 100644 --- a/build/testnet/index.html +++ b/build/testnet/index.html @@ -4,13 +4,13 @@ Testnet | Archethic - +
    -

    Testnet

    Local

    To test and build on top of Archethic network, we encourage people to test with a local instance.

    Installation

    • Clone the repository:
    git clone https://github.com/archethic-foundation/archethic-node.git
    mix deps.get
    • Build web assets
    cd assets ; npm install; cd -
    • Start instance
    iex -S mix

    Get some funds

    To be able to fund some addresses, the development mode of the running enable the testnet faucet.

    1. Funding

      Browse to the http://localhost:4000/faucet and enter any address to send funds to.

      It should transfer 100 UCO to the given address.

    2. Check the balance

      Go to http://localhost:4000/explorer/transaction/{TYPE_YOUR_ADDRESS_IN_HEXADECIMAL}

      It should display 100 unspent outputs (in the "Ledger inputs" section)

    Public

    Public testnet is available at https://testnet.archethic.net

    Get some funds

    You can then go the faucet to get free UCOs to experiment the Archethic network

    - +

    Testnet

    Local

    To test and build on top of Archethic network, we encourage people to test with a local instance.

    Installation

    • Clone the repository:
    git clone https://github.com/archethic-foundation/archethic-node.git
    mix deps.get
    • Build web assets
    cd assets ; npm install; cd -
    • Start instance
    iex -S mix

    Get some funds

    To be able to fund some addresses, the development mode of the running enable the testnet faucet.

    1. Funding

      Browse to the http://localhost:4000/faucet and enter any address to send funds to.

      It should transfer 100 UCO to the given address.

    2. Check the balance

      Go to http://localhost:4000/explorer/transaction/{TYPE_YOUR_ADDRESS_IN_HEXADECIMAL}

      It should display 100 unspent outputs (in the "Ledger inputs" section)

    Public

    Public testnet is available at https://testnet.archethic.net

    Get some funds

    You can then go the faucet to get free UCOs to experiment the Archethic network

    + \ No newline at end of file diff --git a/category/api/index.html b/category/api/index.html index 3b47ea8ee..a2e5f0d1f 100644 --- a/category/api/index.html +++ b/category/api/index.html @@ -4,13 +4,13 @@ API | Archethic - + - + \ No newline at end of file diff --git a/category/build/index.html b/category/build/index.html index a84e8f488..b56fe1373 100644 --- a/category/build/index.html +++ b/category/build/index.html @@ -4,13 +4,13 @@ Build | Archethic - + - + \ No newline at end of file diff --git a/category/clients/index.html b/category/clients/index.html index e3d5ffc87..76dbc78c3 100644 --- a/category/clients/index.html +++ b/category/clients/index.html @@ -4,13 +4,13 @@ Clients | Archethic - + - + \ No newline at end of file diff --git a/category/faq/index.html b/category/faq/index.html index 8a507b717..ad3bc6108 100644 --- a/category/faq/index.html +++ b/category/faq/index.html @@ -4,13 +4,13 @@ FAQ | Archethic - + - + \ No newline at end of file diff --git a/category/graphql/index.html b/category/graphql/index.html index 66661b403..4811d063e 100644 --- a/category/graphql/index.html +++ b/category/graphql/index.html @@ -4,13 +4,13 @@ GraphQL | Archethic - + - + \ No newline at end of file diff --git a/category/participate/index.html b/category/participate/index.html index c9b69d15f..b408227b9 100644 --- a/category/participate/index.html +++ b/category/participate/index.html @@ -4,13 +4,13 @@ Participate | Archethic - + - + \ No newline at end of file diff --git a/category/usage/index.html b/category/usage/index.html index 5499d0c54..92ee73e73 100644 --- a/category/usage/index.html +++ b/category/usage/index.html @@ -4,13 +4,13 @@ Usage | Archethic - + - + \ No newline at end of file diff --git a/contributing/index.html b/contributing/index.html index 3c4b87539..fdda9d8b3 100644 --- a/contributing/index.html +++ b/contributing/index.html @@ -4,15 +4,15 @@ Contributing | Archethic - +

    Contributing

    This documentation is maintained by the Archethic Foundation. It's an open source project and aims to be the most extensive resources of knowledge on Archethic and its ecosystem.

    We welcome contributions from anyone and are grateful for even the smallest of improvement from typo issues, to proposals, to enhance explaination or create diagrams, etc. -Therefore, pull requests, discussions, and contributions from the community are encouraged.

    How to contribute

    You can contribute on the archethic-foundation/archethic-docs repository. The documentation is build with Docusaurus and each page is written in Markdown which is an easy to learn syntax extension to plain text that make creating links, rendering images and nice looking formatting example.

    Guidelines

    There are few basic ground-rules for contributing:

    1. No --force pushes or modifying the Git history
    2. Pull requests are preferred to issues, especially for small changes such as typos. Issues should be used for generic or broad-based changes or missing content. Suggestions and requests are encouraged.
    3. Please fork or use non-main branches.
    4. Significant modifications, even by contributors, ought to be subject to a pull request to solicit feedback from other contributors.
    5. Pull requests to solicit feedback are encouraged for any other non-trivial contribution but left to the discretion of the contributor.
    6. Contributors should attempt to adhere to the prevailing MarkDown style, language, and layout.
    7. Correct grammar should be used at all times. Pull requests with typos will not be merged until fixed.
    8. Care should be taken to remain as objective and informative as possible. There should be no editorializing, and external bias should not be present.

    Diagrams

    The documentation supports also diagram through the use or Mermaid which permits to create diagram with markdown code:

    Inserting this code:

    ```mermaid
    sequenceDiagram
       Alice->>John: Hello John, how are you?
       John-->>Alice: Great!
       Alice-)John: See you later!
    ```

    will output this diagram

    To help you design them you can leverage an editor to visualize the diagrams.

    - +Therefore, pull requests, discussions, and contributions from the community are encouraged.

    How to contribute

    You can contribute on the archethic-foundation/archethic-docs repository. The documentation is build with Docusaurus and each page is written in Markdown which is an easy to learn syntax extension to plain text that make creating links, rendering images and nice looking formatting example.

    Guidelines

    There are few basic ground-rules for contributing:

    1. No --force pushes or modifying the Git history
    2. Pull requests are preferred to issues, especially for small changes such as typos. Issues should be used for generic or broad-based changes or missing content. Suggestions and requests are encouraged.
    3. Please fork or use non-main branches.
    4. Significant modifications, even by contributors, ought to be subject to a pull request to solicit feedback from other contributors.
    5. Pull requests to solicit feedback are encouraged for any other non-trivial contribution but left to the discretion of the contributor.
    6. Contributors should attempt to adhere to the prevailing MarkDown style, language, and layout.
    7. Correct grammar should be used at all times. Pull requests with typos will not be merged until fixed.
    8. Care should be taken to remain as objective and informative as possible. There should be no editorializing, and external bias should not be present.

    Diagrams

    The documentation supports also diagram through the use or Mermaid which permits to create diagram with markdown code:

    Inserting this code:

    ```mermaid
    sequenceDiagram
       Alice->>John: Hello John, how are you?
       John-->>Alice: Great!
       Alice-)John: See you later!
    ```

    will output this diagram

    To help you design them you can leverage an editor to visualize the diagrams.

    + \ No newline at end of file diff --git a/index.html b/index.html index 38a6eaf5f..659bed915 100644 --- a/index.html +++ b/index.html @@ -4,13 +4,13 @@ Archethic - +

    Archethic

    Digital sovereignty at your fingertips

    Archethic gives back to humanity control over technology, and to each individual, control over their identity
    thanks to a truly decentralized and limitless P2P network

    You will find the complete reference of the Archethic network splitted into three main sections:

    Learn

    Discover Archethic, the TransactionChain, the new ARCH Consensus, why it helps to build the more secure and decentralized P2P network

    Participate

    Join the network and use existing solutions build on Archethic.

    Build

    Access documentation and guides to build on Archethic or to contribute to the core development

    FAQ

    Learn more about Archethic solutions by exploring our FAQ section.

    - + \ No newline at end of file diff --git a/learn/arch-consensus/index.html b/learn/arch-consensus/index.html index e53967d12..bcd96c7c8 100644 --- a/learn/arch-consensus/index.html +++ b/learn/arch-consensus/index.html @@ -4,14 +4,14 @@ ARCH consensus | Archethic - +

    ARCH consensus

    Archethic Blockchain is using a new consensus called ARCH (Atomic Rotating Commitment Heuristic) for an uncompromising consensus to support high scalability and high throughput.

    Archethic Blockchain is based on three properties:

    • Security: Each transaction is validated atomically
    • Data consistency: Algorithms ensure to access the latest write and maximum availability
    • Fault tolerance: Allow nodes to operate independently even in case of disaster

    ARCH consensus is defined by three concepts:

    • Atomic Commitment: The most absolute form a consensus which implies 100% of concordant responses for the acceptance or refusal of the transaction validation
    • Heuristic: Set of algorithms which manages the entire network, allowing to elect in a decentralized and coordinated way the nodes in charge to validate or store the transaction chains
    • Rotating: Node election is constantly changing. No nodes can predict which nodes will validate the transaction before its arrives.

    Atomic Commitment

    Archethic Blockchain is based on Hypergeometric distribution laws which from an unpredictable election and formal consensus make it possible to obtain with certainty (99.99999999%) the same answer by querying 197 nodes as would be obtained by querying 100 000 nodes.

    Therefore, it makes possible the consensus establishment with a small part of nodes and can resist to attacks of 90% of malicious nodes.

    The risk of related availability is ensured by a strict management of the disruptive nodes, which are banished after investigation of the origin of the disagreement.

    By supporting more 90% of malicious nodes into its network, ARCH consensus is above aeronautical or nuclear standard, thanks to the Atomic Commitment which request the total agreement of the validation nodes and from a Malicious Detection algorithm to detect the malicious nodes.

    Rotating Election

    Each rotating election is unpredictable, but still verifiable and reproducible. -The rotating algorithm sort a list of nodes based on:

    • Hash of transaction: Unpredictable until the transaction arrives
    • Daily nonce: Secret shared between the authorized nodes and renewed daily
    • Node public key: Last node public key

    The rotating election produces a proof, named: Proof of Election which can be verified by any other nodes to ensure the right election of nodes.

    From this algorithm, we get a list of nodes which can be filtered according to the constraints of the validation of the transaction.

    • P2P availability
    • Geographical distribution

    Workflow

    When a transaction is willing to be validated, its follows the given workflow:

    1. The transaction is received by any node (aka Welcome node)
    2. The Welcome Node determines the validation nodes from the Rotating Election algorithm and forward the transaction
    3. The validation nodes after receiving the transaction start some preliminary job to gather the context of the transaction:
      • Previous transaction
      • List of unspent outputs
    4. After the context building, the Cross Validation Nodes communicate to the Coordinator Node the list of storage nodes involved to gather this information.
    5. The Coordinator Node can build the Validation Stamp and compute the replication tree. Then it transmits them to the Cross Validation Nodes.
    6. The Cross Validation Nodes verify the content of the Validation Stamp, sign with or without inconsistencies, and send the Cross Validation Stamp to all the validation nodes involved.
    7. Once all the Cross Validation Stamps are received and if the Atomic Commitment is reached, the replication phase starts.
    8. Validation nodes send the transaction to the respective storage nodes:
    • Storage nodes responsible for the new transaction chain
    • Storage nodes responsible for the outputs of the transactions (transaction's movements addresses, recipients)
    • Storage nodes responsible for the Beacon Chain
    1. The storage for the new transaction chain will notify the validation nodes and the Welcome Node about the replication, and the Welcome Node will notify the client about it.
    - +The rotating algorithm sort a list of nodes based on:

    • Hash of transaction: Unpredictable until the transaction arrives
    • Daily nonce: Secret shared between the authorized nodes and renewed daily
    • Node public key: Last node public key

    The rotating election produces a proof, named: Proof of Election which can be verified by any other nodes to ensure the right election of nodes.

    From this algorithm, we get a list of nodes which can be filtered according to the constraints of the validation of the transaction.

    • P2P availability
    • Geographical distribution

    Workflow

    When a transaction is willing to be validated, its follows the given workflow:

    1. The transaction is received by any node (aka Welcome node)
    2. The Welcome Node determines the validation nodes from the Rotating Election algorithm and forward the transaction
    3. The validation nodes after receiving the transaction start some preliminary job to gather the context of the transaction:
      • Previous transaction
      • List of unspent outputs
    4. After the context building, the Cross Validation Nodes communicate to the Coordinator Node the list of storage nodes involved to gather this information.
    5. The Coordinator Node can build the Validation Stamp and compute the replication tree. Then it transmits them to the Cross Validation Nodes.
    6. The Cross Validation Nodes verify the content of the Validation Stamp, sign with or without inconsistencies, and send the Cross Validation Stamp to all the validation nodes involved.
    7. Once all the Cross Validation Stamps are received and if the Atomic Commitment is reached, the replication phase starts.
    8. Validation nodes send the transaction to the respective storage nodes:
    • Storage nodes responsible for the new transaction chain
    • Storage nodes responsible for the outputs of the transactions (transaction's movements addresses, recipients)
    • Storage nodes responsible for the Beacon Chain
    1. The storage for the new transaction chain will notify the validation nodes and the Welcome Node about the replication, and the Welcome Node will notify the client about it.
    + \ No newline at end of file diff --git a/learn/arch-consensus/proof-of-work/index.html b/learn/arch-consensus/proof-of-work/index.html index 1511dbba2..ec1310c75 100644 --- a/learn/arch-consensus/proof-of-work/index.html +++ b/learn/arch-consensus/proof-of-work/index.html @@ -4,7 +4,7 @@ Proof of Work | Archethic - + @@ -12,8 +12,8 @@

    Proof of Work

    Others blockchains are using the concept of Proof of Work to ensure an unpredictable and pseudo random election of block validation (mining). But this technique requires a lot of energy consumption and can still be subject to exploit by HashRate control.

    Archethic Blockchain is using a new kind of Proof of Work to ensure the authenticity of the transaction origination devices. This allows the additional security requirements on transaction validation like:

    • prohibit any transaction even in case of key theft
    • allow user to consult their balance on any smartphone, but generate a transaction only on a trusted device
    • enable the organizers of an election to ensure biometric identity of a voter

    The Proof Of Work consists of finding the right public key associated to the Origin Signature of the transaction -from a list of public keys known by the network.

    This verification is performed during the Validation Stamp creation by the Coordinator Node and ensure the device is authorized to generate the transaction

    Just like any other actor into the system, devices will have their own transaction chain allowing them to update their keys.

    info

    Each origin device public keys are grouped by family which helps nodes to determine which set of keys, must be played to produce the Proof of Work. (i.e: software, usb, biometric).

    info

    Each origin device public key is encrypted and renewed by the network ensuring confidentiality and authenticity of devices.

    - +from a list of public keys known by the network.

    This verification is performed during the Validation Stamp creation by the Coordinator Node and ensure the device is authorized to generate the transaction

    Just like any other actor into the system, devices will have their own transaction chain allowing them to update their keys.

    info

    Each origin device public keys are grouped by family which helps nodes to determine which set of keys, must be played to produce the Proof of Work. (i.e: software, usb, biometric).

    info

    Each origin device public key is encrypted and renewed by the network ensuring confidentiality and authenticity of devices.

    + \ No newline at end of file diff --git a/learn/cryptography/hardware-root-of-trust/index.html b/learn/cryptography/hardware-root-of-trust/index.html index 99eaf05c5..f08549b24 100644 --- a/learn/cryptography/hardware-root-of-trust/index.html +++ b/learn/cryptography/hardware-root-of-trust/index.html @@ -4,13 +4,13 @@ Hardware Root of Trust | Archethic - +
    -

    Hardware Root of Trust

    What is hardware root of trust?

    A hardware root of trust is the foundation on which all secure operations of a computing system depend. It contains the keys used for cryptographic functions and enables a secure boot process. It is inherently trusted, and therefore must be secure by design. The most secure implementation of a root of trust is in hardware making it immune from malware attacks. As such, it can be a stand-alone security module or implemented as security module within a processor or system on chip (SoC) (source).

    Why hardware root of trust for Archethic?

    The ability to sustain the network even with more than 90% of malicious nodes effectively comes from 2 very important steps.

    • Identifying the malcious nodes effectively and preemptively.
    • Banish and effectively ban the malicious nodes.

    While the first part involves complex alogrithms implemented in the software layer, the second part involves uniquely tying node's identity to its hardware. This way, the malicious node, once identified and banished, cannot rejoin the network by changing its representive identity.

    This second part can be effectively achieved using the concept of hardware root of trust. With hardware root of trust, a unique keypair is injected in the into the wafer at the time of fabrication, thus tying the identity with this keypair. Once, this keypair is certified, the node cannot effectively use another keypair, once banished, thus eliminating identity forgery. This is, in principle, possible due to fact once a key-pair is injected, it cannot be changed for that particular hardware.

    Further, with this hardware root of trust, we can also ensure that no two nodes have the same public key tied to their identity. Thus, using hardware root of trust, contributes significantly to the increased miner security and makes the Archethic blockchain more resilient against bad actors.

    Implementation of Hardware Root of Trust (HRT)

    To implement hardware root of Trust, within Archethic ecosystem, two technologies have been used.

    • Trusted Platform Module (TPM 2.O)
    • Yubico Yubikey (PIV)

    Both of these technologies are based on Secure Element (SE) which are certified under Common Criteria (CC).

    Placement of HRT in Archethic Blockchain/Ecosystem

    Along with the initial software crypto library, the HRT is now the de-facto crypto engine for all the cryptographic operations carried out by Archethic miners. This includes signature (ECC), verification (ECC), encryption (AES), decryption (AES), hashing (SHA2/SHA3), etc.

    The Archethic node software delegates all the cryptography operations to the HRT libraries of TPM and Yubikey, which are specially developed for this purpose by Uniris.

    Given the latency constraints, a new hybrid mechanism have been developed involving usage of software crypto library and the HRT libraries (TPM/Yubikey). In this approach, the root of trust - crypto operation are still HRT based while the stem and branches will be software crypto library based.

    The advantages of this mechanism over pure HRT based mechanism is:

    • Possiblity of key aggregation
    • Freedom of using newer elliptic curves that are not yet supported by TPM/Yubikey.
    • Scalability without impacting security and performance.
    - +

    Hardware Root of Trust

    What is hardware root of trust?

    A hardware root of trust is the foundation on which all secure operations of a computing system depend. It contains the keys used for cryptographic functions and enables a secure boot process. It is inherently trusted, and therefore must be secure by design. The most secure implementation of a root of trust is in hardware making it immune from malware attacks. As such, it can be a stand-alone security module or implemented as security module within a processor or system on chip (SoC) (source).

    Why hardware root of trust for Archethic?

    The ability to sustain the network even with more than 90% of malicious nodes effectively comes from 2 very important steps.

    • Identifying the malcious nodes effectively and preemptively.
    • Banish and effectively ban the malicious nodes.

    While the first part involves complex alogrithms implemented in the software layer, the second part involves uniquely tying node's identity to its hardware. This way, the malicious node, once identified and banished, cannot rejoin the network by changing its representive identity.

    This second part can be effectively achieved using the concept of hardware root of trust. With hardware root of trust, a unique keypair is injected in the into the wafer at the time of fabrication, thus tying the identity with this keypair. Once, this keypair is certified, the node cannot effectively use another keypair, once banished, thus eliminating identity forgery. This is, in principle, possible due to fact once a key-pair is injected, it cannot be changed for that particular hardware.

    Further, with this hardware root of trust, we can also ensure that no two nodes have the same public key tied to their identity. Thus, using hardware root of trust, contributes significantly to the increased miner security and makes the Archethic blockchain more resilient against bad actors.

    Implementation of Hardware Root of Trust (HRT)

    To implement hardware root of Trust, within Archethic ecosystem, two technologies have been used.

    • Trusted Platform Module (TPM 2.O)
    • Yubico Yubikey (PIV)

    Both of these technologies are based on Secure Element (SE) which are certified under Common Criteria (CC).

    Placement of HRT in Archethic Blockchain/Ecosystem

    Along with the initial software crypto library, the HRT is now the de-facto crypto engine for all the cryptographic operations carried out by Archethic miners. This includes signature (ECC), verification (ECC), encryption (AES), decryption (AES), hashing (SHA2/SHA3), etc.

    The Archethic node software delegates all the cryptography operations to the HRT libraries of TPM and Yubikey, which are specially developed for this purpose by Uniris.

    Given the latency constraints, a new hybrid mechanism have been developed involving usage of software crypto library and the HRT libraries (TPM/Yubikey). In this approach, the root of trust - crypto operation are still HRT based while the stem and branches will be software crypto library based.

    The advantages of this mechanism over pure HRT based mechanism is:

    • Possiblity of key aggregation
    • Freedom of using newer elliptic curves that are not yet supported by TPM/Yubikey.
    • Scalability without impacting security and performance.
    + \ No newline at end of file diff --git a/learn/cryptography/index.html b/learn/cryptography/index.html index bb2abec58..c2247ffcf 100644 --- a/learn/cryptography/index.html +++ b/learn/cryptography/index.html @@ -4,7 +4,7 @@ Cryptography | Archethic - + @@ -14,8 +14,8 @@ Therefore, we don't have way to know which public key is used for a given transaction until a next one is coming.

    Origin Devices

    In order to build a transaction, we need to known multiple temporary private keys a key to provide a signature based on the previous private key and a signature based on an origin device private key. Origin device can be categorized in several families: software, hardware, biometrics. (See Proof of Work)

    So to be allowed to generate a transaction, the task of a quantum computer potentially capable of breaking private keys should be considerably more complex

    Adaptative

    In order to be backward compatible and to evolve the network as the cryptographic research progesses and to provide the choice of cryptographic algorithms to people, organizations or countries, Archethic is a versioned cryptography or metadata cryptography.

    While this word sounds complex, it's not hard to get it.

    Public keys

    Each public key is prepended by some additional bytes to inform some metadata or algorithm versioning. This includes:

    • a byte to indicate the elliptic curve used (i.e Ed25519, NIST, secp256k1)
    • a byte to indicate the origin of the generation (i.e software, hardware, ...)

    Hashes

    Like the public keys, cryptographic hashes are also versioned with a byte of to identify which algorithms is used (i.e SHA-256). -This information helps to determine the length of a hash and to perform some checks for the validition and for the encoding/decoding of the data.

    Transaction addresses

    While transaction addresses are often represented as hashes, Archethic provide a new level of information inside the transaction's address. A byte is prepending the hash with an information regarding the elliptic curve used to generate the public key related.

    You may be wondering why would we need this kind of information.

    So, in order to be really adaptative and based on the non-disclosure mechanism offered by the transaction chain, we need to know which elliptic was used for a previous transaction to be able to reproduce the previous public key.

    For example, imagine we have a transaction address encoded in that way, using a secp256k1 elliptic

    Hash algorithmDigest
    0101309F1C765967AC7
    info

    Reminder: a transaction address is the hash of the next public key

    For a new transaction coming after, if now, we want to use the ed25519 elliptic curve, we need to know which was used before. For this reason, we have two possibility:

    • keep an history of the previous transaction and curves (not really pratical and not scalable)
    • add a byte in front of each transaction's address to the curve used

    So with a new model:

    Curve typeHash algorithmDigest
    010101309F1C765967AC7

    Now we are able to compute the previous public key, with the curve secp256k1 and continues with new elliptic curve along the way.

    This will be even more pratical with On-Chain Decentralized Wallet (Keychain) to support multiple derived keys and custom algorithms.

    Default algorithms

    Except for hardware compatability issues (HSM, etc..), EdDSA signatures, Curve25519 and AES256 will be used by default on the network.

    - +This information helps to determine the length of a hash and to perform some checks for the validition and for the encoding/decoding of the data.

    Transaction addresses

    While transaction addresses are often represented as hashes, Archethic provide a new level of information inside the transaction's address. A byte is prepending the hash with an information regarding the elliptic curve used to generate the public key related.

    You may be wondering why would we need this kind of information.

    So, in order to be really adaptative and based on the non-disclosure mechanism offered by the transaction chain, we need to know which elliptic was used for a previous transaction to be able to reproduce the previous public key.

    For example, imagine we have a transaction address encoded in that way, using a secp256k1 elliptic

    Hash algorithmDigest
    0101309F1C765967AC7
    info

    Reminder: a transaction address is the hash of the next public key

    For a new transaction coming after, if now, we want to use the ed25519 elliptic curve, we need to know which was used before. For this reason, we have two possibility:

    • keep an history of the previous transaction and curves (not really pratical and not scalable)
    • add a byte in front of each transaction's address to the curve used

    So with a new model:

    Curve typeHash algorithmDigest
    010101309F1C765967AC7

    Now we are able to compute the previous public key, with the curve secp256k1 and continues with new elliptic curve along the way.

    This will be even more pratical with On-Chain Decentralized Wallet (Keychain) to support multiple derived keys and custom algorithms.

    Default algorithms

    Except for hardware compatability issues (HSM, etc..), EdDSA signatures, Curve25519 and AES256 will be used by default on the network.

    + \ No newline at end of file diff --git a/learn/decentralized-id/index.html b/learn/decentralized-id/index.html index 69df0ac05..5fa458a80 100644 --- a/learn/decentralized-id/index.html +++ b/learn/decentralized-id/index.html @@ -4,14 +4,14 @@ Decentralized Identity | Archethic - +

    Decentralized Identity

    Identity

    Archethic was designed mainly to resolve one big issue that we are facing right now in the technology: provide an secure and easy way to identify ourselves.

    Decentralized identity avoids the need of entrusting one's identity to a third party, who might find itself in a conflict of interest and exploit our identity without our knowledge. -This person retains sole control of his/her identity, which is stored on a multitude of nodes ensuring its durability and integrity.

    Hence Archethic's decentralized identity is brought by the Archethic transaction chain which enables authorization, end to end encryption and upgradability in the decentralized network.

    The identity is or will be compatible and interoperable with others standard in the industry such as W3C DID, FIDO2, WebAuthn, etc.

    Password-less

    While digital identity is being standardized, we also designed a new way to connect and access this identy: password-less authentication.

    Embedded in the blockchain, on-chain wallet access allows anyone to identify themselves using several methods: biometric, hardware (usb, ledger), or event password. (We don't want to prevent passphrase to being use, just keep it as the lowest secure authentication method).

    For this reason we have created a Keychain, a new way to access our private keys for several services easily.

    The idea of an on-chain wallet, end to end encrypted wallet, makes the password-less possible in a near future.

    - +This person retains sole control of his/her identity, which is stored on a multitude of nodes ensuring its durability and integrity.

    Hence Archethic's decentralized identity is brought by the Archethic transaction chain which enables authorization, end to end encryption and upgradability in the decentralized network.

    The identity is or will be compatible and interoperable with others standard in the industry such as W3C DID, FIDO2, WebAuthn, etc.

    Password-less

    While digital identity is being standardized, we also designed a new way to connect and access this identy: password-less authentication.

    Embedded in the blockchain, on-chain wallet access allows anyone to identify themselves using several methods: biometric, hardware (usb, ledger), or event password. (We don't want to prevent passphrase to being use, just keep it as the lowest secure authentication method).

    For this reason we have created a Keychain, a new way to access our private keys for several services easily.

    The idea of an on-chain wallet, end to end encrypted wallet, makes the password-less possible in a near future.

    + \ No newline at end of file diff --git a/learn/decentralized-id/keychain/index.html b/learn/decentralized-id/keychain/index.html index bc641965a..b1e3915a3 100644 --- a/learn/decentralized-id/keychain/index.html +++ b/learn/decentralized-id/keychain/index.html @@ -4,14 +4,14 @@ Keychain | Archethic - +

    Keychain

    Archethic's keychain is new concept to make wallet accessible, configurable and interoperable with several service providers and why not multi chains.

    It describes wallet which is stored encrypted on chain, as only you and the authorized access or person you allowed, to be able to decrypt and build transactions from it.

    Key generation

    Technically speaking, this wallet - also referenced as Decentralized Identity - is made up of randomly generated seed (root key) from which it's possible to generate all keys according to a path of derivation.

    So for any access to a service or an application, a key will be generated on the fly from the seed (root key) and the first public key associated with a service or an application.

    Thus allowing creating an infinite number of identities without even having to store related keys.

    End to end encryption

    While this wallet or keychain being on-chain, it still remains secure as no other party (at least non authorized) can access with service keys.

    This is possible as we are using end to end encryption and elliptic curve cryptography.

    Each keychain/wallet generated is embedded into a transaction encrypted using an AES key itself encrypted with a list of authorized keys or authenticated access (biometric, smartphone, USB, etc.)

    Once generated, we also create transactions for the access of this keychain. -So in other words, each access have its own transaction chain, where the keychain's location is encrypted as well.

    Then in order to retrieve or access your keychain, your authentication method should retrieve its transaction chain, then decrypt the keychain's location, download the keychain transaction and finally decrypt the keychain with the right AES key.

    This avoids disclosure of critical information and prevents unauthorized access.

    Standard compliance

    Archethic decentralized identity and keychain concepts is also compliant with industry standard in the field of online and digital identity.

    Then once created, the keychain embeds on-chain a representation of a W3C DID (Decentralized Identitifier) document which help the discovery of your key materials.

    It displays a JSON message with the list of public key you own and you allow other parties to interact with, such as your main Archethic public key or your Amazon public for example.

    This coupled with verifiable credentials and WebAuthn (Website authentication without password) make the complete usage of decentralized identity possible.

    Customization

    Because this wallet should be your digital identity security, we can customize the services and way the keys are generated.

    Each service in the keychain is joined with other customizable property:

    • derivation path: this will inform how the key will be generated. For example, the default one is m/650'/0/0 informing we are using Archethic derivation method (650 instead of the usual BIP44) and then the 0/0 indicates the first account and the first key of the chain.

    But nothing prevent to add something like: m/650'/Amazon/0 or m/650'/JohnDoeUCO@!/0

    • curve: this indicates during the derivate key which elliptic curve we want to use. (Ed25519, NIST, Bitcoin curve)

    • hash algorithm: this is used in the transaction address generation from the key produced, by default it's associated to sha256 but if you want higher security you could use something like sha3-512 o blake2b

    - +So in other words, each access have its own transaction chain, where the keychain's location is encrypted as well.

    Then in order to retrieve or access your keychain, your authentication method should retrieve its transaction chain, then decrypt the keychain's location, download the keychain transaction and finally decrypt the keychain with the right AES key.

    This avoids disclosure of critical information and prevents unauthorized access.

    Standard compliance

    Archethic decentralized identity and keychain concepts is also compliant with industry standard in the field of online and digital identity.

    Then once created, the keychain embeds on-chain a representation of a W3C DID (Decentralized Identitifier) document which help the discovery of your key materials.

    It displays a JSON message with the list of public key you own and you allow other parties to interact with, such as your main Archethic public key or your Amazon public for example.

    This coupled with verifiable credentials and WebAuthn (Website authentication without password) make the complete usage of decentralized identity possible.

    Customization

    Because this wallet should be your digital identity security, we can customize the services and way the keys are generated.

    Each service in the keychain is joined with other customizable property:

    • derivation path: this will inform how the key will be generated. For example, the default one is m/650'/0/0 informing we are using Archethic derivation method (650 instead of the usual BIP44) and then the 0/0 indicates the first account and the first key of the chain.

    But nothing prevent to add something like: m/650'/Amazon/0 or m/650'/JohnDoeUCO@!/0

    • curve: this indicates during the derivate key which elliptic curve we want to use. (Ed25519, NIST, Bitcoin curve)

    • hash algorithm: this is used in the transaction address generation from the key produced, by default it's associated to sha256 but if you want higher security you could use something like sha3-512 o blake2b

    + \ No newline at end of file diff --git a/learn/ecosystem/index.html b/learn/ecosystem/index.html index add4b6125..4908e5545 100644 --- a/learn/ecosystem/index.html +++ b/learn/ecosystem/index.html @@ -4,14 +4,14 @@ Ecosystem | Archethic - +

    Ecosystem

    The technical and functional parameters that make Archethic unique and ready for global adoption:

    Limitless network

    Archethic is outperforming the market standards with some key indicators:

    • a scalability >1 Million TPS
    • a validation time < 5 sec
    • capability to handle up to 90% maliciousness
    • 3.6 billion times less energy consumption than Bitcoin and 0.1% transaction fee
    Super Fast & Limitless

    Without impacting the global validation, the heuristic polymorphic replication provides a linear increase of the capacity (in storage and number of validations) allowing us to reach 1 MILLION TPS transactions per second.

    Safest

    Beyond just PoW (51%) or dBFT (66%), Archethic implements a consensus that can handle 90% of malicious miners and decentralized security based on the standards of aviation safety (fraud risk less than 10-9).

    Earth Friendly

    3.6 Billion times less energy consumption than Bitcoin by using the ARCH consensus based on heuristic miners' election and a polymorphic worldwide replication. Each transaction only needs 0.42w of energy.

    Unlimited applications

    Our blockchain platform aims to replace and to improve all current applications with a comprehensive and open ecosystem, allowing people to move from the trust imposed by centralized to a decentralized system.

    Decentralized Identity

    Your identity is your right. The security and threat issues that centralized systems pose helped us realize that self-sovereign identity is needed now more than ever.

    With Archethic, you can access your identity but no one owns it. -Have you ever wondered how many times your identity is exploited without your knowledge by centralized monopolies or even your favorite merchant site?

    The world wants you to believe that ownership doesn’t matter. We are here to change that narrative.

    Identity is not just about ownership but control and freedom.

    Archethic provides interoperable decentralized identity management using both the traditional key management as well as our crypto-biometrics key management solution.

    Enter the era of innovation and decentralized identity that is yours to own and control.

    Governance

    Archethic Foundation is a non-profit organization whose vision is the promotion of the Archethic Public Blockchain Protocol.

    It considers Archethic as a project – where a solid technical foundation is a key to winning the marathon race to global adoption. Its role is to sustainably deploy resources that are under control to support the long-term success of Archethic. This long-term success will only be possible with a vibrant decentralized ecosystem.

    To provide an inclusive, generously incentivized, and on-chain Governance, Archethic is based on those four pillars:

    • Decentralized Identity & Proof of Identity: An essential prerequisite for a human-inclusive governance in blockchain is the ability of the ecosystem to uniquely identify a person and to integrate that person into a relevant group.

    • Modifiable: Each algorithm can be updated through transactions allowing the network to version (git...) all updates, and also to force each update according to a specific governance (voting quorum, veto right...).

    • On-Chain Governance: The code used by the nodes is hosted by the Blockchain itself, so the network is certain that all the nodes will immediately apply the decided updates along with the ability to test the impact of a new feature in real-time.

    • Generous Incentives: Financing the work associated with updates, new features, and contributions is an essential element. The network has a reserve of one-third of the tokens for this purpose.

    Open enhancements

    We are an open-source and decentralized protocol which decision involves community votes and suggestions.

    In that sense, we have created Archethic Improvement Proposals (AEIPs) to offer opportunity to contribute in the project by proposing technical, informational and process-based enhancements.

    If you are interested, please take on the AEIP repository

    - +Have you ever wondered how many times your identity is exploited without your knowledge by centralized monopolies or even your favorite merchant site?

    The world wants you to believe that ownership doesn’t matter. We are here to change that narrative.

    Identity is not just about ownership but control and freedom.

    Archethic provides interoperable decentralized identity management using both the traditional key management as well as our crypto-biometrics key management solution.

    Enter the era of innovation and decentralized identity that is yours to own and control.

    Governance

    Archethic Foundation is a non-profit organization whose vision is the promotion of the Archethic Public Blockchain Protocol.

    It considers Archethic as a project – where a solid technical foundation is a key to winning the marathon race to global adoption. Its role is to sustainably deploy resources that are under control to support the long-term success of Archethic. This long-term success will only be possible with a vibrant decentralized ecosystem.

    To provide an inclusive, generously incentivized, and on-chain Governance, Archethic is based on those four pillars:

    • Decentralized Identity & Proof of Identity: An essential prerequisite for a human-inclusive governance in blockchain is the ability of the ecosystem to uniquely identify a person and to integrate that person into a relevant group.

    • Modifiable: Each algorithm can be updated through transactions allowing the network to version (git...) all updates, and also to force each update according to a specific governance (voting quorum, veto right...).

    • On-Chain Governance: The code used by the nodes is hosted by the Blockchain itself, so the network is certain that all the nodes will immediately apply the decided updates along with the ability to test the impact of a new feature in real-time.

    • Generous Incentives: Financing the work associated with updates, new features, and contributions is an essential element. The network has a reserve of one-third of the tokens for this purpose.

    Open enhancements

    We are an open-source and decentralized protocol which decision involves community votes and suggestions.

    In that sense, we have created Archethic Improvement Proposals (AEIPs) to offer opportunity to contribute in the project by proposing technical, informational and process-based enhancements.

    If you are interested, please take on the AEIP repository

    + \ No newline at end of file diff --git a/learn/fee/index.html b/learn/fee/index.html index 404cb38ab..61667382c 100644 --- a/learn/fee/index.html +++ b/learn/fee/index.html @@ -4,7 +4,7 @@ Transaction fees | Archethic - + @@ -15,8 +15,8 @@ To make it more fare, we apply a logarithmic progression, as the cost of replication might be reduced by the overlap of storage node election

  • Size of the transaction: each stored byte will cost 10-8 of the current UCO's price

  • Number of replicas

  • Smart contract execution fee:

    • Cost of resulting transaction: During transaction's validation, we simulate the output's transaction from a smart contract execution and apply a transaction fee calculation.
    • Complexity of the smart contract execution (Coming soon)
  • Overall formula:

    Transaction Fee = minimum fee (UCO's price)
    + fee for storage (size * nb of replicas)
    + fee for cost per recipients
    + fee for smart contract
    info

    Regular transfer of UCO to single person would cost around ~$0.01 (+/- additional information + nb of replicas)

    Important

    The $0.01 cost is static only as minimum fee for any transaction. Depending on the number of recipients, size, etc. the fee will increase, as it requires more work for the network

    Transaction's type particularities

    Network

    All the transactions with a transaction's type such as node, node shared secrets, oracle, beacon chain, etc. don't cost fee, as their intent is only for network management.

    Keychain

    Transactions to manage keychain for creation, updates or add new access don't cost fee, as this will be blockage to the adoption and there are just meant to ease the wallet management.

    Token

    Archethic supports a token mining through a given type of transaction token. Because during this step validation nodes have to perform some additional work to create new unspent transaction outputs (UTXOs) and deliver them (if multiple - for example in a collection creation).

    Hence an additional fee is computed based on the number of UTXO to create.

    • Fungible tokens: there will only cost the minimum fee: $0.01 - as it's like doing some UCO transfer

    • Non fungible tokens: These are tokens which each collection item have some unique properties and well identified. So a list of UTXO is created for each unique collection items. This creation will consume resources of computation, networking and storage.

    An additional fee is determined in that case through the following formula:

    (log10(number of utxos) + 1) * number of utxos * minimum fee

    So the transaction fee will gradually increase according of the number of unique token to create (= new UTXO)

    info

    Token definition allows to send at the time of minting to list of first recipients. -Hence, the rules to multiple transfers is applied to logarithmically increases the transaction's fee

    - +Hence, the rules to multiple transfers is applied to logarithmically increases the transaction's fee

    + \ No newline at end of file diff --git a/learn/governance/index.html b/learn/governance/index.html index 5a0760155..f8b9ee97e 100644 --- a/learn/governance/index.html +++ b/learn/governance/index.html @@ -4,7 +4,7 @@ Governance | Archethic - + @@ -19,8 +19,8 @@ immediately apply the decided updates (via Elixir hot-reload modules and from the information stored in the "transaction content" area).

    The Archethic Blockchain is also equipped with the ability to test the impact of a new feature in real-time.

    Each update is stored in the form of a specific transaction chain allowing the network to version (git...) all updates, but also to force each update according to a specific governance (voting quorum, veto right...).

    Details

    Archethic Blockchain is using code proposals to have a way to upgrade current blockchain code in a automated and tested way.

    The idea behind the governance on Archethic blockchain is to be able to audit, test and apply code proposals in a automatic, indepedent and secure way across the deployed network.

    1. The process begins when a contributor creates a code proposal within a transaction. This code proposal will be checked to ensure that it follows the proper form (contains the correct fields for example).
    2. After the code proposal is verified, we start going over the details of the proposal and verifying that it contains correct version, valid upgrade terms and valid changes for example.
    3. When the code proposal is considered valid, and after gathering enough approvals from members of the technical council, we start the Continuous Integration phase. The role of this part is to check that the proposal passes the tests, security checks and code style.
    4. If the phase returns a success then we start the Continuous Deployment phase. The aim of this part is to test the proposal in a real world settings by deploying it into a testnet with various nodes performing multiple distinct functions.
    5. After the last phase succeeded, we launch the next phase which consists of upgrading the actual nodes to the new versions and finally rewarding all the actors that participated in the global process.

    Incentives

    Financing of the work associated with updates, new features, and contributions is an essential element. -The network has a reserve of one-third of the tokens (with progressive distribution constraints) for this purpose.

    - +The network has a reserve of one-third of the tokens (with progressive distribution constraints) for this purpose.

    + \ No newline at end of file diff --git a/learn/index.html b/learn/index.html index 5035e5496..dca5d1efa 100644 --- a/learn/index.html +++ b/learn/index.html @@ -4,15 +4,15 @@ Archethic introduction | Archethic - +

    Archethic introduction

    Archethic is the next generation of Blockchain which provides a truly decentralized limitless network, using TransactionChain and a new consensus named ARCH (Atomic Rotating Commitment Heuristic), to be the most secure and scalable decentralized network.


    Archethic's network is built to overcome the issues faced by other blockchain solutions:

    • Support of billions of transactions
    • Linear scalability
    • Low-energy consumption
    • Mass adoption
    • Low transaction fees

    This document aims to provide information and resources about the technology and the usage to build new decentralized applications on top of Archethic.

    Motivations

    Given the universal constraints both material and physical, billions of transactions cannot be integrated into a single branch of chained blocks.

    Similarly, regardless of the consensus method, it is not possible to ensure universal consensus on billions of transactions by polling all nodes of the network.

    Finally, the functioning of current distributed networks (P2P) is such that it is not possible to guarantee the freshness (consistency) of data on an asynchronous network, -unless the network is slowed down excessively by the calculation of the nonce of the block (PoW), as is the case with other blockchain networks.

    Innovations

    Archethic Blockchain solved this issues in the following way:

    TransactionChains
    Instead of chained blocks of transactions, each block is reduced to its atomic form.
    Therefore, each block contains only one transaction and each transaction will be chained in its own chain.
    Real Sharded Network
    Archethic is using sharding technology to ensure distribution of transaction processing and storage to provide a very high scalability.
    Next-generation consensus
    Archethic is using an universal consensus called ARCH based on Atomic Commitment using Heuristic Rotating election of a tiny set of validation nodes providing the highest level of security
    Optimized Replication and Self Repair
    Every transaction will be stored in a deterministic way on a set of nodes using a sharded storage layer.
    Thus, every node will autonomously know all the nodes for a given transaction and ease the network by only interrogating the closest elected nodes.
    Distributed network without bottleneck
    Archethic rebuilds the entire P2P layer to provide an efficient messaging between peers based on the Supervised Multicast using self discovery mechanism from incoming connection and network transactions.
    The system is able to maintain a qualified vision of the network while limiting the generation of requests.
    - +unless the network is slowed down excessively by the calculation of the nonce of the block (PoW), as is the case with other blockchain networks.

    Innovations

    Archethic Blockchain solved this issues in the following way:

    TransactionChains
    Instead of chained blocks of transactions, each block is reduced to its atomic form.
    Therefore, each block contains only one transaction and each transaction will be chained in its own chain.
    Real Sharded Network
    Archethic is using sharding technology to ensure distribution of transaction processing and storage to provide a very high scalability.
    Next-generation consensus
    Archethic is using an universal consensus called ARCH based on Atomic Commitment using Heuristic Rotating election of a tiny set of validation nodes providing the highest level of security
    Optimized Replication and Self Repair
    Every transaction will be stored in a deterministic way on a set of nodes using a sharded storage layer.
    Thus, every node will autonomously know all the nodes for a given transaction and ease the network by only interrogating the closest elected nodes.
    Distributed network without bottleneck
    Archethic rebuilds the entire P2P layer to provide an efficient messaging between peers based on the Supervised Multicast using self discovery mechanism from incoming connection and network transactions.
    The system is able to maintain a qualified vision of the network while limiting the generation of requests.
    + \ No newline at end of file diff --git a/learn/oracle-chain/index.html b/learn/oracle-chain/index.html index c14a438da..28be9d8ec 100644 --- a/learn/oracle-chain/index.html +++ b/learn/oracle-chain/index.html @@ -4,13 +4,13 @@ OracleChain | Archethic - +
    -

    OracleChain

    Archethic Blockchain supports Off-Chain communication through a dedicated transaction chain called OracleChain.

    It aims to gather external data to be used inside the network or the smart contract layer.

    How is it work ?

    OracleChain behaves a bit like the BeaconChain except the transaction on the chain are generated every 10min but only when there is a new data updated.

    It's using a long-polling mechanism to get data from external sources and submit a transaction through ARCH Consensus.

    By using ARCH consensus, we ensure the atomic commitment of the data submitted and ensure validity of the information written into the transaction.

    Each node receives the new transaction from the OracleChain and can apply behaviors from this new data and notify smart contracts which depends on oracle updates.

    Services

    The list of services supported by the OracleChain:

    • UCO Price Feed: fetching UCO token price from Coingecko in USD/EUR currency and is used for the:
      • Transaction Fee algorithm
      • Auto reward of nodes which didn't receive enough mining rewards
    - +

    OracleChain

    Archethic Blockchain supports Off-Chain communication through a dedicated transaction chain called OracleChain.

    It aims to gather external data to be used inside the network or the smart contract layer.

    How is it work ?

    OracleChain behaves a bit like the BeaconChain except the transaction on the chain are generated every 10min but only when there is a new data updated.

    It's using a long-polling mechanism to get data from external sources and submit a transaction through ARCH Consensus.

    By using ARCH consensus, we ensure the atomic commitment of the data submitted and ensure validity of the information written into the transaction.

    Each node receives the new transaction from the OracleChain and can apply behaviors from this new data and notify smart contracts which depends on oracle updates.

    Services

    The list of services supported by the OracleChain:

    • UCO Price Feed: fetching UCO token price from Coingecko in USD/EUR currency and is used for the:
      • Transaction Fee algorithm
      • Auto reward of nodes which didn't receive enough mining rewards
    + \ No newline at end of file diff --git a/learn/p2p/bootstrapping/index.html b/learn/p2p/bootstrapping/index.html index b5a7daebc..4a8120567 100644 --- a/learn/p2p/bootstrapping/index.html +++ b/learn/p2p/bootstrapping/index.html @@ -4,15 +4,15 @@ Bootstrapping | Archethic - +

    Bootstrapping

    Archethic Blockchain by using Network Transaction and Supervised Multicast, requires some actions to be performed when a node is bootstrapping. These operations will ensure synchronization and P2P awareness.

    Joining

    When a node joins the network for the first time, it will request from a list of preconfigured nodes to reach (called "bootstrapping seeds"), the closest nodes from its position.

    Then, it will generate a first node transaction including as data: ip, port, protocol, reward address, key certificate (to ensure the key is coming from a secure element) -Once the network will attest and verify its transaction, the node will be able to start a SelfRepair process

    Updates

    When a node rejoins the network after some time, depending on if its previous data expired, it will generate a new transaction with the new information

    Synchronization

    Once the transaction is validated, the node will start by requesting the list of nodes.

    Then, it will start the Self-Repair sequence to get and synchronize the missing transactions and publish its end of sync to the network.

    By this way, the entire will know the existence the readiness of this node.

    - +Once the network will attest and verify its transaction, the node will be able to start a SelfRepair process

    Updates

    When a node rejoins the network after some time, depending on if its previous data expired, it will generate a new transaction with the new information

    Synchronization

    Once the transaction is validated, the node will start by requesting the list of nodes.

    Then, it will start the Self-Repair sequence to get and synchronize the missing transactions and publish its end of sync to the network.

    By this way, the entire will know the existence the readiness of this node.

    + \ No newline at end of file diff --git a/learn/p2p/index.html b/learn/p2p/index.html index 6110b6e40..d4835fc95 100644 --- a/learn/p2p/index.html +++ b/learn/p2p/index.html @@ -4,7 +4,7 @@ P2P | Archethic - + @@ -15,8 +15,8 @@ Then through this view, if the node is not considered as available it can pick another node to fetch an information, while data pushing will remain to check/recheck the availability over time.

    Network transaction chains

    Network transaction chains are a way to announce information to the network through consensus and replicated throw all the nodes.

    Other networks may leverage gossip for P2P information, Archethic uses transaction based node information for P2P connectivity and cryptography. So when a node joins/rejoins the network or when its IP/Port/Key changed, a new transaction is disseminated to all the nodes in the network after its validation.

    Then each node knows the entire list of nodes allowed to participate in the network through the use of Node transaction chains. To provide a high level of security and privacy, each connection is encrypted and authenticated by the first node public key known from the transaction chains.

    Beacons Chains

    BeaconChain is a sharded layer able to monitor the entire network and therefore able to snapshot and sample P2P availability/latencies to produce summaries each day to maintain a qualified vision of the network.

    The P2P availability can also be broadcasted to the network in a shorter time range (such a epoch/slot times) to provide a fresher node availability.

    Data propagation

    Archethic uses a sharding and distributed replication. -This property limits the number of information and messages sent through the network to reduce bandwidth and data traffic

    - +This property limits the number of information and messages sent through the network to reduce bandwidth and data traffic

    + \ No newline at end of file diff --git a/learn/p2p/self-repair/index.html b/learn/p2p/self-repair/index.html index 30c280286..2cc7df401 100644 --- a/learn/p2p/self-repair/index.html +++ b/learn/p2p/self-repair/index.html @@ -4,15 +4,15 @@ Self Repair | Archethic - +

    Self Repair

    Archethic Blockchain is using a self-repair mechanism to be able to sync/re-sync missing transactions to be able to restore the state of a node.

    Because Archethic is using a multidimensional sharding, a node needs to execute a self-repair on multiple occasions, to ensure data availability and security:

    • When the node bootstraps
    • When a node goes offline
    • When the code and heuristic algorithms changes

    Identification

    To be able to determine which transactions are missing, for each cycle of repair, a date of last sync is persisted. -Therefore, we can decide from this date, the list of missing BeaconChain transactions to sync. (Reminder: BeaconChain summaries transactions across the entire network each day)

    The Self-Repair will then request BeaconChain storage pools to get the missing transactions from those missing days

    Synchronization

    Because we are using rotating election, nodes need to perform the Storage Node Election to determine if they need to store this transaction.

    In that case, we will get the list of existing storage nodes from the transaction's address to sync and request from the closest nodes the transaction to be replicated.

    Once finalized, a new last date of sync is persisted for the next cycle.

    - +Therefore, we can decide from this date, the list of missing BeaconChain transactions to sync. (Reminder: BeaconChain summaries transactions across the entire network each day)

    The Self-Repair will then request BeaconChain storage pools to get the missing transactions from those missing days

    Synchronization

    Because we are using rotating election, nodes need to perform the Storage Node Election to determine if they need to store this transaction.

    In that case, we will get the list of existing storage nodes from the transaction's address to sync and request from the closest nodes the transaction to be replicated.

    Once finalized, a new last date of sync is persisted for the next cycle.

    + \ No newline at end of file diff --git a/learn/patents/index.html b/learn/patents/index.html index 9b979e918..3d22bf6cf 100644 --- a/learn/patents/index.html +++ b/learn/patents/index.html @@ -4,7 +4,7 @@ Patents | Archethic - + @@ -17,8 +17,8 @@ Ref: FR3049088 (A1)

    Method of securing transactions through knowledge and through cross-capabilities across a decentralized network

    Cryptographic process to cross-reference the knowledge and capabilities of the devices so as to prohibit any unauthorized operation, renew and permanently forfeit all cryptographic keys of all devices, remove correlation elements of time, value, and actors involved (privacy wheel), initialize cryptographic keys for a decentralized network without using an external device to the system, minimize the exposure of public keys related to private keys of the device, to reset a device and revoke a user.
    Ref: FR3049087 (A1)

    Biometrics

    Method of Biometric Authentication without disclosure through a decentralized network

    A method of not having to reveal all or part of the biometric measurements of an individual - integrating the compensations of the biometric measurements and lifelong morphological adaptability of an individual - never having to store any biometric data or any biometric measurement or a cryptographic key relating to an individual - making it possible to record several fingers of the same individual without disclosure and allowing operations without a network and without an individual having never used any device before.
    Ref: FR3049086 (A1)

    Biometric adaptive authentication device using ultrasound, photographs in visible light of contrast and infrared, without disclosure through a decentralized network

    A Biometric authentication device without any disclosure obtained from ultrasounds and photograph of the venous network of the finger, of the lateral fingerprint of the finger and configured to take a photograph of the infrared intrinsic emission of the finger, to check the heart rate and perform an analysis, Multireferential spectrometry of the finger.
    -Ref: FR3049090 (A1); CN108780501; CN109074478; US2019089539; WO2017162930

    Device for the reproducible positioning of at least one finger of an individual while taking the biometric measurements.

    Ref: FR3049093 (A1)

    Device for Biometric ultrasonic testing and vital signs verification.

    Ref: FR3049091 (A1)

    Device for biometric authentication and reliability of measurements by visible and infrared light photography, spectrometry, and differential analysis.

    Ref: FR3049092 (A1)

    Hardware

    Communication device for communicating with other devices and enabling nearby transactions and creating a mesh network.

    Ref: FR3049085 (A1)

    Mechanical and electrical coupling device to connect to a computer periphery without damaging the host system.

    Ref: FR3049121 (A1)

    - +Ref: FR3049090 (A1); CN108780501; CN109074478; US2019089539; WO2017162930

    Device for the reproducible positioning of at least one finger of an individual while taking the biometric measurements.

    Ref: FR3049093 (A1)

    Device for Biometric ultrasonic testing and vital signs verification.

    Ref: FR3049091 (A1)

    Device for biometric authentication and reliability of measurements by visible and infrared light photography, spectrometry, and differential analysis.

    Ref: FR3049092 (A1)

    Hardware

    Communication device for communicating with other devices and enabling nearby transactions and creating a mesh network.

    Ref: FR3049085 (A1)

    Mechanical and electrical coupling device to connect to a computer periphery without damaging the host system.

    Ref: FR3049121 (A1)

    + \ No newline at end of file diff --git a/learn/sharding/beacon-chain/explorer/index.html b/learn/sharding/beacon-chain/explorer/index.html index bd5035eae..c7c1c2284 100644 --- a/learn/sharding/beacon-chain/explorer/index.html +++ b/learn/sharding/beacon-chain/explorer/index.html @@ -4,7 +4,7 @@ Beacon Explorer | Archethic - + @@ -14,8 +14,8 @@ One epoch may have many slots based on the slot timer interval. At each epoch a new transaction is emitted to have a summary of the entire epoch.

    Epoch interval may differ between mainnet, testnet or development. For instance mainnet epoch interval is daily while for testnet it is currently every minute, to ease integration and simulation of the network.

    So in this time interval beacon transactions are sealing the transaction in the current beacon summary transaction and replicates the transactions to other nodes.

    Subset

    Archethic Blockchain have 256 subsets, from 00 to FF [0-255] (two nibbles) as the byte capacity and the first byte of the transaction.

    Process to get transaction notifications

    Beacon Chain will store the transactions in slots and at the beacon summary time all those transactions are summarized and will be replicated among the beacon storage nodes which are elected as storage nodes.

    The day 1 will be the next beacon summary date from the first node enrollment date, which means, if the first node joins on 02/11/2021 10:00:00, the beacon chain date to pull will be 03/11/2021 00:00:00

    The explorer then exposes a pagination based on date, since we can easily reproduce the addresses through a deterministic address generation based on date.

    So from the day 1 until now, we can offer pagination over the beacon summaries.

    Because we are able to have a reproducible storage node election algorithm we can fetch data for a given date -for the right nodes.

    How to get transactions in realtime

    When a client is displaying the beacon chain explorer, a request is sent to the BeaconChain subset in charge of the current slot, to subscribe notifications about transactions replications.

    On the BeaconChain, once a transaction is replicated a subset will enlist it for the next slot to be persisted.

    Then we have the capability to notify subscribed clients (aka explorer nodes) the transaction completion.

    But because Archethic is using a rotating sharding implementation, the nodes involved for a given slot will change over the time, therefore behind the scenes the explorer will subscribe for each new slot to have the latest transactions in a soft real time fashion.

    - +for the right nodes.

    How to get transactions in realtime

    When a client is displaying the beacon chain explorer, a request is sent to the BeaconChain subset in charge of the current slot, to subscribe notifications about transactions replications.

    On the BeaconChain, once a transaction is replicated a subset will enlist it for the next slot to be persisted.

    Then we have the capability to notify subscribed clients (aka explorer nodes) the transaction completion.

    But because Archethic is using a rotating sharding implementation, the nodes involved for a given slot will change over the time, therefore behind the scenes the explorer will subscribe for each new slot to have the latest transactions in a soft real time fashion.

    + \ No newline at end of file diff --git a/learn/sharding/beacon-chain/index.html b/learn/sharding/beacon-chain/index.html index ccd394181..8c87ecf9a 100644 --- a/learn/sharding/beacon-chain/index.html +++ b/learn/sharding/beacon-chain/index.html @@ -4,14 +4,14 @@ Beacon Chain | Archethic - +

    Beacon Chain

    Archethic Blockchain is using Sharding mechanism to ensure scalability in terms of storage and validation.

    But since there is no way in a well sharded and distributed network to know all the transaction in the system, -a Beacon Chain is used to keep a global synchronization and reference.

    Concepts

    Beacon Chain is used as tracer/marker of a global state but to face some scalability issue, Archethic Blockchain is using Sharding also for the Beacon Chain.

    Which means that the Beacon Chain is sharded and divided into subset defined by the transaction's address and a given date.

    For example: a transaction's address starting by 0F for a given day, will not be stored on the same subset as a transaction's address starting by 9F for the same day.

    Transaction tracking and timestamping

    Each time a transaction is validated, the validation nodes will send the transaction to the right Beacon Chain storage nodes, to transmit the address of the transaction and its timestamp.

    For each Beacon Chain interval, a new slot is generated referencing all the transaction during this interval.

    At the end of the day, a transaction chain is formed, and a last transaction is computed to generate a summary of the current day for a given subset.

    Because each transaction has its own storage nodes, Beacon Chains are balanced between the storage nodes to ensure a better scalability and distribution.

    Status and Network Coordinates of nodes

    Beacon Chains also contains network status of the nodes where the public key starts by the Beacon Chain subset.

    The storage nodes in each subset is in charge of:

    • checking the node availabilities
    • gathering networking information such as latency, bandwidth

    At the end of the day, a transaction is formed as well and a last transaction is computed to generate a summary of node availability and network coordinates

    Slot

    Each Beacon Chain is divided during the day into multiple slots, defined by interval (for instance every 10 min).

    Those slot contains the following information:

    • Transaction summaries: timestamping of the validated transactions
      • address: Transaction's address
      • timestamp: Transaction validation time
      • movements addresses: List of outputs addresses of the transaction
    • End of node synchronization: timestamping when a node finished its synchronization
      • node public key: Node's first public key
      • timestamp: Time when the node synchronization ended
    • P2P view:
      • availabilities: binary form of the availability of the sampled nodes for the given subset
      • network statistics: latency and bandwidth of the sampled nodes for the given subset
    - +a Beacon Chain is used to keep a global synchronization and reference.

    Concepts

    Beacon Chain is used as tracer/marker of a global state but to face some scalability issue, Archethic Blockchain is using Sharding also for the Beacon Chain.

    Which means that the Beacon Chain is sharded and divided into subset defined by the transaction's address and a given date.

    For example: a transaction's address starting by 0F for a given day, will not be stored on the same subset as a transaction's address starting by 9F for the same day.

    Transaction tracking and timestamping

    Each time a transaction is validated, the validation nodes will send the transaction to the right Beacon Chain storage nodes, to transmit the address of the transaction and its timestamp.

    For each Beacon Chain interval, a new slot is generated referencing all the transaction during this interval.

    At the end of the day, a transaction chain is formed, and a last transaction is computed to generate a summary of the current day for a given subset.

    Because each transaction has its own storage nodes, Beacon Chains are balanced between the storage nodes to ensure a better scalability and distribution.

    Status and Network Coordinates of nodes

    Beacon Chains also contains network status of the nodes where the public key starts by the Beacon Chain subset.

    The storage nodes in each subset is in charge of:

    • checking the node availabilities
    • gathering networking information such as latency, bandwidth

    At the end of the day, a transaction is formed as well and a last transaction is computed to generate a summary of node availability and network coordinates

    Slot

    Each Beacon Chain is divided during the day into multiple slots, defined by interval (for instance every 10 min).

    Those slot contains the following information:

    • Transaction summaries: timestamping of the validated transactions
      • address: Transaction's address
      • timestamp: Transaction validation time
      • movements addresses: List of outputs addresses of the transaction
    • End of node synchronization: timestamping when a node finished its synchronization
      • node public key: Node's first public key
      • timestamp: Time when the node synchronization ended
    • P2P view:
      • availabilities: binary form of the availability of the sampled nodes for the given subset
      • network statistics: latency and bandwidth of the sampled nodes for the given subset
    + \ No newline at end of file diff --git a/learn/sharding/index.html b/learn/sharding/index.html index f20dfb659..276ee6bd3 100644 --- a/learn/sharding/index.html +++ b/learn/sharding/index.html @@ -4,7 +4,7 @@ Sharding | Archethic - + @@ -12,8 +12,8 @@

    Sharding

    To become an unlimited decentralized network, Archethic Blockchain is using a feature called Sharding, used to split processing and storage power to ensure a scalable system.

    Thanks to the Transaction Chain paradigm, transactions can be divided into chains, to ensure a concurrent processing as the opposite of traditional blockchains.

    Other new blockchain networks start to use Sharding but sometimes not in a complete form:

    • either storage
    • either validation

    Archethic Blockchain supports a complete sharding scheme for validation and for storage.

    Validation

    Each transaction is validated by a new set of rotating nodes.

    This ensures the distribution of validation and processing, to achieve a linear scalability and a high TPS.

    Because transaction are using the UTXO model, there is no reality out of the transaction, so the network is not subject to issues like:

    • cross shards synchronization
    • state channels communication

    To get the state of a transaction, only the transaction and the transaction inputs will be taken into consideration

    Storage

    After the validation of the transaction, validation nodes will be in charge to send the transaction to several pools of nodes:

    • Transaction Chain Storage Pool: All the transaction associated with the same chain must be replicated on the storage nodes associated with the new transaction's address.
    • I/O Storage Pool: Each validated transaction is replicated on the storage nodes associated with the addresses of the transaction input/outputs:
      • Transaction movements addresses storage pools
      • Node movements public key storage pools
      • Recipients addresses storage pools
    • Beacon Storage Pool: Each transaction address must be replicated on the storage nodes of the associated address subset See BeaconChain

    For each transaction, the Transaction Chain Storage Pool will change, assuring a completed distribution of nodes and the data replication. Nevertheless, nothing prevents the storage nodes to overlap within the chain.

    Rotating Election

    Like the validation nodes election, the storage nodes election is subject to a rotating election. -In other terms, each transaction will have its own shard and storage nodes.

    The storage node election is based on:

    • the address of the transaction
    • the storage nonce: a stable secret known by the network
    • the list of nodes

    This permits any node to perform this computation autonomously to reproduce this list and to request a transaction from the closest node.

    To ensure the best availability of the data, this list is refined by some criteria, such as:

    • P2P availability
    • Geographical distribution
    - +In other terms, each transaction will have its own shard and storage nodes.

    The storage node election is based on:

    • the address of the transaction
    • the storage nonce: a stable secret known by the network
    • the list of nodes

    This permits any node to perform this computation autonomously to reproduce this list and to request a transaction from the closest node.

    To ensure the best availability of the data, this list is refined by some criteria, such as:

    • P2P availability
    • Geographical distribution
    + \ No newline at end of file diff --git a/learn/sharding/replication-attestation/index.html b/learn/sharding/replication-attestation/index.html index 377a42985..1615c056d 100644 --- a/learn/sharding/replication-attestation/index.html +++ b/learn/sharding/replication-attestation/index.html @@ -4,7 +4,7 @@ Replication attestation | Archethic - + @@ -20,8 +20,8 @@ So for example, the replication can be splitted by levels: [ Main Chain ] -> [ Recipient Chains]

    Then the welcome node will be notified by a validation node with a given number of replica confirmations.

              V1
    / | \
    Chain: S1 S2 S3
    / | \
    Recipient Shards

    Client notifications

    When a transaction is submitted, the welcome node will transfer this transaction to the validation nodes and return a pending status to the client. The client would have to subscribe to notifications about the completion of the transaction. Once the transaction will be validated and the validation nodes by notifing the welcome will notify the clients asynchronously.

    Further improvements

    To reduce the overall size of the attestations and confirmations we can support signature aggregation or cosigning to embed a single transaction with a bitfield -to indicate which nodes signed the transaction replication, which will be signed over by a validation node.

    - +to indicate which nodes signed the transaction replication, which will be signed over by a validation node.

    + \ No newline at end of file diff --git a/learn/token/index.html b/learn/token/index.html index ce085e8d6..73bc4034e 100644 --- a/learn/token/index.html +++ b/learn/token/index.html @@ -4,15 +4,15 @@ Tokens | Archethic - +

    Tokens

    Tokens is an important feature on Archethic. Nowadays, our world is transforming towards digitalisation and tokenization with new use cases and trends (royalties, collection, proof of ownerships, etc.)

    Archethic allows users to create and transaction with an unlimited-defined (custom) token natively.

    Native

    Archethic tokens are considered as native as for developers, there is no need to create smart contract to mint or transfer tokens.

    The transaction's structure supports - by design, asn extension of the ledger model (more than UCO-only transaction)

    All the layer of complexity have been removed to make them efficient and performant.

    Because of this, the transfer of tokens is as simple as a transfer of UCO (just UTXO), making it fast and cheap.

    Standardized

    Archethic's tokens are also unified through specifications to help implementers, developers and users to have a clear understanding of their definition.

    The complete specification is composed of many AEIPs:

    Creation

    In order to create a token, you have to:

    1. set the transaction's type to: token
    2. define in the transaction's content the token's json definition

    The JSON Schema is available on GitHub

    note

    As everything on Archethic, it is a good practice to create a new transaction chain for this token only.

    Fungible

    Example of a token that doesn't allow minting (may never be resupplied):

    {
    "supply": 100000000000, // 1000 tokens
    "decimals": 8, // 1 token == 10⁸
    "type": "fungible",
    "symbol": "TOKEN_SYMBOL",
    "name": "TOKEN_NAME",
    "properties": {"PROPERTY_NAME": "PROPERTY_VALUE"}
    }

    Example of a token that allows minting (may be resupplied later):

    {
    "allow_mint": true, // <------------
    "supply": 100000000000, // 100000 tokens
    "decimals": 6, // 1 token == 10⁶
    "type": "fungible",
    "symbol": "TOKEN_SYMBOL",
    "name": "TOKEN_NAME",
    "properties": {"PROPERTY_NAME": "PROPERTY_VALUE"}
    }

    Non-fungible

    There are 2 definitions for the NFT:

    1. either for a single token
    2. either for a collection of tokens
    info

    NFTs always have 8 decimals.

    Example of a NFT:

    {
    "supply": 100000000, // 1 token
    "type": "non-fungible",
    "name": "My NFT",
    "symbol": "MNFT",
    "properties": {
    "image": "base64 of the image",
    "description": "This is a NFT with an image"
    }
    }

    Example of a NFT Collection:

    {
    "supply": 300000000, // 3 tokens
    "type": "non-fungible",
    "name": "COLLETION NAME",
    "symbol": "COLLETION_SYMBOL",
    "properties": {"globalProperty": "value"},
    "collection": [
    {"image": "link"},
    {"image": "link"},
    {"image": "link"}
    ]
    }

    During the transaction validation, the miners will understand how to interpret this transaction and create the relative assets and UTXOs to make transfers possible right away.

    Resupply fungible tokens (AEIP-18)

    As mentioned above, fungible tokens may accept to be minted at any time. This transaction must be done in the same transaction chain of the referenced token (to prove ownership of the token) and it's type must be token.

    The JSON Schema is available on GitHub

    Here's an example of the token resupply transaction's content:

    {
    "aeip": [8, 18],
    "supply": 100000000000, // 1000 tokens if referenced token has decimals=8
    "token_reference": "0000C13373C96538B468CCDAB8F95FDC3744EBFA2CD36A81C3791B2A205705D9C3A2"
    }

    Recipients (AEIP-19)

    When creating a token transaction (creation or resupply), it is also possible to specify a list of recipients that will receive all or some of the minted tokens. -In order to do so, a recipients field must specified in the transaction's content.

    Here's an example for a fungible token resupply:

    {
    "aeip": [8, 18, 19],
    "supply": 1000,
    "token_reference": "0000C13373C96538B468CCDAB8F95FDC3744EBFA2CD36A81C3791B2A205705D9C3A2",
    "recipients": [
    {
    "to": "0000f1fd....",
    "amount": 100000000 // 1 token
    }
    ]
    }

    Here's another example for a non-fungible token creation:

    {
    "aeip": [2, 8, 19],
    "supply": 100000000, // 1 token
    "type": "non-fungible",
    "name": "My NFT",
    "symbol": "MNFT",
    "properties": {
    "image": "base64 of the image",
    "description": "This is a NFT with an image"
    },
    "recipients": [
    {
    "to": "0000f1fd....",
    "amount": 100000000 // 1 token
    }
    ]
    }

    Transfer

    Now that the tokens are created, there are few ways to move them around:

    1. Via a wallet (such as the Archethic Wallet)
    2. Via the send-transaction API
    3. Via a Smart Contract

    Example of a NFT transfer via the API:

    {
    "method": "send_transaction",
    "jsonrpc": "2.0",
    "id": 1,
    "params": {
    "transaction": {
    "version": 2,
    "type": "transfer",
    // [...]
    "data": {
    "ledger": {
    "token": {
    "transfers": [
    {
    "to": "0000ABCD...EF", // recipient's address
    "amount": 100000000, // 1 token
    "tokenAddress": "00001AC8...4F", // token definition address
    "tokenId": 1 // 1st token of the collection
    }
    ]
    }
    }
    }
    }
    }
    }

    Example of a transfer via a Smart Contract:

    Contract.add_token_transfer(token_address: 0x00001AC8...4F, to: 0x0000ABCD...EF, amount: 100000000)
    - +In order to do so, a recipients field must specified in the transaction's content.

    Here's an example for a fungible token resupply:

    {
    "aeip": [8, 18, 19],
    "supply": 1000,
    "token_reference": "0000C13373C96538B468CCDAB8F95FDC3744EBFA2CD36A81C3791B2A205705D9C3A2",
    "recipients": [
    {
    "to": "0000f1fd....",
    "amount": 100000000 // 1 token
    }
    ]
    }

    Here's another example for a non-fungible token creation:

    {
    "aeip": [2, 8, 19],
    "supply": 100000000, // 1 token
    "type": "non-fungible",
    "name": "My NFT",
    "symbol": "MNFT",
    "properties": {
    "image": "base64 of the image",
    "description": "This is a NFT with an image"
    },
    "recipients": [
    {
    "to": "0000f1fd....",
    "amount": 100000000 // 1 token
    }
    ]
    }

    Transfer

    Now that the tokens are created, there are few ways to move them around:

    1. Via a wallet (such as the Archethic Wallet)
    2. Via the send-transaction API
    3. Via a Smart Contract

    Example of a NFT transfer via the API:

    {
    "method": "send_transaction",
    "jsonrpc": "2.0",
    "id": 1,
    "params": {
    "transaction": {
    "version": 2,
    "type": "transfer",
    // [...]
    "data": {
    "ledger": {
    "token": {
    "transfers": [
    {
    "to": "0000ABCD...EF", // recipient's address
    "amount": 100000000, // 1 token
    "tokenAddress": "00001AC8...4F", // token definition address
    "tokenId": 1 // 1st token of the collection
    }
    ]
    }
    }
    }
    }
    }
    }

    Example of a transfer via a Smart Contract:

    Contract.add_token_transfer(token_address: 0x00001AC8...4F, to: 0x0000ABCD...EF, amount: 100000000)
    + \ No newline at end of file diff --git a/learn/transaction-chain/index.html b/learn/transaction-chain/index.html index b3e8d6eb7..cebd2f26f 100644 --- a/learn/transaction-chain/index.html +++ b/learn/transaction-chain/index.html @@ -4,7 +4,7 @@ Transaction chains | Archethic - + @@ -17,8 +17,8 @@ all unspent outputs will be reintegrated directly into the last transaction.

    Transaction structure

    • Pending transaction

    A pending transaction is a transaction that does not have validation. Its structure is described as below:

    |-----------|------|------|---------------------|--------------------|------------------|
    | Address | Type | Data | Previous public key | Previous signature | Origin signature |
    | --------- | ------- | -------- | ------------------- | ------------------ | ---------------- |
    | |
    | |
    | --------- | ------ | -------- | ------------ | ------------ |
    | Content | Code | Ledger | Ownerships | Recipients |
    | --------- | ------ | -------- | ------------ | ------------ |
    | |
    | |
    | ----- | ------- | | ----------------- | -------- |
    | UCO | Token | | Authorized keys | Secret |
    | ----- | ------- | | ----------------- | -------- |


    • Address: Corresponds to the hash of the public key of the transaction

    • Type: Defines the functional role of the transaction

    • Data: Contains all the operations to be performed (transfers, smart contracts, key authorizations, etc.)

      • Content: Can contain any kind of data. It can be used to host some data (HTML page, text, image, code, etc.)
      • Code: Defines the smart contract code to be interpreted by the node. More details on Smart-Contracts section.
      • Ledger: Defines several types of ledger operations
        • UCO: for the cryptocurrency transfers
        • Token: for non-financial transactions (intended for P2P uses - as tokens, loyalties, etc.)
      • Ownerships: Define some cryptographic authorizations and delegations
        • Authorized keys: list of authorized keys to be able to decrypt secrets
        • Secrets: Encrypted contents which can be decrypted by the authorized keys
      • Recipients: Additional recipients to target smart contracts
    • Previous public key: Corresponds to the public key associated to the previous transaction

    • Previous signature: Corresponds to the signature of the private key associated with the mentioned previous public key

    • Origin signature: Corresponds to the signature of the device or software that generated the transaction. This is used on the Proof Of Work mechanism and is a necessary condition of its validation.

    • Validated transaction

    A validated transaction is a pending transaction completed with the validation proofs required by the Heuristic Algorithms. Those are defined by the given structure:

    |------------------|-------------------------|
    | Validation Stamp | Cross Validation Stamps |
    | ---------------- | ----------------------- |
    | |
    | | ----------------- | ----------- |
    | | Node public key | Signature |
    | | ----------------- | ----------- |
    | |
    | ----------- | --------------- | -------------------- | ------------------- | ------------------- | ------------ | -------- | ----------- |
    | Timestamp | Proof of Work | Proof of Integrity | Proof of Election | Ledger Operations | Recipients | Errors | Signature |
    | ----------- | --------------- | -------------------- | ------------------- | ------------------- | ------------ | -------- | ----------- |
    | |
    | ----- | ----------------------- | ----------------- |
    | Fee | Transaction movements | Unspent outputs |
    | ----- | ----------------------- | ----------------- |

    • Validation Stamp: Stamp generated by the coordinator node
      • Proof of work: Corresponds to the public key matching the origin signature (More details on the Proof of Work section).
      • Proof of integrity: Proves the linkage of the previous transactions
      • Proof of election: Proves the validation node's rotating election and permit to reproduce it later (See Rotating Election)
      • Ledger operations: Contains all the ledger operations that will be taken into account by the network
        • fee: Transaction's fee
        • transaction movements: Issuer and resolved transaction movements
        • Unspent outputs: List of the remaining unspent outputs of the transaction chain after validation
      • Recipients: List of resolved addresses of the recipients
      • Errors: Any errors found in the validation (i.e. pending transaction error)
      • Signature: Cryptographic signature of the entire stamp by the coordinator's key
    • Cross validation stamps: To be considered as validated, the Validation Stamp must be joined as many Cross Validation Stamp as required by the Heuristic Algorithms. -They are signatures of the given validation stamp.
      • Node public key: Correspond to the node's public key which generate this Cross Validation Stamp's signature
      • Signature: Correspond to the signature of the Cross Validation Stamp for the mentioned public key
      • Inconsistencies: In case of inconsistencies or disagreement, it will contain a list of inconsistencies noted
    - +They are signatures of the given validation stamp.
    • Node public key: Correspond to the node's public key which generate this Cross Validation Stamp's signature
    • Signature: Correspond to the signature of the Cross Validation Stamp for the mentioned public key
    • Inconsistencies: In case of inconsistencies or disagreement, it will contain a list of inconsistencies noted
    + \ No newline at end of file diff --git a/learn/transaction-types/index.html b/learn/transaction-types/index.html index c8105ead3..b09d749eb 100644 --- a/learn/transaction-types/index.html +++ b/learn/transaction-types/index.html @@ -4,13 +4,13 @@ Transaction types | Archethic - +
    -

    Transaction types

    The transaction's type is used to give a hint on what the transaction contains. Some types must respect some conditions.

    There are 2 categories of transaction types, the network transactions and the others:

    • network transactions: every nodes in the network must replicate them
    • others: only elected nodes must replicate them

    node (network)

    Only nodes are allowed to create a node transaction. It contains the information about a running node. It is sent when a node joins or when it changes its network configuration.

    node_shared_secrets (network)

    This daily (11:30pm) transaction provides a shared secret to all the running nodes.

    node_rewards (network)

    This daily (02:00am) transaction rewards the nodes by sending them some MUCOs based on their uptime.

    mint_rewards (network)

    This daily (02:00am) transaction mints some MUCOs. The amount minted is the same as the amount of UCO burned previous day.

    oracle (network)

    This transaction fetch some off-chain data and provides it in the content. It is sent every minutes. Please note that the oracle content may not always contain the same information. For example the UCO price is only sent if it changes.

    oracle_summary (network)

    This daily (00:00am) transaction aggregates all oracles transaction of the previous day.

    code_proposal (network)

    This transaction contains a diff (code change) to be applied on the nodes. It then need to be approved before it is applied.

    code_approval (network)

    This transaction is used to approve a code_proposal. Once a threshold is passed, the diff is applied to all nodes.

    origin (network)

    TODO

    keychain

    This transaction is created when creating a wallet. It is used to be able to receive/send UCOs and Tokens.

    keychain_access

    This transaction defines the authorization of a keychain.

    transfer

    This transaction contains either at least, one uco_transfer, one token_transfer or one recipient.

    token

    This transaction defines a Token.

    hosting

    This transaction is a AEWeb transaction. Read How it works for the details.

    data

    This transaction contains either a content or at least one ownership.

    contract

    This transaction contains a contract in the code field.

    - +

    Transaction types

    The transaction's type is used to give a hint on what the transaction contains. Some types must respect some conditions.

    There are 2 categories of transaction types, the network transactions and the others:

    • network transactions: every nodes in the network must replicate them
    • others: only elected nodes must replicate them

    node (network)

    Only nodes are allowed to create a node transaction. It contains the information about a running node. It is sent when a node joins or when it changes its network configuration.

    node_shared_secrets (network)

    This daily (11:30pm) transaction provides a shared secret to all the running nodes.

    node_rewards (network)

    This daily (02:00am) transaction rewards the nodes by sending them some MUCOs based on their uptime.

    mint_rewards (network)

    This daily (02:00am) transaction mints some MUCOs. The amount minted is the same as the amount of UCO burned previous day.

    oracle (network)

    This transaction fetch some off-chain data and provides it in the content. It is sent every minutes. Please note that the oracle content may not always contain the same information. For example the UCO price is only sent if it changes.

    oracle_summary (network)

    This daily (00:00am) transaction aggregates all oracles transaction of the previous day.

    code_proposal (network)

    This transaction contains a diff (code change) to be applied on the nodes. It then need to be approved before it is applied.

    code_approval (network)

    This transaction is used to approve a code_proposal. Once a threshold is passed, the diff is applied to all nodes.

    origin (network)

    TODO

    keychain

    This transaction is created when creating a wallet. It is used to be able to receive/send UCOs and Tokens.

    keychain_access

    This transaction defines the authorization of a keychain.

    transfer

    This transaction contains either at least, one uco_transfer, one token_transfer or one recipient.

    token

    This transaction defines a Token.

    hosting

    This transaction is a AEWeb transaction. Read How it works for the details.

    data

    This transaction contains either a content or at least one ownership.

    contract

    This transaction contains a contract in the code field.

    + \ No newline at end of file diff --git a/learn/uco/index.html b/learn/uco/index.html index b0affff0b..b02b01c01 100644 --- a/learn/uco/index.html +++ b/learn/uco/index.html @@ -4,13 +4,13 @@ UCO token | Archethic - +
    -

    UCO token

    Archethic, an open-source public blockchain is an infrastructure that is fuelled by its native cryptocurrency and should ideally scale to the sum of its individual nodes’ performance. It needs to be designed in such a way that it is a self-sustaining economy run by the people, for the people.

    UCO is based on the principle of controlled supply and creating demand.

    Fibonacci Golden Token Economics

    To achieve the objective of a self-sustaining crypto economy, the token distribution has been redefined. The transactions growth, users growth ans developers growth based on the set of commissioned applications has been analysed. The cost of running the nodes has been calculated and the adoption and incentivization has been designed to ensure the sustenance of nodes.


    - +

    UCO token

    Archethic, an open-source public blockchain is an infrastructure that is fuelled by its native cryptocurrency and should ideally scale to the sum of its individual nodes’ performance. It needs to be designed in such a way that it is a self-sustaining economy run by the people, for the people.

    UCO is based on the principle of controlled supply and creating demand.

    Fibonacci Golden Token Economics

    To achieve the objective of a self-sustaining crypto economy, the token distribution has been redefined. The transactions growth, users growth ans developers growth based on the set of commissioned applications has been analysed. The cost of running the nodes has been calculated and the adoption and incentivization has been designed to ensure the sustenance of nodes.


    + \ No newline at end of file diff --git a/markdown-page/index.html b/markdown-page/index.html index 021f9c537..1edf79b69 100644 --- a/markdown-page/index.html +++ b/markdown-page/index.html @@ -4,13 +4,13 @@ Markdown page example | Archethic - +

    Markdown page example

    You don't need React to write simple standalone pages.

    - + \ No newline at end of file diff --git a/participate/DeFi/index.html b/participate/DeFi/index.html index a984eef01..9c775b21a 100644 --- a/participate/DeFi/index.html +++ b/participate/DeFi/index.html @@ -4,7 +4,7 @@ Tutoriel Archethic DeFi | Archethic - + @@ -38,8 +38,8 @@ color: #757575; } } -

    Welcome to the interactive guide for using the Archethic Bridge

    This tutorial will explain the following points:

    • Retrieve and create an Archethic Wallet
    • Withdraw your UCO ERC20 from a Centralized Exchange (CEx)
    • Transfer your UCO ERC20 to Archethic
    • Transfer your ETH to Polygon PoS
    • Transfer your WETH to Archethic


    - +

    Welcome to the interactive guide for using the Archethic Bridge

    This tutorial will explain the following points:

    • Retrieve and create an Archethic Wallet
    • Withdraw your UCO ERC20 from a Centralized Exchange (CEx)
    • Transfer your UCO ERC20 to Archethic
    • Transfer your ETH to Polygon PoS
    • Transfer your WETH to Archethic


    + \ No newline at end of file diff --git a/participate/aeweb/automation/index.html b/participate/aeweb/automation/index.html index 15c1cdc9c..3168aa3bf 100644 --- a/participate/aeweb/automation/index.html +++ b/participate/aeweb/automation/index.html @@ -4,14 +4,14 @@ Automate deployments | Archethic - +

    Automate deployments

    AEWeb's CLI is really simple to deploy websites from the command line and is handy on low-frequent deployment usage. -However, if you need to deploy often a website, the CLI might not be the great tool.

    To resolve this issue, we have planed a way to automate the deployment of your websites using Github's Actions.

    This is a simple automation that allow you to deploy to Archethic decentralized web hosting. Under the hood, it's running some part of the AEWeb CLI features.

    You can decide when your codebase will be deployed on Archethic, for instance foreach push or validated pull-request, or after each release.

    Check our Github Action to discover how to use it and leverage continuous deployment on Archethic.

    - +However, if you need to deploy often a website, the CLI might not be the great tool.

    To resolve this issue, we have planed a way to automate the deployment of your websites using Github's Actions.

    This is a simple automation that allow you to deploy to Archethic decentralized web hosting. Under the hood, it's running some part of the AEWeb CLI features.

    You can decide when your codebase will be deployed on Archethic, for instance foreach push or validated pull-request, or after each release.

    Check our Github Action to discover how to use it and leverage continuous deployment on Archethic.

    + \ No newline at end of file diff --git a/participate/aeweb/dns/index.html b/participate/aeweb/dns/index.html index 199ed4b2c..9e4c5fab4 100644 --- a/participate/aeweb/dns/index.html +++ b/participate/aeweb/dns/index.html @@ -4,7 +4,7 @@ AEWeb - Domain names | Archethic - + @@ -17,8 +17,8 @@ and the key at: /etc/letsencrypt/live/example.com/privatekey.pem

    info

    We might notice the command gives the end of validity for the certificate. Before this date, you just have to reply the command to assert you still own the domain to get the new certificate and/or key.

    2. Add the certificate on chain

    You need to get the certificate and the private key associated.

    info

    The private key is necessary to sign/encrypt the webpages to match the certificates and be considered as valid. Only the nodes will have access to this key to allow the servers to use SSL communications.

    If you use the AEWeb CLI, we can perform this by running the command:

    aeweb deploy --seed XXX --path ./my_website --ssl-certificate ./cert.pem --ssl-key ./key.pem --endpoint https://mainnet.archethic.net 

    You're website transaction chain will then contains a Reference transaction with the ssl certificate in the content -and the private key end to end encrypted for the network.

    - +and the private key end to end encrypted for the network.

    + \ No newline at end of file diff --git a/participate/aeweb/how-it-works/index.html b/participate/aeweb/how-it-works/index.html index 70b07aad1..586613563 100644 --- a/participate/aeweb/how-it-works/index.html +++ b/participate/aeweb/how-it-works/index.html @@ -4,7 +4,7 @@ AEWeb - How it works | Archethic - + @@ -13,8 +13,8 @@ For example, you could have a website which contains: 3 files:

    • HTML page
    • Image
    • CSS

    3 transactions could be generated:

    1. Reference:
    {
    "aewebVersion": 1,
    "hashFunction": "sha-1",
    "metaData": {
    "index.html": {
    ...
    "addresses": ["0ac7fj..."]
    },
    "assets/app.css": {
    ...
    "addresses": ["0ac7fj..."]
    },
    "assets/image.jpg": {
    ...
    // image.jpg is too big to fit in a single data transaction
    "addresses": ["0ac7fj...", "1fb2ha..."]
    }
    }
    1. HTML + CSS + Image (chunked by 30%)
    // data transaction: "0ac7fj..."
    {
    "index.html": "...",
    "assets/app.css": "..."
    "assets/image.jpg": "..."
    }
    1. Image (remaining chunks)
    // data transaction: "1fb2ha..."
    {
    "assets/image.jpg": "..."
    }

    Content delivery

    On the other side, the transactions are validated and stored on the Archethic Blockchain. Any Archethic node exposes an API dedicated for the web hosting by AEWeb.

    This API takes a reference address as a parameter, and then proceeds to take the path of the file, just like any web server would do.

    https://mainnet.archethic.net/aeweb/0c19fd13......../image.jpg

    aeweb_CDN aeweb_CDN

    The welcome node will request the reference transaction download to its related shard. -It will parse the reference content and detect the transactions to download for the requested file.

    Once the file downloaded, the content will send back to the client and the browser will display the file.

    Because websites rendering is composed of multiple HTTP requests for each file, the browser will be able to understand the responses and display the website entirely - while leveraging a single reference on-chain.

    Good to know

    Once the website retrieved, the data will be cached locally. So, the next time the same person will visit the website, no data will be fetched again.

    This will be true until the website and the reference chain evolves.

    Website updates

    The first thing a node does when it receives an AEWeb request is to download the latest reference transaction from the chain. This behaviour allows a user to update its website and to keep the same URL.

    This means that updating a website is as simple as sending a new reference transaction!

    Website unpublication

    Introduced by AEIP-13, a website can be unpublished by sending the following reference transaction:

    {
    "aeip": [8, 13],
    "aewebVersion": 1,
    "publicationStatus": "UNPUBLISHED"
    }

    As long as this reference transaction is the latest, the nodes will not serve the website. An HTTP status code 410 is sent.

    Data is permanent

    The data from an unpublished website (and all previous version as a matter of fact) always remain in the blockchain. Here, we only disable the endpoint to access it.

    - +It will parse the reference content and detect the transactions to download for the requested file.

    Once the file downloaded, the content will send back to the client and the browser will display the file.

    Because websites rendering is composed of multiple HTTP requests for each file, the browser will be able to understand the responses and display the website entirely - while leveraging a single reference on-chain.

    Good to know

    Once the website retrieved, the data will be cached locally. So, the next time the same person will visit the website, no data will be fetched again.

    This will be true until the website and the reference chain evolves.

    Website updates

    The first thing a node does when it receives an AEWeb request is to download the latest reference transaction from the chain. This behaviour allows a user to update its website and to keep the same URL.

    This means that updating a website is as simple as sending a new reference transaction!

    Website unpublication

    Introduced by AEIP-13, a website can be unpublished by sending the following reference transaction:

    {
    "aeip": [8, 13],
    "aewebVersion": 1,
    "publicationStatus": "UNPUBLISHED"
    }

    As long as this reference transaction is the latest, the nodes will not serve the website. An HTTP status code 410 is sent.

    Data is permanent

    The data from an unpublished website (and all previous version as a matter of fact) always remain in the blockchain. Here, we only disable the endpoint to access it.

    + \ No newline at end of file diff --git a/participate/aeweb/index.html b/participate/aeweb/index.html index 91be7f8b9..f2ac00848 100644 --- a/participate/aeweb/index.html +++ b/participate/aeweb/index.html @@ -4,7 +4,7 @@ Archethic Web (aeHosting) | Archethic - + @@ -13,8 +13,8 @@ Existing solutions provides P2P and distributed hosting, but it can lack some important aspects such as ease-of-use, fully on-chain and trust.

    Easy

    Since its design, AEWeb motivation was to allow deployment of websites in just a few steps. No need to transform your website to match our solution. The website you developed and know will be the same one deployed.

    Your website will be transformed into transaction without additional work

    Security

    Web hosting solutions are either centralized and decentralized. The first doesn't provide security, as being centralized and subject to censorship. The latter would be quite often insecure because hosted out of the blockchain, like traditional P2P system (torrents, etc.)

    We wanted to make it completely secure and on-chain. Hence, each of the websites will first be validated across the Archethic network with the ARCH consensus capable to handle even 90% of maliciousness. While being validated, the websites will be stored and split geographically across the globe for highest data availability and security.

    Then each delivery of the websites will directly read the data on-chain to deliver to browsers and clients and provide a high confidence of the displayed website.

    Costly efficient

    There are rare situations when websites can be hosted on a blockchain due to its costs being based on virtual machine or high fee on a network.

    Transactions on Archethic are cost-efficient, so hosting websites on-chain will be a cheap solution regarding existing centralized and decentralized protocols.

    Because of the nature of Web3 and decentralized network, once a website is deployed there is no maintenance cost such as renting a VPS on a centralized system each month for a couple of bucks. As long as the website doesn't need to change, there will be not cost.

    info

    Example: a VPS can cost around $5/month to host any website. On Archethic a website of 1MB could cost around $2 (with UCO at: $1 and with 200 replicas).

    You might think it's more expensive, but the VPS was only a single instance. For the same data availability on centralized hosting you would have to pay around $500 + cost of maintenance

    Target

    Because of the Web is so wide, we have distinguished what AEWeb is capable to do or not.

    Website vs WebApp

    Website are usually not Web app.

    Websites are often simple static pages (HTML, stylesheets, images, scripts) to create beautiful frontend such a portal, showcase, corporate sites.

    On the other side Web app (Web Application) are far more complex and provide a complete suite of administration and back-office with authentication and databases.

    For now, AEWeb solution only provides website hosting. So any website which contains static files can be hosted on-chain.

    For more complex web applications, the front-end can still be hosted with AEWeb but the backend or business logic have to be managed in other ways, such as:

    • centralized servers and databases
    • blockchain dApp & smart contracts

    For instance, today a lot of web apps are leveraging SPA (Single Page Application) with front-end frameworks which are talking to external backend servers (fetching data, or authenticate users, etc.). -In that case, once the front-end page have been build from the SPA tooling, instead of being deployed on centralized servers, the generated static files could be hosted on Archethic through AEWeb tooling.

    Try out

    Graphical interface

    To test the user interface to deploy websites, visit the project by downloading the app to make webhosting no only for developers but for anyone which have static website to deploy.

    Developers

    You can try the CLI to help developers to test and deploy existing websites using terminal.

    Roadmap

    • Design
    • Blockchain integration
      • API
      • HTTPS & certificates
    • Command Line Interface (CLI)
      • File
      • Folder
      • Complete website
      • Keychain integration
    • User Interface
      • Web or Native application
    • Domain Name System (DNS)
      • DNSLink integration
      • Automation
    - +In that case, once the front-end page have been build from the SPA tooling, instead of being deployed on centralized servers, the generated static files could be hosted on Archethic through AEWeb tooling.

    Try out

    Graphical interface

    To test the user interface to deploy websites, visit the project by downloading the app to make webhosting no only for developers but for anyone which have static website to deploy.

    Developers

    You can try the CLI to help developers to test and deploy existing websites using terminal.

    Roadmap

    • Design
    • Blockchain integration
      • API
      • HTTPS & certificates
    • Command Line Interface (CLI)
      • File
      • Folder
      • Complete website
      • Keychain integration
    • User Interface
      • Web or Native application
    • Domain Name System (DNS)
      • DNSLink integration
      • Automation
    + \ No newline at end of file diff --git a/participate/aeweb/usage/aeweb-front/index.html b/participate/aeweb/usage/aeweb-front/index.html index d54c157fb..f4f94ff6d 100644 --- a/participate/aeweb/usage/aeweb-front/index.html +++ b/participate/aeweb/usage/aeweb-front/index.html @@ -4,7 +4,7 @@ AEWeb - Application Front End | Archethic - + @@ -13,8 +13,8 @@ Source code: https://github.com/archethic-foundation/aeweb

    This web application, built with Flutter, can be used to deploy and manage static sites to the Archethic Blockchain.

    tip

    Before reading the following tutorials, understand how AEWeb works.

    Tutorials

    Deploy for the first time my static site

    When you want to deploy a new static website on the Archethic blockchain, simply click on "New static site" in the main menu or the "+" icon in the section reserved for the list of your already deployed sites.

    A form will then appear, providing you with the necessary information for deploying your site:

    • The name of the website. This name will be used to declare the site in your decentralized keychain. (mandatory)
    • The archive file (with .zip, .7z, or .rar extension) containing the content of your website. (mandatory)
    • You can specify whether you want to include or exclude files listed in a .gitignore file. (optional)
    • The public certificate for your domain and the private key associated with the certificate. (optional)

    Once the required information is provided and the publication rules are accepted, you can initiate the deployment of your site.

    AEWeb will then prompt you, via your Archethic wallet, to:

    • Confirm the creation of the site in your keychain.
    • Sign the transaction(s) that contain the content of your site.
    • Sign the reference transaction of your site in the blockchain.
    • Then sign the transaction that allows transferring funds from your current account to the transaction chains that enable your site to function.

    The associated fees for the creation will be provided, and once accepted, your site will be permanently published on the blockchain.

    info

    In the beta version currently being deployed, a limit of 3 MB for a site has been set.


    Update my static site

    You can update your site by comparing the latest version hosted on the blockchain with a new archive containing your modifications. To do this, go to the context menu of the currently deployed version (the first row in the site versions table) and click on "Sync from local folder".

    After selecting the archive, the application will present you with information about the differences between the blockchain data and your archive. If you are satisfied with the information and agree to the publication rules, you can proceed with the update.

    The application will then prompt you to:

    • Sign, using your Archethic Wallet, the transaction(s) that contain the content of your new site version.
    • Sign the transaction to update the reference transaction of your site in the blockchain.
    • Then sign the transaction that allows transferring funds from your current account to the transaction chains that power your site.

    The associated fees for the update will be provided, and once accepted, a new version of your site will be published on the blockchain.

    Update the SSL certificate

    You can add and update the SSL certificate associated with your site. To do this, go to the context menu of the currently deployed version (the first row in the site versions table) and click on "Update the certificate".

    After selecting the public certificate for your domain and the private key associated with the certificate, the application will prompt you to:

    • Sign, using your Archethic Wallet, the transaction that will update the reference transaction of your site in the blockchain to include the certificate.
    • Then sign the transaction that allows transferring funds from your current account to the transaction chain of your site to update the reference transaction.

    The associated fees for the update will be provided, and once accepted, the certificate will be published in the content of the reference transaction, and the private key will be stored in a transaction secret.

    Unpublish my static site

    You can unpublish your static site to make it no longer accessible. -To do this, go to the context menu of the currently deployed version (the first row in the site versions table) and click on "Unpublish static site".

    After confirming your intention to unpublish your site, the application will prompt you to:

    • Sign, using your Archethic Wallet, the transaction that will update the reference transaction of your site in the blockchain to declare the unpublishing.
    • Then sign the transaction that allows transferring funds from your current account to the transaction chain of your site to update the reference transaction.

    The associated fees for unpublishing will be provided, and once accepted, the site will be unpublished.

    See my static site's informations

    For each online version and for each previous version of your website, you can access the following information by clicking on the three dots at the end of each line:

    • The file structure of your website that has been deployed on the blockchain.
    • The transactions containing the content of your files.

    Regarding the SSL certificate content, you can view it by clicking on the shield icon if you have deployed one. If the icon is red, it means that no certificate is available.

    Disconnect AEWeb

    When you want to disconnect the AEWeb application from your Archethic Wallet, simply click on the red disconnect button in the section describing the connected account and environment, and then confirm to return to the home screen.

    Roadmap

    • Add session management to the wallet to avoid entering the user's authentication for each transaction signature.
    • Enable direct management of the site's content from AEWeb instead of uploading an archive with all the contents.
    - +To do this, go to the context menu of the currently deployed version (the first row in the site versions table) and click on "Unpublish static site".

    After confirming your intention to unpublish your site, the application will prompt you to:

    • Sign, using your Archethic Wallet, the transaction that will update the reference transaction of your site in the blockchain to declare the unpublishing.
    • Then sign the transaction that allows transferring funds from your current account to the transaction chain of your site to update the reference transaction.

    The associated fees for unpublishing will be provided, and once accepted, the site will be unpublished.

    See my static site's informations

    For each online version and for each previous version of your website, you can access the following information by clicking on the three dots at the end of each line:

    • The file structure of your website that has been deployed on the blockchain.
    • The transactions containing the content of your files.

    Regarding the SSL certificate content, you can view it by clicking on the shield icon if you have deployed one. If the icon is red, it means that no certificate is available.

    Disconnect AEWeb

    When you want to disconnect the AEWeb application from your Archethic Wallet, simply click on the red disconnect button in the section describing the connected account and environment, and then confirm to return to the home screen.

    Roadmap

    • Add session management to the wallet to avoid entering the user's authentication for each transaction signature.
    • Enable direct management of the site's content from AEWeb instead of uploading an archive with all the contents.
    + \ No newline at end of file diff --git a/participate/aeweb/usage/cli/index.html b/participate/aeweb/usage/cli/index.html index 4a7ca0310..3d004bec8 100644 --- a/participate/aeweb/usage/cli/index.html +++ b/participate/aeweb/usage/cli/index.html @@ -4,14 +4,14 @@ AEWeb - CLI | Archethic - +

    AEWeb CLI (Command-Line Interface)

    Repository: https://github.com/archethic-foundation/aeweb-cli

    This tool, built with NodeJS, can be used to deploy files and websites to the Archethic blockchain. -Once installed, as instructed in the README, the aeweb command is available.

    aeweb generate-address

    This command is used to generate an address from a seed.

    Use case

    You might use this on TestNet for example, to determine an address to use the faucet on.

    $ aeweb generate-address --seed myseedphrase --index 0
    00005da88a4adaf5b40c958a20db981bd168008e03efbb7fc9d35e11be182a0d3065

    aeweb deploy

    This command is used to deploy the content of a folder or a single file. It will create the transactions, estimate the fees and, after confirmation, will write the transactions on the network.

    Parameters:

    $ aeweb deploy --seed myseedphrase --endpoint https://testnet.archethic.net --path ./website
    Connecting to https://testnet.archethic.net
    Creating file structure and compress content...
    Creating transactions ...
    Estimating fees ...
    Total Fee Requirement would be : 2.58933391 UCO ( $ 0.23 | € 0.22), for 3 transactions.
    Do you want to continue. (yes/no) yes
    Sending 3 transactions...
    Transaction 1...
    Waiting transaction validation...
    Transaction confirmed !
    See transaction in explorer: https://testnet.archethic.net/explorer/transaction/000013c531...
    -----------
    Transaction 2...
    Waiting transaction validation...
    Transaction confirmed !
    See transaction in explorer: https://testnet.archethic.net/explorer/transaction/0000a78a35...
    -----------
    Transaction 3...
    Waiting transaction validation...
    Transaction confirmed !
    See transaction in explorer: https://testnet.archethic.net/explorer/transaction/0000f1126e...
    -----------
    Website is deployed at: https://testnet.archethic.net/api/web_hosting/00007d9167...
    There Can Be Only One

    There can only be a single deployment per seed. Which makes it possible to update it by running the exact same command. The endpoint of your deployment will not change.

    If you need to deploy another website, use another seed (and transfer funds to it via the Wallet app).

    - +Once installed, as instructed in the README, the aeweb command is available.

    aeweb generate-address

    This command is used to generate an address from a seed.

    Use case

    You might use this on TestNet for example, to determine an address to use the faucet on.

    $ aeweb generate-address --seed myseedphrase --index 0
    00005da88a4adaf5b40c958a20db981bd168008e03efbb7fc9d35e11be182a0d3065

    aeweb deploy

    This command is used to deploy the content of a folder or a single file. It will create the transactions, estimate the fees and, after confirmation, will write the transactions on the network.

    Parameters:

    $ aeweb deploy --seed myseedphrase --endpoint https://testnet.archethic.net --path ./website
    Connecting to https://testnet.archethic.net
    Creating file structure and compress content...
    Creating transactions ...
    Estimating fees ...
    Total Fee Requirement would be : 2.58933391 UCO ( $ 0.23 | € 0.22), for 3 transactions.
    Do you want to continue. (yes/no) yes
    Sending 3 transactions...
    Transaction 1...
    Waiting transaction validation...
    Transaction confirmed !
    See transaction in explorer: https://testnet.archethic.net/explorer/transaction/000013c531...
    -----------
    Transaction 2...
    Waiting transaction validation...
    Transaction confirmed !
    See transaction in explorer: https://testnet.archethic.net/explorer/transaction/0000a78a35...
    -----------
    Transaction 3...
    Waiting transaction validation...
    Transaction confirmed !
    See transaction in explorer: https://testnet.archethic.net/explorer/transaction/0000f1126e...
    -----------
    Website is deployed at: https://testnet.archethic.net/api/web_hosting/00007d9167...
    There Can Be Only One

    There can only be a single deployment per seed. Which makes it possible to update it by running the exact same command. The endpoint of your deployment will not change.

    If you need to deploy another website, use another seed (and transfer funds to it via the Wallet app).

    + \ No newline at end of file diff --git a/participate/bridge/index.html b/participate/bridge/index.html index e1ffc5402..9a9cb0c08 100644 --- a/participate/bridge/index.html +++ b/participate/bridge/index.html @@ -4,15 +4,15 @@ Archethic Bridge (aeBridge) | Archethic - +

    Archethic Bridge (aeBridge)

    Archethic has developed a decentralized and P2P bridge to facilitate the exchange of your UCO ERC20 tokens with other blockchains (e.g., Ethereum, Polygon, BSC) and to allow for a simple and secure exchange of assets in the most atomic way.

    Key concepts

    HTLC (Hash Time Lock Contract)

    Archethic's bridge relies on atomic swap technology to securely exchange assets in a peer-to-peer and cryptographic manner without intermediaries. It also allows for the reversal and refund of assets after a specified lock time period.

    This involves the use of specific contracts known as Hash Time Lock Contracts (HTLC), which lock your funds until a secret is revealed (similar to a secret box) or after a lock time period to provide refund capabilities. These contracts must be deployed on both chains involved in the swap.

    Both chains must be ready to transfer assets by revealing the private part of the secret encoded in the contracts, which enables the exchange. Once the secret is revealed on one chain, the other can proceed as the secret is now public.

    This atomic swap method ensures secure transfers between chains without a central pool holding all the assets. Instead, it relies on hard-coded recipients and rules within a one-time contract.

    Archethic's cross-chain verification

    While conventional atomic swaps rely on HTLC techniques for security through peer-to-peer and cryptographic approaches, Archethic enhances its atomic swap protocol by enabling data retrieval outside of the blockchain. This enhancement makes the process completely decentralized and strengthens the security model.

    Archethic's nodes can fetch transaction status on other chains, such as EVM blockchains, to establish the status of a swap with a strong consensus. Combining HTLC and Archethic's specific capabilities provides a high level of trust in the origin and reveal capabilities of any swap, relying on cryptography and cross-chain data retrieval.

    EVM to Archethic

    The process begins with a secret held by a client (in this case, the bridge's dApp) and its hash, which forms a lock upon revealing the secret.

    The user deploys an HTLC smart contract on the EVM blockchain through the bridge's EVM pool.

    This pool ensures the capacity of the swap's initiator, lock time period, and the recipient's address for the assets to be bridged.

    Similarly, the user must deploy a contract on Archethic under the same conditions while specifying the recipient wallet to receive the funds.

    Subsequently, a request is made to the Archethic's pool (which holds the wrapped tokens) to fill the HTLC.

    Because the tokens are wrapped on Archethic, the pool will mint new tokens after cross-chain verification (see Archethic's specific).

    The remaining step involves revealing the secret on EVM to transfer the funds to the bridge's recipient wallet and replicating this process on Archethic, ensuring that the action is executed on EVM blockchains through off-chain requests.

    This results in both counterparties receiving their funds, achieving parity in the bridged assets.

    Archethic to EVM

    To exchange assets from Archethic to EVM, the process follows a similar pattern but in reverse order. -However, a new feature is introduced in the smart contracts. Since EVM cannot request information outside the blockchain, steps are taken to ensure that an action has been performed on Archethic's side. Cryptography is employed to assert the action through a signature and provide non-repudiation proof for the Archethic's pool.

    In this scenario, the user creates an HTLC contract on Archethic and funds it with tokens (wrapped or native), specifying the recipient's wallet provided by Archethic's pool, without initially revealing the secret and its lock.

    The user then requests the Archethic's pool to obtain a secret, its hash, and a signature confirming the action's completion on Archethic's side.

    During this process, the Archethic's pool contacts the HTLC to update its conditions for the secret's reveal by inserting the generated secret's hash from the pool.

    On the other side, the user can request the EVM pool to create and provision an HTLC contract based on the proof provided by Archethic's pool regarding an existing and funded HTLC.

    The EVM pool can now create and transfer funds to this new contract.

    The remaining step is to reveal the secret. The user asks the Archethic's pool to reveal the secret within the HTLC and provide a signature for this action. At this point, the locked tokens will be burnt.

    With the secret revealed, the user can also reveal the secret on the EVM HTLC and provide the signature from Archethic's pool, unlocking the assets to the user's wallet registered within the contract.

    This process ensures that both counterparties receive their funds, achieving parity in the bridged assets.

    How to access

    This document aims to provide a comprehensive guide to using aeBridge, including an introduction to the necessary concepts, step-by-step guides for interacting with the platform, and technical references for deeper integration and development purposes.

    Audit of EVM Smart Contracts

    Our EVM smart contracts have been audited by Hacken, a recognized leader in blockchain security. The full audit report is available here.

    FAQ

    For further information, please refer to the FAQ.

    - +However, a new feature is introduced in the smart contracts. Since EVM cannot request information outside the blockchain, steps are taken to ensure that an action has been performed on Archethic's side. Cryptography is employed to assert the action through a signature and provide non-repudiation proof for the Archethic's pool.

    In this scenario, the user creates an HTLC contract on Archethic and funds it with tokens (wrapped or native), specifying the recipient's wallet provided by Archethic's pool, without initially revealing the secret and its lock.

    The user then requests the Archethic's pool to obtain a secret, its hash, and a signature confirming the action's completion on Archethic's side.

    During this process, the Archethic's pool contacts the HTLC to update its conditions for the secret's reveal by inserting the generated secret's hash from the pool.

    On the other side, the user can request the EVM pool to create and provision an HTLC contract based on the proof provided by Archethic's pool regarding an existing and funded HTLC.

    The EVM pool can now create and transfer funds to this new contract.

    The remaining step is to reveal the secret. The user asks the Archethic's pool to reveal the secret within the HTLC and provide a signature for this action. At this point, the locked tokens will be burnt.

    With the secret revealed, the user can also reveal the secret on the EVM HTLC and provide the signature from Archethic's pool, unlocking the assets to the user's wallet registered within the contract.

    This process ensures that both counterparties receive their funds, achieving parity in the bridged assets.

    How to access

    This document aims to provide a comprehensive guide to using aeBridge, including an introduction to the necessary concepts, step-by-step guides for interacting with the platform, and technical references for deeper integration and development purposes.

    Audit of EVM Smart Contracts

    Our EVM smart contracts have been audited by Hacken, a recognized leader in blockchain security. The full audit report is available here.

    FAQ

    For further information, please refer to the FAQ.

    + \ No newline at end of file diff --git a/participate/bridge/usage/index.html b/participate/bridge/usage/index.html index 5583efb4d..57746cb58 100644 --- a/participate/bridge/usage/index.html +++ b/participate/bridge/usage/index.html @@ -4,7 +4,7 @@ aeBridge - Usage | Archethic - + @@ -13,8 +13,8 @@ Source code: https://github.com/archethic-foundation/bridge and https://github.com/archethic-foundation/bridge-contracts

    This Flutter-built web application enables seamless asset deposits and withdrawals.

    tip

    Before proceeding, familiarize yourself with Archethic's Bridge Key Concepts.

    Welcome Screen

    Upon accessing aeBridge, you are greeted with a welcome screen. To begin, click on the 'Bridge' button.

    Welcome Screen Bridge Button

    Application Menu

    A right-hand header menu provides links to essential information and application documentation. It includes an option to send logs to Archethic for troubleshooting purposes.

    Menu

    Feature Access

    The left-side menu grants access to various bridge functionalities:

    • Bridging between Archethic and EVM blockchains
    • Viewing local history, resume or refund options, and transaction logs
    • Refunding

    Menu Features

    Bridging Your Assets

    The bridge process involves multiple steps:

    1. Inputting information to initiate the transfer
    2. Confirming the entered details
    3. Executing the transfer, with progress tracking and transaction signing in both EVM and Archethic wallets

    Step 1: Initiating Transfer

    info

    Transfer steps remain consistent across all blockchain types and directions.

    Firstly, select the originating and target blockchains.

    Blockchain Selection

    caution

    Ensure both Archethic and your chosen EVM wallets are connected before blockchain selection. Refer to the FAQ for connectivity issues.

    tip

    Select an EVM blockchain as the source automatically sets Archethic as the target.

    Post-selection, a field appears for token selection from available options.

    Token Selection

    Next, enter the following information:

    • The destination address that will receive the bridged tokens (by default, the connected wallet address is filled in)
    • The amount you wish to bridge (before fees are deducted).

    Amount fill

    Step 2: Confirming Details

    On the confirmation screen, review:

    • Entered information summary
    • Fee details
    • Post-fee token quantity

    Confirmation Screen

    Step 3: Executing Transfer

    A transfer tracking popup guides you through the process, prompting for transaction confirmations in your wallets.

    Transfer Tracking

    note

    Transaction signing methods vary per EVM wallet.

    In the Archethic wallet, confirmation prompts automatically appear when necessary.

    Archethic Wallet Confirmation

    After some validations and a few seconds of waiting, a message will inform you that the transfer has completed successfully, and the bridged amount received in your wallet will be displayed

    Archethic Wallet Confirmation

    caution

    The transfer process halts if a transaction is declined or due to insufficient funds. However, it can be resumed later.

    Transfer Resumption

    note

    HTLC contract addresses are provided for ongoing process tracking.

    HTLC Information

    Local History and Management

    View transfer history, successful or otherwise, through the application's local history feature.

    caution

    This history is local to your device. Access is not available on other devices. And if you clear your browser's cache, this list will be emptied.

    History List

    Options Include:

    • Deleting local history
    • Filtering history entries

    History Filters

    Transfer Status Actions:

    • Remove transfers from local history
    • Resume interrupted transfers
    • Refund for interrupted transfers
    • Access transfer technical details for Archethic team analysis

    History Options

    Refund Process

    Retrieve your funds through the refund feature.

    Refund Form

    To retrieve your funds, you must wait 2 hours for the tokens to be released. -Additionally, you must always use the address of the source blockchain.

    Refund Process

    Upon wallet connection and address confirmation, refund eligibility and amount are displayed. Validate the refund to receive your funds, minus transaction fees.

    Refund Available

    Once the refund has been processed, you can find your funds in your wallet.

    Refund Ok


    - +Additionally, you must always use the address of the source blockchain.

    Refund Process

    Upon wallet connection and address confirmation, refund eligibility and amount are displayed. Validate the refund to receive your funds, minus transaction fees.

    Refund Available

    Once the refund has been processed, you can find your funds in your wallet.

    Refund Ok


    + \ No newline at end of file diff --git a/participate/cli/index.html b/participate/cli/index.html index 17eaabf9c..2876f0024 100644 --- a/participate/cli/index.html +++ b/participate/cli/index.html @@ -4,7 +4,7 @@ Archethic's CLI | Archethic - + @@ -14,8 +14,8 @@ UCO transfer tab

    You will then have a list of configured UCO transfers. Using the up and down keys, you can highlight a configured transfer and delete it by typing d.

    UCO transfer tab 2

    Token transfers

    The same logic applies to the token transfers tab. But you need to specify a token address and an token id.

    Token transfers tab

    Recipients

    The same logic also applies to the recipients tab which targets smart contract executions.

    Recipients tab

    Ownerships

    The ownership tab contains the information about the access you give to execute your transaction.

    info

    This will be needed if you want to create a smart contract.

    You can define several ownerships. Each ownership has

    • a secret
    • a list of authorization keys that get access to the secret.

    At least one of the ownership must have the seed as a secret and the storage nouce public key as an authorization key.

    You can press the Load Storage Nounce Public Key to automatically set the authorization key with the value of the storage nonce public key. (ie. for smart contract's creation key delegation)

    info

    You must have selected an endpoint in the main tab in order to load the storage nounce public key of the network you target.

    Ownerships tab

    Ownerhips tab 2

    Pressing the Add authorization key allows you to add a new authorization key that will get access to the secret. Once added to the list of autorized keys, you can highlight a key and press d to delete it.

    Once you’re done with the configuration, you can press the Add button to add the ownership configuration to the transaction.

    Ownerships tab 3

    And here also, if you want to delete a configured ownership, you can highlight it and press d.

    Content

    The content tab allows you to set the content of the transaction. Start typing to enter the edit mode of this tab and press esc if you want to exit the edit mode and navigate to another tab.

    Content tab

    Smart contract

    The smart contract tab allows you to set the smart contract of the transaction. Start typing to enter the edit mode of this tab and press esc if you want to exit the edit mode and navigate to another tab.

    Smart contract tab

    Sending the transaction

    When you’re done configuring the transaction, go back to the main tab and press the Add button.

    Sending transaction

    Keychain management

    The keychain management menu allows you to

    • create a keychain with a given seed
    • access a keychain
    • add and remove services from a keychain
    • send a keychain transaction for a specific service

    In any cases you will need to start by selecting the endpoint you want, that will automatically feed the URL of the endpoint. Then specify your access seed.

    Keychain management

    Creating a keychain

    If you press the Create keychain button, a new keychain will be created. And the seed you provided will be used to access it.

    Create a keychain

    Accessing a keychain

    Pressing the Access keychain button will give you access to the list of services associated with your keychain (one default uco service has been created). -Access a keychain

    Adding / removing a service

    If you go down to the service name field you can type a new service name and a default derivation path will be created. If you then press the Create Service, your new service will be displayed in the list of services.

    Add a service

    If you highlight a service and press d the service will be deleted.

    Create a transaction for a service

    If you highlight a specific service and press enter the highlighted will be selected.

    Create a transaction for a service

    If you then press the Create Transaction for Service button, you will get a new menu to create a transaction for the selected service.

    Main tab of create keychain transaction

    The mechanism to configure a keychain transaction for a service is the same as the one for a transaction (described above). Only a few configuration are not possible (like the endpoint, the seed, the index and the elliptic curve).

    CLI - Archethic Command Line Interpreter

    It is also possible to call the archethic cli tool using the command line.

    For details of available commands, you can

    • consult the readme of the corresponding github project.
    • display help with the command --help.

    Help command

    Contribution

    If you like this product and wish to contribute to its development, please visit our Github Page

    We are welcoming contributions in any forms (code, issues, documentation, ideas, question, etc.)

    - +Access a keychain

    Adding / removing a service

    If you go down to the service name field you can type a new service name and a default derivation path will be created. If you then press the Create Service, your new service will be displayed in the list of services.

    Add a service

    If you highlight a service and press d the service will be deleted.

    Create a transaction for a service

    If you highlight a specific service and press enter the highlighted will be selected.

    Create a transaction for a service

    If you then press the Create Transaction for Service button, you will get a new menu to create a transaction for the selected service.

    Main tab of create keychain transaction

    The mechanism to configure a keychain transaction for a service is the same as the one for a transaction (described above). Only a few configuration are not possible (like the endpoint, the seed, the index and the elliptic curve).

    CLI - Archethic Command Line Interpreter

    It is also possible to call the archethic cli tool using the command line.

    For details of available commands, you can

    • consult the readme of the corresponding github project.
    • display help with the command --help.

    Help command

    Contribution

    If you like this product and wish to contribute to its development, please visit our Github Page

    We are welcoming contributions in any forms (code, issues, documentation, ideas, question, etc.)

    + \ No newline at end of file diff --git a/participate/dex/Core Concepts/core_concepts_1/index.html b/participate/dex/Core Concepts/core_concepts_1/index.html index 333be3219..d4a152007 100644 --- a/participate/dex/Core Concepts/core_concepts_1/index.html +++ b/participate/dex/Core Concepts/core_concepts_1/index.html @@ -4,13 +4,13 @@ Swaps, Liquidity, Farming | Archethic - +
    -

    Swaps, Liquidity Pools, Farming

    Swaps

    Swaps on aeSwap allow users to exchange one token for another through an automated market maker (AMM) model. This process involves selecting tokens to swap, reviewing transaction details such as fees, price impact, and minimum received, and executing the swap. The AMM provides liquidity from various pools, ensuring traders can execute swaps instantly without needing a direct counterparty.

    Liquidity Pools

    Liquidity pools are the cornerstone of aeSwap, enabling the AMM mechanism. Users can add liquidity by depositing an equivalent value of two tokens, creating a market for those tokens to be traded. In return, liquidity providers receive LP (Liquidity Provider) tokens, representing their share of the pool and entitlement to a portion of the trading fees.

    Farming

    Yield farming on aeSwap rewards users for providing liquidity to selected pools. By depositing LP tokens into a farming contract, users can earn additional rewards, typically in the platform's native token. This incentivizes the provision of liquidity, contributing to the depth and stability of the market.

    - +

    Swaps, Liquidity Pools, Farming

    Swaps

    Swaps on aeSwap allow users to exchange one token for another through an automated market maker (AMM) model. This process involves selecting tokens to swap, reviewing transaction details such as fees, price impact, and minimum received, and executing the swap. The AMM provides liquidity from various pools, ensuring traders can execute swaps instantly without needing a direct counterparty.

    Liquidity Pools

    Liquidity pools are the cornerstone of aeSwap, enabling the AMM mechanism. Users can add liquidity by depositing an equivalent value of two tokens, creating a market for those tokens to be traded. In return, liquidity providers receive LP (Liquidity Provider) tokens, representing their share of the pool and entitlement to a portion of the trading fees.

    Farming

    Yield farming on aeSwap rewards users for providing liquidity to selected pools. By depositing LP tokens into a farming contract, users can earn additional rewards, typically in the platform's native token. This incentivizes the provision of liquidity, contributing to the depth and stability of the market.

    + \ No newline at end of file diff --git a/participate/dex/Core Concepts/core_concepts_2/index.html b/participate/dex/Core Concepts/core_concepts_2/index.html index 498152bf6..4ef9fdb4b 100644 --- a/participate/dex/Core Concepts/core_concepts_2/index.html +++ b/participate/dex/Core Concepts/core_concepts_2/index.html @@ -4,13 +4,13 @@ Financials, Fees, APR | Archethic - +
    -

    Financials: Fees, APR, Understanding Returns

    Fees

    aeSwap charges transaction fees for swaps and liquidity provision. These fees compensate liquidity providers for supplying capital and taking on the risk of impermanent loss. Fees are set as a percentage of the trade value and are directly added to the liquidity pool, proportionally benefitting all liquidity providers.

    info

    The fees breakdown is as follows: 0.25% for liquidity providers (LP), and a variable fee ranging from 0.1% to 0.25% for Archethic transactions, culminating in a total fee range of 0.35% to 0.5%.

    The fees section will be updated soon with more detailed information.

    APR and Understanding Returns

    The Annual Percentage Rate (APR) represents the rate of return on liquidity provision and farming over a year without accounting for compounding interest. It offers a straightforward picture of potential earnings from liquidity and farming activities. aeSwap's APR calculation takes into account the distribution of rewards and the impact of trading fees, providing a clear measure of profitability. Returns from liquidity provision come from trading fees and potentially, farming rewards.

    Liquidity providers must be aware of impermanent loss, a unique risk where the value of deposited assets could diverge from holding them outside the pool. Understanding these elements is crucial for assessing the overall profitability of participating in aeSwap.

    The returns on aeSwap are dynamic, depending on the yield farming activities and the amount in the liquidity pool. It is important to note that the APR is calculated from second to second, ensuring even the smallest units of time are considered in the profitability analysis.

    - +

    Financials: Fees, APR, Understanding Returns

    Fees

    aeSwap charges transaction fees for swaps and liquidity provision. These fees compensate liquidity providers for supplying capital and taking on the risk of impermanent loss. Fees are set as a percentage of the trade value and are directly added to the liquidity pool, proportionally benefitting all liquidity providers.

    info

    The fees breakdown is as follows: 0.25% for liquidity providers (LP), and a variable fee ranging from 0.1% to 0.25% for Archethic transactions, culminating in a total fee range of 0.35% to 0.5%.

    The fees section will be updated soon with more detailed information.

    APR and Understanding Returns

    The Annual Percentage Rate (APR) represents the rate of return on liquidity provision and farming over a year without accounting for compounding interest. It offers a straightforward picture of potential earnings from liquidity and farming activities. aeSwap's APR calculation takes into account the distribution of rewards and the impact of trading fees, providing a clear measure of profitability. Returns from liquidity provision come from trading fees and potentially, farming rewards.

    Liquidity providers must be aware of impermanent loss, a unique risk where the value of deposited assets could diverge from holding them outside the pool. Understanding these elements is crucial for assessing the overall profitability of participating in aeSwap.

    The returns on aeSwap are dynamic, depending on the yield farming activities and the amount in the liquidity pool. It is important to note that the APR is calculated from second to second, ensuring even the smallest units of time are considered in the profitability analysis.

    + \ No newline at end of file diff --git a/participate/dex/Core Concepts/core_concepts_3/index.html b/participate/dex/Core Concepts/core_concepts_3/index.html index 5a7bc82bd..6840fadb1 100644 --- a/participate/dex/Core Concepts/core_concepts_3/index.html +++ b/participate/dex/Core Concepts/core_concepts_3/index.html @@ -4,13 +4,13 @@ Security, Research & Math | Archethic - +
    -

    Security, Research & Math

    Research & Math

    aeSwap integrates comprehensive research and mathematical algorithms directly inspired by Uniswap V2, covering AMM models, smart contract security, blockchain technology, liquidity provision, pricing, and swap efficiency. This synergy ensures a secure trading environment, minimizes slippage, ensures fair asset valuation, and mitigates risks such as impermanent loss. Continuous analysis of market trends, attack vectors, and user behavior, along with rigorous testing and auditing of smart contracts, forms the backbone of the platform’s development, risk management strategies, and integrity. The adherence to these proven models and methodologies guarantees the highest standards of security and consistency in the platform's operations.

    The Mathematics of AMM and Constant Product Formula

    aeSwap, based on the Uniswap v2 model, employs the constant product formula to maintain pool liquidity and determine prices. This formula is represented as x * y = k, where:

    • x and y are the quantities of the two tokens in the liquidity pool.
    • k is a constant value.

    The constant product formula ensures that the total value in the pool remains constant after a trade, excluding fees. When a trade is executed, the product of the quantities of the two tokens stays the same, allowing the AMM to provide liquidity at any price level.

    Security Practices

    aeSwap adopts best practices in smart contract development and security, including regular audits by reputable firms, bug bounty programs, and transparent communication with the community. The security protocols and measures in place are directly taken from the proven and tested frameworks used in Uniswap V2. This adherence to established best practices, combined with user education on secure wallet management and interaction with DeFi platforms, further enhances the ecosystem's security posture, ensuring a safe and reliable environment for all users.

    - +

    Security, Research & Math

    Research & Math

    aeSwap integrates comprehensive research and mathematical algorithms directly inspired by Uniswap V2, covering AMM models, smart contract security, blockchain technology, liquidity provision, pricing, and swap efficiency. This synergy ensures a secure trading environment, minimizes slippage, ensures fair asset valuation, and mitigates risks such as impermanent loss. Continuous analysis of market trends, attack vectors, and user behavior, along with rigorous testing and auditing of smart contracts, forms the backbone of the platform’s development, risk management strategies, and integrity. The adherence to these proven models and methodologies guarantees the highest standards of security and consistency in the platform's operations.

    The Mathematics of AMM and Constant Product Formula

    aeSwap, based on the Uniswap v2 model, employs the constant product formula to maintain pool liquidity and determine prices. This formula is represented as x * y = k, where:

    • x and y are the quantities of the two tokens in the liquidity pool.
    • k is a constant value.

    The constant product formula ensures that the total value in the pool remains constant after a trade, excluding fees. When a trade is executed, the product of the quantities of the two tokens stays the same, allowing the AMM to provide liquidity at any price level.

    Security Practices

    aeSwap adopts best practices in smart contract development and security, including regular audits by reputable firms, bug bounty programs, and transparent communication with the community. The security protocols and measures in place are directly taken from the proven and tested frameworks used in Uniswap V2. This adherence to established best practices, combined with user education on secure wallet management and interaction with DeFi platforms, further enhances the ecosystem's security posture, ensuring a safe and reliable environment for all users.

    + \ No newline at end of file diff --git a/participate/dex/Guide_Usage/farming/index.html b/participate/dex/Guide_Usage/farming/index.html index 801b7cac7..971b151af 100644 --- a/participate/dex/Guide_Usage/farming/index.html +++ b/participate/dex/Guide_Usage/farming/index.html @@ -4,15 +4,15 @@ Farming | Archethic - +

    Farming

    Our new farming system is built around levels, each with a different reward distribution weight. The higher the level you choose, the longer the locking period for your liquidity pairs, but the greater the rewards you will earn.

    To achieve major milestones by 2026, we’ve revised our token distribution. Initially, we planned to distribute 9 million $UCO per year over 10 years, specifically allocated to staking.

    However, we will now distribute the tokens over 4 years to boost APR and liquidity. In the first farming phase over 2 months, we already distributed 2.5 million $UCO. Here is the planned token allocation for the coming years:

    • Year 1: 45 million UCO tokens
    • Year 2: 22.5 million UCO tokens
    • Year 3: 11.25 million UCO tokens
    • Year 4: 8.75 million UCO tokens

    You can manage the farming from the EARN menu or from pool aeETH/UCO card.

    Detailed Breakdown

    Deposits & Rewards

    Deposits begin on 25/07/2024, and rewards start on 01/08/2024.

    Level-Based System

    The new farming mechanism involves different levels, each offering a unique reward distribution weight. Higher levels require longer locking periods for your liquidity pairs, but they provide higher rewards and a better Annual Percentage Rate (APR). This system is recalculated in real time to ensure fairness.

    Locking Periods

    When depositing your LP tokens, you can choose from the following locking periods, each with specific conditions:

    • 1 week: 7 days lock period.
    • 1 month: 30 days lock period.
    • 3 months: 90 days lock period.
    • 6 months: 180 days lock period.
    • 1 year: 365 days lock period.
    • 2 years: 730 days lock period.
    • 3 years (default value): 1095 days lock period.

    Flexibility to Level Up

    UCO holders can choose to level up at any time. When leveling up, you can select a longer locking period than your current one. This resets the lock duration for your LP tokens to the new chosen period, but it also unlocks your current rewards. If you choose not to level up, both your LP tokens and rewards remain locked until the end of the current period.

    info

    Your level is based on the duration for which your assets are locked.
    Your level will therefore gradually decrease until it reaches Level 0 (= "available"), at which point you will be able to withdraw your LP tokens.

    Example: If you locked your assets for 3 years (Level 7) one year ago, your remaining lock time is now 2 years, so your holdings will automatically be adjusted to Level 6.

    Unlocking Rewards

    Rewards are tied to the LP tokens and will be released when the LP tokens are withdrawn at the end of the locking period. However, leveling up allows you to unlock and claim your rewards immediately while committing to a new locking period.

    Dashboard

    Farm Lock Dashboard

    When you click on the EARN menu, you are directed to the dedicated farming page related to the aeETH/UCO liquidity pool. The dashboard is divided into several sections:

    Liquidity pool section

    Farm Lock Dashboard - Liquidity pool section

    This section pertains to the liquidity pool linked with the farm and provides the following features:

    • Token Pair Display: Shows the pair of tokens involved in the pool.
    • Info Button: Allows you to view detailed information about the pool.
    • Add Button: Enables you to add liquidity directly to the pool.
    • Withdraw Button: Lets you withdraw your liquidity from the pool. -For more detailed information on managing liquidity pools, please refer to the liquidity pool documentation.

    Farm pool section

    Farm Lock Dashboard - Farm section

    This section contains information related to the farm. It describes the reward token (UCO) and displays the 3-year APR (please refer to the application for the exact percentage).

    There are three available functions:

    • Farm Legacy Info Button: Allows you to access the card containing information about the farm that was open between 05/17/2024 and 07/17/2024.
    • Add Button: Enables you to add LP tokens to the farm for a given period or on a flexible basis.
    • Farm Lock Info Button: Lets you view the information related to the farm.

    aeSwap offers a unique and engaging way to access detailed information about each farm through an interactive card. You can easily explore this card by clicking on the turn icon to "rotate" the view, revealing comprehensive details about the farms in a visually intuitive manner.

    Front View: Essential Farm Details

    Farm Lock Card - Front

    When viewing the front of the card, users are provided with a comprehensive overview designed to deliver essential information about each farm quickly and effectively:

    • Token Pair and Logos: The farm is represented by its token pair, accompanied by their logos when available, for straightforward identification.
    • Farm Address: Displayed prominently for easy reference. Accompanying the address, an icon for quick copying allows users to easily share or save the address. - Additionally, a separate icon links directly to the blockchain explorer, where users can delve into full details and analytics of the farm.
    • LP Token Address: Displayed prominently for easy reference. Accompanying the address, an icon for quick copying allows users to easily share or save the address. - Additionally, a separate icon links directly to the blockchain explorer, where users can delve into full details and analytics of the LP Token.
    • Reward Token: The specific token awarded as a reward in the farm is shown, informing users of the type of rewards they can expect.
    • Opening Period: Indicates the operational timeframe of the farm, letting users know when the farm is active for deposits and reward collection.
    • Remaining reward: Displays the remaining rewards in the farm.
    • Distributed Rewards: The total number of rewards that have been distributed to all participants so far, highlighting the farm's generosity and attractiveness.
    • Total Deposited LP Tokens: Indicates the total amount of LP tokens that have been deposited into the farm by all users, offering a perspective on the farm's scale and user participation.
    Back View: Additional Farm Insights

    Farm Lock Card - Back

    On this side of the card, users can explore parameters by level:

    • Holders: This corresponds to the number of positions held at the level.
    • Weight: The weight of the level.
    • LP Token Deposited: The number of LP tokens deposited at the level.

    Balances summary section

    This section provides an overview of your balances for the two tokens in the pool (aeETH and UCO), as well as your LP token balance.

    Farm Lock Dashboard - Balances section

    Farmed Tokens Summary section

    This section provides a comprehensive overview of your total investment in the farm, expressed in dollars. It includes a detailed breakdown of both the invested capital and the rewards that can be earned.

    Farm Lock Dashboard - Farmed Tokens Summary section

    Deposits table

    Farm Lock Dashboard - Deposist table

    The table displays all current deposits. The available information includes:

    • Amount: The number of LP tokens deposited.
    • Estimated Rewards: The current estimated rewards. This amount will increase over time until the end of the lock period. Rewards are calculated hourly.
    • Unlocks In: The remaining time before the LP tokens and associated rewards are released.
    • Level: Your current level. If your level is not at the maximum, you have the option to relock your LP tokens at any time for a period longer than the current one. Increasing the lock duration will raise your level.
    • APR: The estimated Annual Percentage Rate.
    • Level Up Button: Allows you to increase your level by relocking your LP tokens for a period longer than the current lock duration.
    • Withdraw Button: This feature is available when the lock period has ended or if the deposit was made on a flexible basis. It allows you to retrieve your LP tokens and send them back to your wallet. You can choose the amount to withdraw. If the maximum amount is withdrawn, the deposit entry disappears. If the amount is not fully withdrawn, rewards will be calculated on the remaining balance. When withdrawing, all calculated rewards for that deposit are provided to the user.
    • Claim Button: This feature is available when the lock period has ended or if the deposit was made on a flexible basis. It allows you to claim the rewards without affecting the number of deposited LP tokens.

    Interacting with Farms: Available Actions

    On aeSwap, participants have the flexibility to engage with farms through a variety of actions, each designed to suit different strategies and needs. Here’s a concise overview of the options available:

    Deposit LP Tokens: Users can lock their liquidity provider (LP) tokens in a farm to earn rewards. This action contributes to the farm's overall health and rewards the user with tokens based on the farm's current APR. Depositing increases the total value locked (TVL) in the farm and entitles the user to a portion of the rewards generated. The chosen locking period determines the APR percentage, with longer periods yielding higher returns. Once locked, users must wait until the end of the period to obtain their rewards, with no interim retrieval possible unless they choose to level up. This incentivizes users to commit to longer locking periods for more substantial rewards.

    Withdraw LP Tokens: When participants decide to retrieve their staked LP tokens from a farm, this action enables them to do so. Withdrawing allows users to claim back their tokens along with any rewards earned during the staking period. This action is crucial for managing your investments and realizing potential gains from the accumulation of rewards.

    Claim Rewards: Specifically for users who want to continue staking their LP tokens but wish to collect earned rewards, this action allows for the claiming of rewards without affecting the staked LP token balance. It is a flexible option for users looking to realize immediate gains while maintaining their position in the farm.

    Relock LP Tokens: The relock feature allows users to extend the locking period of their LP tokens beyond the initial commitment, effectively resetting the lock duration to a new, longer period. This action not only unlocks and makes available any accumulated rewards up to that point but also commits the user to a new locking period, which comes with a potentially higher APR.

    Detailed information for each action will be provided very soon.

    - +For more detailed information on managing liquidity pools, please refer to the liquidity pool documentation.

    Farm pool section

    Farm Lock Dashboard - Farm section

    This section contains information related to the farm. It describes the reward token (UCO) and displays the 3-year APR (please refer to the application for the exact percentage).

    There are three available functions:

    • Farm Legacy Info Button: Allows you to access the card containing information about the farm that was open between 05/17/2024 and 07/17/2024.
    • Add Button: Enables you to add LP tokens to the farm for a given period or on a flexible basis.
    • Farm Lock Info Button: Lets you view the information related to the farm.

    aeSwap offers a unique and engaging way to access detailed information about each farm through an interactive card. You can easily explore this card by clicking on the turn icon to "rotate" the view, revealing comprehensive details about the farms in a visually intuitive manner.

    Front View: Essential Farm Details

    Farm Lock Card - Front

    When viewing the front of the card, users are provided with a comprehensive overview designed to deliver essential information about each farm quickly and effectively:

    • Token Pair and Logos: The farm is represented by its token pair, accompanied by their logos when available, for straightforward identification.
    • Farm Address: Displayed prominently for easy reference. Accompanying the address, an icon for quick copying allows users to easily share or save the address. - Additionally, a separate icon links directly to the blockchain explorer, where users can delve into full details and analytics of the farm.
    • LP Token Address: Displayed prominently for easy reference. Accompanying the address, an icon for quick copying allows users to easily share or save the address. - Additionally, a separate icon links directly to the blockchain explorer, where users can delve into full details and analytics of the LP Token.
    • Reward Token: The specific token awarded as a reward in the farm is shown, informing users of the type of rewards they can expect.
    • Opening Period: Indicates the operational timeframe of the farm, letting users know when the farm is active for deposits and reward collection.
    • Remaining reward: Displays the remaining rewards in the farm.
    • Distributed Rewards: The total number of rewards that have been distributed to all participants so far, highlighting the farm's generosity and attractiveness.
    • Total Deposited LP Tokens: Indicates the total amount of LP tokens that have been deposited into the farm by all users, offering a perspective on the farm's scale and user participation.
    Back View: Additional Farm Insights

    Farm Lock Card - Back

    On this side of the card, users can explore parameters by level:

    • Holders: This corresponds to the number of positions held at the level.
    • Weight: The weight of the level.
    • LP Token Deposited: The number of LP tokens deposited at the level.

    Balances summary section

    This section provides an overview of your balances for the two tokens in the pool (aeETH and UCO), as well as your LP token balance.

    Farm Lock Dashboard - Balances section

    Farmed Tokens Summary section

    This section provides a comprehensive overview of your total investment in the farm, expressed in dollars. It includes a detailed breakdown of both the invested capital and the rewards that can be earned.

    Farm Lock Dashboard - Farmed Tokens Summary section

    Deposits table

    Farm Lock Dashboard - Deposist table

    The table displays all current deposits. The available information includes:

    • Amount: The number of LP tokens deposited.
    • Estimated Rewards: The current estimated rewards. This amount will increase over time until the end of the lock period. Rewards are calculated hourly.
    • Unlocks In: The remaining time before the LP tokens and associated rewards are released.
    • Level: Your current level. If your level is not at the maximum, you have the option to relock your LP tokens at any time for a period longer than the current one. Increasing the lock duration will raise your level.
    • APR: The estimated Annual Percentage Rate.
    • Level Up Button: Allows you to increase your level by relocking your LP tokens for a period longer than the current lock duration.
    • Withdraw Button: This feature is available when the lock period has ended or if the deposit was made on a flexible basis. It allows you to retrieve your LP tokens and send them back to your wallet. You can choose the amount to withdraw. If the maximum amount is withdrawn, the deposit entry disappears. If the amount is not fully withdrawn, rewards will be calculated on the remaining balance. When withdrawing, all calculated rewards for that deposit are provided to the user.
    • Claim Button: This feature is available when the lock period has ended or if the deposit was made on a flexible basis. It allows you to claim the rewards without affecting the number of deposited LP tokens.

    Interacting with Farms: Available Actions

    On aeSwap, participants have the flexibility to engage with farms through a variety of actions, each designed to suit different strategies and needs. Here’s a concise overview of the options available:

    Deposit LP Tokens: Users can lock their liquidity provider (LP) tokens in a farm to earn rewards. This action contributes to the farm's overall health and rewards the user with tokens based on the farm's current APR. Depositing increases the total value locked (TVL) in the farm and entitles the user to a portion of the rewards generated. The chosen locking period determines the APR percentage, with longer periods yielding higher returns. Once locked, users must wait until the end of the period to obtain their rewards, with no interim retrieval possible unless they choose to level up. This incentivizes users to commit to longer locking periods for more substantial rewards.

    Withdraw LP Tokens: When participants decide to retrieve their staked LP tokens from a farm, this action enables them to do so. Withdrawing allows users to claim back their tokens along with any rewards earned during the staking period. This action is crucial for managing your investments and realizing potential gains from the accumulation of rewards.

    Claim Rewards: Specifically for users who want to continue staking their LP tokens but wish to collect earned rewards, this action allows for the claiming of rewards without affecting the staked LP token balance. It is a flexible option for users looking to realize immediate gains while maintaining their position in the farm.

    Relock LP Tokens: The relock feature allows users to extend the locking period of their LP tokens beyond the initial commitment, effectively resetting the lock duration to a new, longer period. This action not only unlocks and makes available any accumulated rewards up to that point but also commits the user to a new locking period, which comes with a potentially higher APR.

    Detailed information for each action will be provided very soon.

    + \ No newline at end of file diff --git a/participate/dex/Guide_Usage/index.html b/participate/dex/Guide_Usage/index.html index dbf426f29..75f089891 100644 --- a/participate/dex/Guide_Usage/index.html +++ b/participate/dex/Guide_Usage/index.html @@ -4,14 +4,14 @@ Tutorial | Archethic - +

    aeSwap - Tutorial

    info

    aeSwap is a web application accessible through internet browsers and is compatible only with chrome extension or with desktop versions of the Archethic wallet, which include macOS, Linux, and Windows platforms.

    caution

    Ensure you have the appropriate version of the Archethic wallet installed on your system to interact with the application effectively. You can download the wallet from here.

    tip

    For optimal performance, use the latest version of your internet browser.

    Access:

    Source code: https://github.com/archethic-foundation/dex

    This Flutter-built web application enables swapping assets on-chain, adding liquidity, and accessing yield farming.

    tip

    Before proceeding, familiarize yourself with Archethic's DEX Key Concepts.

    Welcome Screen

    Upon accessing aeSwap, you are greeted with a welcome screen. To begin, click on the 'Go!' button.

    Welcome Screen
    -aeSwap Main Screen

    Application Menu

    A right-hand header menu provides links to essential information and application documentation. It includes an option to send logs to Archethic for troubleshooting purposes.

    Menu

    Feature Access

    The top menu grants access to various DEX functionalities:

    • Swapping assets
    • Listing Pools / Adding or removing Liquidity
    • Farming

    Menu Features

    - +aeSwap Main Screen

    Application Menu

    A right-hand header menu provides links to essential information and application documentation. It includes an option to send logs to Archethic for troubleshooting purposes.

    Menu

    Feature Access

    The top menu grants access to various DEX functionalities:

    • Swapping assets
    • Listing Pools / Adding or removing Liquidity
    • Farming

    Menu Features

    + \ No newline at end of file diff --git a/participate/dex/Guide_Usage/liquidity_pool/index.html b/participate/dex/Guide_Usage/liquidity_pool/index.html index 0a1bc741d..750aba9bd 100644 --- a/participate/dex/Guide_Usage/liquidity_pool/index.html +++ b/participate/dex/Guide_Usage/liquidity_pool/index.html @@ -4,7 +4,7 @@ Liquidity Pool | Archethic - + @@ -13,8 +13,8 @@ If the details align with your intentions and you are content with the proposed setup, proceed by clicking on the "Confirm the creation" button to move forward in the process.

    Add pool confirm

    Wallet Validations for Liquidity Transactions

    The creation of the pool and addition of liquidity to the pool necessitate two separate validations within your Archethic wallet:

    Transaction Confirmation: You will need to approve two transactions – one for creating the pool and another for adding liquidity to it.

    Transaction Addresses: Upon successful completion of these transactions, you will be provided with their addresses. These addresses allow you to verify the transactions on the blockchain, ensuring transparency and security in your operations.

    Add pool end

    aeSwap offers a unique and engaging way to access detailed information about each liquidity pool through an interactive card. You can easily explore this card by clicking on the turn icon to "rotate" the view, revealing comprehensive details about the pools in a visually intuitive manner.

    Front View: Essential Pool Details

    Pool List Front

    When viewing the front of the card, users are presented with a rich set of information designed to provide a quick and informative snapshot of each pool:

    • Token Pair and Logos: Each pool is represented by its pair of tokens, accompanied by their logos when available, for easy identification.
    • Verification Status: A green icon signifies that the pool has been officially verified by Archethic, indicating a layer of trust and security.
    • Personal Liquidity Contribution: If you have added liquidity to a pool, a yellow star icon will highlight your participation, making it easy to track your investments.
    • Total Value Locked (TVL): The TVL is displayed in dollars, offering a clear view of the pool's size and the total capital invested.
    • Annual Percentage Rate (APR) Over 24 Hours: The APR is displayed to indicate the potential return on investment over a year, based on the pool’s performance during the last 24 hours. This provides a quick snapshot of profitability to help users assess the attractiveness of investing in the pool.
    • Trading Dynamics: Detailed statistics on trading volume and fees collected over the last 24 hours and cumulatively are provided to give users insights into the pool's activity and profitability.

    Back View: Exploring Pool Details

    Pool List Back

    You can find in this side of the card:

    • Pool Address: Displayed prominently for easy reference. Accompanying the address, an icon for quick copying allows users to easily share or save the address. - Additionally, a separate icon links directly to the blockchain explorer, where users can delve into full details and analytics of the pool.
    • Token Holdings: This section lists the exact number of tokens currently deposited within the pool, providing a clear view of the pool's liquidity depth.
    • Swap Fee Percentage: The fee charged for swap transactions within this particular pool is displayed as a percentage. This fee contributes to the rewards earned by liquidity providers, representing an essential metric for potential and current investors.

    Interacting with Pools: Available Actions

    On aeSwap, participants have the flexibility to engage with liquidity pools through a variety of actions, each designed to suit different strategies and needs. Here’s a concise overview of the options available:

    Exchange Pool Tokens: Users can swap tokens within a pool, utilizing the liquidity available to exchange one token for another. This action is fundamental to the operation of a DEX, allowing users to seamlessly trade assets at current market rates determined by the pool's liquidity and token ratio.

    Add Liquidity: If you're looking to contribute to a pool, this action enables you to deposit your tokens into the pool. Adding liquidity increases the pool's total value locked (TVL) and, in return, you receive liquidity provider (LP) tokens. These LP tokens represent your share of the pool and entitle you to a portion of the trading fees generated by the pool's activity.

    Remove Liquidity: When you wish to retrieve your deposited tokens from a pool, this action allows you to do so. By returning your LP tokens, you can claim back your share of the pool, along with any accrued fees, based on the current ratio of tokens within the pool. This action is essential for managing your investments and realizing potential gains from fee accumulation.

    Fees

    For enhancing %APR, liquidity, and volume, all fees are returned to LP suppliers: 0.3% LP provider fee, 0% protocol fee.

    Specificity of the aeETH / UCO pair

    Archethic offers a specific aeETH/UCO pool featuring a new farming mechanism designed to reward long-term commitment. This update provides UCO holders with flexible levels and the potential for higher rewards through a tiered system, reinforcing our mission to support sustained engagement with our project.

    With our new Leveling System on the aeETH/UCO pool, we’ve removed LP provider fees on this pool: 0.3% Protocol Fees, 0% LP Provider Fees on the aeETH/UCO pool.

    Pool aeETH/UCO

    For the specific aeETH/UCO pool, the displayed information is unique:

    3-Year APR of the Associated Farm: Instead of showing the fees collected by the pool, we display the 3-year APR of the farm associated with the pool. A link is provided to allow users to access the farm directly.

    Add Liquidity

    Enhancing your portfolio by adding liquidity to a pool is a straightforward process designed for ease of use and efficiency. Here's how you can contribute to the liquidity of your chosen pool:

    Step 1: Adding Liquidity: Essential Information

    Add liquidity form

    Entering Token Amounts: Begin by inputting the amount of one of the two tokens in the pool's pair. The system will automatically calculate the necessary amount of the second token based on the current pool ratio, ensuring your contribution maintains the pool's balance.

    Slippage Tolerance Configuration: To manage the impact of price fluctuations during your transaction, click on the wheel icon next to "slippage tolerance." Slippage occurs when the price at which your transaction is executed differs from the price when you submitted it. Adjusting your slippage tolerance allows you to control the maximum price variation you're willing to accept.

    Transaction Details: Once you've set the amounts, the system will display information about your transaction:

    • Minimum Token Amounts: The least amount of each token that will be added to the pool, considering slippage and transaction timing.
    • Estimated LP Tokens: An estimation of how many liquidity provider (LP) tokens you'll receive in return. These tokens represent your share of the pool and your entitlement to a portion of the trading fees.

    Add Liquidity: Click the "Add liquidity" button to finalize your contribution. This action initiates the transaction and adds your tokens to the pool.

    Pre-transaction Validations

    Before adding liquidity, the system performs a vital check to ensure:

    • Token Availability: Verifies that the necessary tokens are available in your wallet for the liquidity addition.
    info

    When adding liquidity involving UCO (the native token of the Archethic Public Blockchain), the system automatically calculates and reserves the necessary amount for transaction fees associated with liquidity addition. As a result, the maximum amount of UCO that can be allocated is less than your total UCO balance to accommodate these costs.

    Step 2: Finalizing Liquidity Addition: Confirmation and Validation Steps

    After you submit the liquidity addition form by clicking the "Add liquidity" button, you will be directed to a confirmation screen. This screen serves a critical role in the liquidity addition process, enabling you to:

    • Review Token Ratio: Examine the initial ratio between the two tokens in your new pool to ensure it aligns with your expectations.
    • Balance Verification: Check your account balances before and after liquidity is added to understand the impact of your transaction. If the details align with your intentions and you are content with the proposed setup, proceed by clicking on the "Confirm the creation" button to move forward in the process.

    Add liquidity confirm

    Wallet Validations for Liquidity Transactions

    The addition of liquidity to the pool necessitates two separate validations within your Archethic wallet:

    Transaction Confirmation: You will need to approve 1 transaction.

    Transaction Address: Upon successful completion of this transaction, you will be provided with the address. This address allows you to verify the transaction on the blockchain, ensuring transparency and security in your operation.

    Add liquidity end

    Remove Liquidity

    Withdrawing your liquidity from a pool is a flexible process that can be initiated at any time, allowing you to reclaim all or a portion of your deposited tokens.

    Step 1: Removing Liquidity: Essential Information

    The process begins with the user entering the amount of LP (Liquidity Provider) tokens they wish to redeem. This action is facilitated through a user-friendly form designed to make the withdrawal process as straightforward as possible.

    Remove liquidity form

    Entering LP Token Amounts: The amount of LP tokens you wish to use for the withdrawal. LP tokens represent your share of the pool's total liquidity.

    Transaction Details: Once you've set the amount, the system will display information about your transaction:

    • Amounts of token to get back: This crucial piece of information tells you exactly how many of each token in the pool you will receive in return for the specified amount of LP tokens. This is calculated based on the current ratio of tokens within the pool and the total amount of liquidity you're choosing to withdraw. By presenting these details, the system aims to provide users with a clear understanding of the outcome of their liquidity removal transaction, allowing for precise and confident decision-making.

    Remove Liquidity: Click the "Remove liquidity" button to finalize your withdrawal. This action initiates the transaction, removes (or "burns") your LP tokens from circulation, and the corresponding amount of the original tokens you provided as liquidity will be returned to you. The exact amounts are calculated according to the current liquidity ratio within the pool and the total number of LP tokens you are redeeming.

    Pre-transaction Validations

    Before removing liquidity, the system performs a vital check to ensure:

    • Token Availability: Verifies that the necessary LP tokens are available in your wallet for the liquidity removal.

    Step 2: Finalizing Liquidity Removal: Confirmation and Validation Steps

    After you submit the liquidity removal form by clicking the "Remove liquidity" button, you will be directed to a confirmation screen. This screen serves a critical role in the liquidity removal process, enabling you to:

    • Balance Verification: Check your account balances before and after liquidity is removed to understand the impact of your transaction. -If the details align with your intentions and you are content with the proposed setup, proceed by clicking on the "Confirm" button to move forward in the process.

    Remove liquidity confirm

    Wallet Validations for Liquidity Transactions

    Transaction Confirmation: You will need to approve 1 transaction.

    Transaction Address: Upon successful completion of this transaction, you will be provided with the address. This address allows you to verify the transaction on the blockchain, ensuring transparency and security in your operation.

    Remove liquidity end

    - +If the details align with your intentions and you are content with the proposed setup, proceed by clicking on the "Confirm" button to move forward in the process.

    Remove liquidity confirm

    Wallet Validations for Liquidity Transactions

    Transaction Confirmation: You will need to approve 1 transaction.

    Transaction Address: Upon successful completion of this transaction, you will be provided with the address. This address allows you to verify the transaction on the blockchain, ensuring transparency and security in your operation.

    Remove liquidity end

    + \ No newline at end of file diff --git a/participate/dex/Guide_Usage/swap/index.html b/participate/dex/Guide_Usage/swap/index.html index 8d2465224..9f12721b7 100644 --- a/participate/dex/Guide_Usage/swap/index.html +++ b/participate/dex/Guide_Usage/swap/index.html @@ -4,14 +4,14 @@ Swap | Archethic - +

    Swap

    Swapping Your Tokens

    aeSwap involves multiple steps:

    1. Inputting information to initiate the swap
    2. Confirming the entered details
    3. Executing the swap, with progress tracking and transaction signing in the Archethic wallet

    Step 1: Swap - Essential Information

    Swap form

    Select tokens to swap: Click on "Select a token" to access a popup with token info

    Token Selection

    Entering Token Amount to swap: Begin by inputting the amount of one of the two tokens in the pool's pair. The system will automatically calculate the necessary amount of the second token based on the current pool ratio.

    Slippage Tolerance Configuration: To manage the impact of price fluctuations during your transaction, click on the wheel icon next to "slippage tolerance." Slippage occurs when the price at which your transaction is executed differs from the price when you submitted it. Adjusting your slippage tolerance allows you to control the maximum price variation you're willing to accept.

    Transaction Details: Once you've set the amounts, the system will display information about your transaction:

    • Fees: Displayed prominently, this includes the fees charged by liquidity providers for facilitating the swap, as well as any operating costs associated with using the Archethic Public Blockchain. These fees are integral to the transaction cost and contribute to the rewards for liquidity providers.
    • Price Impact: The system calculates and shows the price impact of your transaction, which is the effect your trade will have on the pool's price for the token pair. The price impact is a crucial metric for understanding how the size of your transaction relative to the pool's liquidity can alter the price of the tokens you are trading. A significant transaction in a pool with limited liquidity can lead to a higher price impact.
      info

      If the price impact exceeds certain thresholds (greater than 1% or 5%), the system issues a warning. This is to alert you that your transaction could significantly alter market prices, potentially leading to less favorable trade conditions.

    • Minimum received: This figure represents the least amount you can expect to receive as a result of your transaction, taking into account slippage and fees. It ensures that you are aware of the worst-case scenario based on the current market conditions and your specified slippage tolerance.
    • Current TVL of the Pool: The Total Value Locked (TVL) in the pool is provided, giving you an idea of the pool's size and liquidity. A larger TVL indicates a more significant pool, which generally leads to lower price impact from individual transactions.
    • Current Token Ratio: Lastly, you will see the current ratio of tokens in the pool. This ratio is vital for understanding the liquidity dynamics and potential price movements within the pool.

    Swap: Click the "Swap" button to finalize your swap. This action initiates the transaction and swaps your tokens.

    Pre-transaction Validations

    Before swapping, the system performs a vital check to ensure:

    • Token Availability: Verifies that the necessary token to swap is available in your wallet.
    info

    When swapping involving UCO (the native token of the Archethic Public Blockchain), the system automatically calculates and reserves the necessary amount for transaction fees associated with liquidity addition. As a result, the maximum amount of UCO that can be allocated is less than your total UCO balance to accommodate these costs.

    Step 2: Finalizing swap: Confirmation and Validation Steps

    After you submit the swap form by clicking the "Swap" button, you will be directed to a confirmation screen. This screen serves a critical role in the swap process, enabling you to:

    • Minimum received
    • Balances Verification: Check your account balances before and after the swap to understand the impact of your transaction.
    • Fees
    • Price impact -If the details align with your intentions and you are content with the proposed setup, proceed by clicking on the "Confirm swap" button to move forward in the process.

    Swap confirm

    Wallet Validations for Swap Transaction

    Transaction Confirmation: You will need to approve 1 transaction.

    Transaction Address: Upon successful completion of this transaction, you will be provided with the address and the amount swapped. This address allows you to verify the transaction on the blockchain, ensuring transparency and security in your operation.

    Swap end

    - +If the details align with your intentions and you are content with the proposed setup, proceed by clicking on the "Confirm swap" button to move forward in the process.

    Swap confirm

    Wallet Validations for Swap Transaction

    Transaction Confirmation: You will need to approve 1 transaction.

    Transaction Address: Upon successful completion of this transaction, you will be provided with the address and the amount swapped. This address allows you to verify the transaction on the blockchain, ensuring transparency and security in your operation.

    Swap end

    + \ No newline at end of file diff --git a/participate/dex/Overview/ecosystem_participants/index.html b/participate/dex/Overview/ecosystem_participants/index.html index 531b3d6eb..eeb949c06 100644 --- a/participate/dex/Overview/ecosystem_participants/index.html +++ b/participate/dex/Overview/ecosystem_participants/index.html @@ -4,13 +4,13 @@ Ecosystem Participants | Archethic - +
    -

    Ecosystem Participants

    The aeSwap ecosystem, built on the Archethic Public Blockchain, introduces a decentralized finance (DeFi) environment that is supported by three primary types of participants: liquidity providers, traders, and developers. Each group plays a crucial role in the ecosystem's functionality and growth, contributing to a vibrant and dynamic DeFi landscape.

    Liquidity Providers (LPs)

    Liquidity providers are pivotal to the aeSwap ecosystem, offering their assets to the pools and in return, they receive LP tokens. These participants can be categorized as:

    • Passive LPs: Individuals or entities that contribute their tokens to liquidity pools to earn fees from trading activities without active management.
    • Professional LPs: Those who engage in liquidity provision as their main strategy, often utilizing advanced tools and methodologies to optimize their returns across various DeFi platforms.
    • Token Projects: Projects that provide liquidity for their own tokens to ensure a stable and liquid market, facilitating easier exchange and integration within the wider DeFi ecosystem.
    • Innovative LPs: Pioneers exploring new models of liquidity provision, such as incentivized liquidity positions, using liquidity as collateral, among other experimental approaches.

    Traders

    Traders interact with aeSwap to exchange tokens, leveraging the liquidity provided by LPs. Traders are essential for maintaining the dynamic pricing mechanism of the DEX and can be classified into:

    • Speculators: Users who rely on community tools and insights to make trades based on market trends and predictions.
    • Arbitrageurs: Participants who seek to profit from price discrepancies across different exchanges, thereby contributing to market efficiency.
    • DApp Users: Individuals purchasing tokens for use within various applications on the Archethic Public Blockchain and wider DeFi landscape.
    • Smart Contract Integrators: Developers or projects that implement aeSwap's functionalities within their contracts for purposes such as decentralized exchanges (DEXes), aggregators, or other DeFi services.

    Developers

    Developers are the backbone of the aeSwap ecosystem, innovating and creating new applications that integrate with or build upon aeSwap's functionalities. This includes:

    • Interface and Frontend Developers: Those who create user-friendly interfaces and applications to access aeSwap's services, ranging from basic trading interfaces to complex DeFi platforms.
    • Smart Contract Developers: Innovators who utilize aeSwap's smart contracts to develop new DeFi products, tools, and services, contributing to the ecosystem's growth and diversification.
    • Wallet and DApp Integrators: Projects that incorporate aeSwap functionalities into wallets or other decentralized applications, enhancing user experience and utility.

    Together, these participants form a symbiotic relationship that drives the growth, innovation, and stability of the aeSwap ecosystem, making it a cornerstone of the Archethic Public Blockchain's DeFi offering.

    - +

    Ecosystem Participants

    The aeSwap ecosystem, built on the Archethic Public Blockchain, introduces a decentralized finance (DeFi) environment that is supported by three primary types of participants: liquidity providers, traders, and developers. Each group plays a crucial role in the ecosystem's functionality and growth, contributing to a vibrant and dynamic DeFi landscape.

    Liquidity Providers (LPs)

    Liquidity providers are pivotal to the aeSwap ecosystem, offering their assets to the pools and in return, they receive LP tokens. These participants can be categorized as:

    • Passive LPs: Individuals or entities that contribute their tokens to liquidity pools to earn fees from trading activities without active management.
    • Professional LPs: Those who engage in liquidity provision as their main strategy, often utilizing advanced tools and methodologies to optimize their returns across various DeFi platforms.
    • Token Projects: Projects that provide liquidity for their own tokens to ensure a stable and liquid market, facilitating easier exchange and integration within the wider DeFi ecosystem.
    • Innovative LPs: Pioneers exploring new models of liquidity provision, such as incentivized liquidity positions, using liquidity as collateral, among other experimental approaches.

    Traders

    Traders interact with aeSwap to exchange tokens, leveraging the liquidity provided by LPs. Traders are essential for maintaining the dynamic pricing mechanism of the DEX and can be classified into:

    • Speculators: Users who rely on community tools and insights to make trades based on market trends and predictions.
    • Arbitrageurs: Participants who seek to profit from price discrepancies across different exchanges, thereby contributing to market efficiency.
    • DApp Users: Individuals purchasing tokens for use within various applications on the Archethic Public Blockchain and wider DeFi landscape.
    • Smart Contract Integrators: Developers or projects that implement aeSwap's functionalities within their contracts for purposes such as decentralized exchanges (DEXes), aggregators, or other DeFi services.

    Developers

    Developers are the backbone of the aeSwap ecosystem, innovating and creating new applications that integrate with or build upon aeSwap's functionalities. This includes:

    • Interface and Frontend Developers: Those who create user-friendly interfaces and applications to access aeSwap's services, ranging from basic trading interfaces to complex DeFi platforms.
    • Smart Contract Developers: Innovators who utilize aeSwap's smart contracts to develop new DeFi products, tools, and services, contributing to the ecosystem's growth and diversification.
    • Wallet and DApp Integrators: Projects that incorporate aeSwap functionalities into wallets or other decentralized applications, enhancing user experience and utility.

    Together, these participants form a symbiotic relationship that drives the growth, innovation, and stability of the aeSwap ecosystem, making it a cornerstone of the Archethic Public Blockchain's DeFi offering.

    + \ No newline at end of file diff --git a/participate/dex/Overview/glossary/index.html b/participate/dex/Overview/glossary/index.html index 178741f4a..9901ca0fb 100644 --- a/participate/dex/Overview/glossary/index.html +++ b/participate/dex/Overview/glossary/index.html @@ -4,13 +4,13 @@ Glossary | Archethic - +
    -

    Glossary

    aeSwap

    A decentralized exchange platform built on the Archethic Public Blockchain, leveraging the AMM model for swapping tokens, adding liquidity, and yield farming.

    Automated Market Maker (AMM)

    An AMM is a type of decentralized exchange protocol that relies on a mathematical formula to price assets. Instead of using a traditional order book, it automates the process of providing liquidity to pools of two or more tokens, from which users can trade.

    Liquidity Addition

    The process of depositing tokens into a pool to increase its liquidity. Users receive LP tokens in return, representing their share of the pool.

    Liquidity Provider (LP)

    A user who deposits an equivalent value of two tokens into a pool, facilitating trading by providing liquidity. LPs are compensated with transaction fees and potentially other rewards.

    Liquidity Removal

    The process of redeeming LP tokens to withdraw liquidity from a pool. Users receive a proportional amount of the pool's tokens based on their share.

    Pool

    A smart contract that holds reserves of two or more tokens and allows users to trade between these tokens. The pool's liquidity is provided by liquidity providers who deposit an equivalent value of two tokens.

    Price Impact

    The effect a trade will have on the price of a token in a pool. Large trades in relation to the pool's size can have a significant price impact, affecting the trade's execution price.

    Slippage

    The difference in price between when a trade is submitted and when it is executed, due to changes in a pool's liquidity in that interval. Users can set a slippage tolerance to protect against excessive price movement.

    Swap

    The action of trading one token for another within the aeSwap ecosystem. Swaps are executed against the liquidity available in pools and are subject to fees and slippage.

    Total Value Locked (TVL)

    The total amount of assets that are currently staked or locked in a protocol, indicating its size and health. In aeSwap, it refers to the total value of tokens locked in all liquidity pools.

    Yield Farming

    A strategy where users stake or lend crypto assets in order to receive returns or rewards. In the context of aeSwap, this involves participating in liquidity provision and potentially other incentivized activities.

    This glossary provides a foundational understanding of key concepts within the aeSwap ecosystem, facilitating a clearer comprehension of the platform's functionalities and operations.

    - +

    Glossary

    aeSwap

    A decentralized exchange platform built on the Archethic Public Blockchain, leveraging the AMM model for swapping tokens, adding liquidity, and yield farming.

    Automated Market Maker (AMM)

    An AMM is a type of decentralized exchange protocol that relies on a mathematical formula to price assets. Instead of using a traditional order book, it automates the process of providing liquidity to pools of two or more tokens, from which users can trade.

    Liquidity Addition

    The process of depositing tokens into a pool to increase its liquidity. Users receive LP tokens in return, representing their share of the pool.

    Liquidity Provider (LP)

    A user who deposits an equivalent value of two tokens into a pool, facilitating trading by providing liquidity. LPs are compensated with transaction fees and potentially other rewards.

    Liquidity Removal

    The process of redeeming LP tokens to withdraw liquidity from a pool. Users receive a proportional amount of the pool's tokens based on their share.

    Pool

    A smart contract that holds reserves of two or more tokens and allows users to trade between these tokens. The pool's liquidity is provided by liquidity providers who deposit an equivalent value of two tokens.

    Price Impact

    The effect a trade will have on the price of a token in a pool. Large trades in relation to the pool's size can have a significant price impact, affecting the trade's execution price.

    Slippage

    The difference in price between when a trade is submitted and when it is executed, due to changes in a pool's liquidity in that interval. Users can set a slippage tolerance to protect against excessive price movement.

    Swap

    The action of trading one token for another within the aeSwap ecosystem. Swaps are executed against the liquidity available in pools and are subject to fees and slippage.

    Total Value Locked (TVL)

    The total amount of assets that are currently staked or locked in a protocol, indicating its size and health. In aeSwap, it refers to the total value of tokens locked in all liquidity pools.

    Yield Farming

    A strategy where users stake or lend crypto assets in order to receive returns or rewards. In the context of aeSwap, this involves participating in liquidity provision and potentially other incentivized activities.

    This glossary provides a foundational understanding of key concepts within the aeSwap ecosystem, facilitating a clearer comprehension of the platform's functionalities and operations.

    + \ No newline at end of file diff --git a/participate/dex/Overview/protocol_overview/index.html b/participate/dex/Overview/protocol_overview/index.html index 765b92794..b4027d396 100644 --- a/participate/dex/Overview/protocol_overview/index.html +++ b/participate/dex/Overview/protocol_overview/index.html @@ -4,13 +4,13 @@ Protocol Overview | Archethic - +
    -

    Protocol Overview

    Introduction

    aeSwap is an innovative decentralized exchange (DEX) operating on the Archethic Public Blockchain, leveraging the Automated Market Maker (AMM) model to facilitate on-chain asset swaps, liquidity provision, and yield farming opportunities. Built with the goal of enhancing the decentralized finance (DeFi) ecosystem, aeSwap emphasizes security, decentralization, and low transaction costs, offering a robust platform for DeFi activities without the need for trusted intermediaries.

    The AMM Model

    At the core of aeSwap is the AMM model, which enables the automatic trading of digital assets using liquidity pools rather than traditional market orders. Each liquidity pool on aeSwap contains reserves of two tokens and operates according to a set formula to ensure liquidity and facilitate trades.

    Participating in aeSwap

    • Liquidity Providers (LPs) can add their tokens to the liquidity pools, receiving LP tokens in return. These LP tokens represent their share of the pool and entitle them to a portion of the trading fees generated by the pool's activity.
    • Traders use aeSwap to swap between different tokens. Each trade incurs a nominal fee, part of which is added to the pool reserves, thus benefiting the liquidity providers.
    • Developers can integrate aeSwap's functionalities into their applications, utilizing its open-source smart contracts and APIs for building decentralized apps on the Archethic Public Blockchain.

    Ensuring Fair and Secure Trading

    aeSwap utilizes a unique algorithm to determine the price of tokens in each pool, ensuring that trades are executed close to the market rates. This system also provides protection against significant price impacts, ensuring a stable DeFi environment.

    Rewards and Yield Farming

    Participants can earn rewards through yield farming by providing liquidity to selected pools. aeSwap's design encourages long-term liquidity provision and sustainable yield generation, with rewards distributed in UCO tokens, the native cryptocurrency of the Archethic Public Blockchain.

    The Mathematics of AMM and Constant Product Formula

    aeSwap, based on the Uniswap v2 model, employs the constant product formula to maintain pool liquidity and determine prices. This formula is represented as x * y = k, where:

    • x and y are the quantities of the two tokens in the liquidity pool.
    • k is a constant value.

    The constant product formula ensures that the total value in the pool remains constant after a trade, excluding fees. When a trade is executed, the product of the quantities of the two tokens stays the same, allowing the AMM to provide liquidity at any price level.

    Example Calculation

    If a liquidity pool contains Token A and Token B with amounts a and b respectively, and a trader wants to swap an amount Δa of Token A for Token B, the constant product formula ab = k must still hold post-trade. The amount of Token B received, Δb, can be calculated by rearranging the formula to find the new balance of Token B that maintains k.

    Price Impact and Slippage

    The constant product mechanism also inherently limits the price impact of trades, ensuring that larger trades have a proportionally higher impact on price. This helps protect against market manipulation and ensures fair trading conditions.

    Conclusion and Further Exploration

    aeSwap represents a significant advancement in the DeFi space, offering a decentralized platform for trading, liquidity provision, and yield farming on the Archethic Public Blockchain. Its innovative use of the AMM model, combined with a focus on security and user experience, positions aeSwap as a key player in the decentralized finance ecosystem.

    For a deeper understanding of aeSwap's functionalities and to start participating in the Archethic DeFi ecosystem, refer to our detailed [Usage Guides](/participate/dex/Guide Usage/usage_overview).

    - +

    Protocol Overview

    Introduction

    aeSwap is an innovative decentralized exchange (DEX) operating on the Archethic Public Blockchain, leveraging the Automated Market Maker (AMM) model to facilitate on-chain asset swaps, liquidity provision, and yield farming opportunities. Built with the goal of enhancing the decentralized finance (DeFi) ecosystem, aeSwap emphasizes security, decentralization, and low transaction costs, offering a robust platform for DeFi activities without the need for trusted intermediaries.

    The AMM Model

    At the core of aeSwap is the AMM model, which enables the automatic trading of digital assets using liquidity pools rather than traditional market orders. Each liquidity pool on aeSwap contains reserves of two tokens and operates according to a set formula to ensure liquidity and facilitate trades.

    Participating in aeSwap

    • Liquidity Providers (LPs) can add their tokens to the liquidity pools, receiving LP tokens in return. These LP tokens represent their share of the pool and entitle them to a portion of the trading fees generated by the pool's activity.
    • Traders use aeSwap to swap between different tokens. Each trade incurs a nominal fee, part of which is added to the pool reserves, thus benefiting the liquidity providers.
    • Developers can integrate aeSwap's functionalities into their applications, utilizing its open-source smart contracts and APIs for building decentralized apps on the Archethic Public Blockchain.

    Ensuring Fair and Secure Trading

    aeSwap utilizes a unique algorithm to determine the price of tokens in each pool, ensuring that trades are executed close to the market rates. This system also provides protection against significant price impacts, ensuring a stable DeFi environment.

    Rewards and Yield Farming

    Participants can earn rewards through yield farming by providing liquidity to selected pools. aeSwap's design encourages long-term liquidity provision and sustainable yield generation, with rewards distributed in UCO tokens, the native cryptocurrency of the Archethic Public Blockchain.

    The Mathematics of AMM and Constant Product Formula

    aeSwap, based on the Uniswap v2 model, employs the constant product formula to maintain pool liquidity and determine prices. This formula is represented as x * y = k, where:

    • x and y are the quantities of the two tokens in the liquidity pool.
    • k is a constant value.

    The constant product formula ensures that the total value in the pool remains constant after a trade, excluding fees. When a trade is executed, the product of the quantities of the two tokens stays the same, allowing the AMM to provide liquidity at any price level.

    Example Calculation

    If a liquidity pool contains Token A and Token B with amounts a and b respectively, and a trader wants to swap an amount Δa of Token A for Token B, the constant product formula ab = k must still hold post-trade. The amount of Token B received, Δb, can be calculated by rearranging the formula to find the new balance of Token B that maintains k.

    Price Impact and Slippage

    The constant product mechanism also inherently limits the price impact of trades, ensuring that larger trades have a proportionally higher impact on price. This helps protect against market manipulation and ensures fair trading conditions.

    Conclusion and Further Exploration

    aeSwap represents a significant advancement in the DeFi space, offering a decentralized platform for trading, liquidity provision, and yield farming on the Archethic Public Blockchain. Its innovative use of the AMM model, combined with a focus on security and user experience, positions aeSwap as a key player in the decentralized finance ecosystem.

    For a deeper understanding of aeSwap's functionalities and to start participating in the Archethic DeFi ecosystem, refer to our detailed [Usage Guides](/participate/dex/Guide Usage/usage_overview).

    + \ No newline at end of file diff --git a/participate/dex/Overview/smart_contracts/farm-lock/index.html b/participate/dex/Overview/smart_contracts/farm-lock/index.html index 52fd36233..7855f4e8f 100644 --- a/participate/dex/Overview/smart_contracts/farm-lock/index.html +++ b/participate/dex/Overview/smart_contracts/farm-lock/index.html @@ -4,7 +4,7 @@ Farm Lock Smart Contract | Archethic - + @@ -13,8 +13,8 @@ For example a deposit at 12:03 and another one at 12:57 will both be rounded to 12:00 and they will both start earning at 13:00.

    The calculation is triggered either:

    • by a scheduler contract that calls the calculate_rewards actions every hours.
    • by a deposit/claim/withdraw/relock action.

    There is at most 1 calculation per hour.

    State

    The state is composed of these properties:

    • last_calculation_timestamp the date of the last calculation
    • deposits state of the deposits at the moment of last calculation (level and reward_amount will change over time).
    • lp_tokens_deposited amount of tokens deposited at the moment of last calculation
    • lp_tokens_deposited_by_level amount of tokens deposited grouped by level at the moment of last calculation

    Calculations

    When entering the calculate_new_rewards function, we check how much hours need to be calculated (should mostly be 1). Then for every hour:

    rewardsToAllocateForThisHour = rewardsRemainingAtTheEndOfYear  * (3600 / numberOfSecondsRemainingUtilEndOfYear)
    levelRatio = (tokensAmountAtThisLevel * weightOfThisLevel) / sumOfAllWeightedTokens
    depositRatioOnItsLevel = (depositTokensAmount * weightOfThisLevel) / (tokensAmountAtThisLevel * weightOfThisLevel)
    reward = rewardsToAllocateForThisHour * depositRatioOnItsLevel * levelRatio

    An example

    Let's take a simple scenario so we can do the maths easily.

    Imagine the farm starts (year=1) with these 3 deposits:

    1. 1000 UCO at level 7
    2. 1000 UCO at level 3
    3. 1000 UCO at level 3

    To calculate the rewards of the 1st deposit:

    rewardsToAllocateForThisHour = 45_000_000  * (3600 / 31536000) // 5136.986301369863
    levelRatio = (1000 * 0.453) / 539 // 0.8404452690166976
    depositRatioOnItsLevel = (1000 * 0.453) / (1000 * 0.453) // 1
    reward = 5136.986301369863 * 1 * 0.8404452690166976 // 4317.355833989885

    Until the state change (year change/level change/deposit/withdraw/relock), the first deposit will be rewarded of 4317.35583398 UCO every hours.

    Giveaways

    If the contract have more balance than it's supposed to, the tokens are rewarded linearly over the entire farm's duration. Example, if someone sends 35040 UCO (= farm's duration in hours) to the farm, there will be 1 more UCO rewarded every hours. -Nothing is wasted.

    - +Nothing is wasted.

    + \ No newline at end of file diff --git a/participate/dex/Overview/smart_contracts/index.html b/participate/dex/Overview/smart_contracts/index.html index c57bb8574..60fd72749 100644 --- a/participate/dex/Overview/smart_contracts/index.html +++ b/participate/dex/Overview/smart_contracts/index.html @@ -4,13 +4,13 @@ Smart Contracts | Archethic - + - + + \ No newline at end of file diff --git a/participate/dex/index.html b/participate/dex/index.html index 2681f7ef5..48b30335f 100644 --- a/participate/dex/index.html +++ b/participate/dex/index.html @@ -4,13 +4,13 @@ Archethic DEX (aeSwap) | Archethic - +
    -

    aeSwap DEX Documentation

    Welcome to aeSwap, the decentralized exchange (DEX) platform powered by the Archethic Public Blockchain.

    aeSwap utilizes an Automated Market Maker (AMM) model to facilitate seamless swapping of assets, liquidity provision, and access to yield farming opportunities for users.

    Designed with security, low transaction fees, and a high-quality user experience in mind, aeSwap represents a cornerstone of the Archethic Decentralized Finance (DeFi) ecosystem.

    What is a Decentralized Exchange (DEX)?

    A Decentralized Exchange (DEX) is a type of cryptocurrency exchange that operates without a central governing body, allowing users to conduct peer-to-peer transactions directly from their wallets. Unlike traditional exchanges, DEXs do not hold user funds, positions, or information, and transactions are facilitated through smart contracts on a blockchain.

    DEXs offer a higher degree of privacy and security compared to centralized exchanges, as they do not require users to transfer their assets to the exchange before trading. This mitigates the risk of hacking, fraud, and mismanagement that can occur with centralized platforms.

    Key Features of aeSwap

    • Swapping Tokens: Users can easily swap between different tokens on the Archethic Public Blockchain, with the platform automatically calculating the best available rates.
    • Adding Liquidity: Participants can provide liquidity to various pools by depositing token pairs, thereby facilitating trading on the platform and earning transaction fees as rewards.
    • Removing Liquidity: Liquidity providers can withdraw their deposited tokens from liquidity pools, along with any earned fees, at any time.
    • Yield Farming: Users can engage in yield farming strategies to earn additional rewards by providing liquidity to selected pools.
    • Security: Built on the highly secure Archethic Public Blockchain, aeSwap offers robust protection against common security threats in the DeFi space.
    • Low Fees: Thanks to the efficiency of the Archethic Public Blockchain, transaction fees on aeSwap are kept to a minimum, enhancing profitability for users.
    • Seamless Experience: The platform's user interface is designed for ease of use, making it accessible to both beginners and experienced DeFi enthusiasts.

    aeSwap leverages the unique features of the Archethic Public Blockchain to provide a decentralized trading platform that is not only efficient and cost-effective but also open and accessible to a wide range of users, from casual traders to serious DeFi participants.

    How to access

    This document aims to provide a comprehensive guide to using aeSwap, including an introduction to the necessary concepts, step-by-step guides for interacting with the platform, and technical references for deeper integration and development purposes.

    FAQ

    For further information, please refer to the FAQ.

    - +

    aeSwap DEX Documentation

    Welcome to aeSwap, the decentralized exchange (DEX) platform powered by the Archethic Public Blockchain.

    aeSwap utilizes an Automated Market Maker (AMM) model to facilitate seamless swapping of assets, liquidity provision, and access to yield farming opportunities for users.

    Designed with security, low transaction fees, and a high-quality user experience in mind, aeSwap represents a cornerstone of the Archethic Decentralized Finance (DeFi) ecosystem.

    What is a Decentralized Exchange (DEX)?

    A Decentralized Exchange (DEX) is a type of cryptocurrency exchange that operates without a central governing body, allowing users to conduct peer-to-peer transactions directly from their wallets. Unlike traditional exchanges, DEXs do not hold user funds, positions, or information, and transactions are facilitated through smart contracts on a blockchain.

    DEXs offer a higher degree of privacy and security compared to centralized exchanges, as they do not require users to transfer their assets to the exchange before trading. This mitigates the risk of hacking, fraud, and mismanagement that can occur with centralized platforms.

    Key Features of aeSwap

    • Swapping Tokens: Users can easily swap between different tokens on the Archethic Public Blockchain, with the platform automatically calculating the best available rates.
    • Adding Liquidity: Participants can provide liquidity to various pools by depositing token pairs, thereby facilitating trading on the platform and earning transaction fees as rewards.
    • Removing Liquidity: Liquidity providers can withdraw their deposited tokens from liquidity pools, along with any earned fees, at any time.
    • Yield Farming: Users can engage in yield farming strategies to earn additional rewards by providing liquidity to selected pools.
    • Security: Built on the highly secure Archethic Public Blockchain, aeSwap offers robust protection against common security threats in the DeFi space.
    • Low Fees: Thanks to the efficiency of the Archethic Public Blockchain, transaction fees on aeSwap are kept to a minimum, enhancing profitability for users.
    • Seamless Experience: The platform's user interface is designed for ease of use, making it accessible to both beginners and experienced DeFi enthusiasts.

    aeSwap leverages the unique features of the Archethic Public Blockchain to provide a decentralized trading platform that is not only efficient and cost-effective but also open and accessible to a wide range of users, from casual traders to serious DeFi participants.

    How to access

    This document aims to provide a comprehensive guide to using aeSwap, including an introduction to the necessary concepts, step-by-step guides for interacting with the platform, and technical references for deeper integration and development purposes.

    FAQ

    For further information, please refer to the FAQ.

    + \ No newline at end of file diff --git a/participate/wallet/dapps-communication/index.html b/participate/wallet/dapps-communication/index.html index 01308b88b..57eef591a 100644 --- a/participate/wallet/dapps-communication/index.html +++ b/participate/wallet/dapps-communication/index.html @@ -4,13 +4,13 @@ Communication with DApps | Archethic - +
    -

    Communication with DApps

    In the blockchain ecosystem, decentralized applications (dApps) are becoming increasingly popular. To enable reliable and secure communication between these applications and the blockchain, Archethic has developed a communication protocol with its Archethic Wallet application. This protocol allows dApps to delegate secure communication with the blockchain to the wallet and to protect private information within the wallet (seed, private keys) without exposing it to the dApps.

    Point of view on usage

    When a dApp wants to perform a transaction that requires the use of private keys, it must call on the user’s wallet to protect this information and avoid unauthorized exposure. There are several ways to do this:

    The dApp can solicit the wallet in a “covert” manner without requiring the user’s intervention. For example, it can retrieve information about the current account or services available in the decentralized wallet.

    1

    The dApp can also listen to the wallet and adapt itself according to the actions performed in it. For example, a change in the current account in the wallet may result in a change in the current account in the dApp.

    2

    Finally, the dApp can solicit the wallet and ask the user to confirm an action. For example, this could be the signing of a transaction.

    3

    Technical point of view

    In order not to limit the platforms, Archethic has implemented two protocols to allow an easy integration of its wallet with dApps:

    • For Desktop and Web Client platforms, Archethic uses the Local RPC server protocol. A WebSocket server is provided by Archethic Wallet, using the JSON-RPC 2.0 protocol. DApp developers can use the Dart or JS coded communication libraries provided by Archethic to easily integrate this functionality into their dApp.
    • For Mobile platforms, Archethic uses DeepLinks via an HTTPS URL to enable communication between the dApp and the Archethic wallet.

    For the Dart and Flutter part, these protocols have been implemented within the “Archethic Wallet Client” (AWC) communication library, which therefore allows Dapps to communicate with the Archethic wallet through a unified interface.

    4

    AWC supports several API methods, including signing and sending transactions to the Archethic blockchain, retrieving the wallet’s endpoint URL, retrieving accounts available on the wallet, adding services to the keychain, and more.

    Using AWC allows Dapps developers to focus on developing their application rather than managing communication with the wallet and blockchain. The solution is also cross-platform (macOS, iOS, Android, Web, Windows, Linux), which facilitates the interaction between users and the blockchain and avoids forcing developers to develop their Dapps on a specific platform.

    It is worth noting that for the JS part, developers can find the interfaces directly in the “libjs” library of Archethic. This greatly facilitates the integration of the wallet with dApps written in JavaScript.

    5

    Available commands

    The wallet context related commands that do not require user confirmation in the wallet are:

    • Endpoint retrieval,
    • Recovery of user accounts,
    • Recovery of the current account,
    • Recovery of the services contained in the decentralized wallet,
    • Derivation of a key pair for a given service and index and recovery of the public key,
    • Deriving an address for a given service and index.

    The information that can be listened to is:

    • The change of balance or last address of the current account,
    • The change of the current account.

    The commands related to the wallet context requiring the user’s confirmation in the wallet are:

    • Signing and sending a transaction to the blockchain,
    • Signature of a list of transactions,
    • Adding a service in the decentralized wallet.

    RPC Methods

    There are two kinds of methods :

    • one time call
    • subscriptions.

    Subscriptions won't be available on Deeplink channel because of technical limitations.

    get_endpoint

    Gets the endpoint URL used on AEWallet.

    Request

    // no payload in request

    Success Response

    {
    "endpointUrl": String // Endpoint URL
    }

    refresh_current_account

    Request the wallet to refresh current account info

    Request

    // no payload in request

    Success Response

    // no response

    get_accounts

    Gets the accounts available on AEWallet.

    Request

    // No payload

    Success Response

    {
    "accounts": [
    {
    "shortName": String, // Account name
    "serviceName": String // Service name
    "genesisAddress": String, // Genesis address
    }
    ]
    }

    send_transaction

    Signs and sends a transaction.

    Request

    {
    "type": String, // Type of transaction
    "version": Number, // Version of the transaction (used for backward compatiblity)
    "data": Object, // Transaction data zone (identity, keychain, smart contract, etc.)
    "generateEncryptedSeedSC": bool // (Optional) : if true, add a encrypted (by storage nonce public key) seed in the transaction's ownerships to allow nodes to manage smart contract
    }

    Success Response

    {
    "transactionAddress": String, // Sent transaction address.
    "nbConfirmations": Number, // Number of received confirmations.
    "maxConfirmations": Number, // Max number of confirmations.
    }

    add_service

    Add a service in the keychain

    Request

    {
    "name": String, // Name of the service
    }

    Success Response

    {
    "transactionAddress": String, // Transaction address.
    "nbConfirmations": Number, // Number of received confirmations.
    "maxConfirmations": Number, // Max number of confirmations.
    }

    remove_service

    Remove a service from the keychain

    Request

    {
    "name": String, // Name of the service
    }

    Success Response

    {
    "transactionAddress": String, // Transaction address.
    "nbConfirmations": Number, // Number of received confirmations.
    "maxConfirmations": Number, // Max number of confirmations.
    }

    get_services_from_keychain

    Gets keychain's services from the keychain connected to AEWallet.

    Request

    // No payload

    Success Response

    {
    "services": [
    {
    "derivationPath": String, // Derivation path
    "curve": String, // Curve
    "hashAlgo": String // Hash Algo
    }
    ]
    }

    keychain_derive_keypair

    Derive a keypair for the given service at the index given and get the public key

    Request

    {
    "serviceName": String, // Service name to identify the derivation path to use
    "index": Number, // Chain index to derive (optional - default to 0)
    "pathSuffix": String // Additional information to add to a service derivation path (optional - default to empty)
    }

    Success Response

    {
    "publicKey": String // Public key of the service at the index given
    }

    keychain_derive_address

    Derive an address for the given service at the index given

    Request

    {
    "serviceName": String, // Service name to identify the derivation path to use
    "index": Number, // Chain index to derive (optional - default to 0)
    "pathSuffix": String // Additional information to add to a service derivation path (optional - default to empty)
    }

    Success Response

    {
    "address": String // Address derived
    }

    get_current_account

    Gets the current account selected on AEWallet.

    Request

    // No payload

    Success Response

    {
    "shortName": String, // Account name
    "serviceName": String // Service name
    "genesisAddress": String, // Genesis address
    }

    sign_transactions

    Signs many transactions.

    Request

    {
    "serviceName": String, // Service name to use to sign the tx
    "pathSuffix": String, // Additional information to add to a service derivation path (optional)
    "description": String { // Readable description to explain the purpose of signing transactions (locale + description)
    "en": "Readable description in English",
    "fr": "Description lisible en français",
    },
    "transactions": [
    {
    "type": String, // Type of transaction
    "version": Number, // Version of the transaction (used for backward compatiblity)
    "data": Object // Transaction data zone (identity, keychain, smart contract, etc.)
    }
    ]
    }

    Success Response

    {
    "signedTxs": [
    {
    "address": String, // Address: hash of the new generated public key for the given transaction
    "previousPublicKey": String, // Previous generated public key matching the previous signature
    "previousSignature": String, // Signature from the previous public key
    "originSignature": String // Signature from the device which originated the transaction (used in the Proof of work)
    }
    ]
    }

    sign_payloads

    Signs many payloads.

    Request

    {
    "serviceName": String, // Service name to use to sign the payload
    "pathSuffix": String, // Additional information to add to a service derivation path (optional)
    "description": String { // Readable description to explain the purpose of signing payloads (locale + description)
    "en": "Readable description in English",
    "fr": "Description lisible en français",
    },
    "payloads": [
    {
    "payload": String, // Payload to sign
    "isHexa": boolean // Precise if the payload if in hexadecimal format
    }
    ]
    }

    Success Response

    {
    "signedPayloads": [
    {
    "signedPayload": String, // Signed payload
    }
    ]
    }

    In conclusion

    The communication protocol developed by Archethic allows an easy and secure interaction between dApps and the blockchain by delegating the communication to the user’s wallet. The integration methods proposed are simple and efficient, especially thanks to the “Archethic Wallet Client” (AWC) communication library which facilitates the use of the API. Developers can focus on developing their application without having to manage communication with the wallet and the blockchain. This cross-platform solution is therefore a wise choice for developers who want to write dApps that are compatible with different platforms. Finally, the availability of interfaces in the “libjs” library also facilitates integration for developers of applications written in JavaScript.

    Find more information at the following links.

    - +

    Communication with DApps

    In the blockchain ecosystem, decentralized applications (dApps) are becoming increasingly popular. To enable reliable and secure communication between these applications and the blockchain, Archethic has developed a communication protocol with its Archethic Wallet application. This protocol allows dApps to delegate secure communication with the blockchain to the wallet and to protect private information within the wallet (seed, private keys) without exposing it to the dApps.

    Point of view on usage

    When a dApp wants to perform a transaction that requires the use of private keys, it must call on the user’s wallet to protect this information and avoid unauthorized exposure. There are several ways to do this:

    The dApp can solicit the wallet in a “covert” manner without requiring the user’s intervention. For example, it can retrieve information about the current account or services available in the decentralized wallet.

    1

    The dApp can also listen to the wallet and adapt itself according to the actions performed in it. For example, a change in the current account in the wallet may result in a change in the current account in the dApp.

    2

    Finally, the dApp can solicit the wallet and ask the user to confirm an action. For example, this could be the signing of a transaction.

    3

    Technical point of view

    In order not to limit the platforms, Archethic has implemented two protocols to allow an easy integration of its wallet with dApps:

    • For Desktop and Web Client platforms, Archethic uses the Local RPC server protocol. A WebSocket server is provided by Archethic Wallet, using the JSON-RPC 2.0 protocol. DApp developers can use the Dart or JS coded communication libraries provided by Archethic to easily integrate this functionality into their dApp.
    • For Mobile platforms, Archethic uses DeepLinks via an HTTPS URL to enable communication between the dApp and the Archethic wallet.

    For the Dart and Flutter part, these protocols have been implemented within the “Archethic Wallet Client” (AWC) communication library, which therefore allows Dapps to communicate with the Archethic wallet through a unified interface.

    4

    AWC supports several API methods, including signing and sending transactions to the Archethic blockchain, retrieving the wallet’s endpoint URL, retrieving accounts available on the wallet, adding services to the keychain, and more.

    Using AWC allows Dapps developers to focus on developing their application rather than managing communication with the wallet and blockchain. The solution is also cross-platform (macOS, iOS, Android, Web, Windows, Linux), which facilitates the interaction between users and the blockchain and avoids forcing developers to develop their Dapps on a specific platform.

    It is worth noting that for the JS part, developers can find the interfaces directly in the “libjs” library of Archethic. This greatly facilitates the integration of the wallet with dApps written in JavaScript.

    5

    Available commands

    The wallet context related commands that do not require user confirmation in the wallet are:

    • Endpoint retrieval,
    • Recovery of user accounts,
    • Recovery of the current account,
    • Recovery of the services contained in the decentralized wallet,
    • Derivation of a key pair for a given service and index and recovery of the public key,
    • Deriving an address for a given service and index.

    The information that can be listened to is:

    • The change of balance or last address of the current account,
    • The change of the current account.

    The commands related to the wallet context requiring the user’s confirmation in the wallet are:

    • Signing and sending a transaction to the blockchain,
    • Signature of a list of transactions,
    • Adding a service in the decentralized wallet.

    RPC Methods

    There are two kinds of methods :

    • one time call
    • subscriptions.

    Subscriptions won't be available on Deeplink channel because of technical limitations.

    get_endpoint

    Gets the endpoint URL used on AEWallet.

    Request

    // no payload in request

    Success Response

    {
    "endpointUrl": String // Endpoint URL
    }

    refresh_current_account

    Request the wallet to refresh current account info

    Request

    // no payload in request

    Success Response

    // no response

    get_accounts

    Gets the accounts available on AEWallet.

    Request

    // No payload

    Success Response

    {
    "accounts": [
    {
    "shortName": String, // Account name
    "serviceName": String // Service name
    "genesisAddress": String, // Genesis address
    }
    ]
    }

    send_transaction

    Signs and sends a transaction.

    Request

    {
    "type": String, // Type of transaction
    "version": Number, // Version of the transaction (used for backward compatiblity)
    "data": Object, // Transaction data zone (identity, keychain, smart contract, etc.)
    "generateEncryptedSeedSC": bool // (Optional) : if true, add a encrypted (by storage nonce public key) seed in the transaction's ownerships to allow nodes to manage smart contract
    }

    Success Response

    {
    "transactionAddress": String, // Sent transaction address.
    "nbConfirmations": Number, // Number of received confirmations.
    "maxConfirmations": Number, // Max number of confirmations.
    }

    add_service

    Add a service in the keychain

    Request

    {
    "name": String, // Name of the service
    }

    Success Response

    {
    "transactionAddress": String, // Transaction address.
    "nbConfirmations": Number, // Number of received confirmations.
    "maxConfirmations": Number, // Max number of confirmations.
    }

    remove_service

    Remove a service from the keychain

    Request

    {
    "name": String, // Name of the service
    }

    Success Response

    {
    "transactionAddress": String, // Transaction address.
    "nbConfirmations": Number, // Number of received confirmations.
    "maxConfirmations": Number, // Max number of confirmations.
    }

    get_services_from_keychain

    Gets keychain's services from the keychain connected to AEWallet.

    Request

    // No payload

    Success Response

    {
    "services": [
    {
    "derivationPath": String, // Derivation path
    "curve": String, // Curve
    "hashAlgo": String // Hash Algo
    }
    ]
    }

    keychain_derive_keypair

    Derive a keypair for the given service at the index given and get the public key

    Request

    {
    "serviceName": String, // Service name to identify the derivation path to use
    "index": Number, // Chain index to derive (optional - default to 0)
    "pathSuffix": String // Additional information to add to a service derivation path (optional - default to empty)
    }

    Success Response

    {
    "publicKey": String // Public key of the service at the index given
    }

    keychain_derive_address

    Derive an address for the given service at the index given

    Request

    {
    "serviceName": String, // Service name to identify the derivation path to use
    "index": Number, // Chain index to derive (optional - default to 0)
    "pathSuffix": String // Additional information to add to a service derivation path (optional - default to empty)
    }

    Success Response

    {
    "address": String // Address derived
    }

    get_current_account

    Gets the current account selected on AEWallet.

    Request

    // No payload

    Success Response

    {
    "shortName": String, // Account name
    "serviceName": String // Service name
    "genesisAddress": String, // Genesis address
    }

    sign_transactions

    Signs many transactions.

    Request

    {
    "serviceName": String, // Service name to use to sign the tx
    "pathSuffix": String, // Additional information to add to a service derivation path (optional)
    "description": String { // Readable description to explain the purpose of signing transactions (locale + description)
    "en": "Readable description in English",
    "fr": "Description lisible en français",
    },
    "transactions": [
    {
    "type": String, // Type of transaction
    "version": Number, // Version of the transaction (used for backward compatiblity)
    "data": Object // Transaction data zone (identity, keychain, smart contract, etc.)
    }
    ]
    }

    Success Response

    {
    "signedTxs": [
    {
    "address": String, // Address: hash of the new generated public key for the given transaction
    "previousPublicKey": String, // Previous generated public key matching the previous signature
    "previousSignature": String, // Signature from the previous public key
    "originSignature": String // Signature from the device which originated the transaction (used in the Proof of work)
    }
    ]
    }

    sign_payloads

    Signs many payloads.

    Request

    {
    "serviceName": String, // Service name to use to sign the payload
    "pathSuffix": String, // Additional information to add to a service derivation path (optional)
    "description": String { // Readable description to explain the purpose of signing payloads (locale + description)
    "en": "Readable description in English",
    "fr": "Description lisible en français",
    },
    "payloads": [
    {
    "payload": String, // Payload to sign
    "isHexa": boolean // Precise if the payload if in hexadecimal format
    }
    ]
    }

    Success Response

    {
    "signedPayloads": [
    {
    "signedPayload": String, // Signed payload
    }
    ]
    }

    In conclusion

    The communication protocol developed by Archethic allows an easy and secure interaction between dApps and the blockchain by delegating the communication to the user’s wallet. The integration methods proposed are simple and efficient, especially thanks to the “Archethic Wallet Client” (AWC) communication library which facilitates the use of the API. Developers can focus on developing their application without having to manage communication with the wallet and the blockchain. This cross-platform solution is therefore a wise choice for developers who want to write dApps that are compatible with different platforms. Finally, the availability of interfaces in the “libjs” library also facilitates integration for developers of applications written in JavaScript.

    Find more information at the following links.

    + \ No newline at end of file diff --git a/participate/wallet/index.html b/participate/wallet/index.html index da19223ac..5e406f6e6 100644 --- a/participate/wallet/index.html +++ b/participate/wallet/index.html @@ -4,7 +4,7 @@ Archethic Wallet (aeWallet) | Archethic - + @@ -16,8 +16,8 @@ Finally, for OTP via Yubicloud: Yubico OTP is a simple yet strong authentication mechanism that is supported by all YubiKeys out of the box. Yubico OTP can be used as the second factor in a 2-factor authentication scheme or on its own, providing 1-factor authentication. YubiCloud is the name of Yubico’s web service for verifying OTPs. Before using YubiCloud, you need to get an API key from here - it is quick, free and helps us in preventing misuse of YubiCloud.

    Data store

    Archethic Wallet stores a set of information so that the application is functional in both online and offline mode.

    The first group of information represents the globally available user preferences:

    • First Launch: Allows to know if this is the first launch of the application in order to clear the keystore for iOS. Indeed, iOS key store is persistent, so if this is first launch then we will clear the keystore.
    • Authentification Method: Allows to know which authentication mode is used (PIN, password, YubiKey, biometrics).
    • Current Currency: Allows you to know what currency is used in the application.
    • Current Language: Allows you to know which language is used in the application.
    • Current Primary Setting: Allows to know if the currency displayed in priority is Fiat or Crypto.
    • Current Network: Allows to know if the wallet is connected to mainnet, testnet or to a local node whose endpoint is recorded in the following information.
    • Current Network Endpoint: Allows to know the address of the local node.
    • Current Theme: Allows to know which theme is used in the application.
    • Lock: Allows to know if it is necessary to authenticate at the launching of the application.
    • Lock Timeout: Allows to know after how long the application requires authentication at its launch if the user has left the application open to browse for another one for example.
    • Auto Lock Date: Contains the timestamp of the last autolock.
    • Privacy Mask: Hides or unhides the application when switching applications
    • Pin Pad Shuffle: Allows you to determine whether the PIN code keyboard should be shuffled when entering.
    • Last Interaction Date: Records the timestamp of the last interaction with the application to calculate the duration of inactivity.
    • Has Shown Root Warning: Finds out whether the user has been informed that the device has been rooted.
    • Show Balances: Allows you to determine if the financial information should be displayed.
    • Show Price Chart: Allows you to determine whether the graph and indicators of the UCO price chart should be displayed.
    • Price Chart Scale: Current scale of the price chart.
    • Active Vibrations: Allows to know if at each action, a small vibration is emitted on the mobiles.
    • Active Notifications: Allows to know if the notifications of reception of UCO are active or not.
    • Active RPC Server: Allows DApps connect to the wallet to get informations or send/sign transactions.
    • Language Seed: Allows to know if the seed phrase is composed of French or English words.
    • Current Version: Current version of the wallet app installed.
    • Main Screen Current Page: Current page selected on the main screen.
    • Current version: Current version of the installed application.

    The second group of information represents the sensitive elements related to security:

    • Seed: Allows to store the wallet seed needed to perform transactions on the Archethic blockchain.
    • PIN: Allows to store the PIN code in case this authentication method has been chosen.
    • Password: Allows to keep the password in case this authentication method has been chosen.
    • Yubicloud ID and API Key: Allows to keep the authentication information for the management of the OTP with the YubiKey in case this authentication method has been chosen. This information is stored securely.
    • Keychain secured informations: Keychain's informations like keychain's seed, keychain's version and the associated list of services.
    • And finally, a secure 256-bit (32 bytes) encryption key to secure data on the disk.
    info

    Remember that Archethic will never pass on your data to a third party or use your data in any other way than that offered by the application

    In the case of user preference data, we made the choice to store it in a local database Hive rather than the Flutter object SharedPreferences for performance reasons. All the information is available in this medium article. These data are stored in clear text because they are not sensitive.

    On the other hand, the information related to security management must be protected. Here again, Hive is used but the stored values are encrypted. Hive provides a helper function to generate a secure encryption key using the Fortuna random number generator. -The key is stored base64 encoded in a secure space via the FlutterSecureStorage library.

    Interactions with the Archethic blockchain

    Based on the Archethic JS SDK, a SDK has been developed in dart and is maintained by the Archethic teams in order to offer internal or community-developed Flutter DApps to interact with the Archethic Blockchain.

    This open-source SDK "archethic_lib_dart", available on GitHub, can be added as dependencies in Dart or Flutter projects via the Flutter libraries and packages sharing site Pub.dev.

    Setup

    Pre-requisites

    • Flutter 3.24+
    • Dart 3.5+

    Instructions

    • Download the repo into a folder
    • Goto the folder and from terminal run flutter pub get to get the packages
    • Once packages are installed
      • You can build and run the program for emulator from VSCode Flutter SDK Tools
      • You can build for android emulator if already installed.
    • Once the packages and installed and application is built
    • Run the program with flutter run
    - +The key is stored base64 encoded in a secure space via the FlutterSecureStorage library.

    Interactions with the Archethic blockchain

    Based on the Archethic JS SDK, a SDK has been developed in dart and is maintained by the Archethic teams in order to offer internal or community-developed Flutter DApps to interact with the Archethic Blockchain.

    This open-source SDK "archethic_lib_dart", available on GitHub, can be added as dependencies in Dart or Flutter projects via the Flutter libraries and packages sharing site Pub.dev.

    Setup

    Pre-requisites

    • Flutter 3.24+
    • Dart 3.5+

    Instructions

    • Download the repo into a folder
    • Goto the folder and from terminal run flutter pub get to get the packages
    • Once packages are installed
      • You can build and run the program for emulator from VSCode Flutter SDK Tools
      • You can build for android emulator if already installed.
    • Once the packages and installed and application is built
    • Run the program with flutter run
    + \ No newline at end of file diff --git a/schema/index.html b/schema/index.html index f90b6bbbc..2c19491a7 100644 --- a/schema/index.html +++ b/schema/index.html @@ -4,13 +4,13 @@ Schema Documentation | Archethic - +
    -

    Schema Documentation

    This documentation has been automatically generated from the GraphQL schema.

    Use the docs in the sidebar to find out how to use the schema:

    • Allowed operations: queries and mutations.
    • Schema-defined types: scalars, objects, enums, interfaces, unions, and input objects.
    Generated on 6/20/2024, 4:15:30 PM.
    - +

    Schema Documentation

    This documentation has been automatically generated from the GraphQL schema.

    Use the docs in the sidebar to find out how to use the schema:

    • Allowed operations: queries and mutations.
    • Schema-defined types: scalars, objects, enums, interfaces, unions, and input objects.
    Generated on 6/20/2024, 4:15:30 PM.
    + \ No newline at end of file diff --git a/search-index-docs-default-current.json b/search-index-docs-default-current.json index 4ecea991c..9eb16abf4 100644 --- a/search-index-docs-default-current.json +++ b/search-index-docs-default-current.json @@ -1 +1 @@ -{"documents":[{"id":10,"pageTitle":"include","sectionTitle":"include","sectionRoute":"/build/api/schema/directives/include","type":"docs"},{"id":11,"pageTitle":"include","sectionTitle":"Arguments","sectionRoute":"/build/api/schema/directives/include#arguments","type":"docs"},{"id":5,"pageTitle":"skip","sectionTitle":"skip","sectionRoute":"/build/api/schema/directives/skip","type":"docs"},{"id":6,"pageTitle":"skip","sectionTitle":"Arguments","sectionRoute":"/build/api/schema/directives/skip#arguments","type":"docs"},{"id":2,"pageTitle":"ErrorContext","sectionTitle":"ErrorContext","sectionRoute":"/build/api/schema/enums/error-context","type":"docs"},{"id":3,"pageTitle":"ErrorContext","sectionTitle":"Values","sectionRoute":"/build/api/schema/enums/error-context#values","type":"docs"},{"id":4,"pageTitle":"ErrorContext","sectionTitle":"Member of","sectionRoute":"/build/api/schema/enums/error-context#member-of","type":"docs"},{"id":7,"pageTitle":"SortOrder","sectionTitle":"SortOrder","sectionRoute":"/build/api/schema/enums/sort-order","type":"docs"},{"id":8,"pageTitle":"SortOrder","sectionTitle":"Values","sectionRoute":"/build/api/schema/enums/sort-order#values","type":"docs"},{"id":9,"pageTitle":"SortOrder","sectionTitle":"Member of","sectionRoute":"/build/api/schema/enums/sort-order#member-of","type":"docs"},{"id":12,"pageTitle":"AuthorizedKey","sectionTitle":"AuthorizedKey","sectionRoute":"/build/api/schema/objects/authorized-key","type":"docs"},{"id":13,"pageTitle":"AuthorizedKey","sectionTitle":"Fields","sectionRoute":"/build/api/schema/objects/authorized-key#fields","type":"docs"},{"id":14,"pageTitle":"AuthorizedKey","sectionTitle":"Member of","sectionRoute":"/build/api/schema/objects/authorized-key#member-of","type":"docs"},{"id":24,"pageTitle":"Balance","sectionTitle":"Balance","sectionRoute":"/build/api/schema/objects/balance","type":"docs"},{"id":25,"pageTitle":"Balance","sectionTitle":"Fields","sectionRoute":"/build/api/schema/objects/balance#fields","type":"docs"},{"id":26,"pageTitle":"Balance","sectionTitle":"Returned by","sectionRoute":"/build/api/schema/objects/balance#returned-by","type":"docs"},{"id":27,"pageTitle":"Balance","sectionTitle":"Member of","sectionRoute":"/build/api/schema/objects/balance#member-of","type":"docs"},{"id":15,"pageTitle":"BeaconChainSummary","sectionTitle":"BeaconChainSummary","sectionRoute":"/build/api/schema/objects/beacon-chain-summary","type":"docs"},{"id":16,"pageTitle":"BeaconChainSummary","sectionTitle":"Fields","sectionRoute":"/build/api/schema/objects/beacon-chain-summary#fields","type":"docs"},{"id":17,"pageTitle":"BeaconChainSummary","sectionTitle":"Returned by","sectionRoute":"/build/api/schema/objects/beacon-chain-summary#returned-by","type":"docs"},{"id":18,"pageTitle":"ConsumedInputs","sectionTitle":"ConsumedInputs","sectionRoute":"/build/api/schema/objects/consumed-inputs","type":"docs"},{"id":19,"pageTitle":"ConsumedInputs","sectionTitle":"Fields","sectionRoute":"/build/api/schema/objects/consumed-inputs#fields","type":"docs"},{"id":20,"pageTitle":"ConsumedInputs","sectionTitle":"Member of","sectionRoute":"/build/api/schema/objects/consumed-inputs#member-of","type":"docs"},{"id":21,"pageTitle":"CrossValidationStamp","sectionTitle":"CrossValidationStamp","sectionRoute":"/build/api/schema/objects/cross-validation-stamp","type":"docs"},{"id":22,"pageTitle":"CrossValidationStamp","sectionTitle":"Fields","sectionRoute":"/build/api/schema/objects/cross-validation-stamp#fields","type":"docs"},{"id":23,"pageTitle":"CrossValidationStamp","sectionTitle":"Member of","sectionRoute":"/build/api/schema/objects/cross-validation-stamp#member-of","type":"docs"},{"id":28,"pageTitle":"Data","sectionTitle":"Data","sectionRoute":"/build/api/schema/objects/data","type":"docs"},{"id":29,"pageTitle":"Data","sectionTitle":"Fields","sectionRoute":"/build/api/schema/objects/data#fields","type":"docs"},{"id":30,"pageTitle":"Data","sectionTitle":"Member of","sectionRoute":"/build/api/schema/objects/data#member-of","type":"docs"},{"id":34,"pageTitle":"Endpoint","sectionTitle":"Endpoint","sectionRoute":"/build/api/schema/objects/endpoint","type":"docs"},{"id":35,"pageTitle":"Endpoint","sectionTitle":"Fields","sectionRoute":"/build/api/schema/objects/endpoint#fields","type":"docs"},{"id":36,"pageTitle":"Endpoint","sectionTitle":"Returned by","sectionRoute":"/build/api/schema/objects/endpoint#returned-by","type":"docs"},{"id":31,"pageTitle":"ErrorDetails","sectionTitle":"ErrorDetails","sectionRoute":"/build/api/schema/objects/error-details","type":"docs"},{"id":32,"pageTitle":"ErrorDetails","sectionTitle":"Fields","sectionRoute":"/build/api/schema/objects/error-details#fields","type":"docs"},{"id":33,"pageTitle":"ErrorDetails","sectionTitle":"Member of","sectionRoute":"/build/api/schema/objects/error-details#member-of","type":"docs"},{"id":37,"pageTitle":"Ledger","sectionTitle":"Ledger","sectionRoute":"/build/api/schema/objects/ledger","type":"docs"},{"id":38,"pageTitle":"Ledger","sectionTitle":"Fields","sectionRoute":"/build/api/schema/objects/ledger#fields","type":"docs"},{"id":39,"pageTitle":"Ledger","sectionTitle":"Member of","sectionRoute":"/build/api/schema/objects/ledger#member-of","type":"docs"},{"id":40,"pageTitle":"LedgerOperations","sectionTitle":"LedgerOperations","sectionRoute":"/build/api/schema/objects/ledger-operations","type":"docs"},{"id":41,"pageTitle":"LedgerOperations","sectionTitle":"Fields","sectionRoute":"/build/api/schema/objects/ledger-operations#fields","type":"docs"},{"id":42,"pageTitle":"LedgerOperations","sectionTitle":"Member of","sectionRoute":"/build/api/schema/objects/ledger-operations#member-of","type":"docs"},{"id":43,"pageTitle":"Node","sectionTitle":"Node","sectionRoute":"/build/api/schema/objects/node","type":"docs"},{"id":44,"pageTitle":"Node","sectionTitle":"Fields","sectionRoute":"/build/api/schema/objects/node#fields","type":"docs"},{"id":45,"pageTitle":"Node","sectionTitle":"Returned by","sectionRoute":"/build/api/schema/objects/node#returned-by","type":"docs"},{"id":46,"pageTitle":"OracleData","sectionTitle":"OracleData","sectionRoute":"/build/api/schema/objects/oracle-data","type":"docs"},{"id":47,"pageTitle":"OracleData","sectionTitle":"Fields","sectionRoute":"/build/api/schema/objects/oracle-data#fields","type":"docs"},{"id":48,"pageTitle":"OracleData","sectionTitle":"Returned by","sectionRoute":"/build/api/schema/objects/oracle-data#returned-by","type":"docs"},{"id":49,"pageTitle":"OracleServices","sectionTitle":"OracleServices","sectionRoute":"/build/api/schema/objects/oracle-services","type":"docs"},{"id":50,"pageTitle":"OracleServices","sectionTitle":"Fields","sectionRoute":"/build/api/schema/objects/oracle-services#fields","type":"docs"},{"id":51,"pageTitle":"OracleServices","sectionTitle":"Member of","sectionRoute":"/build/api/schema/objects/oracle-services#member-of","type":"docs"},{"id":52,"pageTitle":"Ownership","sectionTitle":"Ownership","sectionRoute":"/build/api/schema/objects/ownership","type":"docs"},{"id":53,"pageTitle":"Ownership","sectionTitle":"Fields","sectionRoute":"/build/api/schema/objects/ownership#fields","type":"docs"},{"id":54,"pageTitle":"Ownership","sectionTitle":"Member of","sectionRoute":"/build/api/schema/objects/ownership#member-of","type":"docs"},{"id":55,"pageTitle":"Recipient","sectionTitle":"Recipient","sectionRoute":"/build/api/schema/objects/recipient","type":"docs"},{"id":56,"pageTitle":"Recipient","sectionTitle":"Fields","sectionRoute":"/build/api/schema/objects/recipient#fields","type":"docs"},{"id":57,"pageTitle":"Recipient","sectionTitle":"Member of","sectionRoute":"/build/api/schema/objects/recipient#member-of","type":"docs"},{"id":61,"pageTitle":"SharedSecrets","sectionTitle":"SharedSecrets","sectionRoute":"/build/api/schema/objects/shared-secrets","type":"docs"},{"id":62,"pageTitle":"SharedSecrets","sectionTitle":"Fields","sectionRoute":"/build/api/schema/objects/shared-secrets#fields","type":"docs"},{"id":63,"pageTitle":"SharedSecrets","sectionTitle":"Returned by","sectionRoute":"/build/api/schema/objects/shared-secrets#returned-by","type":"docs"},{"id":58,"pageTitle":"Token","sectionTitle":"Token","sectionRoute":"/build/api/schema/objects/token","type":"docs"},{"id":59,"pageTitle":"Token","sectionTitle":"Fields","sectionRoute":"/build/api/schema/objects/token#fields","type":"docs"},{"id":60,"pageTitle":"Token","sectionTitle":"Returned by","sectionRoute":"/build/api/schema/objects/token#returned-by","type":"docs"},{"id":64,"pageTitle":"TokenBalance","sectionTitle":"TokenBalance","sectionRoute":"/build/api/schema/objects/token-balance","type":"docs"},{"id":65,"pageTitle":"TokenBalance","sectionTitle":"Fields","sectionRoute":"/build/api/schema/objects/token-balance#fields","type":"docs"},{"id":66,"pageTitle":"TokenBalance","sectionTitle":"Member of","sectionRoute":"/build/api/schema/objects/token-balance#member-of","type":"docs"},{"id":67,"pageTitle":"TokenLedger","sectionTitle":"TokenLedger","sectionRoute":"/build/api/schema/objects/token-ledger","type":"docs"},{"id":68,"pageTitle":"TokenLedger","sectionTitle":"Fields","sectionRoute":"/build/api/schema/objects/token-ledger#fields","type":"docs"},{"id":69,"pageTitle":"TokenLedger","sectionTitle":"Member of","sectionRoute":"/build/api/schema/objects/token-ledger#member-of","type":"docs"},{"id":70,"pageTitle":"TokenTransfer","sectionTitle":"TokenTransfer","sectionRoute":"/build/api/schema/objects/token-transfer","type":"docs"},{"id":71,"pageTitle":"TokenTransfer","sectionTitle":"Fields","sectionRoute":"/build/api/schema/objects/token-transfer#fields","type":"docs"},{"id":72,"pageTitle":"TokenTransfer","sectionTitle":"Member of","sectionRoute":"/build/api/schema/objects/token-transfer#member-of","type":"docs"},{"id":73,"pageTitle":"Transaction","sectionTitle":"Transaction","sectionRoute":"/build/api/schema/objects/transaction","type":"docs"},{"id":74,"pageTitle":"Transaction","sectionTitle":"Fields","sectionRoute":"/build/api/schema/objects/transaction#fields","type":"docs"},{"id":75,"pageTitle":"Transaction","sectionTitle":"Returned by","sectionRoute":"/build/api/schema/objects/transaction#returned-by","type":"docs"},{"id":76,"pageTitle":"TransactionAttestation","sectionTitle":"TransactionAttestation","sectionRoute":"/build/api/schema/objects/transaction-attestation","type":"docs"},{"id":77,"pageTitle":"TransactionAttestation","sectionTitle":"Fields","sectionRoute":"/build/api/schema/objects/transaction-attestation#fields","type":"docs"},{"id":78,"pageTitle":"TransactionAttestation","sectionTitle":"Returned by","sectionRoute":"/build/api/schema/objects/transaction-attestation#returned-by","type":"docs"},{"id":79,"pageTitle":"TransactionError","sectionTitle":"TransactionError","sectionRoute":"/build/api/schema/objects/transaction-error","type":"docs"},{"id":80,"pageTitle":"TransactionError","sectionTitle":"Fields","sectionRoute":"/build/api/schema/objects/transaction-error#fields","type":"docs"},{"id":81,"pageTitle":"TransactionError","sectionTitle":"Returned by","sectionRoute":"/build/api/schema/objects/transaction-error#returned-by","type":"docs"},{"id":82,"pageTitle":"TransactionInput","sectionTitle":"TransactionInput","sectionRoute":"/build/api/schema/objects/transaction-input","type":"docs"},{"id":83,"pageTitle":"TransactionInput","sectionTitle":"Fields","sectionRoute":"/build/api/schema/objects/transaction-input#fields","type":"docs"},{"id":84,"pageTitle":"TransactionInput","sectionTitle":"Returned by","sectionRoute":"/build/api/schema/objects/transaction-input#returned-by","type":"docs"},{"id":85,"pageTitle":"TransactionInput","sectionTitle":"Member of","sectionRoute":"/build/api/schema/objects/transaction-input#member-of","type":"docs"},{"id":86,"pageTitle":"TransactionMovement","sectionTitle":"TransactionMovement","sectionRoute":"/build/api/schema/objects/transaction-movement","type":"docs"},{"id":87,"pageTitle":"TransactionMovement","sectionTitle":"Fields","sectionRoute":"/build/api/schema/objects/transaction-movement#fields","type":"docs"},{"id":88,"pageTitle":"TransactionMovement","sectionTitle":"Member of","sectionRoute":"/build/api/schema/objects/transaction-movement#member-of","type":"docs"},{"id":89,"pageTitle":"TransactionSummary","sectionTitle":"TransactionSummary","sectionRoute":"/build/api/schema/objects/transaction-summary","type":"docs"},{"id":90,"pageTitle":"TransactionSummary","sectionTitle":"Fields","sectionRoute":"/build/api/schema/objects/transaction-summary#fields","type":"docs"},{"id":91,"pageTitle":"TransactionSummary","sectionTitle":"Member of","sectionRoute":"/build/api/schema/objects/transaction-summary#member-of","type":"docs"},{"id":92,"pageTitle":"UcoData","sectionTitle":"UcoData","sectionRoute":"/build/api/schema/objects/uco-data","type":"docs"},{"id":93,"pageTitle":"UcoData","sectionTitle":"Fields","sectionRoute":"/build/api/schema/objects/uco-data#fields","type":"docs"},{"id":94,"pageTitle":"UcoData","sectionTitle":"Member of","sectionRoute":"/build/api/schema/objects/uco-data#member-of","type":"docs"},{"id":95,"pageTitle":"UcoLedger","sectionTitle":"UcoLedger","sectionRoute":"/build/api/schema/objects/uco-ledger","type":"docs"},{"id":96,"pageTitle":"UcoLedger","sectionTitle":"Fields","sectionRoute":"/build/api/schema/objects/uco-ledger#fields","type":"docs"},{"id":97,"pageTitle":"UcoLedger","sectionTitle":"Member of","sectionRoute":"/build/api/schema/objects/uco-ledger#member-of","type":"docs"},{"id":102,"pageTitle":"UcoTransfer","sectionTitle":"UcoTransfer","sectionRoute":"/build/api/schema/objects/uco-transfer","type":"docs"},{"id":103,"pageTitle":"UcoTransfer","sectionTitle":"Fields","sectionRoute":"/build/api/schema/objects/uco-transfer#fields","type":"docs"},{"id":104,"pageTitle":"UcoTransfer","sectionTitle":"Member of","sectionRoute":"/build/api/schema/objects/uco-transfer#member-of","type":"docs"},{"id":98,"pageTitle":"UnspentOutput","sectionTitle":"UnspentOutput","sectionRoute":"/build/api/schema/objects/unspent-output","type":"docs"},{"id":99,"pageTitle":"UnspentOutput","sectionTitle":"Fields","sectionRoute":"/build/api/schema/objects/unspent-output#fields","type":"docs"},{"id":100,"pageTitle":"UnspentOutput","sectionTitle":"Returned by","sectionRoute":"/build/api/schema/objects/unspent-output#returned-by","type":"docs"},{"id":101,"pageTitle":"UnspentOutput","sectionTitle":"Member of","sectionRoute":"/build/api/schema/objects/unspent-output#member-of","type":"docs"},{"id":108,"pageTitle":"ValidationStamp","sectionTitle":"ValidationStamp","sectionRoute":"/build/api/schema/objects/validation-stamp","type":"docs"},{"id":109,"pageTitle":"ValidationStamp","sectionTitle":"Fields","sectionRoute":"/build/api/schema/objects/validation-stamp#fields","type":"docs"},{"id":110,"pageTitle":"ValidationStamp","sectionTitle":"Member of","sectionRoute":"/build/api/schema/objects/validation-stamp#member-of","type":"docs"},{"id":105,"pageTitle":"Version","sectionTitle":"Version","sectionRoute":"/build/api/schema/objects/version","type":"docs"},{"id":106,"pageTitle":"Version","sectionTitle":"Fields","sectionRoute":"/build/api/schema/objects/version#fields","type":"docs"},{"id":107,"pageTitle":"Version","sectionTitle":"Returned by","sectionRoute":"/build/api/schema/objects/version#returned-by","type":"docs"},{"id":114,"pageTitle":"balance","sectionTitle":"balance","sectionRoute":"/build/api/schema/queries/balance","type":"docs"},{"id":115,"pageTitle":"balance","sectionTitle":"Arguments","sectionRoute":"/build/api/schema/queries/balance#arguments","type":"docs"},{"id":116,"pageTitle":"balance","sectionTitle":"Type","sectionRoute":"/build/api/schema/queries/balance#type","type":"docs"},{"id":111,"pageTitle":"beaconChainSummary","sectionTitle":"beaconChainSummary","sectionRoute":"/build/api/schema/queries/beacon-chain-summary","type":"docs"},{"id":112,"pageTitle":"beaconChainSummary","sectionTitle":"Arguments","sectionRoute":"/build/api/schema/queries/beacon-chain-summary#arguments","type":"docs"},{"id":113,"pageTitle":"beaconChainSummary","sectionTitle":"Type","sectionRoute":"/build/api/schema/queries/beacon-chain-summary#type","type":"docs"},{"id":123,"pageTitle":"chainUnspentOutputs","sectionTitle":"chainUnspentOutputs","sectionRoute":"/build/api/schema/queries/chain-unspent-outputs","type":"docs"},{"id":124,"pageTitle":"chainUnspentOutputs","sectionTitle":"Arguments","sectionRoute":"/build/api/schema/queries/chain-unspent-outputs#arguments","type":"docs"},{"id":125,"pageTitle":"chainUnspentOutputs","sectionTitle":"Type","sectionRoute":"/build/api/schema/queries/chain-unspent-outputs#type","type":"docs"},{"id":117,"pageTitle":"genesisAddress","sectionTitle":"genesisAddress","sectionRoute":"/build/api/schema/queries/genesis-address","type":"docs"},{"id":118,"pageTitle":"genesisAddress","sectionTitle":"Arguments","sectionRoute":"/build/api/schema/queries/genesis-address#arguments","type":"docs"},{"id":119,"pageTitle":"genesisAddress","sectionTitle":"Type","sectionRoute":"/build/api/schema/queries/genesis-address#type","type":"docs"},{"id":120,"pageTitle":"lastTransaction","sectionTitle":"lastTransaction","sectionRoute":"/build/api/schema/queries/last-transaction","type":"docs"},{"id":121,"pageTitle":"lastTransaction","sectionTitle":"Arguments","sectionRoute":"/build/api/schema/queries/last-transaction#arguments","type":"docs"},{"id":122,"pageTitle":"lastTransaction","sectionTitle":"Type","sectionRoute":"/build/api/schema/queries/last-transaction#type","type":"docs"},{"id":126,"pageTitle":"nearestEndpoints","sectionTitle":"nearestEndpoints","sectionRoute":"/build/api/schema/queries/nearest-endpoints","type":"docs"},{"id":127,"pageTitle":"nearestEndpoints","sectionTitle":"Type","sectionRoute":"/build/api/schema/queries/nearest-endpoints#type","type":"docs"},{"id":128,"pageTitle":"networkTransactions","sectionTitle":"networkTransactions","sectionRoute":"/build/api/schema/queries/network-transactions","type":"docs"},{"id":129,"pageTitle":"networkTransactions","sectionTitle":"Arguments","sectionRoute":"/build/api/schema/queries/network-transactions#arguments","type":"docs"},{"id":130,"pageTitle":"networkTransactions","sectionTitle":"Type","sectionRoute":"/build/api/schema/queries/network-transactions#type","type":"docs"},{"id":134,"pageTitle":"nodes","sectionTitle":"nodes","sectionRoute":"/build/api/schema/queries/nodes","type":"docs"},{"id":135,"pageTitle":"nodes","sectionTitle":"Type","sectionRoute":"/build/api/schema/queries/nodes#type","type":"docs"},{"id":131,"pageTitle":"oracleData","sectionTitle":"oracleData","sectionRoute":"/build/api/schema/queries/oracle-data","type":"docs"},{"id":132,"pageTitle":"oracleData","sectionTitle":"Arguments","sectionRoute":"/build/api/schema/queries/oracle-data#arguments","type":"docs"},{"id":133,"pageTitle":"oracleData","sectionTitle":"Type","sectionRoute":"/build/api/schema/queries/oracle-data#type","type":"docs"},{"id":136,"pageTitle":"sharedSecrets","sectionTitle":"sharedSecrets","sectionRoute":"/build/api/schema/queries/shared-secrets","type":"docs"},{"id":137,"pageTitle":"sharedSecrets","sectionTitle":"Type","sectionRoute":"/build/api/schema/queries/shared-secrets#type","type":"docs"},{"id":141,"pageTitle":"token","sectionTitle":"token","sectionRoute":"/build/api/schema/queries/token","type":"docs"},{"id":142,"pageTitle":"token","sectionTitle":"Arguments","sectionRoute":"/build/api/schema/queries/token#arguments","type":"docs"},{"id":143,"pageTitle":"token","sectionTitle":"Type","sectionRoute":"/build/api/schema/queries/token#type","type":"docs"},{"id":138,"pageTitle":"transaction","sectionTitle":"transaction","sectionRoute":"/build/api/schema/queries/transaction","type":"docs"},{"id":139,"pageTitle":"transaction","sectionTitle":"Arguments","sectionRoute":"/build/api/schema/queries/transaction#arguments","type":"docs"},{"id":140,"pageTitle":"transaction","sectionTitle":"Type","sectionRoute":"/build/api/schema/queries/transaction#type","type":"docs"},{"id":144,"pageTitle":"transactionChain","sectionTitle":"transactionChain","sectionRoute":"/build/api/schema/queries/transaction-chain","type":"docs"},{"id":145,"pageTitle":"transactionChain","sectionTitle":"Arguments","sectionRoute":"/build/api/schema/queries/transaction-chain#arguments","type":"docs"},{"id":146,"pageTitle":"transactionChain","sectionTitle":"Type","sectionRoute":"/build/api/schema/queries/transaction-chain#type","type":"docs"},{"id":147,"pageTitle":"transactionInputs","sectionTitle":"transactionInputs","sectionRoute":"/build/api/schema/queries/transaction-inputs","type":"docs"},{"id":148,"pageTitle":"transactionInputs","sectionTitle":"Arguments","sectionRoute":"/build/api/schema/queries/transaction-inputs#arguments","type":"docs"},{"id":149,"pageTitle":"transactionInputs","sectionTitle":"Type","sectionRoute":"/build/api/schema/queries/transaction-inputs#type","type":"docs"},{"id":150,"pageTitle":"transactions","sectionTitle":"transactions","sectionRoute":"/build/api/schema/queries/transactions","type":"docs"},{"id":151,"pageTitle":"transactions","sectionTitle":"Arguments","sectionRoute":"/build/api/schema/queries/transactions#arguments","type":"docs"},{"id":152,"pageTitle":"transactions","sectionTitle":"Type","sectionRoute":"/build/api/schema/queries/transactions#type","type":"docs"},{"id":153,"pageTitle":"version","sectionTitle":"version","sectionRoute":"/build/api/schema/queries/version","type":"docs"},{"id":154,"pageTitle":"version","sectionTitle":"Type","sectionRoute":"/build/api/schema/queries/version#type","type":"docs"},{"id":155,"pageTitle":"Address","sectionTitle":"Address","sectionRoute":"/build/api/schema/scalars/address","type":"docs"},{"id":156,"pageTitle":"Address","sectionTitle":"Returned by","sectionRoute":"/build/api/schema/scalars/address#returned-by","type":"docs"},{"id":157,"pageTitle":"Address","sectionTitle":"Member of","sectionRoute":"/build/api/schema/scalars/address#member-of","type":"docs"},{"id":158,"pageTitle":"Boolean","sectionTitle":"Boolean","sectionRoute":"/build/api/schema/scalars/boolean","type":"docs"},{"id":159,"pageTitle":"Boolean","sectionTitle":"Member of","sectionRoute":"/build/api/schema/scalars/boolean#member-of","type":"docs"},{"id":160,"pageTitle":"Content","sectionTitle":"Content","sectionRoute":"/build/api/schema/scalars/content","type":"docs"},{"id":161,"pageTitle":"Content","sectionTitle":"Member of","sectionRoute":"/build/api/schema/scalars/content#member-of","type":"docs"},{"id":162,"pageTitle":"ErrorData","sectionTitle":"ErrorData","sectionRoute":"/build/api/schema/scalars/error-data","type":"docs"},{"id":163,"pageTitle":"ErrorData","sectionTitle":"Member of","sectionRoute":"/build/api/schema/scalars/error-data#member-of","type":"docs"},{"id":168,"pageTitle":"Float","sectionTitle":"Float","sectionRoute":"/build/api/schema/scalars/float","type":"docs"},{"id":169,"pageTitle":"Float","sectionTitle":"Member of","sectionRoute":"/build/api/schema/scalars/float#member-of","type":"docs"},{"id":164,"pageTitle":"Hash","sectionTitle":"Hash","sectionRoute":"/build/api/schema/scalars/hash","type":"docs"},{"id":165,"pageTitle":"Hash","sectionTitle":"Member of","sectionRoute":"/build/api/schema/scalars/hash#member-of","type":"docs"},{"id":166,"pageTitle":"Hex","sectionTitle":"Hex","sectionRoute":"/build/api/schema/scalars/hex","type":"docs"},{"id":167,"pageTitle":"Hex","sectionTitle":"Member of","sectionRoute":"/build/api/schema/scalars/hex#member-of","type":"docs"},{"id":170,"pageTitle":"Int","sectionTitle":"Int","sectionRoute":"/build/api/schema/scalars/int","type":"docs"},{"id":171,"pageTitle":"Int","sectionTitle":"Member of","sectionRoute":"/build/api/schema/scalars/int#member-of","type":"docs"},{"id":172,"pageTitle":"NonNegInteger","sectionTitle":"NonNegInteger","sectionRoute":"/build/api/schema/scalars/non-neg-integer","type":"docs"},{"id":173,"pageTitle":"NonNegInteger","sectionTitle":"Member of","sectionRoute":"/build/api/schema/scalars/non-neg-integer#member-of","type":"docs"},{"id":174,"pageTitle":"P2pAvailabilities","sectionTitle":"P2pAvailabilities","sectionRoute":"/build/api/schema/scalars/p2-p-availabilities","type":"docs"},{"id":175,"pageTitle":"P2pAvailabilities","sectionTitle":"Member of","sectionRoute":"/build/api/schema/scalars/p2-p-availabilities#member-of","type":"docs"},{"id":178,"pageTitle":"PosInteger","sectionTitle":"PosInteger","sectionRoute":"/build/api/schema/scalars/pos-integer","type":"docs"},{"id":179,"pageTitle":"PosInteger","sectionTitle":"Member of","sectionRoute":"/build/api/schema/scalars/pos-integer#member-of","type":"docs"},{"id":176,"pageTitle":"PublicKey","sectionTitle":"PublicKey","sectionRoute":"/build/api/schema/scalars/public-key","type":"docs"},{"id":177,"pageTitle":"PublicKey","sectionTitle":"Member of","sectionRoute":"/build/api/schema/scalars/public-key#member-of","type":"docs"},{"id":180,"pageTitle":"RecipientArgs","sectionTitle":"RecipientArgs","sectionRoute":"/build/api/schema/scalars/recipient-args","type":"docs"},{"id":181,"pageTitle":"RecipientArgs","sectionTitle":"Member of","sectionRoute":"/build/api/schema/scalars/recipient-args#member-of","type":"docs"},{"id":182,"pageTitle":"Sha256Hash","sectionTitle":"Sha256Hash","sectionRoute":"/build/api/schema/scalars/sha-256-hash","type":"docs"},{"id":183,"pageTitle":"Sha256Hash","sectionTitle":"Member of","sectionRoute":"/build/api/schema/scalars/sha-256-hash#member-of","type":"docs"},{"id":184,"pageTitle":"State","sectionTitle":"State","sectionRoute":"/build/api/schema/scalars/state","type":"docs"},{"id":185,"pageTitle":"State","sectionTitle":"Member of","sectionRoute":"/build/api/schema/scalars/state#member-of","type":"docs"},{"id":186,"pageTitle":"String","sectionTitle":"String","sectionRoute":"/build/api/schema/scalars/string","type":"docs"},{"id":187,"pageTitle":"String","sectionTitle":"Member of","sectionRoute":"/build/api/schema/scalars/string#member-of","type":"docs"},{"id":188,"pageTitle":"Timestamp","sectionTitle":"Timestamp","sectionRoute":"/build/api/schema/scalars/timestamp","type":"docs"},{"id":189,"pageTitle":"Timestamp","sectionTitle":"Member of","sectionRoute":"/build/api/schema/scalars/timestamp#member-of","type":"docs"},{"id":190,"pageTitle":"TokenProperties","sectionTitle":"TokenProperties","sectionRoute":"/build/api/schema/scalars/token-properties","type":"docs"},{"id":191,"pageTitle":"TokenProperties","sectionTitle":"Member of","sectionRoute":"/build/api/schema/scalars/token-properties#member-of","type":"docs"},{"id":192,"pageTitle":"TransactionType","sectionTitle":"TransactionType","sectionRoute":"/build/api/schema/scalars/transaction-type","type":"docs"},{"id":193,"pageTitle":"TransactionType","sectionTitle":"Member of","sectionRoute":"/build/api/schema/scalars/transaction-type#member-of","type":"docs"},{"id":194,"pageTitle":"VersionedHash","sectionTitle":"VersionedHash","sectionRoute":"/build/api/schema/scalars/versioned-hash","type":"docs"},{"id":195,"pageTitle":"VersionedHash","sectionTitle":"Member of","sectionRoute":"/build/api/schema/scalars/versioned-hash#member-of","type":"docs"},{"id":196,"pageTitle":"oracleUpdate","sectionTitle":"oracleUpdate","sectionRoute":"/build/api/schema/subscriptions/oracle-update","type":"docs"},{"id":197,"pageTitle":"oracleUpdate","sectionTitle":"Type","sectionRoute":"/build/api/schema/subscriptions/oracle-update#type","type":"docs"},{"id":201,"pageTitle":"transactionConfirmed","sectionTitle":"transactionConfirmed","sectionRoute":"/build/api/schema/subscriptions/transaction-confirmed","type":"docs"},{"id":202,"pageTitle":"transactionConfirmed","sectionTitle":"Arguments","sectionRoute":"/build/api/schema/subscriptions/transaction-confirmed#arguments","type":"docs"},{"id":203,"pageTitle":"transactionConfirmed","sectionTitle":"Type","sectionRoute":"/build/api/schema/subscriptions/transaction-confirmed#type","type":"docs"},{"id":198,"pageTitle":"transactionError","sectionTitle":"transactionError","sectionRoute":"/build/api/schema/subscriptions/transaction-error","type":"docs"},{"id":199,"pageTitle":"transactionError","sectionTitle":"Arguments","sectionRoute":"/build/api/schema/subscriptions/transaction-error#arguments","type":"docs"},{"id":200,"pageTitle":"transactionError","sectionTitle":"Type","sectionRoute":"/build/api/schema/subscriptions/transaction-error#type","type":"docs"},{"id":204,"pageTitle":"","sectionTitle":"Introduction","sectionRoute":"/build/clients/ledger-wallet/","type":"docs"},{"id":205,"pageTitle":"","sectionTitle":"Synopsis","sectionRoute":"/build/clients/ledger-wallet/#synopsis","type":"docs"},{"id":206,"pageTitle":"","sectionTitle":"Prerequisites","sectionRoute":"/build/clients/ledger-wallet/#prerequisites","type":"docs"},{"id":207,"pageTitle":"","sectionTitle":"Installation Instructions","sectionRoute":"/build/clients/ledger-wallet/#installation-instructions","type":"docs"},{"id":208,"pageTitle":"","sectionTitle":"Testing","sectionRoute":"/build/clients/ledger-wallet/#testing","type":"docs"},{"id":209,"pageTitle":"","sectionTitle":"Demo","sectionRoute":"/build/clients/ledger-wallet/#demo","type":"docs"},{"id":215,"pageTitle":"Ledger Application API","sectionTitle":"Ledger Application API","sectionRoute":"/build/clients/ledger-wallet/api","type":"docs"},{"id":216,"pageTitle":"Ledger Application API","sectionTitle":"GET VERSION","sectionRoute":"/build/clients/ledger-wallet/api#get-version","type":"docs"},{"id":217,"pageTitle":"Ledger Application API","sectionTitle":"GET DEVICE ORIGIN PUBLIC KEY","sectionRoute":"/build/clients/ledger-wallet/api#get-device-origin-public-key","type":"docs"},{"id":218,"pageTitle":"Ledger Application API","sectionTitle":"GET ARCHETHIC ADDRESS","sectionRoute":"/build/clients/ledger-wallet/api#get-archethic-address","type":"docs"},{"id":219,"pageTitle":"Ledger Application API","sectionTitle":"SIGN TRANSACTION","sectionRoute":"/build/clients/ledger-wallet/api#sign-transaction","type":"docs"},{"id":210,"pageTitle":"ADPU commands","sectionTitle":"ADPU commands","sectionRoute":"/build/clients/ledger-wallet/commands","type":"docs"},{"id":211,"pageTitle":"ADPU commands","sectionTitle":"APDU commands","sectionRoute":"/build/clients/ledger-wallet/commands#apdu-commands","type":"docs"},{"id":212,"pageTitle":"ADPU commands","sectionTitle":"Get Origin Public Key","sectionRoute":"/build/clients/ledger-wallet/commands#get-origin-public-key","type":"docs"},{"id":213,"pageTitle":"ADPU commands","sectionTitle":"Get Archethic Account Address","sectionRoute":"/build/clients/ledger-wallet/commands#get-archethic-account-address","type":"docs"},{"id":214,"pageTitle":"ADPU commands","sectionTitle":"Get Signature","sectionRoute":"/build/clients/ledger-wallet/commands#get-signature","type":"docs"},{"id":234,"pageTitle":"Archethic's wallet access","sectionTitle":"Archethic's wallet access","sectionRoute":"/build/clients/wallet-access","type":"docs"},{"id":235,"pageTitle":"Archethic's wallet access","sectionTitle":"Access enrollment","sectionRoute":"/build/clients/wallet-access#access-enrollment","type":"docs"},{"id":236,"pageTitle":"Archethic's wallet access","sectionTitle":"Keychain retrieval","sectionRoute":"/build/clients/wallet-access#keychain-retrieval","type":"docs"},{"id":220,"pageTitle":"Archethic's wallet specification","sectionTitle":"Archethic's wallet specification","sectionRoute":"/build/clients/wallet-spec","type":"docs"},{"id":221,"pageTitle":"Archethic's wallet specification","sectionTitle":"Glossary","sectionRoute":"/build/clients/wallet-spec#glossary","type":"docs"},{"id":222,"pageTitle":"Archethic's wallet specification","sectionTitle":"Cryptography","sectionRoute":"/build/clients/wallet-spec#cryptography","type":"docs"},{"id":223,"pageTitle":"Archethic's wallet specification","sectionTitle":"Derivation path","sectionRoute":"/build/clients/wallet-spec#derivation-path","type":"docs"},{"id":224,"pageTitle":"Archethic's wallet specification","sectionTitle":"Key derivation","sectionRoute":"/build/clients/wallet-spec#key-derivation","type":"docs"},{"id":225,"pageTitle":"Archethic's wallet specification","sectionTitle":"Encryption","sectionRoute":"/build/clients/wallet-spec#encryption","type":"docs"},{"id":226,"pageTitle":"Archethic's wallet specification","sectionTitle":"Encoding","sectionRoute":"/build/clients/wallet-spec#encoding","type":"docs"},{"id":227,"pageTitle":"Archethic's wallet specification","sectionTitle":"Encoding of wallet","sectionRoute":"/build/clients/wallet-spec#encoding-of-wallet","type":"docs"},{"id":228,"pageTitle":"Archethic's wallet specification","sectionTitle":"Encoding of Curve Types","sectionRoute":"/build/clients/wallet-spec#encoding-of-curve-types","type":"docs"},{"id":229,"pageTitle":"Archethic's wallet specification","sectionTitle":"Encoding of Hash Types","sectionRoute":"/build/clients/wallet-spec#encoding-of-hash-types","type":"docs"},{"id":230,"pageTitle":"Archethic's wallet specification","sectionTitle":"Transaction representation","sectionRoute":"/build/clients/wallet-spec#transaction-representation","type":"docs"},{"id":231,"pageTitle":"Archethic's wallet specification","sectionTitle":"Format","sectionRoute":"/build/clients/wallet-spec#format","type":"docs"},{"id":232,"pageTitle":"Archethic's wallet specification","sectionTitle":"Public Key Format","sectionRoute":"/build/clients/wallet-spec#public-key-format","type":"docs"},{"id":233,"pageTitle":"Archethic's wallet specification","sectionTitle":"Account Address Format","sectionRoute":"/build/clients/wallet-spec#account-address-format","type":"docs"},{"id":237,"pageTitle":"Core development","sectionTitle":"Core development","sectionRoute":"/build/core/","type":"docs"},{"id":238,"pageTitle":"Core development","sectionTitle":"Technology Stack","sectionRoute":"/build/core/#technology-stack","type":"docs"},{"id":239,"pageTitle":"Core development","sectionTitle":"Why Elixir ?","sectionRoute":"/build/core/#why-elixir-","type":"docs"},{"id":240,"pageTitle":"Core development","sectionTitle":"Why C ?","sectionRoute":"/build/core/#why-c-","type":"docs"},{"id":241,"pageTitle":"Core development","sectionTitle":"Structure","sectionRoute":"/build/core/#structure","type":"docs"},{"id":242,"pageTitle":"Account","sectionTitle":"Account","sectionRoute":"/build/core/account","type":"docs"},{"id":243,"pageTitle":"Account","sectionTitle":"UCO","sectionRoute":"/build/core/account#uco","type":"docs"},{"id":244,"pageTitle":"Account","sectionTitle":"Ledger","sectionRoute":"/build/core/account#ledger","type":"docs"},{"id":245,"pageTitle":"Account","sectionTitle":"Index","sectionRoute":"/build/core/account#index","type":"docs"},{"id":246,"pageTitle":"Account","sectionTitle":"Token","sectionRoute":"/build/core/account#token","type":"docs"},{"id":247,"pageTitle":"Account","sectionTitle":"Ledger","sectionRoute":"/build/core/account#ledger-1","type":"docs"},{"id":248,"pageTitle":"Account","sectionTitle":"Index","sectionRoute":"/build/core/account#index-1","type":"docs"},{"id":249,"pageTitle":"Account","sectionTitle":"Loading","sectionRoute":"/build/core/account#loading","type":"docs"},{"id":250,"pageTitle":"BeaconChain","sectionTitle":"BeaconChain","sectionRoute":"/build/core/beacon-chain/","type":"docs"},{"id":251,"pageTitle":"BeaconChain","sectionTitle":"Subsets","sectionRoute":"/build/core/beacon-chain/#subsets","type":"docs"},{"id":252,"pageTitle":"BeaconChain","sectionTitle":"Timers and schedulers","sectionRoute":"/build/core/beacon-chain/#timers-and-schedulers","type":"docs"},{"id":253,"pageTitle":"BeaconChain","sectionTitle":"Transaction loading","sectionRoute":"/build/core/beacon-chain/#transaction-loading","type":"docs"},{"id":254,"pageTitle":"BeaconChain","sectionTitle":"Supervisor","sectionRoute":"/build/core/beacon-chain/#supervisor","type":"docs"},{"id":255,"pageTitle":"P2P availability sampling","sectionTitle":"P2P availability sampling","sectionRoute":"/build/core/beacon-chain/p2p-sampling","type":"docs"},{"id":256,"pageTitle":"P2P availability sampling","sectionTitle":"Heartbeat","sectionRoute":"/build/core/beacon-chain/p2p-sampling#heartbeat","type":"docs"},{"id":257,"pageTitle":"P2P availability sampling","sectionTitle":"Aggregation","sectionRoute":"/build/core/beacon-chain/p2p-sampling#aggregation","type":"docs"},{"id":258,"pageTitle":"Bootstrap","sectionTitle":"Bootstrap","sectionRoute":"/build/core/bootstrap","type":"docs"},{"id":259,"pageTitle":"Bootstrap","sectionTitle":"Network initizialiation","sectionRoute":"/build/core/bootstrap#network-initizialiation","type":"docs"},{"id":260,"pageTitle":"Bootstrap","sectionTitle":"First node bootstrapping","sectionRoute":"/build/core/bootstrap#first-node-bootstrapping","type":"docs"},{"id":261,"pageTitle":"Bootstrap","sectionTitle":"Next time bootstraps","sectionRoute":"/build/core/bootstrap#next-time-bootstraps","type":"docs"},{"id":262,"pageTitle":"Cryptography","sectionTitle":"Cryptography","sectionRoute":"/build/core/cryptography/","type":"docs"},{"id":263,"pageTitle":"Cryptography","sectionTitle":"Node Keystore","sectionRoute":"/build/core/cryptography/#node-keystore","type":"docs"},{"id":264,"pageTitle":"Cryptography","sectionTitle":"Node Shared Secrets Keystore","sectionRoute":"/build/core/cryptography/#node-shared-secrets-keystore","type":"docs"},{"id":265,"pageTitle":"TPM Implementation","sectionTitle":"TPM Implementation","sectionRoute":"/build/core/cryptography/tpm","type":"docs"},{"id":266,"pageTitle":"TPM Implementation","sectionTitle":"Global Variables","sectionRoute":"/build/core/cryptography/tpm#global-variables","type":"docs"},{"id":267,"pageTitle":"TPM Implementation","sectionTitle":"void keyToASN():","sectionRoute":"/build/core/cryptography/tpm#void-keytoasn","type":"docs"},{"id":268,"pageTitle":"TPM Implementation","sectionTitle":"void signToASN(BYTE r, INT sizeR, BYTE s, INT sizeS, INT *asnSignSize)","sectionRoute":"/build/core/cryptography/tpm#void-signtoasnbyte-r-int-sizer-byte-s-int-sizes-int-asnsignsize","type":"docs"},{"id":269,"pageTitle":"TPM Implementation","sectionTitle":"void generatePublicKey(INT keyIndex)","sectionRoute":"/build/core/cryptography/tpm#void-generatepublickeyint-keyindex","type":"docs"},{"id":270,"pageTitle":"TPM Implementation","sectionTitle":"setRootKey()","sectionRoute":"/build/core/cryptography/tpm#setrootkey","type":"docs"},{"id":271,"pageTitle":"TPM Implementation","sectionTitle":"updateHandlesIndexes()","sectionRoute":"/build/core/cryptography/tpm#updatehandlesindexes","type":"docs"},{"id":272,"pageTitle":"TPM Implementation","sectionTitle":"initializeTPM(INT keyIndex):","sectionRoute":"/build/core/cryptography/tpm#initializetpmint-keyindex","type":"docs"},{"id":273,"pageTitle":"TPM Implementation","sectionTitle":"getKeyIndex():","sectionRoute":"/build/core/cryptography/tpm#getkeyindex","type":"docs"},{"id":274,"pageTitle":"TPM Implementation","sectionTitle":"setKeyIndex(INT keyIndex):","sectionRoute":"/build/core/cryptography/tpm#setkeyindexint-keyindex","type":"docs"},{"id":275,"pageTitle":"TPM Implementation","sectionTitle":"getPublicKey(INT keyIndex, INT *publicKeySize):","sectionRoute":"/build/core/cryptography/tpm#getpublickeyint-keyindex-int-publickeysize","type":"docs"},{"id":276,"pageTitle":"TPM Implementation","sectionTitle":"signECDSA(INT keyIndex, BYTE hashToSign, INT eccSignSize, bool increment):","sectionRoute":"/build/core/cryptography/tpm#signecdsaint-keyindex-byte-hashtosign-int-eccsignsize-bool-increment","type":"docs"},{"id":277,"pageTitle":"TPM Implementation","sectionTitle":"getECDHPoint(INT keyIndex, BYTE *euphemeralKey):","sectionRoute":"/build/core/cryptography/tpm#getecdhpointint-keyindex-byte-euphemeralkey","type":"docs"},{"id":282,"pageTitle":"Yubikey implementation","sectionTitle":"Yubikey implementation","sectionRoute":"/build/core/cryptography/yubikey","type":"docs"},{"id":283,"pageTitle":"Yubikey implementation","sectionTitle":"initializeYK() :","sectionRoute":"/build/core/cryptography/yubikey#initializeyk-","type":"docs"},{"id":284,"pageTitle":"Yubikey implementation","sectionTitle":"bool checkYK():","sectionRoute":"/build/core/cryptography/yubikey#bool-checkyk","type":"docs"},{"id":285,"pageTitle":"Yubikey implementation","sectionTitle":"verifyPinYK():","sectionRoute":"/build/core/cryptography/yubikey#verifypinyk","type":"docs"},{"id":286,"pageTitle":"Yubikey implementation","sectionTitle":"authenticateYK():","sectionRoute":"/build/core/cryptography/yubikey#authenticateyk","type":"docs"},{"id":287,"pageTitle":"Yubikey implementation","sectionTitle":"fetchKey(keyIndex):","sectionRoute":"/build/core/cryptography/yubikey#fetchkeykeyindex","type":"docs"},{"id":288,"pageTitle":"Yubikey implementation","sectionTitle":"generateKey(ykIndex):","sectionRoute":"/build/core/cryptography/yubikey#generatekeyykindex","type":"docs"},{"id":289,"pageTitle":"Yubikey implementation","sectionTitle":"generateCertificate(ykIndex):","sectionRoute":"/build/core/cryptography/yubikey#generatecertificateykindex","type":"docs"},{"id":290,"pageTitle":"Yubikey implementation","sectionTitle":"getYKIndex():","sectionRoute":"/build/core/cryptography/yubikey#getykindex","type":"docs"},{"id":291,"pageTitle":"Yubikey implementation","sectionTitle":"saveIndex(ykIndex, archethicIndex):","sectionRoute":"/build/core/cryptography/yubikey#saveindexykindex-archethicindex","type":"docs"},{"id":292,"pageTitle":"Yubikey implementation","sectionTitle":"signECDSA(hashtoSign, ykIndex):","sectionRoute":"/build/core/cryptography/yubikey#signecdsahashtosign-ykindex","type":"docs"},{"id":293,"pageTitle":"Yubikey implementation","sectionTitle":"getECDHPoint(ykIndex, euphermerakley) :","sectionRoute":"/build/core/cryptography/yubikey#getecdhpointykindex-euphermerakley-","type":"docs"},{"id":294,"pageTitle":"Yubikey implementation","sectionTitle":"getArchEthicIndex():","sectionRoute":"/build/core/cryptography/yubikey#getarchethicindex","type":"docs"},{"id":295,"pageTitle":"Yubikey implementation","sectionTitle":"incrementIndex():","sectionRoute":"/build/core/cryptography/yubikey#incrementindex","type":"docs"},{"id":296,"pageTitle":"Yubikey implementation","sectionTitle":"getRootKey():","sectionRoute":"/build/core/cryptography/yubikey#getrootkey","type":"docs"},{"id":297,"pageTitle":"Yubikey implementation","sectionTitle":"getCurrentKey(publicKeySize):","sectionRoute":"/build/core/cryptography/yubikey#getcurrentkeypublickeysize","type":"docs"},{"id":298,"pageTitle":"Yubikey implementation","sectionTitle":"getNextKey( publicKeySize):","sectionRoute":"/build/core/cryptography/yubikey#getnextkey-publickeysize","type":"docs"},{"id":299,"pageTitle":"Yubikey implementation","sectionTitle":"getPastKey(archEthicIndex, publicKeySize):","sectionRoute":"/build/core/cryptography/yubikey#getpastkeyarchethicindex-publickeysize","type":"docs"},{"id":300,"pageTitle":"Yubikey implementation","sectionTitle":"getRootCertificate( certificateSize):","sectionRoute":"/build/core/cryptography/yubikey#getrootcertificate-certificatesize","type":"docs"},{"id":301,"pageTitle":"Yubikey implementation","sectionTitle":"getCurrentCertificate(certificateSize):","sectionRoute":"/build/core/cryptography/yubikey#getcurrentcertificatecertificatesize","type":"docs"},{"id":302,"pageTitle":"Yubikey implementation","sectionTitle":"getNextCertificate(certificateSize):","sectionRoute":"/build/core/cryptography/yubikey#getnextcertificatecertificatesize","type":"docs"},{"id":303,"pageTitle":"Yubikey implementation","sectionTitle":"getPastCertificate(archEthicIndex, certificateSize):","sectionRoute":"/build/core/cryptography/yubikey#getpastcertificatearchethicindex-certificatesize","type":"docs"},{"id":304,"pageTitle":"Yubikey implementation","sectionTitle":"signCurrentKey(hashToSign, eccSignSize):","sectionRoute":"/build/core/cryptography/yubikey#signcurrentkeyhashtosign-eccsignsize","type":"docs"},{"id":305,"pageTitle":"Yubikey implementation","sectionTitle":"signPastKey(archEthicIndex, hashToSign, eccSignSize):","sectionRoute":"/build/core/cryptography/yubikey#signpastkeyarchethicindex-hashtosign-eccsignsize","type":"docs"},{"id":306,"pageTitle":"Yubikey implementation","sectionTitle":"ecdhCurrentKey(euphemeralKey, eccPointSize):","sectionRoute":"/build/core/cryptography/yubikey#ecdhcurrentkeyeuphemeralkey-eccpointsize","type":"docs"},{"id":307,"pageTitle":"Yubikey implementation","sectionTitle":"ecdhPastKey( archEthicIndex, euphemeralKey, eccPointSize):","sectionRoute":"/build/core/cryptography/yubikey#ecdhpastkey-archethicindex-euphemeralkey-eccpointsize","type":"docs"},{"id":308,"pageTitle":"Archethic's database","sectionTitle":"Archethic's database","sectionRoute":"/build/core/database","type":"docs"},{"id":309,"pageTitle":"Archethic's database","sectionTitle":"Rationale","sectionRoute":"/build/core/database#rationale","type":"docs"},{"id":310,"pageTitle":"Archethic's database","sectionTitle":"Log Structured Merge","sectionRoute":"/build/core/database#log-structured-merge","type":"docs"},{"id":311,"pageTitle":"Archethic's database","sectionTitle":"Log Structured Hash Tables","sectionRoute":"/build/core/database#log-structured-hash-tables","type":"docs"},{"id":312,"pageTitle":"Archethic's database","sectionTitle":"Our approach","sectionRoute":"/build/core/database#our-approach","type":"docs"},{"id":313,"pageTitle":"Archethic's database","sectionTitle":"Design","sectionRoute":"/build/core/database#design","type":"docs"},{"id":314,"pageTitle":"Archethic's database","sectionTitle":"Chains storage","sectionRoute":"/build/core/database#chains-storage","type":"docs"},{"id":315,"pageTitle":"Archethic's database","sectionTitle":"Chain indexing","sectionRoute":"/build/core/database#chain-indexing","type":"docs"},{"id":316,"pageTitle":"Archethic's database","sectionTitle":"Chain reader","sectionRoute":"/build/core/database#chain-reader","type":"docs"},{"id":317,"pageTitle":"Archethic's database","sectionTitle":"Write path","sectionRoute":"/build/core/database#write-path","type":"docs"},{"id":318,"pageTitle":"Archethic's database","sectionTitle":"Read path","sectionRoute":"/build/core/database#read-path","type":"docs"},{"id":319,"pageTitle":"Archethic's database","sectionTitle":"Additional of-chain storage","sectionRoute":"/build/core/database#additional-of-chain-storage","type":"docs"},{"id":278,"pageTitle":"Election","sectionTitle":"Election","sectionRoute":"/build/core/election","type":"docs"},{"id":279,"pageTitle":"Election","sectionTitle":"Heuristic constraints","sectionRoute":"/build/core/election#heuristic-constraints","type":"docs"},{"id":280,"pageTitle":"Election","sectionTitle":"Low-Level integrations","sectionRoute":"/build/core/election#low-level-integrations","type":"docs"},{"id":281,"pageTitle":"Election","sectionTitle":"Hypergeomtric distribution","sectionRoute":"/build/core/election#hypergeomtric-distribution","type":"docs"},{"id":320,"pageTitle":"Code Proposals","sectionTitle":"Code Proposals","sectionRoute":"/build/core/governance/code-proposals","type":"docs"},{"id":322,"pageTitle":"CD","sectionTitle":"CD","sectionRoute":"/build/core/governance/code-proposals-cd","type":"docs"},{"id":321,"pageTitle":"CI","sectionTitle":"CI","sectionRoute":"/build/core/governance/code-proposals-ci","type":"docs"},{"id":323,"pageTitle":"Mining","sectionTitle":"Mining","sectionRoute":"/build/core/mining/","type":"docs"},{"id":324,"pageTitle":"Mining","sectionTitle":"Standalone validation workflow","sectionRoute":"/build/core/mining/#standalone-validation-workflow","type":"docs"},{"id":325,"pageTitle":"Mining","sectionTitle":"Distributed validation","sectionRoute":"/build/core/mining/#distributed-validation","type":"docs"},{"id":326,"pageTitle":"Mining","sectionTitle":"Worflow","sectionRoute":"/build/core/mining/#worflow","type":"docs"},{"id":327,"pageTitle":"Mining","sectionTitle":"FSM","sectionRoute":"/build/core/mining/#fsm","type":"docs"},{"id":328,"pageTitle":"Proof of Work algorithm","sectionTitle":"Proof of Work algorithm","sectionRoute":"/build/core/mining/proof-of-work","type":"docs"},{"id":329,"pageTitle":"Proof of Work algorithm","sectionTitle":"Origin public key candidates","sectionRoute":"/build/core/mining/proof-of-work#origin-public-key-candidates","type":"docs"},{"id":330,"pageTitle":"Proof of Work algorithm","sectionTitle":"Lookup","sectionRoute":"/build/core/mining/proof-of-work#lookup","type":"docs"},{"id":331,"pageTitle":"Transaction context retrieval","sectionTitle":"Transaction context retrieval","sectionRoute":"/build/core/mining/transaction-context","type":"docs"},{"id":332,"pageTitle":"Transaction context retrieval","sectionTitle":"Retrieval","sectionRoute":"/build/core/mining/transaction-context#retrieval","type":"docs"},{"id":333,"pageTitle":"Transaction context retrieval","sectionTitle":"Node distribution","sectionRoute":"/build/core/mining/transaction-context#node-distribution","type":"docs"},{"id":335,"pageTitle":"Pending transaction validation","sectionTitle":"Pending transaction validation","sectionRoute":"/build/core/mining/transaction-validation","type":"docs"},{"id":336,"pageTitle":"Pending transaction validation","sectionTitle":"Smart contract verification","sectionRoute":"/build/core/mining/transaction-validation#smart-contract-verification","type":"docs"},{"id":337,"pageTitle":"Pending transaction validation","sectionTitle":"Transaction type verification","sectionRoute":"/build/core/mining/transaction-validation#transaction-type-verification","type":"docs"},{"id":338,"pageTitle":"Pending transaction validation","sectionTitle":"Node transaction verification","sectionRoute":"/build/core/mining/transaction-validation#node-transaction-verification","type":"docs"},{"id":339,"pageTitle":"Pending transaction validation","sectionTitle":"Node shared secrets transaction verification","sectionRoute":"/build/core/mining/transaction-validation#node-shared-secrets-transaction-verification","type":"docs"},{"id":340,"pageTitle":"Pending transaction validation","sectionTitle":"Token transaction verification","sectionRoute":"/build/core/mining/transaction-validation#token-transaction-verification","type":"docs"},{"id":341,"pageTitle":"Pending transaction validation","sectionTitle":"Oracle transaction verification","sectionRoute":"/build/core/mining/transaction-validation#oracle-transaction-verification","type":"docs"},{"id":342,"pageTitle":"Pending transaction validation","sectionTitle":"OracleSummary transaction verification","sectionRoute":"/build/core/mining/transaction-validation#oraclesummary-transaction-verification","type":"docs"},{"id":343,"pageTitle":"Pending transaction validation","sectionTitle":"Code proposal transaction verification","sectionRoute":"/build/core/mining/transaction-validation#code-proposal-transaction-verification","type":"docs"},{"id":344,"pageTitle":"Pending transaction validation","sectionTitle":"Code approval transaction verification","sectionRoute":"/build/core/mining/transaction-validation#code-approval-transaction-verification","type":"docs"},{"id":334,"pageTitle":"OracleChain","sectionTitle":"OracleChain","sectionRoute":"/build/core/oracle-chain/","type":"docs"},{"id":345,"pageTitle":"OracleChain Memory Tables","sectionTitle":"OracleChain Memory Tables","sectionRoute":"/build/core/oracle-chain/memory-table","type":"docs"},{"id":346,"pageTitle":"OracleChain Scheduler","sectionTitle":"OracleChain Scheduler","sectionRoute":"/build/core/oracle-chain/scheduler","type":"docs"},{"id":347,"pageTitle":"Oracle Chain Service","sectionTitle":"Oracle Chain Service","sectionRoute":"/build/core/oracle-chain/service","type":"docs"},{"id":348,"pageTitle":"Oracle Chain Service","sectionTitle":"Behavior","sectionRoute":"/build/core/oracle-chain/service#behavior","type":"docs"},{"id":349,"pageTitle":"Oracle Chain Service","sectionTitle":"Example","sectionRoute":"/build/core/oracle-chain/service#example","type":"docs"},{"id":350,"pageTitle":"Oracle Chain Service","sectionTitle":"Configuration","sectionRoute":"/build/core/oracle-chain/service#configuration","type":"docs"},{"id":351,"pageTitle":"P2P","sectionTitle":"P2P","sectionRoute":"/build/core/p2p/","type":"docs"},{"id":359,"pageTitle":"Messaging","sectionTitle":"Messaging","sectionRoute":"/build/core/p2p/messaging","type":"docs"},{"id":360,"pageTitle":"Messaging","sectionTitle":"Stream Multiplexer","sectionRoute":"/build/core/p2p/messaging#stream-multiplexer","type":"docs"},{"id":361,"pageTitle":"Messaging","sectionTitle":"Binary Protocol","sectionRoute":"/build/core/p2p/messaging#binary-protocol","type":"docs"},{"id":362,"pageTitle":"Messaging","sectionTitle":"Message envelop","sectionRoute":"/build/core/p2p/messaging#message-envelop","type":"docs"},{"id":352,"pageTitle":"Node","sectionTitle":"Node","sectionRoute":"/build/core/p2p/node","type":"docs"},{"id":353,"pageTitle":"Node","sectionTitle":"Data structure","sectionRoute":"/build/core/p2p/node#data-structure","type":"docs"},{"id":354,"pageTitle":"Node","sectionTitle":"P2P tables view","sectionRoute":"/build/core/p2p/node#p2p-tables-view","type":"docs"},{"id":355,"pageTitle":"Node","sectionTitle":"Discovery table","sectionRoute":"/build/core/p2p/node#discovery-table","type":"docs"},{"id":356,"pageTitle":"Node","sectionTitle":"Availability lookup table","sectionRoute":"/build/core/p2p/node#availability-lookup-table","type":"docs"},{"id":357,"pageTitle":"Node","sectionTitle":"Authorized nodes table","sectionRoute":"/build/core/p2p/node#authorized-nodes-table","type":"docs"},{"id":358,"pageTitle":"Node","sectionTitle":"Nodes key lookup table","sectionRoute":"/build/core/p2p/node#nodes-key-lookup-table","type":"docs"},{"id":363,"pageTitle":"SDK","sectionTitle":"SDK","sectionRoute":"/build/sdk/","type":"docs"},{"id":364,"pageTitle":"Dart SDK","sectionTitle":"Dart SDK","sectionRoute":"/build/sdk/dart","type":"docs"},{"id":365,"pageTitle":"Go SDK","sectionTitle":"Go SDK","sectionRoute":"/build/sdk/go","type":"docs"},{"id":366,"pageTitle":"Javascript SDK","sectionTitle":"Javascript SDK","sectionRoute":"/build/sdk/js","type":"docs"},{"id":367,"pageTitle":"Smart Contracts","sectionTitle":"Smart Contracts","sectionRoute":"/build/smart-contracts/","type":"docs"},{"id":368,"pageTitle":"Smart Contracts","sectionTitle":"Autonomous","sectionRoute":"/build/smart-contracts/#autonomous","type":"docs"},{"id":369,"pageTitle":"Smart Contracts","sectionTitle":"Modifiable:","sectionRoute":"/build/smart-contracts/#modifiable","type":"docs"},{"id":370,"pageTitle":"Smart Contracts","sectionTitle":"Interpreted","sectionRoute":"/build/smart-contracts/#interpreted","type":"docs"},{"id":371,"pageTitle":"Smart Contracts","sectionTitle":"Stateless","sectionRoute":"/build/smart-contracts/#stateless","type":"docs"},{"id":373,"pageTitle":"Smart Contracts - Examples","sectionTitle":"Smart Contracts - Examples","sectionRoute":"/build/smart-contracts/examples","type":"docs"},{"id":374,"pageTitle":"Smart Contracts - Examples","sectionTitle":"Hello World","sectionRoute":"/build/smart-contracts/examples#hello-world","type":"docs"},{"id":375,"pageTitle":"Smart Contracts - Examples","sectionTitle":"ICO (Initial Coin Offering)","sectionRoute":"/build/smart-contracts/examples#ico-initial-coin-offering","type":"docs"},{"id":376,"pageTitle":"Smart Contracts - Examples","sectionTitle":"Recurring ICO","sectionRoute":"/build/smart-contracts/examples#recurring-ico","type":"docs"},{"id":377,"pageTitle":"Smart Contracts - Examples","sectionTitle":"Vote system","sectionRoute":"/build/smart-contracts/examples#vote-system","type":"docs"},{"id":378,"pageTitle":"Smart Contracts - Examples","sectionTitle":"Insurance \"at least 25°c\"","sectionRoute":"/build/smart-contracts/examples#insurance-at-least-25c","type":"docs"},{"id":372,"pageTitle":"Smart Contracts - Fees","sectionTitle":"Smart Contracts - Fees","sectionRoute":"/build/smart-contracts/fees","type":"docs"},{"id":379,"pageTitle":"Smart Contracts - Language","sectionTitle":"Smart Contracts - Language","sectionRoute":"/build/smart-contracts/language/","type":"docs"},{"id":380,"pageTitle":"Smart Contracts - Language","sectionTitle":"Version attribute","sectionRoute":"/build/smart-contracts/language/#version-attribute","type":"docs"},{"id":381,"pageTitle":"Smart Contracts - Language","sectionTitle":"Basic Types","sectionRoute":"/build/smart-contracts/language/#basic-types","type":"docs"},{"id":382,"pageTitle":"Smart Contracts - Language","sectionTitle":"Hexadecimals","sectionRoute":"/build/smart-contracts/language/#hexadecimals","type":"docs"},{"id":383,"pageTitle":"Smart Contracts - Language","sectionTitle":"ASCII character in string","sectionRoute":"/build/smart-contracts/language/#ascii-character-in-string","type":"docs"},{"id":384,"pageTitle":"Smart Contracts - Language","sectionTitle":"Comparaison","sectionRoute":"/build/smart-contracts/language/#comparaison","type":"docs"},{"id":385,"pageTitle":"Smart Contracts - Language","sectionTitle":"Arithmetic","sectionRoute":"/build/smart-contracts/language/#arithmetic","type":"docs"},{"id":386,"pageTitle":"Smart Contracts - Language","sectionTitle":"Ranges","sectionRoute":"/build/smart-contracts/language/#ranges","type":"docs"},{"id":387,"pageTitle":"Smart Contracts - Language","sectionTitle":"Loop","sectionRoute":"/build/smart-contracts/language/#loop","type":"docs"},{"id":388,"pageTitle":"Smart Contracts - Language","sectionTitle":"Variables & Scopes","sectionRoute":"/build/smart-contracts/language/#variables--scopes","type":"docs"},{"id":389,"pageTitle":"Smart Contracts - Language","sectionTitle":"Lists","sectionRoute":"/build/smart-contracts/language/#lists","type":"docs"},{"id":390,"pageTitle":"Smart Contracts - Language","sectionTitle":"Maps","sectionRoute":"/build/smart-contracts/language/#maps","type":"docs"},{"id":391,"pageTitle":"Smart Contracts - Language","sectionTitle":"Functions","sectionRoute":"/build/smart-contracts/language/#functions","type":"docs"},{"id":392,"pageTitle":"Smart Contracts - Language","sectionTitle":"Internal Functions","sectionRoute":"/build/smart-contracts/language/#internal-functions","type":"docs"},{"id":393,"pageTitle":"Smart Contracts - Language","sectionTitle":"Exported Functions","sectionRoute":"/build/smart-contracts/language/#exported-functions","type":"docs"},{"id":394,"pageTitle":"Smart Contracts - Language","sectionTitle":"Library","sectionRoute":"/build/smart-contracts/language/#library","type":"docs"},{"id":395,"pageTitle":"Smart Contracts - Language","sectionTitle":"Errors","sectionRoute":"/build/smart-contracts/language/#errors","type":"docs"},{"id":396,"pageTitle":"Smart Contracts - Language","sectionTitle":"Reserved keywords","sectionRoute":"/build/smart-contracts/language/#reserved-keywords","type":"docs"},{"id":397,"pageTitle":"Smart Contracts - Actions block","sectionTitle":"Smart Contracts - Actions block","sectionRoute":"/build/smart-contracts/language/actions","type":"docs"},{"id":398,"pageTitle":"Smart Contracts - Actions block","sectionTitle":"Global variables","sectionRoute":"/build/smart-contracts/language/actions#global-variables","type":"docs"},{"id":399,"pageTitle":"Smart Contracts - Actions block","sectionTitle":"Named action arguments","sectionRoute":"/build/smart-contracts/language/actions#named-action-arguments","type":"docs"},{"id":400,"pageTitle":"Smart Contracts - Actions block","sectionTitle":"Generating the next transaction","sectionRoute":"/build/smart-contracts/language/actions#generating-the-next-transaction","type":"docs"},{"id":401,"pageTitle":"Smart Contracts - Actions block","sectionTitle":"Appendix 1: The transaction map","sectionRoute":"/build/smart-contracts/language/actions#appendix-1-the-transaction-map","type":"docs"},{"id":403,"pageTitle":"Smart Contracts - Condition block","sectionTitle":"Smart Contracts - Condition block","sectionRoute":"/build/smart-contracts/language/condition","type":"docs"},{"id":404,"pageTitle":"Smart Contracts - Condition block","sectionTitle":"Boolean expressions","sectionRoute":"/build/smart-contracts/language/condition#boolean-expressions","type":"docs"},{"id":405,"pageTitle":"Smart Contracts - Condition block","sectionTitle":"Rules","sectionRoute":"/build/smart-contracts/language/condition#rules","type":"docs"},{"id":406,"pageTitle":"Smart Contracts - Condition block","sectionTitle":"Condition inherit","sectionRoute":"/build/smart-contracts/language/condition#condition-inherit","type":"docs"},{"id":407,"pageTitle":"Smart Contracts - Condition block","sectionTitle":"Examples","sectionRoute":"/build/smart-contracts/language/condition#examples","type":"docs"},{"id":408,"pageTitle":"Smart Contracts - Condition block","sectionTitle":"Condition triggered by a transaction","sectionRoute":"/build/smart-contracts/language/condition#condition-triggered-by-a-transaction","type":"docs"},{"id":409,"pageTitle":"Smart Contracts - Condition block","sectionTitle":"Examples","sectionRoute":"/build/smart-contracts/language/condition#examples-1","type":"docs"},{"id":410,"pageTitle":"Smart Contracts - Condition block","sectionTitle":"Condition triggered by an oracle","sectionRoute":"/build/smart-contracts/language/condition#condition-triggered-by-an-oracle","type":"docs"},{"id":411,"pageTitle":"Smart Contracts - Condition block","sectionTitle":"Examples","sectionRoute":"/build/smart-contracts/language/condition#examples-2","type":"docs"},{"id":402,"pageTitle":"Smart Contracts (Legacy)","sectionTitle":"Smart Contracts (Legacy)","sectionRoute":"/build/smart-contracts/language/legacy/","type":"docs"},{"id":419,"pageTitle":"Smart Contract examples","sectionTitle":"Smart Contract examples","sectionRoute":"/build/smart-contracts/language/legacy/examples","type":"docs"},{"id":420,"pageTitle":"Smart Contract examples","sectionTitle":"Recurrent transfer","sectionRoute":"/build/smart-contracts/language/legacy/examples#recurrent-transfer","type":"docs"},{"id":421,"pageTitle":"Smart Contract examples","sectionTitle":"ICO / Crowdfunding","sectionRoute":"/build/smart-contracts/language/legacy/examples#ico--crowdfunding","type":"docs"},{"id":412,"pageTitle":"Smart Contract Language","sectionTitle":"Smart Contract Language","sectionRoute":"/build/smart-contracts/language/legacy/language","type":"docs"},{"id":413,"pageTitle":"Smart Contract Language","sectionTitle":"Triggers/Actions","sectionRoute":"/build/smart-contracts/language/legacy/language#triggersactions","type":"docs"},{"id":414,"pageTitle":"Smart Contract Language","sectionTitle":"Conditions","sectionRoute":"/build/smart-contracts/language/legacy/language#conditions","type":"docs"},{"id":415,"pageTitle":"Smart Contract Language","sectionTitle":"Global variables","sectionRoute":"/build/smart-contracts/language/legacy/language#global-variables","type":"docs"},{"id":416,"pageTitle":"Smart Contract Language","sectionTitle":"Functions","sectionRoute":"/build/smart-contracts/language/legacy/language#functions","type":"docs"},{"id":417,"pageTitle":"Smart Contract Language","sectionTitle":"Utilities","sectionRoute":"/build/smart-contracts/language/legacy/language#utilities","type":"docs"},{"id":418,"pageTitle":"Smart Contract Language","sectionTitle":"Statements","sectionRoute":"/build/smart-contracts/language/legacy/language#statements","type":"docs"},{"id":422,"pageTitle":"Smart Contracts - Library","sectionTitle":"Smart Contracts - Library","sectionRoute":"/build/smart-contracts/language/library/","type":"docs"},{"id":423,"pageTitle":"Smart Contracts - Library","sectionTitle":"Function's arity","sectionRoute":"/build/smart-contracts/language/library/#functions-arity","type":"docs"},{"id":424,"pageTitle":"Smart Contracts - Library","sectionTitle":"Tagged functions","sectionRoute":"/build/smart-contracts/language/library/#tagged-functions","type":"docs"},{"id":425,"pageTitle":"Smart Contracts - Library","sectionTitle":"Modules list","sectionRoute":"/build/smart-contracts/language/library/#modules-list","type":"docs"},{"id":429,"pageTitle":"Chain module","sectionTitle":"Chain module","sectionRoute":"/build/smart-contracts/language/library/chain","type":"docs"},{"id":430,"pageTitle":"Chain module","sectionTitle":"get_genesis_address/1 [I/O]","sectionRoute":"/build/smart-contracts/language/library/chain#get_genesis_address1-io","type":"docs"},{"id":431,"pageTitle":"Chain module","sectionTitle":"get_first_transaction_address/1 [I/O]","sectionRoute":"/build/smart-contracts/language/library/chain#get_first_transaction_address1-io","type":"docs"},{"id":432,"pageTitle":"Chain module","sectionTitle":"get_genesis_public_key/1 [I/O]","sectionRoute":"/build/smart-contracts/language/library/chain#get_genesis_public_key1-io","type":"docs"},{"id":433,"pageTitle":"Chain module","sectionTitle":"get_burn_address/0","sectionRoute":"/build/smart-contracts/language/library/chain#get_burn_address0","type":"docs"},{"id":434,"pageTitle":"Chain module","sectionTitle":"get_transaction/1 [I/O]","sectionRoute":"/build/smart-contracts/language/library/chain#get_transaction1--io","type":"docs"},{"id":435,"pageTitle":"Chain module","sectionTitle":"get_last_address/1 [I/O]","sectionRoute":"/build/smart-contracts/language/library/chain#get_last_address1-io","type":"docs"},{"id":436,"pageTitle":"Chain module","sectionTitle":"get_last_transaction/1 [I/O]","sectionRoute":"/build/smart-contracts/language/library/chain#get_last_transaction1-io","type":"docs"},{"id":437,"pageTitle":"Chain module","sectionTitle":"get_previous_address/1","sectionRoute":"/build/smart-contracts/language/library/chain#get_previous_address1","type":"docs"},{"id":438,"pageTitle":"Chain module","sectionTitle":"get_balance/1 [I/O]","sectionRoute":"/build/smart-contracts/language/library/chain#get_balance1-io","type":"docs"},{"id":439,"pageTitle":"Chain module","sectionTitle":"get_uco_balance/1 [I/O]","sectionRoute":"/build/smart-contracts/language/library/chain#get_uco_balance1-io","type":"docs"},{"id":440,"pageTitle":"Chain module","sectionTitle":"get_token_balance/2 [I/O]","sectionRoute":"/build/smart-contracts/language/library/chain#get_token_balance2-io","type":"docs"},{"id":441,"pageTitle":"Chain module","sectionTitle":"get_token_balance/3 [I/O]","sectionRoute":"/build/smart-contracts/language/library/chain#get_token_balance3-io","type":"docs"},{"id":442,"pageTitle":"Chain module","sectionTitle":"get_tokens_balance/1 [I/O]","sectionRoute":"/build/smart-contracts/language/library/chain#get_tokens_balance1-io","type":"docs"},{"id":443,"pageTitle":"Chain module","sectionTitle":"get_tokens_balance/2 [I/O]","sectionRoute":"/build/smart-contracts/language/library/chain#get_tokens_balance2-io","type":"docs"},{"id":426,"pageTitle":"Code module","sectionTitle":"Code module","sectionRoute":"/build/smart-contracts/language/library/code","type":"docs"},{"id":427,"pageTitle":"Code module","sectionTitle":"is_same?/2","sectionRoute":"/build/smart-contracts/language/library/code#is_same2","type":"docs"},{"id":428,"pageTitle":"Code module","sectionTitle":"is_valid?/1","sectionRoute":"/build/smart-contracts/language/library/code#is_valid1","type":"docs"},{"id":447,"pageTitle":"Contract module","sectionTitle":"Contract module","sectionRoute":"/build/smart-contracts/language/library/contract","type":"docs"},{"id":448,"pageTitle":"Contract module","sectionTitle":"call_function/3 [I/O]","sectionRoute":"/build/smart-contracts/language/library/contract#call_function3-io","type":"docs"},{"id":449,"pageTitle":"Contract module","sectionTitle":"set_type/1 [Transaction]","sectionRoute":"/build/smart-contracts/language/library/contract#set_type1-transaction","type":"docs"},{"id":450,"pageTitle":"Contract module","sectionTitle":"set_content/1 [Transaction]","sectionRoute":"/build/smart-contracts/language/library/contract#set_content1-transaction","type":"docs"},{"id":451,"pageTitle":"Contract module","sectionTitle":"set_code/1 [Transaction]","sectionRoute":"/build/smart-contracts/language/library/contract#set_code1-transaction","type":"docs"},{"id":452,"pageTitle":"Contract module","sectionTitle":"add_uco_transfer/1 [Transaction]","sectionRoute":"/build/smart-contracts/language/library/contract#add_uco_transfer1-transaction","type":"docs"},{"id":453,"pageTitle":"Contract module","sectionTitle":"add_uco_transfers/1 [Transaction]","sectionRoute":"/build/smart-contracts/language/library/contract#add_uco_transfers1-transaction","type":"docs"},{"id":454,"pageTitle":"Contract module","sectionTitle":"add_token_transfer/1 [Transaction]","sectionRoute":"/build/smart-contracts/language/library/contract#add_token_transfer1-transaction","type":"docs"},{"id":455,"pageTitle":"Contract module","sectionTitle":"add_token_transfers/1 [Transaction]","sectionRoute":"/build/smart-contracts/language/library/contract#add_token_transfers1-transaction","type":"docs"},{"id":456,"pageTitle":"Contract module","sectionTitle":"add_ownership/1 [Transaction]","sectionRoute":"/build/smart-contracts/language/library/contract#add_ownership1-transaction","type":"docs"},{"id":457,"pageTitle":"Contract module","sectionTitle":"add_ownerships/1 [Transaction]","sectionRoute":"/build/smart-contracts/language/library/contract#add_ownerships1-transaction","type":"docs"},{"id":458,"pageTitle":"Contract module","sectionTitle":"add_recipient/1 [Transaction]","sectionRoute":"/build/smart-contracts/language/library/contract#add_recipient1-transaction","type":"docs"},{"id":459,"pageTitle":"Contract module","sectionTitle":"add_recipients/1 [Transaction]","sectionRoute":"/build/smart-contracts/language/library/contract#add_recipients1-transaction","type":"docs"},{"id":466,"pageTitle":"Crypto module","sectionTitle":"Crypto module","sectionRoute":"/build/smart-contracts/language/library/crypto","type":"docs"},{"id":467,"pageTitle":"Crypto module","sectionTitle":"hash/1","sectionRoute":"/build/smart-contracts/language/library/crypto#hash1","type":"docs"},{"id":468,"pageTitle":"Crypto module","sectionTitle":"hash/2","sectionRoute":"/build/smart-contracts/language/library/crypto#hash2","type":"docs"},{"id":469,"pageTitle":"Crypto module","sectionTitle":"hmac/1","sectionRoute":"/build/smart-contracts/language/library/crypto#hmac1","type":"docs"},{"id":470,"pageTitle":"Crypto module","sectionTitle":"hmac/2","sectionRoute":"/build/smart-contracts/language/library/crypto#hmac2","type":"docs"},{"id":471,"pageTitle":"Crypto module","sectionTitle":"hmac/3","sectionRoute":"/build/smart-contracts/language/library/crypto#hmac3","type":"docs"},{"id":472,"pageTitle":"Crypto module","sectionTitle":"sign_with_recovery/1","sectionRoute":"/build/smart-contracts/language/library/crypto#sign_with_recovery1","type":"docs"},{"id":473,"pageTitle":"Crypto module","sectionTitle":"decrypt_with_storage_nonce/1","sectionRoute":"/build/smart-contracts/language/library/crypto#decrypt_with_storage_nonce1","type":"docs"},{"id":444,"pageTitle":"Evm module","sectionTitle":"Evm module","sectionRoute":"/build/smart-contracts/language/library/evm","type":"docs"},{"id":445,"pageTitle":"Evm module","sectionTitle":"abi_encode/2","sectionRoute":"/build/smart-contracts/language/library/evm#abi_encode2","type":"docs"},{"id":446,"pageTitle":"Evm module","sectionTitle":"abi_decode/2","sectionRoute":"/build/smart-contracts/language/library/evm#abi_decode2","type":"docs"},{"id":460,"pageTitle":"Http module","sectionTitle":"Http module","sectionRoute":"/build/smart-contracts/language/library/http","type":"docs"},{"id":461,"pageTitle":"Http module","sectionTitle":"request/1 [I/O]","sectionRoute":"/build/smart-contracts/language/library/http#request1-io","type":"docs"},{"id":462,"pageTitle":"Http module","sectionTitle":"request/2 [I/O]","sectionRoute":"/build/smart-contracts/language/library/http#request2-io","type":"docs"},{"id":463,"pageTitle":"Http module","sectionTitle":"request/3 [I/O]","sectionRoute":"/build/smart-contracts/language/library/http#request3-io","type":"docs"},{"id":464,"pageTitle":"Http module","sectionTitle":"request/4 [I/O]","sectionRoute":"/build/smart-contracts/language/library/http#request4-io","type":"docs"},{"id":465,"pageTitle":"Http module","sectionTitle":"request_many/1 [I/O]","sectionRoute":"/build/smart-contracts/language/library/http#request_many1-io","type":"docs"},{"id":474,"pageTitle":"Json module","sectionTitle":"Json module","sectionRoute":"/build/smart-contracts/language/library/json","type":"docs"},{"id":475,"pageTitle":"Json module","sectionTitle":"path_extract/2","sectionRoute":"/build/smart-contracts/language/library/json#path_extract2","type":"docs"},{"id":476,"pageTitle":"Json module","sectionTitle":"path_match?/2","sectionRoute":"/build/smart-contracts/language/library/json#path_match2","type":"docs"},{"id":477,"pageTitle":"Json module","sectionTitle":"to_string/1","sectionRoute":"/build/smart-contracts/language/library/json#to_string1","type":"docs"},{"id":478,"pageTitle":"Json module","sectionTitle":"parse/1","sectionRoute":"/build/smart-contracts/language/library/json#parse1","type":"docs"},{"id":479,"pageTitle":"Json module","sectionTitle":"is_valid?/1","sectionRoute":"/build/smart-contracts/language/library/json#is_valid1","type":"docs"},{"id":480,"pageTitle":"List module","sectionTitle":"List module","sectionRoute":"/build/smart-contracts/language/library/list","type":"docs"},{"id":481,"pageTitle":"List module","sectionTitle":"at/2","sectionRoute":"/build/smart-contracts/language/library/list#at2","type":"docs"},{"id":482,"pageTitle":"List module","sectionTitle":"size/1","sectionRoute":"/build/smart-contracts/language/library/list#size1","type":"docs"},{"id":483,"pageTitle":"List module","sectionTitle":"in?/2","sectionRoute":"/build/smart-contracts/language/library/list#in2","type":"docs"},{"id":484,"pageTitle":"List module","sectionTitle":"empty?/1","sectionRoute":"/build/smart-contracts/language/library/list#empty1","type":"docs"},{"id":485,"pageTitle":"List module","sectionTitle":"concat/2","sectionRoute":"/build/smart-contracts/language/library/list#concat2","type":"docs"},{"id":486,"pageTitle":"List module","sectionTitle":"append/2","sectionRoute":"/build/smart-contracts/language/library/list#append2","type":"docs"},{"id":487,"pageTitle":"List module","sectionTitle":"prepend/2","sectionRoute":"/build/smart-contracts/language/library/list#prepend2","type":"docs"},{"id":488,"pageTitle":"List module","sectionTitle":"join/2","sectionRoute":"/build/smart-contracts/language/library/list#join2","type":"docs"},{"id":489,"pageTitle":"List module","sectionTitle":"sort/1","sectionRoute":"/build/smart-contracts/language/library/list#sort1","type":"docs"},{"id":490,"pageTitle":"List module","sectionTitle":"sort_by/2","sectionRoute":"/build/smart-contracts/language/library/list#sort_by2","type":"docs"},{"id":491,"pageTitle":"List module","sectionTitle":"uniq/1","sectionRoute":"/build/smart-contracts/language/library/list#uniq1","type":"docs"},{"id":492,"pageTitle":"List module","sectionTitle":"reverse/1","sectionRoute":"/build/smart-contracts/language/library/list#reverse1","type":"docs"},{"id":493,"pageTitle":"List module","sectionTitle":"set_at/3","sectionRoute":"/build/smart-contracts/language/library/list#set_at3","type":"docs"},{"id":494,"pageTitle":"List module","sectionTitle":"delete_at/3","sectionRoute":"/build/smart-contracts/language/library/list#delete_at3","type":"docs"},{"id":495,"pageTitle":"Map module","sectionTitle":"Map module","sectionRoute":"/build/smart-contracts/language/library/map","type":"docs"},{"id":496,"pageTitle":"Map module","sectionTitle":"new/0","sectionRoute":"/build/smart-contracts/language/library/map#new0","type":"docs"},{"id":497,"pageTitle":"Map module","sectionTitle":"size/1","sectionRoute":"/build/smart-contracts/language/library/map#size1","type":"docs"},{"id":498,"pageTitle":"Map module","sectionTitle":"get/2","sectionRoute":"/build/smart-contracts/language/library/map#get2","type":"docs"},{"id":499,"pageTitle":"Map module","sectionTitle":"get/3","sectionRoute":"/build/smart-contracts/language/library/map#get3","type":"docs"},{"id":500,"pageTitle":"Map module","sectionTitle":"set/3","sectionRoute":"/build/smart-contracts/language/library/map#set3","type":"docs"},{"id":501,"pageTitle":"Map module","sectionTitle":"keys/1","sectionRoute":"/build/smart-contracts/language/library/map#keys1","type":"docs"},{"id":502,"pageTitle":"Map module","sectionTitle":"values/1","sectionRoute":"/build/smart-contracts/language/library/map#values1","type":"docs"},{"id":503,"pageTitle":"Map module","sectionTitle":"delete/2","sectionRoute":"/build/smart-contracts/language/library/map#delete2","type":"docs"},{"id":504,"pageTitle":"Math module","sectionTitle":"Math module","sectionRoute":"/build/smart-contracts/language/library/math","type":"docs"},{"id":505,"pageTitle":"Math module","sectionTitle":"pow/2","sectionRoute":"/build/smart-contracts/language/library/math#pow2","type":"docs"},{"id":506,"pageTitle":"Math module","sectionTitle":"trunc/1","sectionRoute":"/build/smart-contracts/language/library/math#trunc1","type":"docs"},{"id":507,"pageTitle":"Math module","sectionTitle":"sqrt/1","sectionRoute":"/build/smart-contracts/language/library/math#sqrt1","type":"docs"},{"id":508,"pageTitle":"Math module","sectionTitle":"rem/2","sectionRoute":"/build/smart-contracts/language/library/math#rem2","type":"docs"},{"id":509,"pageTitle":"Regex module","sectionTitle":"Regex module","sectionRoute":"/build/smart-contracts/language/library/regex","type":"docs"},{"id":510,"pageTitle":"Regex module","sectionTitle":"extract/2","sectionRoute":"/build/smart-contracts/language/library/regex#extract2","type":"docs"},{"id":511,"pageTitle":"Regex module","sectionTitle":"match?/2","sectionRoute":"/build/smart-contracts/language/library/regex#match2","type":"docs"},{"id":512,"pageTitle":"Regex module","sectionTitle":"scan/2","sectionRoute":"/build/smart-contracts/language/library/regex#scan2","type":"docs"},{"id":513,"pageTitle":"State module","sectionTitle":"State module","sectionRoute":"/build/smart-contracts/language/library/state","type":"docs"},{"id":514,"pageTitle":"State module","sectionTitle":"get/1","sectionRoute":"/build/smart-contracts/language/library/state#get1","type":"docs"},{"id":515,"pageTitle":"State module","sectionTitle":"get/2","sectionRoute":"/build/smart-contracts/language/library/state#get2","type":"docs"},{"id":516,"pageTitle":"State module","sectionTitle":"set/2","sectionRoute":"/build/smart-contracts/language/library/state#set2","type":"docs"},{"id":517,"pageTitle":"State module","sectionTitle":"delete/1","sectionRoute":"/build/smart-contracts/language/library/state#delete1","type":"docs"},{"id":518,"pageTitle":"String module","sectionTitle":"String module","sectionRoute":"/build/smart-contracts/language/library/string","type":"docs"},{"id":519,"pageTitle":"String module","sectionTitle":"size/1","sectionRoute":"/build/smart-contracts/language/library/string#size1","type":"docs"},{"id":520,"pageTitle":"String module","sectionTitle":"in?/2","sectionRoute":"/build/smart-contracts/language/library/string#in2","type":"docs"},{"id":521,"pageTitle":"String module","sectionTitle":"to_number/1","sectionRoute":"/build/smart-contracts/language/library/string#to_number1","type":"docs"},{"id":522,"pageTitle":"String module","sectionTitle":"from_number/1","sectionRoute":"/build/smart-contracts/language/library/string#from_number1","type":"docs"},{"id":523,"pageTitle":"String module","sectionTitle":"to_hex/1","sectionRoute":"/build/smart-contracts/language/library/string#to_hex1","type":"docs"},{"id":524,"pageTitle":"String module","sectionTitle":"to_uppercase/1","sectionRoute":"/build/smart-contracts/language/library/string#to_uppercase1","type":"docs"},{"id":525,"pageTitle":"String module","sectionTitle":"to_lowercase/1","sectionRoute":"/build/smart-contracts/language/library/string#to_lowercase1","type":"docs"},{"id":526,"pageTitle":"Time module","sectionTitle":"Time module","sectionRoute":"/build/smart-contracts/language/library/time","type":"docs"},{"id":527,"pageTitle":"Time module","sectionTitle":"now/0","sectionRoute":"/build/smart-contracts/language/library/time#now0","type":"docs"},{"id":528,"pageTitle":"Token module","sectionTitle":"Token module","sectionRoute":"/build/smart-contracts/language/library/token","type":"docs"},{"id":529,"pageTitle":"Token module","sectionTitle":"fetch_id_from_address/1 [I/O] (DEPRECATED)","sectionRoute":"/build/smart-contracts/language/library/token#fetch_id_from_address1-io-deprecated","type":"docs"},{"id":531,"pageTitle":"Smart Contracts - Triggers","sectionTitle":"Smart Contracts - Triggers","sectionRoute":"/build/smart-contracts/language/triggers","type":"docs"},{"id":532,"pageTitle":"Smart Contracts - Triggers","sectionTitle":"Contract triggered by a transaction","sectionRoute":"/build/smart-contracts/language/triggers#contract-triggered-by-a-transaction","type":"docs"},{"id":533,"pageTitle":"Smart Contracts - Triggers","sectionTitle":"Contract triggered by a transaction with a named action","sectionRoute":"/build/smart-contracts/language/triggers#contract-triggered-by-a-transaction-with-a-named-action","type":"docs"},{"id":534,"pageTitle":"Smart Contracts - Triggers","sectionTitle":"Contract triggered at a specific date and time","sectionRoute":"/build/smart-contracts/language/triggers#contract-triggered-at-a-specific-date-and-time","type":"docs"},{"id":535,"pageTitle":"Smart Contracts - Triggers","sectionTitle":"Contract triggered at a specific interval","sectionRoute":"/build/smart-contracts/language/triggers#contract-triggered-at-a-specific-interval","type":"docs"},{"id":536,"pageTitle":"Smart Contracts - Triggers","sectionTitle":"Contract triggered on every Oracle transaction","sectionRoute":"/build/smart-contracts/language/triggers#contract-triggered-on-every-oracle-transaction","type":"docs"},{"id":537,"pageTitle":"Smart Contracts - Triggers","sectionTitle":"Multiple triggers","sectionRoute":"/build/smart-contracts/language/triggers#multiple-triggers","type":"docs"},{"id":530,"pageTitle":"Smart Contracts Playground","sectionTitle":"Smart Contracts Playground","sectionRoute":"/build/smart-contracts/playground/","type":"docs"},{"id":538,"pageTitle":"Smart Contracts Playground - Build","sectionTitle":"Smart Contracts Playground - Build","sectionRoute":"/build/smart-contracts/playground/build","type":"docs"},{"id":539,"pageTitle":"Smart Contracts Playground - Build","sectionTitle":"I. Write the contract","sectionRoute":"/build/smart-contracts/playground/build#i-write-the-contract","type":"docs"},{"id":540,"pageTitle":"Smart Contracts Playground - Build","sectionTitle":"II. Test the triggers","sectionRoute":"/build/smart-contracts/playground/build#ii-test-the-triggers","type":"docs"},{"id":541,"pageTitle":"Smart Contracts Playground - Build","sectionTitle":"Test trigger 'interval'","sectionRoute":"/build/smart-contracts/playground/build#test-trigger-interval","type":"docs"},{"id":542,"pageTitle":"Smart Contracts Playground - Build","sectionTitle":"Test trigger 'transaction'","sectionRoute":"/build/smart-contracts/playground/build#test-trigger-transaction","type":"docs"},{"id":543,"pageTitle":"Smart Contracts Playground - Build","sectionTitle":"Test trigger 'datetime'","sectionRoute":"/build/smart-contracts/playground/build#test-trigger-datetime","type":"docs"},{"id":544,"pageTitle":"Smart Contracts Playground - Build","sectionTitle":"Test trigger 'oracle'","sectionRoute":"/build/smart-contracts/playground/build#test-trigger-oracle","type":"docs"},{"id":545,"pageTitle":"Smart Contracts Playground - Deploy","sectionTitle":"Smart Contracts Playground - Deploy","sectionRoute":"/build/smart-contracts/playground/deploy","type":"docs"},{"id":549,"pageTitle":"Smart Contracts Playground - Functions","sectionTitle":"Smart Contracts Playground - Functions","sectionRoute":"/build/smart-contracts/playground/functions","type":"docs"},{"id":546,"pageTitle":"Smart Contracts Playground - Mock form","sectionTitle":"Smart Contracts Playground - Mock form","sectionRoute":"/build/smart-contracts/playground/mock-form","type":"docs"},{"id":547,"pageTitle":"Smart Contracts Playground - Mock form","sectionTitle":"Example: Time.now/0","sectionRoute":"/build/smart-contracts/playground/mock-form#example-timenow0","type":"docs"},{"id":548,"pageTitle":"Smart Contracts Playground - Mock form","sectionTitle":"Example: Chain.get_genesis_address/1","sectionRoute":"/build/smart-contracts/playground/mock-form#example-chainget_genesis_address1","type":"docs"},{"id":551,"pageTitle":"Smart Contracts Playground - Transaction form","sectionTitle":"Smart Contracts Playground - Transaction form","sectionRoute":"/build/smart-contracts/playground/transaction-form","type":"docs"},{"id":552,"pageTitle":"Smart Contracts Playground - Transaction form","sectionTitle":"type","sectionRoute":"/build/smart-contracts/playground/transaction-form#type","type":"docs"},{"id":553,"pageTitle":"Smart Contracts Playground - Transaction form","sectionTitle":"code","sectionRoute":"/build/smart-contracts/playground/transaction-form#code","type":"docs"},{"id":554,"pageTitle":"Smart Contracts Playground - Transaction form","sectionTitle":"content","sectionRoute":"/build/smart-contracts/playground/transaction-form#content","type":"docs"},{"id":555,"pageTitle":"Smart Contracts Playground - Transaction form","sectionTitle":"validation timestamp (not used in deployment)","sectionRoute":"/build/smart-contracts/playground/transaction-form#validation-timestamp-not-used-in-deployment","type":"docs"},{"id":556,"pageTitle":"Smart Contracts Playground - Transaction form","sectionTitle":"address (not used in deployment)","sectionRoute":"/build/smart-contracts/playground/transaction-form#address-not-used-in-deployment","type":"docs"},{"id":557,"pageTitle":"Smart Contracts Playground - Transaction form","sectionTitle":"uco transfers","sectionRoute":"/build/smart-contracts/playground/transaction-form#uco-transfers","type":"docs"},{"id":558,"pageTitle":"Smart Contracts Playground - Transaction form","sectionTitle":"token transfers","sectionRoute":"/build/smart-contracts/playground/transaction-form#token-transfers","type":"docs"},{"id":559,"pageTitle":"Smart Contracts Playground - Transaction form","sectionTitle":"recipients","sectionRoute":"/build/smart-contracts/playground/transaction-form#recipients","type":"docs"},{"id":560,"pageTitle":"Smart Contracts Playground - Transaction form","sectionTitle":"ownerships","sectionRoute":"/build/smart-contracts/playground/transaction-form#ownerships","type":"docs"},{"id":550,"pageTitle":"Smart Contracts - State","sectionTitle":"Smart Contracts - State","sectionRoute":"/build/smart-contracts/state","type":"docs"},{"id":561,"pageTitle":"Testnet","sectionTitle":"Testnet","sectionRoute":"/build/testnet","type":"docs"},{"id":562,"pageTitle":"Testnet","sectionTitle":"Local","sectionRoute":"/build/testnet#local","type":"docs"},{"id":563,"pageTitle":"Testnet","sectionTitle":"Installation","sectionRoute":"/build/testnet#installation","type":"docs"},{"id":564,"pageTitle":"Testnet","sectionTitle":"Get some funds","sectionRoute":"/build/testnet#get-some-funds","type":"docs"},{"id":565,"pageTitle":"Testnet","sectionTitle":"Public","sectionRoute":"/build/testnet#public","type":"docs"},{"id":566,"pageTitle":"Testnet","sectionTitle":"Get some funds","sectionRoute":"/build/testnet#get-some-funds-1","type":"docs"},{"id":576,"pageTitle":"","sectionTitle":"🗃️ GraphQL","sectionRoute":"/category/api","type":"docs"},{"id":567,"pageTitle":"","sectionTitle":"🗃️ Clients","sectionRoute":"/category/build","type":"docs"},{"id":568,"pageTitle":"","sectionTitle":"🗃️ API","sectionRoute":"/category/build","type":"docs"},{"id":569,"pageTitle":"","sectionTitle":"🗃️ Core development","sectionRoute":"/category/build","type":"docs"},{"id":570,"pageTitle":"","sectionTitle":"🗃️ SDK","sectionRoute":"/category/build","type":"docs"},{"id":571,"pageTitle":"","sectionTitle":"🗃️ Smart Contracts","sectionRoute":"/category/build","type":"docs"},{"id":572,"pageTitle":"","sectionTitle":"📄️ Testnet","sectionRoute":"/category/build","type":"docs"},{"id":573,"pageTitle":"","sectionTitle":"🗃️ Ledger wallet","sectionRoute":"/category/clients","type":"docs"},{"id":574,"pageTitle":"","sectionTitle":"📄️ Archethic's wallet access","sectionRoute":"/category/clients","type":"docs"},{"id":575,"pageTitle":"","sectionTitle":"📄️ Archethic's wallet specification","sectionRoute":"/category/clients","type":"docs"},{"id":584,"pageTitle":"","sectionTitle":"📄️ aeHosting","sectionRoute":"/category/faq","type":"docs"},{"id":585,"pageTitle":"","sectionTitle":"📄️ aeBridge","sectionRoute":"/category/faq","type":"docs"},{"id":586,"pageTitle":"","sectionTitle":"📄️ aeSwap","sectionRoute":"/category/faq","type":"docs"},{"id":587,"pageTitle":"","sectionTitle":"📄️ Migration of ERC-20 UCO Tokens","sectionRoute":"/category/faq","type":"docs"},{"id":588,"pageTitle":"","sectionTitle":"📄️ aeWallet","sectionRoute":"/category/faq","type":"docs"},{"id":577,"pageTitle":"","sectionTitle":"📄️ Schema Documentation","sectionRoute":"/category/graphql","type":"docs"},{"id":578,"pageTitle":"","sectionTitle":"🗃️ Directives","sectionRoute":"/category/graphql","type":"docs"},{"id":579,"pageTitle":"","sectionTitle":"🗃️ Enums","sectionRoute":"/category/graphql","type":"docs"},{"id":580,"pageTitle":"","sectionTitle":"🗃️ Objects","sectionRoute":"/category/graphql","type":"docs"},{"id":581,"pageTitle":"","sectionTitle":"🗃️ Queries","sectionRoute":"/category/graphql","type":"docs"},{"id":582,"pageTitle":"","sectionTitle":"🗃️ Scalars","sectionRoute":"/category/graphql","type":"docs"},{"id":583,"pageTitle":"","sectionTitle":"🗃️ Subscriptions","sectionRoute":"/category/graphql","type":"docs"},{"id":589,"pageTitle":"","sectionTitle":"📄️ Tutoriel Archethic DeFi","sectionRoute":"/category/participate","type":"docs"},{"id":590,"pageTitle":"","sectionTitle":"🗃️ Archethic Web (aeHosting)","sectionRoute":"/category/participate","type":"docs"},{"id":591,"pageTitle":"","sectionTitle":"🗃️ Archethic Bridge (aeBridge)","sectionRoute":"/category/participate","type":"docs"},{"id":592,"pageTitle":"","sectionTitle":"📄️ Archethic's CLI","sectionRoute":"/category/participate","type":"docs"},{"id":593,"pageTitle":"","sectionTitle":"🗃️ Archethic DEX (aeSwap)","sectionRoute":"/category/participate","type":"docs"},{"id":594,"pageTitle":"","sectionTitle":"🗃️ Archethic Wallet (aeWallet)","sectionRoute":"/category/participate","type":"docs"},{"id":595,"pageTitle":"","sectionTitle":"📄️ CLI","sectionRoute":"/category/usage","type":"docs"},{"id":596,"pageTitle":"","sectionTitle":"📄️ AEWeb Front End","sectionRoute":"/category/usage","type":"docs"},{"id":602,"pageTitle":"Contributing","sectionTitle":"Contributing","sectionRoute":"/contributing","type":"docs"},{"id":603,"pageTitle":"Contributing","sectionTitle":"How to contribute","sectionRoute":"/contributing#how-to-contribute","type":"docs"},{"id":604,"pageTitle":"Contributing","sectionTitle":"Guidelines","sectionRoute":"/contributing#guidelines","type":"docs"},{"id":605,"pageTitle":"Contributing","sectionTitle":"Diagrams","sectionRoute":"/contributing#diagrams","type":"docs"},{"id":597,"pageTitle":"aeHosting","sectionTitle":"aeHosting","sectionRoute":"/FAQ/aeweb","type":"docs"},{"id":598,"pageTitle":"aeHosting","sectionTitle":"General","sectionRoute":"/FAQ/aeweb#general","type":"docs"},{"id":599,"pageTitle":"aeHosting","sectionTitle":" How do I redirect my domain names to my websites deployed on the Archethic Blockchain?","sectionRoute":"/FAQ/aeweb#-how-do-i-redirect-my-domain-names-to-my-websites-deployed-on-the-archethic-blockchain","type":"docs"},{"id":600,"pageTitle":"aeHosting","sectionTitle":"What is the purpose of a .gitignore file?","sectionRoute":"/FAQ/aeweb#what-is-the-purpose-of-a-gitignore-file","type":"docs"},{"id":601,"pageTitle":"aeHosting","sectionTitle":"When using the Archethic wallet's \"link to a file hosted on AEWeb\" option to create an NFT with an image, does it require sending funds to the newly created address using AEWeb CLI?","sectionRoute":"/FAQ/aeweb#when-using-the-archethic-wallets-link-to-a-file-hosted-on-aeweb-option-to-create-an-nft-with-an-image-does-it-require-sending-funds-to-the-newly-created-address-using-aeweb-cli","type":"docs"},{"id":617,"pageTitle":"aeBridge","sectionTitle":"aeBridge","sectionRoute":"/FAQ/bridge-2-ways","type":"docs"},{"id":618,"pageTitle":"aeBridge","sectionTitle":"General","sectionRoute":"/FAQ/bridge-2-ways#general","type":"docs"},{"id":619,"pageTitle":"aeBridge","sectionTitle":"What is Archethic Bridge?","sectionRoute":"/FAQ/bridge-2-ways#what-is-archethic-bridge","type":"docs"},{"id":620,"pageTitle":"aeBridge","sectionTitle":"How to access the Archethic Bridge ?","sectionRoute":"/FAQ/bridge-2-ways#how-to-access-the-archethic-bridge-","type":"docs"},{"id":621,"pageTitle":"aeBridge","sectionTitle":"Which blockchain is better to bridge my UCOs?","sectionRoute":"/FAQ/bridge-2-ways#which-blockchain-is-better-to-bridge-my-ucos","type":"docs"},{"id":622,"pageTitle":"aeBridge","sectionTitle":"What blockchains does the Archethic Bridge support?","sectionRoute":"/FAQ/bridge-2-ways#what-blockchains-does-the-archethic-bridge-support","type":"docs"},{"id":623,"pageTitle":"aeBridge","sectionTitle":"Is the Archethic Bridge available on mobile devices?","sectionRoute":"/FAQ/bridge-2-ways#is-the-archethic-bridge-available-on-mobile-devices","type":"docs"},{"id":624,"pageTitle":"aeBridge","sectionTitle":"What is an EVM wallet?","sectionRoute":"/FAQ/bridge-2-ways#what-is-an-evm-wallet","type":"docs"},{"id":625,"pageTitle":"aeBridge","sectionTitle":"How is the price of $UCO estimated?","sectionRoute":"/FAQ/bridge-2-ways#how-is-the-price-of-uco-estimated","type":"docs"},{"id":626,"pageTitle":"aeBridge","sectionTitle":"How long is the predetermined time?","sectionRoute":"/FAQ/bridge-2-ways#how-long-is-the-predetermined-time","type":"docs"},{"id":627,"pageTitle":"aeBridge","sectionTitle":"Is the bridge audited?","sectionRoute":"/FAQ/bridge-2-ways#is-the-bridge-audited","type":"docs"},{"id":628,"pageTitle":"aeBridge","sectionTitle":"Key Concepts","sectionRoute":"/FAQ/bridge-2-ways#key-concepts","type":"docs"},{"id":629,"pageTitle":"aeBridge","sectionTitle":"What is an HTLC (Hash Time Lock Contract) in the context of Archethic's bridge?","sectionRoute":"/FAQ/bridge-2-ways#what-is-an-htlc-hash-time-lock-contract-in-the-context-of-archethics-bridge","type":"docs"},{"id":630,"pageTitle":"aeBridge","sectionTitle":"How does Archethic's cross-chain verification work?","sectionRoute":"/FAQ/bridge-2-ways#how-does-archethics-cross-chain-verification-work","type":"docs"},{"id":631,"pageTitle":"aeBridge","sectionTitle":"Specifics of Bridging","sectionRoute":"/FAQ/bridge-2-ways#specifics-of-bridging","type":"docs"},{"id":632,"pageTitle":"aeBridge","sectionTitle":"How does the process of bridging from EVM to Archethic work?","sectionRoute":"/FAQ/bridge-2-ways#how-does-the-process-of-bridging-from-evm-to-archethic-work","type":"docs"},{"id":633,"pageTitle":"aeBridge","sectionTitle":"What is the process for bridging from Archethic to EVM?","sectionRoute":"/FAQ/bridge-2-ways#what-is-the-process-for-bridging-from-archethic-to-evm","type":"docs"},{"id":634,"pageTitle":"aeBridge","sectionTitle":"Wallet","sectionRoute":"/FAQ/bridge-2-ways#wallet","type":"docs"},{"id":635,"pageTitle":"aeBridge","sectionTitle":"I’m using the Mainnet network in the Wallet, how can I switch on the Testnet?","sectionRoute":"/FAQ/bridge-2-ways#im-using-the-mainnet-network-in-the-wallet-how-can-i-switch-on-the-testnet","type":"docs"},{"id":636,"pageTitle":"aeBridge","sectionTitle":"Why can't I connect to the Archethic wallet with my Brave browser?","sectionRoute":"/FAQ/bridge-2-ways#why-cant-i-connect-to-the-archethic-wallet-with-my-brave-browser","type":"docs"},{"id":637,"pageTitle":"aeBridge","sectionTitle":"Testnet","sectionRoute":"/FAQ/bridge-2-ways#testnet","type":"docs"},{"id":638,"pageTitle":"aeBridge","sectionTitle":"How do I set up Ethereum Sepolia, Binance Testnet and Polygon Mumbai in my EVM Wallet?","sectionRoute":"/FAQ/bridge-2-ways#how-do-i-set-up-ethereum-sepolia-binance-testnet-and-polygon-mumbai-in-my-evm-wallet","type":"docs"},{"id":639,"pageTitle":"aeBridge","sectionTitle":"How can I buy $UCO after receiving $ETH, $MATIC, or $BNB?","sectionRoute":"/FAQ/bridge-2-ways#how-can-i-buy-uco-after-receiving-eth-matic-or-bnb","type":"docs"},{"id":640,"pageTitle":"aeBridge","sectionTitle":"Issues management","sectionRoute":"/FAQ/bridge-2-ways#issues-management","type":"docs"},{"id":641,"pageTitle":"aeBridge","sectionTitle":"What happens if a problem occurs, or I refuse a transaction during the transfer?","sectionRoute":"/FAQ/bridge-2-ways#what-happens-if-a-problem-occurs-or-i-refuse-a-transaction-during-the-transfer","type":"docs"},{"id":642,"pageTitle":"aeBridge","sectionTitle":"If I sent the tokens to a wrong Mainnet address, what to do?","sectionRoute":"/FAQ/bridge-2-ways#if-i-sent-the-tokens-to-a-wrong-mainnet-address-what-to-do","type":"docs"},{"id":643,"pageTitle":"aeBridge","sectionTitle":"Can I help the developers analyze the problems?","sectionRoute":"/FAQ/bridge-2-ways#can-i-help-the-developers-analyze-the-problems","type":"docs"},{"id":644,"pageTitle":"aeBridge","sectionTitle":"While a bridge from Archethic to EVM Blockchain, I have an error '1405'","sectionRoute":"/FAQ/bridge-2-ways#while-a-bridge-from-archethic-to-evm-blockchain-i-have-an-error-1405","type":"docs"},{"id":645,"pageTitle":"aeBridge","sectionTitle":"The bridge does not recognize my EVM wallet. What should I do?","sectionRoute":"/FAQ/bridge-2-ways#the-bridge-does-not-recognize-my-evm-wallet-what-should-i-do","type":"docs"},{"id":606,"pageTitle":"aeSwap","sectionTitle":"aeSwap","sectionRoute":"/FAQ/dex","type":"docs"},{"id":607,"pageTitle":"aeSwap","sectionTitle":"General","sectionRoute":"/FAQ/dex#general","type":"docs"},{"id":608,"pageTitle":"aeSwap","sectionTitle":"How to access the Archethic DEX named aeSwap ?","sectionRoute":"/FAQ/dex#how-to-access-the-archethic-dex-named-aeswap-","type":"docs"},{"id":609,"pageTitle":"aeSwap","sectionTitle":"Is the Archethic DEX available on mobile devices?","sectionRoute":"/FAQ/dex#is-the-archethic-dex-available-on-mobile-devices","type":"docs"},{"id":610,"pageTitle":"aeSwap","sectionTitle":"How is the price of UCO estimated?","sectionRoute":"/FAQ/dex#how-is-the-price-of-uco-estimated","type":"docs"},{"id":611,"pageTitle":"aeSwap","sectionTitle":"What web browsers are not supported?","sectionRoute":"/FAQ/dex#what-web-browsers-are-not-supported","type":"docs"},{"id":612,"pageTitle":"aeSwap","sectionTitle":"Why is a small quantity of liquidity pool shares removed when the first liquidity is added to a pool on Archethic?","sectionRoute":"/FAQ/dex#why-is-a-small-quantity-of-liquidity-pool-shares-removed-when-the-first-liquidity-is-added-to-a-pool-on-archethic","type":"docs"},{"id":613,"pageTitle":"aeSwap","sectionTitle":"What does APR (24h) mean in the pool information?","sectionRoute":"/FAQ/dex#what-does-apr-24h-mean-in-the-pool-information","type":"docs"},{"id":614,"pageTitle":"aeSwap","sectionTitle":"Wallet","sectionRoute":"/FAQ/dex#wallet","type":"docs"},{"id":615,"pageTitle":"aeSwap","sectionTitle":"I’m using the Mainnet network in the Wallet, how can I switch on the Testnet?","sectionRoute":"/FAQ/dex#im-using-the-mainnet-network-in-the-wallet-how-can-i-switch-on-the-testnet","type":"docs"},{"id":616,"pageTitle":"aeSwap","sectionTitle":"Why can't I connect to the Archethic wallet with my Brave browser?","sectionRoute":"/FAQ/dex#why-cant-i-connect-to-the-archethic-wallet-with-my-brave-browser","type":"docs"},{"id":646,"pageTitle":"Migration of ERC-20 UCO Tokens","sectionTitle":"Migration of ERC-20 UCO Tokens","sectionRoute":"/FAQ/migration-erc-token","type":"docs"},{"id":647,"pageTitle":"Migration of ERC-20 UCO Tokens","sectionTitle":"General","sectionRoute":"/FAQ/migration-erc-token#general","type":"docs"},{"id":648,"pageTitle":"Migration of ERC-20 UCO Tokens","sectionTitle":" Why Archethic migrates his ERC20 UCO Token? ","sectionRoute":"/FAQ/migration-erc-token#-why-archethic-migrates-his-erc20-uco-token-","type":"docs"},{"id":649,"pageTitle":"Migration of ERC-20 UCO Tokens","sectionTitle":"How do I migrate my V1 tokens to V2?","sectionRoute":"/FAQ/migration-erc-token#how-do-i-migrate-my-v1-tokens-to-v2","type":"docs"},{"id":650,"pageTitle":"Migration of ERC-20 UCO Tokens","sectionTitle":"If I have 3000 UCO in V1, how many UCO will I receive in V2?","sectionRoute":"/FAQ/migration-erc-token#if-i-have-3000-uco-in-v1-how-many-uco-will-i-receive-in-v2","type":"docs"},{"id":651,"pageTitle":"Migration of ERC-20 UCO Tokens","sectionTitle":"How much does the migration cost the user?","sectionRoute":"/FAQ/migration-erc-token#how-much-does-the-migration-cost-the-user","type":"docs"},{"id":652,"pageTitle":"Migration of ERC-20 UCO Tokens","sectionTitle":"I have UCO with more than 8 decimal places; does this have an impact?","sectionRoute":"/FAQ/migration-erc-token#i-have-uco-with-more-than-8-decimal-places-does-this-have-an-impact","type":"docs"},{"id":653,"pageTitle":"aeWallet","sectionTitle":"aeWallet","sectionRoute":"/FAQ/wallet","type":"docs"},{"id":654,"pageTitle":"aeWallet","sectionTitle":"General","sectionRoute":"/FAQ/wallet#general","type":"docs"},{"id":655,"pageTitle":"aeWallet","sectionTitle":" How to create a wallet on the Archethic blockchain?","sectionRoute":"/FAQ/wallet#-how-to-create-a-wallet-on-the-archethic-blockchain","type":"docs"},{"id":656,"pageTitle":"aeWallet","sectionTitle":" How to retrieve the address of my Archethic wallet?","sectionRoute":"/FAQ/wallet#-how-to-retrieve-the-address-of-my-archethic-wallet","type":"docs"},{"id":657,"pageTitle":"aeWallet","sectionTitle":"Troubleshooting","sectionRoute":"/FAQ/wallet#troubleshooting","type":"docs"},{"id":658,"pageTitle":"aeWallet","sectionTitle":"The Archethic wallet won't start or opens to a black or white screen","sectionRoute":"/FAQ/wallet#the-archethic-wallet-wont-start-or-opens-to-a-black-or-white-screen","type":"docs"},{"id":659,"pageTitle":"Archethic introduction","sectionTitle":"Archethic introduction","sectionRoute":"/learn/","type":"docs"},{"id":660,"pageTitle":"Archethic introduction","sectionTitle":"Motivations","sectionRoute":"/learn/#motivations","type":"docs"},{"id":661,"pageTitle":"Archethic introduction","sectionTitle":"Innovations","sectionRoute":"/learn/#innovations","type":"docs"},{"id":663,"pageTitle":"ARCH consensus","sectionTitle":"ARCH consensus","sectionRoute":"/learn/arch-consensus/","type":"docs"},{"id":664,"pageTitle":"ARCH consensus","sectionTitle":"Atomic Commitment","sectionRoute":"/learn/arch-consensus/#atomic-commitment","type":"docs"},{"id":665,"pageTitle":"ARCH consensus","sectionTitle":"Rotating Election","sectionRoute":"/learn/arch-consensus/#rotating-election","type":"docs"},{"id":666,"pageTitle":"ARCH consensus","sectionTitle":"Workflow","sectionRoute":"/learn/arch-consensus/#workflow","type":"docs"},{"id":662,"pageTitle":"Proof of Work","sectionTitle":"Proof of Work","sectionRoute":"/learn/arch-consensus/proof-of-work","type":"docs"},{"id":667,"pageTitle":"Cryptography","sectionTitle":"Cryptography","sectionRoute":"/learn/cryptography/","type":"docs"},{"id":668,"pageTitle":"Cryptography","sectionTitle":"Quantum-Safe","sectionRoute":"/learn/cryptography/#quantum-safe","type":"docs"},{"id":669,"pageTitle":"Cryptography","sectionTitle":"Non-Discolure of public keys","sectionRoute":"/learn/cryptography/#non-discolure-of-public-keys","type":"docs"},{"id":670,"pageTitle":"Cryptography","sectionTitle":"Origin Devices","sectionRoute":"/learn/cryptography/#origin-devices","type":"docs"},{"id":671,"pageTitle":"Cryptography","sectionTitle":"Adaptative","sectionRoute":"/learn/cryptography/#adaptative","type":"docs"},{"id":672,"pageTitle":"Cryptography","sectionTitle":"Public keys","sectionRoute":"/learn/cryptography/#public-keys","type":"docs"},{"id":673,"pageTitle":"Cryptography","sectionTitle":"Hashes","sectionRoute":"/learn/cryptography/#hashes","type":"docs"},{"id":674,"pageTitle":"Cryptography","sectionTitle":"Transaction addresses","sectionRoute":"/learn/cryptography/#transaction-addresses","type":"docs"},{"id":675,"pageTitle":"Cryptography","sectionTitle":"Default algorithms","sectionRoute":"/learn/cryptography/#default-algorithms","type":"docs"},{"id":676,"pageTitle":"Hardware Root of Trust","sectionTitle":"Hardware Root of Trust","sectionRoute":"/learn/cryptography/hardware-root-of-trust","type":"docs"},{"id":677,"pageTitle":"Hardware Root of Trust","sectionTitle":"What is hardware root of trust?","sectionRoute":"/learn/cryptography/hardware-root-of-trust#what-is-hardware-root-of-trust","type":"docs"},{"id":678,"pageTitle":"Hardware Root of Trust","sectionTitle":"Why hardware root of trust for Archethic?","sectionRoute":"/learn/cryptography/hardware-root-of-trust#why-hardware-root-of-trust-for-archethic","type":"docs"},{"id":679,"pageTitle":"Hardware Root of Trust","sectionTitle":"Implementation of Hardware Root of Trust (HRT)","sectionRoute":"/learn/cryptography/hardware-root-of-trust#implementation-of-hardware-root-of-trust-hrt","type":"docs"},{"id":680,"pageTitle":"Hardware Root of Trust","sectionTitle":"Placement of HRT in Archethic Blockchain/Ecosystem","sectionRoute":"/learn/cryptography/hardware-root-of-trust#placement-of-hrt-in-archethic-blockchainecosystem","type":"docs"},{"id":681,"pageTitle":"Decentralized Identity","sectionTitle":"Decentralized Identity","sectionRoute":"/learn/decentralized-id/","type":"docs"},{"id":682,"pageTitle":"Decentralized Identity","sectionTitle":"Identity","sectionRoute":"/learn/decentralized-id/#identity","type":"docs"},{"id":683,"pageTitle":"Decentralized Identity","sectionTitle":"Password-less","sectionRoute":"/learn/decentralized-id/#password-less","type":"docs"},{"id":690,"pageTitle":"Keychain","sectionTitle":"Keychain","sectionRoute":"/learn/decentralized-id/keychain","type":"docs"},{"id":691,"pageTitle":"Keychain","sectionTitle":"Key generation","sectionRoute":"/learn/decentralized-id/keychain#key-generation","type":"docs"},{"id":692,"pageTitle":"Keychain","sectionTitle":"End to end encryption","sectionRoute":"/learn/decentralized-id/keychain#end-to-end-encryption","type":"docs"},{"id":693,"pageTitle":"Keychain","sectionTitle":"Standard compliance","sectionRoute":"/learn/decentralized-id/keychain#standard-compliance","type":"docs"},{"id":694,"pageTitle":"Keychain","sectionTitle":"Customization","sectionRoute":"/learn/decentralized-id/keychain#customization","type":"docs"},{"id":684,"pageTitle":"Ecosystem","sectionTitle":"Ecosystem","sectionRoute":"/learn/ecosystem","type":"docs"},{"id":685,"pageTitle":"Ecosystem","sectionTitle":"Limitless network","sectionRoute":"/learn/ecosystem#limitless-network","type":"docs"},{"id":686,"pageTitle":"Ecosystem","sectionTitle":"Unlimited applications","sectionRoute":"/learn/ecosystem#unlimited-applications","type":"docs"},{"id":687,"pageTitle":"Ecosystem","sectionTitle":"Decentralized Identity","sectionRoute":"/learn/ecosystem#decentralized-identity","type":"docs"},{"id":688,"pageTitle":"Ecosystem","sectionTitle":"Governance","sectionRoute":"/learn/ecosystem#governance","type":"docs"},{"id":689,"pageTitle":"Ecosystem","sectionTitle":"Open enhancements","sectionRoute":"/learn/ecosystem#open-enhancements","type":"docs"},{"id":695,"pageTitle":"Transaction fees","sectionTitle":"Transaction fees","sectionRoute":"/learn/fee","type":"docs"},{"id":696,"pageTitle":"Transaction fees","sectionTitle":"Calculation","sectionRoute":"/learn/fee#calculation","type":"docs"},{"id":697,"pageTitle":"Transaction fees","sectionTitle":"Transaction's type particularities","sectionRoute":"/learn/fee#transactions-type-particularities","type":"docs"},{"id":698,"pageTitle":"Transaction fees","sectionTitle":"Network","sectionRoute":"/learn/fee#network","type":"docs"},{"id":699,"pageTitle":"Transaction fees","sectionTitle":"Keychain","sectionRoute":"/learn/fee#keychain","type":"docs"},{"id":700,"pageTitle":"Transaction fees","sectionTitle":"Token","sectionRoute":"/learn/fee#token","type":"docs"},{"id":701,"pageTitle":"Governance","sectionTitle":"Governance","sectionRoute":"/learn/governance/","type":"docs"},{"id":702,"pageTitle":"Governance","sectionTitle":"Decentralized Identity & Proof of Identity","sectionRoute":"/learn/governance/#decentralized-identity--proof-of-identity","type":"docs"},{"id":703,"pageTitle":"Governance","sectionTitle":"Code «On-Chain»","sectionRoute":"/learn/governance/#code-on-chain","type":"docs"},{"id":704,"pageTitle":"Governance","sectionTitle":"Introduction","sectionRoute":"/learn/governance/#introduction","type":"docs"},{"id":705,"pageTitle":"Governance","sectionTitle":"Details","sectionRoute":"/learn/governance/#details","type":"docs"},{"id":706,"pageTitle":"Governance","sectionTitle":"Incentives","sectionRoute":"/learn/governance/#incentives","type":"docs"},{"id":707,"pageTitle":"OracleChain","sectionTitle":"OracleChain","sectionRoute":"/learn/oracle-chain","type":"docs"},{"id":708,"pageTitle":"OracleChain","sectionTitle":"How is it work ?","sectionRoute":"/learn/oracle-chain#how-is-it-work-","type":"docs"},{"id":709,"pageTitle":"OracleChain","sectionTitle":"Services","sectionRoute":"/learn/oracle-chain#services","type":"docs"},{"id":710,"pageTitle":"P2P","sectionTitle":"P2P","sectionRoute":"/learn/p2p/","type":"docs"},{"id":711,"pageTitle":"P2P","sectionTitle":"Existing solutions","sectionRoute":"/learn/p2p/#existing-solutions","type":"docs"},{"id":712,"pageTitle":"P2P","sectionTitle":"Gossip","sectionRoute":"/learn/p2p/#gossip","type":"docs"},{"id":713,"pageTitle":"P2P","sectionTitle":"Broadcast","sectionRoute":"/learn/p2p/#broadcast","type":"docs"},{"id":714,"pageTitle":"P2P","sectionTitle":"Archethic's way","sectionRoute":"/learn/p2p/#archethics-way","type":"docs"},{"id":715,"pageTitle":"P2P","sectionTitle":"Transaction Validation Process","sectionRoute":"/learn/p2p/#transaction-validation-process","type":"docs"},{"id":716,"pageTitle":"P2P","sectionTitle":"Network transaction chains","sectionRoute":"/learn/p2p/#network-transaction-chains","type":"docs"},{"id":717,"pageTitle":"P2P","sectionTitle":"Beacons Chains","sectionRoute":"/learn/p2p/#beacons-chains","type":"docs"},{"id":718,"pageTitle":"P2P","sectionTitle":"Data propagation","sectionRoute":"/learn/p2p/#data-propagation","type":"docs"},{"id":719,"pageTitle":"Bootstrapping","sectionTitle":"Bootstrapping","sectionRoute":"/learn/p2p/bootstrapping","type":"docs"},{"id":720,"pageTitle":"Bootstrapping","sectionTitle":"Joining","sectionRoute":"/learn/p2p/bootstrapping#joining","type":"docs"},{"id":721,"pageTitle":"Bootstrapping","sectionTitle":"Updates","sectionRoute":"/learn/p2p/bootstrapping#updates","type":"docs"},{"id":722,"pageTitle":"Bootstrapping","sectionTitle":"Synchronization","sectionRoute":"/learn/p2p/bootstrapping#synchronization","type":"docs"},{"id":739,"pageTitle":"Self Repair","sectionTitle":"Self Repair","sectionRoute":"/learn/p2p/self-repair","type":"docs"},{"id":740,"pageTitle":"Self Repair","sectionTitle":"Identification","sectionRoute":"/learn/p2p/self-repair#identification","type":"docs"},{"id":741,"pageTitle":"Self Repair","sectionTitle":"Synchronization","sectionRoute":"/learn/p2p/self-repair#synchronization","type":"docs"},{"id":723,"pageTitle":"Patents","sectionTitle":"Patents","sectionRoute":"/learn/patents","type":"docs"},{"id":724,"pageTitle":"Patents","sectionTitle":"11 patents to build a new ecosystem","sectionRoute":"/learn/patents#11-patents-to-build-a-new-ecosystem","type":"docs"},{"id":725,"pageTitle":"Patents","sectionTitle":"Archethic, a Humanitarian and Community Project","sectionRoute":"/learn/patents#archethic-a-humanitarian-and-community-project","type":"docs"},{"id":726,"pageTitle":"Patents","sectionTitle":"List of patents","sectionRoute":"/learn/patents#list-of-patents","type":"docs"},{"id":727,"pageTitle":"Patents","sectionTitle":"Blockchain","sectionRoute":"/learn/patents#blockchain","type":"docs"},{"id":728,"pageTitle":"Patents","sectionTitle":"Biometrics","sectionRoute":"/learn/patents#biometrics","type":"docs"},{"id":729,"pageTitle":"Patents","sectionTitle":"Hardware","sectionRoute":"/learn/patents#hardware","type":"docs"},{"id":735,"pageTitle":"Sharding","sectionTitle":"Sharding","sectionRoute":"/learn/sharding/","type":"docs"},{"id":736,"pageTitle":"Sharding","sectionTitle":"Validation","sectionRoute":"/learn/sharding/#validation","type":"docs"},{"id":737,"pageTitle":"Sharding","sectionTitle":"Storage","sectionRoute":"/learn/sharding/#storage","type":"docs"},{"id":738,"pageTitle":"Sharding","sectionTitle":"Rotating Election","sectionRoute":"/learn/sharding/#rotating-election","type":"docs"},{"id":730,"pageTitle":"Beacon Chain","sectionTitle":"Beacon Chain","sectionRoute":"/learn/sharding/beacon-chain/","type":"docs"},{"id":731,"pageTitle":"Beacon Chain","sectionTitle":"Concepts","sectionRoute":"/learn/sharding/beacon-chain/#concepts","type":"docs"},{"id":732,"pageTitle":"Beacon Chain","sectionTitle":"Transaction tracking and timestamping","sectionRoute":"/learn/sharding/beacon-chain/#transaction-tracking-and-timestamping","type":"docs"},{"id":733,"pageTitle":"Beacon Chain","sectionTitle":"Status and Network Coordinates of nodes","sectionRoute":"/learn/sharding/beacon-chain/#status-and-network-coordinates-of-nodes","type":"docs"},{"id":734,"pageTitle":"Beacon Chain","sectionTitle":"Slot","sectionRoute":"/learn/sharding/beacon-chain/#slot","type":"docs"},{"id":742,"pageTitle":"Beacon Explorer","sectionTitle":"Beacon Explorer","sectionRoute":"/learn/sharding/beacon-chain/explorer","type":"docs"},{"id":743,"pageTitle":"Beacon Explorer","sectionTitle":"Concepts","sectionRoute":"/learn/sharding/beacon-chain/explorer#concepts","type":"docs"},{"id":744,"pageTitle":"Beacon Explorer","sectionTitle":"Slot","sectionRoute":"/learn/sharding/beacon-chain/explorer#slot","type":"docs"},{"id":745,"pageTitle":"Beacon Explorer","sectionTitle":"Epoch","sectionRoute":"/learn/sharding/beacon-chain/explorer#epoch","type":"docs"},{"id":746,"pageTitle":"Beacon Explorer","sectionTitle":"Subset","sectionRoute":"/learn/sharding/beacon-chain/explorer#subset","type":"docs"},{"id":747,"pageTitle":"Beacon Explorer","sectionTitle":"Process to get transaction notifications","sectionRoute":"/learn/sharding/beacon-chain/explorer#process-to-get-transaction-notifications","type":"docs"},{"id":748,"pageTitle":"Beacon Explorer","sectionTitle":"How to get transactions in realtime","sectionRoute":"/learn/sharding/beacon-chain/explorer#how-to-get-transactions-in-realtime","type":"docs"},{"id":749,"pageTitle":"Replication attestation","sectionTitle":"Replication attestation","sectionRoute":"/learn/sharding/replication-attestation","type":"docs"},{"id":750,"pageTitle":"Replication attestation","sectionTitle":"Heuristic solution","sectionRoute":"/learn/sharding/replication-attestation#heuristic-solution","type":"docs"},{"id":751,"pageTitle":"Replication attestation","sectionTitle":"Nested replications","sectionRoute":"/learn/sharding/replication-attestation#nested-replications","type":"docs"},{"id":752,"pageTitle":"Replication attestation","sectionTitle":"Client notifications","sectionRoute":"/learn/sharding/replication-attestation#client-notifications","type":"docs"},{"id":753,"pageTitle":"Replication attestation","sectionTitle":"Further improvements","sectionRoute":"/learn/sharding/replication-attestation#further-improvements","type":"docs"},{"id":754,"pageTitle":"Tokens","sectionTitle":"Tokens","sectionRoute":"/learn/token","type":"docs"},{"id":755,"pageTitle":"Tokens","sectionTitle":"Native","sectionRoute":"/learn/token#native","type":"docs"},{"id":756,"pageTitle":"Tokens","sectionTitle":"Standardized","sectionRoute":"/learn/token#standardized","type":"docs"},{"id":757,"pageTitle":"Tokens","sectionTitle":"Creation","sectionRoute":"/learn/token#creation","type":"docs"},{"id":758,"pageTitle":"Tokens","sectionTitle":"Fungible","sectionRoute":"/learn/token#fungible","type":"docs"},{"id":759,"pageTitle":"Tokens","sectionTitle":"Non-fungible","sectionRoute":"/learn/token#non-fungible","type":"docs"},{"id":760,"pageTitle":"Tokens","sectionTitle":"Resupply fungible tokens (AEIP-18)","sectionRoute":"/learn/token#resupply-fungible-tokens-aeip-18","type":"docs"},{"id":761,"pageTitle":"Tokens","sectionTitle":"Recipients (AEIP-19)","sectionRoute":"/learn/token#recipients-aeip-19","type":"docs"},{"id":762,"pageTitle":"Tokens","sectionTitle":"Transfer","sectionRoute":"/learn/token#transfer","type":"docs"},{"id":780,"pageTitle":"Transaction chains","sectionTitle":"Transaction chains","sectionRoute":"/learn/transaction-chain","type":"docs"},{"id":781,"pageTitle":"Transaction chains","sectionTitle":"Principles","sectionRoute":"/learn/transaction-chain#principles","type":"docs"},{"id":782,"pageTitle":"Transaction chains","sectionTitle":"Transaction structure","sectionRoute":"/learn/transaction-chain#transaction-structure","type":"docs"},{"id":783,"pageTitle":"Transaction chains","sectionTitle":"Pending transaction","sectionRoute":"/learn/transaction-chain#pending-transaction","type":"docs"},{"id":784,"pageTitle":"Transaction chains","sectionTitle":"Validated transaction","sectionRoute":"/learn/transaction-chain#validated-transaction","type":"docs"},{"id":763,"pageTitle":"Transaction types","sectionTitle":"Transaction types","sectionRoute":"/learn/transaction-types","type":"docs"},{"id":764,"pageTitle":"Transaction types","sectionTitle":"node (network)","sectionRoute":"/learn/transaction-types#node-network","type":"docs"},{"id":765,"pageTitle":"Transaction types","sectionTitle":"node_shared_secrets (network)","sectionRoute":"/learn/transaction-types#node_shared_secrets-network","type":"docs"},{"id":766,"pageTitle":"Transaction types","sectionTitle":"node_rewards (network)","sectionRoute":"/learn/transaction-types#node_rewards-network","type":"docs"},{"id":767,"pageTitle":"Transaction types","sectionTitle":"mint_rewards (network)","sectionRoute":"/learn/transaction-types#mint_rewards-network","type":"docs"},{"id":768,"pageTitle":"Transaction types","sectionTitle":"oracle (network)","sectionRoute":"/learn/transaction-types#oracle-network","type":"docs"},{"id":769,"pageTitle":"Transaction types","sectionTitle":"oracle_summary (network)","sectionRoute":"/learn/transaction-types#oracle_summary-network","type":"docs"},{"id":770,"pageTitle":"Transaction types","sectionTitle":"code_proposal (network)","sectionRoute":"/learn/transaction-types#code_proposal-network","type":"docs"},{"id":771,"pageTitle":"Transaction types","sectionTitle":"code_approval (network)","sectionRoute":"/learn/transaction-types#code_approval-network","type":"docs"},{"id":772,"pageTitle":"Transaction types","sectionTitle":"origin (network)","sectionRoute":"/learn/transaction-types#origin-network","type":"docs"},{"id":773,"pageTitle":"Transaction types","sectionTitle":"keychain","sectionRoute":"/learn/transaction-types#keychain","type":"docs"},{"id":774,"pageTitle":"Transaction types","sectionTitle":"keychain_access","sectionRoute":"/learn/transaction-types#keychain_access","type":"docs"},{"id":775,"pageTitle":"Transaction types","sectionTitle":"transfer","sectionRoute":"/learn/transaction-types#transfer","type":"docs"},{"id":776,"pageTitle":"Transaction types","sectionTitle":"token","sectionRoute":"/learn/transaction-types#token","type":"docs"},{"id":777,"pageTitle":"Transaction types","sectionTitle":"hosting","sectionRoute":"/learn/transaction-types#hosting","type":"docs"},{"id":778,"pageTitle":"Transaction types","sectionTitle":"data","sectionRoute":"/learn/transaction-types#data","type":"docs"},{"id":779,"pageTitle":"Transaction types","sectionTitle":"contract","sectionRoute":"/learn/transaction-types#contract","type":"docs"},{"id":785,"pageTitle":"UCO token","sectionTitle":"UCO token","sectionRoute":"/learn/uco","type":"docs"},{"id":786,"pageTitle":"UCO token","sectionTitle":"Fibonacci Golden Token Economics","sectionRoute":"/learn/uco#fibonacci-golden-token-economics","type":"docs"},{"id":788,"pageTitle":"Archethic Web (aeHosting)","sectionTitle":"Archethic Web (aeHosting)","sectionRoute":"/participate/aeweb/","type":"docs"},{"id":789,"pageTitle":"Archethic Web (aeHosting)","sectionTitle":"Motivations","sectionRoute":"/participate/aeweb/#motivations","type":"docs"},{"id":790,"pageTitle":"Archethic Web (aeHosting)","sectionTitle":"Easy","sectionRoute":"/participate/aeweb/#easy","type":"docs"},{"id":791,"pageTitle":"Archethic Web (aeHosting)","sectionTitle":"Security","sectionRoute":"/participate/aeweb/#security","type":"docs"},{"id":792,"pageTitle":"Archethic Web (aeHosting)","sectionTitle":"Costly efficient","sectionRoute":"/participate/aeweb/#costly-efficient","type":"docs"},{"id":793,"pageTitle":"Archethic Web (aeHosting)","sectionTitle":"Target","sectionRoute":"/participate/aeweb/#target","type":"docs"},{"id":794,"pageTitle":"Archethic Web (aeHosting)","sectionTitle":"Try out","sectionRoute":"/participate/aeweb/#try-out","type":"docs"},{"id":795,"pageTitle":"Archethic Web (aeHosting)","sectionTitle":"Graphical interface","sectionRoute":"/participate/aeweb/#graphical-interface","type":"docs"},{"id":796,"pageTitle":"Archethic Web (aeHosting)","sectionTitle":"Developers","sectionRoute":"/participate/aeweb/#developers","type":"docs"},{"id":797,"pageTitle":"Archethic Web (aeHosting)","sectionTitle":"Roadmap","sectionRoute":"/participate/aeweb/#roadmap","type":"docs"},{"id":787,"pageTitle":"Automate deployments","sectionTitle":"Automate deployments","sectionRoute":"/participate/aeweb/automation","type":"docs"},{"id":798,"pageTitle":"AEWeb - Domain names","sectionTitle":"AEWeb - Domain names","sectionRoute":"/participate/aeweb/dns","type":"docs"},{"id":799,"pageTitle":"AEWeb - Domain names","sectionTitle":"DNSLink","sectionRoute":"/participate/aeweb/dns#dnslink","type":"docs"},{"id":800,"pageTitle":"AEWeb - Domain names","sectionTitle":"Hosting provider integration","sectionRoute":"/participate/aeweb/dns#hosting-provider-integration","type":"docs"},{"id":801,"pageTitle":"AEWeb - Domain names","sectionTitle":"SSL","sectionRoute":"/participate/aeweb/dns#ssl","type":"docs"},{"id":802,"pageTitle":"AEWeb - Domain names","sectionTitle":"1. Get the certificate","sectionRoute":"/participate/aeweb/dns#1-get-the-certificate","type":"docs"},{"id":803,"pageTitle":"AEWeb - Domain names","sectionTitle":"2. Add the certificate on chain","sectionRoute":"/participate/aeweb/dns#2-add-the-certificate-on-chain","type":"docs"},{"id":804,"pageTitle":"AEWeb - How it works","sectionTitle":"AEWeb - How it works","sectionRoute":"/participate/aeweb/how-it-works","type":"docs"},{"id":805,"pageTitle":"AEWeb - How it works","sectionTitle":"Transaction building","sectionRoute":"/participate/aeweb/how-it-works#transaction-building","type":"docs"},{"id":806,"pageTitle":"AEWeb - How it works","sectionTitle":"Content delivery","sectionRoute":"/participate/aeweb/how-it-works#content-delivery","type":"docs"},{"id":807,"pageTitle":"AEWeb - How it works","sectionTitle":"Website updates","sectionRoute":"/participate/aeweb/how-it-works#website-updates","type":"docs"},{"id":808,"pageTitle":"AEWeb - How it works","sectionTitle":"Website unpublication","sectionRoute":"/participate/aeweb/how-it-works#website-unpublication","type":"docs"},{"id":809,"pageTitle":"","sectionTitle":"AEWeb Front end","sectionRoute":"/participate/aeweb/usage/aeweb-front","type":"docs"},{"id":810,"pageTitle":"","sectionTitle":"Tutorials","sectionRoute":"/participate/aeweb/usage/aeweb-front#tutorials","type":"docs"},{"id":811,"pageTitle":"","sectionTitle":"Deploy for the first time my static site","sectionRoute":"/participate/aeweb/usage/aeweb-front#deploy-for-the-first-time-my-static-site","type":"docs"},{"id":812,"pageTitle":"","sectionTitle":"Update my static site","sectionRoute":"/participate/aeweb/usage/aeweb-front#update-my-static-site","type":"docs"},{"id":813,"pageTitle":"","sectionTitle":"Update the SSL certificate","sectionRoute":"/participate/aeweb/usage/aeweb-front#update-the-ssl-certificate","type":"docs"},{"id":814,"pageTitle":"","sectionTitle":"Unpublish my static site","sectionRoute":"/participate/aeweb/usage/aeweb-front#unpublish-my-static-site","type":"docs"},{"id":815,"pageTitle":"","sectionTitle":"See my static site's informations","sectionRoute":"/participate/aeweb/usage/aeweb-front#see-my-static-sites-informations","type":"docs"},{"id":816,"pageTitle":"","sectionTitle":"Disconnect AEWeb","sectionRoute":"/participate/aeweb/usage/aeweb-front#disconnect-aeweb","type":"docs"},{"id":817,"pageTitle":"","sectionTitle":"Roadmap","sectionRoute":"/participate/aeweb/usage/aeweb-front#roadmap","type":"docs"},{"id":818,"pageTitle":"","sectionTitle":"AEWeb CLI (Command-Line Interface)","sectionRoute":"/participate/aeweb/usage/cli","type":"docs"},{"id":819,"pageTitle":"","sectionTitle":"aeweb generate-address","sectionRoute":"/participate/aeweb/usage/cli#aeweb-generate-address","type":"docs"},{"id":820,"pageTitle":"","sectionTitle":"aeweb deploy","sectionRoute":"/participate/aeweb/usage/cli#aeweb-deploy","type":"docs"},{"id":821,"pageTitle":"Archethic Bridge (aeBridge)","sectionTitle":"Archethic Bridge (aeBridge)","sectionRoute":"/participate/bridge/","type":"docs"},{"id":822,"pageTitle":"Archethic Bridge (aeBridge)","sectionTitle":"Key concepts","sectionRoute":"/participate/bridge/#key-concepts","type":"docs"},{"id":823,"pageTitle":"Archethic Bridge (aeBridge)","sectionTitle":"HTLC (Hash Time Lock Contract)","sectionRoute":"/participate/bridge/#htlc-hash-time-lock-contract","type":"docs"},{"id":824,"pageTitle":"Archethic Bridge (aeBridge)","sectionTitle":"Archethic's cross-chain verification","sectionRoute":"/participate/bridge/#archethics-cross-chain-verification","type":"docs"},{"id":825,"pageTitle":"Archethic Bridge (aeBridge)","sectionTitle":"EVM to Archethic","sectionRoute":"/participate/bridge/#evm-to-archethic","type":"docs"},{"id":826,"pageTitle":"Archethic Bridge (aeBridge)","sectionTitle":"Archethic to EVM","sectionRoute":"/participate/bridge/#archethic-to-evm","type":"docs"},{"id":827,"pageTitle":"Archethic Bridge (aeBridge)","sectionTitle":"How to access","sectionRoute":"/participate/bridge/#how-to-access","type":"docs"},{"id":828,"pageTitle":"Archethic Bridge (aeBridge)","sectionTitle":"Audit of EVM Smart Contracts","sectionRoute":"/participate/bridge/#audit-of-evm-smart-contracts","type":"docs"},{"id":829,"pageTitle":"Archethic Bridge (aeBridge)","sectionTitle":"FAQ","sectionRoute":"/participate/bridge/#faq","type":"docs"},{"id":830,"pageTitle":"","sectionTitle":"aeBridge - Tutorial","sectionRoute":"/participate/bridge/usage","type":"docs"},{"id":831,"pageTitle":"","sectionTitle":"Welcome Screen","sectionRoute":"/participate/bridge/usage#welcome-screen","type":"docs"},{"id":832,"pageTitle":"","sectionTitle":"Application Menu","sectionRoute":"/participate/bridge/usage#application-menu","type":"docs"},{"id":833,"pageTitle":"","sectionTitle":"Feature Access","sectionRoute":"/participate/bridge/usage#feature-access","type":"docs"},{"id":834,"pageTitle":"","sectionTitle":"Bridging Your Assets","sectionRoute":"/participate/bridge/usage#bridging-your-assets","type":"docs"},{"id":835,"pageTitle":"","sectionTitle":"Step 1: Initiating Transfer","sectionRoute":"/participate/bridge/usage#step-1-initiating-transfer","type":"docs"},{"id":836,"pageTitle":"","sectionTitle":"Step 2: Confirming Details","sectionRoute":"/participate/bridge/usage#step-2-confirming-details","type":"docs"},{"id":837,"pageTitle":"","sectionTitle":"Step 3: Executing Transfer","sectionRoute":"/participate/bridge/usage#step-3-executing-transfer","type":"docs"},{"id":838,"pageTitle":"","sectionTitle":"Local History and Management","sectionRoute":"/participate/bridge/usage#local-history-and-management","type":"docs"},{"id":839,"pageTitle":"","sectionTitle":"Options Include:","sectionRoute":"/participate/bridge/usage#options-include","type":"docs"},{"id":840,"pageTitle":"","sectionTitle":"Transfer Status Actions:","sectionRoute":"/participate/bridge/usage#transfer-status-actions","type":"docs"},{"id":841,"pageTitle":"","sectionTitle":"Refund Process","sectionRoute":"/participate/bridge/usage#refund-process","type":"docs"},{"id":842,"pageTitle":"Archethic's CLI","sectionTitle":"Archethic's CLI","sectionRoute":"/participate/cli/","type":"docs"},{"id":843,"pageTitle":"Archethic's CLI","sectionTitle":"Installation","sectionRoute":"/participate/cli/#installation","type":"docs"},{"id":844,"pageTitle":"Archethic's CLI","sectionTitle":"Generate address","sectionRoute":"/participate/cli/#generate-address","type":"docs"},{"id":845,"pageTitle":"Archethic's CLI","sectionTitle":"Build and send transaction","sectionRoute":"/participate/cli/#build-and-send-transaction","type":"docs"},{"id":846,"pageTitle":"Archethic's CLI","sectionTitle":"UCO transfers","sectionRoute":"/participate/cli/#uco-transfers","type":"docs"},{"id":847,"pageTitle":"Archethic's CLI","sectionTitle":"Token transfers","sectionRoute":"/participate/cli/#token-transfers","type":"docs"},{"id":848,"pageTitle":"Archethic's CLI","sectionTitle":"Recipients","sectionRoute":"/participate/cli/#recipients","type":"docs"},{"id":849,"pageTitle":"Archethic's CLI","sectionTitle":"Content","sectionRoute":"/participate/cli/#content","type":"docs"},{"id":850,"pageTitle":"Archethic's CLI","sectionTitle":"Smart contract","sectionRoute":"/participate/cli/#smart-contract","type":"docs"},{"id":851,"pageTitle":"Archethic's CLI","sectionTitle":"Sending the transaction","sectionRoute":"/participate/cli/#sending-the-transaction","type":"docs"},{"id":852,"pageTitle":"Archethic's CLI","sectionTitle":"Keychain management","sectionRoute":"/participate/cli/#keychain-management","type":"docs"},{"id":853,"pageTitle":"Archethic's CLI","sectionTitle":"Creating a keychain","sectionRoute":"/participate/cli/#creating-a-keychain","type":"docs"},{"id":854,"pageTitle":"Archethic's CLI","sectionTitle":"Accessing a keychain","sectionRoute":"/participate/cli/#accessing-a-keychain","type":"docs"},{"id":855,"pageTitle":"Archethic's CLI","sectionTitle":"Adding / removing a service","sectionRoute":"/participate/cli/#adding--removing-a-service","type":"docs"},{"id":856,"pageTitle":"Archethic's CLI","sectionTitle":"Create a transaction for a service","sectionRoute":"/participate/cli/#create-a-transaction-for-a-service","type":"docs"},{"id":857,"pageTitle":"Archethic's CLI","sectionTitle":"CLI - Archethic Command Line Interpreter","sectionRoute":"/participate/cli/#cli---archethic-command-line-interpreter","type":"docs"},{"id":858,"pageTitle":"Archethic's CLI","sectionTitle":"Contribution","sectionRoute":"/participate/cli/#contribution","type":"docs"},{"id":864,"pageTitle":"Tutoriel Archethic DeFi","sectionTitle":"Tutoriel Archethic DeFi","sectionRoute":"/participate/DeFi/","type":"docs"},{"id":865,"pageTitle":"Tutoriel Archethic DeFi","sectionTitle":"Welcome to the interactive guide for using the Archethic Bridge","sectionRoute":"/participate/DeFi/","type":"docs"},{"id":866,"pageTitle":"Tutoriel Archethic DeFi","sectionTitle":"This tutorial will explain the following points:","sectionRoute":"/participate/DeFi/","type":"docs"},{"id":859,"pageTitle":"","sectionTitle":"aeSwap DEX Documentation","sectionRoute":"/participate/dex/","type":"docs"},{"id":860,"pageTitle":"","sectionTitle":"What is a Decentralized Exchange (DEX)?","sectionRoute":"/participate/dex/#what-is-a-decentralized-exchange-dex","type":"docs"},{"id":861,"pageTitle":"","sectionTitle":"Key Features of aeSwap","sectionRoute":"/participate/dex/#key-features-of-aeswap","type":"docs"},{"id":862,"pageTitle":"","sectionTitle":"How to access","sectionRoute":"/participate/dex/#how-to-access","type":"docs"},{"id":863,"pageTitle":"","sectionTitle":"FAQ","sectionRoute":"/participate/dex/#faq","type":"docs"},{"id":867,"pageTitle":"","sectionTitle":"Swaps, Liquidity Pools, Farming","sectionRoute":"/participate/dex/Core Concepts/core_concepts_1","type":"docs"},{"id":868,"pageTitle":"","sectionTitle":"Swaps","sectionRoute":"/participate/dex/Core Concepts/core_concepts_1#swaps","type":"docs"},{"id":869,"pageTitle":"","sectionTitle":"Liquidity Pools","sectionRoute":"/participate/dex/Core Concepts/core_concepts_1#liquidity-pools","type":"docs"},{"id":870,"pageTitle":"","sectionTitle":"Farming","sectionRoute":"/participate/dex/Core Concepts/core_concepts_1#farming","type":"docs"},{"id":874,"pageTitle":"","sectionTitle":"Financials: Fees, APR, Understanding Returns","sectionRoute":"/participate/dex/Core Concepts/core_concepts_2","type":"docs"},{"id":875,"pageTitle":"","sectionTitle":"Fees","sectionRoute":"/participate/dex/Core Concepts/core_concepts_2#fees","type":"docs"},{"id":876,"pageTitle":"","sectionTitle":"APR and Understanding Returns","sectionRoute":"/participate/dex/Core Concepts/core_concepts_2#apr-and-understanding-returns","type":"docs"},{"id":871,"pageTitle":"","sectionTitle":"Security, Research & Math","sectionRoute":"/participate/dex/Core Concepts/core_concepts_3","type":"docs"},{"id":872,"pageTitle":"","sectionTitle":"Research & Math","sectionRoute":"/participate/dex/Core Concepts/core_concepts_3#research--math","type":"docs"},{"id":873,"pageTitle":"","sectionTitle":"The Mathematics of AMM and Constant Product Formula","sectionRoute":"/participate/dex/Core Concepts/core_concepts_3#the-mathematics-of-amm-and-constant-product-formula","type":"docs"},{"id":877,"pageTitle":"","sectionTitle":"aeSwap - Tutorial","sectionRoute":"/participate/dex/Guide_Usage/","type":"docs"},{"id":878,"pageTitle":"","sectionTitle":"Welcome Screen","sectionRoute":"/participate/dex/Guide_Usage/#welcome-screen","type":"docs"},{"id":879,"pageTitle":"","sectionTitle":"Application Menu","sectionRoute":"/participate/dex/Guide_Usage/#application-menu","type":"docs"},{"id":880,"pageTitle":"","sectionTitle":"Feature Access","sectionRoute":"/participate/dex/Guide_Usage/#feature-access","type":"docs"},{"id":881,"pageTitle":"","sectionTitle":"Farming","sectionRoute":"/participate/dex/Guide_Usage/farming","type":"docs"},{"id":882,"pageTitle":"","sectionTitle":"Detailed Breakdown","sectionRoute":"/participate/dex/Guide_Usage/farming#detailed-breakdown","type":"docs"},{"id":883,"pageTitle":"","sectionTitle":"Deposits & Rewards","sectionRoute":"/participate/dex/Guide_Usage/farming#deposits--rewards","type":"docs"},{"id":884,"pageTitle":"","sectionTitle":"Level-Based System","sectionRoute":"/participate/dex/Guide_Usage/farming#level-based-system","type":"docs"},{"id":885,"pageTitle":"","sectionTitle":"Locking Periods","sectionRoute":"/participate/dex/Guide_Usage/farming#locking-periods","type":"docs"},{"id":886,"pageTitle":"","sectionTitle":"Flexibility to Level Up","sectionRoute":"/participate/dex/Guide_Usage/farming#flexibility-to-level-up","type":"docs"},{"id":887,"pageTitle":"","sectionTitle":"Unlocking Rewards","sectionRoute":"/participate/dex/Guide_Usage/farming#unlocking-rewards","type":"docs"},{"id":888,"pageTitle":"","sectionTitle":"Dashboard","sectionRoute":"/participate/dex/Guide_Usage/farming#dashboard","type":"docs"},{"id":889,"pageTitle":"","sectionTitle":"Liquidity pool section","sectionRoute":"/participate/dex/Guide_Usage/farming#liquidity-pool-section","type":"docs"},{"id":890,"pageTitle":"","sectionTitle":"Farm pool section","sectionRoute":"/participate/dex/Guide_Usage/farming#farm-pool-section","type":"docs"},{"id":891,"pageTitle":"","sectionTitle":"Balances summary section","sectionRoute":"/participate/dex/Guide_Usage/farming#balances-summary-section","type":"docs"},{"id":892,"pageTitle":"","sectionTitle":"Farmed Tokens Summary section","sectionRoute":"/participate/dex/Guide_Usage/farming#farmed-tokens-summary-section","type":"docs"},{"id":893,"pageTitle":"","sectionTitle":"Deposits table","sectionRoute":"/participate/dex/Guide_Usage/farming#deposits-table","type":"docs"},{"id":894,"pageTitle":"","sectionTitle":"Interacting with Farms: Available Actions","sectionRoute":"/participate/dex/Guide_Usage/farming#interacting-with-farms-available-actions","type":"docs"},{"id":895,"pageTitle":"Liquidity Pool","sectionTitle":"Liquidity Pool","sectionRoute":"/participate/dex/Guide_Usage/liquidity_pool","type":"docs"},{"id":896,"pageTitle":"Liquidity Pool","sectionTitle":"Create a pool and add liquidity","sectionRoute":"/participate/dex/Guide_Usage/liquidity_pool#create-a-pool-and-add-liquidity","type":"docs"},{"id":897,"pageTitle":"Liquidity Pool","sectionTitle":"Step 1: Creating a Liquidity Pool: Essential Information","sectionRoute":"/participate/dex/Guide_Usage/liquidity_pool#step-1-creating-a-liquidity-pool-essential-information","type":"docs"},{"id":898,"pageTitle":"Liquidity Pool","sectionTitle":"Step 2: Finalizing Pool Creation: Confirmation and Validation Steps","sectionRoute":"/participate/dex/Guide_Usage/liquidity_pool#step-2-finalizing-pool-creation-confirmation-and-validation-steps","type":"docs"},{"id":899,"pageTitle":"Liquidity Pool","sectionTitle":"Navigating Pool Information","sectionRoute":"/participate/dex/Guide_Usage/liquidity_pool#navigating-pool-information","type":"docs"},{"id":900,"pageTitle":"Liquidity Pool","sectionTitle":"Front View: Essential Pool Details","sectionRoute":"/participate/dex/Guide_Usage/liquidity_pool#front-view-essential-pool-details","type":"docs"},{"id":901,"pageTitle":"Liquidity Pool","sectionTitle":"Back View: Exploring Pool Details","sectionRoute":"/participate/dex/Guide_Usage/liquidity_pool#back-view-exploring-pool-details","type":"docs"},{"id":902,"pageTitle":"Liquidity Pool","sectionTitle":"Interacting with Pools: Available Actions","sectionRoute":"/participate/dex/Guide_Usage/liquidity_pool#interacting-with-pools-available-actions","type":"docs"},{"id":903,"pageTitle":"Liquidity Pool","sectionTitle":"Fees","sectionRoute":"/participate/dex/Guide_Usage/liquidity_pool#fees","type":"docs"},{"id":904,"pageTitle":"Liquidity Pool","sectionTitle":"Specificity of the aeETH / UCO pair","sectionRoute":"/participate/dex/Guide_Usage/liquidity_pool#specificity-of-the-aeeth--uco-pair","type":"docs"},{"id":905,"pageTitle":"Liquidity Pool","sectionTitle":"Add Liquidity","sectionRoute":"/participate/dex/Guide_Usage/liquidity_pool#add-liquidity","type":"docs"},{"id":906,"pageTitle":"Liquidity Pool","sectionTitle":"Step 1: Adding Liquidity: Essential Information","sectionRoute":"/participate/dex/Guide_Usage/liquidity_pool#step-1-adding-liquidity-essential-information","type":"docs"},{"id":907,"pageTitle":"Liquidity Pool","sectionTitle":"Step 2: Finalizing Liquidity Addition: Confirmation and Validation Steps","sectionRoute":"/participate/dex/Guide_Usage/liquidity_pool#step-2-finalizing-liquidity-addition-confirmation-and-validation-steps","type":"docs"},{"id":908,"pageTitle":"Liquidity Pool","sectionTitle":"Remove Liquidity","sectionRoute":"/participate/dex/Guide_Usage/liquidity_pool#remove-liquidity","type":"docs"},{"id":909,"pageTitle":"Liquidity Pool","sectionTitle":"Step 1: Removing Liquidity: Essential Information","sectionRoute":"/participate/dex/Guide_Usage/liquidity_pool#step-1-removing-liquidity-essential-information","type":"docs"},{"id":910,"pageTitle":"Liquidity Pool","sectionTitle":"Step 2: Finalizing Liquidity Removal: Confirmation and Validation Steps","sectionRoute":"/participate/dex/Guide_Usage/liquidity_pool#step-2-finalizing-liquidity-removal-confirmation-and-validation-steps","type":"docs"},{"id":911,"pageTitle":"Swap","sectionTitle":"Swap","sectionRoute":"/participate/dex/Guide_Usage/swap","type":"docs"},{"id":912,"pageTitle":"Swap","sectionTitle":"Swapping Your Tokens","sectionRoute":"/participate/dex/Guide_Usage/swap#swapping-your-tokens","type":"docs"},{"id":913,"pageTitle":"Swap","sectionTitle":"Step 1: Swap - Essential Information","sectionRoute":"/participate/dex/Guide_Usage/swap#step-1-swap---essential-information","type":"docs"},{"id":914,"pageTitle":"Swap","sectionTitle":"Step 2: Finalizing swap: Confirmation and Validation Steps","sectionRoute":"/participate/dex/Guide_Usage/swap#step-2-finalizing-swap-confirmation-and-validation-steps","type":"docs"},{"id":927,"pageTitle":"","sectionTitle":"Ecosystem Participants","sectionRoute":"/participate/dex/Overview/ecosystem_participants","type":"docs"},{"id":928,"pageTitle":"","sectionTitle":"Liquidity Providers (LPs)","sectionRoute":"/participate/dex/Overview/ecosystem_participants#liquidity-providers-lps","type":"docs"},{"id":929,"pageTitle":"","sectionTitle":"Traders","sectionRoute":"/participate/dex/Overview/ecosystem_participants#traders","type":"docs"},{"id":930,"pageTitle":"","sectionTitle":"Developers","sectionRoute":"/participate/dex/Overview/ecosystem_participants#developers","type":"docs"},{"id":915,"pageTitle":"","sectionTitle":"Glossary","sectionRoute":"/participate/dex/Overview/glossary","type":"docs"},{"id":916,"pageTitle":"","sectionTitle":"aeSwap","sectionRoute":"/participate/dex/Overview/glossary#aeswap","type":"docs"},{"id":917,"pageTitle":"","sectionTitle":"Automated Market Maker (AMM)","sectionRoute":"/participate/dex/Overview/glossary#automated-market-maker-amm","type":"docs"},{"id":918,"pageTitle":"","sectionTitle":"Liquidity Addition","sectionRoute":"/participate/dex/Overview/glossary#liquidity-addition","type":"docs"},{"id":919,"pageTitle":"","sectionTitle":"Liquidity Provider (LP)","sectionRoute":"/participate/dex/Overview/glossary#liquidity-provider-lp","type":"docs"},{"id":920,"pageTitle":"","sectionTitle":"Liquidity Removal","sectionRoute":"/participate/dex/Overview/glossary#liquidity-removal","type":"docs"},{"id":921,"pageTitle":"","sectionTitle":"Pool","sectionRoute":"/participate/dex/Overview/glossary#pool","type":"docs"},{"id":922,"pageTitle":"","sectionTitle":"Price Impact","sectionRoute":"/participate/dex/Overview/glossary#price-impact","type":"docs"},{"id":923,"pageTitle":"","sectionTitle":"Slippage","sectionRoute":"/participate/dex/Overview/glossary#slippage","type":"docs"},{"id":924,"pageTitle":"","sectionTitle":"Swap","sectionRoute":"/participate/dex/Overview/glossary#swap","type":"docs"},{"id":925,"pageTitle":"","sectionTitle":"Total Value Locked (TVL)","sectionRoute":"/participate/dex/Overview/glossary#total-value-locked-tvl","type":"docs"},{"id":926,"pageTitle":"","sectionTitle":"Yield Farming","sectionRoute":"/participate/dex/Overview/glossary#yield-farming","type":"docs"},{"id":932,"pageTitle":"Protocol Overview","sectionTitle":"Protocol Overview","sectionRoute":"/participate/dex/Overview/protocol_overview","type":"docs"},{"id":933,"pageTitle":"Protocol Overview","sectionTitle":"Introduction","sectionRoute":"/participate/dex/Overview/protocol_overview#introduction","type":"docs"},{"id":934,"pageTitle":"Protocol Overview","sectionTitle":"The AMM Model","sectionRoute":"/participate/dex/Overview/protocol_overview#the-amm-model","type":"docs"},{"id":935,"pageTitle":"Protocol Overview","sectionTitle":"Participating in aeSwap","sectionRoute":"/participate/dex/Overview/protocol_overview#participating-in-aeswap","type":"docs"},{"id":936,"pageTitle":"Protocol Overview","sectionTitle":"Ensuring Fair and Secure Trading","sectionRoute":"/participate/dex/Overview/protocol_overview#ensuring-fair-and-secure-trading","type":"docs"},{"id":937,"pageTitle":"Protocol Overview","sectionTitle":"Rewards and Yield Farming","sectionRoute":"/participate/dex/Overview/protocol_overview#rewards-and-yield-farming","type":"docs"},{"id":938,"pageTitle":"Protocol Overview","sectionTitle":"The Mathematics of AMM and Constant Product Formula","sectionRoute":"/participate/dex/Overview/protocol_overview#the-mathematics-of-amm-and-constant-product-formula","type":"docs"},{"id":939,"pageTitle":"Protocol Overview","sectionTitle":"Example Calculation","sectionRoute":"/participate/dex/Overview/protocol_overview#example-calculation","type":"docs"},{"id":940,"pageTitle":"Protocol Overview","sectionTitle":"Price Impact and Slippage","sectionRoute":"/participate/dex/Overview/protocol_overview#price-impact-and-slippage","type":"docs"},{"id":941,"pageTitle":"Protocol Overview","sectionTitle":"Conclusion and Further Exploration","sectionRoute":"/participate/dex/Overview/protocol_overview#conclusion-and-further-exploration","type":"docs"},{"id":931,"pageTitle":"Smart Contracts","sectionTitle":"Smart Contracts","sectionRoute":"/participate/dex/Overview/smart_contracts/","type":"docs"},{"id":942,"pageTitle":"Farm Lock Smart Contract","sectionTitle":"Farm Lock Smart Contract","sectionRoute":"/participate/dex/Overview/smart_contracts/farm-lock","type":"docs"},{"id":943,"pageTitle":"Farm Lock Smart Contract","sectionTitle":"Rewards","sectionRoute":"/participate/dex/Overview/smart_contracts/farm-lock#rewards","type":"docs"},{"id":944,"pageTitle":"Farm Lock Smart Contract","sectionTitle":"Weights","sectionRoute":"/participate/dex/Overview/smart_contracts/farm-lock#weights","type":"docs"},{"id":945,"pageTitle":"Farm Lock Smart Contract","sectionTitle":"Rewards are calculated every hours","sectionRoute":"/participate/dex/Overview/smart_contracts/farm-lock#rewards-are-calculated-every-hours","type":"docs"},{"id":946,"pageTitle":"Farm Lock Smart Contract","sectionTitle":"State","sectionRoute":"/participate/dex/Overview/smart_contracts/farm-lock#state","type":"docs"},{"id":947,"pageTitle":"Farm Lock Smart Contract","sectionTitle":"Calculations","sectionRoute":"/participate/dex/Overview/smart_contracts/farm-lock#calculations","type":"docs"},{"id":948,"pageTitle":"Farm Lock Smart Contract","sectionTitle":"An example","sectionRoute":"/participate/dex/Overview/smart_contracts/farm-lock#an-example","type":"docs"},{"id":949,"pageTitle":"Farm Lock Smart Contract","sectionTitle":"Giveaways","sectionRoute":"/participate/dex/Overview/smart_contracts/farm-lock#giveaways","type":"docs"},{"id":950,"pageTitle":"Archethic Wallet (aeWallet)","sectionTitle":"Archethic Wallet (aeWallet)","sectionRoute":"/participate/wallet/","type":"docs"},{"id":951,"pageTitle":"Archethic Wallet (aeWallet)","sectionTitle":"Features","sectionRoute":"/participate/wallet/#features","type":"docs"},{"id":952,"pageTitle":"Archethic Wallet (aeWallet)","sectionTitle":"How to download the app","sectionRoute":"/participate/wallet/#how-to-download-the-app","type":"docs"},{"id":953,"pageTitle":"Archethic Wallet (aeWallet)","sectionTitle":"Framework","sectionRoute":"/participate/wallet/#framework","type":"docs"},{"id":954,"pageTitle":"Archethic Wallet (aeWallet)","sectionTitle":"Seed","sectionRoute":"/participate/wallet/#seed","type":"docs"},{"id":955,"pageTitle":"Archethic Wallet (aeWallet)","sectionTitle":"Securing the application","sectionRoute":"/participate/wallet/#securing-the-application","type":"docs"},{"id":956,"pageTitle":"Archethic Wallet (aeWallet)","sectionTitle":"Data store","sectionRoute":"/participate/wallet/#data-store","type":"docs"},{"id":957,"pageTitle":"Archethic Wallet (aeWallet)","sectionTitle":"Interactions with the Archethic blockchain","sectionRoute":"/participate/wallet/#interactions-with-the-archethic-blockchain","type":"docs"},{"id":958,"pageTitle":"Archethic Wallet (aeWallet)","sectionTitle":"Setup","sectionRoute":"/participate/wallet/#setup","type":"docs"},{"id":959,"pageTitle":"Archethic Wallet (aeWallet)","sectionTitle":"Pre-requisites","sectionRoute":"/participate/wallet/#pre-requisites","type":"docs"},{"id":960,"pageTitle":"Archethic Wallet (aeWallet)","sectionTitle":"Instructions","sectionRoute":"/participate/wallet/#instructions","type":"docs"},{"id":961,"pageTitle":"Communication with DApps","sectionTitle":"Communication with DApps","sectionRoute":"/participate/wallet/dapps-communication","type":"docs"},{"id":962,"pageTitle":"Communication with DApps","sectionTitle":"Point of view on usage","sectionRoute":"/participate/wallet/dapps-communication","type":"docs"},{"id":963,"pageTitle":"Communication with DApps","sectionTitle":"Technical point of view","sectionRoute":"/participate/wallet/dapps-communication","type":"docs"},{"id":964,"pageTitle":"Communication with DApps","sectionTitle":"Available commands","sectionRoute":"/participate/wallet/dapps-communication","type":"docs"},{"id":965,"pageTitle":"Communication with DApps","sectionTitle":"RPC Methods","sectionRoute":"/participate/wallet/dapps-communication","type":"docs"},{"id":966,"pageTitle":"Communication with DApps","sectionTitle":"get_endpoint","sectionRoute":"/participate/wallet/dapps-communication#get_endpoint","type":"docs"},{"id":967,"pageTitle":"Communication with DApps","sectionTitle":"Request","sectionRoute":"/participate/wallet/dapps-communication#request","type":"docs"},{"id":968,"pageTitle":"Communication with DApps","sectionTitle":"Success Response","sectionRoute":"/participate/wallet/dapps-communication#success-response","type":"docs"},{"id":969,"pageTitle":"Communication with DApps","sectionTitle":"refresh_current_account","sectionRoute":"/participate/wallet/dapps-communication#refresh_current_account","type":"docs"},{"id":970,"pageTitle":"Communication with DApps","sectionTitle":"Request","sectionRoute":"/participate/wallet/dapps-communication#request-1","type":"docs"},{"id":971,"pageTitle":"Communication with DApps","sectionTitle":"Success Response","sectionRoute":"/participate/wallet/dapps-communication#success-response-1","type":"docs"},{"id":972,"pageTitle":"Communication with DApps","sectionTitle":"get_accounts","sectionRoute":"/participate/wallet/dapps-communication#get_accounts","type":"docs"},{"id":973,"pageTitle":"Communication with DApps","sectionTitle":"Request","sectionRoute":"/participate/wallet/dapps-communication#request-2","type":"docs"},{"id":974,"pageTitle":"Communication with DApps","sectionTitle":"Success Response","sectionRoute":"/participate/wallet/dapps-communication#success-response-2","type":"docs"},{"id":975,"pageTitle":"Communication with DApps","sectionTitle":"send_transaction","sectionRoute":"/participate/wallet/dapps-communication#send_transaction","type":"docs"},{"id":976,"pageTitle":"Communication with DApps","sectionTitle":"Request","sectionRoute":"/participate/wallet/dapps-communication#request-3","type":"docs"},{"id":977,"pageTitle":"Communication with DApps","sectionTitle":"Success Response","sectionRoute":"/participate/wallet/dapps-communication#success-response-3","type":"docs"},{"id":978,"pageTitle":"Communication with DApps","sectionTitle":"add_service","sectionRoute":"/participate/wallet/dapps-communication#add_service","type":"docs"},{"id":979,"pageTitle":"Communication with DApps","sectionTitle":"Request","sectionRoute":"/participate/wallet/dapps-communication#request-4","type":"docs"},{"id":980,"pageTitle":"Communication with DApps","sectionTitle":"Success Response","sectionRoute":"/participate/wallet/dapps-communication#success-response-4","type":"docs"},{"id":981,"pageTitle":"Communication with DApps","sectionTitle":"remove_service","sectionRoute":"/participate/wallet/dapps-communication#remove_service","type":"docs"},{"id":982,"pageTitle":"Communication with DApps","sectionTitle":"Request","sectionRoute":"/participate/wallet/dapps-communication#request-5","type":"docs"},{"id":983,"pageTitle":"Communication with DApps","sectionTitle":"Success Response","sectionRoute":"/participate/wallet/dapps-communication#success-response-5","type":"docs"},{"id":984,"pageTitle":"Communication with DApps","sectionTitle":"get_services_from_keychain","sectionRoute":"/participate/wallet/dapps-communication#get_services_from_keychain","type":"docs"},{"id":985,"pageTitle":"Communication with DApps","sectionTitle":"Request","sectionRoute":"/participate/wallet/dapps-communication#request-6","type":"docs"},{"id":986,"pageTitle":"Communication with DApps","sectionTitle":"Success Response","sectionRoute":"/participate/wallet/dapps-communication#success-response-6","type":"docs"},{"id":987,"pageTitle":"Communication with DApps","sectionTitle":"keychain_derive_keypair","sectionRoute":"/participate/wallet/dapps-communication#keychain_derive_keypair","type":"docs"},{"id":988,"pageTitle":"Communication with DApps","sectionTitle":"Request","sectionRoute":"/participate/wallet/dapps-communication#request-7","type":"docs"},{"id":989,"pageTitle":"Communication with DApps","sectionTitle":"Success Response","sectionRoute":"/participate/wallet/dapps-communication#success-response-7","type":"docs"},{"id":990,"pageTitle":"Communication with DApps","sectionTitle":"keychain_derive_address","sectionRoute":"/participate/wallet/dapps-communication#keychain_derive_address","type":"docs"},{"id":991,"pageTitle":"Communication with DApps","sectionTitle":"Request","sectionRoute":"/participate/wallet/dapps-communication#request-8","type":"docs"},{"id":992,"pageTitle":"Communication with DApps","sectionTitle":"Success Response","sectionRoute":"/participate/wallet/dapps-communication#success-response-8","type":"docs"},{"id":993,"pageTitle":"Communication with DApps","sectionTitle":"get_current_account","sectionRoute":"/participate/wallet/dapps-communication#get_current_account","type":"docs"},{"id":994,"pageTitle":"Communication with DApps","sectionTitle":"Request","sectionRoute":"/participate/wallet/dapps-communication#request-9","type":"docs"},{"id":995,"pageTitle":"Communication with DApps","sectionTitle":"Success Response","sectionRoute":"/participate/wallet/dapps-communication#success-response-9","type":"docs"},{"id":996,"pageTitle":"Communication with DApps","sectionTitle":"sign_transactions","sectionRoute":"/participate/wallet/dapps-communication#sign_transactions","type":"docs"},{"id":997,"pageTitle":"Communication with DApps","sectionTitle":"Request","sectionRoute":"/participate/wallet/dapps-communication#request-10","type":"docs"},{"id":998,"pageTitle":"Communication with DApps","sectionTitle":"Success Response","sectionRoute":"/participate/wallet/dapps-communication#success-response-10","type":"docs"},{"id":999,"pageTitle":"Communication with DApps","sectionTitle":"sign_payloads","sectionRoute":"/participate/wallet/dapps-communication#sign_payloads","type":"docs"},{"id":1000,"pageTitle":"Communication with DApps","sectionTitle":"Request","sectionRoute":"/participate/wallet/dapps-communication#request-11","type":"docs"},{"id":1001,"pageTitle":"Communication with DApps","sectionTitle":"Success Response","sectionRoute":"/participate/wallet/dapps-communication#success-response-11","type":"docs"},{"id":1002,"pageTitle":"Communication with DApps","sectionTitle":"In conclusion","sectionRoute":"/participate/wallet/dapps-communication","type":"docs"},{"id":1003,"pageTitle":"Schema Documentation","sectionTitle":"Schema Documentation","sectionRoute":"/schema","type":"docs"}],"index":{"version":"2.3.9","fields":["title","content"],"fieldVectors":[["title/10",[0,3.698]],["content/10",[0,4.748,1,6.342,2,7.607,3,4.547,4,7.607,5,4.392,6,4.519,7,5.067,8,1.735,9,7.607,10,7.607]],["title/11",[5,4.338]],["content/11",[0,4.315,6,5.208,7,5.84,8,1.365,11,9.515,12,4.887,13,5.84,14,3.803]],["title/5",[15,6.778]],["content/5",[1,6.342,2,7.607,3,4.547,4,7.607,5,4.392,6,4.519,7,5.067,8,1.735,9,7.607,10,7.607,15,8.702]],["title/6",[5,4.338]],["content/6",[6,5.208,7,5.84,8,1.365,12,4.887,13,5.84,14,3.803,15,7.908,16,9.515]],["title/2",[17,6.778]],["content/2",[8,1.623,17,7.776,18,1.417,19,6.093,20,5.743,21,6.196,22,9.356,23,9.356]],["title/3",[24,3.162]],["content/3",[18,1.492,25,9.849,26,6.903,27,9.849,28,3.123,29,8.186]],["title/4",[30,3.797]],["content/4",[31,7.424,32,3.812]],["title/7",[33,6.778]],["content/7",[8,1.545,21,5.719,24,3.349,33,8.953,34,3.223,35,4.228,36,5.041,37,4.436,38,9.369,39,10.772]],["title/8",[24,3.162]],["content/8",[35,5.713,40,9.849,41,9.849,42,9.849,43,9.849]],["title/9",[30,3.797]],["content/9",[44,7.276,45,4.899]],["title/12",[46,6.317]],["content/12",[8,1.374,34,2.686,46,7.418,47,4.762,48,3.274,49,3.298,50,3.728,51,5.27,52,3.163,53,6.139,54,4.766,55,2.198,56,7.196,57,4.106,58,5.727]],["title/13",[3,3.541]],["content/13",[8,1.64,14,4.568,57,5.43,58,5.69,59,9.515,60,9.515]],["title/14",[30,3.797]],["content/14",[32,3.812,61,5.98]],["title/24",[62,4.087]],["content/24",[0,3.636,8,1.474,34,2.993,55,2.45,62,6.199,63,4.19,64,4.101,65,3.391,66,6.212,67,3.786]],["title/25",[3,3.541]],["content/25",[8,1.623,14,3.739,32,3.367,66,7.247,67,4.417,68,9.356,69,3.121,70,8.622]],["title/26",[71,2.547]],["content/26",[45,4.899,62,5.309]],["title/27",[30,3.797]],["content/27",[18,1.604,32,3.812]],["title/15",[72,5.715]],["content/15",[8,1.534,34,2.652,55,2.17,67,4.483,72,4.98,73,5.198,74,2.818,75,3.969,76,4.627,77,4.88,78,3.78,79,7.105,80,7.892,81,7.105,82,3.505,83,6.655,84,4.554,85,4.627,86,5.905,87,5.211,88,2.964]],["title/16",[3,3.541]],["content/16",[8,1.787,14,4.875,32,2.525,67,4.446,69,2.341,80,5.831,82,3.461,83,4.917,85,4.569,87,5.145,89,7.016,90,7.016,91,7.016,92,7.016,93,7.016,94,7.016,95,7.016]],["title/17",[71,2.547]],["content/17",[45,4.899,72,7.424]],["title/18",[96,5.841]],["content/18",[0,2.139,8,1.459,18,1.074,34,1.76,55,2.898,64,1.705,65,3.314,67,4.026,78,2.509,82,4.207,88,2.959,96,5.081,97,2.691,98,4.346,99,2.196,100,4.387,101,3.527,102,5.181,103,2.242,104,2.542,105,4.243,106,3.239,107,2.935,108,1.856,109,4.094,110,4.102,111,2.607,112,1.53,113,2.581,114,1.567,115,1.319,116,4.346,117,3.653,118,3.549,119,1.768]],["title/19",[3,3.541]],["content/19",[8,1.802,14,5.019,67,4.924,82,3.336,102,3.444,104,2.461,119,2.536,120,6.762,121,6.762,122,6.762,123,6.762,124,6.762,125,6.762,126,6.762,127,6.762]],["title/20",[30,3.797]],["content/20",[32,3.812,128,7.769]],["title/21",[129,6.317]],["content/21",[0,3.182,8,1.351,34,2.618,48,3.219,49,2.599,55,2.143,57,4.004,58,4.196,129,7.294,130,4.646,131,4.052,132,7.535,133,5.86,134,2.726,135,5.459,136,5.435,137,7.016]],["title/22",[3,3.541]],["content/22",[8,1.64,14,4.568,57,5.43,58,5.69,138,9.515,139,9.515]],["title/23",[30,3.797]],["content/23",[18,1.604,32,3.812]],["title/28",[112,2.646]],["content/28",[0,2.335,8,1.086,12,2.644,18,1.147,34,1.922,47,2.56,48,1.76,49,1.421,51,2.521,55,1.573,61,5.591,63,4.694,69,2.526,101,3.765,104,1.38,112,2.915,114,2.516,115,2.119,119,2.839,140,5.149,141,3.005,142,3.159,143,3.59,144,5.015,145,4.073,146,4.12,147,4.478,148,2.906,149,4.478,150,2.047,151,3.204,152,5.045,153,4.744,154,2.791,155,5.149]],["title/29",[3,3.541]],["content/29",[8,1.762,14,4.302,32,3.874,61,4.062,63,3.76,69,3.591,104,1.928,119,2.698,145,3.263,152,3.665,156,7.196,157,7.196,158,7.196,159,7.196,160,7.196,161,7.196]],["title/30",[30,3.797]],["content/30",[18,1.604,32,3.812]],["title/34",[162,4.877]],["content/34",[8,1.56,28,2.781,34,3.273,55,2.679,67,4.141,119,3.289,136,6.794,162,7.07,163,6.283,164,6.432]],["title/35",[3,3.541]],["content/35",[8,1.64,14,4.568,67,4.492,119,3.568,165,9.515,166,9.515]],["title/36",[71,2.547]],["content/36",[45,4.899,167,9.213]],["title/31",[168,6.137]],["content/31",[8,1.575,19,5.803,55,2.722,67,4.207,112,2.891,119,3.341,143,3.561,168,6.706,169,4.396,170,7.406,171,5.142]],["title/32",[3,3.541]],["content/32",[8,1.708,14,4.758,67,4.207,119,3.341,170,7.406,172,8.911,173,8.911,174,8.911]],["title/33",[30,3.797]],["content/33",[31,7.424,32,3.812]],["title/37",[63,4.261]],["content/37",[8,1.56,34,3.273,55,2.679,63,6.178,64,3.171,65,2.622,175,4.624,176,3.7,177,7.019,178,7.019]],["title/38",[3,3.541]],["content/38",[8,1.64,32,4.114,177,7.615,178,7.615,179,9.515,180,9.515]],["title/39",[30,3.797]],["content/39",[32,3.812,112,3.437]],["title/40",[128,5.98]],["content/40",[0,3.104,8,1.328,18,1.589,34,2.555,55,2.091,63,3.577,67,3.232,96,6.633,101,3.403,128,6.791,142,2.855,175,3.609,176,2.887,181,4.797,182,5.936,183,5.538,184,4.146,185,4.729,186,6.97,187,6.361]],["title/41",[3,3.541]],["content/41",[8,1.716,14,3.205,32,4.083,67,3.786,69,3.784,96,5.744,186,6.035,187,5.508,188,8.019,189,8.019,190,8.019,191,8.019]],["title/42",[30,3.797]],["content/42",[32,3.812,192,7.276]],["title/43",[134,2.361]],["content/43",[7,5.547,8,1.296,28,2.094,34,2.464,47,3.283,55,2.017,58,6.161,67,3.118,82,4.458,104,1.769,119,3.863,134,2.983,163,4.73,164,4.843,193,6.603,194,2.511,195,6.603,196,4.053,197,6.603,198,6.603,199,6.085,200,6.603,201,6.085,202,6.603,203,6.603]],["title/44",[3,3.541]],["content/44",[7,4.845,8,1.825,14,5.084,58,5.55,67,2.573,82,3.894,104,1.46,119,3.48,196,3.345,204,5.449,205,5.449,206,5.449,207,5.449,208,5.449,209,5.449,210,5.449,211,5.449,212,5.449,213,5.449,214,5.449,215,5.449,216,5.449]],["title/45",[71,2.547]],["content/45",[45,4.899,134,3.067]],["title/46",[217,5.715]],["content/46",[8,1.575,34,3.325,55,2.722,82,5.419,112,2.891,217,7.698,218,4.698,219,3.892,220,7.131]],["title/47",[3,3.541]],["content/47",[8,1.64,14,3.803,32,3.424,82,4.694,220,7.615,221,9.515,222,8.768]],["title/48",[71,2.547]],["content/48",[8,1.438,45,4.637,217,7.026,223,8.72,224,6.639]],["title/49",[220,6.526]],["content/49",[8,1.657,55,2.957,64,3.499,220,7.746,225,6.784,226,7.746]],["title/50",[3,3.541]],["content/50",[8,1.464,32,3.674,226,8.169,227,10.208]],["title/51",[30,3.797]],["content/51",[32,3.812,217,7.424]],["title/52",[61,4.603]],["content/52",[8,1.488,34,3.036,46,6.302,47,4.045,48,2.781,49,2.246,51,5.592,53,5.215,55,2.485,57,4.642,61,5.856,228,4.251,229,3.983,230,8.135]],["title/53",[3,3.541]],["content/53",[8,1.623,14,3.739,32,3.367,46,7.247,57,5.339,69,3.121,231,9.356,232,9.356]],["title/54",[30,3.797]],["content/54",[8,1.438,32,4.243,65,2.997,112,3.253]],["title/55",[152,4.154]],["content/55",[8,1.53,34,3.174,55,2.598,57,4.853,103,4.044,104,2.279,114,2.826,115,2.38,119,3.189,152,5.435,233,3.568,234,7.069,235,7.069]],["title/56",[3,3.541]],["content/56",[8,1.708,14,4.758,57,5.085,119,3.341,235,7.406,236,8.911,237,8.911,238,8.911]],["title/57",[30,3.797]],["content/57",[32,3.812,112,3.437]],["title/61",[239,6.137]],["content/61",[0,3.222,8,1.362,34,2.652,47,3.533,48,3.657,49,2.952,50,3.68,51,3.479,53,4.554,55,2.17,58,4.249,112,2.305,114,2.361,115,1.988,134,2.057,239,7.147,240,3.78,241,2.557,242,3.402,243,4.554,244,5.905,245,7.105]],["title/62",[3,3.541]],["content/62",[8,1.464,14,4.08,58,6.104,246,10.208]],["title/63",[71,2.547]],["content/63",[45,4.899,239,7.972]],["title/58",[65,2.437]],["content/58",[0,2.086,8,0.999,34,1.717,47,2.287,48,1.573,49,1.27,51,2.252,55,2.861,61,5.288,65,3.589,67,3.287,69,2.323,74,1.365,104,1.866,105,4.164,119,3.512,149,4.001,150,1.829,151,2.863,247,3.563,248,5.228,249,4.052,250,6.507,251,5.77,252,6.16,253,2.086,254,5.75,255,5.563,256,2.654,257,3.101,258,5.786]],["title/59",[3,3.541]],["content/59",[8,1.805,14,4.964,32,2.172,61,3.407,67,4.008,69,2.832,104,1.617,119,3.996,258,7.056,259,6.035,260,6.035,261,6.035,262,6.035,263,6.035,264,6.035,265,6.035,266,6.035,267,6.035,268,6.035]],["title/60",[71,2.547]],["content/60",[45,4.899,65,3.166]],["title/64",[66,6.317]],["content/64",[0,3.306,8,1.386,34,2.72,55,2.227,62,3.653,63,3.809,65,3.686,66,7.482,67,4.56,100,5.01,104,2.903,105,5.777,118,5.486]],["title/65",[3,3.541]],["content/65",[8,1.708,14,4.758,67,5.185,104,2.388,269,8.911,270,8.911,271,8.911]],["title/66",[30,3.797]],["content/66",[32,3.812,62,5.309]],["title/67",[177,6.526]],["content/67",[8,1.575,34,3.325,55,2.722,63,4.656,64,3.221,142,4.581,176,3.759,177,8.789,272,6.902]],["title/68",[3,3.541]],["content/68",[8,1.438,32,3.608,69,3.344,272,7.766,273,10.025]],["title/69",[30,3.797]],["content/69",[32,3.812,63,5.535]],["title/70",[272,6.317]],["content/70",[8,1.53,34,3.174,55,2.598,67,5.037,100,3.934,101,4.229,104,2.859,117,6.588,118,6.401,142,3.548,272,8.265]],["title/71",[3,3.541]],["content/71",[8,1.744,14,4.86,67,4.99,104,2.832,274,8.378,275,8.378,276,8.378,277,8.378]],["title/72",[30,3.797]],["content/72",[32,3.812,177,8.477]],["title/73",[18,1.235]],["content/73",[8,1.417,18,1.496,28,1.934,34,2.277,55,2.613,57,4.881,58,3.648,62,4.287,67,4.039,84,3.911,85,3.973,86,5.07,87,4.474,88,2.545,97,3.481,104,2.647,112,2.776,119,2.287,129,6.626,192,5.876,278,4.591,279,1.367,280,6.101,281,3.911,282,5.622,283,6.101,284,5.622,285,5.622]],["title/74",[3,3.541]],["content/74",[8,1.824,14,4.814,32,3.742,57,4.208,58,2.97,62,2.489,67,3.481,69,2.46,85,3.234,87,3.642,104,1.976,112,1.612,119,1.862,129,3.847,192,3.411,281,3.184,286,3.975,287,4.966,288,4.966,289,4.966,290,4.966,291,4.966,292,4.966,293,4.966,294,4.966,295,4.966,296,4.966,297,4.966,298,4.966,299,4.966,300,4.966]],["title/75",[71,2.547]],["content/75",[8,1.763,18,1.631,44,5.932,45,5.85,301,7.178,302,6.911]],["title/76",[303,6.317]],["content/76",[8,1.386,18,1.104,34,2.72,55,2.227,67,4.56,104,2.588,131,2.601,303,7.482,304,7.084,305,5.647,306,3.243,307,4.747,308,3.442,309,3.683,310,3.713,311,3.008,312,4.747,313,2.899,314,4.03,315,6.059,316,6.059]],["title/77",[3,3.541]],["content/77",[8,1.708,14,4.758,67,5.185,104,2.388,317,8.911,318,8.911,319,8.911]],["title/78",[71,2.547]],["content/78",[224,7.015,320,8.804]],["title/79",[31,5.715]],["content/79",[8,1.516,17,6.963,19,6.883,20,5.143,31,7.408,34,3.127,55,2.559,104,2.832,119,3.141,168,6.306,321,5.755,322,6.963]],["title/80",[3,3.541]],["content/80",[3,3.339,8,1.689,14,3.998,17,6.391,21,5.092,32,2.767,104,2.06,119,2.883,168,5.787,321,5.282,322,8.314,323,7.086,324,7.689,325,7.689,326,7.689,327,7.689,328,5.956]],["title/81",[71,2.547]],["content/81",[31,7.424,224,7.015]],["title/82",[281,5.227]],["content/82",[0,2.447,7,3.312,8,1.124,18,1.187,34,2.014,55,3.094,65,3.354,67,3.7,78,2.871,82,4.553,97,5.266,99,2.513,100,4.685,101,3.897,104,2.714,105,4.687,106,3.707,107,3.358,108,2.124,117,4.18,118,4.061,119,2.023,281,5.024,329,4.973,330,7.149,331,2.898,332,1.96]],["title/83",[3,3.541]],["content/83",[7,4.361,8,1.793,14,4.996,67,4.483,82,3.505,104,2.544,119,2.664,333,7.105,334,7.105,335,7.105,336,7.105,337,7.105,338,7.105,339,7.105]],["title/84",[71,2.547]],["content/84",[45,4.899,281,6.79]],["title/85",[30,3.797]],["content/85",[18,1.604,32,3.812]],["title/86",[186,6.137]],["content/86",[0,2.797,8,1.237,18,0.934,34,2.302,55,3.287,63,3.223,65,3.506,67,4.07,100,4.596,101,4.286,104,2.883,105,5.155,106,4.237,107,3.838,117,4.777,118,4.642,119,2.313,142,2.573,152,3.141,181,4.323,186,6.488,340,6.168]],["title/87",[3,3.541]],["content/87",[8,1.767,14,4.922,67,4.809,104,2.729,119,2.964,341,7.906,342,7.906,343,7.906,344,7.906,345,7.906]],["title/88",[30,3.797]],["content/88",[32,3.812,128,7.769]],["title/89",[83,5.715]],["content/89",[8,1.422,18,1.502,34,2.831,55,3.029,67,3.581,75,4.237,82,4.892,83,5.316,104,2.96,119,2.844,185,3.418,346,5.709,347,5.433,348,6.597,349,7.585,350,7.585,351,5.876]],["title/90",[3,3.541]],["content/90",[8,1.775,14,4.947,67,3.487,69,2.464,82,3.644,104,2.611,119,2.769,351,5.721,352,7.386,353,7.386,354,7.386,355,7.386,356,7.386,357,7.386]],["title/91",[30,3.797]],["content/91",[32,3.812,72,7.424]],["title/92",[226,6.526]],["content/92",[8,1.623,55,2.858,196,6.945,225,6.558,226,7.488,358,8.622,359,8.622]],["title/93",[3,3.541]],["content/93",[8,1.64,14,4.568,196,7.016,360,9.515,361,9.515]],["title/94",[30,3.797]],["content/94",[32,3.812,220,8.477]],["title/95",[178,6.526]],["content/95",[8,1.575,34,3.325,55,2.722,63,4.656,64,3.221,142,4.581,176,3.759,178,8.789,362,6.902]],["title/96",[3,3.541]],["content/96",[8,1.438,32,3.608,69,3.344,362,7.766,363,10.025]],["title/97",[30,3.797]],["content/97",[32,3.812,63,5.535]],["title/102",[362,6.317]],["content/102",[8,1.591,34,3.379,55,2.766,67,4.275,100,4.188,101,4.502,104,2.426,142,3.777,362,8.592]],["title/103",[3,3.541]],["content/103",[8,1.64,14,4.568,67,4.492,104,2.55,364,9.515,365,9.515]],["title/104",[30,3.797]],["content/104",[32,3.812,178,8.477]],["title/98",[187,5.601]],["content/98",[0,2.314,8,1.415,18,1.139,34,1.904,55,3.012,64,1.844,65,3.401,67,3.551,78,2.714,82,4.408,99,2.376,100,4.561,101,3.74,102,5.356,104,2.642,105,4.499,106,3.504,107,3.175,108,2.008,109,2.944,110,4.437,114,1.695,115,1.427,117,3.952,118,3.84,119,1.913,182,3.27,183,3.051,184,3.09,187,5.167]],["title/99",[3,3.541]],["content/99",[8,1.793,14,4.996,67,4.483,82,3.505,102,3.619,104,2.544,119,2.664,366,7.105,367,7.105,368,7.105,369,7.105,370,7.105,371,7.105,372,7.105]],["title/100",[71,2.547]],["content/100",[45,4.899,373,8.205]],["title/101",[30,3.797]],["content/101",[32,3.812,128,7.769]],["title/108",[192,5.601]],["content/108",[0,2.495,8,1.14,18,1.413,34,2.053,48,1.881,49,1.519,55,1.681,57,3.14,58,3.29,63,2.875,67,2.598,82,3.922,88,3.316,111,4.395,116,5.07,128,5.829,131,2.836,132,4.403,135,5.25,151,5.807,175,4.19,176,3.353,192,5.46,374,5.829,375,2.927,376,3.709,377,3.106,378,4.44,379,2.654,380,2.78,381,5.502,382,4.573,383,5.502]],["title/109",[3,3.541]],["content/109",[8,1.782,14,4.837,32,2.693,57,4.271,58,4.476,67,3.533,82,3.692,128,5.489,382,6.22,384,7.484,385,7.484,386,7.484,387,7.484,388,7.484,389,7.484]],["title/110",[30,3.797]],["content/110",[18,1.604,32,3.812]],["title/105",[88,3.402]],["content/105",[8,1.516,18,1.601,34,3.127,55,2.559,88,4.83,111,5.843,119,4.341,143,4.224]],["title/106",[3,3.541]],["content/106",[8,1.708,14,4.758,119,4.464,390,8.911,391,8.911,392,8.911]],["title/107",[71,2.547]],["content/107",[45,4.899,88,4.419]],["title/114",[62,4.087]],["content/114",[8,1.239,18,1.308,28,2.738,45,3.994,62,5.883,74,2.563,104,3.146,393,4.983,394,5.719,395,5.301]],["title/115",[5,4.338]],["content/115",[8,1.413,12,5.059,13,6.046,14,3.936,104,2.639,396,9.849]],["title/116",[55,2.491]],["content/116",[0,3.978,32,3.157,34,3.273,62,6.368,63,4.583,64,3.932,65,3.251]],["title/111",[72,5.715]],["content/111",[8,1.22,24,4.137,28,2.697,45,3.934,72,7.478,73,4.656,74,2.524,75,4.751,82,5.264,108,3.348,397,3.882,398,4.567]],["title/112",[5,4.338]],["content/112",[8,1.464,14,4.08,82,5.036,399,10.208]],["title/113",[55,2.491]],["content/113",[32,3.259,34,3.379,72,6.346,73,6.071,74,3.292,75,5.057,76,5.897,77,6.219,78,4.817]],["title/123",[373,6.317]],["content/123",[8,1.15,28,2.543,45,3.709,74,3.05,84,5.14,85,5.222,86,6.665,104,3.206,182,5.14,183,4.796,187,5.508,248,4.991,351,6.212,373,6.212,400,4.051]],["title/124",[5,4.338]],["content/124",[8,1.684,12,4.436,13,5.301,14,4.692,85,5.624,104,2.314,351,6.69,401,8.636,402,8.636,403,8.636]],["title/125",[55,2.491]],["content/125",[0,2.679,8,1.2,18,1.267,32,2.126,34,2.205,55,2.555,64,2.136,65,3.555,78,3.143,82,2.915,99,2.751,100,4.49,101,4.158,102,4.945,104,2.241,105,5.001,106,4.058,107,3.677,108,2.325,109,3.409,110,5.138,114,1.963,115,1.653,182,3.787,183,3.533,184,3.578,187,5.745]],["title/117",[404,6.317]],["content/117",[8,1.299,18,1.371,28,2.871,45,4.188,104,3.349,248,5.635,393,5.225,404,7.014]],["title/118",[5,4.338]],["content/118",[8,1.413,12,5.059,13,6.046,14,3.936,104,2.639,405,9.849]],["title/119",[55,2.491]],["content/119",[14,3.861,26,7.593,34,2.72,55,2.227,104,3.304,119,2.733,406,3.624,407,5.007,408,4.255,409,3.713,410,5.834,411,4.072,412,5.109,413,4.537,414,4.828,415,3.542,416,4.03,417,5.647]],["title/120",[301,6.778]],["content/120",[8,1.299,18,1.68,28,2.871,45,4.188,104,3.213,301,7.525,393,5.225,398,4.862]],["title/121",[5,4.338]],["content/121",[8,1.413,12,5.059,13,6.046,14,3.936,104,2.639,418,9.849]],["title/122",[55,2.491]],["content/122",[18,1.856,28,3.017,32,3.424,34,3.551,278,7.161,279,2.132]],["title/126",[167,7.093]],["content/126",[69,3.174,134,2.755,162,6.836,163,6.815,167,8.276,419,8.768,420,9.515]],["title/127",[55,2.491]],["content/127",[28,3.069,32,3.484,34,3.612,136,7.498,162,7.381]],["title/128",[302,6.526]],["content/128",[8,1.278,18,1.663,28,2.825,45,4.121,55,3.355,69,2.973,85,5.803,302,7.131,421,5.712,422,7.406]],["title/129",[5,4.338]],["content/129",[8,1.607,12,4.727,13,5.649,14,4.477,85,5.993,422,7.649,423,9.203,424,9.203]],["title/130",[55,2.491]],["content/130",[18,1.856,28,3.017,32,3.424,34,3.551,278,7.161,279,2.132]],["title/134",[134,2.361]],["content/134",[28,3.123,69,3.286,134,3.6,425,9.076]],["title/135",[55,2.491]],["content/135",[28,3.123,32,3.545,34,3.676,134,3.6]],["title/131",[217,5.715]],["content/131",[8,1.258,24,4.218,28,2.781,45,4.057,82,5.366,108,3.452,217,7.623,218,4.624,397,4.003,398,4.71]],["title/132",[5,4.338]],["content/132",[8,1.464,14,4.08,82,5.036,222,9.406]],["title/133",[55,2.491]],["content/133",[32,3.545,34,3.676,112,3.196,217,8.178,218,5.192]],["title/136",[239,6.137]],["content/136",[28,3.017,45,4.401,48,3.253,49,2.627,239,8.603,242,4.557,243,6.099]],["title/137",[55,2.491]],["content/137",[0,3.394,32,2.693,34,2.793,47,3.721,48,3.752,49,3.029,50,3.877,51,3.664,53,4.797,112,2.428,114,2.487,115,2.094,134,2.167,239,7.397,240,3.982,241,2.693,242,3.584,243,4.797,244,6.22]],["title/141",[65,2.437]],["content/141",[8,1.32,28,2.918,45,4.257,65,3.348,104,3.002,112,2.986,393,5.31,426,7.129]],["title/142",[5,4.338]],["content/142",[8,1.413,12,5.059,13,6.046,14,3.936,104,2.639,427,9.849]],["title/143",[55,2.491]],["content/143",[0,2.545,32,2.02,34,2.095,47,2.79,48,1.919,49,1.549,51,2.748,55,2.463,61,4.551,65,3.749,69,2.69,74,1.666,104,1.504,105,3.356,149,4.881,150,2.232,151,3.493,247,4.347,248,5.018,249,3.889,250,6.245,251,5.538,252,5.913,253,2.545,254,5.792,255,5.34,256,3.239,257,3.783]],["title/138",[18,1.235]],["content/138",[8,1.342,18,1.842,28,2.967,45,4.327,104,3.032,393,5.399]],["title/139",[5,4.338]],["content/139",[8,1.413,12,5.059,13,6.046,14,3.936,104,2.639,286,7.882]],["title/140",[55,2.491]],["content/140",[18,1.856,28,3.017,32,3.424,34,3.551,278,7.161,279,2.132]],["title/144",[44,5.601]],["content/144",[8,1.22,18,1.616,28,2.697,33,7.069,35,4.164,44,5.842,45,3.934,74,2.524,82,4.196,104,3.124,393,4.908,428,8.505]],["title/145",[5,4.338]],["content/145",[8,1.725,12,4.178,13,4.994,14,4.565,21,5.388,33,6.761,82,4.014,104,2.78,429,8.135,430,8.135,431,8.135,432,8.135]],["title/146",[55,2.491]],["content/146",[18,1.856,28,3.017,32,3.424,34,3.551,278,7.161,279,2.132]],["title/147",[281,5.227]],["content/147",[8,1.22,18,1.288,28,2.697,45,3.934,69,2.837,84,5.452,85,5.539,86,7.069,87,6.237,97,4.853,104,3.124,281,6.839]],["title/148",[5,4.338]],["content/148",[8,1.684,12,4.436,13,5.301,14,4.692,85,5.624,87,6.333,104,2.314,433,8.636,434,8.636,435,8.636]],["title/149",[55,2.491]],["content/149",[0,2.86,18,1.326,32,2.27,34,2.354,55,2.674,65,3.531,78,3.355,82,3.111,97,5.738,99,2.937,100,4.651,101,4.353,104,2.346,105,5.236,106,4.332,107,3.925,108,2.482,281,5.612,329,5.811,330,6.781,331,3.386,332,2.29]],["title/150",[18,1.235]],["content/150",[8,1.299,18,1.816,28,2.871,45,4.188,85,5.897,306,4.029,393,5.225,421,5.804,436,4.862]],["title/151",[5,4.338]],["content/151",[8,1.464,14,4.08,85,6.648,437,10.208]],["title/152",[55,2.491]],["content/152",[18,1.856,28,3.017,32,3.424,34,3.551,278,7.161,279,2.132]],["title/153",[88,3.402]],["content/153",[18,1.466,69,3.229,88,5.148,111,5.351,143,3.869]],["title/154",[55,2.491]],["content/154",[18,1.441,32,3.424,34,3.551,88,5.111,111,5.261,143,3.803]],["title/155",[104,2.185]],["content/155",[14,3.861,26,7.593,34,2.72,55,2.227,104,3.304,119,2.733,406,3.624,407,5.007,408,4.255,409,3.713,410,5.834,411,4.072,412,5.109,413,4.537,414,4.828,415,3.542,416,4.03,417,5.647]],["title/156",[71,2.547]],["content/156",[45,4.899,404,8.205]],["title/157",[30,3.797]],["content/157",[8,1.88,18,1.054,31,4.88,32,4.476,44,3.16,45,5.237,62,2.305,65,2.081,66,3.563,83,3.224,96,3.295,112,1.493,134,1.332,186,3.462,187,3.16,224,4.611,272,3.563,281,4.463,301,3.823,303,3.563,320,3.823,362,3.563,373,3.563,404,3.563]],["title/158",[7,5.005]],["content/158",[6,5.208,7,7.016,14,4.568,34,3.551,55,2.907,438,6.197]],["title/159",[30,3.797]],["content/159",[0,4.106,1,6.718,8,1.72,15,7.525,32,3.992,134,2.622,281,5.804]],["title/160",[145,3.698]],["content/160",[14,4.224,18,1.269,34,3.127,55,2.559,144,5.548,145,5.514,439,4.949,440,4.68,441,6.705,442,7.72,443,5.01,444,6.001]],["title/161",[30,3.797]],["content/161",[32,3.812,112,3.437]],["title/162",[170,6.778]],["content/162",[13,5.558,14,3.619,19,5.897,55,2.766,69,3.021,71,2.828,78,4.817,119,3.395,170,7.525,253,4.106,445,4.574]],["title/163",[30,3.797]],["content/163",[32,3.812,168,7.972]],["title/168",[196,5.005]],["content/168",[14,4.305,24,3.349,34,3.223,55,2.638,196,6.612,446,4.553,447,6.911,448,6.911,449,7.958,450,4.637,451,8.636,452,8.636]],["title/169",[30,3.797]],["content/169",[8,1.438,32,4.243,134,2.903,226,8.023]],["title/164",[379,3.934]],["content/164",[14,3.583,26,7.177,28,2.069,34,2.436,55,1.994,119,2.447,257,4.399,279,1.462,332,2.37,379,5.898,407,4.483,408,3.81,409,3.324,410,5.223,411,3.645,412,4.574,413,4.062,414,4.322,415,4.356,416,3.608,417,5.055,450,3.504,453,4.183,454,1.437,455,3.504]],["title/165",[30,3.797]],["content/165",[8,1.438,32,4.243,83,7.026,192,6.886]],["title/166",[57,4.653]],["content/166",[14,4.615,34,3.612,55,2.957,57,6.59,144,6.41]],["title/167",[30,3.797]],["content/167",[8,1.79,18,1.25,32,4.589,46,6.394,61,4.66,129,6.394,152,4.205,192,5.67]],["title/170",[67,3.85]],["content/170",[12,4.119,14,4.108,24,3.986,34,3.836,55,2.45,67,5.356,446,4.228,449,7.389,456,8.019,457,8.019,458,4.266,459,10.279,460,2.643]],["title/171",[30,3.797]],["content/171",[8,1.871,18,0.817,32,4.718,62,2.704,65,1.613,66,4.18,72,3.782,83,3.782,96,3.865,128,3.957,134,1.563,162,3.227,168,4.061,186,4.061,187,3.707,192,3.707,272,4.18,281,3.459,303,4.18,362,4.18]],["title/172",[87,5.98]],["content/172",[12,5.697,14,4.433,34,3.379,55,2.766,87,6.64,253,4.106,461,11.092,462,6.219]],["title/173",[30,3.797]],["content/173",[45,4.899,281,6.79]],["title/174",[80,6.778]],["content/174",[14,4.155,80,8.641,225,7.287]],["title/175",[30,3.797]],["content/175",[32,3.812,72,7.424]],["title/178",[85,5.311]],["content/178",[14,4.522,34,3.492,55,2.858,85,6.093,253,4.243,462,6.427,463,7.369]],["title/179",[30,3.797]],["content/179",[8,1.72,18,1.371,45,5.78,281,5.804,302,7.246,373,7.014]],["title/176",[58,4.877]],["content/176",[14,3.828,26,7.544,34,2.686,48,3.274,49,2.644,55,2.198,58,6.437,104,1.928,119,2.698,407,4.943,408,4.201,409,3.665,410,5.759,411,4.02,412,5.044,413,4.479,414,4.766,415,3.497,416,3.979,417,5.574]],["title/177",[30,3.797]],["content/177",[8,1.79,18,1.25,32,4.589,46,6.394,129,6.394,134,2.39,192,5.67,239,6.213]],["title/180",[235,6.778]],["content/180",[14,3.739,34,3.492,103,4.449,152,4.766,233,3.925,234,9.404,235,7.776,249,4.513]],["title/181",[30,3.797]],["content/181",[32,3.812,152,5.396]],["title/182",[351,6.317]],["content/182",[14,4.155,225,7.287,351,8.053]],["title/183",[30,3.797]],["content/183",[8,1.438,32,3.608,45,4.637,83,7.026,373,7.766]],["title/184",[102,4.154]],["content/184",[14,3.869,34,3.612,102,6.287,114,3.216,115,2.708]],["title/185",[30,3.797]],["content/185",[8,1.438,32,4.243,96,7.181,187,6.886]],["title/186",[119,3.058]],["content/186",[14,3.963,34,4.123,55,3.029,112,2.461,119,4.142,146,6.07,443,4.536,454,1.67,464,7.585,465,7.585,466,4.595,467,5.709,468,6.304,469,5.113,470,3.832,471,6.304,472,6.304]],["title/187",[30,3.797]],["content/187",[8,1.86,18,0.924,31,4.276,32,4.699,65,1.823,83,4.276,88,2.545,96,4.37,112,1.98,134,1.766,152,3.107,162,3.648,168,4.591,186,4.591,187,4.19,281,3.911]],["title/188",[82,4.023]],["content/188",[14,4.522,34,3.492,55,2.858,82,6.001,473,8.138,474,5.595]],["title/189",[30,3.797]],["content/189",[8,1.847,32,4.52,44,4.645,45,4.824,72,6.437,83,4.74,96,4.844,134,1.958,187,4.645,192,4.645,217,6.437,281,4.335]],["title/190",[258,6.778]],["content/190",[14,3.936,34,3.676,254,6.046,258,9.698,426,7.629]],["title/191",[30,3.797]],["content/191",[32,3.812,65,3.166]],["title/192",[422,6.778]],["content/192",[14,4.568,18,1.441,34,3.551,55,3.492,422,9.5]],["title/193",[30,3.797]],["content/193",[45,4.899,302,8.477]],["title/194",[382,6.778]],["content/194",[14,3.583,26,7.177,28,2.069,34,2.436,55,1.994,119,2.447,257,4.399,279,1.462,332,2.37,379,5.759,382,5.424,407,4.483,408,3.81,409,3.324,410,5.223,411,3.645,412,4.574,413,4.062,414,4.322,415,4.356,416,3.608,417,5.055,450,3.504,453,4.183,454,1.437,455,3.504]],["title/195",[30,3.797]],["content/195",[32,3.812,192,7.276]],["title/196",[223,7.093]],["content/196",[112,3.087,217,6.669,218,5.016,223,8.276,306,4.234,475,7.37,476,6.414,477,3.38]],["title/197",[55,2.491]],["content/197",[32,3.545,34,3.676,112,3.196,217,8.178,218,5.192]],["title/201",[320,6.778]],["content/201",[8,1.278,18,1.349,104,2.943,134,2.58,303,6.902,306,3.965,320,7.406,475,6.902,476,6.006,478,7.131,479,5.712]],["title/202",[5,4.338]],["content/202",[8,1.413,12,5.059,13,6.046,14,3.936,104,2.639,480,9.849]],["title/203",[55,2.491]],["content/203",[18,1.232,32,2.928,34,3.036,131,2.902,303,8.035,304,7.608,305,6.302,306,3.62,307,5.298,308,3.841,309,4.11,310,4.144,311,3.356,312,5.298,313,3.235,314,4.498]],["title/198",[31,5.715]],["content/198",[8,1.342,18,1.417,19,6.093,31,7.931,104,3.032,475,7.247,476,6.307]],["title/199",[5,4.338]],["content/199",[8,1.413,12,5.059,13,6.046,14,3.936,104,2.639,323,9.076]],["title/200",[55,2.491]],["content/200",[19,6.529,31,8.264,32,3.608,34,3.741]],["title/204",[481,6.317]],["content/204",[0,1.986,18,0.663,35,2.145,49,0.714,52,1.925,55,1.338,63,3.922,64,0.935,101,2.178,112,1.421,134,1.268,154,1.402,242,1.238,279,0.579,306,1.15,313,2.266,332,0.939,397,1.18,446,1.363,454,0.964,458,1.376,478,2.069,482,3.023,483,4.521,484,3.465,485,2.083,486,1.276,487,1.946,488,1.388,489,2.249,490,1.712,491,3.212,492,2.445,493,1.116,494,1.896,495,1.328,496,2.069,497,2.953,498,4.011,499,1.43,500,1.46,501,1.812,502,1.812,503,4.036,504,4.068,505,1.061,506,3.505,507,1.415,508,1.896,509,1.896,510,1.286,511,2.383,512,1.946,513,2.352,514,1.492,515,1.609,516,1.566,517,1.143,518,2.586,519,2.557,520,1.546,521,1.204,522,2.149,523,1.633,524,1.067,525,2.383,526,1.15,527,1.776,528,2.003,529,1.204,530,3.81,531,2.862,532,1.852,533,1.946,534,2.586,535,3.335,536,3.296,537,1.743,538,0.983,539,1.43,540,3.774,541,2.003,542,2.249,543,1.852,544,4.38,545,1.221,546,1.46,547,2.586,548,3.393,549,2.808,550,2.249,551,1.444,552,1.712,553,2.149,554,2.383,555,2.383,556,1.657,557,1.229,558,1.946,559,1.328,560,2.586]],["title/205",[561,8.155]],["content/205",[12,2.799,48,1.863,63,5.316,64,1.97,99,2.537,279,2.079,308,2.573,328,4.221,332,1.979,484,1.818,492,2.338,504,4.278,508,6.806,513,4.238,524,2.248,535,3.924,540,3.608,550,8.071,551,4.409,553,4.529,562,2.926,563,3.109,564,4.221,565,3.259,566,3.673,567,3.44,568,4.364,569,4.221,570,4.101,571,5.449,572,3.996,573,3.219,574,2.38,575,5.021,576,4.739,577,5.021,578,4.101,579,3.219]],["title/206",[580,7.093]],["content/206",[8,0.782,48,1.863,63,5.316,88,2.273,279,1.221,313,2.167,332,1.979,395,4.845,484,1.818,501,3.819,502,3.819,504,4.278,508,3.996,510,2.709,511,7.273,512,5.94,521,2.537,529,2.537,530,4.739,535,2.709,540,3.608,550,4.739,553,4.529,557,2.591,569,4.221,574,2.38,581,2.424,582,2.591,583,5.788,584,3.903,585,3.44,586,3.012,587,2.338,588,2.753,589,2.926,590,4.101,591,5.449,592,2.799,593,5.449,594,5.059,595,3.673,596,4.739,597,5.449]],["title/207",[594,4.151,598,5.016]],["content/207",[454,1.845,514,4.835,537,5.648,543,6.001,565,5.01,594,5.371,599,7.287,600,6.487,601,8.378,602,9.739,603,6.306,604,5.371,605,5.143,606,7.72]],["title/208",[510,4.055]],["content/208",[8,1.793,454,1.993,606,8.343,607,6.219,608,9.054,609,9.054,610,9.054,611,9.054]],["title/209",[612,7.514]],["content/209",[18,1.133,48,2.559,49,2.066,64,2.705,104,2.005,108,2.946,135,3.844,142,3.122,176,3.157,377,4.225,458,3.982,484,2.497,524,3.088,612,6.896,613,5.797,614,4.956,615,4.797,616,6.509,617,5.141,618,5.245,619,4.369,620,4.594,621,3.038,622,5.797]],["title/215",[63,2.806,531,2.291,623,3.212]],["content/215",[279,2.169,530,8.419,540,6.41,543,6.933,573,5.718,624,5.197,625,9.679]],["title/216",[88,3.402]],["content/216",[8,1.459,13,2.281,20,3.622,63,3.083,67,1.755,71,1.161,88,3.485,97,2.121,112,1.206,135,1.909,143,1.485,183,2.222,332,1.349,462,2.553,504,2.015,507,2.034,526,2.625,531,1.586,538,1.413,581,1.653,604,2.382,617,2.553,621,1.509,626,2.015,627,3.716,628,3.716,629,4.441,630,4.904,631,4.441,632,6.099,633,3.089,634,4.904,635,3.089,636,3.089,637,5.437,638,4.57,639,2.223,640,5.132,641,1.833,642,4.226,643,2.605,644,3.232,645,3.716,646,1.674,647,3.716,648,7.575,649,5.437,650,2.725,651,2.281,652,2.313,653,2.42,654,5.9,655,2.748,656,5.9,657,1.478,658,3.424,659,1.643,660,3.716,661,2.034,662,3.716,663,3.716,664,2.748,665,3.843,666,2.395,667,3.424,668,3.716]],["title/217",[48,1.568,49,1.266,377,2.589,504,2.487]],["content/217",[8,1.153,13,2.851,24,0.766,48,2.176,49,2.52,55,2.311,58,3.342,63,2.427,64,0.714,65,0.591,67,0.933,71,1.451,103,1.651,104,0.529,113,1.081,135,1.783,175,1.042,176,0.833,229,2.274,306,0.879,332,0.717,377,3.154,397,0.902,409,1.006,411,1.104,413,1.23,439,2.051,454,0.435,455,1.061,474,1.181,498,2.778,504,3.029,507,1.081,520,2.076,524,0.815,538,2.667,573,1.167,581,1.545,585,1.247,586,1.092,587,0.848,617,1.357,626,1.071,629,1.487,630,4.645,631,1.487,632,1.642,633,1.642,634,1.642,635,1.642,636,1.642,642,1.415,643,1.385,655,2.163,657,2.222,659,1.535,669,1.976,670,1.976,671,3.839,672,3.001,673,1.976,674,1.976,675,1.976,676,1.976,677,1.976,678,1.976,679,1.718,680,1.976,681,1.718,682,5.588,683,1.247,684,1.606,685,7.407,686,3.301,687,3.02,688,1.981,689,1.718,690,1.821,691,3.918,692,1.718,693,1.976,694,4.645,695,2.192,696,1.976,697,1.976,698,0.853,699,1.976,700,4.645,701,2.886,702,1.976,703,1.976,704,1.976,705,4.04,706,1.976,707,1.581,708,1.976,709,1.976,710,4.04,711,1.821,712,1.675,713,1.976,714,1.675,715,1.385,716,1.976,717,3.472,718,1.976,719,1.287,720,0.656,721,1.385,722,3.472,723,1.642,724,1.976,725,1.718,726,1.642,727,2.886,728,1.642,729,1.385,730,1.976,731,1.449,732,1.976,733,1.487,734,1.976,735,1.266]],["title/218",[104,1.735,279,1.451]],["content/218",[0,0.831,8,0.869,13,1.125,35,0.898,36,1.07,49,0.897,50,0.95,51,0.898,53,2.084,55,0.56,58,3.168,63,0.958,67,0.866,71,1.893,104,1.797,112,1.055,113,1.004,135,3.444,176,0.773,229,0.898,251,2.233,279,1.187,306,0.816,332,1.18,379,1.568,393,1.058,413,1.141,439,1.083,447,2.601,455,4.152,484,2.58,507,1.004,526,0.816,529,0.854,538,2.015,549,1.175,581,0.816,589,0.985,617,1.259,626,0.994,629,1.38,630,6.773,631,1.38,632,5.038,633,1.524,634,2.702,635,1.524,636,1.524,641,0.905,642,1.313,648,1.524,659,0.811,661,2.397,671,1.779,679,1.595,684,2.45,686,1.92,691,0.95,698,1.403,705,2.827,707,4.24,710,1.595,711,1.69,723,1.524,727,1.524,735,1.175,736,1.834,737,1.467,738,1.524,739,1.467,740,1.834,741,1.834,742,1.69,743,1.285,744,2.556,745,1.69,746,1.69,747,2.995,748,1.69,749,1.69,750,2.995,751,2.995,752,5.586,753,2.702,754,2.995,755,1.38,756,1.69,757,1.014,758,1.69,759,1.69,760,1.42,761,4.413,762,4.035,763,1.69,764,1.69,765,2.995,766,2.995,767,1.259,768,1.595,769,4.608,770,3.069,771,1.69,772,1.69,773,0.95,774,1.69,775,1.467,776,1.69,777,1.111,778,1.595,779,1.69,780,1.69,781,1.595,782,2.995,783,2.827,784,2.328,785,1.595,786,1.69,787,1.69,788,1.524,789,1.524,790,1.194,791,1.313,792,1.595,793,1.259,794,1.69,795,1.69,796,2.991,797,2.995,798,1.69,799,1.69,800,1.69,801,1.69,802,1.595,803,1.69,804,1.69,805,2.601,806,2.995,807,2.995,808,2.995,809,1.69,810,1.834,811,1.834,812,1.834,813,1.834]],["title/219",[18,0.981,446,3.414]],["content/219",[8,1.381,18,0.492,35,0.624,36,0.744,48,0.436,49,0.352,51,0.624,53,1.501,58,2.407,67,0.602,71,1.817,100,1.502,104,1.559,112,0.414,130,1.551,135,3.635,145,0.578,152,0.649,176,0.988,196,0.783,229,1.59,251,0.876,279,0.525,306,0.567,332,0.463,379,2.267,380,0.644,393,0.736,409,0.649,411,0.712,413,2.021,440,1.308,446,0.672,447,1.874,455,3.8,460,0.42,466,0.772,484,2.096,507,0.698,524,0.526,526,0.567,529,0.594,538,1.235,549,0.817,553,1.06,557,1.113,581,0.567,617,1.608,618,0.894,621,1.318,626,0.691,629,0.96,630,8,631,0.96,632,3.345,633,1.06,634,1.946,635,1.06,636,1.06,638,1.814,641,0.629,642,3.367,648,3.345,649,2.158,653,3.061,659,1.436,661,1.777,667,1.175,671,0.698,679,1.109,684,1.861,698,1.011,705,2.824,707,3.221,710,1.109,712,0.615,714,1.13,723,1.06,735,0.817,737,1.02,739,1.02,742,1.175,743,0.894,744,1.895,745,1.175,746,2.158,747,2.158,748,1.175,749,1.175,750,2.158,751,2.158,752,4.877,753,1.06,754,2.158,755,0.96,756,1.175,757,0.705,758,1.175,759,1.175,761,3.585,762,2.158,763,1.175,764,1.175,765,2.158,766,2.158,767,0.876,768,1.109,769,3.501,770,2.276,771,1.175,772,1.175,773,0.661,774,1.175,775,1.874,776,1.175,777,0.772,778,1.109,779,1.175,780,1.175,781,1.109,782,2.158,783,2.037,784,2.326,785,1.109,786,1.175,787,1.175,788,1.06,789,1.06,790,0.83,791,0.913,792,1.109,793,0.876,794,1.175,795,1.175,796,1.833,797,2.158,798,1.175,799,1.175,800,1.175,801,1.175,802,1.109,803,1.175,804,1.175,805,1.874,806,2.158,807,2.158,808,2.158,809,1.175,814,1.275,815,1.275,816,0.736,817,1.109,818,1.275,819,1.275,820,2.342,821,1.06,822,1.275,823,1.06,824,1.175,825,1.275,826,1.275,827,0.685,828,1.275,829,1.02,830,1.275,831,1.275,832,1.275,833,2.342,834,1.275,835,2.342,836,1.275,837,1.275,838,1.275,839,3.247,840,2.342,841,1.275,842,1.275,843,1.275,844,1.275,845,1.275,846,1.275,847,1.275,848,1.275,849,0.794,850,1.275,851,0.988,852,1.275,853,1.275,854,4.025,855,2.342,856,1.275,857,0.894,858,0.805,859,0.844,860,1.109,861,3.247,862,1.275,863,0.913,864,0.83,865,1.275,866,1.275,867,0.763,868,1.275]],["title/210",[565,3.873,869,6.476]],["content/210",[]],["title/211",[565,3.873,638,5.016]],["content/211",[]],["title/212",[48,1.836,49,1.482,377,3.031]],["content/212",[8,1.762,48,2.46,49,1.986,377,4.062,409,3.665,455,3.864,565,4.303,629,5.416,631,5.416,638,7.418,726,5.981,737,5.759,738,5.981,796,4.062,870,6.259,871,6.259,872,9.919,873,5.277,874,6.631]],["title/213",[104,1.439,279,1.203,691,2.782]],["content/213",[8,1.727,104,1.653,279,1.382,409,3.141,455,6.299,460,2.841,565,3.688,629,4.642,631,4.642,638,6.677,661,3.376,691,3.195,707,4.936,727,5.126,737,4.936,738,5.126,739,4.936,796,3.482,805,4.936,870,5.364,871,5.364,873,4.523,875,6.168,876,6.168,877,5.364,878,5.364,879,5.683]],["title/214",[135,4.188]],["content/214",[8,1.696,48,1.978,49,2.275,135,4.232,409,2.947,455,6.17,460,2.716,520,3.46,629,4.355,631,4.355,638,4.482,661,3.167,707,4.63,721,4.055,737,4.63,738,4.809,739,4.63,805,4.63,817,5.032,870,5.032,871,5.032,873,4.243,877,5.032,878,5.032,880,8.24,881,5.786,882,4.482,883,4.63,884,4.809,885,4.355,886,5.332]],["title/234",[484,1.792,505,2.204,535,2.67]],["content/234",[18,1.336,47,4.387,50,4.571,241,2.295,279,1.429,306,2.838,313,2.536,454,1.404,470,3.222,482,2.111,484,3.375,505,4.151,529,2.97,618,4.47,666,3.582,686,3.768,743,4.47,887,4.568,888,4.195,889,2.437,890,3.563,891,4.783,892,3.969,893,4.8,894,4.381,895,3.768,896,3.68]],["title/235",[505,2.657,897,5.632]],["content/235",[18,1.413,47,3.952,48,3.19,49,2.821,50,5.294,51,2.694,69,1.836,74,1.633,104,2.13,112,1.785,141,3.212,306,2.448,406,3.952,477,3.314,484,2.652,504,4.309,505,3.262,531,3.391,684,2.545,888,3.779,898,4.351,899,4.262,900,3.193,901,5.502,902,6.157,903,4.403,904,4.035,905,3.856]],["title/236",[400,3.272,888,3.079]],["content/236",[18,1.248,28,1.835,35,2.833,47,2.877,49,2.887,50,2.997,53,6.704,104,1.55,176,2.441,308,2.732,332,2.992,400,4.163,406,2.877,484,1.93,504,5.203,505,2.374,520,3.46,531,4.095,557,2.751,671,3.167,672,3.107,888,4.973,891,3.136,896,3.339,902,4.482,906,5.032,907,3.768,908,3.709,909,5.332,910,5.032]],["title/220",[397,2.451,484,1.792,535,2.67]],["content/220",[8,0.821,18,0.867,47,2.847,48,1.958,49,2.258,50,4.238,69,2.729,74,2.428,219,2.502,257,5.514,279,1.833,306,3.64,454,1.261,470,2.893,482,1.895,483,3.86,484,3.184,485,2.723,505,2.35,524,2.363,529,3.809,618,4.014,671,4.478,672,3.075,701,4.76,887,4.102,888,4.537,911,3.934,912,3.305,913,3.166,914,5.727,915,2.614,916,3.305,917,3.425]],["title/221",[918,7.093]],["content/221",[8,1.74,48,2.922,49,3.039,50,4.427,104,1.037,279,0.867,377,4.253,454,1.882,484,1.291,504,4.085,520,3.644,618,2.712,691,2.005,725,5.299,733,4.585,796,5.573,874,3.566,877,3.366,878,3.366,879,3.566,886,3.566,919,6.943,920,7.876,921,7.434,922,5.614,923,5.614,924,5.614,925,5.614,926,5.614,927,3.566,928,3.566,929,3.87,930,6.943,931,2.444,932,3.566,933,3.87]],["title/222",[895,4.817]],["content/222",[]],["title/223",[671,3.545,916,3.737]],["content/223",[18,1.455,49,2.39,64,1.749,74,2.851,104,1.938,253,2.194,279,1.94,309,2.444,332,1.757,397,2.208,454,2.115,482,1.601,485,2.3,535,2.405,582,2.3,655,2.253,659,2.139,671,5.259,681,4.208,691,2.506,698,2.088,888,3.438,895,2.858,900,1.944,916,2.792,917,4.325,934,4.838,935,5.601,936,4.021,937,4.458,938,4.458,939,3.641,940,4.838,941,3.641,942,3.323,943,7.231,944,4.838,945,2.893,946,4.838,947,3.548,948,2.93,949,3.465,950,4.458,951,2.858]],["title/224",[49,1.788,671,3.545]],["content/224",[8,1.364,35,1.739,36,2.073,48,1.946,49,2.757,52,3.129,58,2.124,74,1.689,104,0.952,219,1.551,253,1.611,328,4.408,347,4.076,379,2.745,398,1.907,406,2.83,416,1.964,450,1.907,454,1.253,455,1.907,492,1.524,520,4.87,548,2.751,549,2.277,557,1.689,671,6.012,672,1.907,684,1.643,686,3.362,698,3.515,701,2.952,720,1.18,735,3.648,757,1.964,761,2.027,784,2.544,788,4.73,858,3.593,903,2.842,915,1.621,916,5.142,935,2.751,936,2.952,937,3.273,952,1.984,953,2.952,954,2.842,955,3.273,956,1.78,957,2.124,958,3.552,959,3.552,960,2.673,961,2.673,962,5.691,963,3.552,964,3.552,965,3.552,966,3.552,967,3.552,968,3.552,969,2.313,970,3.552]],["title/225",[50,4.224]],["content/225",[8,1.533,35,1.037,47,2.917,48,2.005,49,2.669,50,5.875,53,2.365,103,1.007,112,1.59,176,0.893,279,0.827,306,1.641,309,1.07,313,0.842,378,2.738,411,2.06,415,1.029,447,1.694,454,1.608,455,5.044,482,1.221,484,3.03,529,0.986,549,2.365,581,0.942,618,2.585,671,1.159,686,3.465,725,1.842,735,2.365,755,2.776,769,3.208,770,5.503,781,5.102,783,1.842,785,3.208,790,2.402,796,2.767,864,1.379,888,1.007,894,3.367,895,1.251,902,2.857,919,4.517,920,7.668,921,3.208,922,1.951,923,4.517,924,5.405,925,1.951,926,5.405,927,1.951,928,1.951,930,3.399,932,1.951,935,4.544,971,3.399,972,2.117,973,1.64,974,2.117,975,1.951,976,2.282,977,3.689,978,2.117,979,2.117,980,1.951,981,1.402,982,1.76,983,1.842,984,2.117,985,2.117,986,2.117,987,2.117,988,2.117,989,2.117,990,2.117,991,2.117]],["title/226",[796,4.603]],["content/226",[50,5.102,411,5.501,414,6.523,484,3.286,588,4.976,796,5.56]],["title/227",[484,2.16,796,3.655]],["content/227",[8,1.218,55,2.593,88,2.517,219,4.29,249,4.095,379,2.911,416,4.694,455,6.758,460,3.84,642,4.323,661,3.303,671,4.647,672,4.559,686,3.565,916,4.899,992,5.016,993,7.86]],["title/228",[55,1.64,686,3.172,796,3.031]],["content/228",[3,3.585,57,4.711,455,4.433,460,3.451,529,3.844,587,3.543,621,3.351,659,3.65,686,4.876,723,6.861,796,4.66,976,3.844,994,5.292,995,6.861,996,8.255,997,7.18]],["title/229",[55,1.64,379,2.59,796,3.031]],["content/229",[3,3.207,57,4.214,379,3.563,455,3.966,460,3.212,526,3.286,529,3.439,587,3.17,621,2.998,659,3.266,661,4.043,775,5.911,784,5.29,796,4.169,805,5.911,821,6.138,823,6.138,976,3.439,994,4.734,998,9.743,999,9.743,1000,6.424]],["title/230",[18,0.981,1001,4.638]],["content/230",[8,1.059,18,1.118,47,4.844,48,3.728,49,3.417,50,5.648,51,4.77,61,4.169,112,2.396,377,4.169,484,2.464,504,4.004,902,5.721,1002,4.978]],["title/231",[411,4.555]],["content/231",[]],["title/232",[48,1.836,49,1.482,411,3]],["content/232",[3,2.176,48,1.713,49,2.441,55,2.267,57,2.859,63,2.618,105,4.439,134,2.56,257,3.378,377,4.991,455,5.604,460,3.222,484,3.261,497,3.378,498,4.439,501,3.512,502,3.512,526,2.229,540,3.318,587,2.15,588,2.531,618,3.512,621,2.034,655,2.333,659,2.216,661,2.743,686,4.385,796,2.828,896,2.891,976,2.333,993,4.01,994,3.212,1003,3.675,1004,4.01,1005,6.456,1006,3.118,1007,5.011,1008,2.859,1009,3.442,1010,3.035]],["title/233",[104,1.439,411,3,691,2.782]],["content/233",[55,2.227,88,3.041,104,1.953,279,1.633,379,4.659,397,3.327,411,4.072,415,4.694,454,1.605,455,5.817,458,3.878,460,3.184,562,3.914,686,5.706,969,4.747,976,3.394,993,5.834,1011,6.059,1012,6.059,1013,7.29]],["title/237",[574,2.829,1014,4.638]],["content/237",[134,2.903,279,2.246,536,7.545,543,7.181,1015,5.6]],["title/238",[1016,4.289,1017,5.967]],["content/238",[8,1.22,28,2.697,134,2.463,279,1.906,454,1.873,482,2.815,533,6.401,1018,6.588,1019,6.588,1020,6.401,1021,5.37,1022,5.842,1023,5.733,1024,6.807,1025,3.832]],["title/239",[8,0.929,1019,5.016]],["content/239",[28,0.876,36,1.613,74,0.82,102,1.408,103,1.314,112,1.503,134,0.8,143,2.798,171,1.595,241,0.995,305,2.141,311,1.14,312,1.8,375,1.471,376,1.863,454,0.609,482,0.915,497,3.123,499,1.528,500,1.56,531,1.179,538,1.762,562,2.488,574,2.024,582,1.314,592,1.42,600,3.672,622,2.141,626,1.498,641,1.364,646,3.154,657,1.099,688,2.644,691,1.432,720,2.326,757,1.528,777,1.674,859,1.831,891,3.243,898,1.513,942,1.899,973,2.141,1016,1.831,1019,6.04,1020,2.08,1021,1.745,1022,1.899,1023,1.863,1026,2.08,1027,3.068,1028,2.884,1029,1.653,1030,4.03,1031,4.633,1032,3.247,1033,3.247,1034,3.247,1035,1.484,1036,4.03,1037,3.589,1038,4.074,1039,2.212,1040,2.764,1041,2.764,1042,2.141,1043,2.141,1044,2.297,1045,1.457,1046,2.547,1047,2.764,1048,1.577,1049,2.141,1050,2.764,1051,2.764,1052,1.396,1053,4.27,1054,1.613,1055,1.831,1056,2.212,1057,2.764,1058,2.547,1059,1.72,1060,3.487,1061,3.672,1062,2.547,1063,1.72,1064,2.141,1065,2.141,1066,2.547,1067,5.982,1068,2.764,1069,1.457,1070,2.404,1071,1.577,1072,2.212,1073,1.98,1074,2.547,1075,2.404,1076,1.595,1077,2.547,1078,2.404,1079,1.98,1080,2.404,1081,1.72,1082,2.404,1083,2.547,1084,2.027,1085,2.08,1086,1.831,1087,1.385]],["title/240",[8,0.929,533,4.874]],["content/240",[154,4.112,176,3.2,454,1.67,498,4.536,528,5.876,533,7.462,546,4.282,646,3.418,657,3.016,905,5.316,951,4.481,1009,5.21,1021,4.789,1048,4.328,1084,5.563,1088,7.585,1089,5.876,1090,7.585,1091,5.709,1092,5.433,1093,5.113,1094,5.316]],["title/241",[113,4.464]],["content/241",[20,5.743,143,3.739,312,6.093,409,4.766,492,4.015,620,5.743,1095,7.042,1096,6.427,1097,7.488]],["title/242",[691,4.224]],["content/242",[62,3.801,101,3.771,109,4.377,112,2.461,134,2.196,279,1.7,400,3.832,454,1.67,505,3.113,595,5.113,691,3.929,720,2.52,858,4.789,951,4.481,1023,5.113,1055,5.023,1098,4.282,1099,7.585,1100,5.023,1101,4.194,1102,6.304,1103,5.876,1104,4.94]],["title/243",[64,2.948]],["content/243",[35,3.523,45,3.328,52,3.163,62,3.606,64,3.891,69,2.401,97,4.106,104,1.928,109,6.211,182,4.613,194,2.737,307,4.687,330,5.574,477,2.556,538,2.737,655,3.351,664,3.351,720,2.391,867,4.303,1100,4.766,1101,5.295,1105,6.631]],["title/244",[63,4.261]],["content/244",[8,1.239,78,4.594,100,3.994,109,4.983,152,4.399,256,4.983,330,6.69,698,3.728,913,4.775,1106,3.164,1107,6.5,1108,7.178,1109,8.636,1110,6.69]],["title/245",[698,3.52]],["content/245",[52,4.045,109,5.31,152,5.706,400,4.649,698,3.973,720,3.058,1101,5.088,1110,8.677]],["title/246",[65,2.437]],["content/246",[35,3.435,45,3.245,52,3.083,62,3.516,65,3.177,69,2.341,97,4.004,104,1.88,109,6.133,182,4.497,194,2.668,307,4.569,330,5.435,477,2.492,512,5.28,538,2.668,655,3.267,664,3.267,720,2.331,867,4.196,1100,4.646,1101,5.206,1105,6.465,1111,7.016]],["title/247",[63,4.261]],["content/247",[8,1.202,65,2.504,78,4.457,100,3.875,104,2.245,109,4.835,152,4.267,256,4.835,330,6.49,698,3.617,913,4.632,1106,3.07,1107,6.306,1108,6.963,1110,6.49,1112,8.378]],["title/248",[698,3.52]],["content/248",[52,3.916,65,2.663,104,2.388,109,5.142,152,5.594,400,4.502,698,3.846,720,2.961,1101,4.926,1110,8.507]],["title/249",[595,5.497]],["content/249",[18,1.694,74,2.007,109,3.902,134,2.659,152,3.444,242,3.238,306,3.009,314,3.739,477,2.402,595,7.031,646,3.047,698,2.919,891,3.666,1048,5.241,1100,4.478,1101,5.078,1113,4.558,1114,7.634,1115,3.859,1116,3.087,1117,5.882,1118,4.404,1119,4.404]],["title/250",[1120,5.311]],["content/250",[28,2.617,37,4.24,279,1.85,307,5.376,486,4.073,521,3.844,538,3.139,562,4.433,657,3.282,720,2.743,1038,4.314,1115,4.711,1120,5.376,1121,4.876,1122,6.054,1123,5,1124,3.897]],["title/251",[1125,4.877]],["content/251",[18,1.461,48,1.668,49,1.347,57,2.785,73,3.984,75,4.862,131,1.741,134,2.52,144,4.82,194,1.856,229,2.389,310,2.486,314,2.698,409,2.486,476,4.906,477,1.733,492,2.094,517,2.158,529,2.272,587,3.735,589,2.62,646,3.279,659,2.158,664,2.272,712,2.354,900,2.924,913,2.698,1028,3.037,1045,2.573,1095,3.673,1106,1.788,1120,6.284,1121,4.299,1125,5.771,1126,3.673,1127,4.056,1128,4.88,1129,2.849,1130,3.673,1131,2.698,1132,4.467,1133,2.528]],["title/252",[1134,5.632,1135,4.539]],["content/252",[73,4.755,75,4.852,78,3.318,108,2.455,134,1.806,331,3.349,332,2.264,380,3.15,486,4.286,495,3.203,587,2.676,657,2.48,714,3.008,720,2.072,956,3.125,1048,4.957,1106,3.183,1120,4.061,1125,5.195,1129,5.071,1134,9.403,1135,4.371,1136,3.997,1137,4.204,1138,5.195,1139,5.406,1140,5.747]],["title/253",[18,0.981,595,4.365]],["content/253",[18,1,75,3.688,76,4.3,104,1.769,131,2.356,134,1.912,135,3.392,169,3.258,176,2.785,304,4.843,310,3.363,311,2.724,314,3.651,406,4.493,517,2.92,582,3.14,588,3.336,595,6.092,951,3.901,1008,3.768,1103,5.115,1104,5.885,1120,4.3,1129,3.854,1141,5.115,1142,4.97,1143,3.949,1144,3.854,1145,6.603,1146,6.603,1147,4.97]],["title/254",[1066,7.514]],["content/254",[486,4.694,646,4.287,655,4.431,1048,5.43,1053,8.768,1122,6.978,1148,8.276,1149,7.615]],["title/255",[194,2.042,1045,2.831,1150,4.298]],["content/255",[73,5.038,134,2.665,176,3.882,409,4.688,1106,3.372,1113,6.203,1125,5.504,1151,7.649,1152,5.088,1153,8.48]],["title/256",[1154,8.155]],["content/256",[18,1.276,52,4.662,73,3.268,74,1.772,134,2.44,176,2.519,194,3.205,310,3.041,331,3.206,380,3.016,436,3.206,444,4.277,454,1.315,506,4.778,516,3.617,581,2.657,588,3.016,644,5.193,657,2.374,1045,3.148,1125,5.039,1129,3.485,1139,3.716,1150,7.814,1155,3.77,1156,4.379,1157,3.301,1158,5.193,1159,4.962,1160,5.971,1161,5.971,1162,4.778,1163,5.502,1164,5.971]],["title/257",[76,5.311]],["content/257",[18,1.012,75,5.089,76,6.751,112,2.168,113,3.658,134,1.935,194,3.465,331,5.566,332,2.426,454,1.471,516,4.047,714,3.223,1045,3.523,1048,3.813,1120,4.352,1129,3.9,1150,5.347,1157,3.694,1165,4.719,1166,5.553,1167,5.812,1168,6.682,1169,5.347,1170,4.352,1171,4.786,1172,6.682]],["title/258",[1118,5.311]],["content/258",[28,2.842,78,3.472,102,3.324,104,1.749,134,2.965,163,4.675,164,4.786,176,2.753,241,2.349,279,1.462,331,3.504,398,3.504,563,3.724,592,3.352,655,3.039,672,3.504,684,3.019,714,3.148,1091,4.912,1118,7.775,1173,4.675,1174,4.399,1175,4.786,1176,5.424,1177,3.352,1178,4.574,1179,6.014]],["title/259",[28,2.053,1180,6.476]],["content/259",[18,1.426,28,2.986,51,3.435,64,2.536,65,2.097,74,2.794,106,4.819,134,2.726,240,3.733,243,4.497,248,4.366,307,4.569,484,2.341,592,4.836,655,3.267,684,4.355,744,4.095,900,3.783,1035,3.767,1113,4.729,1174,4.729,1181,7.016]],["title/260",[134,1.555,684,2.484,1118,3.497]],["content/260",[18,1.479,47,4.19,134,3.361,241,2.149,242,2.859,243,3.827,454,1.315,477,2.121,483,4.025,557,2.839,558,4.494,563,3.407,589,3.206,592,4.328,672,3.206,684,2.762,714,2.88,816,3.445,900,2.399,1045,3.148,1118,3.888,1165,3.093,1170,5.488,1171,6.035,1174,4.025,1182,5.193,1183,5.971,1184,3.176,1185,3.716,1186,5.971,1187,5.193,1188,4.494]],["title/261",[108,2.114,714,2.59,1118,3.497]],["content/261",[18,1.502,74,2.251,131,2.706,134,2.196,241,2.73,331,4.073,492,3.255,557,3.607,641,3.742,956,3.801,1091,5.709,1118,6.457,1170,4.94,1171,5.433,1189,5.563,1190,3.929,1191,7.585,1192,6.304,1193,3.508,1194,7.585,1195,5.563]],["title/262",[895,4.817]],["content/262",[134,2.903,895,5.922,915,4.576,1028,6.239,1196,7.766]],["title/263",[134,1.875,1196,5.016]],["content/263",[18,0.988,48,2.231,49,1.802,134,2.965,169,3.22,306,2.904,454,1.437,497,4.399,498,3.903,510,3.245,513,3.504,582,3.103,624,3.504,643,4.574,655,3.039,698,2.817,895,3.855,912,3.766,915,2.979,952,5.72,969,4.25,1010,3.953,1015,3.645,1028,4.062,1196,7.932,1197,4.675,1198,3.352,1199,6.014,1200,6.526]],["title/264",[51,2.246,134,1.328,240,2.44,1196,3.553]],["content/264",[18,0.966,51,4.953,131,2.275,134,2.555,169,3.147,240,4.694,242,3.054,243,5.656,306,2.838,415,3.099,454,1.404,497,4.299,529,2.97,582,3.033,623,3.814,720,2.932,761,3.639,952,4.929,1008,3.639,1015,3.563,1029,3.814,1143,3.814,1144,3.723,1196,7.836,1197,4.568,1198,3.276,1201,4.224,1202,4.8]],["title/265",[952,3.617,1009,4.448]],["content/265",[141,5.12,509,6.432,573,5.181,624,4.71,626,4.755,952,4.899,1009,6.025,1203,7.019,1204,5.313,1205,9.46,1206,8.771,1207,8.771]],["title/266",[957,3.873,1123,3.923]],["content/266",[112,2.719,505,3.438,655,3.901,957,6.924,1028,5.214,1123,6.402,1208,6.144,1209,6.999,1210,7.72,1211,6.144,1212,7.72,1213,5.648]],["title/267",[1214,5.632,1215,5.967]],["content/267",[0,1.674,8,1.194,48,3.468,49,3.068,55,1.793,58,2.208,113,5.295,150,3.31,241,2.112,332,2.131,346,4.417,374,6.105,411,2.062,413,2.298,416,2.041,474,2.208,538,2.232,581,1.643,621,1.499,641,1.821,664,1.719,684,1.708,686,4.316,728,3.068,729,4.114,731,4.304,733,6.265,796,3.313,863,2.644,882,5.659,883,6.662,894,4.032,895,2.181,976,1.719,1009,4.032,1179,3.402,1190,1.912,1208,2.707,1215,3.402,1216,3.692,1217,3.692,1218,7.306,1219,2.954,1220,3.692,1221,3.692,1222,3.692,1223,3.692,1224,2.954,1225,3.692,1226,2.041]],["title/268",[67,2.441,416,1.255,455,1.219,512,1.708,1214,1.974,1227,2.27,1228,1.887,1229,2.27,1230,2.27]],["content/268",[8,1.346,24,3.639,135,4.112,332,2.018,411,4.471,413,4.982,416,3.072,444,3.98,455,2.984,460,1.832,462,3.817,468,4.618,470,2.807,512,6.025,549,3.562,573,3.282,659,2.457,684,2.57,698,2.399,712,2.68,728,4.618,733,6.025,767,3.817,864,3.619,882,7.953,883,6.406,1004,6.406,1009,3.817,1228,8.533,1231,5.557,1232,5.557,1233,3.171,1234,4.833]],["title/269",[1214,4.671,1235,5.37,1236,3.846]],["content/269",[8,1.699,24,0.496,32,2.264,47,0.635,48,2.151,49,3.115,50,0.662,53,0.819,71,0.399,97,0.729,112,0.761,113,2.902,130,1.554,150,0.933,169,1.158,175,1.237,233,0.984,256,1.354,332,2.809,379,1.132,411,1.311,413,0.795,415,1.14,416,1.799,446,1.237,454,1.167,455,1.26,488,0.686,514,1.877,517,0.565,520,2.411,524,0.527,538,0.486,581,0.569,585,0.807,637,1.178,639,1.519,640,1.112,648,3.351,655,2.712,659,1.783,688,0.729,698,1.404,729,0.896,731,0.937,735,2.585,743,0.896,757,0.707,860,2.041,882,0.99,883,1.023,895,1.386,900,0.943,935,2.52,956,1.176,975,2.162,976,1.515,1002,1.582,1009,2.235,1032,0.896,1106,0.468,1116,1.071,1165,0.662,1208,0.937,1226,0.707,1237,7.086,1238,4.032,1239,1.023,1240,5.825,1241,3.253,1242,1.922,1243,2.603,1244,0.915,1245,4.242,1246,1.178,1247,1.278,1248,2.162,1249,0.937,1250,0.937,1251,2.193,1252,1.278,1253,2.347,1254,1.354,1255,3.253,1256,1.278,1257,0.915,1258,1.178,1259,1.178,1260,2.347,1261,1.278,1262,2.448,1263,1.278,1264,3.253,1265,2.085,1266,1.278,1267,1.278,1268,1.178,1269,3.253,1270,1.178,1271,1.278,1272,2.347,1273,2.347,1274,2.347,1275,1.278,1276,0.896,1277,0.937,1278,1.278,1279,1.278,1280,2.347,1281,1.278,1282,1.112,1283,1.278,1284,1.278,1285,1.278,1286,1.278,1287,1.278,1288,1.278,1289,1.278,1290,1.278,1291,1.278,1292,1.278,1293,1.278,1294,1.278,1295,1.278,1296,1.278,1297,1.278,1298,2.347,1299,1.278,1300,1.278,1301,2.347,1302,1.278,1303,1.278,1304,1.278,1305,1.278,1306,1.278,1307,1.278,1308,1.278,1309,1.278,1310,1.278,1311,1.278,1312,1.278,1313,1.278,1314,1.278,1315,1.278,1316,1.278,1317,1.278,1318,1.278,1319,1.278,1320,2.347,1321,1.278,1322,1.278,1323,1.278,1324,1.278,1325,1.278,1326,1.278,1327,1.554,1328,1.278,1329,1.278,1330,1.062,1331,1.278,1332,1.278,1333,1.278,1334,1.278]],["title/270",[1335,8.155]],["content/270",[49,3.205,103,2.839,113,3.268,229,2.923,256,3.445,306,2.657,332,2.168,379,4.71,477,2.121,514,6.121,527,4.101,592,3.067,639,3.174,659,2.64,698,3.637,729,4.185,731,4.379,733,4.494,773,3.093,777,5.104,1208,4.379,1209,3.954,1327,5.58,1330,4.962,1336,5.971,1337,5.502,1338,5.502,1339,5.971,1340,5.971]],["title/271",[1341,8.155]],["content/271",[8,0.936,24,2.531,48,2.231,49,2.827,99,3.039,306,2.904,332,2.37,380,3.297,460,2.955,477,2.318,573,3.855,587,2.801,639,2.459,698,4.42,714,3.148,721,4.574,1190,3.381,1226,3.608,1233,3.724,1342,6.747,1343,5.424,1344,6.421,1345,6.526,1346,8.965,1347,5.424,1348,6.526,1349,5.424]],["title/272",[1236,4.638,1350,6.476]],["content/272",[13,4.922,20,4.922,49,3.132,103,3.813,229,5.033,380,4.051,514,4.627,538,3.05,592,4.119,698,3.462,1009,5.508,1208,5.881,1344,7.362,1349,6.665,1351,8.019]],["title/273",[1352,8.155]],["content/273",[49,3.062,71,2.828,135,4.651,176,3.819,380,4.574,454,1.993,581,4.029,587,3.886,698,4.788]],["title/274",[1236,4.638,1353,6.476]],["content/274",[24,2.315,48,2.041,49,3.42,229,4.126,306,2.657,332,3.546,380,4.933,587,3.616,592,3.067,639,2.249,684,2.762,698,4.215,714,2.88,1208,4.379,1233,3.407,1236,4.277,1327,3.954,1343,4.962,1344,7.597,1349,7.003,1354,8.426,1355,5.502]],["title/275",[67,2.166,1236,3.286,1356,4.587,1357,3.99]],["content/275",[48,1.81,49,3.376,52,2.327,71,2.851,84,3.394,332,1.923,376,6.154,380,3.905,514,5.268,526,2.356,573,3.128,653,3.448,659,2.341,698,4.333,714,2.554,721,3.711,757,2.927,1009,5.309,1226,2.927,1236,7.646,1249,3.883,1343,6.424,1344,3.792,1349,4.4,1358,5.295,1359,4.4,1360,5.295,1361,7.73,1362,5.295]],["title/276",[67,1.368,455,1.556,1236,2.075,1342,2.18,1363,2.897,1364,2.408,1365,2.52,1366,2.52]],["content/276",[8,0.782,32,1.961,49,3.206,52,3.469,71,1.702,103,2.591,135,2.799,229,2.668,379,4.476,380,3.987,411,3.044,413,4.912,444,3.903,446,5.364,454,1.738,455,2.926,514,3.144,538,3.002,624,2.926,698,4.006,712,2.628,882,4.221,883,4.361,1208,3.996,1226,3.012,1236,3.903,1344,5.653,1347,6.56,1367,5.449,1368,5.449,1369,5.449,1370,5.021]],["title/277",[455,2.463,1236,3.286,1371,4.587,1372,4.227]],["content/277",[48,1.499,49,3.365,51,2.147,52,1.927,71,2.096,113,2.4,176,1.849,240,2.332,306,1.951,332,2.437,380,2.215,411,3.749,454,1.796,477,1.557,500,2.475,514,3.873,517,1.939,520,2.622,538,2.553,581,1.951,624,2.354,671,2.4,686,2.59,698,3.521,712,2.115,714,3.238,727,5.579,728,3.644,729,4.704,731,4.922,755,6.138,757,2.424,777,2.656,894,3.011,1131,3.711,1233,3.83,1344,4.808,1347,3.644,1373,3.644,1374,4.384,1375,6.712,1376,3.14,1377,2.475,1378,4.384,1379,4.384,1380,4.384]],["title/282",[952,3.617,1010,3.923]],["content/282",[141,5.12,509,6.432,573,5.181,624,4.71,626,4.755,952,4.899,1010,5.313,1203,7.019,1204,5.313,1205,9.46,1381,8.771,1382,8.771]],["title/283",[8,0.929,1383,6.476]],["content/283",[20,4.922,49,2.837,279,1.797,498,4.796,504,5.572,531,3.421,563,4.576,592,4.119,617,5.508,698,4.437,816,4.627,957,4.796,1006,4.991,1010,6.226,1384,8.019]],["title/284",[1366,5.632,1385,6.476]],["content/284",[6,4.877,69,2.973,71,2.783,150,3.543,440,4.977,454,1.962,504,5.954,1010,6.653,1386,5.201,1387,7.75]],["title/285",[1388,7.514]],["content/285",[143,3.739,454,2.06,505,3.839,559,4.806,567,5.908,641,4.616,1389,6.558,1390,9.356,1391,8.138]],["title/286",[1392,8.155]],["content/286",[49,2.974,57,4.928,71,2.697,233,3.623,486,5.315,641,4.261,659,3.819,684,3.994,1393,7.511,1394,6.186,1395,5.719,1396,8.636]],["title/287",[1397,8.155]],["content/287",[32,3.514,48,2.041,49,2.695,97,3.407,105,3.571,112,2.734,150,2.374,306,2.657,347,4.277,454,1.855,653,3.888,698,3.637,757,3.301,913,3.301,1010,3.617,1184,3.176,1242,5.768,1391,5.193,1394,4.277,1398,4.494,1399,4.778,1400,5.971,1401,5.193,1402,8.426,1403,4.918,1404,4.185,1405,5.971,1406,4.185,1407,5.971,1408,5.971,1409,5.971,1410,5.502]],["title/288",[1411,8.155]],["content/288",[49,2.918,332,3.838,454,1.845,517,3.705,757,4.632,1129,4.891,1233,4.781,1406,7.408,1412,7.287,1413,8.378,1414,8.378,1415,8.378,1416,7.287]],["title/289",[1417,8.155]],["content/289",[32,2.886,49,2.837,71,2.505,97,4.576,304,7.538,454,1.765,642,5.744,698,3.462,757,4.433,915,3.66,1129,6,1233,4.576,1406,5.62,1418,8.019,1419,6.417,1420,8.019]],["title/290",[1421,8.155]],["content/290",[49,2.421,71,2.739,332,3.185,454,1.931,1010,5.313,1184,4.666,1422,10.023,1423,5.622,1424,7.29,1425,8.083,1426,8.771,1427,8.083]],["title/291",[1428,6.476,1429,4.749]],["content/291",[97,5.085,279,1.997,332,3.236,698,4.741,757,4.926,1018,6.902,1406,7.698,1423,5.712,1429,6.535,1430,8.911]],["title/292",[1406,4.539,1431,6.476]],["content/292",[49,2.499,446,4.773,454,2.442,915,4.133,1233,5.167,1364,7.525,1406,6.346,1416,7.875,1432,9.054,1433,9.054]],["title/293",[8,0.77,1434,5.37,1435,5.37]],["content/293",[332,3.397,454,2.06,755,7.042,1129,5.462,1233,6.457,1406,6.558,1416,8.138,1436,9.356]],["title/294",[1437,8.155]],["content/294",[32,3.367,49,2.583,671,5.122,1184,4.978,1419,7.488,1422,8.622,1427,8.622,1429,6.862,1438,6.427]],["title/295",[1439,8.155]],["content/295",[6,3.135,8,1.369,32,2.061,49,2.634,71,1.789,112,1.858,279,1.283,306,3.64,332,3.465,454,1.801,477,2.034,557,2.723,587,3.511,698,4.119,792,7.115,1010,3.469,1129,3.343,1226,3.166,1233,3.268,1242,4.832,1342,4.31,1406,4.014,1419,4.583,1429,4.2,1440,6.026,1441,5.727,1442,10.41,1443,5.727,1444,5.727]],["title/296",[1445,8.155]],["content/296",[48,2.908,49,3.218,71,2.656,514,4.908,653,5.539,890,4.751,1129,4.965,1184,4.525,1226,4.702,1242,6.303,1446,8.505,1447,8.505]],["title/297",[1448,8.155]],["content/297",[49,3.412,71,2.739,332,3.185,380,5.495,698,4.695,1184,4.666,1412,7.629,1449,7.019]],["title/298",[1357,5.632,1450,6.476]],["content/298",[49,2.672,71,3.023,698,4.178,1184,5.149,1406,6.784,1410,8.919,1449,7.746]],["title/299",[1357,5.632,1451,6.476]],["content/299",[49,2.974,71,2.697,306,3.843,463,7.015,684,3.994,773,4.474,1129,6.853,1184,5.731,1452,8.636]],["title/300",[1453,6.476,1454,5.967]],["content/300",[71,2.972,653,6.197,890,5.315,1129,5.554,1242,5.621,1338,8.768,1455,9.515,1456,9.515]],["title/301",[1457,8.155]],["content/301",[32,3.259,49,3.062,587,3.886,698,4.788,773,4.69,1184,4.817,1233,5.167,1242,5.349,1458,9.054]],["title/302",[1459,8.155]],["content/302",[49,2.719,71,3.076,1184,5.24,1233,5.62,1242,5.818,1406,6.903]],["title/303",[1454,5.967,1460,6.476]],["content/303",[32,3.108,71,2.697,454,1.901,463,5.624,744,5.041,773,4.474,1129,6.288,1184,4.594,1242,5.101,1429,6.333,1461,8.636,1462,6.911,1463,8.636]],["title/304",[1365,5.632,1464,6.476]],["content/304",[49,2.89,446,5.52,454,2.305,559,4.24,587,3.543,698,3.563,773,4.276,1010,5,1364,6.861,1370,9.648,1388,7.607,1389,5.786,1465,8.255]],["title/305",[1364,4.463,1365,4.671,1466,5.37]],["content/305",[49,2.348,446,4.484,454,1.873,463,5.539,559,4.368,684,3.934,773,5.527,1010,5.152,1129,4.965,1233,4.853,1389,5.961,1429,6.237,1462,6.807,1467,7.837]],["title/306",[1468,6.476,1469,5.967]],["content/306",[49,2.384,71,2.697,559,4.436,587,3.706,698,3.728,755,6.5,773,4.474,915,3.942,1010,5.231,1226,4.775,1233,4.928,1389,6.053,1425,7.958,1470,8.636]],["title/307",[1372,4.227,1429,3.364,1469,4.227,1471,4.587]],["content/307",[49,2.348,71,2.656,454,1.873,559,4.368,617,5.842,755,6.401,773,4.406,1010,5.152,1233,6.088,1389,5.961,1429,6.237,1462,6.807,1467,7.837,1472,8.505]],["title/308",[535,3.22,1119,4.217]],["content/308",[37,4.119,112,2.602,242,3.84,279,1.797,529,4.786,890,4.479,892,4.991,949,5.744,1076,4.627,1119,5.222,1473,7.389,1474,6.665,1475,5.222,1476,7.389,1477,4.681,1478,6.665,1479,6.665,1480,4.433]],["title/309",[1481,8.155]],["content/309",[242,2.688,309,2.835,454,1.236,582,2.668,641,2.769,657,3.752,666,2.279,720,1.865,890,3.135,898,3.072,912,3.239,952,4.504,1008,3.203,1076,4.653,1119,3.655,1149,4.491,1157,3.103,1474,4.665,1477,4.706,1482,5.091,1483,4.881,1484,5.172,1485,3.655,1486,5.172,1487,5.172,1488,5.612,1489,5.612,1490,5.612,1491,5.612,1492,5.612,1493,5.612,1494,4.665,1495,5.612,1496,4.02,1497,5.612,1498,4.347,1499,3.783,1500,5.612,1501,4.665,1502,3.544,1503,4.665,1504,5.612,1505,4.491]],["title/310",[113,2.94,1499,3.62,1506,4.463]],["content/310",[49,1.229,77,3.059,108,2.674,112,2.672,113,3.719,175,2.348,241,1.603,394,2.95,398,2.392,454,1.496,477,1.582,486,2.197,529,2.074,619,2.6,620,2.734,626,3.683,657,1.771,666,1.808,720,2.257,757,2.462,863,5.899,1048,2.541,1076,4.752,1092,3.19,1107,3.352,1115,2.541,1119,4.424,1136,2.855,1157,2.462,1190,3.519,1343,3.702,1423,2.855,1473,4.104,1477,2.6,1480,2.462,1496,4.866,1499,4.579,1506,5.646,1507,6.26,1508,6.845,1509,4.454,1510,2.901,1511,3.702,1512,3.352,1513,4.104,1514,3.874,1515,3.874,1516,3.702,1517,5.909,1518,4.454,1519,4.454,1520,4.454,1521,3.266,1522,4.104,1523,4.104]],["title/311",[113,2.511,379,2.213,1101,2.536,1499,3.092]],["content/311",[24,2.392,49,2.38,108,2.428,112,2.797,113,3.376,228,3.223,379,2.975,444,4.418,454,1.358,641,3.043,657,2.452,698,2.662,863,4.418,890,4.815,892,3.838,917,3.688,1023,4.157,1076,3.559,1092,4.418,1100,5.709,1101,3.41,1131,3.41,1477,3.6,1499,4.157,1506,5.126,1508,7.165,1523,5.683,1524,6.168,1525,4.237,1526,4.936,1527,3.954,1528,4.237,1529,5.683,1530,5.683,1531,5.364]],["title/312",[1528,5.601]],["content/312",[18,0.674,24,1.727,49,1.229,112,2.204,113,2.438,242,2.133,306,1.982,309,2.25,312,2.901,397,2.033,398,3.648,454,1.813,486,2.197,516,2.698,529,2.074,531,1.9,582,2.118,626,3.683,641,2.197,657,1.771,688,3.877,698,3.977,720,1.48,863,3.19,892,2.772,904,3.266,906,3.874,951,2.631,956,2.232,981,2.95,1008,2.541,1042,3.45,1048,2.541,1073,3.19,1100,5.454,1115,2.541,1119,4.424,1123,2.698,1137,3.002,1190,2.307,1423,2.855,1477,2.6,1480,2.462,1496,3.19,1507,4.104,1508,3.702,1510,2.901,1514,3.874,1517,3.874,1531,3.874,1532,3.702,1533,2.95,1534,3.702,1535,3.059,1536,3.874,1537,4.454,1538,4.454,1539,4.454,1540,2.57,1541,3.45,1542,4.454,1543,3.874,1544,4.104]],["title/313",[1545,4.603]],["content/313",[35,3.479,112,2.305,113,3.889,176,2.997,242,3.402,477,2.524,529,4.422,641,3.505,657,2.825,900,2.854,1042,5.504,1048,4.054,1476,6.547,1477,4.147,1499,4.789,1525,4.88,1532,7.892,1546,7.105,1547,5.347,1548,4.705,1549,6.547,1550,7.105,1551,4.304,1552,7.105,1553,6.18,1554,5.504]],["title/314",[74,1.922,242,3.101]],["content/314",[18,1.503,24,2.546,35,1.543,48,1.078,49,1.426,74,2.253,88,1.315,104,2.034,108,1.241,143,1.26,225,2.209,248,1.962,249,2.492,256,1.819,380,1.593,397,2.358,411,1.761,414,3.422,416,3.63,454,0.694,455,3.525,460,1.039,477,1.12,485,3.121,505,1.294,532,2.258,581,1.403,586,1.743,588,1.593,626,4.116,641,1.555,642,2.258,655,1.468,661,1.726,666,2.098,695,3.262,735,2.021,796,3.706,863,2.258,887,2.258,890,1.761,892,1.962,913,1.743,917,1.885,931,1.99,1004,2.523,1038,1.647,1073,2.258,1076,2.981,1081,1.962,1106,3.298,1170,2.053,1394,3.701,1480,1.743,1496,3.701,1510,2.053,1511,2.62,1517,2.742,1528,2.165,1531,2.742,1532,5.456,1551,3.13,1555,3.152,1556,3.152,1557,3.152,1558,2.258,1559,4.002,1560,3.152,1561,2.523,1562,3.152,1563,1.819,1564,2.523,1565,2.053,1566,2.312,1567,3.152,1568,2.312,1569,3.152,1570,3.152,1571,3.152,1572,2.742,1573,2.125,1574,3.152,1575,1.709]],["title/315",[74,1.922,698,2.795]],["content/315",[18,1.574,28,0.77,29,1.102,35,0.649,37,0.681,48,0.453,49,1.146,52,2.39,55,1.661,69,1.385,74,2.897,75,1.875,82,1.198,104,2.575,108,0.956,112,0.788,113,0.726,114,0.441,115,0.371,131,1.726,134,0.972,143,0.53,150,1.335,152,1.71,176,0.56,233,0.556,241,1.208,242,1.163,247,1.027,248,4.501,253,0.601,257,0.894,308,0.626,309,0.67,314,0.733,375,0.706,379,1.171,380,0.67,393,0.765,394,0.878,395,1.49,397,1.108,398,3.883,406,0.659,415,0.645,416,1.856,439,0.784,454,1.065,455,0.712,463,0.864,476,0.894,477,0.862,485,0.631,517,1.074,521,1.13,523,0.837,527,0.911,529,0.618,548,1.027,557,0.631,562,1.304,586,0.733,589,0.712,590,0.998,623,0.793,626,4.272,652,0.825,657,1.651,671,0.726,684,1.553,686,0.784,698,4.077,720,0.807,767,0.911,849,0.825,858,0.837,863,0.95,890,2.319,898,1.838,905,0.93,908,0.85,913,3.79,945,1.452,952,0.741,954,1.943,969,2.186,976,0.618,994,1.556,1006,0.825,1011,1.102,1015,1.356,1023,0.894,1029,0.793,1034,0.93,1069,0.699,1076,0.765,1087,1.682,1092,0.95,1097,1.061,1100,3.204,1101,1.856,1106,1.23,1120,0.864,1121,1.434,1125,2.008,1137,0.894,1143,0.793,1147,1.827,1151,1.102,1159,2.79,1165,2.15,1185,0.825,1423,2.152,1462,3.872,1475,0.864,1482,0.837,1496,0.95,1499,0.894,1510,1.581,1514,2.112,1526,1.061,1551,0.803,1563,0.765,1573,2.263,1575,0.719,1576,1.326,1577,1.222,1578,3.093,1579,1.326,1580,1.222,1581,1.326,1582,1.702,1583,0.93,1584,1.222,1585,1.222,1586,1.154,1587,2.526,1588,0.998,1589,0.93,1590,1.154,1591,0.973,1592,0.911,1593,1.78,1594,1.154,1595,1.061,1596,1.326,1597,1.702,1598,1.326,1599,1.222,1600,1.326,1601,0.973,1602,0.998]],["title/316",[74,1.922,576,5.632]],["content/316",[18,1.294,24,3.314,49,1.682,52,1.701,69,1.291,74,1.808,112,1.256,113,2.118,241,2.712,242,1.853,249,1.867,347,2.772,400,1.955,413,2.409,416,2.14,463,2.52,495,1.988,517,1.711,521,1.802,531,1.651,585,2.444,595,2.609,626,4.633,666,1.571,698,2.63,720,1.286,796,2.185,857,2.712,890,2.162,892,2.409,898,2.118,908,2.481,913,2.14,931,2.444,960,4.585,1015,2.162,1022,2.658,1042,2.998,1048,2.208,1071,2.208,1076,2.233,1081,2.409,1100,2.563,1165,2.005,1246,3.566,1462,4.876,1477,2.259,1496,2.772,1511,3.217,1528,2.658,1532,7.726,1554,4.719,1582,4.27,1593,2.838,1603,5.064,1604,3.366,1605,3.87,1606,6.093,1607,3.87,1608,5.614,1609,3.566,1610,2.838,1611,3.217,1612,3.87,1613,3.87,1614,3.566,1615,2.772,1616,2.998,1617,3.87]],["title/317",[916,3.737,1076,3.737]],["content/317",[18,1.552,35,2.348,48,2.456,49,1.983,55,2.195,74,2.557,75,2.679,104,1.925,176,2.023,248,2.985,253,2.175,398,2.576,406,4.283,521,2.234,532,6.852,562,2.576,626,5.186,698,4.95,890,2.679,912,2.768,916,2.768,976,2.234,1006,2.985,1076,4.146,1100,7.385,1125,2.868,1151,3.987,1342,3.61,1477,2.8,1496,5.146,1554,3.715,1599,4.42,1618,4.42]],["title/318",[890,3.617,916,3.737]],["content/318",[3,2.708,18,1.637,75,3.483,176,2.631,241,3.126,400,4.389,444,6.222,463,6.51,521,2.904,576,5.424,626,3.381,698,2.692,712,4.19,744,3.64,890,6.039,913,3.448,916,3.599,1117,5.424,1125,3.729,1185,3.881,1477,3.64,1554,4.831,1597,4.371,1618,5.747,1619,7.22,1620,3.053]],["title/319",[74,1.594,242,2.572,1540,3.099]],["content/319",[18,0.802,24,2.053,28,1.679,49,1.462,73,2.898,74,2.709,76,5.034,78,2.817,112,1.718,134,2.238,194,2.014,241,1.905,242,4.807,243,3.394,398,4.15,400,2.675,527,3.637,595,3.569,657,2.105,672,2.843,695,3.343,698,2.285,761,3.021,908,3.394,992,4.4,1006,3.295,1029,3.166,1045,4.075,1048,3.021,1052,2.675,1056,4.237,1092,3.792,1100,3.506,1115,3.021,1118,5.034,1137,3.569,1188,3.985,1496,3.792,1558,3.792,1621,4.605,1622,6.723,1623,4.605,1624,4.4,1625,4.605]],["title/278",[1144,4.76]],["content/278",[69,2.675,131,3.667,134,2.322,242,4.922,279,1.797,415,4.995,720,3.415,1144,6.622,1626,5.063,1627,5.508,1628,5.744,1629,7.389,1630,8.019]],["title/279",[1627,4.448,1628,4.638]],["content/279",[18,0.944,24,2.418,52,2.741,131,3.857,134,1.806,242,4.787,253,3.939,306,2.775,398,3.349,454,1.373,492,2.676,655,4.045,1035,3.349,1101,3.448,1102,5.183,1103,4.831,1169,4.991,1610,4.573,1628,7.16,1631,7.578,1632,8,1633,8.308,1634,6.236]],["title/280",[378,3,1033,3.764,1098,3.031]],["content/280",[176,4.679,533,6.814,951,5.349,1020,6.814,1023,6.103,1029,5.415,1033,6.346,1098,5.111,1590,7.875,1635,5.057]],["title/281",[1035,3.477,1636,6.476]],["content/281",[24,2.366,52,2.681,134,2.477,164,4.474,175,3.216,196,3.745,253,3.879,312,3.973,398,3.276,454,1.343,493,2.633,521,2.841,533,6.438,546,3.444,646,2.749,720,2.027,829,4.882,951,5.053,956,3.057,1020,4.591,1030,5.306,1035,4.593,1147,4.591,1193,2.822,1477,3.561,1527,3.911,1564,4.882,1610,4.474,1637,7.883,1638,6.626,1639,5.622,1640,6.101,1641,6.101,1642,6.101]],["title/320",[143,2.588,1643,4.03]],["content/320",[3,1.669,30,1.79,48,1.314,49,1.061,82,1.896,88,3.865,104,1.624,130,4.968,131,2.676,141,2.244,143,4.662,150,2.409,225,4.247,279,0.861,380,1.942,446,2.026,454,0.846,458,2.045,482,2.005,485,2.881,510,1.911,517,1.7,524,1.586,526,1.71,531,1.64,582,1.827,587,3.654,626,4.066,646,1.732,657,2.983,956,3.759,976,1.79,1086,2.545,1173,2.753,1373,3.194,1582,2.694,1594,3.343,1643,7.139,1644,2.819,1645,2.64,1646,2.893,1647,1.841,1648,3.844,1649,3.844,1650,3.076,1651,3.844,1652,3.343,1653,2.545,1654,3.542,1655,3.844,1656,2.084,1657,3.844]],["title/322",[1658,6.778]],["content/322",[32,1.402,88,1.626,131,3.061,134,1.774,143,1.557,150,3.937,171,2.249,279,0.873,311,1.608,409,3.12,460,2.019,474,2.33,477,1.384,510,1.938,513,2.092,583,4.492,588,1.969,589,4.064,600,5.266,603,2.933,621,1.582,653,2.538,684,1.802,688,2.224,714,1.88,777,2.36,827,2.092,849,3.812,900,3.041,992,3.239,1003,2.858,1063,2.425,1070,3.389,1081,2.425,1141,3.019,1157,2.155,1162,3.119,1175,2.858,1226,2.155,1484,6.975,1499,2.627,1522,5.645,1582,2.731,1643,2.425,1644,5.551,1658,7.131,1659,4.293,1660,3.591,1661,2.791,1662,2.425,1663,3.389,1664,2.627,1665,6.126,1666,5.091,1667,3.389,1668,3.591,1669,3.897,1670,2.302,1671,3.239,1672,3.897,1673,3.389,1674,2.791]],["title/321",[1667,7.093]],["content/321",[28,1.105,104,0.934,131,2,134,1.009,143,3.22,150,2.229,249,1.681,255,2.308,279,1.256,308,1.646,411,1.947,439,2.059,507,3.068,510,2.787,531,1.487,565,2.084,583,5.908,592,1.79,600,4.316,604,3.593,626,1.889,646,1.57,653,2.27,664,1.623,666,1.415,712,3.392,714,1.681,777,2.111,827,1.871,849,2.169,891,1.889,900,2.825,956,2.809,1003,4.111,1018,2.7,1052,1.761,1087,1.747,1157,1.927,1226,1.927,1327,2.308,1499,5.95,1530,3.212,1582,2.443,1643,3.489,1644,5.157,1650,4.486,1659,2.443,1660,5.165,1667,6.116,1668,3.212,1675,2.349,1676,2.7,1677,4.659,1678,2.623,1679,3.485,1680,5.165,1681,3.485,1682,3.212,1683,3.485,1684,2.7,1685,5.606,1686,3.485,1687,3.485,1688,3.485,1689,3.031,1690,3.485,1691,2.169,1692,3.485,1693,2.897,1694,3.485,1695,3.485,1696,3.485,1697,2.897,1698,3.485,1699,3.212,1700,3.485]],["title/323",[1701,5.98]],["content/323",[18,1.532,20,3.915,52,2.803,131,4.335,134,2.555,253,2.892,415,3.099,439,3.768,538,2.426,557,3.033,564,4.94,646,4.558,655,4.711,887,4.568,912,3.68,952,3.563,1055,4.224,1098,3.6,1104,4.154,1144,3.723,1201,4.224,1251,4.299,1701,4.677,1702,4.94]],["title/324",[131,1.916,1702,4.16,1703,5.37]],["content/324",[18,1.308,28,2.738,131,3.843,134,2.501,486,4.261,592,4.436,600,5.301,620,5.301,646,3.891,1091,6.5,1165,4.474,1663,7.511,1704,8.636]],["title/325",[131,2.31,1035,3.477]],["content/325",[]],["title/326",[1705,8.155]],["content/326",[]],["title/327",[1706,7.514]],["content/327",[18,1.012,102,3.403,131,3.972,134,2.638,171,3.856,415,3.247,646,5.016,655,3.111,1028,4.158,1035,3.588,1045,3.523,1106,2.448,1143,3.996,1157,3.694,1646,5.029,1663,5.812,1702,5.176,1706,8.395,1707,6.682,1708,4.504,1709,4.219,1710,6.682,1711,4.047,1712,6.682,1713,5.553]],["title/328",[151,3.342,375,2.857,415,2.61]],["content/328",[48,3.331,49,2.69,69,2.464,131,2.635,135,5.004,151,4.596,375,3.929,377,6.155,415,3.589,485,3.512,495,3.793,528,5.721,535,3.672,559,3.793,655,4.537,917,4.417,1089,5.721,1104,4.81,1610,5.416]],["title/329",[48,1.568,49,1.266,377,2.589,1089,3.553]],["content/329",[18,1.414,28,2.197,48,3.192,49,2.578,52,4.104,69,3.115,114,2.302,115,1.939,134,2.704,135,3.559,240,3.686,347,4.963,377,5.962,450,3.721,458,3.686,485,3.295,896,3.999,915,3.163,1032,4.857,1071,3.954,1104,4.513,1501,5.759]],["title/330",[1610,5.98]],["content/330",[18,0.934,26,4.323,48,3.679,49,2.97,52,2.711,69,2.058,108,2.428,135,3.168,151,5.365,253,2.797,375,4.586,377,3.482,415,4.829,453,3.954,454,1.358,536,6.488,557,2.933,559,3.168,581,2.744,655,2.872,695,3.894,899,4.777,1006,3.838,1023,4.157,1071,3.519,1089,4.777,1265,3.954,1714,6.168,1715,6.168]],["title/331",[18,0.813,20,3.296,400,2.713]],["content/331",[18,1.829,20,5.649,131,3.996,134,2.665,1184,4.896,1251,6.203,1646,6.926]],["title/332",[400,4.12]],["content/332",[0,2.232,18,1.109,45,4.047,73,2.695,74,1.461,76,3.206,112,1.597,131,3.121,134,3.257,176,2.077,182,3.156,183,2.944,242,2.357,308,2.324,311,2.031,314,4.05,380,2.487,400,2.487,415,2.392,506,3.94,516,2.982,521,2.292,590,3.705,644,6.372,684,2.277,720,1.636,757,2.722,793,3.381,915,2.247,1045,3.862,1048,2.809,1103,3.813,1115,4.18,1139,3.064,1149,3.94,1157,2.722,1165,2.55,1184,2.619,1477,4.276,1478,4.092,1582,3.45,1620,2.41,1666,4.092,1716,3.94,1717,4.282,1718,4.536,1719,4.536]],["title/333",[134,1.875,1035,3.477]],["content/333",[18,1.212,45,2.57,52,2.442,62,2.785,74,1.649,131,1.982,134,3.151,182,3.562,183,3.323,242,2.661,253,4.255,311,3.303,380,4.044,400,2.807,409,2.83,415,3.89,485,2.642,574,2.427,590,6.025,621,2.256,655,2.588,912,3.206,1035,2.984,1048,3.171,1084,4.075,1087,2.785,1106,2.036,1116,2.536,1126,4.182,1529,5.12,1691,3.458,1720,4.304,1721,7.475,1722,3.282,1723,5.12]],["title/335",[18,0.813,131,1.916,1646,4.042]],["content/335",[18,1.606,55,2.574,114,1.984,115,1.671,131,3.483,135,3.067,145,2.708,176,2.519,380,3.016,416,3.301,492,3.616,577,5.502,585,3.77,589,3.206,646,2.69,655,2.78,712,4.71,720,1.984,744,3.485,912,3.445,952,3.335,1152,3.301,1251,4.025,1702,6.527,1708,4.025,1709,3.77,1724,4.101,1725,4.962,1726,5.971,1727,5.193,1728,5.502,1729,4.778,1730,3.77]],["title/336",[114,1.784,115,1.503,1152,2.969]],["content/336",[18,1.38,48,2.284,49,1.845,51,3.272,61,3.772,74,1.983,77,4.59,114,3.027,115,3.115,131,3.25,134,2.638,150,2.657,240,3.555,242,3.2,243,4.283,331,3.588,412,4.683,477,2.373,493,2.884,559,3.432,590,5.029,657,2.657,796,3.772,900,2.684,1060,5.029,1731,4.683]],["title/337",[18,0.813,55,1.64,1152,2.969]],["content/337",[]],["title/338",[18,0.813,134,1.555,1152,2.969]],["content/338",[18,1.012,28,2.119,47,3.322,48,2.284,49,2.515,55,2.041,134,3.001,145,3.03,163,4.786,164,4.9,176,2.819,377,3.772,406,3.322,498,3.996,514,3.856,515,4.158,588,3.376,650,4.9,712,4.395,976,3.111,1104,4.352,1116,3.05,1133,3.461,1174,4.504,1185,4.158,1201,4.425,1242,3.947,1394,4.786,1732,4.158]],["title/339",[18,0.606,51,1.96,134,1.159,240,2.13,1152,2.213]],["content/339",[18,1.181,47,3.876,51,3.817,134,3.241,145,3.535,176,3.289,194,2.965,240,4.148,477,2.769,712,4.869,915,3.558,976,3.63,1155,4.922,1394,5.584,1643,4.852,1732,4.852,1733,6.48,1734,7.796]],["title/340",[18,0.813,65,1.605,1152,2.969]],["content/340",[18,1.542,28,2.507,55,2.415,65,3.557,101,3.931,107,4.92,134,2.949,145,3.585,411,4.416,477,2.808,900,3.176,1104,5.149,1404,5.541,1731,5.541,1732,4.92]],["title/341",[18,0.813,218,2.831,1152,2.969]],["content/341",[18,1.181,112,3.275,134,2.257,145,3.535,219,4.89,477,2.769,891,4.226,956,3.907,1104,5.077,1133,4.038,1142,5.867,1213,5.255,1643,4.852,1735,6.574,1736,6.48,1737,5.464,1738,7.796]],["title/342",[18,0.813,1152,2.969,1739,5.37]],["content/342",[18,1.402,74,3.337,75,3.823,76,4.458,112,3.005,134,2.681,145,3.104,218,5.928,348,5.953,376,4.614,915,3.124,956,3.43,1071,5.284,1104,6.031,1130,6.97,1155,4.322,1184,3.641,1732,4.26,1740,6.845]],["title/343",[18,0.695,143,1.833,1152,2.536,1643,2.855]],["content/343",[18,1.076,28,3.011,74,2.109,131,2.535,176,2.997,395,4.361,411,3.969,477,2.524,712,3.427,956,5.36,976,3.308,1086,4.705,1104,4.627,1133,3.68,1394,5.089,1633,5.905,1643,5.91,1644,5.211,1691,4.422,1741,5.905,1742,4.627,1743,7.147,1744,7.105]],["title/344",[18,0.695,130,3.038,143,1.833,1152,2.536]],["content/344",[18,1.063,30,4.385,74,2.082,130,6.236,176,2.96,446,3.699,712,5.479,976,3.267,1086,4.646,1133,3.634,1185,4.366,1190,3.634,1643,7.069,1653,6.236,1742,4.569,1745,9.416,1746,5.28,1747,7.016,1748,7.016]],["title/334",[1735,5.311]],["content/334",[18,1.104,69,2.432,74,2.163,112,2.365,134,2.111,219,3.184,279,1.633,497,4.914,521,3.394,528,5.647,720,2.422,917,4.359,1039,5.834,1049,5.647,1119,4.747,1131,4.03,1135,5.109,1184,3.878,1213,4.914,1475,4.747,1513,6.717,1563,4.206,1735,4.747,1749,4.914,1750,5.834,1751,5.486]],["title/345",[1100,3.556,1101,2.969,1735,3.497]],["content/345",[8,1.205,18,1.054,34,1.717,64,2.517,74,1.365,75,2.569,78,2.447,82,3.435,112,2.726,185,2.073,218,3.67,219,4.396,241,3.023,312,2.996,358,4.239,378,2.569,406,2.287,415,2.235,454,1.533,485,3.31,493,1.986,505,1.888,528,3.563,581,2.047,595,3.101,657,1.829,720,2.313,744,2.685,945,2.751,951,4.962,1028,4.333,1034,3.224,1100,3.046,1101,3.849,1102,3.823,1103,3.563,1106,1.685,1118,2.996,1135,3.224,1147,3.462,1159,5.786,1165,2.383,1527,2.949,1735,4.534,1752,3.224,1753,3.462,1754,4.6,1755,4.6]],["title/346",[1135,4.539,1735,4.217]],["content/346",[8,0.485,18,1.316,24,1.311,34,2.041,52,1.486,54,2.239,75,4.42,76,2.201,102,4.031,112,1.775,134,0.979,150,1.344,218,1.782,219,1.477,233,1.418,241,1.217,309,1.708,331,1.815,393,1.951,400,1.708,415,1.643,477,1.943,492,2.956,493,1.459,507,1.85,513,2.937,581,1.504,587,1.451,600,2.075,646,4.19,683,2.134,892,2.104,913,1.869,917,2.022,957,2.022,1071,1.929,1106,3.587,1113,3.686,1124,1.596,1131,1.869,1135,2.369,1138,3.271,1144,1.973,1184,3.664,1192,4.545,1193,3.186,1213,2.279,1249,2.479,1386,1.973,1565,2.201,1638,2.618,1661,2.421,1674,2.421,1732,2.104,1735,2.201,1736,6.577,1737,2.369,1751,2.544,1756,5.469,1757,4.377,1758,3.38,1759,3.38,1760,3.686,1761,3.38,1762,4.545,1763,4.377,1764,2.239,1765,3.38,1766,3.115,1767,2.134,1768,3.38,1769,3.115,1770,2.705]],["title/347",[74,1.594,218,2.831,219,2.346]],["content/347",[219,4.157,485,4.524,582,4.524,664,4.431,720,3.162,1135,6.669,1735,6.197,1771,8.276]],["title/348",[1197,5.841]],["content/348",[18,1.56,71,2.062,112,3.595,131,2.356,134,1.912,176,2.785,218,4.764,219,2.885,241,2.376,412,6.334,445,3.336,477,3.21,529,3.075,538,2.511,559,3.392,655,3.075,712,3.185,720,2.194,1104,4.3,1184,4.808,1197,4.73,1559,5.115,1771,5.743,1772,4.536,1773,6.603]],["title/349",[493,3.52]],["content/349",[64,2.254,65,2.597,100,2.884,112,2.819,196,3.828,219,2.724,279,1.397,311,2.573,412,4.371,445,3.15,454,1.373,485,2.965,488,3.349,538,2.372,559,3.203,791,4.467,796,3.52,931,5.485,952,3.483,1162,4.991,1175,4.573,1184,5.318,1197,4.467,1620,3.053,1729,4.991,1774,7.22,1775,8.005,1776,4.709,1777,4.204,1778,6.236,1779,5.183]],["title/350",[1730,5.149]],["content/350",[8,1.544,64,2.601,219,5.013,241,2.59,279,1.612,477,2.556,566,4.851,586,3.979,657,3.808,664,4.459,1135,5.044,1201,4.766,1730,4.544,1780,5.277,1781,7.196,1782,7.196,1783,7.196,1784,7.196,1785,7.196,1786,7.196]],["title/351",[1045,4.299]],["content/351",[]],["title/359",[171,4.706]],["content/359",[37,3.516,111,3.784,112,2.221,171,3.95,279,1.534,311,2.824,414,4.533,454,2.039,477,2.431,482,2.265,495,4.756,562,3.675,1022,4.702,1033,4.797,1034,4.797,1045,4.882,1048,3.906,1069,3.609,1084,5.02,1122,5.02,1528,4.702,1548,4.533,1561,5.478,1787,6.845,1788,5.302,1789,6.845,1790,5.953,1791,5.689]],["title/360",[1561,5.182,1791,5.382]],["content/360",[8,1.888,12,1.638,77,2.19,100,1.475,103,2.479,105,4.571,134,0.923,162,1.907,171,4.864,219,3.339,228,1.666,240,1.696,458,1.696,460,1.719,485,1.516,523,2.013,546,1.8,554,2.938,562,1.712,563,4.362,587,1.368,621,2.117,859,2.111,889,1.218,896,1.84,912,1.84,915,1.455,952,1.781,981,2.111,983,2.773,1029,1.907,1063,1.984,1106,1.168,1156,2.338,1157,2.883,1166,2.65,1176,4.334,1224,2.551,1344,2.284,1478,2.65,1559,4.039,1561,6.746,1742,2.076,1791,4.334,1792,6.097,1793,3.188,1794,3.188,1795,4.039,1796,2.938,1797,7.644,1798,2.938,1799,3.188,1800,3.188,1801,3.188,1802,3.188,1803,3.188]],["title/361",[111,3.58,414,4.289]],["content/361",[28,2.264,69,1.587,99,2.215,111,4.739,112,1.543,171,2.744,279,1.066,309,2.403,414,6.309,416,2.629,454,1.572,455,4.602,460,1.568,466,2.881,493,2.053,527,4.904,529,2.215,562,2.554,666,1.931,898,2.603,915,2.171,949,5.114,954,3.806,981,5.676,1008,2.714,1027,3.15,1034,3.333,1092,3.406,1137,3.206,1176,3.953,1185,4.443,1477,2.776,1482,5.412,1533,3.15,1547,3.579,1548,3.15,1559,6.639,1615,3.406,1670,2.809,1804,3.333,1805,3.806,1806,3.806,1807,4.756,1808,4.756,1809,4.756,1810,4.756,1811,4.382,1812,4.756,1813,4.756]],["title/362",[171,3.737,1814,5.967]],["content/362",[28,2.022,48,3.017,49,2.436,50,3.304,99,2.97,105,3.814,111,3.526,134,1.847,152,4.494,171,5.838,313,2.536,331,3.425,454,2.227,529,2.97,895,3.768,971,5.877,1032,4.47,1045,3.362,1106,2.337,1110,4.94,1115,3.639,1250,4.677,1561,5.104,1564,5.104,1575,3.457,1791,5.301,1814,5.877,1815,6.378,1816,6.378,1817,5.877]],["title/352",[134,2.361]],["content/352",[]],["title/353",[112,2.101,113,3.545]],["content/353",[0,2.194,28,1.534,47,3.595,48,2.472,49,1.996,69,1.614,78,2.574,104,1.938,111,2.675,113,2.648,134,1.401,163,5.18,164,5.303,194,3.293,199,4.458,201,4.458,241,1.741,254,2.97,279,1.084,398,2.598,409,2.464,436,2.598,454,1.065,488,2.598,492,3.716,499,2.675,684,2.238,873,3.548,1034,3.391,1035,2.598,1045,5.422,1120,4.709,1122,3.548,1123,2.93,1132,2.97,1169,3.872,1177,3.714,1548,3.204,1615,3.465,1632,3.872,1701,3.548,1742,3.151,1788,3.747,1798,4.458,1818,2.93,1819,3.323,1820,4.838,1821,7.231]],["title/354",[1045,2.831,1101,2.969,1115,3.064]],["content/354",[6,3.452,28,2,45,2.917,51,3.088,103,2.998,112,2.046,134,2.912,240,3.355,241,2.27,242,3.02,306,2.806,454,1.388,529,2.937,531,2.691,595,4.251,1023,4.251,1030,5.485,1038,3.295,1045,3.325,1049,4.885,1100,4.176,1101,4.84,1102,5.241,1115,3.599,1118,4.107,1124,2.977,1147,4.746,1165,3.267,1184,3.355,1355,5.811,1510,4.107,1593,4.625,1670,3.725,1822,6.306,1823,6.306]],["title/355",[1101,3.58,1824,5.016]],["content/355",[28,2.094,48,3.522,49,2.844,52,2.902,78,3.513,134,1.912,150,2.626,163,4.73,164,6.627,194,3.437,241,2.376,398,3.546,684,4.18,698,2.85,897,5.743,1045,4.764,1101,3.651,1169,5.284,1176,5.488,1177,3.392,1438,4.536,1633,7.511,1819,4.536,1825,6.085,1826,6.603]],["title/356",[194,2.042,1101,2.969,1610,3.938]],["content/356",[48,3.451,49,2.786,134,2.257,194,3.839,331,4.186,505,3.199,684,4.669,720,2.59,945,4.662,1023,5.255,1077,7.184,1092,5.584,1101,6.188,1265,4.997,1597,5.464]],["title/357",[47,2.67,134,1.555,1101,2.969]],["content/357",[35,4.253,47,5.853,48,2.97,49,2.398,69,2.08,78,4.621,112,2.024,134,3.291,176,2.631,241,2.244,331,3.349,516,3.777,684,2.884,1023,4.204,1101,5.527,1116,2.846,1184,3.318,1201,4.13,1597,4.371,1610,6.371,1737,4.371,1824,4.831,1827,6.236]],["title/358",[49,1.266,134,1.328,1101,2.536,1610,3.364]],["content/358",[35,3.765,48,4.026,49,3.251,134,2.226,398,5.372,505,3.155,684,4.627,1071,4.388,1087,3.853,1101,5.531,1824,5.956,1828,5.956,1829,7.689]],["title/363",[651,5.005]],["content/363",[]],["title/364",[651,3.975,1830,4.749]],["content/364",[18,1.049,194,2.635,279,2.366,332,2.516,454,2.056,482,3.09,484,2.312,537,4.671,541,7.233,552,4.589,558,5.215,562,3.721,581,3.083,651,6.483,1525,4.76,1830,6.848,1831,5.545,1832,6.385,1833,5.215,1834,6.027,1835,4.589,1836,5.545]],["title/365",[651,3.975,1061,3.975]],["content/365",[18,1.308,194,3.284,279,2.414,332,3.136,482,3.565,537,5.821,541,6.69,562,4.637,651,6.612,1061,5.301,1833,6.5]],["title/366",[651,3.975,1837,5.182]],["content/366",[18,1.426,101,3.488,148,3.96,194,2.668,279,2.381,332,2.548,454,1.545,482,3.517,499,3.879,537,4.729,541,5.435,562,3.767,581,3.122,651,6.523,891,3.803,1059,4.366,1833,5.28,1835,4.646,1836,5.615,1837,5.615,1838,3.733,1839,3.574]],["title/367",[114,2.152,115,1.812]],["content/367",[18,1.146,44,2.677,74,1.157,78,2.073,102,3.12,103,1.853,109,3.535,114,2.515,115,2.4,131,1.39,143,1.557,175,2.054,176,2.584,233,3.175,279,1.373,332,1.415,439,2.302,477,2.176,482,2.027,492,1.672,521,2.853,531,1.663,556,2.498,559,2.002,574,1.702,655,2.853,714,1.88,744,2.275,951,2.302,1016,2.581,1025,1.756,1029,2.33,1052,1.969,1069,2.054,1071,3.496,1087,1.953,1096,2.677,1119,2.538,1173,2.791,1190,3.173,1193,3.501,1213,2.627,1244,2.791,1386,2.275,1544,3.591,1577,3.591,1647,2.934,1656,2.112,1722,2.302,1731,4.293,1735,2.538,1749,4.129,1752,4.293,1762,5.091,1840,3.897,1841,6.126,1842,3.239,1843,3.591,1844,2.933,1845,2.791,1846,3.019,1847,3.119,1848,2.933,1849,3.389,1850,2.677,1851,3.897]],["title/368",[1846,6.317]],["content/368",[8,0.494,18,1.42,35,1.686,47,1.712,49,1.925,74,1.022,78,2.953,82,1.698,97,1.964,109,1.986,112,1.117,114,1.144,115,1.951,131,1.228,134,1.607,135,1.768,143,2.787,218,1.815,279,0.771,308,1.625,309,1.739,311,1.42,313,1.369,332,2.015,376,3.741,453,2.207,454,0.758,472,2.861,477,1.223,485,1.637,492,1.477,520,3.319,521,1.603,524,1.42,548,2.667,574,1.504,581,1.532,585,2.174,587,2.382,655,2.584,671,1.884,714,1.661,900,1.383,973,2.667,1081,3.454,1135,2.413,1137,2.321,1138,3.319,1151,5.796,1152,1.903,1165,1.783,1193,1.592,1197,2.466,1248,3.172,1249,2.525,1276,2.413,1386,2.01,1404,2.413,1628,2.466,1647,2.658,1691,2.143,1708,2.321,1709,2.174,1722,2.034,1735,2.242,1846,2.667,1852,2.525,1853,3.172,1854,2.861,1855,3.443,1856,4.7,1857,5.796,1858,3.443,1859,2.861,1860,4.7,1861,3.443,1862,2.667,1863,2.466,1864,4.442,1865,2.667,1866,2.861,1867,2.085]],["title/369",[1244,5.841]],["content/369",[18,1.518,44,3.134,74,2.768,99,2.125,102,2.324,104,2.24,109,2.633,112,1.48,114,2.777,115,2.61,133,2.839,143,2.765,154,2.473,254,2.801,279,1.022,398,3.715,439,2.695,477,1.621,493,1.969,516,2.764,517,2.017,581,2.03,624,2.45,657,2.751,664,2.125,687,3.968,720,1.516,896,2.633,898,2.497,952,2.548,1052,2.305,1069,2.405,1094,4.85,1106,1.672,1116,2.082,1119,2.971,1121,2.695,1178,3.198,1190,2.363,1592,4.753,1601,3.346,1635,2.548,1662,2.839,1749,3.075,1839,2.324,1868,3.198,1869,4.563,1870,4.563,1871,6.919,1872,3.268,1873,2.839,1874,2.548]],["title/370",[1731,5.715]],["content/370",[114,2.718,115,2.67,143,4.401,279,1.283,312,3.73,313,2.277,321,3.934,471,4.76,507,3.135,521,3.809,559,2.941,584,4.102,598,4.436,657,2.277,712,2.763,720,1.903,827,4.392,892,3.564,951,3.383,1015,3.199,1052,2.893,1152,3.166,1502,5.165,1515,4.981,1635,3.199,1677,6.799,1731,6.689,1842,4.76,1848,4.31,1863,4.102,1875,4.955,1876,5.727,1877,5.727]],["title/371",[1878,7.514]],["content/371",[18,1.427,35,1.949,45,1.841,52,1.749,74,1.181,97,2.271,99,1.853,102,4.421,108,1.566,109,2.297,112,2.49,114,2.884,115,2.921,131,2.222,154,2.157,175,2.098,279,0.892,306,1.771,439,2.351,454,1.371,477,1.414,493,2.688,507,2.179,521,1.853,531,1.698,549,2.551,559,2.044,641,1.964,646,1.793,655,1.853,665,2.592,714,1.92,743,2.789,773,2.062,793,2.734,889,1.521,890,2.223,900,1.599,915,1.817,949,2.851,969,2.592,1058,3.667,1094,2.789,1103,3.083,1106,1.458,1115,2.271,1116,1.817,1119,2.592,1165,2.062,1190,2.062,1527,2.551,1559,3.083,1575,2.157,1609,3.667,1635,2.223,1749,2.683,1776,2.157,1879,3.98,1880,3.667,1881,3.98,1882,2.995,1883,3.462,1884,3.98,1885,3.98,1886,3.462,1887,3.308,1888,3.462,1889,3.98,1890,3.98]],["title/373",[114,1.784,115,1.503,493,2.318]],["content/373",[]],["title/374",[1753,4.874,1891,4.539]],["content/374",[18,1.164,82,3.794,88,3.207,115,2.151,145,3.487,233,3.225,450,4.129,460,2.535,473,6.688,477,2.731,557,3.656,666,3.122,695,4.855,900,3.089,1193,3.556,1753,7.529,1852,5.639,1891,5.389,1892,4.209,1893,7.689,1894,7.086]],["title/375",[592,2.356,689,3.99,1895,3.671,1896,2.743]],["content/375",[8,1.613,18,0.866,37,1.836,64,2.955,65,2.672,74,1.061,88,1.491,99,2.663,100,3.307,104,1.533,108,1.407,114,1.188,115,2.287,142,1.491,233,1.499,253,1.621,308,2.701,309,2.89,413,2.224,450,1.919,460,1.178,524,2.95,655,2.663,659,1.58,666,3.872,1106,1.31,1647,1.712,1742,2.328,1856,2.409,1892,3.131,1895,2.86,1897,3.574,1898,6.589,1899,5.72,1900,7.151,1901,5.72,1902,6.589,1903,2.505,1904,5.72,1905,3.294,1906,5.72,1907,3.294,1908,3.109,1909,5.271,1910,3.574,1911,3.109,1912,3.574,1913,3.294,1914,4.912,1915,6.151,1916,3.574,1917,3.574,1918,3.574,1919,3.574]],["title/376",[1895,5.182,1920,6.476]],["content/376",[8,1.644,64,2.306,65,1.906,74,1.893,88,2.66,103,3.033,104,1.709,115,2.469,142,2.66,233,3.701,234,5.301,309,3.222,460,2.102,621,3.582,659,2.82,666,2.589,1138,3.814,1656,3.457,1892,3.491,1895,5.104,1911,5.547,1921,4.381,1922,10.117,1923,6.378,1924,6.378,1925,6.378,1926,6.378,1927,6.378]],["title/377",[1038,3.384,1746,4.874]],["content/377",[6,1.477,8,1.689,18,0.687,45,1.248,48,0.922,52,1.186,69,1.514,88,1.125,104,1.575,112,1.473,115,1.27,143,1.814,171,2.62,194,1.026,233,1.132,248,3.658,253,2.665,286,2.159,460,2.272,538,1.026,557,1.283,581,1.2,587,1.158,621,1.095,650,1.978,659,3.048,664,1.256,666,3.598,969,1.757,1038,1.41,1089,6.864,1106,0.988,1195,3.329,1342,2.03,1423,1.729,1424,2.242,1587,2.03,1620,1.321,1647,1.292,1746,6.669,1892,2.485,1915,2.03,1928,8.862,1929,5.877,1930,8.862,1931,7.678,1932,4.183,1933,2.698,1934,3.633,1935,2.698,1936,2.698,1937,4.54,1938,5.877,1939,4.54,1940,2.698,1941,6.893,1942,4.54,1943,6.893,1944,4.54,1945,2.698,1946,2.698,1947,2.698,1948,2.698,1949,2.698,1950,2.698,1951,2.03,1952,2.698]],["title/378",[1953,5.967,1954,6.476]],["content/378",[8,1.8,69,1.38,88,1.009,99,1.126,100,4.281,112,0.785,114,0.804,115,0.677,119,1.551,194,0.92,196,4.429,233,1.014,308,1.142,312,1.575,331,1.299,408,1.412,409,1.232,460,1.364,507,2.265,517,1.069,620,1.485,621,1.68,659,1.83,666,3.757,729,2.9,817,2.104,994,3.476,1126,1.82,1157,2.288,1165,1.253,1169,3.311,1184,2.201,1193,1.119,1424,5.335,1502,1.527,1527,1.55,1533,1.602,1729,3.311,1852,1.774,1872,1.732,1874,1.351,1892,1.324,1915,3.114,1953,2.229,1955,2.419,1956,2.419,1957,4.717,1958,5.423,1959,4.138,1960,5.423,1961,5.423,1962,1.936,1963,2.419,1964,2.419,1965,2.419,1966,2.229,1967,2.01,1968,2.419,1969,2.419,1970,2.419,1971,2.419,1972,5.916,1973,2.419,1974,2.419,1975,5.423,1976,2.419,1977,5.423,1978,2.419,1979,2.419,1980,2.419,1981,2.419,1982,4.138,1983,4.138,1984,2.419,1985,2.419,1986,2.419,1987,4.138,1988,2.419,1989,2.104,1990,2.419,1991,2.229,1992,2.419,1993,5.583,1994,5.423,1995,2.419,1996,2.419]],["title/372",[114,1.784,115,1.503,185,2.42]],["content/372",[1962,8.641]],["title/379",[114,1.784,115,1.503,1021,3.391]],["content/379",[18,1.608,36,2.707,88,1.935,114,1.541,115,2.362,143,1.854,150,1.844,218,4.959,228,6.071,233,3.541,397,2.117,454,1.859,460,3.101,517,2.051,655,2.16,659,3.733,712,4.072,719,3.021,976,2.16,993,5.606,1052,2.343,1193,4.351,1245,3.712,1647,5.28,1762,3.855,1772,4.812,1860,4.722,1997,3.401,1998,4.034]],["title/380",[88,2.701,1245,5.182]],["content/380",[8,1.15,88,4.732,143,4.108,450,4.306,454,1.765,460,2.643,566,5.405,684,3.709,688,4.576,789,6.665,956,4.019,1143,4.796,1197,5.744,1245,6.417,1731,5.62,1999,7.389]],["title/381",[55,1.978,496,5.182]],["content/381",[6,3.2,7,3.588,8,1.507,24,2.267,119,3.619,196,5.095,249,2.82,411,3.266,438,3.807,447,4.679,454,1.828,462,4.016,492,2.509,521,2.722,538,2.223,566,3.941,586,3.232,589,3.139,1019,4.529,1021,5.241,1891,4.098,1903,4.098,2000,5.846,2001,5.846,2002,5.846,2003,5.846,2004,5.387,2005,5.846,2006,5.846,2007,5.387,2008,5.846,2009,5.846,2010,5.846,2011,5.846,2012,4.529,2013,4.287,2014,5.846]],["title/382",[144,5.4]],["content/382",[8,1.632,19,3.323,24,2.917,37,2.62,48,1.744,49,1.408,104,1.367,114,1.695,115,1.427,144,5.917,279,1.143,286,6.02,379,2.461,413,3.175,454,1.123,477,1.812,482,1.688,517,2.256,524,2.105,567,4.75,791,3.654,981,3.379,1063,3.175,1076,2.944,1116,2.329,1131,2.821,1592,3.504,1676,3.952,1845,3.654,2004,4.701,2013,5.517,2015,3.654,2016,3.952,2017,7.522,2018,3.742,2019,7.522,2020,3.221,2021,4.701,2022,7.522,2023,5.102,2024,5.102,2025,5.102,2026,3.952,2027,4.701]],["title/383",[119,2.014,467,4.042,2028,5.37]],["content/383",[6,4.586,8,1.516,119,3.141,144,6.999,397,3.824,454,2.327,467,6.306,657,3.331,729,5.872,1001,6.001,1891,5.872,2027,7.72,2029,8.378]],["title/384",[2021,7.514]],["content/384",[6,4.987,8,1.796,24,2.591,249,4.395,375,3.555,438,5.933,460,2.203,666,3.699,791,6.525,947,4.9,1479,5.553,1662,4.158,2030,6.157,2031,4.59,2032,5.553,2033,8.395,2034,7.924,2035,7.924]],["title/385",[2036,7.514]],["content/385",[8,1.762,115,1.726,196,3.786,252,6.322,311,2.545,448,4.936,460,3.732,466,3.736,526,2.744,581,2.744,585,3.894,621,3.5,659,2.727,1060,4.642,1070,5.364,1204,3.736,1233,3.519,1423,3.954,1635,3.445,2032,5.126,2036,5.683,2037,7.165,2038,5.683,2039,6.168,2040,5.364,2041,5.683]],["title/386",[1043,6.317]],["content/386",[2042,10.397,2043,6.771,2044,10.397]],["title/387",[2045,7.514]],["content/387",[8,1.657,249,5.571,666,4.688,2046,9.679]],["title/388",[8,0.77,957,3.212,1622,4.671]],["content/388",[8,1.816,24,2.218,55,1.092,108,1.407,228,1.868,249,4.831,443,4.276,460,2.357,477,2.032,493,1.543,505,1.467,510,1.777,549,2.291,659,1.58,666,2.903,900,1.436,957,5.703,993,2.86,1015,3.195,1149,2.86,1185,3.56,1190,2.963,1268,5.271,1347,2.971,1622,10.248,2038,6.589,2047,3.109,2048,4.431,2049,4.331,2050,3.574,2051,3.574,2052,3.574,2053,3.574,2054,3.574,2055,8.173,2056,3.574,2057,4.754,2058,3.574,2059,2.621]],["title/389",[69,2.72]],["content/389",[8,1.118,69,4.191,112,2.53,113,4.267,255,5.163,375,4.148,460,2.57,581,3.469,605,4.785,621,3.165,1124,3.681,1204,4.722,1277,5.717,2013,5.717,2018,5.717,2060,5.717]],["title/390",[445,4.12]],["content/390",[24,2.572,37,2.217,49,2.23,69,2.213,103,2.052,112,1.401,113,2.363,114,1.434,115,1.208,119,1.619,244,3.588,253,1.958,254,4.071,321,2.965,375,2.297,400,2.181,445,5.433,454,1.778,460,2.663,485,2.052,526,1.921,538,1.642,573,2.55,589,2.318,621,2.693,683,2.726,690,3.978,900,1.734,960,3.249,1006,2.687,1021,2.726,1026,3.249,1124,3.132,1204,2.615,1277,3.166,1403,2.52,1533,2.859,1553,3.755,1608,3.978,1804,3.026,2013,5.924,2060,5.924,2061,5.138,2062,4.864,2063,4.317,2064,4.317,2065,4.317,2066,4.317,2067,3.344,2068,3.588,2069,3.978,2070,3.978,2071,4.317,2072,3.344,2073,4.317,2074,4.317]],["title/391",[538,3.101]],["content/391",[55,2.45,114,2.664,115,2.244,279,1.797,538,4.314,621,3.256,1021,5.063,1749,5.405,1915,7.736,1951,7.736,2048,8.787,2075,7.962]],["title/392",[538,2.463,1749,4.365]],["content/392",[5,2.388,8,1.428,69,1.498,103,3.935,114,1.492,115,1.256,135,2.306,194,1.707,228,2.346,233,1.883,249,2.166,309,2.268,454,0.988,517,1.985,538,4.274,581,1.998,582,2.135,659,3.022,666,4.042,1116,2.049,1124,2.12,1204,2.719,1480,2.482,1503,7.689,1647,2.15,1749,5.579,1753,3.379,1891,4.79,1915,7.492,1951,3.379,2048,3.478,2075,3.478,2076,4.137,2077,3.216,2078,6.835,2079,4.49,2080,9.252,2081,4.137,2082,2.794,2083,5.681,2084,4.49]],["title/393",[538,2.463,1951,4.874]],["content/393",[18,0.955,103,2.998,114,2.095,115,1.764,143,2.52,228,3.295,408,3.681,454,1.388,538,4.341,581,2.806,623,3.771,666,2.56,915,2.878,1054,3.681,1124,2.977,1204,3.82,1213,4.251,1480,3.487,1749,5.901,1915,6.589,1951,7.568,2013,4.625,2048,4.885,2076,5.811,2077,4.517,2083,5.241,2085,5.047,2086,6.306,2087,5.811,2088,5.485]],["title/394",[1204,4.939]],["content/394",[69,2.464,114,2.454,115,2.066,194,2.809,375,3.929,421,4.734,454,1.626,538,3.705,573,4.363,712,3.563,1006,4.596,1021,4.663,1133,3.826,1204,5.902,1403,4.311,2013,5.416,2018,5.416,2089,7.386,2090,9.743,2091,7.386,2092,7.386,2093,7.386]],["title/395",[19,5.311]],["content/395",[8,0.752,19,6.508,20,3.219,26,3.676,49,1.448,51,3.759,55,1.602,112,2.491,115,2.148,119,1.967,143,3.068,154,2.843,171,4.43,256,3.027,397,2.394,445,2.65,454,1.69,460,1.729,462,3.603,524,2.164,562,2.816,574,3.353,666,3.117,720,1.743,757,2.9,913,2.9,942,3.603,976,2.442,1131,2.9,1498,4.063,1575,2.843,1845,3.757,1934,7.266,2075,4.063,2094,5.245,2095,4.359,2096,5.084,2097,4.833,2098,4.833,2099,4.359,2100,5.245,2101,4.359]],["title/396",[790,4.217,2075,5.016]],["content/396",[8,1.491,666,4.221,2102,6.298]],["title/397",[114,1.524,115,1.283,228,2.397,233,1.924]],["content/397",[143,3.869,228,5.058,233,4.06,1052,4.89,1193,5.341,1254,5.585]],["title/398",[957,3.873,1123,3.923]],["content/398",[18,1.779,115,2.591,194,2.603,218,3.609,228,3.577,233,2.871,309,3.458,439,4.043,445,4.678,460,3.053,505,2.809,587,2.937,957,6.277,1123,4.146,1133,4.797,1193,4.854,1856,4.614,2103,6.97]],["title/399",[5,2.857,233,2.253,249,2.59]],["content/399",[5,5.658,8,1.101,18,0.794,24,2.977,228,2.741,233,3.809,249,2.53,454,1.155,485,2.494,507,2.871,538,2.919,639,3.765,666,2.129,688,2.993,720,1.743,743,3.676,790,3.416,957,4.591,1165,2.717,1193,2.426,1327,3.473,1512,3.947,1593,3.846,1742,3.416,1780,3.846,1888,4.562,2075,4.063,2104,4.833,2105,5.245,2106,5.245,2107,7.074,2108,5.245,2109,5.245,2110,5.245,2111,4.562,2112,5.245,2113,5.245,2114,5.245,2115,6.677,2116,5.245,2117,5.245]],["title/400",[18,0.813,332,1.95,714,2.59]],["content/400",[3,2.95,8,1.322,18,1.247,24,1.727,55,2.075,61,4.649,64,1.61,74,1.322,108,1.753,114,1.48,115,2.776,143,3.682,145,2.02,218,2.348,228,2.327,229,5.119,233,3.455,332,2.467,380,3.432,454,0.981,460,1.468,477,2.413,526,1.982,581,1.982,588,2.25,657,1.771,666,2.758,683,2.812,889,1.702,917,2.664,948,2.698,1052,2.25,1106,1.632,1124,2.103,1592,3.059,1676,3.45,1892,2.438,2118,4.454,2119,6.794,2120,4.454,2121,8.236,2122,4.454,2123,4.104,2124,4.454,2125,4.454]],["title/401",[18,0.695,445,2.317,460,1.512,2103,3.452]],["content/401",[8,1.472,18,1.211,55,1.297,64,2.006,65,1.27,69,1.417,74,1.646,82,2.096,100,3.03,102,1.27,104,2.914,109,1.439,114,0.829,115,0.698,119,0.935,131,0.89,142,4.28,143,1.698,145,1.926,150,1.689,181,4.591,248,2.643,309,2.803,395,2.607,406,3.653,445,3.309,450,1.339,454,0.549,458,1.327,460,3.201,493,1.833,570,1.877,585,1.575,621,1.724,661,2.325,688,1.423,733,4.175,898,1.365,900,1.002,947,1.829,1015,2.372,1060,1.877,1116,1.138,1131,1.379,1401,2.169,1502,1.575,1583,4.591,1721,4.5,1875,1.511,1914,4.5,2018,1.829,2059,1.829,2126,2.494,2127,6.551,2128,4.248,2129,2.494,2130,6.551,2131,4.692,2132,1.652,2133,1.877,2134,2.494,2135,3.197,2136,2.494,2137,4.248,2138,4.248,2139,2.494,2140,2.494,2141,1.877]],["title/403",[114,1.524,115,1.283,228,2.397,1647,2.197]],["content/403",[7,6.449,8,1.507,18,1.194,24,3.596,37,1.726,55,1.026,71,3.176,112,1.09,131,1.199,143,1.343,171,1.939,218,3.616,228,2.844,233,2.877,249,1.621,309,1.698,417,4.216,454,0.74,470,2.749,485,1.598,517,1.486,526,1.495,582,1.598,588,1.698,621,1.364,666,2.21,712,1.621,945,2.009,1403,1.961,1647,5.031,1860,3.669,1892,2.979,1934,4.355,2013,2.464,2035,8.844,2075,4.216,2082,2.091,2142,3.36,2143,3.36,2144,2.464,2145,6.859,2146,6.859,2147,6.859,2148,6.859,2149,4.734,2150,3.096,2151,3.36,2152,3.36,2153,3.36]],["title/404",[7,3.975,2144,4.749]],["content/404",[3,2.215,5,2.714,6,2.793,7,5.484,8,1.739,18,1.139,24,3.465,49,1.408,52,2.242,55,2.729,64,1.844,71,2.349,74,1.514,115,2.105,142,2.128,145,3.411,150,2.029,375,2.714,406,2.537,445,2.577,454,1.123,460,1.682,493,2.202,659,2.256,960,3.84,1015,2.85,1647,4.279,1656,2.766,1860,5.071,2035,4.437,2047,4.437,2067,3.952,2132,4.982,2144,3.742,2154,6.543]],["title/405",[1850,5.601]],["content/405",[5,3.047,6,3.135,7,6.39,8,1.173,18,0.867,24,3.172,71,2.981,103,2.723,131,2.043,228,2.992,254,5.021,406,2.847,438,3.73,493,2.472,538,2.178,581,2.548,659,3.617,664,2.667,1116,2.614,1327,6.32,1656,4.434,1717,4.981,2132,5.417,2144,8.644,2154,4.981,2155,5.727,2156,5.277,2157,5.727]],["title/406",[1647,3.101,1860,4.365]],["content/406",[3,1.832,8,0.935,18,1.668,24,1.636,36,2.463,74,1.934,114,2.165,115,2.228,143,3.183,169,2.082,228,2.205,311,1.741,332,1.532,380,3.292,397,2.975,445,2.132,450,2.266,460,1.391,493,1.821,556,2.705,575,6.006,587,1.811,621,1.713,712,2.035,714,4.32,849,2.626,945,2.523,956,2.115,957,2.523,1052,2.132,1116,1.926,1123,2.556,1133,2.186,1404,2.957,1601,3.094,1647,4.9,1656,2.287,1662,4.056,1850,4.477,1860,6.037,1864,3.377,2060,3.094,2103,3.175,2158,4.219,2159,3.507,2160,3.507,2161,4.219,2162,3.022,2163,4.219,2164,4.219,2165,4.219,2166,2.333]],["title/407",[493,3.52]],["content/407",[8,1.75,18,0.603,49,1.099,55,1.902,64,1.439,74,1.181,82,3.073,104,1.066,108,1.566,142,3.2,143,2.489,145,1.805,380,2.011,438,2.592,439,2.351,517,2.754,588,2.011,621,3.115,659,2.754,666,3.115,698,2.688,777,2.411,1052,2.011,1087,1.995,1327,5.748,1647,4.511,1860,6.35,2068,3.308,2132,5.081,2133,4.687,2154,5.417,2167,3.98,2168,3.98,2169,3.462,2170,3.98,2171,3.98,2172,3.98,2173,3.185,2174,8.679,2175,3.98,2176,6.228,2177,3.98,2178,6.228,2179,3.98]],["title/408",[18,0.813,1193,2.484,1647,2.572]],["content/408",[6,3.414,7,3.828,18,1.829,71,1.948,115,3.025,169,3.077,228,3.259,233,2.616,438,4.061,445,3.15,460,2.056,587,2.676,621,2.532,666,3.527,712,3.008,945,3.729,957,3.729,1123,3.777,1133,3.23,1193,4.018,1647,4.787,1864,4.991,1892,4.755,2103,4.693,2180,4.693]],["title/409",[493,3.52]],["content/409",[6,2.008,8,1.678,18,1.532,26,2.571,51,2.859,64,1.326,69,1.224,74,1.733,104,1.565,108,1.444,115,1.634,143,2.334,171,3.369,248,2.283,380,1.853,394,2.429,397,1.674,454,0.807,460,1.209,621,1.489,666,3.676,913,2.028,1089,4.523,1116,1.674,1131,2.028,1142,2.76,1193,2.701,1327,5.493,1647,4.337,1742,2.389,1767,3.687,1892,4.957,1932,3.38,1934,5.822,2097,5.38,2098,5.38,2132,2.429,2169,5.078,2181,3.668,2182,3.668,2183,3.668,2184,3.668,2185,3.668,2186,3.668,2187,3.668,2188,2.76,2189,5.839,2190,5.839,2191,5.839,2192,5.839,2193,3.19]],["title/410",[218,2.831,1193,2.484,1647,2.572]],["content/410",[6,3.339,7,3.745,18,1.77,71,1.905,112,1.98,115,2.996,150,2.426,169,3.01,218,5.645,228,3.188,445,3.082,454,1.343,460,2.011,587,2.618,621,2.477,657,2.426,666,2.477,712,2.943,945,3.648,957,3.648,1123,3.695,1133,3.16,1193,3.957,1647,4.097,1804,4.276,1864,4.882,1892,3.339,2103,4.591]],["title/411",[493,3.52]],["content/411",[0,4.165,8,1.318,64,2.445,119,3.444,145,4.73,218,4.842,359,6.231,406,4.567,408,5.361,666,2.745,1131,3.739,1327,6.083,1647,4.398,1776,3.666,1892,5.028,2194,6.762,2195,6.762,2196,6.762,2197,6.762,2198,6.762,2199,6.762]],["title/402",[114,1.784,115,1.503,2149,4.671]],["content/402",[88,3.717,131,3.179,194,3.389,322,7.406,397,4.067,477,3.165,588,4.502,1015,4.977,2200,8.211,2201,6.006,2202,7.75,2203,8.911]],["title/419",[114,1.784,115,1.503,493,2.318]],["content/419",[]],["title/420",[142,2.701,2204,6.476]],["content/420",[8,1.787,52,2.868,55,1.994,99,3.039,100,3.019,104,1.749,142,3.739,233,2.738,460,2.151,659,3.964,666,2.65,1106,3.285,1138,3.903,1647,3.125,1860,4.399,1892,3.572,2032,5.424,2132,4.322,2205,5.223,2206,8.965,2207,7.451,2208,5.676,2209,6.014]],["title/421",[8,0.77,1895,4.298,2210,5.37]],["content/421",[8,1.774,18,1.526,55,1.935,64,2.812,65,1.893,97,2.32,99,2.949,100,2.929,104,1.09,115,1.138,142,3.663,233,1.706,253,1.844,286,3.254,311,1.678,313,1.617,380,2.054,413,2.531,416,3.502,460,1.34,477,1.444,556,2.607,582,1.933,655,1.894,659,2.801,666,2.571,712,1.962,714,1.962,720,1.351,1106,1.49,1575,2.204,1647,3.725,1772,2.793,1860,2.741,1872,2.913,1892,2.226,1898,5.836,1902,3.747,1905,7.168,1907,3.747,1908,3.537,1909,5.836,1914,2.793,1962,3.254,2132,2.693,2133,3.06,2208,3.537,2211,4.066,2212,3.747]],["title/412",[114,1.784,115,1.503,1021,3.391]],["content/412",[114,3.554,115,2.992,233,2.98,279,2.128,313,2.825,477,3.799,482,2.351,655,4.422,949,5.089,953,5.905,1021,5.996,1069,3.746,1193,3.286,1201,4.705,1545,4.011,1583,4.98,1635,3.969,1647,3.402,2144,5.211]],["title/413",[2213,8.155]],["content/413",[8,1.624,18,1.505,55,1.884,108,2.428,228,3.223,233,4.168,308,2.912,450,3.312,466,3.736,492,3.699,493,2.662,639,2.323,655,2.872,657,2.452,659,2.727,666,3.5,976,2.872,1106,2.26,1138,5.155,1193,3.987,1597,4.323,1764,4.084,1772,4.237,1892,4.719,2214,6.488,2215,5.683]],["title/414",[1647,3.905]],["content/414",[3,2.565,8,1.514,18,1.47,51,2.893,55,1.805,69,1.971,74,1.753,143,2.361,145,4.402,150,2.349,228,3.087,332,2.145,450,3.172,493,2.55,504,3.203,655,2.751,657,2.349,1647,5.336,1772,4.058,1860,3.982,1868,4.141,1891,5.862,2031,5.745,2132,3.912,2133,4.446,2216,5.138,2217,5.138,2218,8.363,2219,5.637]],["title/415",[957,3.873,1123,3.923]],["content/415",[3,1.846,8,1.393,18,1.362,34,1.587,48,1.453,49,1.174,50,2.202,51,3.21,55,1.299,57,5.131,64,1.537,65,1.271,69,2.669,74,1.945,100,3.7,104,1.757,114,2.178,115,2.516,119,2.458,142,2.734,143,1.699,145,1.928,150,1.69,152,3.339,228,2.221,309,2.148,380,3.312,445,4.042,454,0.936,714,3.162,957,3.92,976,1.98,1106,1.558,1123,2.575,1647,3.139,1772,2.92,1860,4.419,1913,6.041,1914,2.92,2018,3.118,2131,4.695,2132,2.815,2133,3.2,2216,3.698,2217,3.698,2220,4.251,2221,4.251,2222,4.251]],["title/416",[538,3.101]],["content/416",[18,1.269,114,2.784,115,2.344,228,4.378,233,3.514,279,1.877,332,3.042,454,1.845,495,4.303,538,4.02,1094,5.872,1647,4.012,2223,7.72,2224,5.872,2225,7.72]],["title/417",[2224,5.715]],["content/417",[3,2.138,8,1.694,18,1.109,24,1.909,52,2.164,112,2.839,145,4.395,176,2.077,218,3.862,228,2.572,347,5.247,376,3.318,379,2.375,406,2.448,453,3.156,517,2.177,559,3.763,581,2.19,639,1.854,684,2.277,1647,4.961,2144,7.107,2226,4.923,2227,4.923,2228,4.923,2229,6.777,2230,6.089,2231,4.923,2232,4.923,2233,4.923,2234,6.372,2235,4.923,2236,4.923,2237,4.923,2238,4.536]],["title/418",[2225,7.514]],["content/418",[8,1.208,18,1.605,47,1.873,48,1.288,49,1.04,51,2.92,55,1.15,61,2.126,64,1.361,65,1.126,100,3.424,104,1.009,115,1.054,142,3.088,143,1.505,145,1.708,229,3.624,233,4.447,477,3.259,664,3.92,666,4.304,1615,2.698,1852,2.762,1891,2.64,1892,5.803,1914,2.587,2032,4.956,2037,3.13,2208,5.186,2209,6.821,2212,5.495,2239,3.766,2240,3.766,2241,8.419,2242,5.963,2243,5.963,2244,5.963,2245,3.47,2246,3.47,2247,5.963,2248,3.766]],["title/422",[114,1.784,115,1.503,1204,3.253]],["content/422",[5,3.686,8,1.692,114,2.302,115,1.939,523,5.896,532,4.963,538,3.551,1106,2.539,1124,3.272,1204,4.197,1535,4.76,1592,4.76,2159,5.759,2249,5.215,2250,6.93,2251,10.561,2252,7.473,2253,9.338,2254,9.338]],["title/423",[2255,6.476,2256,5.967]],["content/423",[5,5.676,141,4.965,253,4.838,416,4.702,460,2.804,493,3.671,538,4.058,1265,5.452,1662,5.293,2256,7.837,2257,8.505,2258,7.069]],["title/424",[538,2.463,2083,5.382]],["content/424",[18,1.629,24,2.392,48,2.109,102,3.141,112,2.001,115,1.726,134,1.786,142,2.573,176,2.602,185,2.779,194,3.278,228,3.223,233,2.587,482,2.041,505,2.531,538,3.779,587,2.647,592,3.168,653,4.017,714,4.158,1049,4.777,1480,4.766,1535,4.237,1662,3.838,1749,4.157,1804,4.323,2077,6.174,2083,7.165,2259,5.364,2260,3.688]],["title/425",[69,2.16,1124,3.057]],["content/425",[65,2.542,69,2.837,74,2.524,102,4.332,108,3.348,115,2.38,119,3.189,143,3.399,408,4.965,445,4.297,483,5.733,1819,5.842,2261,4.611,2262,6.588,2263,6.807]],["title/429",[74,1.922,1124,3.057]],["content/429",[18,1.441,74,3.392,112,3.087,150,3.783,538,3.619,1124,4.492,1184,5.062]],["title/430",[1480,3.58,2264,6.476]],["content/430",[8,1.435,18,1.783,71,3.124,74,2.282,104,3.353,150,3.057,248,4.785,639,2.897,2265,10.004,2266,7.086,2267,6.688]],["title/431",[1480,3.58,2268,6.476]],["content/431",[8,1.134,18,1.865,71,2.469,74,2.346,104,3.189,150,3.144,587,3.393,639,2.978,684,3.657,1208,5.798,2266,7.285,2269,7.906,2270,7.906]],["title/432",[1480,3.58,2271,6.476]],["content/432",[8,1.278,48,3.755,49,3.032,71,2.783,248,5.546,639,3.357,2272,8.911,2273,8.911,2274,10.121]],["title/433",[2275,8.155]],["content/433",[8,1.413,71,3.076,104,2.639,2276,9.849,2277,9.849,2278,7.629]],["title/434",[1480,3.58,2279,6.476]],["content/434",[8,1.68,18,1.673,71,3.097,104,3.257,145,3.44,460,2.5,639,2.857,1133,3.929,1903,5.316,2103,5.709,2132,5.023,2280,7.585,2281,6.99]],["title/435",[1480,3.58,2282,6.476]],["content/435",[8,1.239,18,1.631,71,2.697,74,2.563,104,3.294,150,3.434,395,5.301,639,3.253,2283,8.636,2284,7.511]],["title/436",[1480,3.58,2285,6.476]],["content/436",[8,1.692,18,1.599,71,2.916,74,2.056,104,3.161,145,3.142,150,2.755,395,4.253,460,2.284,639,2.61,1133,3.59,1185,4.313,1903,6.545,2103,5.215,2132,4.589,2284,6.027,2286,6.93,2287,6.93]],["title/437",[2288,8.155]],["content/437",[8,1.422,18,1.673,37,3.896,71,2.369,103,4.714,104,2.033,380,3.832,406,3.771,445,3.832,639,2.857,2135,5.709,2217,9.608,2284,6.597,2289,7.585,2290,7.585,2291,7.585,2292,4.721]],["title/438",[1480,3.58,2293,6.476]],["content/438",[8,1.413,18,1.017,24,3.163,49,1.853,57,2.502,62,3.364,64,2.948,65,3.106,69,1.463,70,4.04,71,2.096,74,1.992,104,2.185,108,1.726,150,1.743,196,2.691,307,2.855,397,3.064,400,2.215,445,3.391,454,0.965,495,2.252,516,4.94,639,1.652,657,1.743,659,1.939,913,2.424,1071,2.502,1116,2.001,1449,3.509,1525,6.277,1914,4.611,2131,4.808,2294,4.384,2295,4.384,2296,4.384,2297,4.384,2298,4.384,2299,4.04,2300,4.384,2301,6.405,2302,3.813,2303,4.04,2304,3.644,2305,4.04]],["title/439",[1480,3.58,2303,5.967]],["content/439",[8,1.184,18,1.586,64,2.984,71,2.578,74,3.107,100,3.818,104,3.081,150,3.282,639,3.11,1525,5.67,2301,5.786,2306,8.255,2307,8.255]],["title/440",[1480,3.58,2304,5.382]],["content/440",[103,4.767,659,4.433,1116,4.576,2131,7.181,2308,9.238]],["title/441",[1480,3.58,2308,5.967]],["content/441",[8,1.568,12,2.574,18,1.339,62,2.511,65,3.267,71,1.565,74,2.203,104,2.619,150,1.992,255,4.916,448,4.01,460,2.447,621,2.034,639,1.888,655,3.456,659,3.909,698,3.204,1525,3.442,1914,5.099,2131,5.317,2299,4.617,2301,3.512,2309,5.011,2310,7.423,2311,5.011,2312,8.841,2313,5.011,2314,8.841,2315,5.011,2316,2.859,2317,5.202]],["title/442",[1480,3.58,2318,6.476]],["content/442",[8,1.497,18,1.124,24,2.878,49,1.383,57,2.859,62,3.72,65,2.922,71,2.318,74,2.203,104,2.369,108,1.972,150,1.992,196,3.076,397,2.287,400,2.531,445,2.531,454,1.103,516,3.035,523,3.164,639,1.888,657,1.992,659,3.282,913,2.77,1116,2.287,1125,2.997,1525,5.099,1914,6.073,2131,6.333,2301,5.202,2302,4.358,2304,4.165,2319,4.617,2320,5.011,2321,6.84,2322,5.011,2323,5.011,2324,5.011,2325,4.617,2326,5.011]],["title/443",[1480,3.58,2305,5.967]],["content/443",[8,1.538,18,0.999,24,2.557,49,1.183,57,3.763,62,3.305,65,2.914,69,1.429,71,2.511,74,1.957,104,2.154,108,1.686,150,1.703,196,2.629,397,1.955,400,2.164,445,2.164,454,0.943,460,2.65,516,2.595,523,2.705,621,2.677,639,1.614,657,1.703,659,1.894,913,3.646,1116,1.955,1125,2.562,1525,4.529,1914,7.072,2131,7.374,2301,4.622,2302,5.735,2304,3.56,2319,3.947,2321,6.076,2325,8.319,2327,4.284,2328,4.284,2329,4.284]],["title/426",[143,2.588,1124,3.057]],["content/426",[119,3.629,143,4.615,150,3.849,538,3.681,1124,4.57,1533,6.41]],["title/427",[2330,8.155]],["content/427",[6,2.871,8,1.525,18,1.163,71,2.398,88,2.188,100,2.426,113,2.871,114,2.551,115,2.148,119,3.404,143,4.441,150,3.052,233,2.2,253,2.378,413,3.264,438,3.416,444,3.757,495,2.694,538,1.995,566,3.536,582,2.494,598,4.063,639,1.976,666,2.129,791,5.498,1116,2.394,1647,2.512,1892,4.202,1993,4.562,2331,4.833,2332,4.833,2333,5.245,2334,5.245,2335,5.245,2336,5.245,2337,5.245,2338,5.245,2339,5.245]],["title/428",[2340,7.514]],["content/428",[6,3.531,8,1.574,18,1.347,71,2.015,88,2.691,100,2.984,114,2.955,115,2.488,119,2.419,131,2.301,143,4.384,150,2.565,233,2.706,279,1.445,438,4.201,444,4.621,639,2.43,666,2.619,744,3.766,1021,4.073,1647,3.089,1892,4.868,1993,5.611,2331,5.945,2332,5.945,2341,6.451]],["title/447",[115,1.812,1124,3.057]],["content/447",[115,3.231,150,3.849,538,3.681,587,4.154,1124,4.57,1533,6.41]],["title/448",[1480,3.58,2342,6.476]],["content/448",[5,3.78,24,2.755,36,4.147,52,3.123,69,2.37,71,2.219,103,4.515,114,2.361,115,1.988,234,7.892,249,3.427,460,2.342,538,4.068,621,2.885,639,2.677,664,3.308,1856,4.789,1951,5.347,2343,7.105,2344,9.496,2345,7.105,2346,9.496]],["title/449",[18,0.981,2347,6.476]],["content/449",[18,1.631,55,3.755,112,2.802,115,2.416,142,3.602,148,4.875,639,3.253,714,4.166,1535,5.932,1911,7.511]],["title/450",[18,0.981,2348,6.476]],["content/450",[18,1,37,3.392,99,3.075,102,3.363,112,2.143,113,3.614,114,3.003,115,2.528,119,2.476,145,5.261,196,4.053,406,3.283,408,3.854,454,1.454,462,4.536,493,2.85,573,3.901,639,2.488,714,3.185,890,3.688,1015,3.688,1124,3.118,1535,4.536,1559,5.115,1894,6.085,2007,6.085,2135,4.97,2349,4.628]],["title/451",[18,0.981,2350,6.476]],["content/451",[8,1.032,18,1.45,74,2.136,115,2.013,143,4.586,477,2.556,493,3.106,556,4.613,573,4.251,586,3.979,639,2.711,714,3.471,793,4.943,900,2.891,947,5.277,1535,4.943,1647,3.446,1860,6.455,2068,5.981,2069,6.631,2351,7.196,2352,7.196]],["title/452",[18,0.981,2353,5.967]],["content/452",[18,1.214,64,2.899,100,4.754,104,2.149,253,3.636,445,4.051,460,2.643,495,4.119,639,3.021,664,3.734,714,3.868,1535,5.508,1872,5.744,2132,6.807,2267,6.975,2354,8.019,2355,7.389]],["title/453",[18,0.981,2356,6.476]],["content/453",[69,3.286,103,4.683,1106,3.609,2043,6.414,2316,5.62,2353,9.076]],["title/454",[18,0.981,2357,5.967]],["content/454",[18,1.286,64,2.182,65,1.804,69,2.013,100,4.543,104,2.275,253,2.737,445,3.049,450,3.24,454,1.329,462,4.145,494,4.426,639,2.273,661,3.303,664,2.81,698,2.605,714,2.911,1403,3.523,1535,4.145,1751,4.542,1872,4.323,1914,6.746,2131,6.081,2133,6.389,2267,7.384,2355,5.561,2358,8.49,2359,8.49,2360,8.49,2361,5.561]],["title/455",[18,0.981,2362,6.476]],["content/455",[69,3.286,103,4.683,1106,3.609,2043,6.414,2316,5.62,2357,9.076]],["title/456",[18,0.981,2363,5.967]],["content/456",[8,1.48,18,0.85,24,2.176,47,2.79,49,2.847,51,5.349,61,4.551,445,4.073,495,2.883,581,2.497,639,2.114,664,2.613,714,2.707,796,5.326,1106,2.954,1394,4.02,1535,3.855,2072,4.347,2216,9.502,2274,8.695,2364,5.612,2365,8.063,2366,5.612,2367,5.612,2368,5.612,2369,5.612,2370,5.172]],["title/457",[18,0.981,2371,6.476]],["content/457",[69,3.286,103,4.683,1106,3.609,2043,6.414,2316,5.62,2363,9.076]],["title/458",[18,0.981,2372,6.476]],["content/458",[18,1.542,104,3.019,114,3.384,115,2.85,152,5.188,454,1.741,517,3.496,581,3.518,639,2.978,664,3.681,714,3.814,1193,3.657,1535,5.431,2373,7.906]],["title/459",[18,0.981,2374,5.967]],["content/459",[69,3.286,103,4.683,1106,3.609,2043,6.414,2316,5.62,2374,9.076]],["title/466",[483,4.365,1124,3.057]],["content/466",[150,3.916,483,6.639,538,3.746,895,5.818,1124,4.65,1533,6.523]],["title/467",[2375,8.155]],["content/467",[5,5.333,474,5.995,784,7.181,2043,6.529,2376,9.238]],["title/468",[2376,7.514]],["content/468",[8,1.351,71,2.191,379,5.127,415,4.576,443,6.356,454,1.545,639,2.643,775,7.535,784,6.744,821,5.831,823,5.831,1000,6.102,1012,7.826,2377,9.416,2378,7.016,2379,7.016,2380,6.905,2381,6.465]],["title/469",[2382,8.155]],["content/469",[5,5.333,474,5.995,784,7.181,2043,6.529,2383,9.238]],["title/470",[2383,7.514]],["content/470",[5,4.266,49,2.837,51,3.926,112,2.602,115,2.876,134,2.322,672,4.306,900,4.129,908,5.14,1032,5.62,1064,6.212,1116,3.66,2043,5.222,2349,5.62,2384,7.389,2385,6.665]],["title/471",[2384,7.514]],["content/471",[8,1.393,49,2.68,71,1.845,112,3.615,144,5.539,176,2.492,379,4.034,414,5.539,415,2.871,443,5.806,454,1.301,639,2.226,775,4.728,784,6.954,788,6.951,821,4.91,823,4.91,1012,6.951,1394,5.99,2245,5.444,2386,9.708,2387,8.363,2388,5.908]],["title/472",[2389,8.155]],["content/472",[8,1.461,52,3.475,71,2.469,135,4.061,379,5.436,446,4.168,512,5.95,639,2.978,659,3.496,1228,6.571,2281,7.285,2381,7.285,2390,7.906,2391,7.906,2392,7.906,2393,7.906,2394,7.906]],["title/473",[2395,8.155]],["content/473",[8,1.502,50,4.276,53,6.712,71,2.578,112,2.679,415,4.012,443,4.937,639,3.11,1079,5.913,2396,10.471,2397,8.255,2398,8.255,2399,5.913,2400,8.255]],["title/444",[1124,3.057,2261,3.51]],["content/444",[150,3.659,490,6.095,538,3.5,1124,4.345,1533,6.095,1757,7.365,2261,4.989,2401,8.48,2402,9.203,2403,7.365]],["title/445",[2404,8.155]],["content/445",[52,3.628,112,3.924,135,5.906,538,3.139,639,3.11,744,4.819,796,5.91,1108,6.861,2405,8.255,2406,7.607,2407,7.607]],["title/446",[2408,8.155]],["content/446",[52,3.628,112,2.679,135,5.906,538,3.139,639,3.11,744,4.819,1108,6.861,1394,7.5,2406,7.607,2407,7.607,2409,8.255,2410,11.499]],["title/460",[1124,3.057,1819,4.448]],["content/460",[112,2.986,150,3.659,482,3.046,538,3.5,1054,5.372,1124,4.345,1620,4.506,1819,7.695,2077,6.592]],["title/461",[1480,3.58,2411,6.476]],["content/461",[519,6.069,857,7.287,2412,9.58]],["title/462",[1480,3.58,2412,5.967]],["content/462",[346,7.682,857,7.154,2072,7.907,2413,9.406]],["title/463",[1480,3.58,2413,5.967]],["content/463",[857,7.154,1903,7.154,2414,8.878,2415,8.484]],["title/464",[1480,3.58,2414,5.632]],["content/464",[8,1.298,18,1.002,36,1.861,71,0.996,102,1.624,103,3.146,108,1.255,111,1.763,114,1.059,115,0.892,119,1.195,131,1.86,134,0.923,143,1.274,176,1.345,219,2.89,242,1.527,279,0.714,308,2.462,310,1.624,346,3.925,409,3.894,416,1.763,445,1.611,454,0.702,460,1.051,462,3.582,469,2.149,474,1.907,475,2.47,476,3.515,478,2.551,488,1.712,519,3.044,524,1.315,538,1.213,557,1.516,621,1.294,623,1.907,639,1.201,641,1.573,665,4.978,666,1.294,719,2.076,889,1.218,908,2.044,956,1.598,1052,1.611,1054,1.861,1076,1.84,1094,2.235,1119,2.076,1184,1.696,1502,2.013,1521,2.338,1566,3.824,1611,2.65,1615,2.284,1620,1.561,1633,2.65,1666,2.65,1691,3.245,1722,3.08,1749,2.149,1819,6.216,1867,1.931,1903,2.235,1966,2.938,1967,4.334,2072,2.47,2162,2.284,2200,2.938,2214,2.399,2292,1.984,2415,6.353,2416,3.188,2417,3.188,2418,4.46,2419,2.65,2420,3.188,2421,3.188,2422,3.188,2423,3.188,2424,2.938,2425,2.938,2426,2.938,2427,3.188,2428,3.188]],["title/465",[1480,3.58,2424,5.967]],["content/465",[8,1.507,35,2.862,69,1.95,71,1.826,119,2.192,169,2.884,176,3.502,346,4.4,409,4.228,445,2.954,462,4.016,519,3.413,582,2.78,639,2.202,642,4.187,665,3.807,666,3.37,1133,3.028,1228,4.859,1620,4.726,1819,4.016,1850,4.016,1903,4.098,1967,4.859,2072,4.529,2214,4.4,2414,5.085,2415,6.9,2418,5.596,2429,5.846,2430,5.846,2431,5.846,2432,5.846,2433,5.846,2434,5.846]],["title/474",[408,3.78,1124,3.057]],["content/474",[119,3.629,150,3.849,408,6.741,538,3.681,1124,4.57,1277,7.098]],["title/475",[2435,8.155]],["content/475",[8,1.059,71,2.307,112,2.396,119,2.769,241,2.658,408,6.364,539,4.083,582,3.512,639,2.782,916,6.69,1133,3.826,2034,8.474,2115,6.424,2234,6.424,2436,7.386,2437,9.743,2438,7.386,2439,7.386]],["title/476",[2440,8.155]],["content/476",[6,4.097,8,1.41,24,2.902,71,2.337,119,2.806,241,2.693,408,6.406,438,4.874,539,4.138,582,3.558,639,2.819,916,6.725,1133,3.877,2123,6.896,2234,6.509,2441,9.829,2442,7.484]],["title/477",[2443,8.155]],["content/477",[8,1.725,71,2.541,408,4.749,460,2.682,639,3.065,947,5.966,1001,5.827,2252,6.51,2380,5.966,2444,8.135,2445,8.135,2446,8.135,2447,8.135,2448,7.076,2449,8.135]],["title/478",[2450,8.155]],["content/478",[8,1.698,24,3.023,34,2.91,71,2.435,119,2.923,408,6.534,460,2.57,639,2.937,2252,6.239,2380,5.717,2448,6.781,2451,7.796,2452,7.796,2453,7.796,2454,7.796,2455,7.796]],["title/479",[2340,7.514]],["content/479",[6,4.656,8,1.53,71,2.656,119,4.001,131,3.034,408,6.805,438,5.539,639,3.204,1376,6.092,2456,8.505,2457,8.505]],["title/480",[69,2.16,1124,3.057]],["content/480",[69,4.193,150,3.659,538,3.5,605,5.649,1124,4.345,1533,6.095,2018,6.749]],["title/481",[2458,8.155]],["content/481",[8,1.605,69,3.48,71,2.112,460,2.229,492,2.902,533,8.421,621,2.745,639,2.547,659,4.061,698,4.502,1503,9.299,1903,4.74,2316,3.859,2459,10.43,2460,6.762,2461,6.762]],["title/482",[2258,6.778]],["content/482",[8,1.56,49,2.421,69,3.944,71,2.739,253,3.978,639,3.304,659,3.879,661,4.801,2462,8.771,2463,8.771]],["title/483",[2464,7.514]],["content/483",[6,4.389,8,1.474,69,2.675,71,2.505,438,5.222,639,3.021,1376,5.744,2316,4.576,2465,10.279,2466,9.428,2467,7.389,2468,9.472,2469,9.472]],["title/484",[2470,8.155]],["content/484",[6,4.801,8,1.56,69,3.944,71,2.739,438,5.712,639,3.304,1376,6.283,2060,6.432,2471,8.771,2472,8.771]],["title/485",[2473,8.155]],["content/485",[8,1.707,69,3.759,71,2.469,477,2.808,639,2.978,1337,7.285,2082,4.92,2474,7.906,2475,7.906,2476,7.906,2477,7.906,2478,10.185,2479,10.185]],["title/486",[2480,8.155]],["content/486",[8,1.318,35,3.311,69,3.733,71,2.112,454,1.489,460,3.028,477,2.402,573,3.995,621,2.745,639,2.547,666,2.745,793,4.645,863,4.844,1093,4.558,1502,5.799,2033,6.231,2067,5.238,2316,5.952,2481,6.762,2482,6.762,2483,5.882,2484,6.231,2485,6.762,2486,6.762]],["title/487",[2484,7.514]],["content/487",[8,1.461,69,3.97,71,2.469,460,3.357,477,2.808,589,4.245,639,2.978,659,3.496,863,5.663,2316,6.43,2487,7.906,2488,7.906,2489,7.906]],["title/488",[2490,8.155]],["content/488",[8,1.799,69,3.195,71,2.248,119,3.591,639,2.711,1174,4.851,2316,4.106,2491,7.196,2492,7.196,2493,9.577,2494,9.577,2495,7.196,2496,8.888,2497,7.196]],["title/489",[2498,8.155]],["content/489",[8,1.278,35,4.363,38,7.75,69,3.972,71,2.783,445,4.502,639,3.357,1116,4.067,2252,7.131,2499,8.911]],["title/490",[2500,8.155]],["content/490",[3,4.704,8,1.046,24,2.827,35,3.569,38,6.34,69,3.614,71,2.277,445,4.88,454,1.605,460,3.184,526,4.298,621,3.922,639,2.746,1106,2.671,1116,3.327,2501,7.29,2502,6.717,2503,4.115]],["title/491",[2504,8.155]],["content/491",[8,1.278,69,3.972,71,2.783,639,3.357,1087,4.466,1116,4.067,1723,8.211,2252,7.131,2316,5.085,2505,8.911]],["title/492",[2506,8.155]],["content/492",[8,1.32,69,4.029,71,2.874,639,3.467,1116,4.2,1828,7.129,2507,9.203,2508,9.203]],["title/493",[2509,8.155]],["content/493",[8,1.046,24,4.653,69,3.614,71,2.277,229,3.569,328,5.647,460,2.403,492,3.128,639,2.746,659,3.223,698,5.18,1116,3.327,2316,4.16,2510,7.29,2511,6.717,2512,6.717]],["title/494",[2513,8.155]],["content/494",[8,1.15,69,3.784,71,2.505,460,2.643,492,3.441,639,3.021,659,3.546,698,5.165,1116,3.66,1521,5.881,2316,4.576,2511,7.389,2512,7.389,2514,8.019]],["title/495",[445,3.272,1124,3.057]],["content/495",[24,3.569,49,2.54,55,2.811,150,3.659,445,5.659,538,3.5,1124,4.345,1277,6.749,2515,9.203]],["title/496",[2516,8.155]],["content/496",[8,1.342,71,2.922,445,5.716,2060,8.298,2072,7.247,2517,8.622,2518,8.622]],["title/497",[2258,6.778]],["content/497",[8,1.258,24,3.401,49,2.421,71,2.739,253,3.978,445,5.973,621,3.561,639,3.304,2062,6.432,2519,8.771,2520,6.601]],["title/498",[2521,7.093]],["content/498",[8,1.318,24,4.339,49,3.23,71,2.112,445,5.653,573,3.995,639,2.547,957,4.044,1903,6.437,2061,5.238,2062,6.736,2517,6.231,2518,6.231,2520,6.913,2522,7.989,2523,5.882,2524,6.762]],["title/499",[2525,8.155]],["content/499",[8,1.328,24,4.556,49,3.104,71,2.138,445,6.255,639,2.579,948,6.357,2061,5.302,2062,6.791,2520,6.97,2522,8.055,2523,5.953]],["title/500",[2526,8.155]],["content/500",[8,1.256,24,4.698,49,2.776,71,1.97,229,3.088,445,5.08,639,2.376,653,4.107,2061,7.79,2062,7.967,2520,8.176,2522,5.485,2523,7.615,2527,6.306,2528,8.755,2529,8.755]],["title/501",[2530,8.155]],["content/501",[8,1.646,24,3.714,49,2.644,69,2.401,71,2.248,445,5.797,454,1.584,573,4.251,639,2.711,666,2.922,2045,6.631,2061,5.574,2062,7.023,2520,5.416,2531,7.196,2532,7.196,2533,7.196,2534,7.196]],["title/502",[2535,8.155]],["content/502",[8,1.239,24,4.552,69,2.881,71,2.697,445,5.931,639,3.253,2062,6.333,2520,8.107,2536,8.636]],["title/503",[2537,8.155]],["content/503",[8,1.118,24,4.34,49,3.09,52,3.426,71,2.435,445,5.655,639,2.937,653,5.077,1087,3.907,1377,4.401,2061,6.039,2062,7.402,2520,5.867,2538,7.796]],["title/504",[1124,3.057,2262,5.016]],["content/504",[150,3.986,538,3.813,1124,4.733,2262,7.766,2539,7.766]],["title/505",[2540,8.155]],["content/505",[8,1.448,36,4.551,71,2.435,253,5.076,466,6.114,526,3.469,639,2.937,849,4.852,1678,8.424,2541,7.796,2542,7.796,2543,7.796,2544,11.193]],["title/506",[2545,8.155]],["content/506",[8,1.299,71,2.828,253,5.437,462,6.219,466,5.484,639,3.411,2041,10.221,2546,9.054]],["title/507",[2547,8.155]],["content/507",[8,1.516,71,2.617,253,5.25,514,6.099,639,3.156,661,4.586,773,4.34,2548,8.378,2549,8.378,2550,8.378,2551,10.569]],["title/508",[2552,8.155]],["content/508",[8,1.638,71,2.219,253,4.306,460,3.526,526,4.759,639,2.677,1095,7.147,1767,4.486,2238,6.547,2553,7.105,2554,7.105,2555,7.105,2556,7.105,2557,7.105,2558,7.105,2559,7.105,2560,7.105,2561,7.105,2562,7.105]],["title/509",[1124,3.057,2263,5.182]],["content/509",[112,2.986,119,3.451,150,3.659,347,6.592,538,3.5,1054,5.372,1124,4.345,2144,6.749,2230,7.649,2263,7.365]],["title/510",[2563,8.155]],["content/510",[8,1.606,69,2.601,71,2.435,112,2.53,347,5.584,443,6.036,639,2.937,659,3.447,1054,4.551,2229,7.819,2263,6.239,2316,4.449,2564,7.796,2565,5.867,2566,7.796,2567,7.796,2568,7.796]],["title/511",[2569,8.155]],["content/511",[6,4.328,8,1.461,69,2.637,71,2.469,376,5.329,438,5.149,443,6.091,639,2.978,659,4.504,1376,5.663,2229,7.89,2316,4.511,2565,7.666,2570,7.906,2571,7.906]],["title/512",[2572,8.155]],["content/512",[8,1.617,69,2.035,71,1.905,112,1.98,347,4.37,443,5.116,538,2.32,639,2.298,641,3.01,683,3.852,1054,3.561,1276,4.276,1721,4.19,2229,6.626,2263,4.882,2316,3.481,2448,5.306,2565,6.438,2573,6.101,2574,8.555,2575,6.101,2576,9.879,2577,6.101,2578,8.555,2579,6.101,2580,6.101,2581,6.101,2582,6.101,2583,6.101,2584,6.101]],["title/513",[102,3.298,1124,3.057]],["content/513",[102,5.763,150,3.72,538,3.558,587,4.015,890,5.226,1076,5.399,1124,4.417,1856,6.307]],["title/514",[2585,8.155]],["content/514",[102,4.332,115,2.38,454,1.873,581,3.784,589,4.567,712,4.103,948,5.152,1087,4.262,1903,7.478,2043,5.539,2349,7.478,2521,9.28]],["title/515",[2521,7.093]],["content/515",[24,2.982,49,3.455,52,3.379,71,3.473,102,5.664,306,3.421,639,2.897,890,4.295,948,6.735,1185,4.785,2586,7.689]],["title/516",[2587,8.155]],["content/516",[24,4.74,49,3.375,102,5.435,306,3.784,639,3.204,1076,6.157,2588,8.505]],["title/517",[2589,8.155]],["content/517",[18,1.62,36,5.543,49,3.152,74,2.109,102,5.448,109,4.1,114,3.155,182,4.554,183,4.249,477,2.524,581,3.161,639,2.677,1377,5.36,1558,5.089,1856,6.401,2590,7.105,2591,5.905]],["title/518",[119,2.428,1124,3.057]],["content/518",[119,4.33,150,3.849,443,5.788,538,3.681,1124,4.57,1277,7.098]],["title/519",[2258,6.778]],["content/519",[8,1.56,71,2.739,119,3.289,253,3.978,467,6.601,621,3.561,639,3.304,1664,5.912,2380,7.976,2592,8.771,2593,8.771]],["title/520",[2464,7.514]],["content/520",[6,4.519,8,1.502,71,2.578,438,5.376,639,3.11,1376,5.913,2466,6.861,2467,7.607,2468,9.648,2469,9.648,2594,10.471,2595,8.255,2596,8.255]],["title/521",[2597,8.155]],["content/521",[8,1.638,71,2.541,119,3.05,253,3.689,443,4.865,639,3.065,1001,5.827,2380,7.608,2598,8.135,2599,9.934,2600,8.135,2601,8.135,2602,8.135]],["title/522",[2603,8.155]],["content/522",[8,1.56,71,2.739,253,5.361,443,5.245,639,3.304,1001,6.283,2604,8.771,2605,8.083,2606,8.771,2607,8.771]],["title/523",[2608,8.155]],["content/523",[8,1.606,57,4.449,71,2.435,119,2.923,144,5.163,443,4.662,639,2.937,650,5.717,1001,5.584,2380,8.209,2609,10.094,2610,10.094,2611,7.796,2612,7.796,2613,7.184]],["title/524",[2614,8.155]],["content/524",[8,1.299,71,2.828,119,3.395,639,3.411,2380,8.134,2613,8.343,2615,9.054,2616,11.092,2617,9.054]],["title/525",[2618,8.155]],["content/525",[8,1.299,71,2.828,119,3.395,639,3.411,2380,8.134,2619,9.054,2620,11.092,2621,9.054,2622,9.054]],["title/526",[108,2.549,1124,3.057]],["content/526",[8,1.365,78,5.062,108,4.499,150,3.783,538,3.619,1124,4.492,1533,6.301]],["title/527",[2623,8.155]],["content/527",[8,1.006,18,1.063,24,2.721,71,2.941,108,2.762,114,2.331,115,2.634,131,2.503,134,2.032,474,4.196,523,4.43,587,3.011,600,4.307,657,2.79,1003,5.145,1052,3.545,1116,4.298,1130,5.28,1575,3.803,1856,4.729,2169,6.102,2349,4.917,2385,5.831,2624,7.016,2625,9.416]],["title/528",[65,1.936,1124,3.057]],["content/528",[65,3.488,150,3.916,538,3.746,1124,4.65,1533,6.523]],["title/529",[322,4.463,1480,2.969,2626,5.37]],["content/529",[8,1.278,65,3.283,71,2.783,104,3.19,105,5.329,426,6.902,639,3.357,2627,8.911,2628,8.911]],["title/531",[114,1.784,115,1.503,1193,2.484]],["content/531",[]],["title/532",[18,0.813,115,1.503,1193,2.484]],["content/532",[3,2.215,8,1.282,18,1.768,69,1.702,88,2.128,99,3.503,104,1.367,115,1.427,143,2.039,152,3.831,194,1.94,228,2.666,233,2.14,454,1.123,460,1.682,573,3.014,588,2.577,664,2.376,666,3.054,712,2.461,777,3.09,889,1.95,957,3.051,1052,4.514,1085,3.84,1087,3.77,1116,2.329,1157,2.821,1193,4.133,1647,3.602,1772,5.167,1874,4.202,1892,4.118,2202,7.771,2629,5.071]],["title/533",[18,0.606,115,1.12,233,1.679,249,1.931,1193,1.852]],["content/533",[5,4.449,8,1.2,18,1.687,88,2.464,114,1.963,115,1.653,194,3.181,228,4.37,233,3.508,249,2.85,397,2.696,450,3.172,454,1.301,460,1.947,588,2.985,655,2.751,666,3.395,712,2.85,957,3.533,1052,4.225,1085,4.446,1193,2.732,1647,4.005,1772,4.058,1892,4.578,2104,5.444,2115,7.274,2202,5.138,2630,8.363]],["title/534",[78,2.13,108,1.576,115,1.12,397,1.827,1193,1.852]],["content/534",[8,1.032,78,3.828,88,3.002,108,3.769,115,2.679,233,3.018,397,3.285,412,5.044,450,3.864,460,2.372,473,6.259,474,4.303,657,2.861,666,2.922,1130,5.416,1193,3.328,1671,7.96,1763,5.759,1852,7.894,1892,3.939,2631,7.196,2632,7.196]],["title/535",[115,1.283,397,2.094,1138,2.743,1193,2.122]],["content/535",[8,1.939,88,1.561,115,1.047,119,1.403,233,1.569,397,1.708,411,2.09,436,2.009,450,2.009,460,2.429,466,2.266,474,2.237,574,1.634,657,1.488,659,3.709,666,1.519,683,2.362,1106,1.371,1138,3.547,1193,1.73,1243,2.994,1631,4.157,1763,4.747,1764,4.881,1766,3.447,1853,3.447,1892,2.048,1921,2.57,2205,4.747,2214,2.816,2215,3.447,2599,3.254,2633,5.932,2634,3.741,2635,3.741,2636,3.741,2637,3.447,2638,2.816,2639,3.741,2640,3.741]],["title/536",[18,0.695,115,1.283,218,2.418,1193,2.122]],["content/536",[8,1.218,18,1.487,88,2.517,112,1.958,115,2.375,150,2.4,194,2.295,218,6.309,228,3.153,233,2.531,454,1.869,460,1.989,521,2.81,590,4.542,600,3.704,641,4.189,666,3.447,712,2.911,892,3.756,957,3.609,1085,4.542,1193,2.791,1647,4.066,1892,4.647,2214,4.542,2641,8.49]],["title/537",[1157,3.58,1193,2.995]],["content/537",[8,1.792,18,1.509,55,1.078,84,2.262,88,3.706,233,4.861,249,1.702,460,3.126,466,3.43,659,3.135,666,4.631,719,2.298,731,5.2,1138,4.24,1157,1.951,1193,3.28,1592,5.574,1644,2.588,1852,4.152,1892,6.244,2565,2.656,2642,3.529,2643,3.529,2644,3.529,2645,5.662]],["title/530",[114,1.784,115,1.503,2646,3.689]],["content/530",[114,3.813,115,3.211,194,2.737,219,3.144,454,1.584,510,3.578,891,5.191,976,4.459,1015,4.02,1076,4.152,1839,5.483,2646,6.578,2647,5.981,2648,7.196,2649,5.878]],["title/538",[114,1.524,115,1.283,891,2.487,2646,3.151]],["content/538",[8,1.644,18,1.336,88,2.66,114,2.119,115,1.784,233,3.701,309,3.222,460,2.102,495,3.276,510,3.171,659,2.82,666,3.582,900,2.562,1138,5.277,1193,2.95,1647,3.054,1891,6.184,1892,5.538,2099,5.301,2496,4.94,2650,4.94,2651,4.677,2652,5.547,2653,8.131,2654,5.877]],["title/539",[115,1.812,1076,3.737]],["content/539",[19,5.712,114,2.914,115,2.454,143,3.506,309,4.431,443,5.245,1076,6.276,1133,4.544,2099,7.29,2655,8.083,2656,7.29,2657,8.771]],["title/540",[510,2.67,1193,2.484,2658,5.37]],["content/540",[114,2.049,115,2.78,440,3.445,454,1.358,470,3.116,495,3.168,510,4.941,538,2.346,657,2.452,719,4.017,761,3.519,898,3.376,1061,3.786,1133,3.195,1193,5.425,1818,5.221,2026,4.777,2141,4.642,2659,6.677,2660,3.445,2661,3.376,2662,4.642,2663,6.174,2664,3.643,2665,5.364,2666,6.174,2667,4.237]],["title/541",[510,2.67,1138,3.212,1193,2.484]],["content/541",[18,1.375,115,2.54,145,2.378,183,3.137,229,2.568,309,3.878,397,2.394,408,3.062,454,1.155,468,4.359,510,3.817,549,3.362,641,2.588,947,3.846,1001,3.757,1015,2.93,1131,2.9,1133,3.977,1138,5.43,1143,3.137,1190,3.977,1193,4.919,1656,2.843,1856,3.536,1891,3.676,2030,4.833,2031,5.273,2650,4.063,2659,4.063,2660,4.288,2661,4.202,2668,5.38,2669,3.603,2670,3.536,2671,4.833,2672,4.833,2673,5.245,2674,5.245]],["title/542",[18,0.813,510,2.67,1193,2.484]],["content/542",[18,1.606,36,3.485,115,2.357,183,3.571,407,4.101,470,6.027,495,3.067,510,2.969,549,3.827,582,2.839,605,3.665,641,2.946,761,3.407,829,4.778,947,4.379,956,2.992,1087,2.992,1093,4.025,1142,4.494,1193,4.516,1621,5.193,1732,3.716,1804,4.185,2249,4.494,2652,5.193,2664,3.527,2665,5.193,2666,6.035,2669,4.101,2670,4.025]],["title/543",[510,2.67,1193,2.484,1852,3.938]],["content/543",[510,5.742,857,6.784,1138,5.788,1193,5.341,1852,7.098]],["title/544",[218,2.831,510,2.67,1193,2.484]],["content/544",[18,1.542,55,2.415,114,2.627,115,2.212,218,5.37,510,5.603,714,3.814,761,5.812,827,4.245,857,5.541,891,4.286,1193,4.711,1839,4.027,2675,7.285]],["title/545",[114,1.524,115,1.283,1839,2.336,2646,3.151]],["content/545",[18,0.853,28,1.112,47,1.744,48,1.199,49,0.968,61,1.98,74,1.041,104,2.166,114,1.872,115,2.262,134,1.015,142,1.463,143,1.402,148,1.98,171,2.024,185,1.58,242,1.68,243,2.248,248,4.394,279,0.786,313,1.395,321,2.409,400,1.772,440,3.147,450,1.883,454,1.24,484,1.17,510,1.744,517,1.551,532,2.512,546,1.98,557,1.668,585,2.214,605,2.153,672,3.025,714,1.692,761,3.215,793,2.409,816,2.024,827,1.883,858,2.214,898,1.92,976,1.633,1054,2.047,1115,2.001,1132,2.153,1133,3.658,1193,1.622,1244,2.512,1656,1.901,1760,3.798,1777,2.364,1818,3.412,1835,2.323,1839,5.263,1848,2.639,1856,4.76,1874,1.959,2026,2.717,2031,2.409,2141,5.314,2188,2.639,2349,2.458,2426,3.232,2659,4.364,2660,3.147,2661,1.92,2662,2.639,2663,2.512,2675,3.232,2676,2.915,2677,3.232,2678,2.512,2679,2.915,2680,2.915,2681,2.639,2682,3.507,2683,3.507]],["title/549",[114,1.524,115,1.283,538,1.744,2646,3.151]],["content/549",[8,1.142,18,1.206,48,1.443,69,1.408,71,1.318,88,1.76,103,3.099,112,1.369,114,2.165,115,2.228,143,1.686,194,1.605,233,1.77,454,0.929,460,2.148,510,3.24,524,1.741,529,1.965,538,4.3,592,2.167,666,2.646,761,2.408,900,1.695,1048,2.408,1052,2.132,1061,2.59,1069,2.224,1081,2.626,1133,3.376,1190,3.376,1239,3.377,1342,5.993,1647,2.021,1818,2.556,1845,3.022,1892,3.567,1915,3.175,1951,4.905,2646,2.898,2650,3.268,2651,3.094,2653,3.888,2656,3.507,2659,5.048,2660,3.64,2661,2.31,2662,3.175,2684,4.219,2685,7.338,2686,4.219,2687,4.219,2688,4.219,2689,4.219]],["title/546",[114,1.33,115,1.12,470,2.022,2646,2.75,2666,2.867]],["content/546",[24,2.198,74,1.682,78,3.016,97,3.235,104,1.519,108,2.231,114,1.884,115,1.586,248,3.528,307,3.692,309,2.864,400,4.103,454,1.248,470,2.864,493,3.506,510,2.819,538,3.609,574,2.476,777,3.434,889,2.166,1008,3.235,1157,4.49,1193,2.622,1505,4.537,1604,4.931,1638,4.391,2659,4.391,2663,5.817,2666,7.856,2667,5.578,2690,5.224,2691,5.669,2692,5.669,2693,4.931,2694,5.669,2695,5.669,2696,5.669]],["title/547",[493,2.795,2693,5.632]],["content/547",[8,1.592,88,2.439,103,2.78,108,2.301,114,1.943,115,2.323,183,3.496,229,2.862,233,2.452,454,1.287,460,1.927,474,3.496,510,2.907,517,2.585,587,2.509,657,2.325,664,2.722,666,2.374,1052,2.954,1054,3.413,1130,4.4,1133,3.028,1138,3.496,1193,2.704,1403,3.413,1593,4.287,1638,4.529,1892,3.2,2018,4.287,2031,5.702,2188,4.4,2646,4.016,2656,4.859,2660,3.266,2661,3.2,2666,5.946,2693,5.085,2697,5.846]],["title/548",[493,2.795,2690,5.967]],["content/548",[5,3.281,8,1.624,24,2.392,52,2.711,88,2.573,97,4.919,103,2.933,183,5.155,233,2.587,450,3.312,460,2.033,470,3.116,493,2.662,538,3.278,666,2.504,757,3.41,1054,3.6,1133,4.465,1138,3.688,1770,4.936,1892,3.376,2031,4.237,2650,6.677,2656,5.126,2666,7.118,2698,5.126,2699,6.168,2700,6.168,2701,6.168]],["title/551",[18,0.606,114,1.33,115,1.12,470,2.022,2646,2.75]],["content/551",[12,3.744,18,1.463,115,2.04,309,3.683,380,3.683,470,5.827,483,4.914,942,5.007,1015,4.072,1193,3.372,1512,5.486,1543,6.34,1676,5.647,1839,3.713,2652,6.34,2659,8.391,2669,5.007,2702,7.29,2703,7.29,2704,7.29]],["title/552",[55,2.491]],["content/552",[18,1.586,55,3.513,169,4.073,406,4.104,454,1.817,858,5.212,890,4.611,976,3.844,1850,5.67,2665,7.18,2678,5.913,2705,7.607,2706,8.255,2707,7.607]],["title/553",[143,3.259]],["content/553",[3,3.693,114,3.545,115,2.985,143,4.264,443,5.086,514,4.908,524,3.509,567,5.37,1098,4.801,2135,6.401,2646,5.842,2708,8.505]],["title/554",[145,3.698]],["content/554",[3,3.482,55,2.45,76,5.222,102,4.084,114,2.664,115,2.244,145,3.636,306,3.568,406,3.987,439,4.737,443,4.796,454,1.765,956,4.019,1133,4.154,1804,5.62,2188,6.035,2709,7.389,2710,5.62,2711,8.019]],["title/555",[82,2.263,131,1.636,454,1.01,1839,2.336]],["content/555",[18,1.441,24,3.69,34,3.551,108,3.745,131,3.394,454,2.095,510,4.731,2666,6.815]],["title/556",[104,1.439,454,1.182,1839,2.735]],["content/556",[24,3.569,104,2.466,144,6.095,406,4.576,454,2.026,467,6.926,510,4.576,1131,5.088,2666,6.592,2712,8.004]],["title/557",[64,2.341,142,2.701]],["content/557",[3,3.339,64,2.78,69,2.565,100,4.627,104,2.06,142,4.173,144,5.092,196,4.72,252,5.639,466,4.658,467,5.787,556,4.929,581,3.421,621,3.122,641,4.935,655,3.581,1872,5.508,1997,5.639,2712,6.688]],["title/558",[65,1.936,142,2.701]],["content/558",[3,2.738,65,2.617,69,2.104,100,2.917,104,2.346,142,3.652,144,5.798,196,3.871,426,6.781,454,1.388,467,6.589,494,4.625,526,2.806,641,4.961,655,2.937,659,2.789,661,3.452,698,2.722,726,5.241,948,3.82,1403,3.681,1780,6.42,1834,5.485,1872,4.517,1914,4.332,2131,4.517,2710,4.42,2712,7.615]],["title/559",[152,4.154]],["content/559",[18,1.414,26,4.857,69,2.312,104,1.857,114,3.755,115,3.162,131,2.472,643,4.857,683,5.896,761,3.954,908,4.442,947,5.082,1052,5.335,1076,3.999,1193,4.319,1662,4.313,1717,6.027,1722,4.093,2713,6.93]],["title/560",[61,4.603]],["content/560",[3,2.299,12,2.719,47,3.843,48,3.121,49,2.771,50,5.2,51,5.458,53,4.955,61,2.989,69,2.579,115,1.481,134,1.533,181,3.711,242,2.535,243,3.394,454,1.166,621,2.15,641,3.813,651,3.25,655,2.465,672,2.843,733,3.985,858,3.343,889,2.023,900,2.127,1052,2.675,1195,3.883,1510,3.448,1656,2.87,1770,4.237,1839,2.697,1856,3.569,1962,4.237,2246,7.123,2646,3.637,2666,3.792,2714,4.237]],["title/550",[102,2.735,114,1.784,115,1.503]],["content/550",[8,1.49,18,1.504,24,2.388,36,3.595,49,1.083,74,1.165,88,1.637,102,5.477,109,2.264,114,2.047,115,1.098,119,1.471,182,2.515,183,2.347,233,1.646,380,1.982,400,1.982,445,3.112,454,1.356,460,2.03,477,2.188,493,2.659,505,1.61,538,1.492,592,2.016,659,2.724,666,1.593,688,2.239,720,2.047,858,2.478,890,2.192,948,3.731,1076,3.554,1124,1.853,1131,2.17,1342,2.953,1424,7.158,1502,2.478,1533,2.599,1558,2.811,1647,1.879,1839,1.999,1856,5.125,1866,3.262,1892,3.372,2059,2.878,2087,3.616,2292,2.442,2349,2.75,2591,3.262,2685,3.616,2715,3.924,2716,3.04,2717,6.16,2718,3.924]],["title/561",[513,4.379]],["content/561",[]],["title/562",[436,4.379]],["content/562",[28,2.918,279,2.062,436,4.942,510,5.57,891,4.989,905,6.45,1833,6.926,2719,7.649,2720,7.649]],["title/563",[594,5.227]],["content/563",[8,0.947,101,4.493,439,3.901,499,3.651,512,4.97,543,4.73,589,3.546,594,7.101,596,5.743,599,7.86,602,6.085,891,3.579,905,4.628,1019,5.115,1184,3.513,1199,6.085,1639,6.085,1658,7.511,1661,4.73,1743,4.97,2721,4.97,2722,5.488,2723,6.603,2724,5.115,2725,8.327,2726,6.603,2727,6.603]],["title/564",[1874,4.555]],["content/564",[52,3.008,62,3.43,63,3.577,64,2.474,97,3.906,99,3.187,104,2.812,141,3.996,142,2.855,182,4.388,183,4.093,440,3.823,513,3.675,568,3.784,574,2.99,600,4.201,643,4.797,712,3.302,1061,4.201,1874,5.862,2012,7.173,2049,4.146,2680,5.689,2728,6.307,2729,6.845,2730,6.845]],["title/565",[48,2.788]],["content/565",[48,3.49,194,3.882,513,5.481,2679,8.484]],["title/566",[1874,4.555]],["content/566",[28,3.069,64,3.499,146,7.746,279,2.169,572,7.098,1061,5.941,2680,8.045]],["title/576",[8,0.929,469,4.365]],["content/576",[8,1.464,469,6.881,1568,7.486,2503,5.762]],["title/567",[8,0.929,896,3.737]],["content/567",[8,1.775,114,2.454,115,2.066,436,3.966,460,2.434,513,3.966,526,4.335,574,3.226,623,4.417,651,4.533,896,4.262,1014,5.29,1664,4.978,1767,4.663,2503,6.803]],["title/568",[8,0.929,623,3.873]],["content/568",[8,1.775,114,2.454,115,2.066,436,3.966,460,2.434,513,3.966,526,4.335,574,3.226,623,4.417,651,4.533,896,4.262,1014,5.29,1664,4.978,1767,4.663,2503,6.803]],["title/569",[8,0.77,574,2.346,1014,3.846]],["content/569",[8,1.775,114,2.454,115,2.066,436,3.966,460,2.434,513,3.966,526,4.335,574,3.226,623,4.417,651,4.533,896,4.262,1014,5.29,1664,4.978,1767,4.663,2503,6.803]],["title/570",[8,0.929,651,3.975]],["content/570",[8,1.775,114,2.454,115,2.066,436,3.966,460,2.434,513,3.966,526,4.335,574,3.226,623,4.417,651,4.533,896,4.262,1014,5.29,1664,4.978,1767,4.663,2503,6.803]],["title/571",[8,0.77,114,1.784,115,1.503]],["content/571",[8,1.775,114,2.454,115,2.066,436,3.966,460,2.434,513,3.966,526,4.335,574,3.226,623,4.417,651,4.533,896,4.262,1014,5.29,1664,4.978,1767,4.663,2503,6.803]],["title/572",[8,0.929,513,3.477]],["content/572",[8,1.775,114,2.454,115,2.066,436,3.966,460,2.434,513,3.966,526,4.335,574,3.226,623,4.417,651,4.533,896,4.262,1014,5.29,1664,4.978,1767,4.663,2503,6.803]],["title/573",[8,0.77,63,2.806,484,1.792]],["content/573",[8,1.434,18,0.944,47,3.101,50,4.5,63,3.259,279,1.946,306,3.865,397,2.846,470,4.389,482,2.875,484,4.029,505,3.565,535,4.319,618,6.089,621,2.532,887,6.222,888,4.13,889,2.383,890,3.483,891,3.381,2503,3.52]],["title/574",[8,0.658,484,1.53,505,1.882,535,2.281]],["content/574",[8,1.434,18,0.944,47,3.101,50,4.5,63,3.259,279,1.946,306,3.865,397,2.846,470,4.389,482,2.875,484,4.029,505,3.565,535,4.319,618,6.089,621,2.532,887,6.222,888,4.13,889,2.383,890,3.483,891,3.381,2503,3.52]],["title/575",[8,0.658,397,2.094,484,1.53,535,2.281]],["content/575",[8,1.434,18,0.944,47,3.101,50,4.5,63,3.259,279,1.946,306,3.865,397,2.846,470,4.389,482,2.875,484,4.029,505,3.565,535,4.319,618,6.089,621,2.532,887,6.222,888,4.13,889,2.383,890,3.483,891,3.381,2503,3.52]],["title/584",[8,0.929,2731,4.151]],["content/584",[8,1.774,64,2.899,65,2.397,332,4.492,1440,5.063,1873,4.991,2731,5.14,2732,4.922,2733,3.636,2734,5.881,2735,4.796]],["title/585",[8,0.929,2732,3.975]],["content/585",[8,1.774,64,2.899,65,2.397,332,4.492,1440,5.063,1873,4.991,2731,5.14,2732,4.922,2733,3.636,2734,5.881,2735,4.796]],["title/586",[8,0.929,2733,2.937]],["content/586",[8,1.774,64,2.899,65,2.397,332,4.492,1440,5.063,1873,4.991,2731,5.14,2732,4.922,2733,3.636,2734,5.881,2735,4.796]],["title/587",[8,0.509,64,1.284,65,1.061,1440,2.242,1873,2.21,2734,2.604]],["content/587",[8,1.774,64,2.899,65,2.397,332,4.492,1440,5.063,1873,4.991,2731,5.14,2732,4.922,2733,3.636,2734,5.881,2735,4.796]],["title/588",[8,0.929,2735,3.873]],["content/588",[8,1.774,64,2.899,65,2.397,332,4.492,1440,5.063,1873,4.991,2731,5.14,2732,4.922,2733,3.636,2734,5.881,2735,4.796]],["title/577",[8,0.77,539,2.969,1565,3.497]],["content/577",[1,4.096,8,1.771,14,2.703,21,4.478,32,2.434,45,3.128,224,4.478,332,2.456,469,4.558,526,3.009,539,5.078,621,3.729,735,4.335,770,4.74,1440,4.27,1565,5.982,1656,3.666,2503,6.811]],["title/578",[1,3.923,8,0.929]],["content/578",[1,4.096,8,1.771,14,2.703,21,4.478,32,2.434,45,3.128,224,4.478,332,2.456,469,4.558,526,3.009,539,5.078,621,3.729,735,4.335,770,4.74,1440,4.27,1565,5.982,1656,3.666,2503,6.811]],["title/579",[8,0.929,21,4.289]],["content/579",[1,4.096,8,1.771,14,2.703,21,4.478,32,2.434,45,3.128,224,4.478,332,2.456,469,4.558,526,3.009,539,5.078,621,3.729,735,4.335,770,4.74,1440,4.27,1565,5.982,1656,3.666,2503,6.811]],["title/580",[8,0.929,32,2.331]],["content/580",[1,4.096,8,1.771,14,2.703,21,4.478,32,2.434,45,3.128,224,4.478,332,2.456,469,4.558,526,3.009,539,5.078,621,3.729,735,4.335,770,4.74,1440,4.27,1565,5.982,1656,3.666,2503,6.811]],["title/581",[8,0.929,45,2.995]],["content/581",[1,4.096,8,1.771,14,2.703,21,4.478,32,2.434,45,3.128,224,4.478,332,2.456,469,4.558,526,3.009,539,5.078,621,3.729,735,4.335,770,4.74,1440,4.27,1565,5.982,1656,3.666,2503,6.811]],["title/582",[8,0.929,14,2.588]],["content/582",[1,4.096,8,1.771,14,2.703,21,4.478,32,2.434,45,3.128,224,4.478,332,2.456,469,4.558,526,3.009,539,5.078,621,3.729,735,4.335,770,4.74,1440,4.27,1565,5.982,1656,3.666,2503,6.811]],["title/583",[8,0.929,224,4.289]],["content/583",[1,4.096,8,1.771,14,2.703,21,4.478,32,2.434,45,3.128,224,4.478,332,2.456,469,4.558,526,3.009,539,5.078,621,3.729,735,4.335,770,4.74,1440,4.27,1565,5.982,1656,3.666,2503,6.811]],["title/589",[8,0.658,279,1.028,2736,3.364,2737,2.778]],["content/589",[8,1.683,279,2.628,454,1.358,460,2.841,484,2.058,499,3.41,526,2.744,531,2.632,535,3.067,545,2.912,551,3.445,574,2.694,607,4.237,661,3.376,1059,3.838,1670,3.643,1711,3.736,2503,6.074,2731,3.954,2732,3.786,2733,2.797,2735,3.688,2736,4.523,2737,3.736,2738,4.642,2739,3.688]],["title/590",[8,0.658,279,1.028,499,2.536,2731,2.94]],["content/590",[8,1.683,279,2.628,454,1.358,460,2.841,484,2.058,499,3.41,526,2.744,531,2.632,535,3.067,545,2.912,551,3.445,574,2.694,607,4.237,661,3.376,1059,3.838,1670,3.643,1711,3.736,2503,6.074,2731,3.954,2732,3.786,2733,2.797,2735,3.688,2736,4.523,2737,3.736,2738,4.642,2739,3.688]],["title/591",[8,0.658,279,1.028,545,2.166,2732,2.816]],["content/591",[8,1.683,279,2.628,454,1.358,460,2.841,484,2.058,499,3.41,526,2.744,531,2.632,535,3.067,545,2.912,551,3.445,574,2.694,607,4.237,661,3.376,1059,3.838,1670,3.643,1711,3.736,2503,6.074,2731,3.954,2732,3.786,2733,2.797,2735,3.688,2736,4.523,2737,3.736,2738,4.642,2739,3.688]],["title/592",[8,0.77,535,2.67,551,3]],["content/592",[8,1.683,279,2.628,454,1.358,460,2.841,484,2.058,499,3.41,526,2.744,531,2.632,535,3.067,545,2.912,551,3.445,574,2.694,607,4.237,661,3.376,1059,3.838,1670,3.643,1711,3.736,2503,6.074,2731,3.954,2732,3.786,2733,2.797,2735,3.688,2736,4.523,2737,3.736,2738,4.642,2739,3.688]],["title/593",[8,0.658,279,1.028,2733,2.08,2739,2.743]],["content/593",[8,1.683,279,2.628,454,1.358,460,2.841,484,2.058,499,3.41,526,2.744,531,2.632,535,3.067,545,2.912,551,3.445,574,2.694,607,4.237,661,3.376,1059,3.838,1670,3.643,1711,3.736,2503,6.074,2731,3.954,2732,3.786,2733,2.797,2735,3.688,2736,4.523,2737,3.736,2738,4.642,2739,3.688]],["title/594",[8,0.658,279,1.028,484,1.53,2735,2.743]],["content/594",[8,1.683,279,2.628,454,1.358,460,2.841,484,2.058,499,3.41,526,2.744,531,2.632,535,3.067,545,2.912,551,3.445,574,2.694,607,4.237,661,3.376,1059,3.838,1670,3.643,1711,3.736,2503,6.074,2731,3.954,2732,3.786,2733,2.797,2735,3.688,2736,4.523,2737,3.736,2738,4.642,2739,3.688]],["title/595",[8,0.929,551,3.617]],["content/595",[8,1.607,551,6.257,666,3.736,1838,4.896,2740,8.48,2741,7.649,2742,6.592,2743,8.48]],["title/596",[8,0.658,666,1.862,1838,2.44,2742,3.286]],["content/596",[8,1.607,551,6.257,666,3.736,1838,4.896,2740,8.48,2741,7.649,2742,6.592,2743,8.48]],["title/602",[2744,4.653]],["content/602",[279,1.993,479,4.135,507,3.531,509,4.731,539,3.567,546,3.642,578,4.855,579,3.811,604,4.135,900,2.592,911,4.431,1008,3.681,1028,4.015,1063,4.015,1065,4.997,1131,3.567,1620,3.159,1635,3.603,1643,4.015,1711,3.908,1818,3.908,1862,4.997,2015,4.621,2719,5.362,2744,5.075,2745,5.362,2746,5.362,2747,6.451,2748,5.611,2749,5.945,2750,4.272,2751,5.611,2752,5.362,2753,6.451]],["title/603",[2744,4.653]],["content/603",[279,1.612,411,4.02,421,4.613,441,5.759,442,6.631,443,4.303,493,3.106,521,3.351,532,5.154,539,3.979,542,6.259,543,5.154,605,4.417,891,3.901,900,2.891,1106,2.637,1659,5.044,1836,5.759,2013,5.277,2015,5.154,2668,5.044,2722,5.981,2744,4.106,2754,7.196,2755,6.259,2756,6.631,2757,7.196]],["title/604",[2758,8.155]],["content/604",[12,3.271,32,1.474,37,2.104,108,1.612,145,1.857,184,2.481,241,1.474,307,2.668,332,1.487,454,1.721,488,2.199,492,1.758,496,3.278,522,3.404,687,3.563,760,3.173,917,2.45,956,3.192,1021,2.586,1063,2.549,1075,3.563,1142,3.083,1195,3.004,1213,2.761,1244,2.934,1438,2.814,1485,2.668,1506,3.404,1597,2.871,1620,4.675,1635,3.558,1650,3.278,1743,3.083,1835,2.713,1850,2.814,1854,3.404,1868,2.871,1888,3.563,2067,3.173,2591,3.404,2651,3.004,2662,3.083,2719,5.294,2744,3.635,2749,5.869,2752,7.327,2755,3.563,2759,3.775,2760,3.404,2761,3.775,2762,4.096,2763,3.775,2764,3.173,2765,7.667,2766,4.096,2767,5.869,2768,6.369,2769,4.096,2770,4.096,2771,4.096,2772,3.563,2773,4.096,2774,4.096,2775,4.096,2776,4.096,2777,4.096]],["title/605",[2751,7.093]],["content/605",[143,3.641,183,3.996,454,1.471,529,3.111,539,3.694,562,3.588,900,2.684,915,3.05,1029,3.996,1133,3.461,1545,3.772,1589,4.683,1623,5.812,1891,4.683,2034,9.683,2466,8.615,2751,9.683,2755,5.812,2778,6.682,2779,5.812,2780,6.682,2781,6.157,2782,6.682,2783,5.812]],["title/597",[2731,5.227]],["content/597",[]],["title/598",[332,2.961]],["content/598",[]],["title/599",[249,1.539,279,0.715,482,1.056,1096,2.192,1713,2.652,1839,1.625,2784,1.682]],["content/599",[141,5.12,194,3.336,219,3.832,241,3.157,393,5.061,493,3.786,564,6.794,1730,5.538,1737,6.148,2785,6.794,2786,8.083,2787,8.771,2788,8.083]],["title/600",[626,2.911,945,3.212,2789,4.671]],["content/600",[20,4.201,88,2.855,142,2.855,311,2.824,397,4.227,454,1.507,543,4.903,574,2.99,626,6.096,646,3.084,1131,3.784,1165,3.546,1178,4.797,1211,5.02,1689,5.953,1730,4.322,1743,6.97,1838,3.641,2670,4.614,2784,3.609,2789,5.953,2790,5.302,2791,5.689,2792,8.055,2793,4.322]],["title/601",[99,0.641,104,0.369,148,0.777,279,0.308,454,0.553,494,1.009,551,0.769,605,0.845,626,0.746,641,0.679,900,1.009,1403,0.803,1659,0.964,1838,1.336,1874,0.769,2794,1.144,2795,1.376]],["content/601",[18,0.794,35,2.568,74,1.557,99,2.442,148,4.333,162,3.137,176,2.212,185,2.363,219,4.365,233,2.2,279,1.175,400,2.65,454,1.69,484,3.029,493,2.264,513,2.816,551,2.93,563,2.993,587,2.251,626,2.843,672,2.816,888,4.317,916,3.027,1659,3.676,1711,3.177,1838,4.084,1839,2.672,1874,4.288,2059,3.846,2201,3.536,2224,3.676,2292,4.778,2466,4.359,2679,4.359,2784,4.047,2794,6.38,2796,3.362,2797,3.473,2798,4.359,2799,4.833,2800,4.562,2801,5.245]],["title/617",[2732,5.005]],["content/617",[]],["title/618",[332,2.961]],["content/618",[]],["title/619",[279,1.451,545,3.057]],["content/619",[0,1.844,18,0.616,28,1.289,64,1.47,65,1.215,74,1.207,101,3.149,108,1.601,115,1.138,133,2.531,142,1.696,146,3.254,256,2.346,279,1.967,313,3.093,378,2.271,379,1.962,397,1.856,458,3.369,470,2.054,482,2.906,487,3.06,488,2.183,490,2.693,500,4.391,519,2.374,535,2.022,538,1.547,545,4.146,568,2.248,579,2.402,614,2.693,720,1.351,889,2.42,1016,2.693,1025,2.854,1152,2.248,1156,4.645,1198,2.089,1399,3.254,1575,2.204,1722,2.402,1847,3.254,2020,2.568,2043,2.648,2156,3.747,2166,2.248,2173,3.254,2224,2.85,2750,2.693,2802,3.06,2803,3.747,2804,3.06,2805,3.537,2806,3.38,2807,2.793,2808,3.15,2809,3.537,2810,4.066,2811,4.066,2812,3.254,2813,2.793,2814,3.38,2815,3.747,2816,3.747,2817,3.537,2818,3.38,2819,2.982,2820,4.066]],["title/620",[8,0.658,279,1.028,505,1.882,545,2.166]],["content/620",[8,1.464,505,4.189,545,4.819,2821,8.878]],["title/621",[64,1.658,312,2.987,482,1.518,545,2.166]],["content/621",[36,4.965,185,4.807,454,1.873,458,4.525,482,2.815,490,5.633,526,3.784,1116,4.87,2807,7.329,2808,6.588,2822,7.398,2823,7.837]],["title/622",[279,1.028,482,1.518,529,2.136,545,2.166]],["content/622",[279,2.391,458,4.525,482,3.531,490,5.633,529,3.961,545,5.037,587,3.65,614,5.633,1757,6.807,2261,4.611,2403,6.807,2824,5.961]],["title/623",[194,1.522,279,0.897,501,2.806,504,2.17,545,1.89]],["content/623",[175,4.553,279,1.935,454,1.901,502,6.053,531,3.685,545,4.077,1038,4.513,1545,4.875,2824,6.053,2825,7.958,2826,7.178,2827,6.69,2828,6.69,2829,6.69]],["title/624",[484,2.16,2261,3.51]],["content/624",[28,2.094,65,1.974,99,3.075,114,2.194,115,1.847,154,4.899,306,2.938,308,3.118,482,2.185,484,3.437,490,5.985,491,4.843,531,2.817,1025,2.975,1052,3.336,1545,3.727,1757,7.232,2096,4.373,2261,6.005,2403,7.232,2804,4.97,2824,7.221,2830,6.603]],["title/625",[64,1.941,1776,2.911,2681,4.042]],["content/625",[0,3.978,64,3.171,218,4.624,241,3.157,279,1.965,331,4.71,454,1.931,507,4.801,614,5.809,1774,7.29,1776,4.755,2831,8.083,2832,8.083]],["title/626",[108,2.114,994,3.442,2833,5.37]],["content/626",[398,5.481,621,4.144,1921,7.012,2834,10.208]],["title/627",[545,3.057,584,4.638]],["content/627",[114,2.826,115,2.38,194,3.235,313,3.382,482,2.815,584,7.642,1015,4.751,1619,7.069,2261,4.611,2835,7.837,2836,7.069,2837,7.837,2838,7.069,2839,7.837]],["title/628",[49,1.788,1551,3.923]],["content/628",[]],["title/629",[20,1.778,108,1.14,115,0.811,379,1.397,535,1.44,545,1.368,2166,1.602,2813,1.99]],["content/629",[51,3.159,55,1.971,101,4.422,108,3.501,115,2.848,311,2.662,313,3.536,379,3.112,450,3.464,454,1.42,500,5.02,535,3.208,545,3.046,1087,3.233,1155,4.073,1156,6.522,1198,3.314,1485,4.201,1722,3.811,1828,4.997,1874,3.603,2166,4.917,2813,4.431,2814,5.362,2840,5.945,2841,5.163,2842,4.621,2843,6.451]],["title/630",[74,1.188,133,2.491,375,2.13,535,1.99,1152,2.213]],["content/630",[18,1.024,74,2.726,112,2.194,133,4.209,134,1.958,313,2.689,400,3.416,482,3.04,521,3.149,535,4.567,559,3.473,646,3.047,665,5.982,889,2.584,1025,3.047,1152,3.739,1198,4.718,1386,3.947,1709,4.27,1722,3.995,1795,5.238,2077,4.844,2261,3.666,2750,4.478,2844,5.62,2845,6.231,2846,5.882]],["title/631",[397,2.956,545,3.057]],["content/631",[]],["title/632",[279,0.897,375,2.13,545,1.89,646,1.804,2261,2.17]],["content/632",[18,0.955,51,3.088,65,1.885,74,2.598,107,3.925,114,2.095,115,1.764,133,3.925,142,2.631,152,3.212,279,1.962,313,2.508,379,3.042,454,1.388,477,2.24,482,2.087,484,2.104,524,2.602,535,3.136,545,2.977,559,3.239,619,3.681,646,3.945,652,3.925,1071,3.599,1152,3.487,1198,3.239,1404,4.42,1722,3.725,1839,3.212,1874,4.89,2166,3.487,2261,3.419,2813,4.332]],["title/633",[279,1.028,545,2.166,646,2.067,2261,2.487]],["content/633",[12,3.276,51,3.123,115,1.784,135,3.276,142,2.66,233,2.675,241,2.295,279,1.429,311,2.631,313,2.536,454,1.404,482,2.92,545,3.011,619,3.723,652,3.969,827,3.425,857,4.47,895,3.768,900,2.562,915,2.911,976,2.97,1104,4.154,1502,4.027,1540,3.68,1620,3.123,1828,4.94,1845,4.568,1874,4.929,2229,4.94,2261,4.783,2292,3.969,2813,4.381,2842,4.568,2847,5.877]],["title/634",[484,2.72]],["content/634",[]],["title/635",[28,1.012,454,0.703,484,1.065,513,1.713,1760,2.151,2848,2.94,2849,2.554]],["content/635",[28,2.405,37,3.896,240,4.035,458,4.035,484,3.685,485,3.607,513,5.324,672,4.073,910,6.597,1377,4.282,1589,5.316,1760,5.113,2826,8.241,2849,6.07,2850,6.99,2851,6.99,2852,5.709,2853,5.563,2854,6.99]],["title/636",[279,0.796,484,1.185,563,2.026,2855,3.089,2856,2.952,2857,2.489]],["content/636",[0,3.535,77,5.355,228,4.074,229,3.817,279,1.747,305,6.039,436,4.186,484,2.601,539,4.31,563,5.76,657,3.1,719,5.077,1069,4.11,1244,5.584,2141,5.867,2856,8.389,2858,8.779,2859,7.184]],["title/637",[513,4.379]],["content/637",[]],["title/638",[229,1.198,484,0.816,490,1.62,513,1.314,1670,1.445,2261,1.326,2807,1.68,2860,2.254,2861,2.254,2862,2.254]],["content/638",[28,2.308,74,2.864,104,1.95,105,5.205,114,1.621,229,2.389,250,5.638,454,1.074,484,1.628,490,3.232,513,4.674,529,2.272,549,3.128,657,1.94,664,2.272,720,1.621,1061,2.995,1106,1.788,1132,5.343,1589,3.42,1730,3.081,2085,7.722,2141,3.673,2160,4.056,2261,2.645,2418,6.958,2678,5.213,2794,4.056,2804,3.673,2807,3.352,2860,4.497,2861,4.497,2862,4.497,2863,5.478,2864,4.88,2865,4.88,2866,4.88,2867,4.88,2868,4.88,2869,4.88,2870,4.88,2871,3.495,2872,4.88]],["title/639",[64,1.284,308,1.677,2804,2.673,2805,3.089,2806,2.952,2873,3.089]],["content/639",[8,1.116,28,2.468,64,3.645,104,2.46,115,2.568,229,2.617,311,2.205,454,1.177,484,1.783,500,3.017,521,2.489,563,3.05,598,4.14,744,3.12,976,2.489,1025,2.408,1106,1.958,1198,2.745,1404,3.746,2059,3.92,2260,3.196,2739,4.655,2802,6.908,2804,5.858,2805,4.649,2806,4.442,2807,3.671,2808,4.14,2873,4.649,2874,4.649,2875,4.925,2876,3.92,2877,5.345,2878,2.17,2879,7.783,2880,5.345,2881,5.345,2882,5.345,2883,5.345,2884,3.084]],["title/640",[486,3.195,1635,3.617]],["content/640",[]],["title/641",[18,0.483,29,2.652,142,1.331,1165,1.653,1666,2.652,2885,2.652,2886,2.94]],["content/641",[194,3.186,279,1.877,484,2.795,531,3.575,545,3.956,666,3.401,1165,4.34,1674,6.001,2180,7.954,2661,4.586,2802,6.306,2887,8.378,2888,8.378,2889,6.49,2890,7.72]],["title/642",[65,1.197,104,1.073,1062,3.689,1742,2.607,1760,2.698]],["content/642",[19,5.712,65,2.622,104,3.168,460,2.891,493,3.786,659,3.879,1060,6.601,1116,4.003,1502,5.538,1760,5.912,2891,8.083]],["title/643",[29,3.812,562,2.463,574,2.004,1483,3.99]],["content/643",[18,1.308,102,4.399,241,3.108,436,4.637,531,5.009,562,4.637,574,3.773,942,5.932,1438,5.932,1732,5.375,1862,6.69,2892,8.636]],["title/644",[19,2.313,279,0.796,482,1.175,545,1.677,2261,1.925,2893,3.551]],["content/644",[19,4.404,104,1.812,115,1.892,171,3.902,194,2.572,279,2.058,436,3.631,529,3.149,545,4.336,562,3.631,592,3.473,646,3.047,683,4.27,684,3.128,789,5.62,1054,3.947,1182,5.882,1251,4.558,1265,4.335,1438,4.645,1583,4.74,1635,3.777,1874,3.777,2102,4.096,2891,6.231,2894,6.231,2895,5.882,2896,6.231,2897,6.231,2898,6.231]],["title/645",[484,1.53,545,2.166,2261,2.487,2836,3.812]],["content/645",[88,2.904,108,1.811,311,2.872,395,2.823,454,1.533,460,1.516,484,4.06,517,2.034,521,2.142,526,2.047,545,3.287,559,2.363,590,3.462,621,1.868,661,2.518,712,2.219,827,3.738,892,2.863,898,2.518,912,2.654,976,3.242,1002,3.101,1116,2.1,1157,2.543,1190,2.383,1219,3.681,1243,3.681,1583,4.88,1635,3.889,1818,5.674,2049,2.786,2261,5.739,2629,4.693,2796,2.949,2836,5.786,2899,7.74,2900,4.6,2901,6.962,2902,4.6]],["title/606",[2733,3.698]],["content/606",[]],["title/607",[332,2.961]],["content/607",[]],["title/608",[8,0.509,249,1.713,279,0.796,505,1.457,2733,1.61,2739,2.124]],["content/608",[8,1.464,505,4.189,2733,4.629,2903,8.878]],["title/609",[194,1.522,279,0.897,501,2.806,504,2.17,2739,2.394]],["content/609",[88,3.969,194,3.619,526,4.234,1619,7.908,2735,5.69,2904,7.908,2905,7.908,2906,8.768]],["title/610",[64,1.941,1776,2.911,2681,4.042]],["content/610",[0,3.978,64,3.171,218,4.624,241,3.157,279,1.965,331,4.71,454,1.931,507,4.801,614,5.809,1774,7.29,1776,4.755,2831,8.083,2832,8.083]],["title/611",[499,2.969,529,2.501,2857,3.764]],["content/611",[241,2.557,279,1.592,488,3.815,536,5.347,537,4.789,572,5.211,605,4.361,1054,4.147,1132,4.361,1616,5.504,1635,5.304,1732,4.422,1835,4.705,2101,5.905,2784,3.746,2857,6.655,2884,4.1,2895,6.18,2896,6.547,2897,6.547,2898,6.547,2907,7.105,2908,6.547,2909,5.905,2910,5.905,2911,7.105]],["title/612",[240,1.208,279,0.509,586,1.255,684,1.05,1377,1.281,2651,1.665,2878,1.591,2912,1.758,2913,1.682]],["content/612",[24,2.7,100,2.128,107,2.863,184,2.786,240,5.849,279,1.031,311,1.898,313,1.829,505,1.888,521,2.142,524,1.898,570,3.462,582,2.187,592,2.363,619,2.685,646,2.073,658,4.239,719,2.996,720,1.528,864,2.996,900,2.797,1063,2.863,1139,2.863,1165,2.383,1211,5.106,1277,5.106,1282,4.001,1377,3.93,1541,3.563,1563,2.654,1635,2.569,1671,3.823,1767,4.396,1804,3.224,2012,3.563,2188,3.462,2278,3.563,2651,5.106,2698,3.823,2818,3.823,2878,3.41,2912,3.563,2913,4.318,2914,4.001,2915,4.001,2916,4.239,2917,4.6,2918,3.101,2919,3.681,2920,4.239,2921,2.786,2922,4.6]],["title/613",[241,1.441,1662,2.491,2913,1.718,2923,2.698,2924,4.003]],["content/613",[8,1.505,71,2.138,176,2.887,185,4.173,332,2.485,398,4.973,492,3.974,720,2.274,773,3.546,976,3.187,1136,4.388,1198,3.516,1921,6.361,2012,5.302,2681,5.151,2716,5.302,2852,6.97,2918,4.614,2925,7.411,2926,4.533,2927,6.307,2928,6.307,2929,5.302]],["title/614",[484,2.72]],["content/614",[]],["title/615",[28,1.012,454,0.703,484,1.065,513,1.713,1760,2.151,2848,2.94,2849,2.554]],["content/615",[28,2.405,37,3.896,240,4.035,458,4.035,484,3.685,485,3.607,513,5.324,672,4.073,910,6.597,1377,4.282,1589,5.316,1760,5.113,2826,8.241,2849,6.07,2850,6.99,2851,6.99,2852,5.709,2853,5.563,2854,6.99]],["title/616",[279,0.796,484,1.185,563,2.026,2855,3.089,2856,2.952,2857,2.489]],["content/616",[0,3.535,77,5.355,228,4.074,229,3.817,279,1.747,305,6.039,436,4.186,484,2.601,539,4.31,563,5.76,657,3.1,719,5.077,1069,4.11,1244,5.584,2141,5.867,2856,8.389,2858,8.779,2859,7.184]],["title/646",[64,1.447,65,1.197,1440,2.528,1873,2.491,2734,2.936]],["content/646",[]],["title/647",[332,2.961]],["content/647",[]],["title/648",[64,1.447,65,1.197,279,0.897,1873,2.491,2802,3.013]],["content/648",[0,1.097,37,1.242,64,3.039,65,3.034,74,1.228,75,1.351,78,2.201,88,2.678,103,1.15,107,1.505,108,0.952,114,0.804,115,0.677,175,1.275,184,1.465,194,1.574,241,0.87,249,1.167,251,1.661,279,1.438,309,1.222,311,1.707,312,1.575,313,2.156,321,1.661,395,1.485,426,3.205,454,0.532,477,2.563,482,2.782,485,1.15,488,1.299,490,2.74,492,1.038,493,1.044,500,1.365,505,0.992,521,1.126,524,1.707,538,2.744,545,1.142,562,1.299,574,1.057,587,2.755,592,1.242,604,4.115,621,0.982,646,1.09,657,1.645,665,1.575,689,2.104,695,1.527,761,1.38,867,1.446,885,1.82,889,0.924,912,2.388,956,1.212,1025,1.09,1116,1.104,1139,1.505,1173,2.964,1190,2.809,1195,1.774,1244,1.732,1440,5.308,1527,1.55,1545,2.336,1662,1.505,1670,2.444,1675,1.63,1699,2.229,1760,1.63,1777,1.63,1818,1.465,1873,4.895,2020,1.527,2259,2.104,2278,1.873,2734,6.165,2764,1.873,2793,1.527,2796,1.55,2806,3.439,2807,2.842,2824,2.9,2915,2.104,2930,2.419,2931,2.01,2932,1.936,2933,2.419,2934,2.229,2935,2.419,2936,1.575,2937,4.138,2938,2.419,2939,4.138,2940,2.419,2941,2.419,2942,2.419]],["title/649",[65,1.371,1873,2.855,2943,3.812,2944,3.553]],["content/649",[65,3.101,313,3.235,482,2.692,490,5.388,889,3.109,1061,4.994,1106,2.981,1675,6.993,1873,7.108,2807,5.588,2808,6.302,2945,7.076,2946,8.135,2947,8.135]],["title/650",[64,1.886,308,1.507,523,2.015,2943,2.652,2944,2.472,2948,2.94]],["content/650",[64,3.932,308,4.141,585,5.538,1662,5.459,1873,6.769,2943,7.29,2944,6.794,2948,10.023,2949,8.771,2950,6.432]],["title/651",[524,1.893,1479,3.812,1873,2.855,2951,2.987]],["content/651",[18,1.232,114,2.703,115,2.276,185,5.146,219,3.554,439,4.806,482,3.433,490,5.388,657,3.235,1052,4.11,1254,4.694,1873,5.063,2798,6.761,2807,5.588,2808,6.302]],["title/652",[64,1.284,252,2.604,466,2.151,582,1.689,1512,2.673,2260,2.124]],["content/652",[64,4.02,252,7.336,279,1.723,466,6.059,482,2.545,490,5.092,493,3.319,684,3.556,1165,3.983,1512,7.529,1873,6.226,2261,4.168,2952,6.154,2953,7.086,2954,7.689,2955,7.689]],["title/653",[2735,4.877]],["content/653",[]],["title/654",[332,2.961]],["content/654",[]],["title/655",[279,1.028,482,1.518,484,1.53,900,1.843]],["content/655",[35,2.652,51,3.345,88,1.393,143,1.335,240,1.777,241,1.949,249,2.613,279,1.214,306,1.486,307,2.175,310,4.003,313,1.328,407,2.294,421,2.141,440,1.866,454,0.735,460,1.101,466,2.023,474,1.997,484,1.807,526,1.486,527,2.294,531,2.915,540,2.212,556,3.472,557,3.248,559,1.716,579,1.973,585,2.109,589,1.793,594,2.141,615,2.141,621,1.356,641,1.648,646,1.505,661,1.828,684,3.635,691,3.539,721,2.341,761,1.906,858,2.109,859,2.212,888,2.575,890,3.025,898,1.828,900,2.176,907,2.175,976,1.555,1002,2.251,1010,2.023,1025,1.505,1072,2.673,1076,1.927,1173,2.392,1239,2.673,1250,2.45,1258,3.078,1389,2.341,1568,2.45,1575,1.811,1611,2.776,1662,2.079,1664,2.251,1674,2.392,1724,2.294,1767,2.109,1874,1.866,1875,2.023,2162,2.392,2188,2.514,2219,2.251,2565,2.514,2638,2.514,2660,3.025,2664,1.973,2746,2.776,2784,1.761,2852,2.514,2853,5.01,2884,1.927,2956,3.078,2957,2.905,2958,3.34,2959,2.905,2960,3.879,2961,5.678,2962,4.991]],["title/656",[104,1.229,279,1.028,400,2.317,484,1.53]],["content/656",[18,0.649,65,1.971,69,1.429,71,1.338,104,2.419,143,1.712,150,1.703,219,1.871,233,1.797,279,1.477,308,4.262,375,2.279,407,2.943,443,2.562,460,1.412,470,2.164,482,1.418,484,2.682,526,1.906,557,3.135,573,2.53,587,1.838,613,3.318,615,2.746,621,1.739,624,2.3,653,2.79,691,4.677,720,1.423,721,3.002,888,2.037,900,2.649,956,2.147,1025,1.93,1054,2.501,1106,1.57,1143,2.562,1239,3.428,1592,2.943,1684,3.318,1833,3.224,1874,3.683,2031,2.943,2150,3.947,2201,2.888,2660,4.49,2661,2.345,2664,3.895,2956,3.947,2963,3.56,2964,3.947,2965,4.284,2966,3.318,2967,4.836,2968,4.284,2969,3.947,2970,4.284,2971,3.947,2972,3.947,2973,3.068]],["title/657",[2974,7.093]],["content/657",[]],["title/658",[279,0.649,484,0.966,589,1.556,615,1.857,1818,1.755,2975,2.67,2976,2.897,2977,2.897]],["content/658",[88,1.76,233,1.77,279,1.46,313,1.678,436,2.266,454,0.929,460,1.391,484,2.174,502,2.957,504,2.287,507,2.31,526,2.9,531,3.397,538,1.605,541,3.268,559,2.167,574,1.843,621,1.713,626,2.287,641,2.082,643,2.957,661,2.31,683,2.664,744,2.463,827,2.266,907,2.748,976,1.965,1015,2.357,1119,2.748,1142,3.175,1148,3.67,1521,4.78,1558,3.022,1583,2.957,1635,3.64,1689,3.67,1835,5.273,2049,2.556,2160,3.507,2162,3.022,2784,2.224,2794,3.507,2827,3.268,2828,3.268,2829,3.268,2884,2.435,2906,3.888,2961,3.507,2978,4.219,2979,4.219,2980,4.219,2981,3.67,2982,3.507,2983,4.219,2984,3.175,2985,4.219,2986,4.219,2987,4.219,2988,4.219,2989,4.219,2990,4.219,2991,4.219,2992,4.219,2993,4.219,2994,4.219,2995,4.219,2996,4.219,2997,4.219,2998,4.219,2999,4.219,3000,4.219,3001,4.219,3002,4.219]],["title/659",[279,1.451,481,5.016]],["content/659",[18,1.155,28,2.864,44,3.569,185,2.341,241,1.87,249,2.507,279,1.708,313,2.066,332,1.887,454,1.144,477,2.708,482,2.523,529,2.42,531,2.217,535,2.584,539,2.873,714,2.507,720,2.533,891,2.817,911,3.569,1016,3.441,1025,4.069,1027,5.049,1033,5.344,1065,4.025,1276,3.642,1475,3.384,1482,3.281,1626,3.281,1627,3.569,1635,2.903,1691,3.234,1708,3.503,1709,3.281,1722,3.07,1833,3.911,1843,4.788,1844,3.911,2016,4.025,3003,5.196,3004,4.52,3005,4.788,3006,4.52,3007,4.52,3008,4.52,3009,4.319]],["title/660",[3010,7.093]],["content/660",[18,1.195,28,3.424,37,4.054,52,2.395,74,1.617,112,1.768,134,1.578,228,4.124,243,3.493,311,2.248,378,3.044,482,1.803,488,2.926,503,5.021,519,3.181,538,2.072,587,2.338,620,3.345,652,3.391,688,3.109,773,2.823,973,4.221,1005,4.739,1035,2.926,1045,2.873,1072,4.361,1226,3.012,1234,4.739,1628,3.903,1650,4.361,1709,4.983,1736,4.529,1769,5.021,2159,4.529,2931,6.56,3006,6.865,3011,5.449,3012,4.221,3013,4.739,3014,5.449,3015,5.021,3016,5.021]],["title/661",[3017,6.137]],["content/661",[18,1.389,28,2.466,52,1.442,74,2.003,84,2.103,103,1.56,131,1.171,134,2.478,150,1.305,171,1.894,228,3.527,229,2.614,242,2.557,279,0.735,306,1.46,311,1.354,313,1.305,314,1.814,332,1.939,454,1.884,458,1.746,482,1.086,485,2.538,492,2.291,517,1.451,563,1.873,646,1.479,714,1.583,720,2.243,976,1.528,981,2.173,1016,2.173,1027,2.173,1028,2.042,1035,2.867,1038,1.715,1045,1.73,1055,2.173,1071,1.873,1087,1.645,1098,1.852,1106,2.473,1121,3.987,1122,2.407,1144,3.116,1156,2.407,1170,3.477,1477,1.915,1547,2.47,1548,2.173,1563,1.894,1573,2.212,1620,1.607,1626,2.072,1627,2.254,1635,1.833,1691,2.042,1708,2.212,1709,2.072,1716,2.626,1722,3.154,1752,2.3,1772,2.254,1788,2.542,1804,2.3,1824,2.542,1846,2.542,2385,2.727,2931,2.727,3018,3.282,3019,3.282,3020,3.282,3021,3.282,3022,3.282,3023,3.282,3024,2.727,3025,3.282,3026,3.282,3027,2.542,3028,3.024,3029,3.282,3030,3.282,3031,3.282,3032,3.024,3033,2.854]],["title/663",[1708,4.365,1709,4.089]],["content/663",[18,1.299,28,1.236,74,1.157,103,1.853,112,1.264,131,3.061,134,2.7,175,2.054,194,1.482,229,1.908,254,2.392,279,1.373,306,1.734,311,1.608,313,1.55,374,2.858,395,2.392,409,1.985,415,2.977,454,0.858,470,1.969,477,1.384,482,2.027,485,1.853,486,1.923,492,1.672,505,1.599,529,1.815,556,2.498,588,1.969,655,1.815,688,2.224,889,2.341,956,1.953,1025,1.756,1027,2.581,1036,3.389,1037,3.019,1055,4.057,1063,2.425,1071,2.224,1076,2.249,1106,1.428,1113,2.627,1144,3.576,1158,3.389,1526,3.119,1551,2.36,1626,3.868,1627,4.208,1691,3.812,1708,4.129,1709,5.417,1722,4.471,1751,4.61,1792,3.591,1997,2.858,2012,3.019,2886,3.591,3012,3.019,3034,3.897,3035,3.897,3036,3.897,3037,3.897,3038,3.897,3039,3.897,3040,3.897]],["title/664",[1691,4.03,1722,3.825]],["content/664",[28,1.401,37,3.468,45,3.123,54,2.926,131,1.576,134,3.238,194,1.68,279,0.99,311,1.823,377,2.494,415,2.147,482,1.462,486,2.18,492,1.896,521,3.144,529,2.058,549,2.832,582,2.101,777,2.677,867,2.643,1035,2.373,1116,2.017,1144,2.579,1616,3.423,1620,2.163,1637,4.072,1684,5.231,1691,2.75,1708,2.979,1709,5.175,1711,2.677,1722,2.61,1725,5.612,1777,2.979,1795,3.423,2012,3.423,2651,3.241,2919,3.536,3041,4.072,3042,3.843,3043,4.419,3044,4.419,3045,4.419,3046,4.419,3047,4.419,3048,4.419,3049,4.072,3050,5.404,3051,7.343,3052,3.165,3053,4.419,3054,4.419,3055,4.072,3056,4.419,3057,4.072,3058,4.419,3059,4.419,3060,4.419]],["title/665",[1144,3.78,1626,4.089]],["content/665",[18,1.346,47,2.514,48,2.555,49,2.063,51,2.475,69,2.493,131,1.804,134,3.285,151,4.65,194,1.923,240,2.69,243,3.241,249,2.439,311,2.086,379,2.439,398,2.715,415,3.631,458,2.69,492,2.17,559,3.838,744,2.951,1003,3.708,1035,2.715,1045,2.665,1106,1.853,1143,3.024,1144,5.731,1158,4.397,1202,5.624,1485,3.293,1554,3.916,1588,3.805,1626,5.612,1628,3.621,1632,4.046,1733,4.202,2201,3.408,2502,4.659,3042,6.499]],["title/666",[1702,6.317]],["content/666",[18,1.543,20,3.114,52,1.355,69,1.692,73,1.688,74,1.918,99,2.362,104,0.826,131,3.988,132,5.995,133,5.153,134,3.506,145,1.398,152,1.57,181,2.161,182,1.976,183,3.034,241,1.11,242,4.265,308,3.052,314,3.574,331,1.656,374,3.721,406,1.533,409,3.293,415,1.498,446,1.625,476,3.42,477,1.802,479,4.802,546,1.74,557,1.466,559,1.584,589,2.724,619,2.961,887,2.208,891,2.75,896,1.779,951,1.821,976,1.436,1087,1.545,1141,2.388,1144,1.8,1149,2.467,1175,3.721,1404,2.161,1601,2.261,1615,2.208,1626,1.947,1691,1.919,1702,2.388,1722,1.821,2370,2.841,3061,2.682,3062,3.083,3063,3.083,3064,2.841,3065,2.841]],["title/662",[151,4.03,375,3.445]],["content/662",[18,1.412,28,1.58,47,1.5,48,2.527,49,2.574,50,1.563,62,1.512,69,1.006,74,0.895,131,2.271,132,2.414,134,1.443,135,1.549,151,4.601,176,1.273,228,1.576,229,1.477,279,0.676,311,3.376,313,1.2,331,1.62,332,1.809,374,2.212,375,3.933,377,4.173,393,1.741,454,1.097,477,1.072,482,1.649,497,2.034,504,5.055,515,1.878,524,1.245,562,1.62,568,1.668,581,2.217,641,2.459,688,1.721,873,2.212,889,2.433,1003,2.212,1032,2.114,1038,1.576,1063,1.878,1106,1.826,1137,2.034,1139,1.878,1143,1.804,1144,2.909,1152,1.668,1165,1.563,1190,1.563,1254,1.741,1395,3.3,1501,2.507,1505,2.414,1536,2.624,1540,1.741,1551,1.827,1624,2.507,1701,2.212,1721,2.072,1733,2.507,1867,1.827,1868,2.114,1931,2.78,2201,2.034,2219,3.359,2670,2.034,2817,2.624,3008,2.624,3009,2.507,3012,2.337,3042,2.624,3066,3.017,3067,2.624,3068,3.017,3069,2.78,3070,3.017,3071,2.78,3072,2.78,3073,2.414,3074,2.337,3075,2.78,3076,2.507,3077,2.78]],["title/667",[895,4.817]],["content/667",[28,2.918,44,6.321,279,2.062,895,5.436,915,4.2,941,6.926,1029,5.504,1276,6.45,3078,7.649,3079,6.926]],["title/668",[3078,5.382,3079,4.874]],["content/668",[]],["title/669",[12,2.356,48,1.568,49,1.266,3080,4.587]],["content/669",[12,3.352,18,1.358,44,4.483,48,3.769,49,3.043,52,2.868,74,1.937,104,1.749,150,2.595,279,1.462,379,3.148,380,3.297,394,4.322,454,2.254,485,3.103,517,2.886,714,4.324,893,4.912,895,3.855,1106,2.391,1485,4.25,1563,3.766,1573,4.399,1592,4.483,1711,3.953]],["title/670",[377,3.655,504,3.51]],["content/670",[18,1.239,35,2.804,49,3.039,135,4.202,151,3.564,332,2.08,375,3.047,377,4.618,380,2.893,492,3.511,497,3.86,498,3.425,504,4.434,520,6.226,582,2.723,657,2.277,720,1.903,889,2.188,891,3.104,912,3.305,951,3.383,1032,4.014,1081,3.564,1091,4.31,1093,3.86,1133,2.967,1157,3.166,1501,4.76,1999,5.277,2219,3.86,2918,3.86,3078,4.76,3081,5.727,3082,5.277,3083,5.277]],["title/671",[941,6.137]],["content/671",[28,2.342,35,3.616,88,3.081,247,5.721,279,1.655,415,3.589,453,6.245,720,2.454,895,5.755,1011,6.138,1093,4.978,1131,4.083,1498,5.721,2720,6.138,2824,5.176,2853,5.416,3073,5.911,3084,6.424,3085,5.911,3086,7.386,3087,7.386,3088,7.386,3089,6.806]],["title/672",[48,2.214,49,1.788]],["content/672",[0,3.222,8,1.019,48,2.429,49,1.961,88,2.964,241,2.557,247,5.504,332,2.58,377,4.011,415,3.453,454,1.564,455,5.743,497,4.789,498,4.249,686,4.197,873,6.964,894,4.88,995,5.905,997,6.18,1004,5.686,1106,2.603,1265,6.087,1540,4.1,3090,6.547]],["title/673",[379,3.934]],["content/673",[48,2.629,49,2.123,88,3.207,112,2.495,176,3.244,241,2.767,331,4.129,379,4.826,415,3.737,453,4.929,454,1.693,455,4.129,562,4.129,642,5.508,712,3.709,873,5.639,913,4.251,1127,6.391,2401,7.086,3091,7.086,3092,7.689]],["title/674",[18,0.981,104,1.735]],["content/674",[12,1.525,18,1.402,34,1.108,35,1.454,37,1.525,48,2.503,49,2.239,54,1.966,55,0.907,74,1.459,104,2.174,241,2.266,279,0.665,321,2.039,332,1.078,379,3.913,380,3.698,394,1.966,406,2.445,415,3.059,454,1.925,455,2.641,477,2.6,484,0.99,485,2.338,492,1.274,493,1.282,495,1.525,529,1.382,581,1.321,582,1.412,588,1.5,657,2.503,664,1.382,671,1.625,686,5.469,714,1.432,720,0.986,761,2.806,796,1.676,888,1.412,893,2.234,894,5.573,898,1.625,941,2.234,949,2.127,951,1.754,995,2.468,997,4.277,1004,2.376,1025,1.338,1027,1.966,1049,2.3,1063,1.848,1092,3.522,1098,1.676,1106,1.088,1137,2.001,1157,1.641,1201,1.966,1386,1.733,1423,1.903,1438,2.039,1563,1.713,1573,3.315,1580,4.532,1588,2.234,1737,2.081,1882,2.234,1896,1.775,2742,2.127,2959,2.582,3093,2.736,3094,2.736,3095,6.295,3096,4.918,3097,4.918]],["title/675",[415,3.147,948,3.923]],["content/675",[28,2.781,135,4.505,454,1.931,498,5.245,921,7.629,948,5.313,1008,5.005,1243,7.019,1635,4.899,2824,6.148,3098,8.771,3099,8.771,3100,8.771]],["title/676",[498,3.212,514,3.099,515,3.342]],["content/676",[]],["title/677",[498,3.212,514,3.099,515,3.342]],["content/677",[49,1.597,150,2.301,175,3.05,313,4.569,439,3.418,453,3.709,454,1.274,488,3.107,498,4.928,507,3.167,514,4.755,515,5.973,521,2.694,538,2.2,568,3.199,646,2.607,951,3.418,952,4.603,1038,4.306,1124,3.891,1545,3.266,1575,3.136,1711,3.505,2745,4.809,2840,5.332,2919,4.63,3101,5.786,3102,5.332,3103,5.786,3104,5.786,3105,5.786,3106,5.786,3107,5.786,3108,5.786]],["title/678",[279,1.028,498,2.743,514,2.647,515,2.855]],["content/678",[28,1.631,37,1.61,48,1.072,49,1.42,108,1.234,134,2.599,136,2.428,256,2.968,279,0.702,311,1.293,313,1.246,394,2.076,454,1.44,474,3.076,482,1.037,485,1.491,495,1.61,497,2.113,498,5.369,514,4.366,515,4.709,521,1.46,527,2.153,557,3.598,570,4.922,582,2.445,619,3.002,621,1.273,684,1.45,753,6.289,777,3.961,827,1.683,864,2.042,913,2.843,931,1.979,952,1.751,956,2.577,1001,2.245,1022,2.153,1063,1.951,1093,2.113,1097,2.509,1116,1.431,1189,2.299,1249,2.299,1548,2.076,1551,1.899,1804,2.197,1848,2.359,1867,5.06,2082,1.951,2667,5.739,2714,2.509,2744,1.789,2818,2.605,2984,2.359,3050,2.509,3051,5.233,3055,6.026,3074,2.428,3109,2.428,3110,3.135,3111,3.135,3112,3.135,3113,3.135,3114,5.143,3115,2.889,3116,4.739,3117,3.135,3118,3.135,3119,2.605,3120,2.889,3121,3.135,3122,2.889,3123,2.605,3124,2.889,3125,2.727,3126,3.135]],["title/679",[498,2.394,514,2.31,515,2.491,952,2.236,1203,3.204]],["content/679",[279,1.572,313,2.79,454,1.545,492,3.011,495,3.604,498,4.196,514,4.049,515,5.86,579,4.144,652,4.366,952,3.919,1009,4.819,1010,4.25,1016,6.236,1124,3.312,1166,5.831,1251,4.729,1387,6.102,1391,6.102,1575,3.803,1727,6.102,2316,4.004,2884,4.049,3119,5.831,3127,7.016,3128,7.016,3129,7.016]],["title/680",[279,1.028,1203,3.671,3130,4.587,3131,4.587]],["content/680",[0,1.755,37,1.988,49,1.068,50,2.005,52,1.701,53,2.481,76,2.52,134,1.121,135,1.988,175,3.972,176,1.633,279,1.365,313,1.539,379,1.867,453,2.481,454,0.852,477,1.375,483,6.266,492,3.234,497,5.761,514,2.233,515,2.409,529,1.802,574,2.661,592,1.988,619,2.259,686,2.286,761,2.208,894,2.658,895,2.286,902,4.719,945,2.314,1008,2.208,1009,2.658,1010,2.344,1027,2.563,1034,2.712,1079,2.772,1087,1.939,1136,2.481,1152,2.14,1201,2.563,1203,7.439,1204,5.631,1205,3.366,1276,2.712,1412,5.299,1474,3.217,1528,2.658,1563,4.348,1628,2.772,1650,3.097,1848,2.913,1865,2.998,2201,2.609,2259,3.366,2260,2.314,3132,3.87,3133,3.87,3134,3.87,3135,3.87,3136,3.366,3137,6.093,3138,3.87,3139,3.217,3140,3.87,3141,3.566,3142,3.87]],["title/681",[1025,2.918,1867,3.923]],["content/681",[]],["title/682",[1867,4.939]],["content/682",[18,0.685,28,1.435,47,2.25,50,2.344,74,1.343,134,1.31,279,1.541,306,2.014,311,1.867,313,1.8,378,2.528,393,2.611,485,2.152,488,2.43,517,2.001,535,2.25,568,2.502,578,3.406,622,3.506,657,1.8,666,2.792,720,1.504,743,3.172,761,2.582,829,3.622,892,2.817,904,3.319,913,2.502,1008,2.582,1016,2.997,1025,3.747,1044,3.761,1064,3.506,1087,2.268,1143,2.707,1399,3.622,1525,3.109,1545,2.555,1583,3.172,1591,3.319,1624,3.761,1635,2.528,1644,3.319,1777,3.051,1834,3.936,1867,6.372,2016,3.506,2668,3.172,2670,3.051,2824,3.172,2899,4.17,2953,4.17,3067,3.936,3143,4.526,3144,4.526,3145,4.526,3146,4.526,3147,4.526,3148,4.526,3149,4.526,3150,4.526,3151,4.17,3152,4.526,3153,4.17]],["title/683",[1002,4.365,1566,4.749]],["content/683",[37,2.464,49,1.324,50,2.485,63,2.506,74,2.132,219,2.095,313,1.907,321,3.295,454,1.582,477,2.552,482,1.587,484,2.874,485,3.416,491,3.518,498,2.868,505,3.535,519,4.194,520,2.868,521,2.234,563,2.737,666,2.917,888,2.281,889,1.833,898,2.626,900,1.927,908,4.606,912,4.146,913,2.652,969,3.124,1002,5.807,1039,3.839,1211,3.518,1395,4.758,1423,3.075,1545,2.708,1566,5.269,1592,3.295,1762,3.987,1777,3.233,1867,2.905,2188,3.61,2219,3.233,2709,4.42,2716,3.715,2746,3.987,2799,4.42,2823,4.42,3076,3.987,3154,4.797,3155,4.42]],["title/690",[888,3.877]],["content/690",[18,1.104,47,3.624,50,3.776,53,4.673,74,2.867,219,3.184,306,3.243,477,2.589,484,3.222,505,3.964,521,3.394,535,3.624,720,2.422,888,3.466,889,2.786,891,3.952,912,4.206,942,5.007,1399,5.834,1551,4.415,1591,5.346,1730,4.603,3156,6.34]],["title/691",[49,1.788,332,2.351]],["content/691",[37,2.941,48,1.958,49,3.161,54,3.793,219,3.573,253,2.597,306,2.548,332,3.465,484,1.911,505,2.35,514,4.72,531,3.49,570,4.31,671,3.135,672,4.392,684,2.649,744,3.343,885,4.31,889,2.188,900,2.301,909,5.277,916,3.305,1025,2.58,1063,3.564,1087,2.87,1131,3.166,1219,4.583,1254,3.305,1653,3.793,1670,3.383,1867,4.955,3157,5.727,3158,4.981,3159,4.981,3160,5.727]],["title/692",[50,2.782,666,3.171]],["content/692",[12,2.135,18,1.456,35,2.035,37,2.135,47,3.203,49,2.453,50,4.603,53,4.13,69,1.387,74,2.341,184,2.518,219,1.816,241,1.496,313,1.653,332,2.339,400,3.255,454,1.418,484,1.387,505,4.173,519,2.426,557,1.976,622,3.22,666,2.616,686,2.455,888,4.571,892,2.587,893,3.128,894,2.855,895,2.455,900,1.67,902,4.99,903,5.156,904,3.048,907,2.707,908,2.665,1006,2.587,1008,2.372,1039,3.327,1106,2.361,1143,2.486,1211,3.048,1226,2.298,1395,4.266,1578,5.937,2201,2.802,2219,2.802,2853,3.048,3072,3.83,3076,3.455,3161,4.157,3162,3.327,3163,3.615]],["title/693",[1777,4.365,3164,5.967]],["content/693",[3,2.256,37,2.669,48,3.088,49,2.493,69,1.734,74,1.542,154,2.817,171,2.999,279,1.708,408,3.033,440,2.903,488,2.79,491,3.811,493,2.243,521,2.42,539,2.873,557,2.471,559,2.669,562,2.79,622,4.025,888,3.625,889,1.986,900,2.088,917,3.108,1001,3.722,1002,3.503,1005,4.52,1025,4.069,1044,4.319,1087,2.604,1276,3.642,1395,3.441,1551,3.148,1741,4.319,1777,3.503,1824,4.025,1867,5.47,2102,3.148,2647,4.319,2784,2.74,3151,4.788,3153,4.788,3165,5.196,3166,5.196,3167,5.196,3168,4.52,3169,5.196]],["title/694",[949,5.841]],["content/694",[18,0.649,49,2.691,74,1.271,104,1.148,219,2.88,241,2.373,254,2.629,279,0.96,313,2.622,332,2.919,379,2.066,415,2.082,454,1.988,484,1.429,485,2.037,489,3.726,491,3.142,493,1.849,517,1.894,519,2.501,664,1.995,671,4.4,681,3.726,684,3.05,686,4.749,691,2.219,739,3.428,784,3.068,888,2.037,894,2.943,898,3.609,916,2.472,948,3.994,949,3.068,955,3.947,995,3.56,1000,3.726,1003,3.142,1106,1.57,1131,2.368,1165,2.219,1174,2.888,1211,3.142,1254,2.472,1265,4.227,1502,2.705,1867,2.595,2135,3.224,2214,4.963,3090,3.947,3170,4.284,3171,4.284,3172,3.726,3173,4.284,3174,4.284,3175,3.002,3176,4.284,3177,4.284,3178,4.284]],["title/684",[579,4.817]],["content/684",[256,5.399,279,2.096,521,4.357,538,3.558,639,3.525,1123,5.667,1653,6.196,1844,7.042,2676,7.776]],["title/685",[28,2.053,3004,5.632]],["content/685",[8,0.829,18,1.092,49,0.999,108,2.839,131,2.573,185,1.631,242,1.734,253,1.642,279,1.295,313,1.44,314,3.195,454,0.797,460,1.905,474,2.165,489,5.026,492,2.48,657,1.44,719,2.358,720,1.203,824,3.336,864,2.358,889,1.383,952,2.022,1023,2.44,1025,1.631,1027,2.398,1056,4.625,1081,2.253,1087,1.814,1106,1.327,1123,2.193,1144,2.113,1265,2.321,1344,4.139,1515,3.149,1566,5.289,1615,2.593,1627,3.969,1664,2.44,1670,2.139,1708,2.44,1709,3.649,1767,2.286,1777,3.895,1848,4.349,2260,2.165,2565,2.725,2914,5.026,3004,3.149,3006,5.026,3007,3.149,3008,6.273,3009,4.803,3016,3.336,3050,4.625,3051,4.625,3052,2.593,3179,3.336,3180,2.321,3181,3.62,3182,5.779,3183,3.336,3184,3.62,3185,5.779,3186,3.149,3187,3.62,3188,3.009,3189,3.62,3190,3.62,3191,3.62,3192,3.336,3193,3.62,3194,3.149,3195,3.62,3196,3.62]],["title/686",[531,2.763,1805,5.182]],["content/686",[328,6.302,482,2.692,515,5.063,531,3.471,579,4.806,587,3.491,767,5.588,889,3.109,911,5.588,1025,3.666,1038,4.251,1818,4.928,1862,6.302,2707,7.497,2720,6.761,2884,4.694,3197,5.966,3198,5.827]],["title/687",[1025,2.918,1867,3.923]],["content/687",[49,1.934,61,3.955,108,1.826,279,1.57,313,1.844,454,1.021,483,3.126,486,4.165,505,1.903,517,2.051,523,2.928,562,2.49,578,3.491,582,2.205,652,2.886,657,1.844,720,1.541,761,2.647,939,3.491,956,2.324,1006,2.886,1015,2.591,1025,3.157,1038,2.423,1063,2.886,1087,2.324,1143,2.774,1170,3.021,1399,3.712,1482,2.928,1635,2.591,1753,3.491,1867,6.679,1880,4.274,2049,2.809,2219,3.126,2483,4.034,2670,4.722,3017,3.491,3067,4.034,3093,4.274,3141,4.274,3198,5.018,3199,4.274,3200,4.638,3201,4.034,3202,4.638,3203,4.638,3204,4.638,3205,4.638,3206,3.186,3207,4.638,3208,4.638,3209,4.638,3210,4.638,3211,4.638]],["title/688",[1086,5.4]],["content/688",[8,0.715,12,1.549,18,0.457,28,2.019,37,1.549,48,1.031,49,0.833,65,0.902,74,1.479,77,2.072,88,1.258,108,1.187,111,1.668,134,1.443,143,1.206,148,1.703,151,1.878,256,1.741,279,1.834,332,1.809,375,1.605,378,1.685,397,1.377,415,1.466,454,0.664,471,2.507,477,1.77,482,2.107,492,1.295,510,1.5,516,1.827,517,1.334,529,1.405,579,2.944,580,2.624,604,1.934,720,1.002,744,1.761,790,1.965,816,2.875,849,1.878,884,2.507,889,1.153,904,2.212,913,1.668,915,1.377,945,1.804,994,3.194,1025,2.245,1048,1.721,1064,2.337,1065,2.337,1069,2.627,1074,2.78,1086,4.896,1106,1.826,1123,1.827,1143,1.804,1190,4.239,1201,1.998,1244,2.161,1251,2.034,1254,1.741,1257,2.161,1510,3.245,1591,3.654,1653,1.998,1721,2.072,1743,2.27,1746,2.27,1752,2.114,1839,1.537,1844,2.27,1867,3.018,2101,2.507,2260,1.804,2316,1.721,2361,2.78,2670,2.034,2714,3.988,2744,1.721,2745,4.142,2760,2.507,2793,3.146,3033,2.624,3073,2.414,3109,2.337,3212,2.414,3213,3.017,3214,3.017,3215,3.017,3216,3.017,3217,2.78,3218,4.592,3219,2.27,3220,3.017,3221,2.78,3222,2.78,3223,2.507,3224,2.414,3225,2.78,3226,2.337]],["title/689",[1818,3.923,2750,4.289]],["content/689",[111,3.831,241,2.494,279,1.553,492,2.974,507,3.793,543,4.963,546,3.912,604,4.442,619,4.045,646,3.122,757,3.831,900,2.784,1025,3.122,1525,4.76,1643,5.811,1653,4.589,1746,5.215,1818,4.197,1835,4.589,1862,5.368,1896,4.144,1989,6.027,2067,5.368,2710,6.545,2744,3.954,2750,4.589,3227,6.93,3228,6.027]],["title/695",[18,0.981,185,2.918]],["content/695",[18,0.78,24,1.996,28,1.633,64,2.738,65,1.539,74,1.528,131,1.837,134,1.491,185,4.047,194,1.958,218,2.714,279,1.154,311,3.124,375,2.739,397,2.35,406,2.56,415,2.502,416,2.847,454,1.667,482,1.704,485,2.448,492,2.21,521,2.398,582,2.448,698,2.223,744,3.005,773,2.667,864,3.353,1035,2.765,1071,2.938,1084,3.776,1093,3.471,1106,1.887,1165,2.667,1177,2.644,1512,3.875,1563,2.971,1611,4.279,1627,3.537,1720,3.988,1737,3.609,1752,5.308,1776,2.791,1779,4.279,2278,3.988,2915,4.478,2951,3.353,3229,4.478,3230,4.744,3231,4.744,3232,5.149,3233,5.149]],["title/696",[773,4.224]],["content/696",[8,1.287,18,1.468,28,1.342,36,1.449,52,1.091,64,1.53,74,0.737,99,1.156,103,1.18,114,2.435,115,2.05,131,0.886,134,0.719,142,1.765,152,3.733,185,4.616,241,0.894,242,2.648,253,2.508,254,1.524,306,1.105,311,1.024,314,3.057,375,1.321,394,1.644,406,2.104,416,3.057,439,1.467,455,1.333,460,1.395,466,1.504,492,1.065,521,1.156,527,1.705,569,1.923,581,1.105,582,3.106,587,1.816,595,2.852,620,1.524,641,1.225,683,1.568,695,1.568,719,1.617,757,1.373,773,1.286,793,1.705,849,2.633,864,1.617,898,1.359,951,1.467,981,1.644,992,3.517,1008,1.417,1029,1.485,1052,2.794,1061,1.524,1065,1.923,1081,1.545,1093,1.674,1106,1.55,1114,4.596,1144,1.449,1157,1.373,1165,1.286,1209,1.644,1510,1.617,1540,3.769,1591,1.821,1631,3.876,1638,1.923,1750,3.386,1767,1.568,1776,3.541,1779,5.429,2214,1.869,2230,2.063,2932,1.987,2951,5.842,3188,2.063,3230,3.899,3234,3.899,3235,2.483,3236,2.483,3237,2.159,3238,2.483,3239,2.288,3240,2.483,3241,2.063,3242,1.778]],["title/697",[55,1.64,406,2.67,3123,4.463]],["content/697",[]],["title/698",[28,2.586]],["content/698",[18,1.232,28,2.579,51,3.983,55,2.485,73,4.453,74,2.414,134,3.004,185,3.666,218,4.289,240,4.328,406,4.045,486,4.014,488,4.368,1008,4.642,1592,5.588,2951,5.298,3243,6.302]],["title/699",[888,3.877]],["content/699",[18,1.25,185,3.719,477,2.932,484,2.754,486,5.166,505,3.387,664,3.844,888,3.925,1139,5.138,1190,4.276,1592,5.67,1844,6.213,2951,5.376,3027,6.394,3244,8.255,3245,8.255]],["title/700",[65,2.437]],["content/700",[8,1.127,12,1.716,18,1.035,28,1.059,52,1.468,55,1.02,64,1.207,65,2.911,69,1.807,98,3.078,99,1.555,107,2.079,108,1.315,109,5.337,131,1.192,134,0.967,142,2.259,152,1.701,176,1.409,182,2.141,183,1.997,185,4.167,242,1.6,253,3.098,254,2.05,255,4.524,256,3.942,279,0.748,331,1.793,375,1.777,406,1.661,460,1.101,477,1.924,492,1.433,493,1.442,529,1.555,581,1.486,684,1.545,688,1.906,743,3.796,744,1.95,827,1.793,849,2.079,864,3.527,889,1.276,900,3.157,913,1.847,915,2.472,951,3.199,976,1.555,1006,2.079,1065,2.587,1106,1.985,1131,1.847,1139,3.371,1157,2.994,1165,1.73,1540,3.942,1584,3.078,1631,3.796,1701,2.45,1779,2.776,1780,2.45,1850,2.294,2317,3.796,2503,3.057,2951,2.175,3234,3.078,3242,2.392,3246,2.905,3247,3.34,3248,3.078]],["title/701",[1086,5.4]],["content/701",[143,2.947,279,1.113,482,2.911,492,2.131,517,2.196,524,2.049,531,2.119,538,1.889,579,2.934,594,3.184,620,3.048,720,1.65,777,3.008,849,3.091,884,4.128,904,3.642,908,3.184,912,2.866,951,2.934,1025,3.963,1039,3.975,1044,4.128,1048,4.208,1063,3.091,1086,5.824,1131,2.746,1386,4.304,1508,4.128,1645,3.411,1653,4.883,1678,3.738,1718,4.576,1846,3.847,1850,3.411,1857,4.128,1863,3.557,2765,4.32,3024,4.128,3041,4.576,3073,5.901,3074,3.847,3155,4.576,3249,4.966,3250,4.966,3251,4.576,3252,4.576,3253,4.966,3254,4.966,3255,4.576,3256,4.966,3257,4.576]],["title/702",[8,0.574,151,2.491,1025,1.804,1867,3.79]],["content/702",[256,4.908,378,4.751,471,7.069,579,5.024,580,7.398,913,4.702,1086,5.633,1591,7.825,1721,5.842,2101,7.069,2714,6.807,2793,5.37,3074,6.588,3218,7.837]],["title/703",[74,1.922,143,2.588]],["content/703",[]],["title/704",[481,6.317]],["content/704",[18,1.171,28,2.451,74,1.571,77,3.637,88,2.209,108,2.084,134,2.238,143,2.116,145,2.401,148,2.989,241,1.905,279,1.186,306,3.439,397,3.528,454,1.166,470,2.675,477,1.881,482,2.558,510,2.632,744,3.091,849,3.295,889,2.023,904,3.883,1019,4.101,1054,3.091,1069,2.791,1082,4.605,1083,4.879,1086,3.506,1106,2.832,1124,2.5,1143,3.166,1190,5.2,1743,3.985,1746,3.985,1752,3.711,2260,3.166,2655,4.879,2714,4.237,2760,4.4,3221,4.879,3222,4.879,3223,4.4,3224,4.237,3258,5.295]],["title/705",[169,4.023]],["content/705",[3,1.346,18,0.469,28,0.983,30,1.444,71,0.968,88,2.126,130,2.053,131,2.315,134,1.476,143,3.939,150,2.026,169,1.53,176,1.308,229,1.518,279,1.142,311,1.279,313,2.026,378,1.732,398,1.665,454,0.683,470,1.566,477,1.101,482,2.148,485,3.085,493,2.2,510,3.737,513,1.665,516,1.878,538,1.179,559,2.618,584,2.221,587,1.33,589,3.484,614,2.053,646,2.296,712,3.13,714,1.495,777,3.087,816,1.789,849,1.929,900,1.245,911,2.129,956,1.554,976,1.444,1061,1.903,1075,2.696,1086,2.053,1123,1.878,1136,1.987,1141,6.433,1142,3.836,1148,2.696,1157,1.714,1173,2.221,1175,2.274,1177,1.592,1226,1.714,1257,2.221,1327,2.053,1449,2.481,1510,2.019,1575,1.681,1643,6.354,1644,4.759,1645,2.129,1652,2.696,1653,2.053,1654,2.857,1656,1.681,1724,2.129,1752,2.173,1753,2.333,1839,3.305,1882,3.836,2018,2.274,2716,2.401,2765,2.696,2921,1.878,3012,2.401,3074,2.401,3259,3.1,3260,3.1,3261,3.1]],["title/706",[3225,7.514]],["content/706",[28,2.579,65,2.432,375,4.328,477,2.89,517,3.597,790,5.298,945,4.865,1035,4.368,1064,6.302,1069,4.289,1190,4.214,1254,4.694,1628,5.827,2316,4.642,2744,4.642,2793,5.137,2932,6.51,3226,6.302]],["title/707",[1735,5.311]],["content/707",[18,1.181,28,2.472,74,2.996,103,3.707,112,2.53,114,2.59,115,2.181,279,1.747,454,1.716,482,2.58,529,3.63,546,4.401,564,6.039,911,5.355,915,3.558,1049,6.039,1175,5.717,1213,5.255,1548,5.163,1735,5.077]],["title/708",[8,0.929,375,3.445]],["content/708",[18,1.527,74,1.586,112,3.272,114,1.776,115,1.495,131,1.907,134,1.548,218,2.818,241,1.924,308,2.524,311,3.211,332,1.941,439,3.157,454,1.714,476,3.603,477,3.26,507,2.926,532,3.828,849,3.326,915,2.44,954,4.277,994,3.426,1106,1.958,1120,3.481,1131,2.955,1190,4.032,1197,3.828,1213,3.603,1243,4.277,1563,3.084,1691,3.326,1708,5.246,1709,4.914,1722,3.157,1732,4.844,1735,5.069,1736,4.442,2671,4.925,3262,5.345]],["title/709",[219,3.562]],["content/709",[64,3.492,65,2.179,69,2.432,134,2.111,185,3.284,219,3.184,308,3.442,415,3.542,454,1.605,529,3.394,1177,4.961,1184,3.878,1652,6.34,1701,5.346,1735,4.747,1774,6.059,1775,6.717,1776,5.236,3263,6.717,3264,6.717,3265,7.29,3266,6.717,3267,7.29]],["title/710",[1045,4.299]],["content/710",[18,0.859,28,3.286,47,2.819,49,2.242,131,2.897,134,2.748,279,1.27,313,2.254,477,2.014,478,4.537,488,3.044,498,4.857,514,3.271,515,3.528,520,3.39,529,2.64,582,2.695,641,2.797,892,3.528,893,4.267,941,4.267,994,3.634,1022,3.894,1045,2.989,1056,4.537,1071,3.235,1133,2.937,1174,3.821,1548,3.754,1725,4.712,1805,4.537,2316,3.235,2667,3.894,2759,5.224,2921,3.434,3175,3.973,3268,8.121,3269,5.669,3270,5.669]],["title/711",[1185,4.03,1482,4.089]],["content/711",[28,2.918,112,2.986,495,4.727,519,5.372,546,5.195,587,3.949,1035,4.942,1045,4.852,1824,7.129,3271,8.004]],["title/712",[3272,7.093]],["content/712",[28,3.395,99,2.841,112,1.98,134,2.861,176,2.573,194,2.32,254,5.251,419,5.622,454,1.343,578,4.591,655,2.841,915,2.784,936,5.07,1034,4.276,1036,5.306,1037,4.725,1055,4.04,1106,2.235,1131,3.373,1155,3.852,1528,4.19,1662,3.797,1806,4.882,1868,4.276,1998,5.306,2895,5.306,3028,5.622,3159,5.306,3271,5.306,3272,5.306,3273,6.101,3274,5.622,3275,5.622,3276,6.101,3277,5.622]],["title/713",[3278,6.778]],["content/713",[28,3.144,103,3.607,108,2.986,112,2.461,134,2.196,546,5.597,578,5.709,643,5.316,655,3.532,915,3.462,1093,5.113,1477,4.428,1541,5.876,1772,5.21,2651,5.563,2936,4.94,3274,6.99,3278,6.304,3279,6.99,3280,7.585,3281,7.585]],["title/714",[485,3.079,535,3.22]],["content/714",[18,0.904,28,1.893,73,3.268,74,1.772,103,2.839,111,3.301,134,2.44,254,3.665,279,1.888,454,2.15,477,2.121,500,3.37,546,5.512,912,3.445,1033,4.185,1122,6.179,1137,4.025,1141,6.527,1165,3.093,1170,3.888,1171,4.277,1423,3.827,1551,3.617,1597,4.185,1721,4.101,1788,7.564,1845,4.277,2629,4.025,3136,5.193,3156,5.193,3282,5.971,3283,5.971,3284,5.971]],["title/715",[18,0.813,131,1.916,646,2.42]],["content/715",[18,0.914,99,2.81,108,2.375,112,1.958,131,2.153,134,3.252,171,4.899,184,3.655,194,3.735,241,3.535,308,2.849,314,3.337,331,3.24,436,3.24,516,3.655,546,3.407,563,3.444,915,3.875,1115,4.845,1136,3.868,1165,3.126,1175,4.426,1184,3.211,1614,5.561,1701,4.426,1772,4.145,1854,5.016,1998,5.249,2082,3.756,3285,5.016,3286,6.035]],["title/716",[18,0.813,28,1.703,74,1.594]],["content/716",[18,1.546,28,3.399,48,1.626,49,1.313,50,2.464,69,1.587,74,2.544,131,1.697,134,3.312,241,3.085,279,1.066,313,1.891,314,2.629,454,1.572,477,1.689,485,2.261,492,2.041,563,4.074,684,2.2,720,1.58,889,1.817,895,2.809,915,3.259,956,2.383,1029,2.844,1032,3.333,1045,3.764,1055,3.15,1071,2.714,1098,2.685,1106,2.616,1250,3.488,1395,3.15,1573,3.206,1709,3.003,1934,3.806,2921,2.881,3272,4.136,3287,4.382,3288,4.756,3289,4.756,3290,4.756]],["title/717",[73,3.545,74,1.922]],["content/717",[28,3.287,75,3.732,108,3.586,134,1.935,194,3.465,488,3.588,720,2.22,1003,4.9,1028,4.158,1043,5.176,1045,4.803,1071,3.813,1106,2.448,1120,4.352,1121,3.947,1150,5.347,1153,6.157,1548,4.425,1711,4.047,1764,4.425,1886,5.812,3032,6.157,3033,5.812,3278,5.553,3291,6.682,3292,6.682,3293,6.682,3294,6.682]],["title/718",[112,2.101,3271,5.632]],["content/718",[28,2.617,84,5.292,112,2.679,171,4.763,241,2.971,253,3.743,254,5.067,279,1.85,314,4.564,454,1.817,915,3.768,981,5.467,1035,4.433,1121,4.876,1742,5.376,1806,6.606,3277,7.607]],["title/719",[1118,5.311]],["content/719",[18,1.25,28,2.617,134,2.39,175,4.352,176,3.482,233,3.463,279,1.85,311,3.406,454,1.817,482,2.732,641,4.073,1045,4.352,1118,5.376,1122,6.054,1178,5.786,1788,6.394,2963,6.861]],["title/720",[1174,5.497]],["content/720",[0,2.708,18,1.276,28,2.672,49,2.326,69,1.992,103,2.839,104,1.6,108,2.35,111,3.301,112,1.937,134,3.239,163,4.277,164,4.379,304,4.379,311,2.463,313,2.374,332,2.168,394,3.954,463,3.888,557,2.839,559,3.067,589,3.206,646,2.69,672,3.206,684,3.897,1118,3.888,1174,4.025,1177,3.067,1242,3.527,1615,4.277,1620,2.923,1716,4.778,2316,3.407,3295,5.971,3296,5.971]],["title/721",[1190,4.224]],["content/721",[18,1.328,28,2.781,108,3.452,112,2.846,134,2.54,241,3.157,332,3.185,380,4.431,439,5.181,477,3.863,2193,7.629,3115,8.083]],["title/722",[1178,5.715]],["content/722",[18,1.476,28,2.342,69,2.464,131,2.635,134,3.157,468,6.138,485,3.512,557,3.512,558,5.558,589,5.232,666,2.998,1071,4.214,1170,4.81,1171,5.29,1178,5.176,1185,4.596,1188,5.558,1195,5.416,1573,4.978,1620,3.616,2676,6.138]],["title/739",[1170,4.217,1171,4.638]],["content/739",[18,0.966,102,3.249,112,2.07,134,3.161,143,2.549,194,2.426,279,1.977,311,2.631,313,2.536,415,3.099,454,1.943,482,2.111,506,5.104,657,2.536,956,3.196,1052,3.222,1117,5.547,1118,4.154,1121,3.768,1157,3.526,1170,5.747,1171,6.32,1188,4.8,1195,4.677,1563,3.68,1627,4.381,3297,6.378,3298,5.877,3299,6.378,3300,6.378]],["title/740",[257,5.497]],["content/740",[18,1.653,28,2.022,69,2.128,75,3.563,78,4.694,242,3.054,331,3.425,398,3.425,1048,3.639,1071,3.639,1106,3.233,1120,6.589,1170,4.154,1171,6.32,1187,5.547,1188,6.641,1195,8.006,1558,4.568,1620,3.123,1711,3.863,1764,5.843,2913,2.737,2959,5.547,3224,5.104]],["title/741",[1178,5.715]],["content/741",[18,1.358,69,2.177,78,3.472,104,1.749,134,3.192,176,2.753,242,4.293,306,2.904,314,3.608,331,3.504,398,3.504,406,3.245,454,1.437,477,2.318,557,3.103,657,3.565,688,3.724,714,3.148,1144,5.233,1185,4.062,1187,5.676,1188,6.747,1226,3.608,1558,4.675,1620,3.195,1626,4.121,1716,5.223]],["title/723",[3301,6.526]],["content/723",[]],["title/724",[477,1.422,579,2.365,891,2.17,3301,3.204,3302,3.689]],["content/724",[28,2.043,114,1.381,115,1.163,219,1.816,257,4.343,279,0.931,328,3.22,376,2.802,477,1.476,486,3.178,492,1.784,500,2.346,524,1.715,531,2.749,567,4.068,582,1.976,587,2.765,640,3.615,657,1.653,661,2.275,701,3.455,889,2.462,911,4.425,915,1.897,952,2.322,973,3.22,981,2.753,1002,2.802,1008,2.372,1016,2.753,1025,1.873,1081,2.587,1086,2.753,1094,2.913,1106,2.361,1173,2.977,1213,2.802,1226,2.298,1250,3.048,1377,2.346,1398,3.128,1620,2.035,1661,2.977,1749,2.802,1752,2.913,1867,2.518,1873,2.587,1896,2.486,2219,2.802,2539,3.22,2871,2.977,2884,2.399,2909,3.455,2919,3.327,2931,5.354,3009,3.455,3085,3.327,3125,3.615,3301,7.111,3302,3.83,3303,2.913,3304,4.157,3305,4.157,3306,4.157,3307,4.157,3308,4.157,3309,4.157,3310,4.157,3311,4.157,3312,3.83,3313,3.83]],["title/725",[279,1.028,546,2.589,604,2.94,3314,4.587]],["content/725",[28,2.438,142,4.173,143,3.073,507,5.476,557,3.656,1016,5.092,1071,4.388,1377,4.34,1818,6.059,2043,5.008,2763,7.086,3052,5.508,3301,6.154,3315,10.004,3316,7.689,3317,7.689,3318,7.689,3319,7.689]],["title/726",[69,2.16,3301,5.182]],["content/726",[]],["title/727",[482,2.699]],["content/727",[18,1.184,24,1.89,28,2.48,30,0.979,32,1.319,47,1.045,48,0.718,49,1.611,54,3.227,74,1.964,84,1.347,108,0.827,111,1.162,112,1.189,114,0.698,115,0.588,131,2.082,133,2.281,135,1.079,171,1.213,175,1.108,219,0.918,253,0.953,256,1.213,257,1.417,278,1.582,313,1.938,314,1.162,378,1.174,453,3.124,454,0.463,482,0.695,485,0.999,486,4.291,491,4.854,500,2.069,504,3.941,517,0.929,519,2.845,520,1.257,524,0.867,563,1.199,578,2.758,582,0.999,592,1.079,619,1.227,624,1.128,646,2.629,889,0.803,893,1.582,913,1.162,915,3.569,1016,1.392,1025,2.983,1038,1.098,1045,1.108,1081,2.281,1087,1.837,1122,1.541,1124,0.992,1144,1.227,1157,1.162,1170,1.369,1171,1.505,1213,3.285,1242,2.165,1250,1.541,1254,1.213,1377,1.186,1395,1.392,1510,1.369,1526,1.682,1547,1.582,1548,1.392,1626,1.327,1627,1.443,1628,1.505,1647,1.006,1691,1.308,1708,1.417,1709,1.327,1722,2.165,1733,1.747,1746,1.582,1788,1.628,1825,1.936,1857,1.747,1865,1.628,1867,4.009,2047,1.828,2316,1.199,2750,1.392,3013,1.828,3069,1.936,3073,2.933,3074,1.628,3077,1.936,3120,1.936,3123,1.747,3156,1.828,3163,1.828,3229,1.828,3320,2.101,3321,5.757,3322,2.101,3323,5.757,3324,2.101,3325,2.101,3326,2.101,3327,1.936,3328,1.747,3329,2.101,3330,1.828,3331,3.377,3332,2.101,3333,2.101,3334,2.839,3335,2.101,3336,2.101,3337,2.101,3338,1.828,3339,2.101,3340,2.101,3341,1.828,3342,1.936,3343,1.747,3344,2.101,3345,2.101]],["title/728",[2219,5.497]],["content/728",[28,2.262,37,1.463,49,0.786,54,1.886,112,0.924,175,1.502,176,1.201,306,1.267,378,1.591,446,1.502,453,1.826,454,1.046,463,1.855,504,4.643,510,1.416,517,1.259,519,2.773,521,1.326,588,1.439,712,1.374,757,2.627,777,1.725,889,1.088,893,5.369,912,1.644,915,2.169,941,3.576,1024,2.279,1025,2.141,1087,4.293,1116,1.3,1152,1.575,1219,4.891,1395,4.724,1516,6.59,1534,3.949,1588,2.144,1589,1.996,1684,2.206,1730,1.798,2070,2.625,2219,6.879,2842,2.04,2971,4.378,3321,6.897,3323,6.897,3334,6.635,3346,2.477,3347,2.848,3348,2.848,3349,2.477,3350,8.566,3351,2.848,3352,4.751,3353,6.112,3354,4.751,3355,2.848,3356,6.112,3357,2.848,3358,2.625,3359,2.848,3360,2.848,3361,2.848,3362,2.089,3363,3.949,3364,2.848,3365,4.751,3366,2.848,3367,2.848,3368,2.848,3369,2.848,3370,2.848,3371,2.848,3372,2.848,3373,2.367,3374,2.848,3375,2.848,3376,2.848]],["title/729",[498,4.877]],["content/729",[18,1.09,28,2.282,148,4.062,504,5.835,546,5.406,563,4.106,568,3.979,900,2.891,951,4.251,1038,3.76,1087,3.606,1563,4.152,3168,6.259,3321,8.33,3323,8.33,3377,7.196,3378,7.196,3379,7.196,3380,7.196,3381,7.196,3382,7.196,3383,7.196]],["title/735",[1121,4.817]],["content/735",[18,1.212,28,2.538,74,2.376,103,2.642,131,2.856,242,4.494,279,1.794,311,3.303,454,2.066,470,2.807,477,1.974,482,3.398,529,2.588,589,2.984,646,3.607,899,4.304,935,4.304,938,5.12,939,4.182,1025,2.504,1027,3.68,1038,2.904,1069,2.929,1095,4.182,1121,5.543,1126,4.182,1478,4.618,1590,4.833,1616,4.304,1678,4.182,1805,4.447,2102,4.849,3384,5.557]],["title/736",[131,2.909]],["content/736",[18,1.783,28,1.977,97,3.559,102,4.425,109,3.599,131,3.099,133,3.881,134,1.806,229,3.053,311,2.573,454,1.373,477,2.215,546,3.52,646,2.81,760,4.831,1022,4.284,1027,4.13,1035,3.349,1055,4.13,1056,4.991,1079,4.467,1106,2.285,1121,3.684,1178,4.371,1386,3.64,1626,3.938,1635,3.483,1849,5.424,1868,4.371,3007,5.424,3083,5.747,3385,5.747]],["title/737",[242,3.905]],["content/737",[18,1.693,48,1.39,49,1.123,73,2.226,74,2.606,99,1.894,104,2.701,112,1.319,131,2.775,134,3.151,152,2.071,181,4.439,242,5.576,314,4.855,406,2.022,477,1.444,912,2.346,956,2.038,1035,2.183,1106,2.85,1113,2.741,1116,1.856,1120,2.648,1125,2.432,1133,2.106,1211,2.982,1254,5.067,1480,2.248,1549,3.747,1575,2.204,2102,2.463,2894,3.747,2913,4.671,3172,3.537,3239,3.747,3386,4.066]],["title/738",[1144,3.78,1626,4.089]],["content/738",[18,1.405,28,1.728,51,2.668,69,3.096,104,1.46,112,1.768,131,1.944,134,3.363,176,2.298,194,3.002,242,4.872,243,3.493,311,2.248,488,2.926,492,2.338,951,3.219,1032,3.819,1035,2.926,1045,2.873,1084,3.996,1106,1.996,1121,3.219,1144,5.939,1510,3.549,1588,4.101,1620,2.668,1626,3.44,1632,4.361,1716,4.361,1727,4.739,1846,4.221,1868,3.819,2779,4.739,3387,4.739,3388,5.449]],["title/730",[73,3.545,74,1.922]],["content/730",[18,1.118,28,2.342,73,4.043,74,2.192,131,2.635,242,3.537,279,1.655,311,3.047,454,2.145,482,2.444,485,3.512,624,3.966,1006,4.596,1027,4.891,1035,3.966,1038,3.859,1121,5.755,1123,4.474,1178,5.176,1423,4.734,1510,4.81,1563,4.262,1573,4.978]],["title/731",[1551,4.939]],["content/731",[52,3.731,73,5.376,74,2.915,78,3.211,102,3.074,104,2.632,279,1.352,306,2.685,406,4.883,454,1.869,482,1.997,493,2.605,589,4.559,655,2.81,1027,3.997,1095,4.542,1116,3.875,1121,5.015,1123,3.655,1125,5.077,1635,3.371,1662,3.756,1764,5.622,2016,4.675,3389,6.035,3390,6.035,3391,6.035]],["title/732",[18,0.813,82,2.649,1587,4.042]],["content/732",[18,1.738,52,2.305,62,2.629,73,4.97,74,2.966,75,2.93,82,2.588,99,2.442,104,1.405,108,2.064,131,2.739,134,2.893,242,4.348,311,2.164,312,3.416,332,2.788,398,2.816,458,2.79,470,2.65,477,1.863,587,2.251,666,2.129,951,3.098,1027,3.473,1035,2.816,1106,3.327,1125,3.137,1129,3.062,1138,4.591,1143,3.137,1165,2.717,1764,5.084,3064,4.833,3158,4.562]],["title/733",[28,1.454,134,1.328,374,3.364,665,2.987]],["content/733",[18,1.305,28,3.151,48,2.109,49,1.703,73,4.719,74,2.558,75,3.445,134,3.115,150,2.452,194,3.278,241,2.22,242,2.954,332,2.24,374,4.523,398,3.312,470,3.116,488,3.312,589,3.312,665,4.017,666,2.504,712,2.975,951,3.643,1006,3.838,1034,4.323,1106,2.26,1113,4.157,1125,5.155,1175,4.523,1764,4.084,1806,4.936]],["title/734",[1129,4.76]],["content/734",[18,1.278,28,1.471,48,2.395,49,1.934,52,3.079,69,1.547,73,2.539,74,1.376,75,2.591,82,4.641,104,2.262,108,2.757,131,2.499,134,2.924,136,3.593,150,1.844,181,3.251,183,2.774,194,1.764,241,1.669,406,2.306,414,3.071,470,2.343,655,2.16,666,2.844,684,2.145,905,3.251,976,2.16,1034,3.251,1045,2.445,1048,2.647,1095,3.491,1106,1.699,1125,4.19,1129,4.089,1138,2.774,1150,5.606,1157,2.564,1165,2.403,1178,4.91,1625,4.034,1764,3.071,1767,2.928,1806,3.712,3392,4.638,3393,4.638,3394,4.638,3395,4.638,3396,4.638]],["title/742",[73,3.545,1132,3.975]],["content/742",[18,1.149,103,3.607,279,1.7,440,4.237,454,1.67,482,3.281,524,3.13,983,6.597,1029,4.536,1071,4.328,1106,2.779,1120,4.94,1121,6.525,1125,5.93,1132,4.656,2057,6.304,3005,6.99,3179,6.99,3397,7.585]],["title/743",[1551,4.939]],["content/743",[73,4.877,74,2.644,312,5.803,496,7.131,517,3.94,657,3.543,684,4.121,1132,5.469,1551,5.397,1770,7.131,1875,5.397,3398,6.706]],["title/744",[1129,4.76]],["content/744",[18,1.197,73,4.328,74,2.346,108,4.009,409,4.027,492,3.393,586,4.371,858,4.992,908,5.068,1121,4.67,1129,6.578,1133,4.095,1138,6.091,3399,7.906,3400,7.906,3401,7.906]],["title/745",[1130,6.137]],["content/745",[18,1.611,28,2.434,73,4.97,74,1.557,75,4.288,108,3.022,134,1.519,279,1.175,309,2.65,314,2.9,378,2.93,458,2.79,477,1.863,492,2.251,513,4.122,517,2.319,523,3.312,574,2.291,587,3.294,905,3.676,1071,2.993,1106,1.922,1125,3.137,1129,4.481,1130,8.004,1134,4.562,1138,6.36,1192,4.359,1202,3.947,1575,2.843,1638,4.063,1760,5.175,1763,4.197,3027,4.063,3402,5.245]],["title/746",[1125,4.877]],["content/746",[18,1.288,279,1.906,455,5.729,482,2.815,495,4.368,659,3.761,684,3.934,872,7.837,1125,5.086,1127,7.069,3186,7.398,3403,8.505,3404,8.505,3405,8.505]],["title/747",[18,0.813,646,2.42,1602,4.042]],["content/747",[18,1.035,52,1.973,73,5.741,74,2.028,75,4.623,78,5.579,104,1.831,108,1.767,112,1.457,134,3.037,242,3.963,306,1.998,314,2.482,332,1.63,348,3.905,415,2.182,460,2.253,492,2.933,684,3.161,714,2.166,761,2.562,897,3.905,915,2.049,969,2.924,1048,2.562,1129,2.621,1132,2.756,1136,2.878,1143,2.685,1144,3.99,1174,3.026,1184,2.388,1485,2.924,1588,5.144,1662,2.794,1764,4.526,1896,2.685,2385,3.731,2752,3.731,3406,4.49,3407,4.49,3408,4.49,3409,4.49,3410,3.905,3411,6.835]],["title/748",[18,0.981,3412,6.476]],["content/748",[18,1.487,52,2.222,73,2.768,74,1.5,108,2.941,134,2.164,279,1.133,314,4.131,395,3.103,440,2.824,454,1.113,475,6.885,476,3.408,477,1.796,557,2.404,587,2.17,619,2.951,714,2.439,887,3.621,896,4.312,952,2.824,956,2.534,1081,3.147,1106,1.853,1113,3.408,1120,4.866,1121,2.987,1125,4.469,1129,5.731,1132,5.456,1136,3.241,1449,4.046,1558,3.621,1602,3.805,1620,2.475,1626,3.192,1711,3.062,1742,3.293,1752,3.544,2102,3.062,3413,5.056,3414,5.056,3415,5.056,3416,5.056]],["title/749",[304,4.749,314,3.58]],["content/749",[8,0.947,18,1.369,28,2.094,52,2.902,73,4.947,74,1.96,75,3.688,112,2.143,133,4.11,134,1.912,171,3.81,194,2.511,242,3.162,310,3.363,311,3.728,605,4.053,620,4.053,666,2.681,720,2.194,898,3.614,1121,3.901,1126,4.97,1137,4.451,1563,3.81,1631,4.628,1670,3.901,2081,6.085,3278,5.488,3417,6.603,3418,6.603,3419,6.603]],["title/750",[1482,4.089,1627,4.448]],["content/750",[0,2.175,18,1.088,69,1.6,73,3.933,74,2.132,108,1.888,131,3.655,134,3.114,135,2.464,150,1.907,194,2.733,242,2.297,304,7.514,306,2.134,308,2.265,310,4.873,311,1.979,313,1.907,314,3.972,460,1.581,476,4.843,479,3.075,493,2.071,526,2.134,582,2.281,588,2.423,620,2.944,665,3.124,712,2.314,720,1.594,729,3.362,960,3.61,1106,1.757,1113,3.233,1121,2.833,1165,2.485,1189,3.518,1404,3.362,1589,3.362,1602,3.61,1674,3.436,1691,2.985,3420,4.797,3421,4.42]],["title/751",[314,3.58,1553,5.632]],["content/751",[8,1.773,18,0.842,52,2.442,74,2.785,103,2.642,114,1.846,115,1.555,131,2.856,134,2.318,142,2.318,152,5.23,253,2.52,306,2.472,310,2.83,314,3.072,476,5.396,479,3.562,493,2.399,529,2.588,898,3.042,917,4.787,1098,3.137,1114,4.618,1121,4.729,1126,4.182,1533,3.68,2815,5.12,2943,4.618,3422,5.557,3423,5.557,3424,5.557]],["title/752",[896,3.737,1602,4.874]],["content/752",[18,1.738,71,2.248,131,3.84,134,3.117,142,3.002,475,5.574,476,4.851,479,6.139,557,3.422,665,4.687,896,6.211,1602,7.208,1646,5.416,1732,4.479,2102,4.359,3013,6.259]],["title/753",[1189,4.749,1862,5.016]],["content/753",[18,1.515,76,5.008,131,2.743,134,2.897,135,3.949,304,5.639,310,3.917,314,4.251,416,4.251,446,5.274,529,3.581,620,4.72,981,5.092,1136,4.929,1265,4.929,1741,6.391,3241,6.391,3425,7.689,3426,7.689]],["title/754",[65,2.437]],["content/754",[18,1.063,61,3.96,65,3.177,151,4.366,255,4.646,279,2.11,454,1.545,477,2.492,524,2.895,527,4.819,655,3.267,688,4.004,889,2.681,900,2.819,949,5.025,1008,4.004,1069,3.699,1753,5.28,1805,5.615,2936,4.569,3427,6.465,3428,6.465,3429,7.016,3430,7.016,3431,6.102,3432,7.016]],["title/755",[2936,5.311]],["content/755",[18,0.955,63,3.295,64,3.165,65,3.006,107,3.925,109,3.639,113,3.452,114,2.095,115,1.764,142,4.195,176,2.66,279,1.413,406,3.136,516,3.82,521,4.077,529,2.937,574,2.755,582,2.998,657,2.508,695,3.982,882,4.885,900,2.534,1023,4.251,1093,4.251,1377,3.56,1386,3.681,1477,3.681,1545,3.56,1548,4.176,2015,4.517,2936,4.107,3433,5.811]],["title/756",[1777,5.497]],["content/756",[65,3.378,152,3.53,397,4.262,523,4.375,524,2.859,535,3.445,562,3.721,574,3.027,726,5.759,915,3.163,952,3.871,1777,4.671,1780,5.082,1875,4.197,2102,4.197,2249,5.215,2399,4.963,2710,7.921,2952,5.545,3434,6.385,3435,5.545,3436,6.027,3437,6.93]],["title/757",[1139,5.075]],["content/757",[18,1.09,35,3.523,55,2.198,65,3.217,74,2.136,145,3.263,194,2.737,229,3.523,279,1.612,406,4.762,408,5.59,426,5.574,477,2.556,537,4.851,655,3.351,683,4.544,900,3.847,1543,6.259,1565,4.687,1780,5.277,1866,5.981,3438,6.631]],["title/758",[2317,5.715]],["content/758",[6,2.695,8,1.771,55,2.238,65,3.246,107,4.559,249,3.534,250,5.675,251,5.032,252,5.372,254,4.497,460,2.415,466,2.982,493,3.162,793,3.381,889,2.799,1534,4.092,1589,3.45,1767,4.625,2317,5.134,2638,3.705,3435,5.863,3439,6.751,3440,4.092,3441,7.326,3442,7.326,3443,7.326,3444,7.326,3445,4.923,3446,4.923]],["title/759",[12,3.326,2317,4.539]],["content/759",[8,1.653,12,3.328,18,0.981,24,1.624,37,2.151,55,1.979,65,2.666,101,2.082,109,2.417,131,1.494,142,1.747,225,2.935,249,3.823,250,5.019,251,4.451,252,3.071,254,3.977,255,5.249,460,1.38,466,2.537,493,2.797,494,7.481,521,1.95,526,1.863,581,1.863,605,4.865,620,2.571,621,1.7,900,1.682,1143,2.504,1165,2.169,1659,7.15,1731,2.935,1780,3.071,1848,3.152,1875,2.537,2207,3.481,2317,4.541,2349,2.935,3447,3.859,3448,3.481,3449,4.188,3450,4.188,3451,4.188,3452,4.188,3453,3.859,3454,4.188]],["title/760",[65,1.197,2317,2.806,2710,2.806,2952,3.204,3435,3.204]],["content/760",[8,1.385,18,1.257,55,1.786,61,3.3,65,3.545,74,1.735,107,3.638,108,2.301,145,2.651,194,2.223,251,4.016,406,2.907,408,3.413,466,3.541,493,2.524,537,3.941,548,4.529,549,3.748,556,3.748,585,3.691,1116,2.668,1131,3.232,1565,3.807,1595,4.679,2059,4.287,2317,4.098,2710,4.098,2952,4.679,3158,7.22,3435,4.679,3439,5.387,3440,4.859,3455,5.846,3456,5.387,3457,5.387]],["title/761",[152,2.735,2710,3.764,3436,4.671]],["content/761",[3,1.741,8,1.783,12,3.217,18,0.607,35,1.963,37,2.059,55,1.224,65,3.129,69,1.337,100,2.897,107,2.495,145,1.818,152,4.438,225,2.809,249,1.934,250,3.105,251,4.302,254,2.46,308,1.892,406,1.993,450,3.363,460,2.541,466,3.793,493,2.703,494,4.593,621,1.627,900,1.61,1139,3.898,1659,5.402,2059,4.593,2082,2.495,2207,6.406,2317,5.402,2710,4.389,2952,3.208,3435,5.012,3436,5.447,3440,3.331,3447,3.694,3448,3.331,3456,3.694,3457,3.694,3458,6.263]],["title/762",[142,3.402]],["content/762",[8,1.838,18,0.948,55,1.224,63,2.094,65,2.825,88,1.672,99,1.866,100,2.897,104,1.678,105,2.397,112,1.301,114,2.081,115,1.752,117,3.105,118,3.017,142,3.634,255,2.654,279,0.898,307,2.61,460,2.541,484,2.089,485,1.906,488,2.152,493,2.703,494,2.94,519,2.34,621,1.627,623,3.745,685,3.694,761,2.287,767,2.753,900,1.61,960,3.017,1054,5.517,1750,3.208,1780,2.94,2037,3.331,2207,5.205,3459,3.694,3460,4.008,3461,4.008,3462,3.486,3463,4.008,3464,4.008,3465,4.008,3466,4.008]],["title/780",[18,0.981,74,1.922]],["content/780",[18,1.663,28,2.825,131,3.179,228,5.739,279,1.997,470,4.502,981,5.901,1106,3.265,1722,5.264,3467,8.911]],["title/781",[1097,6.526]],["content/781",[18,1.831,48,2.635,49,2.128,69,1.337,74,2.973,102,2.042,104,2.533,109,3.614,131,2.75,182,4.941,183,4.609,306,1.783,313,1.594,321,2.753,379,1.934,398,4.678,450,3.363,454,1.379,516,2.428,557,1.906,657,1.594,714,3.718,889,1.532,899,3.105,956,2.009,1106,1.469,1110,3.105,1131,2.216,1190,2.076,1386,2.34,1485,2.61,1585,3.694,1701,2.94,1817,3.694,1849,3.486,1872,2.871,1878,3.694,2077,2.871,2193,3.486,2292,2.495,2796,2.569,3049,3.694,3078,3.331,3287,3.694,3468,4.008,3469,4.008,3470,4.008,3471,3.694,3472,4.008]],["title/782",[18,0.981,113,3.545]],["content/782",[8,1.883,12,0.572,18,1.277,19,2.351,47,2.111,48,2.239,49,2.327,50,0.577,51,1.415,52,0.908,53,1.324,55,0.883,61,1.166,63,2.513,64,0.402,65,0.864,69,1.204,74,0.33,82,0.549,104,0.774,112,1.171,113,1.131,114,1.2,115,1.01,131,3.078,132,4.942,133,2.642,134,0.598,135,4.106,136,1.6,141,1.206,142,0.862,143,1.443,145,1.311,148,0.628,150,1.436,151,3.589,152,2.449,169,1.019,175,1.903,176,0.47,181,2.026,182,1.853,183,1.728,184,0.674,185,0.931,332,1.049,374,0.816,375,1.921,376,0.75,377,1.631,378,1.154,379,0.537,380,2.684,406,0.553,415,1.004,421,0.714,443,0.666,453,1.324,454,0.636,487,0.838,497,0.75,504,0.603,516,0.674,520,0.666,523,0.703,536,0.838,538,0.423,548,1.6,582,0.982,641,1.019,655,1.977,683,0.703,688,0.635,691,0.577,692,0.968,721,3.724,760,0.862,873,0.816,912,0.642,942,0.765,1008,1.649,1045,0.587,1048,0.635,1071,0.635,1133,0.577,1137,0.75,1144,2.107,1174,0.75,1254,1.192,1257,0.797,1540,0.642,1563,0.642,1582,0.78,1583,1.448,1588,0.838,1589,0.78,1595,1.653,1626,1.304,1627,1.419,1646,2.717,1647,0.533,1659,0.78,1731,0.78,1770,0.891,2102,0.674,2779,0.968,2796,0.714,3057,1.026,3065,2.663,3473,0.968,3474,1.113,3475,0.968,3476,1.113,3477,1.113,3478,1.113,3479,1.113,3480,1.113,3481,1.113,3482,1.113,3483,1.113,3484,1.113]],["title/783",[18,0.981,1646,4.874]],["content/783",[]],["title/784",[18,0.981,131,2.31]],["content/784",[]],["title/763",[18,0.981,55,1.978]],["content/763",[18,1.747,28,3.435,55,3.309,134,2.797,150,2.899,314,5.34,406,3.624,454,1.605,621,2.96,858,4.603,1144,4.255,1404,5.109,1624,8.028,1647,3.491,2223,6.717,2705,6.717]],["title/764",[28,2.053,134,1.875]],["content/764",[18,1.288,28,2.697,134,3.54,150,3.382,241,3.061,600,5.221,889,3.25,900,3.417,956,4.262,1174,5.733,1730,5.37,1742,5.539]],["title/765",[28,2.053,3485,6.476]],["content/765",[18,1.441,51,4.659,134,2.755,240,5.062,600,5.84,720,3.162,1202,7.161,3486,9.515]],["title/766",[28,2.053,3487,6.476]],["content/766",[18,1.417,99,4.357,134,2.709,492,4.015,1177,4.806,1202,7.042,3488,8.622,3489,8.622,3490,9.356]],["title/767",[28,2.053,3491,6.476]],["content/767",[18,1.328,64,3.171,100,5.031,107,6.769,380,4.431,1116,4.003,1202,6.601,1764,5.809,2278,6.794,3488,8.083,3489,8.083]],["title/768",[28,2.053,218,3.414]],["content/768",[18,1.181,64,2.818,74,2.314,112,2.53,145,4.577,150,3.1,218,4.11,241,2.806,493,3.365,683,4.922,720,2.59,956,3.907,1116,3.558,1184,4.148,1742,6.574,1763,6.239,1776,4.226,1835,5.163,2349,5.464]],["title/769",[28,2.053,3492,6.476]],["content/769",[18,1.731,76,6.197,218,5.016,380,4.807,1202,7.161,1764,6.301,3493,9.515]],["title/770",[28,2.053,3494,5.967]],["content/770",[18,1.371,130,5.996,134,2.622,143,3.619,150,3.6,588,4.574,657,3.6,849,6.903,956,4.538,1373,7.525]],["title/771",[28,2.053,3495,6.476]],["content/771",[18,1.394,130,6.095,134,2.665,454,2.026,557,4.376,849,5.727,1327,6.095,1373,7.649,1729,7.365,3494,8.48]],["title/772",[28,2.053,377,3.655]],["content/772",[1962,8.641]],["title/773",[888,3.877]],["content/773",[18,1.441,64,3.44,65,2.844,454,2.095,484,3.174,900,4.592,3496,9.515]],["title/774",[3497,8.155]],["content/774",[18,1.546,47,5.075,655,4.753,888,4.853]],["title/775",[142,3.402]],["content/775",[18,1.441,150,3.783,152,4.847,517,5.418,2132,6.301,2133,7.161]],["title/776",[65,2.437]],["content/776",[18,1.575,65,3.108,655,4.841]],["title/777",[148,4.603]],["content/777",[18,1.767,169,4.859,375,5.24,890,5.501,1838,5.24]],["title/778",[112,2.646]],["content/778",[18,1.518,61,5.659,145,4.546,150,3.986,517,4.433]],["title/779",[115,2.282]],["content/779",[3,4.353,18,1.518,115,2.805,143,4.007,150,3.986]],["title/785",[64,2.341,65,1.936]],["content/785",[48,2.312,64,2.445,134,1.958,176,2.853,251,4.645,279,1.515,482,2.238,485,3.215,487,5.089,488,3.631,492,2.902,507,3.702,600,4.151,657,2.689,900,2.717,1097,5.412,1170,4.404,1541,5.238,1545,3.817,1818,4.096,1972,6.231,2670,4.558,2720,7.634,2936,4.404,3109,5.238,3334,5.238,3498,6.762,3499,6.762,3500,6.762,3501,6.231,3502,6.762]],["title/786",[65,1.371,3503,4.587,3504,4.587,3505,4.587]],["content/786",[18,1.037,32,2.463,65,2.046,134,2.681,229,3.351,311,2.824,483,4.614,492,2.937,524,2.824,531,2.921,574,2.99,600,4.201,773,3.546,1022,4.702,1035,3.675,1170,4.458,1545,3.864,1844,5.151,2951,4.458,3109,5.302,3219,5.151,3501,6.307,3506,6.845,3507,9.128,3508,6.845,3509,6.845,3510,6.845,3511,6.845]],["title/788",[279,1.203,499,2.969,2731,3.442]],["content/788",[28,2.697,148,4.801,194,3.235,279,1.906,313,3.382,477,3.021,574,3.715,864,5.539,892,5.293,1025,3.832,1055,5.633,1482,5.37,2784,4.484,3125,7.398,3512,7.837]],["title/789",[3010,7.093]],["content/789",[74,2.221,148,5.548,454,1.648,488,4.019,499,4.138,515,4.658,527,5.141,720,2.487,1035,4.019,1045,3.946,1063,4.658,1185,4.658,1482,4.725,1811,6.896,1868,5.245,2201,5.045,2844,6.22,3017,5.633,3027,5.797,3427,6.896,3513,7.484,3514,6.896,3515,7.484]],["title/790",[2668,5.715]],["content/790",[18,1.118,307,4.81,375,3.929,376,4.978,517,3.266,574,3.226,657,2.937,827,3.966,889,2.822,1087,3.701,1116,3.371,1482,4.663,1540,4.262,1545,4.169,1573,4.978,1838,3.929,1839,4.963,2784,6.112,3010,6.424,3428,8.978]],["title/791",[313,3.242]],["content/791",[28,1.483,74,2.092,112,2.287,131,2.515,148,3.979,194,1.779,279,1.048,306,2.081,313,3.374,440,2.612,482,1.548,499,2.586,521,2.178,684,3.261,720,2.342,743,3.278,793,3.212,890,2.612,896,2.699,898,2.56,908,4.519,939,3.52,1008,2.669,1025,2.107,1038,2.444,1045,2.465,1055,3.097,1063,2.911,1079,3.35,1081,2.911,1106,2.583,1126,3.52,1344,3.35,1482,2.953,1632,3.743,1708,3.152,1709,2.953,1868,3.278,2102,2.833,2292,2.911,2784,4.98,2857,3.278,3024,3.887,3050,3.743,3051,3.743,3198,5.049,3246,4.068,3328,3.887,3512,4.309,3516,4.677,3517,4.677,3518,4.677,3519,4.677,3520,4.677,3521,4.309]],["title/792",[1477,3.78,3522,6.476]],["content/792",[8,0.579,18,0.611,28,1.997,64,1.459,74,1.198,111,2.232,112,1.31,148,4.937,185,1.819,194,1.535,279,1.411,460,1.331,482,1.336,488,2.168,492,1.733,493,1.743,557,1.92,581,1.796,582,1.92,620,2.478,621,1.639,657,1.605,793,2.773,905,2.83,908,2.588,956,2.023,994,2.588,1025,2.838,1038,2.11,1046,3.72,1055,2.674,1106,1.479,1114,3.355,1116,1.843,1131,2.232,1185,2.513,1249,2.961,1477,2.357,1482,2.549,1737,2.83,1750,6.197,1757,3.231,1839,2.056,1967,3.355,1991,3.72,2205,3.231,2403,3.231,2784,5.298,2798,3.355,2951,6.835,3168,3.511,3198,5.546,3231,3.72,3433,3.72,3514,3.72,3523,4.037,3524,5.803,3525,4.037,3526,7.743,3527,4.037,3528,4.037,3529,4.037,3530,4.037,3531,4.037]],["title/793",[1582,5.715]],["content/793",[8,0.465,74,0.963,112,1.052,114,1.078,115,0.908,148,4.36,150,1.29,279,0.727,332,1.178,421,4.292,482,1.073,485,1.542,486,1.6,488,2.84,499,5.044,524,1.338,531,2.857,540,4.434,555,4.873,557,1.542,582,2.515,620,1.991,626,2.867,666,2.718,688,1.851,695,2.048,720,1.757,761,1.851,859,2.148,891,1.758,900,1.303,905,2.273,908,2.079,915,1.48,1008,1.851,1029,1.94,1042,2.512,1081,2.019,1093,3.565,1119,3.444,1184,1.726,1209,4.434,1213,2.186,1224,2.596,1393,2.821,1395,3.502,1482,2.048,1502,2.048,1536,2.821,1659,2.273,1675,3.565,1680,2.989,1697,2.696,1796,2.989,1838,4.109,1839,1.652,2096,2.148,2102,1.965,2107,2.989,2135,2.441,2201,2.186,2663,2.323,2742,4.796,2784,4.484,2863,5.039,3198,3.788,3206,2.228,3473,2.821,3532,3.244,3533,3.244,3534,3.244,3535,2.989,3536,3.244,3537,3.244,3538,3.244,3539,2.989,3540,3.244,3541,3.244,3542,3.244,3543,5.289,3544,2.696,3545,3.244]],["title/794",[1079,4.638,2698,5.382]],["content/794",[]],["title/795",[567,4.089,3546,6.476]],["content/795",[510,4.166,521,3.901,524,3.457,540,5.548,567,5.29,574,3.66,604,5.371,907,5.456,1209,5.548,1839,5.383,2746,6.963,2784,5.572,2982,6.963,3547,8.378]],["title/796",[574,3.562]],["content/796",[454,2.026,510,4.576,551,5.14,562,4.942,574,4.02,607,6.321,1185,5.727,1839,4.688,2698,7.649,2784,4.852]],["title/797",[3548,7.514]],["content/797",[8,1.006,249,3.384,378,5.936,482,2.322,499,3.879,524,2.895,531,2.994,551,3.919,565,4.196,566,4.729,567,5.945,603,5.28,623,4.196,626,3.803,888,3.336,1038,3.666,1096,4.819,1242,4.144,1545,3.96,1645,4.819,1819,4.819,2102,4.25,2784,3.699,2785,5.435,2936,4.569,3549,6.102]],["title/787",[1645,4.448,1839,3.298]],["content/787",[131,1.711,148,2.708,233,3.014,279,1.93,454,1.582,485,2.281,499,2.652,537,3.233,551,4.812,565,2.868,566,3.233,583,3.518,600,2.944,657,1.907,695,4.537,712,2.314,777,2.905,889,1.833,905,3.362,1025,2.161,1029,2.868,1033,3.362,1069,2.529,1092,3.436,1106,1.757,1131,2.652,1251,3.233,1276,3.362,1583,3.362,1620,2.348,1635,2.679,1645,4.935,1675,3.233,1838,2.552,1839,5.68,1854,3.987,1882,3.61,2752,3.987,2781,4.42,2784,4.542,3224,3.839,3275,4.42,3550,4.797,3551,4.797,3552,4.797,3553,4.797,3554,4.797,3555,4.797,3556,4.797,3557,4.797]],["title/798",[249,2.59,1096,3.689,1838,2.857]],["content/798",[104,1.88,163,5.025,249,4.542,375,3.733,477,2.492,488,3.767,521,3.267,536,5.28,657,2.79,1006,4.366,1008,4.004,1025,3.161,1038,3.666,1096,4.819,1482,4.43,1563,4.049,1583,4.917,2015,5.025,2418,4.729,2784,5.603,2785,5.435,2863,5.28,3279,6.465,3549,6.102,3558,7.016,3559,7.016]],["title/799",[3549,7.093]],["content/799",[24,2.113,55,1.664,74,1.617,88,2.273,104,1.46,134,2.285,148,3.076,175,2.873,249,3.807,279,1.768,454,2.24,495,2.799,585,3.44,624,2.926,657,2.167,664,2.537,695,3.44,720,1.81,1038,2.847,1096,5.421,1107,4.101,1233,3.109,1265,3.493,1393,4.739,1502,3.44,1528,3.743,1713,6.56,2067,4.221,2201,3.673,2784,4.892,2785,4.221,3136,4.739,3560,5.449,3561,5.449,3562,4.739,3563,5.021,3564,4.739,3565,5.449,3566,5.021,3567,5.449,3568,5.449,3569,5.021]],["title/800",[148,3.031,378,3,720,1.784]],["content/800",[18,1.247,55,2.516,74,2.444,148,4.649,421,5.279,470,4.161,657,3.275,664,3.835,1107,6.198,1116,3.759,1233,5.966,1593,6.04,2660,4.6,2784,4.342,2785,6.379,2786,4.104,2788,4.104,3349,10.509,3563,7.589,3564,7.163,3566,7.589,3569,7.589,3570,4.454]],["title/801",[3571,6.317]],["content/801",[18,0.914,148,3.407,279,1.352,313,3.376,441,6.794,458,3.211,482,1.997,495,3.1,529,2.81,549,3.868,559,3.1,568,3.337,605,3.704,655,2.81,900,2.425,1060,4.542,1087,3.024,1096,4.145,1242,5.015,1620,2.955,1693,5.016,1713,5.016,1741,5.016,1790,5.249,1838,3.211,2784,5.619,2855,5.249,2857,4.23,2964,5.561,3119,5.016,3237,5.249,3562,7.384,3564,7.384,3571,4.675]],["title/802",[460,2.135,1242,3.825]],["content/802",[49,2.134,50,2.743,61,2.989,78,2.817,131,1.889,176,2.233,454,1.702,477,1.881,522,4.4,536,3.985,551,2.957,565,5.459,581,2.356,588,2.675,641,2.612,666,2.15,858,3.343,896,3.055,1091,3.985,1096,6.271,1104,3.448,1242,6.306,1595,4.237,1620,3.784,2160,6.424,2201,3.569,2650,4.101,2785,5.987,3251,7.123,3562,6.723,3572,5.295,3573,7.73,3574,5.295,3575,5.295,3576,5.295,3577,5.295,3578,5.295,3579,5.295,3580,5.295]],["title/803",[74,1.361,621,1.862,664,2.136,1242,2.71]],["content/803",[18,1.139,28,1.618,49,2.903,50,2.643,74,1.514,131,1.82,134,1.477,145,2.314,150,2.029,162,3.051,176,2.152,376,3.439,454,1.656,505,2.094,516,3.09,520,5.343,546,2.88,551,2.85,565,3.051,581,2.27,600,3.132,624,2.74,657,2.029,666,3.054,672,2.74,889,1.95,916,2.944,1242,5.825,1254,2.944,1838,4.002,1839,2.599,2301,3.576,2784,2.69,2796,3.27,2863,3.84,3571,7.639,3581,5.102,3582,5.102,3583,5.102,3584,5.102,3585,5.102,3586,5.102,3587,4.701]],["title/804",[375,3.445,1838,3.445]],["content/804",[18,1.25,74,2.45,148,4.66,279,2.346,454,1.817,482,2.732,499,4.564,646,3.719,891,4.475,942,5.67,976,3.844,1485,5.376,1838,4.392,2784,4.352,2857,5.786,3328,6.861]],["title/805",[18,0.981,891,3.51]],["content/805",[8,1.797,18,1.394,37,1.226,84,1.531,100,1.104,103,1.946,104,2.238,112,2.065,145,2.436,148,1.348,150,1.627,184,1.446,247,3.17,332,0.867,379,1.974,400,1.206,406,2.035,416,2.969,421,2.623,460,2.098,478,1.911,486,1.178,493,1.031,517,1.056,524,0.985,526,1.821,551,1.334,562,1.282,587,1.025,603,1.797,620,1.466,624,2.884,626,4.234,743,1.673,768,2.077,796,3.032,829,1.911,889,0.912,899,1.849,1029,1.428,1210,2.2,1327,1.581,1483,2.077,1486,2.2,1644,1.751,1659,4.461,1676,1.849,1721,1.64,1724,1.64,1831,1.911,1837,1.911,1838,1.27,1863,1.71,1997,1.751,2249,1.797,2748,2.077,2784,3.356,3091,3.771,3448,1.984,3473,4.671,3588,5.371,3589,2.388,3590,2.388,3591,2.388,3592,3.771,3593,4.093,3594,6.365,3595,2.388,3596,2.388,3597,4.093,3598,2.388,3599,4.093,3600,2.388,3601,2.388,3602,2.388,3603,2.388,3604,2.388,3605,6.365,3606,4.093,3607,5.371,3608,2.388,3609,4.093,3610,4.093,3611,2.2]],["title/806",[145,2.937,3328,5.382]],["content/806",[6,2.133,18,1.146,54,2.581,74,1.818,99,1.815,104,1.044,108,1.534,112,1.988,131,1.39,134,1.774,145,2.778,148,2.2,279,1.373,306,1.734,400,1.969,409,1.985,412,2.731,436,2.092,440,3.422,441,3.119,479,2.498,482,1.29,499,3.387,557,2.913,564,3.019,620,2.392,623,3.663,624,5.008,626,5.056,639,1.468,714,1.88,757,3.387,859,2.581,896,2.249,907,4.929,916,2.249,1011,3.239,1029,2.33,1071,2.224,1106,1.428,1116,1.779,1121,2.302,1147,2.933,1157,2.155,1162,3.119,1184,2.073,1485,2.538,1573,2.627,1591,2.858,1620,3.706,1725,3.239,1819,2.677,1838,2.073,1866,3.239,1875,2.36,2249,2.933,2663,2.791,2784,4.917,2857,4.293,2863,2.933,2982,3.239,3410,3.389,3612,2.933,3613,3.897]],["title/807",[1190,3.355,2784,3.414]],["content/807",[18,1.45,74,2.136,99,3.351,134,2.084,308,3.397,395,4.417,477,2.556,524,2.969,624,5.142,684,3.328,695,4.544,889,2.75,907,4.687,1060,5.416,1116,3.285,1190,4.961,1423,4.613,1604,6.259,1620,3.523,1662,4.479,1838,3.828,2418,4.851,2784,5.049]],["title/808",[2784,3.414,3614,6.476]],["content/808",[8,1.182,18,1.248,88,2.414,99,2.694,112,2.674,134,1.675,143,2.312,162,3.46,184,3.505,380,2.923,395,3.551,460,1.907,466,3.505,482,1.915,505,2.374,624,4.425,665,3.768,976,2.694,994,3.709,1015,3.232,1742,3.768,1819,3.974,1845,4.144,2349,4.055,2483,5.032,2605,7.593,2677,5.332,2710,5.776,2784,5.06,2790,4.482,3122,5.332,3338,5.032,3592,5.332,3615,8.348,3616,5.786,3617,5.786]],["title/809",[666,2.18,1838,2.857,2742,3.846]],["content/809",[143,2.952,279,1.655,375,3.929,454,1.626,482,2.444,486,3.644,499,4.083,505,3.031,507,4.043,531,3.151,552,4.891,573,4.363,588,3.731,890,4.125,976,3.439,1209,4.891,1475,4.81,1838,3.929,1839,3.762,1875,4.474,2721,5.558,2741,6.138,3206,5.073,3618,7.386,3619,5.558]],["title/810",[3619,6.137]],["content/810",[]],["title/811",[108,1.576,684,1.852,1209,2.651,1839,2.039,3206,2.75]],["content/811",[0,1.422,8,0.45,18,0.99,48,1.758,49,0.865,69,1.716,74,0.93,84,2.009,88,1.308,141,1.83,142,1.308,145,2.332,150,2.045,185,1.412,229,1.535,241,1.851,249,2.481,279,1.152,310,1.597,407,2.153,446,3.448,450,1.683,454,0.69,470,1.584,477,1.827,482,2.164,484,1.046,520,1.875,526,1.395,538,1.192,556,3.297,557,2.445,558,2.359,568,1.733,581,1.395,587,2.207,592,1.61,624,1.683,626,3.545,641,1.547,650,2.299,691,1.624,720,2.173,790,2.042,851,2.428,888,2.445,889,1.198,898,2.815,908,2.009,917,1.875,1025,1.412,1054,1.83,1096,2.153,1139,3.201,1209,3.406,1242,3.038,1254,2.968,1376,2.245,1401,4.473,1403,3.002,1838,1.668,1839,4.255,1850,2.153,1874,1.751,1887,2.605,2015,2.245,2048,2.428,2649,1.924,2660,1.751,2784,3.448,2789,2.727,2791,2.605,2796,2.009,2945,2.727,2973,2.245,3206,7.424,3338,2.727,3620,3.135,3621,3.135,3622,3.135,3623,2.889,3624,3.135,3625,3.135]],["title/812",[1190,2.782,1209,3.556,3206,3.689]],["content/812",[18,1.346,20,2.552,48,1.421,74,1.234,88,4.01,112,1.349,142,1.734,145,1.885,148,2.346,150,2.562,185,1.873,241,2.319,279,0.931,309,2.1,395,2.552,436,2.232,446,4.159,454,0.915,458,2.211,477,2.802,482,2.94,484,1.387,531,2.749,556,2.665,557,1.976,558,3.128,587,2.765,603,3.128,624,2.232,684,1.923,691,2.153,720,1.381,791,2.977,851,3.22,889,1.588,1061,2.552,1101,2.298,1188,3.128,1190,4.603,1254,2.399,1597,2.913,1603,3.455,1678,3.128,1839,2.117,1850,2.855,1874,2.322,1887,6.556,2591,3.455,2649,2.552,2660,2.322,2664,2.455,3206,6.986,3612,3.128,3623,3.83,3626,4.157,3627,4.157]],["title/813",[1190,2.782,1242,3.172,3571,4.16]],["content/813",[0,2.086,18,1.665,20,2.823,48,1.573,49,1.922,51,2.252,74,1.365,88,2.904,142,1.919,145,2.086,185,2.073,279,1.031,306,2.047,446,3.67,454,1.013,482,1.522,484,1.535,520,4.164,531,1.963,556,2.949,557,2.187,558,3.462,587,2.988,624,4.51,664,2.142,684,2.128,691,2.383,720,1.528,851,3.563,889,1.758,1061,2.823,1096,3.16,1101,2.543,1190,5.213,1242,6.253,1254,4.847,1603,3.823,1839,2.343,1874,2.569,2649,2.823,2660,2.569,2664,2.717,3206,6.434,3571,3.563]],["title/814",[1209,3.556,3206,3.689,3615,4.671]],["content/814",[18,1.586,20,3.103,74,1.5,88,3.117,142,2.109,185,2.278,279,1.133,310,2.575,446,3.939,454,1.113,482,1.673,484,1.687,505,2.075,521,2.354,531,2.157,556,3.241,557,2.404,587,3.207,624,4.012,684,2.338,691,2.619,720,1.68,851,3.916,889,1.932,1061,3.103,1101,2.795,1190,3.871,1209,4.948,1254,2.917,1603,4.202,1839,2.575,1874,2.824,2048,3.916,2649,3.103,2660,2.824,2871,3.621,3206,7.793,3243,3.916,3615,9.538]],["title/815",[241,1.651,1133,2.376,1209,3.038,3628,4.227]],["content/815",[18,0.934,88,3.596,113,3.376,145,3.909,150,2.452,194,2.346,241,2.22,380,3.116,482,2.041,505,2.531,517,2.727,566,4.157,626,4.673,666,2.504,976,2.872,1106,3.641,1115,3.519,1242,5.092,1662,3.838,1737,4.323,1751,4.642,1839,4.391,2647,5.126,2660,4.815,2784,4.545,2858,5.364,2973,6.174,3571,4.777,3629,6.168,3630,5.683]],["title/816",[1838,3.445,3631,5.967]],["content/816",[71,2.469,141,4.615,279,1.771,310,4.027,484,2.637,531,3.373,563,4.511,615,5.068,691,4.095,898,4.328,942,5.431,1661,5.663,1838,4.206,2660,4.416,2661,4.328,2945,6.876,3630,7.285,3631,9.386,3632,7.906]],["title/817",[3548,7.514]],["content/817",[1,4.722,18,1.181,135,4.004,145,4.577,484,2.601,486,4.98,568,4.31,664,3.63,892,4.852,1106,2.857,1259,7.184,1395,5.163,1502,4.922,1838,4.148,1859,6.48,1887,6.48,2049,4.722,2792,6.781,3628,7.184]],["title/818",[551,2.236,565,2.394,566,2.698,567,2.528,1838,2.13]],["content/818",[194,3.007,279,1.771,454,1.741,482,2.616,543,5.663,551,4.416,557,3.759,565,4.728,594,5.068,596,6.876,598,6.124,626,4.286,1475,5.149,1675,5.329,1838,4.206,1839,4.027,2721,5.95,2741,6.571,2784,4.168,3633,7.285]],["title/819",[104,1.439,332,1.95,1838,2.857]],["content/819",[8,1.088,104,2.96,331,4.073,332,3.6,454,2.579,493,3.274,513,4.073,565,4.536,659,3.354,672,5.324,688,4.328,698,3.274,1838,4.035,2680,6.304,2800,6.597,3634,7.585]],["title/820",[1838,3.445,1839,3.298]],["content/820",[8,1.568,18,1.771,28,0.903,37,1.463,64,1.03,74,0.845,99,1.326,113,1.559,131,2.18,142,1.188,145,2.154,162,3.655,185,3.214,310,3.634,454,1.571,460,0.939,484,0.95,517,1.259,521,1.326,526,2.719,540,1.886,563,1.625,565,2.841,600,1.748,603,2.144,620,2.916,621,1.156,626,2.575,639,1.073,641,1.405,657,1.133,672,4.258,719,1.855,867,1.703,888,1.354,898,1.559,900,2.456,916,3.527,956,1.427,1054,1.663,1076,1.644,1116,1.3,1132,3.752,1133,3.166,1190,1.475,1595,2.279,1619,2.367,1674,4.378,1838,1.515,1839,4.363,1857,2.367,1874,1.591,1882,2.144,2082,2.957,2679,5.08,2681,3.576,2784,3.222,2792,2.477,2798,2.367,2800,2.477,3587,2.625,3635,2.848,3636,2.848,3637,2.848,3638,2.848,3639,2.848,3640,2.848,3641,2.848,3642,2.848,3643,2.848,3644,2.848,3645,2.848,3646,2.367]],["title/821",[279,1.203,545,2.535,2732,3.296]],["content/821",[64,2.78,65,2.298,101,3.823,153,7.086,279,1.723,313,3.057,482,2.545,485,3.656,490,5.092,500,5.647,545,3.63,574,3.359,695,4.855,889,2.938,1025,3.465,1045,4.054,1722,4.542,2020,4.855,2802,5.787,2807,5.282,2808,5.956]],["title/822",[49,1.788,1551,3.923]],["content/822",[]],["title/823",[108,1.576,115,1.12,379,1.931,2166,2.213,2813,2.75]],["content/823",[48,1.288,51,4.492,74,2.498,101,4.186,108,3.314,115,2.567,142,2.487,143,1.505,152,1.918,311,1.554,313,2.371,379,1.817,397,1.719,450,2.022,453,2.414,454,0.829,458,2.004,500,3.366,517,2.637,519,2.198,520,2.252,535,1.873,545,1.778,557,1.791,568,2.082,619,3.481,652,3.711,720,1.251,761,2.149,777,2.281,796,2.126,857,2.64,889,1.439,1016,2.494,1032,2.64,1080,3.276,1081,2.344,1087,2.988,1094,4.179,1155,3.765,1156,4.373,1198,3.802,1485,2.453,1502,2.378,1527,2.414,1575,2.042,1722,3.522,1828,2.917,1839,1.918,1850,2.587,1874,2.104,2166,4.654,2180,4.488,2676,3.13,2813,2.587,2814,3.13,2841,3.014,2842,5.302,2913,1.616,3089,3.47,3198,2.698,3612,2.834]],["title/824",[74,1.361,133,2.855,535,2.281,1152,2.536]],["content/824",[18,0.746,74,2.174,111,2.722,112,2.377,133,3.064,134,1.425,279,1.103,313,2.913,377,2.779,397,2.247,400,3.701,453,3.156,482,2.424,488,2.643,515,3.064,521,2.292,535,3.642,568,2.722,646,2.218,665,4.771,720,1.636,895,2.908,915,2.247,1018,3.813,1025,2.218,1055,3.26,1081,4.559,1094,5.134,1098,2.779,1156,5.372,1184,2.619,1198,4.977,1386,2.874,1528,3.381,1709,3.108,1722,4.327,1795,3.813,2077,3.526,2102,2.982,2261,2.669,2750,4.851,2813,5.032,2817,4.282,2842,3.526,2845,4.536,2846,4.282,3647,4.923]],["title/825",[279,1.451,2261,3.51]],["content/825",[36,2.113,51,3.531,65,2.156,74,1.715,101,2.873,104,0.97,107,2.253,108,1.425,114,1.203,115,1.617,133,2.253,142,1.51,152,2.943,184,2.193,233,1.519,279,1.616,308,2.728,311,2.384,314,2.002,379,1.746,397,1.652,450,1.944,470,1.829,477,1.286,482,1.912,484,1.928,524,2.384,535,2.873,545,2.728,592,1.859,619,2.113,646,2.604,652,2.253,688,2.066,715,2.537,827,1.944,885,2.725,896,2.089,915,2.638,980,3.336,1022,2.487,1052,1.829,1116,1.652,1133,1.875,1152,2.002,1155,2.286,1234,3.149,1251,2.44,1527,2.321,1564,4.625,1593,2.655,1620,2.829,1647,1.734,1724,2.487,1839,2.943,1874,4.028,2096,2.398,2111,3.149,2166,3.195,2261,4.463,2813,3.969,2842,4.139,2913,3.533,3186,3.149,3462,3.149,3648,7.212,3649,3.62,3650,3.149,3651,3.336]],["title/826",[279,1.451,2261,3.51]],["content/826",[12,1.359,35,1.296,51,4.04,65,1.335,101,2.882,114,0.879,115,2.128,135,3.497,142,1.104,151,2.78,176,1.116,184,1.603,233,2.431,241,0.953,279,1.001,308,1.25,310,1.348,311,1.843,332,0.961,379,2.155,425,2.439,450,1.421,477,1.587,482,0.876,484,1.49,492,1.136,500,1.494,524,3.138,535,4.777,545,1.25,592,1.359,646,2.612,652,1.647,720,2.527,760,2.05,761,1.51,827,2.399,857,1.855,895,1.563,900,2.329,915,1.208,976,1.232,1022,1.818,1069,1.395,1085,1.992,1087,1.326,1104,1.724,1165,1.371,1182,2.302,1185,1.647,1190,1.371,1233,1.51,1564,2.118,1575,2.422,1586,2.302,1620,2.838,1623,2.302,1647,1.267,1684,2.05,1737,1.855,1828,2.05,1845,1.896,1859,2.2,1864,2.118,1874,3.803,2077,1.896,2102,1.603,2166,2.47,2229,2.05,2261,4.123,2663,4.152,2797,1.753,2813,5.668,2842,5.91,2847,2.439,2913,4.263,2936,1.724,3462,2.302,3650,2.302,3651,2.439,3652,2.302,3653,4.467,3654,2.647,3655,2.05]],["title/827",[505,3.346]],["content/827",[0,2.86,154,3.419,378,3.522,395,3.871,454,1.927,481,4.885,508,6.42,510,3.136,513,3.386,531,3.735,539,3.487,574,3.824,624,3.386,720,2.095,757,3.487,827,4.701,911,4.332,945,3.771,1069,3.325,1251,4.251,1551,3.82,1653,4.176,2418,4.251,2732,3.871,2796,4.042,2821,5.485,2884,3.639,3079,4.746,3139,5.241,3197,4.625,3656,5.485,3657,6.306,3658,5.485]],["title/828",[114,1.524,115,1.283,584,3.286,2261,2.487]],["content/828",[114,2.87,115,2.416,194,3.284,313,3.434,482,2.858,584,7.716,1015,4.824,2261,4.682,2835,7.958,2836,7.178,2837,7.958,2838,7.178,2839,7.958]],["title/829",[3659,6.526]],["content/829",[241,3.608,624,5.383,1189,7.352,1835,6.639,3659,8.023]],["title/830",[2732,3.975,3619,4.874]],["content/830",[0,1.844,49,1.123,88,3.245,101,2.022,115,1.138,143,1.625,154,2.204,176,1.715,194,1.547,279,1.967,311,1.678,395,2.496,454,0.895,484,2.929,499,3.502,502,4.439,505,2.599,507,2.226,531,4.3,535,2.022,545,2.99,552,2.693,568,2.248,573,3.741,581,1.809,588,2.054,594,2.607,907,2.648,915,1.856,1015,2.271,1038,2.125,1132,2.496,1190,2.106,1423,2.607,1475,2.648,1547,3.06,1551,2.463,1847,3.254,2015,2.913,2162,4.536,2667,2.793,2721,4.766,2821,3.537,2824,4.439,2825,3.747,2827,3.15,2828,3.15,2829,3.15,2857,5.452,2874,3.537,2884,2.346,2908,3.747,2909,6.465,3660,3.747,3661,4.066,3662,6.333,3663,2.402,3664,2.793,3665,3.747,3666,3.747,3667,3.38]],["title/831",[479,4.151,615,4.151]],["content/831",[479,5.899,505,3.776,545,4.345,615,5.899,715,6.45,1724,6.321,2660,5.14,2661,5.038,2732,5.649,3668,8.48]],["title/832",[531,2.763,2649,3.975]],["content/832",[0,3.743,99,3.844,241,2.971,279,1.85,346,6.213,531,3.522,539,4.564,605,5.067,720,2.743,945,4.937,1143,4.937,1403,4.819,1499,5.564,2026,6.394,2649,5.067,2793,5.212,2974,7.18]],["title/833",[505,2.657,1069,3.414]],["content/833",[18,1.164,279,1.723,436,4.129,458,4.091,482,2.545,505,3.155,538,2.924,545,4.723,614,5.092,1115,4.388,1403,4.488,1438,5.282,1499,5.183,2180,7.529,2261,4.168,2649,4.72,2662,5.787,2663,5.508,3669,7.086,3670,6.688]],["title/834",[101,3.22,545,3.057]],["content/834",[18,1.164,97,4.388,142,4.173,169,3.794,241,2.767,279,1.723,310,3.917,446,4.054,484,2.565,545,3.63,592,3.949,619,4.488,646,3.465,652,4.785,827,4.129,1052,3.885,1157,4.251,1587,5.787,2049,4.658,2261,4.168,2932,6.154]],["title/835",[142,1.913,460,1.512,592,2.356,827,2.463]],["content/835",[1,2.93,3,2.101,55,1.478,65,2.161,100,2.238,104,1.938,142,2.018,184,2.93,185,2.18,194,1.84,229,2.369,241,1.741,279,1.62,308,2.284,311,1.996,377,2.731,407,3.323,482,3.18,484,2.412,507,2.648,545,3.414,563,4.941,573,2.858,581,2.153,588,3.653,624,2.598,652,3.011,714,2.334,827,2.598,948,2.93,976,2.253,1239,3.872,1403,2.824,1582,5.068,1593,3.548,1635,2.702,1656,2.623,1872,3.465,2049,2.93,2162,3.465,2261,3.92,2419,4.021,2664,6.075,2966,3.747,3012,3.747,3659,3.872,3671,3.641,3672,4.838]],["title/836",[169,2.263,310,2.336,621,1.862,827,2.463]],["content/836",[65,2.663,75,4.977,169,4.396,185,4.949,241,3.207,310,4.539,615,5.712,2049,5.397,2419,7.406,2912,6.902,3673,7.406]],["title/837",[142,1.913,526,2.041,827,2.463,1052,2.317]],["content/837",[18,1.36,100,2.381,104,1.38,115,1.441,131,1.837,142,3.747,171,2.971,241,1.853,279,1.154,305,3.988,307,3.353,308,2.431,310,3.857,407,3.537,440,2.876,446,2.714,474,3.079,484,3.304,508,3.776,519,3.005,545,2.431,646,4.047,683,4.782,719,3.353,720,1.711,851,5.866,915,2.35,1249,3.776,1587,5.699,1589,3.609,1656,2.791,1674,3.688,1874,2.876,2102,3.119,2162,3.688,2261,2.791,2796,3.3,2813,3.537,2957,4.478,3670,4.478,3674,5.149,3675,5.149,3676,5.149,3677,5.149,3678,5.149]],["title/838",[436,2.884,486,2.649,1438,3.689]],["content/838",[69,2.565,142,3.207,194,2.924,436,5.372,444,5.508,504,5.423,505,3.155,816,4.437,915,3.51,1069,4.054,1115,4.388,1147,5.787,1438,7.638,2060,5.639,2162,5.508,2399,5.508,3679,7.689,3680,7.689]],["title/839",[0,2.937,1403,3.78]],["content/839",[436,5.289,1107,7.413,1438,8.015,1521,7.223,1554,7.629]],["title/840",[142,2.24,233,2.253,665,3.497]],["content/840",[142,5.045,169,4.073,279,1.85,436,4.433,505,3.387,1377,4.66,1438,5.67,1653,5.467,2180,6.213,2910,6.861,3363,6.861,3670,7.18,3681,10.471]],["title/841",[646,2.918,2180,4.874]],["content/841",[18,0.934,65,1.844,100,2.853,104,2.31,131,2.2,185,2.779,308,2.912,310,3.141,393,3.559,400,4.355,440,3.445,454,1.358,482,2.041,484,2.876,507,3.376,557,2.933,563,3.519,583,4.523,621,2.504,646,2.779,715,4.323,915,2.815,1069,3.252,1674,4.418,1874,6.01,1921,4.237,2180,8.098,2349,4.323,3682,5.364,3683,6.168,3684,6.168]],["title/842",[535,3.22,551,3.617]],["content/842",[18,1.063,99,3.267,154,3.803,194,2.668,279,1.572,454,1.545,482,2.322,484,2.341,486,3.461,521,3.267,524,2.895,531,2.994,562,3.767,563,4.004,565,4.196,566,4.729,574,3.065,607,4.819,888,3.336,1008,4.004,1025,3.161,1059,4.366,1670,4.144,1675,4.729,1678,5.28,1711,4.25,1731,4.917,1842,5.831,2738,5.28]],["title/843",[594,5.227]],["content/843",[8,0.725,18,1.132,99,3.479,104,1.355,154,2.741,233,2.121,279,1.674,332,1.836,375,2.69,414,3.348,421,3.241,486,2.494,505,2.075,524,2.086,531,3.188,551,4.965,567,3.192,583,3.708,594,4.79,599,4.397,607,3.473,641,2.494,888,3.553,889,2.855,891,4.818,907,3.293,917,3.024,948,3.062,1061,6.026,1173,3.621,1658,4.202,1677,4.202,1743,3.805,1831,4.046,2649,3.103,2664,2.987,2721,3.805,2722,6.21,3667,4.202,3685,3.916,3686,5.056,3687,5.056,3688,5.056,3689,5.056,3690,5.056]],["title/844",[104,1.735,332,2.351]],["content/844",[24,2.982,52,4.397,104,2.681,332,2.792,379,4.826,397,3.51,415,4.861,421,4.929,672,4.129,686,5.909,698,3.319,889,2.938,894,6.872,948,4.658,1629,7.086,2672,7.086]],["title/845",[18,0.813,99,2.501,891,2.911]],["content/845",[18,1.811,35,2.216,55,2.838,64,1.636,65,1.353,99,3.873,134,1.31,142,3.469,162,4.113,229,4.072,241,1.629,397,2.066,398,2.43,454,0.996,470,2.286,492,1.942,493,1.954,517,3.041,581,2.014,657,2.734,664,2.107,672,3.693,698,2.968,720,1.504,889,1.729,900,1.818,917,2.707,948,2.741,1143,2.707,1568,3.319,1656,3.728,1730,2.858,1737,3.172,2049,2.741,2399,3.242,2418,3.051,2649,2.778,2661,3.764,2662,3.406,2664,4.913,2967,3.319,2969,4.17,3343,3.761,3691,3.622,3692,3.936]],["title/846",[64,2.341,142,2.701]],["content/846",[18,1.09,49,1.986,55,2.925,64,3.462,69,2.401,100,3.328,104,1.928,131,2.567,142,4.49,454,1.584,664,3.351,889,2.75,900,2.891,1072,5.759,1521,5.277,1670,4.251,1730,6.047,2661,3.939,2967,5.277,3693,5.154,3694,5.574,3695,6.259]],["title/847",[65,1.936,142,2.701]],["content/847",[65,3.559,104,2.388,105,5.329,142,3.717,450,4.785,657,3.543,849,5.546,1116,4.067,1224,7.131,2967,6.535]],["title/848",[152,4.154]],["content/848",[18,0.812,24,1.28,28,1.047,35,1.616,47,4.268,48,2.668,49,3.091,51,3.821,61,5.471,69,1.79,114,2.252,115,1.501,150,1.312,152,1.681,162,1.974,229,1.616,241,1.188,242,3.737,243,2.116,477,1.172,505,2.781,517,1.46,557,2.551,581,2.387,585,2.084,586,1.825,595,3.616,655,1.537,657,1.312,664,3.634,672,1.772,849,2.054,858,2.084,889,1.261,898,2.936,900,1.326,912,1.905,917,1.974,1015,1.844,1052,2.71,1106,1.209,1116,1.507,1139,2.054,1224,2.642,1487,3.042,1521,3.934,1582,3.76,1656,1.789,1730,4.279,1856,2.225,1865,2.557,2661,1.807,2664,1.95,2967,4.97,3693,6.149,3694,4.155,3695,4.666,3696,3.301,3697,5.364,3698,3.301,3699,3.042]],["title/849",[145,3.698]],["content/849",[18,1.181,55,2.381,145,4.577,229,3.817,589,4.186,643,7.074,889,2.979,898,4.267,2049,4.722,2057,6.48,2082,4.852,2967,8.209,3691,6.239,3693,5.584,3700,9.301,3701,7.184]],["title/850",[114,2.152,115,1.812]],["content/850",[18,1.149,55,2.317,114,3.295,115,2.774,229,3.714,589,4.073,643,6.949,889,2.899,898,4.152,2049,4.595,2057,6.304,2082,4.721,2967,8.101,3691,6.07,3693,5.433,3700,9.137,3701,6.99]],["title/851",[18,0.981,99,3.015]],["content/851",[18,1.371,585,5.717,664,4.216,859,5.996,917,5.415,1061,5.558,1730,5.717,2661,4.956,2967,6.64,3693,6.485,3699,8.343]],["title/852",[486,3.195,888,3.079]],["content/852",[18,1.024,52,2.972,99,3.149,162,5.493,219,4.012,397,3.087,450,3.631,486,3.336,505,3.769,589,3.631,657,2.689,664,3.149,672,4.932,688,3.859,888,5.563,889,2.584,898,3.702,900,2.717,1377,3.817,1656,3.666,2418,4.558,2649,4.151,2664,3.995,3263,6.231]],["title/853",[888,3.079,900,2.602]],["content/853",[454,1.993,477,3.216,505,3.715,672,4.862,720,3.008,888,5.274,900,4.456,2661,4.956,3693,6.485]],["title/854",[505,2.657,888,3.079]],["content/854",[64,3.075,69,2.837,219,4.661,505,4.378,517,3.761,858,5.37,888,5.073,900,3.417,948,5.152,1254,4.908,2661,4.656,3693,6.092]],["title/855",[8,0.658,219,2.004,586,2.536,1377,2.589]],["content/855",[3,3.125,55,2.198,69,2.401,219,5.478,249,4.62,440,4.02,477,3.402,671,3.939,900,3.847,916,4.152,948,4.359,1061,4.417,1072,5.759,1521,5.277,3693,6.86,3694,5.574,3695,6.259]],["title/856",[18,0.813,219,2.346,900,2.157]],["content/856",[18,1.661,37,3.314,162,3.858,219,4.792,307,4.201,397,2.945,477,2.291,517,2.853,549,4.135,672,3.464,686,3.811,698,2.785,888,3.067,894,4.431,900,3.573,942,4.431,1116,2.945,1563,3.723,1730,5.615,2049,3.908,2649,3.96,2661,3.531,2664,5.254,3693,6.37,3694,6.889]],["title/857",[279,0.897,551,2.236,565,2.394,566,2.698,1731,2.806]],["content/857",[37,4.061,103,3.759,169,3.901,194,3.007,279,1.771,440,4.416,454,1.741,537,5.329,551,4.416,562,5.469,565,6.739,566,5.329,604,5.068,721,5.541,1675,5.329,3071,7.285,3633,7.285]],["title/858",[2744,4.653]],["content/858",[143,3.299,421,5.292,470,4.17,479,5.292,537,5.564,539,4.564,574,3.606,1008,4.711,1059,5.138,1635,4.611,1835,5.467,2716,6.394,2744,5.975,2966,6.394,2982,6.861,3702,8.255]],["title/864",[279,1.203,2736,3.938,2737,3.253]],["content/864",[64,3.293,142,4.324,154,3.622,279,2.495,400,3.376,454,1.471,479,4.283,484,2.229,500,3.772,508,4.9,509,4.9,545,3.155,589,3.588,900,2.684,976,3.111,1233,3.813,2802,6.856,2804,5.029,2807,4.59,2822,5.812,3198,4.786,3619,6.856,3664,4.59,3703,5.812,3704,6.157]],["title/865",[154,1.925,279,0.796,454,0.782,479,2.276,508,2.604,545,1.677]],["content/865",[]],["title/866",[509,3.364,976,2.136,1233,2.618,3619,3.452]],["content/866",[64,3.584,142,4.608,279,2.475,400,3.832,484,2.53,500,4.282,589,4.073,900,3.047,2802,7.462,2804,5.709,2807,5.21,2822,6.597,3198,5.433,3619,5.709,3664,5.21,3703,6.597,3704,6.99]],["title/859",[539,2.969,2733,2.435,2739,3.212]],["content/859",[18,0.876,34,2.159,48,1.978,101,2.877,185,2.607,279,1.846,313,2.301,479,3.709,482,1.915,500,3.266,505,2.374,524,3.4,572,4.243,579,3.418,1025,3.713,1033,4.055,1055,3.832,1198,2.972,1386,3.377,1545,3.266,1645,3.974,1678,4.355,1847,4.63,2020,3.653,2040,5.032,2224,4.055,2733,4.352,2737,3.505,2739,3.46,2797,3.832,2878,2.349,2884,3.339,2926,3.832,3180,3.709,3226,4.482,3228,5.032,3705,4.809,3706,3.709,3707,3.107,3708,5.786,3709,5.032]],["title/860",[500,3.031,1025,2.42,2739,3.212]],["content/860",[18,1.147,55,1.573,101,2.56,114,1.711,115,1.441,142,2.148,175,2.714,241,1.853,313,2.047,463,3.353,482,1.704,484,1.718,487,3.875,500,5.958,524,3.706,588,2.601,641,2.54,791,3.688,889,1.968,915,2.35,939,3.875,1025,2.32,1086,3.41,1087,2.58,1156,5.554,1250,3.776,1527,3.3,1874,2.876,1896,3.079,2020,3.251,2088,4.478,2292,3.204,2415,4.279,2739,5.372,2884,2.971,2885,4.279,3052,3.688,3175,3.609,3192,4.744,3198,6.434,3710,4.744,3711,5.149,3712,2.818,3713,4.478,3714,5.149,3715,5.149]],["title/861",[49,1.482,1069,2.831,2733,2.435]],["content/861",[18,0.761,48,2.544,65,2.224,108,1.2,185,3.353,194,1.16,256,1.76,279,1.667,309,1.541,313,2.551,454,0.671,458,1.622,482,2.463,505,2.063,521,1.42,524,3.396,567,1.926,572,2.236,586,1.686,614,2.02,652,1.898,720,2.473,773,1.58,931,1.926,969,1.986,982,2.535,1025,1.374,1029,1.824,1033,2.137,1042,2.362,1043,2.362,1069,1.608,1073,2.184,1084,2.236,1166,2.535,1177,2.582,1198,2.582,1201,2.02,1377,1.721,1475,1.986,1477,2.935,1540,1.76,1545,1.721,1616,2.362,1631,2.137,1656,1.653,1818,1.847,1847,2.441,1896,1.824,2020,1.926,2664,1.801,2667,2.095,2733,2.909,2737,3.886,2750,2.02,2878,3.597,2884,3.702,2913,2.753,2921,3.045,2926,3.33,2951,1.986,2960,2.184,2984,2.295,3027,2.362,3199,2.81,3212,2.441,3362,2.236,3471,2.81,3663,2.97,3664,2.095,3707,2.7,3712,2.752,3716,2.81,3717,4.406,3718,2.295,3719,3.05,3720,2.81,3721,2.535,3722,3.05,3723,3.05,3724,3.05,3725,3.05,3726,2.295,3727,3.05]],["title/862",[505,3.346]],["content/862",[0,2.86,154,3.419,378,3.522,395,3.871,454,1.927,481,4.885,508,6.42,510,3.136,513,3.386,531,3.735,539,3.487,574,3.824,624,3.386,720,2.095,757,3.487,827,4.701,911,4.332,945,3.771,1069,3.325,1251,4.251,1551,3.82,1653,4.176,2418,4.251,2733,2.86,2796,4.042,2884,3.639,2903,5.485,3079,4.746,3139,5.241,3197,4.625,3656,5.485,3658,5.485,3728,5.811]],["title/863",[3659,6.526]],["content/863",[241,3.608,624,5.383,1189,7.352,1835,6.639,3659,8.023]],["title/867",[1198,2.356,2878,1.862,2913,1.969,3707,2.463]],["content/867",[]],["title/868",[1198,4.188]],["content/868",[1,3.578,18,0.895,65,2.5,169,2.915,185,2.662,308,2.789,311,2.437,488,3.172,500,3.335,517,2.612,524,2.437,614,3.912,619,3.449,646,2.662,657,2.349,720,1.963,889,2.258,915,2.696,1052,4.225,1087,2.961,1198,5.422,1386,3.449,1631,4.141,1645,4.058,1776,3.203,2082,3.677,2260,3.533,2664,3.49,2733,2.679,2878,2.399,2913,2.535,3180,3.787,3313,5.444,3650,5.138,3673,4.91,3705,4.91,3706,5.361,3726,4.446]],["title/869",[2878,2.629,2913,2.779]],["content/869",[24,2.531,34,2.436,65,3.061,71,2.038,185,2.941,240,3.472,308,3.081,495,3.352,524,2.693,568,3.608,664,3.039,720,2.979,900,2.622,1048,3.724,1262,4.912,1563,3.766,2043,4.25,2733,2.96,2878,4.476,2913,3.847,3180,4.183,3663,3.855,3706,4.183,3709,5.676,3712,4.907,3729,3.766,3730,5.223]],["title/870",[3707,4.379]],["content/870",[65,2.814,115,1.963,524,3.885,720,2.331,1177,4.836,1540,4.049,2664,4.144,2733,3.182,2744,4.004,2797,4.646,2878,3.823,2913,3.011,2926,4.646,2936,4.569,3180,4.497,3219,5.28,3663,4.144,3707,5.056,3717,4.819,3721,5.831,3729,4.049,3731,7.016,3732,6.465,3733,6.465]],["title/874",[71,1.25,185,1.804,1875,2.425,2923,2.698,3475,3.482]],["content/874",[]],["title/875",[185,3.674]],["content/875",[18,1.147,24,1.996,141,3.005,169,2.54,185,5.141,229,2.521,241,1.853,251,3.537,279,1.154,569,3.988,581,2.291,582,2.448,586,2.847,720,2.985,757,2.847,867,3.079,957,3.079,976,2.398,1043,5.866,1113,3.471,1190,2.667,1198,2.644,2292,3.204,2733,2.335,2797,3.41,2878,4.285,2913,2.21,3052,3.688,3183,4.744,3285,4.279,3346,4.478,3712,2.818,3729,2.971,3734,4.478,3735,4.478,3736,3.776,3737,4.744,3738,4.744,3739,4.478,3740,7.573,3741,5.149,3742,5.149,3743,5.149]],["title/876",[71,1.677,1875,3.253,2923,3.62]],["content/876",[24,1.511,34,1.454,71,2.364,100,1.802,101,1.938,108,1.534,185,2.76,256,2.249,311,1.608,394,2.581,439,2.302,474,3.663,516,2.36,527,2.677,683,2.461,691,3.173,720,2.035,757,2.155,773,3.173,1026,2.933,1035,2.092,1063,2.425,1087,1.953,1136,2.498,1177,3.146,1516,3.239,1525,2.677,1527,2.498,1682,3.591,1875,2.36,1896,2.33,2077,2.791,2260,2.33,2316,2.224,2399,2.791,2629,4.129,2733,2.778,2748,3.389,2797,4.057,2812,3.119,2878,3.786,2913,2.629,2918,4.129,2921,2.36,2923,5.102,2925,3.119,2926,2.581,2963,3.239,3052,2.791,3212,6.057,3241,3.239,3303,2.731,3362,4.492,3363,3.239,3663,2.302,3707,4.607,3712,3.353,3717,2.677,3734,3.389,3735,3.389,3736,2.858,3744,3.897,3745,3.897,3746,3.019,3747,3.897,3748,3.119,3749,3.591]],["title/871",[8,0.658,313,1.824,2262,3.553,3085,3.671]],["content/871",[]],["title/872",[8,0.77,2262,4.16,3085,4.298]],["content/872",[101,2.269,114,2.299,115,1.936,175,2.405,311,2.855,313,3.323,378,3.865,415,2.217,470,2.305,482,1.51,486,2.251,488,2.45,510,2.269,524,1.882,574,1.993,584,3.268,936,3.792,973,3.534,1016,3.022,1073,3.268,1197,3.268,1198,2.343,1201,3.022,1386,4.039,1477,2.663,1621,3.968,1661,3.268,1720,3.534,1776,2.473,1777,3.075,1882,3.434,1883,3.968,2292,2.839,2539,3.534,2733,2.069,2772,3.968,2797,3.022,2876,3.346,2878,1.852,2919,3.651,2944,3.534,3012,3.534,3024,3.792,3052,4.956,3085,3.651,3180,2.925,3197,3.346,3229,3.968,3363,3.792,3431,3.968,3706,2.925,3712,2.497,3713,3.968,3721,3.792,3734,3.968,3735,3.968,3750,3.968,3751,4.563,3752,4.563,3753,4.563,3754,4.563,3755,4.204,3756,4.563,3757,4.204]],["title/873",[961,3.013,1059,2.491,2539,3.101,3242,2.867,3706,2.566]],["content/873",[0,1.552,8,0.792,24,2.142,34,1.277,65,1.651,111,1.892,114,1.137,115,0.957,154,1.855,184,2.073,185,1.542,311,2.279,313,3.477,331,1.837,454,0.753,484,1.141,486,1.688,492,1.468,495,2.837,510,1.701,524,2.279,546,3.118,574,1.495,584,2.451,720,1.137,729,3.871,731,4.05,760,2.65,867,2.046,889,1.308,961,5.998,1018,2.65,1020,2.575,1024,2.738,1028,2.129,1052,1.729,1059,4.322,1084,4.05,1098,1.931,1116,1.562,1189,2.509,1386,1.997,1512,2.575,1516,2.844,1661,2.451,1776,2.994,1795,2.65,1844,2.575,1863,2.451,1883,2.976,1957,2.976,2230,2.844,2292,2.129,2733,2.504,2737,2.073,2750,2.266,2772,2.976,2791,2.844,2878,2.819,2884,1.974,2912,4.278,2913,2.98,2944,4.278,3079,2.575,3242,4.974,3331,3.153,3438,6.399,3544,2.844,3652,2.976,3706,2.193,3712,3.023,3750,4.804,3758,4.804,3759,3.422,3760,3.422,3761,3.422,3762,3.422,3763,2.976,3764,3.422]],["title/877",[2733,2.937,3619,4.874]],["content/877",[0,1.857,49,1.131,74,1.216,88,3.26,101,2.037,143,1.637,154,2.22,176,1.728,279,1.427,311,1.69,395,3.91,454,1.402,484,2.607,499,3.521,502,2.871,505,3.207,507,2.242,510,2.037,513,3.42,531,4.074,535,2.037,552,2.713,568,2.265,573,3.762,574,1.789,581,1.822,586,2.265,588,2.069,594,2.626,757,2.265,907,2.668,915,1.87,1015,2.288,1038,2.14,1069,2.159,1198,2.104,1251,2.761,1475,2.668,1547,3.083,1551,2.481,1760,2.761,2015,2.934,2162,2.934,2667,2.814,2721,3.083,2733,1.857,2739,2.45,2824,2.871,2827,3.173,2828,3.173,2829,3.173,2857,4.464,2874,3.563,2878,1.663,2884,2.364,2903,3.563,2909,5.294,2926,2.713,3079,3.083,3139,3.404,3656,3.563,3660,3.775,3665,3.775,3666,3.775,3667,3.404,3707,2.199,3728,3.775,3765,4.096]],["title/878",[479,4.151,615,4.151]],["content/878",[479,5.899,505,3.776,615,5.899,715,6.45,1061,5.649,1724,6.321,2660,5.14,2661,5.038,2733,4.173,3668,8.48]],["title/879",[531,2.763,2649,3.975]],["content/879",[0,3.743,99,3.844,241,2.971,279,1.85,346,6.213,531,3.522,539,4.564,605,5.067,720,2.743,945,4.937,1143,4.937,1403,4.819,1499,5.564,2026,6.394,2649,5.067,2793,5.212,2974,7.18]],["title/880",[505,2.657,1069,3.414]],["content/880",[8,1.202,69,2.795,101,4.166,505,3.438,538,3.186,586,4.632,614,5.548,1198,4.303,1377,4.729,1833,6.306,2649,5.143,2739,5.01,2878,3.401,2913,3.596,3669,7.72,3707,4.499]],["title/881",[3707,4.379]],["content/881",[64,3.497,65,3.032,106,4.032,309,1.865,394,2.445,397,1.685,460,1.217,477,1.311,486,1.821,526,1.643,592,1.896,621,2.383,650,2.707,661,3.213,684,1.708,719,2.404,761,2.107,931,2.331,1015,2.062,1022,2.536,1035,4.878,1038,1.929,1098,3.313,1106,1.353,1136,4.683,1141,2.86,1155,2.331,1177,3.015,1398,2.778,1475,2.404,1750,2.954,1767,2.331,2166,2.041,2173,2.954,2205,2.954,2565,2.778,2649,2.266,2678,2.644,2803,3.402,2871,2.644,2878,2.383,2913,1.584,2914,8.414,2923,2.489,3175,2.587,3303,7.378,3707,3.923,3717,4.032,3766,2.954,3767,3.692,3768,3.692,3769,3.402,3770,3.692,3771,5.87,3772,3.068,3773,3.692,3774,3.692,3775,3.692,3776,3.692,3777,3.692,3778,3.692,3779,3.211]],["title/882",[169,3.195,3739,5.632]],["content/882",[]],["title/883",[8,0.77,1177,2.758,3663,3.172]],["content/883",[589,5.289,1177,5.059,1724,6.765,3663,5.818,3780,9.849,3781,9.849]],["title/884",[492,2.305,1038,2.806,1098,3.031]],["content/884",[108,2.599,256,3.81,309,3.336,311,2.724,312,4.3,477,2.345,619,3.854,641,3.258,720,2.194,931,4.169,1035,3.546,1038,3.45,1098,5.101,1106,2.419,1155,4.169,1177,4.642,1563,3.81,1720,5.115,1752,4.628,1896,3.949,2166,3.651,2871,4.73,2878,2.681,2923,4.451,2925,5.284,3175,6.334,3362,4.843,3707,3.546,3736,4.843,3766,5.284,3782,6.603]],["title/885",[1155,4.089,2166,3.58]],["content/885",[24,2.073,65,1.598,397,2.44,460,3.026,526,3.463,621,2.17,948,3.238,976,2.489,1106,1.958,1155,7.47,1568,3.92,1647,2.56,1764,7.645,2166,6.541,2205,7.346,2637,4.925,2638,4.023,2678,3.828,2928,4.925,3050,4.277,3303,6.433,3611,4.925,3663,3.157,3729,3.084,3783,5.345,3784,5.345,3785,5.345]],["title/886",[1098,3.031,1670,3.172,2819,3.938]],["content/886",[8,0.619,64,1.56,65,2.414,101,3.298,108,2.611,184,4.018,194,1.642,477,1.533,492,1.853,493,1.863,517,2.933,526,1.921,581,1.921,587,3.466,621,1.753,652,2.687,659,1.909,666,1.753,761,2.463,1098,6.265,1155,5.1,1177,3.407,1233,2.463,1485,4.32,1527,2.767,1568,3.166,1615,3.092,1656,2.34,1670,4.771,1711,2.615,2166,5.709,2638,3.249,2664,2.55,2678,4.751,2871,3.092,2889,5.138,3248,3.978,3303,5.661,3343,3.588,3655,3.344,3664,2.965,3671,3.249,3729,4.661,3786,3.755,3787,4.317,3788,4.317,3789,3.755]],["title/887",[1177,3.326,3655,5.016]],["content/887",[65,2.99,477,2.731,583,5.639,666,3.122,889,2.938,1098,4.34,1155,6.316,1177,5.138,1670,4.542,1691,4.785,2166,5.531,3124,7.086,3223,6.391,3655,5.956,3729,5.773,3790,7.086,3791,6.391]],["title/888",[3792,7.514]],["content/888",[1,5.152,54,5.633,141,4.965,421,5.452,564,6.588,912,4.908,1095,6.401,2649,5.221,2660,4.751,2878,3.453,2913,3.65,3707,4.567,3717,5.842,3779,7.398,3792,7.837]],["title/889",[141,3.135,2878,2.18,2913,2.305]],["content/889",[65,2.427,141,3.309,169,4.007,241,2.923,440,3.167,486,2.797,539,3.134,568,3.134,581,2.522,582,2.695,605,3.48,613,4.391,619,3.309,624,3.044,664,3.782,720,1.884,889,2.166,931,5.128,976,2.64,1069,2.989,1115,3.235,1572,4.931,1835,3.754,2292,3.528,2661,5.194,2878,4.453,2913,5.043,3664,5.578,3707,3.044,3793,5.669]],["title/890",[141,3.135,2913,2.305,3707,2.884]],["content/890",[34,0.648,52,0.763,54,2.052,55,0.531,64,0.628,65,2.668,100,0.803,104,1.738,141,1.014,150,1.232,154,0.942,169,2.885,175,0.916,184,1.877,194,1.178,240,1.648,241,2.532,253,1.902,255,1.15,256,1.002,257,1.171,397,0.793,440,2.845,458,0.924,463,1.131,482,1.025,485,0.826,505,1.271,524,3.425,526,0.773,531,0.741,538,0.661,568,0.96,581,1.378,605,1.902,616,1.511,624,2.252,639,0.654,653,2.018,664,1.443,720,0.577,721,1.217,859,1.15,867,2.508,889,1.602,906,1.511,915,0.793,931,1.956,942,1.193,969,2.731,1035,1.664,1098,2.875,1106,1.135,1115,3.336,1132,3.126,1155,1.956,1159,1.444,1177,4.074,1265,1.986,1398,4.4,1419,2.479,1540,1.002,1541,1.346,1545,0.981,1572,2.695,1573,1.171,1626,1.097,1719,1.601,1751,1.307,1818,1.877,1835,1.15,1896,1.853,2031,1.193,2095,1.444,2111,1.511,2149,1.511,2166,1.713,2292,1.928,2496,2.4,2629,1.171,2660,0.97,2661,2.295,2663,1.244,2667,1.193,2668,2.171,2733,0.788,2742,2.219,2783,1.511,2793,1.956,2812,1.39,2819,1.274,2838,2.575,2841,1.39,2842,1.244,2921,1.877,2923,1.171,2973,4.188,3197,2.272,3246,1.511,3303,1.217,3398,1.307,3539,1.601,3646,1.444,3663,3.454,3682,2.695,3691,1.39,3694,1.346,3707,5.642,3718,1.307,3729,4.06,3736,1.274,3766,2.479,3786,1.511,3794,1.737,3795,1.737,3796,1.601,3797,1.601,3798,1.601,3799,2.855,3800,3.647,3801,2.695,3802,2.575,3803,2.855,3804,2.855,3805,1.737,3806,2.695,3807,1.737,3808,1.601]],["title/891",[62,2.691,75,3,141,3.135]],["content/891",[62,5.451,64,3.171,65,3.251,141,5.12,495,4.505,720,2.914,1006,5.459,2809,7.629,2913,3.764,3398,6.601,3729,5.061]],["title/892",[65,1.371,75,2.562,141,2.678,3707,2.463]],["content/892",[0,3.743,141,4.819,169,4.073,652,5.138,720,2.743,867,4.937,1177,4.24,2144,6.054,3197,6.054,3285,6.861,3398,6.213,3707,4.433,3717,5.67,3739,7.18,3809,8.379,3810,7.607]],["title/893",[1101,3.58,3663,3.825]],["content/893",[0,1.368,62,1.512,65,2.634,99,1.405,100,3.785,108,2.506,184,3.018,194,2.421,241,1.086,253,2.26,400,1.524,440,1.685,484,1.006,517,1.334,524,1.245,583,2.212,587,3.512,588,1.524,666,2.585,720,1.002,773,3.298,859,1.998,864,4.146,885,3.75,889,2.433,1069,2.627,1087,1.512,1098,4.975,1101,1.668,1107,2.27,1136,1.934,1155,5.167,1177,4.789,1254,1.741,1403,1.761,1485,1.965,1670,1.782,1997,3.654,2166,4.525,2425,2.78,2661,3.485,2678,2.161,2681,4.791,2819,3.654,2844,2.507,2871,3.569,2889,3.86,2923,2.034,2925,2.414,3362,2.212,3655,2.337,3663,5.508,3664,4.373,3729,5.085,3736,2.212,3790,4.592,3791,4.142,3796,4.592,3811,3.017,3812,4.592,3813,3.017,3814,2.624]],["title/894",[154,2.487,194,1.744,233,1.924,3707,2.463]],["content/894",[24,0.857,37,1.135,62,1.107,65,2.764,71,0.69,169,1.09,194,1.456,233,3.368,241,0.795,255,1.463,309,1.116,331,1.186,332,0.802,394,1.463,397,1.008,400,1.934,463,1.439,477,1.359,486,1.09,492,0.948,521,1.029,524,3.815,557,1.05,568,1.221,569,1.711,582,1.05,587,0.948,592,1.135,657,0.878,666,0.897,720,1.272,859,1.463,864,1.439,867,1.321,889,1.935,898,1.209,915,1.008,1028,1.375,1069,1.165,1073,1.582,1078,1.921,1087,1.107,1098,1.247,1106,1.402,1155,5.363,1165,1.144,1167,3.329,1177,4.907,1201,1.463,1233,1.261,1262,1.663,1403,2.234,1485,1.439,1545,1.247,1670,2.261,1674,1.582,1684,1.711,1691,3.151,1697,1.836,1771,1.921,1804,1.548,1836,1.768,1882,1.663,2159,1.836,2166,4.696,2667,1.517,2678,1.582,2733,1.002,2744,1.261,2819,2.807,2871,3.627,2878,0.897,2889,1.711,2918,2.58,2921,2.318,2923,3.413,2926,1.463,2929,1.711,2966,1.711,3175,2.682,3188,1.836,3201,3.329,3219,1.663,3223,1.836,3224,1.768,3241,1.836,3330,1.921,3343,1.836,3398,1.663,3655,1.711,3663,2.261,3664,2.629,3671,1.663,3707,3.667,3717,3.478,3718,1.663,3729,4.902,3730,1.768,3736,1.62,3748,1.768,3772,5.02,3791,4.209,3806,3.329,3809,1.768,3812,3.527,3814,1.921,3815,2.036,3816,2.036,3817,2.209,3818,2.209,3819,3.527]],["title/895",[2878,2.629,2913,2.779]],["content/895",[]],["title/896",[664,2.136,900,1.843,2878,1.862,2913,1.969]],["content/896",[900,4.546,1054,5.462,2649,5.743,2661,5.122,2878,4.594,2913,4.856]],["title/897",[241,1.148,460,1.052,827,1.713,900,1.282,2793,2.015,2878,1.296,2913,1.369]],["content/897",[18,0.559,36,2.155,48,1.262,62,1.85,64,2.641,65,2.891,100,3.379,106,2.536,131,1.317,185,1.663,241,1.329,256,2.13,279,1.315,310,1.88,311,2.422,331,1.982,450,1.982,482,1.222,484,1.232,495,1.896,581,1.643,588,1.865,592,3.753,619,2.155,641,1.821,650,2.707,692,5.105,712,2.831,773,1.912,790,2.404,867,2.208,900,2.358,912,2.13,913,2.041,931,5.256,976,1.719,1038,3.067,1106,1.353,1139,3.653,1185,2.298,1254,2.13,1527,2.366,1540,2.13,1566,2.707,1575,2.001,1656,2.001,1776,2.001,1795,2.86,1997,2.707,2664,2.181,2733,1.674,2744,3.349,2796,3.762,2797,2.445,2878,3.688,2912,2.86,2913,4.151,2936,2.404,2950,2.707,2951,2.404,3164,3.402,3421,3.402,3685,2.86,3710,3.402,3809,2.954,3820,3.692,3821,2.489,3822,3.692,3823,3.211]],["title/898",[131,1.034,310,1.476,621,1.176,827,2.587,1139,1.803,1226,1.602,2913,1.243]],["content/898",[1,2.179,8,0.516,18,1.52,62,2.881,65,1.718,104,1.924,130,2.382,131,2.051,145,1.631,169,1.775,175,1.896,279,0.806,310,3.658,311,2.372,313,1.43,458,1.914,470,1.817,477,2.042,482,1.19,484,1.918,495,3.688,517,1.591,559,1.848,568,1.989,586,3.179,588,1.817,592,1.848,615,3.685,646,2.59,657,1.43,691,1.863,712,1.735,715,2.521,720,1.195,767,2.471,816,2.076,889,1.375,900,2.31,1139,5.105,1152,1.989,1257,2.576,1540,2.076,1575,1.95,1601,2.638,1643,2.239,1732,2.239,1863,2.576,1875,2.179,2031,2.471,2082,2.239,2102,2.179,2260,2.151,2496,2.786,2660,3.211,2661,3.147,2724,2.786,2790,2.786,2878,3.33,2913,4.308,2950,4.216,3162,2.879,3243,2.786,3612,2.707,3673,2.99,3824,3.315,3825,4.778,3826,3.315]],["title/899",[241,1.933,2913,2.305,3691,4.298]],["content/899",[154,3.803,169,4.646,241,2.525,256,4.049,485,3.336,505,2.879,915,3.202,969,4.569,1106,2.571,1115,4.004,1132,4.307,1398,7.087,1626,4.43,1896,4.196,2660,3.919,2733,3.182,2783,6.102,2841,5.615,2842,5.025,2878,2.848,2913,4.041,2973,5.025,3197,5.145,3718,5.28,3797,6.465,3798,6.465]],["title/900",[169,1.975,1115,2.284,2742,2.867,2793,2.528,2913,1.718]],["content/900",[24,1.251,34,1.204,65,1.573,71,1.007,169,1.591,176,1.36,185,1.453,194,1.226,229,1.579,241,1.894,255,2.136,257,2.174,279,0.723,313,1.282,398,2.826,416,1.783,440,2.94,492,1.384,515,2.007,521,1.502,524,2.752,541,2.498,559,1.656,562,1.732,586,1.783,665,2.1,720,2.216,858,2.036,860,2.805,867,3.148,931,3.323,1026,2.427,1106,1.929,1115,3.004,1136,4.275,1152,1.783,1165,1.671,1265,3.374,1398,2.427,1545,1.82,1548,2.136,1587,2.427,1591,2.365,1597,2.26,1625,2.805,1886,4.578,1896,1.929,1921,4.581,2095,2.68,2166,1.783,2399,2.31,2629,2.174,2668,3.689,2742,2.31,2744,1.84,2852,5.019,2878,2.137,2913,3.639,2918,2.174,2921,1.953,2923,3.548,2925,2.581,2929,4.077,2973,3.77,3212,4.212,3285,2.68,3303,2.26,3362,2.365,3694,2.498,3712,2.881,3736,2.365,3749,2.972,3799,4.85,3800,2.805,3802,4.375,3808,2.972,3809,6.159,3810,2.972,3821,3.548,3827,3.225,3828,3.225,3829,3.225,3830,3.225,3831,3.225,3832,2.972,3833,3.225]],["title/901",[169,1.975,859,2.651,1115,2.284,1132,2.457,2913,1.718]],["content/901",[18,0.68,34,1.675,65,2.043,69,1.498,104,2.218,141,2.621,169,2.215,185,3.729,240,2.388,253,2.036,393,2.591,440,3.818,482,1.486,524,2.82,587,2.933,605,2.756,624,2.411,653,2.924,720,2.271,889,1.716,969,2.924,1113,3.026,1115,2.562,1132,2.756,1177,2.306,1198,3.511,1398,3.379,1419,3.593,1527,2.878,1575,3.705,1673,3.905,2292,2.794,2399,3.216,2496,3.478,2663,3.216,2668,3.147,2744,2.562,2793,2.835,2838,3.731,2878,2.775,2913,3.97,2918,3.026,2973,4.896,3123,3.731,3646,3.731,3663,2.652,3682,3.905,3717,3.084,3732,4.137,3736,5.012,3800,3.905,3801,3.905,3802,3.731,3803,4.137,3804,4.137,3821,3.026,3834,4.49]],["title/902",[154,2.487,194,1.744,233,1.924,2913,1.969]],["content/902",[24,1.251,34,1.204,65,3.183,71,1.644,101,1.603,175,1.7,185,3.005,194,2.002,233,3.557,240,2.8,308,1.523,309,1.629,331,1.732,332,1.171,400,1.629,486,1.591,492,1.384,500,2.971,517,1.426,524,2.172,568,1.783,586,1.783,587,2.259,657,1.282,664,1.502,720,1.072,859,2.136,864,2.1,867,1.929,889,2.011,915,1.472,1073,2.31,1078,2.805,1106,1.182,1167,2.805,1198,1.656,1201,2.136,1262,2.427,1377,1.82,1403,1.882,1545,1.82,1575,2.853,1697,2.68,1836,2.581,2082,2.007,2166,1.783,2224,2.26,2301,2.26,2629,2.174,2733,1.462,2739,1.929,2744,1.84,2793,2.036,2819,2.365,2878,3.897,2913,4.444,2918,2.174,2921,1.953,2929,2.498,2950,3.86,2966,2.498,3180,2.067,3201,2.805,3257,2.972,3362,2.365,3398,2.427,3663,3.109,3712,2.881,3718,2.427,3729,3.848,3730,2.581,3791,2.68,3809,2.581,3815,2.972,3816,2.972,3819,2.972,3821,4.495,3835,3.225,3836,3.225]],["title/903",[185,3.674]],["content/903",[71,2.656,111,4.702,185,5.253,659,3.761,720,2.826,2750,5.633,2878,3.453,2923,5.733,3312,7.837,3729,6.157,3832,7.837,3837,7.837]],["title/904",[8,0.574,64,1.447,397,1.827,931,2.528,2809,3.482]],["content/904",[64,1.525,111,2.333,185,4.035,241,1.519,255,2.794,256,2.435,279,0.945,397,2.975,440,3.64,477,2.315,505,1.731,524,1.741,526,2.9,529,1.965,604,2.705,605,2.59,613,3.268,659,1.866,720,2.976,889,1.612,915,1.926,994,2.705,1038,3.405,1069,2.224,1098,3.679,1177,3.347,1190,2.186,1254,3.761,1377,2.382,1502,2.664,1510,2.748,1545,2.382,1563,2.435,1691,2.626,1896,2.523,2292,2.626,2819,3.094,2913,4.578,2918,2.844,2923,4.393,3109,3.268,3175,2.957,3303,4.568,3707,4.809,3718,3.175,3729,3.761,3769,3.888,3779,7.79,3786,3.67,3837,3.888,3838,4.219,3839,4.219,3840,4.219]],["title/905",[664,3.015,2878,2.629]],["content/905",[454,1.845,586,4.632,646,3.775,1477,4.891,1545,4.729,2059,6.144,2744,4.781,2750,5.548,2812,6.705,2878,4.291,2913,4.536,3027,6.49,3671,6.306,3841,8.378]],["title/906",[241,1.278,460,1.171,586,1.963,827,1.907,2793,2.242,2878,1.442]],["content/906",[18,1.375,34,0.952,36,1.489,48,0.872,62,2.17,64,2.039,65,3.09,71,0.797,97,1.455,100,4.199,106,1.752,108,1.004,131,0.91,169,1.258,176,1.076,185,1.951,194,1.647,229,1.249,233,1.07,240,1.357,241,0.918,279,0.571,308,1.204,309,1.288,311,1.786,440,1.425,474,1.525,482,0.844,484,0.851,486,1.258,492,1.095,495,1.31,516,1.545,517,1.128,523,1.61,556,1.635,557,1.213,559,1.31,581,1.135,586,3.119,587,1.095,588,1.288,592,1.31,619,1.489,664,2.627,712,1.23,714,1.23,720,0.847,773,2.243,790,1.661,867,1.525,889,0.975,931,1.61,1028,1.587,1037,4.369,1038,3.474,1052,1.288,1106,0.935,1165,1.321,1226,1.41,1254,1.472,1262,1.919,1540,2.498,1566,1.87,1631,1.788,1656,2.347,1724,1.752,1730,1.61,1732,1.587,1776,3.604,1997,3.175,2049,1.545,2141,1.919,2260,1.525,2301,1.788,2660,2.418,2661,1.396,2670,1.719,2681,3.258,2744,2.47,2796,3.616,2876,5.46,2878,3.503,2885,2.12,2913,2.853,2936,1.661,2950,1.87,2951,1.661,2973,1.827,3061,2.218,3341,2.218,3373,2.12,3685,1.976,3712,1.396,3729,2.498,3730,2.041,3789,2.218,3821,2.918,3823,2.218,3842,2.35,3843,2.35,3844,2.218]],["title/907",[131,1.034,310,1.476,621,1.176,827,2.587,1226,1.602,1540,1.672,2878,1.176]],["content/907",[1,2.328,18,1.56,62,3.037,65,1.811,104,2.01,130,2.545,131,2.162,145,1.743,169,1.896,175,2.026,279,0.861,310,3.821,311,2.5,313,1.528,458,2.045,460,1.267,470,1.942,477,1.365,482,1.272,484,2.022,495,3.112,559,1.974,568,2.125,586,2.125,588,1.942,592,1.974,615,3.884,646,2.73,657,1.528,664,1.79,691,1.991,712,1.854,715,2.694,720,1.277,767,2.64,816,2.218,889,1.469,1139,2.392,1152,2.125,1257,2.753,1540,4.329,1575,2.084,1601,2.819,1643,2.392,1732,2.392,1863,2.753,1875,2.328,2031,2.64,2102,2.328,2260,2.299,2496,2.977,2660,3.385,2661,3.317,2724,2.977,2790,2.977,2878,3.996,2913,2.601,2950,4.444,3162,3.076,3243,2.977,3612,2.893,3673,3.194,3824,3.542,3825,5.036,3826,3.542]],["title/908",[1377,3.655,2878,2.629]],["content/908",[65,2.663,108,3.507,592,4.577,646,4.015,889,3.405,1262,6.706,2819,6.535,2878,3.618,2913,3.824,3663,5.264,3664,6.121,3845,8.911]],["title/909",[241,1.278,460,1.171,827,1.907,1377,2.005,2793,2.242,2878,1.442]],["content/909",[18,1.168,34,1.012,37,1.392,65,3.218,71,1.424,100,4.486,131,0.967,169,2.249,176,1.143,194,1.733,229,1.327,233,1.912,240,1.442,241,1.64,253,1.229,308,1.28,311,1.118,377,1.53,440,1.514,448,2.169,450,1.456,454,0.597,470,1.369,484,0.904,492,1.163,521,2.122,523,1.712,524,2.433,557,1.289,559,1.392,587,1.956,588,1.369,592,1.392,646,2.054,712,1.308,720,1.96,721,1.9,744,1.582,773,2.361,859,1.795,867,3.527,889,1.036,911,1.862,915,1.237,1038,3.082,1106,0.993,1226,1.499,1282,2.358,1377,4.715,1545,1.53,1575,2.471,1597,1.9,1724,1.862,1875,1.642,1989,2.358,2020,1.712,2049,2.761,2278,2.1,2301,1.9,2399,1.942,2660,1.514,2661,1.484,2678,1.942,2796,1.738,2812,2.169,2878,4.069,2890,2.498,2913,2.531,2916,2.498,2950,3.343,2966,3.531,3194,2.358,3373,2.253,3521,2.498,3646,2.253,3664,4.749,3685,2.1,3729,5.38,3748,2.169,3821,1.827,3844,2.358,3846,4.2,3847,2.711,3848,2.711]],["title/910",[131,1.034,310,1.476,621,1.176,827,2.587,1226,1.602,1377,1.635,2878,1.176]],["content/910",[1,2.809,18,1.67,62,3.511,104,2.262,130,3.071,131,1.655,145,2.103,169,2.288,175,2.445,310,4.3,311,1.914,313,1.844,460,1.529,470,2.343,482,1.535,484,1.547,559,2.382,568,2.564,588,2.343,615,4.491,646,3.157,657,1.844,691,2.403,712,2.237,715,3.251,720,1.541,767,3.186,816,2.676,889,1.772,1152,2.564,1257,3.322,1377,5.31,1601,3.401,1643,2.886,1732,2.886,1863,3.322,1875,2.809,2102,2.809,2260,2.774,2660,3.913,2661,3.835,2724,3.593,2790,3.593,2878,4.1,3162,3.712,3243,3.593,3612,3.491,3825,3.855]],["title/911",[1198,4.188]],["content/911",[]],["title/912",[65,1.936,1198,3.326]],["content/912",[18,1.214,97,4.576,169,3.956,241,2.886,279,1.797,310,4.084,446,4.228,484,2.675,592,4.119,619,4.681,827,4.306,1052,4.051,1157,4.433,1198,5.279,1587,6.035,2049,4.857,2733,3.636,2932,6.417]],["title/913",[241,1.441,460,1.32,827,2.15,1198,2.056,2793,2.528]],["content/913",[0,0.737,18,1.392,24,0.631,34,0.607,36,1.705,48,0.999,62,0.815,64,1.437,65,2.747,77,1.117,84,1.042,97,0.928,100,3.131,106,1.117,131,0.58,169,0.802,175,0.857,176,0.686,181,1.14,185,2.519,194,1.111,229,0.796,233,0.682,241,0.585,279,0.654,308,1.379,309,0.822,311,1.205,332,0.591,378,0.908,416,1.615,440,1.631,450,0.873,454,0.358,460,0.536,474,0.973,482,0.967,484,0.543,486,0.802,492,1.253,495,0.835,505,0.667,517,0.719,525,1.499,556,1.042,557,0.773,559,0.835,581,1.299,582,0.773,587,2.399,588,0.822,592,0.835,613,1.26,619,0.949,688,0.928,691,0.842,712,0.784,714,0.784,720,1.321,757,0.899,773,2.059,790,1.059,858,1.027,867,1.747,889,0.621,931,1.844,1006,1.012,1026,1.224,1037,3.758,1038,3.251,1052,0.822,1085,1.224,1113,1.096,1133,0.842,1165,0.842,1177,0.835,1198,4.13,1226,0.899,1254,1.685,1265,1.042,1540,0.938,1566,2.142,1575,0.882,1631,1.14,1635,0.908,1647,1.399,1656,1.583,1664,1.096,1673,1.414,1693,1.352,1724,1.117,1728,1.499,1729,1.301,1730,1.027,1732,1.012,1776,4.982,1875,1.769,1997,2.142,2020,1.027,2031,1.117,2049,0.985,2166,0.899,2173,1.301,2260,3.721,2301,1.14,2660,2.221,2661,0.89,2664,1.725,2667,1.117,2670,1.096,2716,1.26,2744,0.928,2764,2.262,2796,2.548,2818,1.352,2876,4.563,2878,2.748,2885,1.352,2913,2.905,2918,1.969,2929,3.079,2936,1.059,2950,3.558,2951,2.589,2957,1.414,2963,1.352,2973,1.165,3061,1.414,3175,1.14,3180,1.872,3334,1.26,3341,1.414,3373,2.427,3453,1.499,3685,1.26,3712,2.176,3748,1.301,3789,1.414,3801,1.414,3821,3.27,3823,1.414,3842,1.499,3843,1.499,3844,1.414,3849,2.921,3850,3.975,3851,1.626,3852,1.626,3853,1.626,3854,1.626,3855,1.499,3856,1.626,3857,1.626]],["title/914",[131,1.138,310,1.625,621,1.296,827,2.802,1198,1.639,1226,1.764]],["content/914",[1,2.719,18,1.651,62,3.425,100,2.076,104,2.218,130,2.973,131,1.602,145,2.036,169,2.215,175,2.367,185,2.023,308,2.12,310,4.215,311,1.852,313,1.785,460,1.48,470,2.268,482,1.486,484,1.498,559,2.306,568,2.482,588,2.268,615,4.381,646,3.08,657,1.785,691,2.326,712,2.166,715,3.147,720,1.492,767,3.084,816,2.591,889,1.716,1152,2.482,1198,5.6,1257,3.216,1601,3.292,1631,3.147,1643,2.794,1732,2.794,1776,2.434,1863,3.216,1875,2.719,2102,2.719,2260,4.087,2660,3.818,2661,3.741,2724,3.478,2790,3.478,3162,3.593,3243,3.478,3612,3.379,3825,3.731]],["title/927",[579,3.825,2921,3.923]],["content/927",[48,2.284,55,2.041,279,1.497,482,2.211,529,3.111,538,2.541,574,2.919,579,3.947,720,2.22,1025,3.011,1026,5.029,1106,2.448,1257,4.786,1330,5.553,1475,4.352,1661,4.786,1721,4.59,1751,5.029,1845,4.786,2733,3.03,2737,5.518,2744,3.813,2878,2.713,2921,4.047,3075,6.157,3217,6.157,3226,5.176,3507,5.812,3726,5.029,3748,5.347,3763,5.812,3858,6.157]],["title/928",[720,1.784,2878,2.18,3729,3.099]],["content/928",[65,2.688,71,2.047,101,2.114,185,1.916,308,2.007,311,1.754,378,2.375,454,0.936,463,2.769,477,1.51,486,2.097,488,2.283,500,2.4,579,3.872,604,4.202,614,2.815,720,2.178,917,2.542,1048,2.426,1073,3.045,1087,2.131,1132,2.61,1386,2.482,1528,2.92,1547,3.2,1575,2.305,1675,2.866,1842,3.533,1896,2.542,2020,2.684,2224,2.98,2629,4.419,2733,1.928,2737,3.971,2744,2.426,2797,4.341,2878,4.484,2884,2.453,2913,2.813,2921,2.575,3017,3.2,3082,3.918,3180,2.725,3219,3.2,3334,3.293,3387,3.698,3712,2.327,3717,2.92,3718,3.2,3729,5.189,3757,3.918,3859,4.251,3860,4.251,3861,4.251,3862,4.251,3863,3.918,3864,3.918,3865,4.251,3866,4.251,3867,4.251]],["title/929",[3726,6.137]],["content/929",[48,1.535,65,2.043,76,2.924,114,1.492,115,1.912,154,2.434,219,1.961,279,1.006,309,2.268,378,2.508,454,0.988,482,1.486,488,2.411,492,1.927,500,4.672,521,2.091,524,2.82,531,1.916,538,1.707,546,2.534,574,1.961,604,2.878,614,2.973,720,1.492,945,2.685,952,2.508,1025,2.023,1026,3.379,1028,2.794,1029,2.685,1094,3.147,1477,2.621,1511,3.731,1526,3.593,1563,2.591,1575,3.705,1675,3.026,1776,3.705,2095,3.731,2096,2.973,2733,2.036,2737,4.14,2739,4.087,2744,2.562,2793,2.835,2878,1.823,2921,2.719,3180,4.381,3212,3.593,3334,3.478,3431,3.905,3712,2.457,3716,4.137,3726,5.144,3729,2.591,3746,3.478,3858,4.137,3864,4.137,3868,4.49,3869,4.49,3870,4.49,3871,4.49,3872,4.49]],["title/930",[574,3.562]],["content/930",[0,1.899,48,1.432,114,2.153,115,1.813,219,2.831,279,0.938,378,3.619,470,2.116,477,2.302,484,2.162,496,3.351,505,1.718,521,1.95,524,2.673,531,3.381,538,2.464,567,5.004,572,3.071,574,3.897,579,3.828,604,2.684,715,2.935,891,2.27,900,2.603,1025,1.887,1043,3.244,1048,2.39,1059,2.606,1093,2.823,1675,2.823,1896,2.504,2096,2.773,2224,4.541,2733,3.594,2737,4.801,2744,2.39,2750,2.773,2816,3.859,2884,2.417,2921,2.537,3017,5.965,3194,3.642,3252,3.859,3507,5.636,3535,3.859,3709,3.642,3712,2.292,3733,3.859,3746,6.139,3755,3.859,3763,3.642,3873,4.188,3874,4.188,3875,4.188,3876,4.188,3877,4.188]],["title/915",[918,7.093]],["content/915",[]],["title/916",[2733,3.698]],["content/916",[48,2.864,65,2.504,279,1.877,482,2.773,500,4.729,586,4.632,1025,3.775,1029,5.01,1198,4.303,1386,4.891,1475,5.456,2878,3.401,2884,4.835,2926,5.548,3706,5.371,3707,4.499]],["title/917",[1645,3.151,3180,2.94,3705,3.812,3706,2.94]],["content/917",[35,3.616,55,2.256,65,2.208,101,3.672,111,4.083,454,1.626,495,3.793,500,4.169,524,3.047,582,3.512,646,3.328,720,2.454,939,5.558,1025,3.328,1094,5.176,1502,4.663,1645,5.073,1776,4.004,2539,5.721,2878,2.998,2913,3.17,3242,5.29,3706,4.734,3712,4.043,3878,7.386]],["title/918",[1540,3.737,2878,2.629]],["content/918",[34,3.223,65,3.22,71,2.697,240,4.594,308,4.077,524,3.563,646,3.891,864,5.624,2878,3.506,2913,4.623,3663,5.101,3729,4.983]],["title/919",[720,1.784,2878,2.18,3729,3.099]],["content/919",[18,1.25,24,3.201,65,2.467,185,3.719,495,4.24,524,3.406,720,2.743,1177,4.24,2020,5.212,2043,5.376,2878,3.351,2913,3.543,2918,5.564,3346,7.18,3663,4.876,3712,4.519,3729,4.763]],["title/920",[1377,3.655,2878,2.629]],["content/920",[65,3.189,100,3.934,240,4.525,308,4.016,492,3.65,524,3.509,646,3.832,2878,3.453,2913,3.65,3664,5.842,3729,4.908,3821,5.733,3846,7.837,3879,8.505]],["title/921",[2913,3.5]],["content/921",[24,2.982,65,3.324,114,2.555,115,2.151,458,4.091,495,5.138,524,3.172,582,3.656,720,3.324,790,5.008,889,2.938,1527,4.929,2043,5.008,2878,4.061,3663,4.542,3712,4.209,3821,5.183]],["title/922",[1776,3.51,2260,3.873]],["content/922",[54,5.467,65,2.467,416,4.564,1052,4.17,1776,6.234,2260,4.937,2667,5.67,2764,6.394,2913,3.543,3712,5.731,3814,7.18,3821,5.564,3880,8.255,3881,8.255]],["title/923",[2876,5.98]],["content/923",[181,5.541,229,3.871,309,3.994,458,4.206,524,3.262,956,3.962,1037,6.124,1052,3.994,1138,4.728,1249,5.798,1732,4.92,1776,5.521,2876,5.798,2878,3.21,2960,5.663,2984,5.95,3015,7.285,3712,4.328,3821,5.329]],["title/924",[1198,4.188]],["content/924",[65,2.467,185,3.719,194,3.139,233,3.463,517,3.65,579,4.876,1052,4.17,1198,4.24,1575,4.475,1868,5.786,2082,5.138,2733,3.743,2876,6.054,2878,3.351,2913,3.543,2984,6.213,3712,4.519]],["title/925",[24,1.779,867,2.743,2166,2.536,2929,3.553]],["content/925",[24,3.155,65,2.432,100,3.763,101,4.045,111,4.498,416,4.498,587,3.491,624,4.368,867,6.204,1265,5.215,2166,5.735,2733,3.689,2878,3.303,2913,3.491,3330,7.076,3772,6.761]],["title/926",[2926,4.289,3707,3.477]],["content/926",[20,4.053,35,3.233,49,1.823,71,2.062,101,3.283,175,3.481,308,3.118,483,4.451,524,2.724,538,2.511,579,3.901,619,3.854,720,2.194,918,5.743,1073,4.73,1177,3.392,1551,4,1575,3.579,1875,4,2020,4.169,2629,4.451,2733,4.098,2745,5.488,2797,4.373,2878,2.681,2918,4.451,2921,4,3197,4.843,3219,4.97,3721,5.488,3772,5.488,3882,6.603,3883,6.603]],["title/932",[111,3.58,3398,4.874]],["content/932",[]],["title/933",[481,6.317]],["content/933",[18,0.867,48,1.958,74,1.7,101,2.847,175,3.019,279,1.283,313,2.277,482,1.895,500,3.233,515,3.564,579,3.383,657,2.277,1025,4.3,1029,3.425,1033,4.014,1087,2.87,1198,2.941,1386,3.343,1475,3.73,1645,3.934,1676,4.436,1896,3.425,2020,3.616,2629,3.86,2733,3.71,2737,4.955,2739,3.425,2750,3.793,2797,3.793,2814,4.76,2878,2.325,2884,3.305,2926,3.793,2951,3.73,3017,4.31,3180,3.671,3226,4.436,3228,4.981,3705,4.76,3706,3.671,3707,3.075,3720,5.277,3884,5.727]],["title/934",[1386,3.78,3706,4.151]],["content/934",[35,3.351,65,2.046,101,3.403,150,2.722,175,3.609,229,3.351,311,2.824,454,1.507,491,5.02,495,3.516,568,3.784,744,3.996,790,4.458,939,5.151,1014,4.903,1106,2.508,1386,3.996,1656,3.71,2020,4.322,2733,4.199,2878,4.261,2913,3.974,3180,4.388,3242,4.903,3706,4.388,3712,5.069]],["title/935",[2733,2.937,2921,3.923]],["content/935",[34,1.887,48,1.729,65,2.935,71,1.579,114,1.68,115,1.415,185,3.367,240,2.69,279,1.133,308,2.387,309,2.554,332,1.836,378,2.824,454,1.113,458,2.69,482,1.673,507,2.768,531,2.157,538,1.923,540,3.348,570,3.805,574,2.209,586,2.795,623,3.024,664,2.354,720,2.483,777,3.062,790,3.293,891,2.741,1025,2.278,1106,1.853,1198,2.597,1262,3.805,1818,3.062,2224,3.544,2629,3.408,2733,2.293,2878,3.608,2913,3.814,3712,4.09,3726,3.805,3729,5.129,3730,4.046,3738,4.659,3746,3.916,3821,3.408,3885,5.056,3886,5.056]],["title/936",[311,1.893,313,1.824,1720,3.553,3712,2.511]],["content/936",[65,2.179,256,4.206,311,3.985,331,3.914,415,3.542,720,2.422,1038,3.809,1052,3.683,1106,2.671,1661,5.221,1776,5.236,2068,6.059,2224,5.109,2260,4.359,2733,3.306,2737,4.415,2764,5.647,2913,3.128,2960,5.221,2984,5.486,3180,4.673,3362,5.346,3387,6.34,3712,3.99]],["title/937",[1177,2.758,2926,3.556,3707,2.884]],["content/937",[48,2.399,64,2.536,65,2.097,279,1.572,332,2.548,482,2.322,487,5.28,720,2.331,915,3.202,994,4.497,1035,3.767,1177,4.836,1510,4.569,1545,3.96,2664,4.144,2719,5.831,2797,4.646,2878,3.823,2913,3.011,2921,4.25,2926,6.236,2936,4.569,3109,5.435,3707,3.767,3717,4.819,3746,5.435]],["title/938",[961,3.013,1059,2.491,2539,3.101,3242,2.867,3706,2.566]],["content/938",[8,1.094,24,2.956,34,1.939,65,2.279,184,3.148,185,2.341,311,2.144,331,2.79,492,2.23,495,3.916,720,1.727,729,5.344,731,5.591,867,3.108,889,1.986,961,7.487,1028,3.234,1052,2.625,1059,5.62,1098,2.933,1116,2.372,1386,3.033,1776,4.133,1957,4.52,2733,2.356,2791,4.319,2878,3.667,2912,5.906,2913,3.876,2944,4.025,3242,6.469,3652,4.52,3706,3.331,3712,4.173,3750,4.52,3758,6.631]],["title/939",[493,2.795,773,3.355]],["content/939",[8,0.885,62,3.091,65,3.506,100,4.596,150,2.452,308,2.912,393,3.559,477,2.191,773,3.195,961,4.642,1028,3.838,1059,3.838,1198,3.168,1404,4.323,1503,9.749,1527,3.954,2201,4.157,2419,5.126,2878,2.504,2913,2.647,3242,6.174,3712,3.376,3726,4.642,3758,7.498,3887,6.168,3888,6.168]],["title/940",[1776,2.911,2260,3.212,2876,3.938]],["content/940",[84,4.797,311,4.055,562,4.019,961,5.633,1059,4.658,1277,5.489,1563,4.319,1647,3.584,1720,5.797,1776,5.328,2260,5.878,2960,5.361,2984,5.633,3102,6.896,3175,5.245,3180,4.797,3712,6.007,3737,6.896,3855,6.896]],["title/941",[1132,3.296,1189,3.938,3889,4.949]],["content/941",[34,2.137,48,1.958,49,1.581,169,2.825,279,1.833,313,2.277,454,1.261,463,3.73,482,1.895,524,2.363,538,2.178,572,4.2,579,4.832,589,3.075,624,3.075,982,4.76,1018,4.436,1025,3.686,1276,4.014,1386,3.343,1494,4.76,1875,3.469,1896,3.425,2733,3.71,2737,4.955,2764,4.436,2797,3.793,2878,2.325,2884,3.305,2921,3.469,2926,3.793,3017,4.31,3226,4.436,3658,4.981,3706,3.671,3707,3.075,3712,3.135,3746,4.436,3863,5.277,3890,5.727,3891,5.727,3892,5.727]],["title/931",[114,2.152,115,1.812]],["content/931",[]],["title/942",[114,1.524,115,1.283,2166,2.536,3707,2.463]],["content/942",[]],["title/943",[1177,4.188]],["content/943",[64,4.279,394,5.163,460,2.57,484,2.601,526,3.469,621,3.165,661,4.267,1017,7.184,1177,4.004,3303,8.297,3893,7.796,3894,7.184,3895,7.796,3896,7.796,3897,7.796]],["title/944",[3766,6.526]],["content/944",[8,1.767,460,2.056,526,2.775,621,2.532,659,3.841,661,3.414,1098,6.953,1568,4.573,1664,4.204,2166,3.448,2638,4.693,2871,4.467,2910,5.183,3219,4.693,3671,4.693,3766,4.991,3898,6.236,3899,6.236,3900,6.236,3901,6.236,3902,6.236,3903,6.236,3904,6.236,3905,5.747]],["title/945",[773,2.782,1177,2.758,1921,3.689]],["content/945",[82,3.336,103,3.215,115,1.892,233,3.853,460,2.229,493,2.919,517,2.99,588,3.416,589,3.631,652,5.716,719,4.404,773,4.758,1135,4.74,1193,3.128,1671,7.634,1921,7.164,2082,4.209,3663,5.426,3717,4.645,3906,6.762,3907,6.762,3908,6.762,3909,6.762,3910,6.762,3911,6.762]],["title/946",[102,4.154]],["content/946",[65,2.701,78,3.513,100,4.18,102,4.603,108,2.599,254,4.053,398,5.949,773,5.739,956,3.309,1098,5.101,1136,4.233,1721,4.536,2249,4.97,2826,8.563,3663,6.544,3912,6.603,3913,6.603,3914,6.603,3915,6.603]],["title/947",[773,4.224]],["content/947",[8,1.86,244,5.07,460,2.011,538,2.32,657,2.426,712,2.943,773,3.16,1177,3.133,1479,5.07,1921,5.876,2049,3.695,3916,6.101,3917,7.883,3918,6.101,3919,5.622,3920,6.101,3921,7.883,3922,8.555,3923,9.879,3924,6.101,3925,7.883,3926,6.101]],["title/948",[493,3.52]],["content/948",[8,1.809,64,3.29,102,2.216,460,2.199,526,3.611,589,2.336,684,2.012,695,2.747,757,2.405,773,2.253,956,2.18,960,3.274,969,2.833,1085,3.274,1098,4.582,1177,4.169,1485,2.833,1568,3.19,1921,2.988,2262,3.37,2650,3.37,3094,4.009,3303,3.049,3440,8.609,3663,4.794,3707,2.336,3894,4.009,3905,7.479,3917,4.009,3919,4.009,3921,4.009,3925,4.009,3927,4.35,3928,4.35,3929,6.672,3930,4.35,3931,6.672,3932,4.35,3933,4.35,3934,4.35,3935,4.35]],["title/949",[3936,8.155]],["content/949",[8,1.006,62,3.516,64,3.404,65,2.097,99,3.267,115,1.963,460,2.313,493,3.029,582,4.477,1071,4.004,1131,3.879,1136,4.497,1177,4.836,1921,6.468,2889,7.294,2920,6.465,3172,6.102,3707,3.767,3806,8.19,3937,7.016,3938,7.016,3939,7.016,3940,7.016]],["title/950",[279,1.203,484,1.792,2735,3.212]],["content/950",[12,3.276,101,3.171,143,2.549,219,2.786,279,1.977,309,3.222,313,2.536,460,2.102,482,2.111,484,2.128,486,3.147,487,4.8,504,3.457,505,3.621,519,3.723,524,3.64,568,3.526,574,2.786,657,2.536,888,3.033,1002,4.299,1010,3.863,1025,2.874,1082,5.547,1389,4.47,1548,4.224,2219,4.299,2670,4.299,2844,5.301,2960,4.568,3079,4.8,3941,6.378,3942,6.378,3943,6.378]],["title/951",[1069,4.299]],["content/951",[18,1.081,64,3.098,65,2.134,69,1.587,99,2.215,104,1.274,105,4.27,143,1.901,240,3.798,279,1.066,308,2.245,454,1.047,484,1.587,486,4.229,494,3.488,501,3.333,505,1.952,529,2.215,545,2.245,569,3.684,691,2.464,888,2.261,917,2.844,952,2.656,976,2.215,1002,3.206,1021,3.003,1069,4.519,1157,2.629,1198,2.443,1389,3.333,1776,2.578,2016,3.684,2166,2.629,2317,3.333,2737,2.881,2739,2.844,2852,3.579,2853,3.488,2873,4.136,2878,1.931,2927,4.382,2972,4.382,2981,4.136,3119,3.953,3703,4.136,3707,2.554,3944,4.756,3945,4.756,3946,4.136,3947,4.136,3948,4.382,3949,4.756,3950,3.806,3951,4.136,3952,4.756,3953,4.382]],["title/952",[540,4.289,907,4.217]],["content/952",[484,3.534,907,6.899]],["title/953",[3544,6.778]],["content/953",[36,1.462,103,1.191,108,0.986,112,0.813,133,2.653,143,2.225,154,1.358,176,1.799,279,0.561,313,1.695,321,1.721,332,0.91,393,1.445,421,1.606,441,4.455,454,1.225,484,0.836,488,1.345,492,2.389,499,2.357,501,1.756,502,1.756,504,1.358,507,3.047,510,1.245,517,1.108,524,2.297,528,1.94,529,1.985,531,2.803,540,1.659,546,1.414,552,6.805,567,1.582,572,1.837,574,3.218,588,1.265,594,1.606,600,1.538,614,1.659,620,1.538,767,1.721,791,1.794,885,1.885,889,0.957,900,1.006,907,1.631,917,1.498,945,1.498,952,1.399,953,2.082,981,1.659,1006,1.559,1015,1.399,1020,4.189,1021,3.515,1024,2.005,1069,1.321,1091,1.885,1139,1.559,1204,2.583,1212,2.308,1395,1.659,1423,1.606,1474,2.082,1498,1.94,1528,1.721,1545,2.407,1594,2.179,1635,1.399,1677,2.082,1790,2.179,1818,2.583,1830,4.082,1896,1.498,2015,1.794,2040,2.179,2082,1.559,2088,2.179,2099,2.082,2292,1.559,2403,2.005,2668,2.988,2756,2.308,2827,1.94,2828,1.94,2829,1.94,2884,4.251,2904,2.082,2905,2.082,2934,2.308,2936,4.279,2951,1.631,2962,2.308,3051,2.005,3052,1.794,3116,2.308,3255,2.308,3524,2.308,3544,4.626,3713,2.179,3954,5.566,3955,3.929,3956,2.505,3957,2.505,3958,2.505,3959,2.505,3960,2.505,3961,2.505,3962,2.505,3963,2.505,3964,2.505,3965,2.505,3966,2.505,3967,2.505,3968,2.179]],["title/954",[672,4.379]],["content/954",[8,1.586,35,1.655,36,4.02,67,1.596,71,1.056,119,2.582,253,2.48,279,0.757,313,2.175,332,1.227,393,1.951,453,2.167,454,1.742,484,2.298,505,1.387,519,1.973,521,1.574,552,2.239,570,2.544,582,1.607,659,1.495,672,4.667,688,3.121,720,1.817,757,1.869,778,2.94,802,2.94,889,1.292,890,1.888,900,2.767,911,2.322,950,3.115,953,2.81,994,2.167,1021,3.453,1204,3.313,1209,2.239,1226,1.869,1245,2.705,1505,5.512,1830,2.479,2082,2.104,2135,4.116,2173,2.705,2599,2.94,2852,4.116,2853,7.179,2961,4.545,2981,2.94,3159,2.94,3175,2.369,3298,3.115,3671,2.544,3950,4.377,3951,2.94,3969,3.38,3970,3.38,3971,3.38,3972,3.38,3973,3.38,3974,3.38,3975,3.38,3976,5.469,3977,3.38,3978,3.38,3979,3.38,3980,5.469,3981,3.38,3982,5.469]],["title/955",[313,2.575,531,2.763]],["content/955",[37,1.601,49,1.413,77,2.141,105,4.51,112,1.012,143,2.046,146,2.495,154,1.69,219,1.362,233,1.308,241,1.122,249,1.504,253,1.414,306,2.278,313,2.036,436,2.749,439,1.841,454,1.66,460,1.028,474,1.864,482,1.032,485,1.482,491,2.286,499,1.724,501,2.185,502,2.185,504,4.088,505,3.095,529,2.384,531,1.33,552,2.064,559,1.601,562,1.674,585,1.968,588,1.575,621,1.266,623,1.864,657,1.24,688,2.921,695,1.968,720,1.701,913,1.724,935,2.415,976,1.452,981,2.064,1002,3.451,1010,3.101,1015,1.741,1038,1.629,1054,1.82,1079,2.233,1080,2.711,1081,1.94,1133,1.615,1204,1.888,1211,2.286,1226,1.724,1376,2.233,1387,4.453,1389,3.588,1395,6.264,1563,1.799,1662,1.94,1859,2.591,2016,3.966,2638,2.346,2670,2.101,2725,2.873,2846,2.711,3052,2.233,3076,2.591,3188,2.591,3327,2.873,3358,2.873,3667,2.591,3692,2.711,3802,2.591,3946,6.559,3947,6.559,3948,4.718,3983,3.117,3984,3.117,3985,3.117,3986,3.117,3987,3.117,3988,3.117,3989,6.514,3990,3.117,3991,3.117]],["title/956",[112,2.101,306,2.881]],["content/956",[18,0.341,24,0.474,28,0.714,32,0.44,34,0.841,35,0.598,49,1.258,50,1.622,54,1.492,62,0.613,64,0.814,69,0.408,78,1.198,82,1.111,88,1.9,104,0.328,105,0.731,112,1.478,134,0.652,143,0.9,150,0.486,154,1.221,162,1.347,176,0.95,194,0.857,219,0.534,229,1.103,233,0.513,241,2.824,253,0.554,279,0.702,306,2.908,313,2.433,321,0.84,331,1.682,332,0.818,393,0.705,398,1.682,421,1.444,436,1.682,440,1.749,443,0.731,454,1.246,455,0.656,474,0.731,482,0.405,483,0.824,484,1.52,485,0.581,486,1.111,493,0.528,501,0.857,504,0.663,506,0.978,513,0.656,514,1.3,517,0.54,519,2.272,522,1.872,524,1.606,531,3.348,538,0.857,540,0.809,552,0.809,563,1.285,581,0.544,587,3.368,594,1.444,613,1.745,615,1.444,616,1.063,622,0.947,623,0.731,641,0.603,643,1.579,652,0.761,657,0.486,672,2.446,684,1.8,688,2.221,720,0.406,735,0.784,773,0.633,796,0.69,884,1.016,885,0.92,888,0.581,889,3.622,903,2.506,917,1.347,954,0.978,976,0.569,982,1.016,994,0.784,1002,2.111,1010,1.364,1015,0.683,1021,1.978,1054,0.714,1064,0.947,1079,0.876,1106,0.448,1119,0.796,1123,0.74,1127,1.016,1140,1.126,1162,0.978,1163,1.126,1173,3.263,1192,1.016,1196,1.745,1204,0.74,1226,0.676,1250,0.896,1254,0.705,1265,0.784,1270,2.075,1327,0.809,1330,1.016,1376,2.243,1389,3.193,1395,3.746,1423,1.444,1496,0.876,1498,0.947,1505,0.978,1534,1.016,1541,1.745,1558,0.876,1573,5.29,1602,1.695,1693,1.016,1721,1.547,1760,0.824,1776,2.11,1818,0.74,1896,0.731,2026,0.947,2049,0.74,2082,0.761,2085,0.978,2096,0.809,2166,1.732,2219,0.824,2249,0.92,2316,0.698,2399,2.243,2629,2.624,2647,1.016,2651,0.896,2662,0.92,2664,0.722,2728,1.126,2796,0.784,2849,0.978,2853,0.896,2863,0.92,2875,1.126,2889,0.947,2904,1.872,2960,0.876,2961,1.016,3237,1.063,3264,2.886,3266,1.126,3349,1.959,3448,1.016,3475,1.063,3671,2.357,3692,1.063,3946,1.063,3947,1.063,3950,0.978,3951,1.063,3953,3.586,3992,1.222,3993,1.222,3994,1.222,3995,2.252,3996,1.222,3997,1.222,3998,1.222,3999,1.222,4000,1.222,4001,2.252,4002,1.222,4003,1.222,4004,2.252,4005,1.222,4006,1.222,4007,3.132,4008,1.222,4009,1.222,4010,1.222,4011,1.222,4012,1.222]],["title/957",[154,2.911,279,1.203,482,1.777]],["content/957",[35,3.088,154,3.419,194,2.398,240,3.355,279,2.253,439,3.725,482,2.087,492,2.706,507,3.452,537,4.251,546,3.56,552,6.66,574,3.824,586,3.487,604,4.042,651,6.173,1028,3.925,1054,3.681,1204,3.82,1749,4.251,1818,3.82,1830,6.42,1831,5.047,1832,5.811,1896,3.771,2096,4.176,2910,5.241,3206,4.332,4013,5.485,4014,6.306]],["title/958",[2724,6.317]],["content/958",[]],["title/959",[3685,5.016,4015,6.476]],["content/959",[552,6.76,1830,7.486,4016,10.208,4017,10.208]],["title/960",[598,6.317]],["content/960",[531,2.785,552,6.781,557,4.262,594,6.564,600,6.767,603,6.747,607,4.483,650,4.786,651,4.006,891,4.86,907,4.25,1020,6.747,1475,4.25,1675,4.399,1831,8.195,2905,5.424,4018,6.526,4019,6.526,4020,6.526,4021,8.965,4022,6.526]],["title/961",[546,3.655,2096,4.289]],["content/961",[49,1.684,111,4.73,241,2.196,279,1.917,313,3.401,458,3.245,482,3.269,484,3.296,520,5.116,531,4.215,546,5.577,568,3.373,574,2.665,579,3.604,672,3.276,889,2.331,899,4.725,1024,4.882,1025,2.749,1087,3.057,1575,3.307,1865,4.725,2096,6.542,2960,4.37,3410,5.306,3955,5.622,4023,6.101]],["title/962",[1115,3.064,1233,3.064,1276,3.764]],["content/962",[18,1.102,36,2.849,49,1.347,103,2.32,176,3.07,194,1.856,219,2.132,233,3.053,241,2.619,310,2.486,400,2.465,446,2.573,454,1.074,484,3.611,485,2.32,493,3.757,520,2.918,524,2.013,587,3.735,641,3.591,691,4.509,744,2.849,892,3.037,904,3.579,912,2.816,941,3.673,956,3.647,1025,2.199,1087,2.446,1226,2.698,1586,4.244,2096,6.836,2767,6.707,2841,3.905,2960,3.495,3163,4.244,3342,4.497,4024,6.33,4025,4.88,4026,4.88,4027,4.497]],["title/963",[1115,3.064,1233,3.064,1653,3.556]],["content/963",[0,1.235,18,0.413,35,1.334,84,1.746,99,1.268,111,3.834,133,1.695,143,1.089,154,1.477,162,1.629,194,1.036,219,1.19,279,2.25,378,3.306,393,1.572,397,1.243,400,2.312,408,1.59,436,1.463,446,1.436,454,1.702,458,2.435,482,1.959,484,3.117,486,1.344,495,1.399,499,2.53,501,1.909,502,1.909,519,1.59,524,1.124,529,1.268,531,1.162,532,1.951,538,1.036,546,4.365,552,1.804,567,2.89,568,1.506,574,3.658,582,1.295,586,1.506,623,1.629,683,1.72,691,1.411,720,1.521,777,2.772,888,1.295,889,2.262,892,1.695,896,2.641,912,1.572,915,1.243,952,2.556,969,1.774,1054,1.59,1204,3.585,1482,1.72,1494,2.264,1575,1.477,1711,1.65,1819,1.871,1830,3.356,1837,2.18,1908,2.369,2020,2.89,2037,2.264,2085,3.663,2096,6.187,2292,1.695,2418,3.085,2668,1.909,2760,2.264,2827,2.11,2828,2.11,2829,2.11,2863,3.444,2884,4.462,2904,2.264,2905,2.264,3434,2.51,4013,3.981,4028,2.724,4029,2.51,4030,5.454,4031,2.724,4032,2.51,4033,2.724]],["title/964",[194,2.463,565,3.873]],["content/964",[18,1.095,20,4.439,48,1.654,49,1.996,52,3.178,54,4.789,62,2.425,69,1.614,99,2.253,104,1.938,135,2.485,150,1.924,162,2.893,219,4.197,241,1.741,310,3.683,398,2.598,400,2.444,446,2.551,482,1.601,484,3.6,524,2.983,565,4.325,586,2.675,587,3.716,641,3.568,671,3.958,691,4.977,698,3.122,931,3.055,956,3.624,1025,3.258,4024,4.208,4027,4.458,4034,9.608]],["title/965",[519,3.78,2085,5.182]],["content/965",[8,1.22,84,5.452,103,4.044,108,3.348,194,3.235,224,7.066,495,4.368,517,3.761,519,4.965,1137,5.733,1653,5.633,2975,7.837,3385,7.837,4029,7.837]],["title/966",[4035,8.155]],["content/966",[162,5.995,454,2.207,617,6.886,2418,6.758,2735,5.995]],["title/967",[1620,3.993]],["content/967",[8,1.491,1620,5.09,2669,7.141]],["title/968",[409,3.298,816,3.737]],["content/968",[8,1.77,119,3.629,162,5.788,2418,6.525,4036,9.679]],["title/969",[4037,8.155]],["content/969",[484,3.286,581,4.382,587,4.227,691,5.102,1620,4.822,4038,9.849]],["title/970",[1620,3.993]],["content/970",[8,1.491,1620,5.09,2669,7.141]],["title/971",[409,3.298,816,3.737]],["content/971",[8,1.52,409,5.396]],["title/972",[4039,8.155]],["content/972",[194,3.882,617,7.012,691,5.288,2735,6.104]],["title/973",[1620,3.993]],["content/973",[8,1.52,2669,7.276]],["title/974",[409,3.298,816,3.737]],["content/974",[8,1.874,104,2.06,119,4.169,219,3.359,248,4.785,249,4.826,404,5.956,691,5.182,4040,7.086,4041,5.956]],["title/975",[3459,7.514]],["content/975",[18,1.575,99,4.841,446,5.481]],["title/976",[1620,3.993]],["content/976",[6,3.167,8,1.696,18,1.453,32,2.082,48,1.978,49,1.597,50,2.997,55,2.517,61,3.266,88,3.437,112,2.674,114,2.738,115,2.306,119,2.169,134,1.675,147,5.032,242,2.771,243,3.709,253,2.624,406,2.877,454,1.274,486,2.855,664,2.694,672,3.107,888,2.751,889,2.211,1008,3.302,1366,5.032,1403,3.377,1867,3.505,3084,5.032,4042,5.332,4043,5.786]],["title/977",[409,3.298,816,3.737]],["content/977",[8,1.767,18,1.197,104,2.118,119,2.964,253,5.397,308,3.733,310,5.188,315,6.571,316,6.571,1359,6.571,1742,5.149,4044,6.876]],["title/978",[4045,8.155]],["content/978",[219,4.542,664,4.841,888,4.943]],["title/979",[1620,3.993]],["content/979",[8,1.77,119,3.629,219,4.228,249,5.571]],["title/980",[409,3.298,816,3.737]],["content/980",[8,1.774,18,1.214,104,2.149,119,3.007,253,5.426,308,3.786,310,5.235,315,6.665,316,6.665,1359,6.665,4044,6.975]],["title/981",[4046,8.155]],["content/981",[219,4.542,888,4.943,1377,5.869]],["title/982",[1620,3.993]],["content/982",[8,1.77,119,3.629,219,4.228,249,5.571]],["title/983",[409,3.298,816,3.737]],["content/983",[8,1.774,18,1.214,104,2.149,119,3.007,253,5.426,308,3.786,310,5.235,315,6.665,316,6.665,1359,6.665,4044,6.975]],["title/984",[4047,8.155]],["content/984",[219,4.302,563,5.62,617,6.765,888,4.683,903,7.882,2735,5.89]],["title/985",[1620,3.993]],["content/985",[8,1.52,2669,7.276]],["title/986",[409,3.298,816,3.737]],["content/986",[8,1.878,119,4.197,219,3.406,379,3.761,671,4.267,686,5.962,916,4.499,1012,6.48,4048,7.796,4049,7.796]],["title/987",[4050,8.155]],["content/987",[48,3.253,49,2.627,52,5.024,219,4.157,671,5.208,698,4.107,753,7.908]],["title/988",[1620,3.993]],["content/988",[8,1.678,74,2.007,119,3.444,219,4.012,241,2.434,249,3.262,253,3.067,454,1.489,659,2.99,664,3.149,671,5.709,698,3.965,913,3.739,916,5.3,948,5.563,1403,5.361,1540,3.902,2060,4.959,4041,5.238,4051,5.62]],["title/989",[409,3.298,816,3.737]],["content/989",[8,1.732,48,3.146,49,2.54,52,4.045,58,5.504,119,3.451,219,4.02,698,3.973]],["title/990",[4052,8.155]],["content/990",[52,5.128,104,2.639,219,4.302,671,5.391,698,4.252]],["title/991",[1620,3.993]],["content/991",[8,1.678,74,2.007,119,3.444,219,4.012,241,2.434,249,3.262,253,3.067,454,1.489,659,2.99,664,3.149,671,5.709,698,3.965,913,3.739,916,5.3,948,5.563,1403,5.361,1540,3.902,2060,4.959,4041,5.238,4051,5.62]],["title/992",[409,3.298,816,3.737]],["content/992",[8,1.77,104,3.094,119,3.629,671,5.298]],["title/993",[4053,8.155]],["content/993",[587,4.302,617,6.886,691,5.193,2664,5.922,2735,5.995]],["title/994",[1620,3.993]],["content/994",[8,1.52,2669,7.276]],["title/995",[409,3.298,816,3.737]],["content/995",[8,1.79,104,2.212,119,4.312,219,3.606,248,5.138,249,5.051,404,6.394,691,4.276,4040,7.607,4041,6.394]],["title/996",[4054,8.155]],["content/996",[18,1.575,446,5.481,523,6.565]],["title/997",[1620,3.993]],["content/997",[8,1.797,18,1.518,32,1.642,55,2.114,88,2.886,112,2.245,114,1.516,115,1.277,119,3.498,147,3.968,219,3.023,225,7.027,241,1.642,249,2.201,253,2.069,436,2.45,446,3.648,454,1.523,472,5.751,509,3.346,664,2.125,671,2.497,888,2.169,916,2.633,945,2.729,1008,2.604,1403,2.663,1540,2.633,1867,2.764,2654,4.204,3084,3.968,3950,3.651,3968,6.018,4041,3.534,4042,4.204,4051,3.792,4055,4.204,4056,4.204,4057,4.204]],["title/998",[409,3.298,816,3.737]],["content/998",[8,1.793,18,1.257,48,3.3,49,2.665,52,2.569,104,2.224,119,3.94,135,4.958,151,3.638,282,5.387,284,5.387,285,5.387,332,3.014,375,3.11,376,3.941,377,3.3,379,2.82,380,4.876,454,1.287,477,2.077,504,3.169,4058,5.846]],["title/999",[4059,8.155]],["content/999",[446,5.481,523,6.565,2669,7.141]],["title/1000",[1620,3.993]],["content/1000",[7,3.103,8,1.815,119,3.681,144,3.348,219,3.264,225,7.342,241,1.82,249,2.439,411,2.824,436,2.715,446,4.686,448,4.046,454,1.113,472,6.21,509,3.708,664,2.354,671,2.768,916,2.917,945,3.024,1403,2.951,1540,2.917,2669,7.532,3950,4.046,3968,6.499,4041,3.916,4051,4.202,4055,4.659,4056,4.659,4057,4.659,4060,5.056]],["title/1001",[409,3.298,816,3.737]],["content/1001",[8,1.889,119,3.341,446,4.698,2669,6.121,4061,10.983]],["title/1002",[3889,7.514]],["content/1002",[8,0.559,111,2.155,133,2.425,154,2.112,194,1.482,241,1.402,279,1.696,309,1.969,313,1.55,378,3.422,393,2.249,397,1.779,454,0.858,458,2.073,482,2.027,484,2.862,486,1.923,519,2.275,531,2.614,532,2.791,546,4.843,567,2.461,574,4.074,582,1.853,605,2.392,623,2.33,661,2.133,695,2.461,889,1.489,896,3.535,898,2.133,976,1.815,1076,2.249,1087,1.953,1204,3.711,1219,3.119,1226,2.155,1477,2.275,1482,2.461,1494,3.239,1498,3.019,1616,3.019,1643,2.425,1711,2.36,1830,4.492,1837,3.119,1865,3.019,2020,3.868,2096,4.057,2668,2.731,2710,2.731,2721,5.696,2722,3.239,2761,3.591,2824,2.731,2884,3.535,4013,5.328,4024,3.389,4030,6.975,4032,3.591,4062,3.897,4063,3.897,4064,3.897,4065,7.569,4066,3.897]],["title/1003",[539,3.58,1565,4.217]],["content/1003",[14,2.769,21,4.589,32,3.361,45,3.205,55,2.117,97,3.954,175,3.653,332,3.391,393,3.999,454,2.056,469,4.671,539,3.831,542,6.027,567,4.375,655,3.227,889,2.648,1079,4.963,1535,4.76,1565,6.878,1656,3.756,4067,6.93,4068,6.93,4069,6.93,4070,6.93,4071,6.93]]],"invertedIndex":[["",{"_index":8,"title":{"239":{},"240":{},"283":{},"293":{},"388":{},"421":{},"567":{},"568":{},"569":{},"570":{},"571":{},"572":{},"573":{},"574":{},"575":{},"576":{},"577":{},"578":{},"579":{},"580":{},"581":{},"582":{},"583":{},"584":{},"585":{},"586":{},"587":{},"588":{},"589":{},"590":{},"591":{},"592":{},"593":{},"594":{},"595":{},"596":{},"608":{},"620":{},"702":{},"708":{},"855":{},"871":{},"872":{},"883":{},"904":{}},"content":{"2":{},"5":{},"6":{},"7":{},"10":{},"11":{},"12":{},"13":{},"15":{},"16":{},"18":{},"19":{},"21":{},"22":{},"24":{},"25":{},"28":{},"29":{},"31":{},"32":{},"34":{},"35":{},"37":{},"38":{},"40":{},"41":{},"43":{},"44":{},"46":{},"47":{},"48":{},"49":{},"50":{},"52":{},"53":{},"54":{},"55":{},"56":{},"58":{},"59":{},"61":{},"62":{},"64":{},"65":{},"67":{},"68":{},"70":{},"71":{},"73":{},"74":{},"75":{},"76":{},"77":{},"79":{},"80":{},"82":{},"83":{},"86":{},"87":{},"89":{},"90":{},"92":{},"93":{},"95":{},"96":{},"98":{},"99":{},"102":{},"103":{},"105":{},"106":{},"108":{},"109":{},"111":{},"112":{},"114":{},"115":{},"117":{},"118":{},"120":{},"121":{},"123":{},"124":{},"125":{},"128":{},"129":{},"131":{},"132":{},"138":{},"139":{},"141":{},"142":{},"144":{},"145":{},"147":{},"148":{},"150":{},"151":{},"157":{},"159":{},"165":{},"167":{},"169":{},"171":{},"177":{},"179":{},"183":{},"185":{},"187":{},"189":{},"198":{},"199":{},"201":{},"202":{},"206":{},"208":{},"212":{},"213":{},"214":{},"216":{},"217":{},"218":{},"219":{},"220":{},"221":{},"224":{},"225":{},"227":{},"230":{},"238":{},"244":{},"247":{},"267":{},"268":{},"269":{},"271":{},"276":{},"295":{},"345":{},"346":{},"350":{},"360":{},"368":{},"375":{},"376":{},"377":{},"378":{},"380":{},"381":{},"382":{},"383":{},"384":{},"385":{},"387":{},"388":{},"389":{},"392":{},"395":{},"396":{},"399":{},"400":{},"401":{},"403":{},"404":{},"405":{},"406":{},"407":{},"409":{},"411":{},"413":{},"414":{},"415":{},"417":{},"418":{},"420":{},"421":{},"422":{},"427":{},"428":{},"430":{},"431":{},"432":{},"433":{},"434":{},"435":{},"436":{},"437":{},"438":{},"439":{},"441":{},"442":{},"443":{},"451":{},"456":{},"464":{},"465":{},"468":{},"471":{},"472":{},"473":{},"475":{},"476":{},"477":{},"478":{},"479":{},"481":{},"482":{},"483":{},"484":{},"485":{},"486":{},"487":{},"488":{},"489":{},"490":{},"491":{},"492":{},"493":{},"494":{},"496":{},"497":{},"498":{},"499":{},"500":{},"501":{},"502":{},"503":{},"505":{},"506":{},"507":{},"508":{},"510":{},"511":{},"512":{},"519":{},"520":{},"521":{},"522":{},"523":{},"524":{},"525":{},"526":{},"527":{},"529":{},"532":{},"533":{},"534":{},"535":{},"536":{},"537":{},"538":{},"547":{},"548":{},"549":{},"550":{},"563":{},"567":{},"568":{},"569":{},"570":{},"571":{},"572":{},"573":{},"574":{},"575":{},"576":{},"577":{},"578":{},"579":{},"580":{},"581":{},"582":{},"583":{},"584":{},"585":{},"586":{},"587":{},"588":{},"589":{},"590":{},"591":{},"592":{},"593":{},"594":{},"595":{},"596":{},"608":{},"613":{},"620":{},"639":{},"672":{},"685":{},"688":{},"696":{},"700":{},"749":{},"751":{},"758":{},"759":{},"760":{},"761":{},"762":{},"782":{},"792":{},"793":{},"797":{},"805":{},"808":{},"811":{},"819":{},"820":{},"843":{},"873":{},"880":{},"886":{},"898":{},"938":{},"939":{},"944":{},"947":{},"948":{},"949":{},"954":{},"965":{},"967":{},"968":{},"970":{},"971":{},"973":{},"974":{},"976":{},"977":{},"979":{},"980":{},"982":{},"983":{},"985":{},"986":{},"988":{},"989":{},"991":{},"992":{},"994":{},"995":{},"997":{},"998":{},"1000":{},"1001":{},"1002":{}}}],["0",{"_index":659,"title":{},"content":{"216":{},"217":{},"218":{},"219":{},"223":{},"228":{},"229":{},"232":{},"251":{},"268":{},"269":{},"270":{},"275":{},"286":{},"375":{},"376":{},"377":{},"378":{},"379":{},"385":{},"388":{},"392":{},"404":{},"405":{},"407":{},"413":{},"420":{},"421":{},"438":{},"440":{},"441":{},"442":{},"443":{},"472":{},"481":{},"482":{},"487":{},"493":{},"494":{},"510":{},"511":{},"535":{},"537":{},"538":{},"550":{},"558":{},"642":{},"746":{},"819":{},"886":{},"903":{},"904":{},"944":{},"954":{},"988":{},"991":{}}}],["0,1",{"_index":2489,"title":{},"content":{"487":{}}}],["0.01",{"_index":1779,"title":{},"content":{"349":{},"695":{},"696":{},"700":{}}}],["0.013",{"_index":3899,"title":{},"content":{"944":{}}}],["0.02",{"_index":1755,"title":{},"content":{"345":{}}}],["0.024",{"_index":3900,"title":{},"content":{"944":{}}}],["0.043",{"_index":3901,"title":{},"content":{"944":{}}}],["0.077",{"_index":3902,"title":{},"content":{"944":{}}}],["0.1",{"_index":3183,"title":{},"content":{"685":{},"875":{}}}],["0.139",{"_index":3903,"title":{},"content":{"944":{}}}],["0.2",{"_index":2238,"title":{},"content":{"417":{},"508":{}}}],["0.22",{"_index":3640,"title":{},"content":{"820":{}}}],["0.23",{"_index":3639,"title":{},"content":{"820":{}}}],["0.25",{"_index":3740,"title":{},"content":{"875":{}}}],["0.251",{"_index":3904,"title":{},"content":{"944":{}}}],["0.3",{"_index":3837,"title":{},"content":{"903":{},"904":{}}}],["0.35",{"_index":3742,"title":{},"content":{"875":{}}}],["0.42w",{"_index":3196,"title":{},"content":{"685":{}}}],["0.453",{"_index":3905,"title":{},"content":{"944":{},"948":{}}}],["0.5",{"_index":3743,"title":{},"content":{"875":{}}}],["0.8404452690166976",{"_index":3931,"title":{},"content":{"948":{}}}],["0.9",{"_index":2039,"title":{},"content":{"385":{}}}],["0/0",{"_index":3171,"title":{},"content":{"694":{}}}],["00",{"_index":872,"title":{},"content":{"212":{},"746":{}}}],["000",{"_index":3048,"title":{},"content":{"664":{}}}],["0000000000",{"_index":2277,"title":{},"content":{"433":{}}}],["000012345",{"_index":2267,"title":{},"content":{"430":{},"452":{},"454":{}}}],["00001ab",{"_index":2127,"title":{},"content":{"401":{}}}],["00001abc",{"_index":2063,"title":{},"content":{"390":{}}}],["00001ac8...4f",{"_index":3463,"title":{},"content":{"762":{}}}],["00001bc",{"_index":2128,"title":{},"content":{"401":{}}}],["00002223bbd4ec3d64ae597696c7d7ade1cee65c639d885450ad2d7b75592ac76afa",{"_index":2700,"title":{},"content":{"548":{}}}],["000023456",{"_index":2360,"title":{},"content":{"454":{}}}],["00003bafdfb7a8e66b59de5692b79088063853bbd69a7d555faec906e6215e57ff98",{"_index":2171,"title":{},"content":{"407":{}}}],["000056789",{"_index":2266,"title":{},"content":{"430":{},"431":{}}}],["00005da88a4adaf5b40c958a20db981bd168008e03efbb7fc9d35e11be182a0d3065",{"_index":3634,"title":{},"content":{"819":{}}}],["0000ab12",{"_index":2130,"title":{},"content":{"401":{}}}],["0000abcd...ef",{"_index":3461,"title":{},"content":{"762":{}}}],["0000ba28ce06631ff2ef4fe3dc89a34be13c0d252f8952bbfa3173b03dbef3c04afd",{"_index":2172,"title":{},"content":{"407":{}}}],["0000c13373c96538b468ccdab8f95fdc3744ebfa2cd36a81c3791b2a205705d9c3a2",{"_index":3457,"title":{},"content":{"760":{},"761":{}}}],["0000d574d171a484f8deac2d61fc3f7cc984beb52465d69b3b5f670090742cbf5cca",{"_index":2206,"title":{},"content":{"420":{}}}],["0000f1fd",{"_index":3458,"title":{},"content":{"761":{}}}],["000108a5c",{"_index":2273,"title":{},"content":{"432":{}}}],["000abcd",{"_index":2017,"title":{},"content":{"382":{}}}],["000abcd123",{"_index":2023,"title":{},"content":{"382":{}}}],["0014ac",{"_index":2291,"title":{},"content":{"437":{}}}],["00743b809adde7e1e3e9b5afb704813d06155958fbbb78cd052cc45a1b19f976b",{"_index":1570,"title":{},"content":{"314":{}}}],["00:00",{"_index":1765,"title":{},"content":{"346":{}}}],["00:00:00",{"_index":3409,"title":{},"content":{"747":{}}}],["00:00am",{"_index":3493,"title":{},"content":{"769":{}}}],["00abcd",{"_index":2281,"title":{},"content":{"434":{},"472":{}}}],["00bcde",{"_index":2393,"title":{},"content":{"472":{}}}],["00efab",{"_index":2284,"title":{},"content":{"435":{},"436":{},"437":{}}}],["01",{"_index":3095,"title":{},"content":{"674":{}}}],["01/08/2024",{"_index":3781,"title":{},"content":{"883":{}}}],["01309f1c765967ac7",{"_index":3096,"title":{},"content":{"674":{}}}],["01ab2cd",{"_index":3601,"title":{},"content":{"805":{}}}],["02",{"_index":726,"title":{},"content":{"212":{},"217":{},"558":{},"756":{}}}],["02/11/2021",{"_index":3406,"title":{},"content":{"747":{}}}],["02:00am",{"_index":3488,"title":{},"content":{"766":{},"767":{}}}],["03/11/2021",{"_index":3408,"title":{},"content":{"747":{}}}],["04",{"_index":727,"title":{},"content":{"213":{},"217":{},"218":{},"277":{}}}],["04xi",{"_index":725,"title":{},"content":{"217":{},"221":{},"225":{}}}],["05/17/2024",{"_index":3794,"title":{},"content":{"890":{}}}],["07/17/2024",{"_index":3795,"title":{},"content":{"890":{}}}],["08",{"_index":817,"title":{},"content":{"214":{},"219":{},"378":{}}}],["09",{"_index":1983,"title":{},"content":{"378":{}}}],["0ac1bfa9",{"_index":3602,"title":{},"content":{"805":{}}}],["0ac7fj",{"_index":3605,"title":{},"content":{"805":{}}}],["0d574d171a484f8deac2d61fc3f7cc984beb52465d69b3b5f670090742cbf5cc",{"_index":2241,"title":{},"content":{"418":{}}}],["0f",{"_index":3390,"title":{},"content":{"731":{}}}],["0fb27dac",{"_index":3598,"title":{},"content":{"805":{}}}],["0th",{"_index":1556,"title":{},"content":{"314":{}}}],["0x",{"_index":2019,"title":{},"content":{"382":{}}}],["0x00",{"_index":1220,"title":{},"content":{"267":{}}}],["0x0000",{"_index":694,"title":{},"content":{"217":{}}}],["0x00001234ab",{"_index":2182,"title":{},"content":{"409":{}}}],["0x00001ac8...4f",{"_index":3465,"title":{},"content":{"762":{}}}],["0x00002223bbd4ec3d64ae597696c7d7ade1cee65c639d885450ad2d7b75592ac76afa",{"_index":1976,"title":{},"content":{"378":{}}}],["0x0000238c3a9cb5bfb7a863d698b71dfff0c9c5c40cff21ebda2d83ebaedda1c6e10d",{"_index":1978,"title":{},"content":{"378":{}}}],["0x0000993f3be0ce40541e47735aa083854ecac7785b39435c90d8456c777b9e9d81f1",{"_index":1923,"title":{},"content":{"376":{}}}],["0x0000a3a066dd64fbd51ae384f2383684b3803bc72012bfeaa9cd1c93ab7c60f584dc",{"_index":1926,"title":{},"content":{"376":{}}}],["0x0000abcd...ef",{"_index":3466,"title":{},"content":{"762":{}}}],["0x000abcd",{"_index":2022,"title":{},"content":{"382":{}}}],["0x000abcd123",{"_index":2024,"title":{},"content":{"382":{}}}],["0x00abc",{"_index":2137,"title":{},"content":{"401":{}}}],["0x00abcd",{"_index":2299,"title":{},"content":{"438":{},"441":{}}}],["0x00abd",{"_index":2322,"title":{},"content":{"442":{}}}],["0x00bcde",{"_index":2311,"title":{},"content":{"441":{}}}],["0x00def",{"_index":2138,"title":{},"content":{"401":{}}}],["0x00defa",{"_index":2325,"title":{},"content":{"442":{},"443":{}}}],["0x00fedc",{"_index":2313,"title":{},"content":{"441":{}}}],["0x04",{"_index":1221,"title":{},"content":{"267":{}}}],["0x06",{"_index":1303,"title":{},"content":{"269":{}}}],["0x0b",{"_index":1304,"title":{},"content":{"269":{}}}],["0x1234",{"_index":2331,"title":{},"content":{"427":{},"428":{}}}],["0x14",{"_index":1311,"title":{},"content":{"269":{}}}],["0x1a",{"_index":1292,"title":{},"content":{"269":{}}}],["0x1b",{"_index":1309,"title":{},"content":{"269":{}}}],["0x24",{"_index":1299,"title":{},"content":{"269":{}}}],["0x33",{"_index":1310,"title":{},"content":{"269":{}}}],["0x374c7527733556",{"_index":2397,"title":{},"content":{"473":{}}}],["0x3c720206bfacb2d16fa3ac0ed87d2048dbc401fc",{"_index":2881,"title":{},"content":{"639":{}}}],["0x44",{"_index":1288,"title":{},"content":{"269":{}}}],["0x46",{"_index":1296,"title":{},"content":{"269":{}}}],["0x52",{"_index":1301,"title":{},"content":{"269":{}}}],["0x64",{"_index":1305,"title":{},"content":{"269":{}}}],["0x67",{"_index":1287,"title":{},"content":{"269":{}}}],["0x69",{"_index":1312,"title":{},"content":{"269":{}}}],["0x6e",{"_index":1302,"title":{},"content":{"269":{}}}],["0x71",{"_index":1285,"title":{},"content":{"269":{}}}],["0x82",{"_index":1414,"title":{},"content":{"288":{}}}],["0x83",{"_index":1284,"title":{},"content":{"269":{}}}],["0x84",{"_index":1289,"title":{},"content":{"269":{}}}],["0x8a3d77e9d6968b780564936d15b09805827c21fa",{"_index":2880,"title":{},"content":{"639":{}}}],["0x8d",{"_index":1295,"title":{},"content":{"269":{}}}],["0x90",{"_index":1293,"title":{},"content":{"269":{}}}],["0x9000",{"_index":668,"title":{},"content":{"216":{}}}],["0x95",{"_index":1415,"title":{},"content":{"288":{}}}],["0x97",{"_index":1286,"title":{},"content":{"269":{}}}],["0xa1",{"_index":1307,"title":{},"content":{"269":{}}}],["0xa5",{"_index":1297,"title":{},"content":{"269":{}}}],["0xaa",{"_index":1313,"title":{},"content":{"269":{}}}],["0xb001f1e7c8bda414ac7cf7ecba5469fe8d24b6d",{"_index":2883,"title":{},"content":{"639":{}}}],["0xb3",{"_index":1290,"title":{},"content":{"269":{}}}],["0xbaddecod",{"_index":794,"title":{},"content":{"218":{},"219":{}}}],["0xcc",{"_index":1294,"title":{},"content":{"269":{}}}],["0xd7",{"_index":1298,"title":{},"content":{"269":{}}}],["0xda",{"_index":1308,"title":{},"content":{"269":{}}}],["0xf2",{"_index":1306,"title":{},"content":{"269":{}}}],["0xf8",{"_index":1291,"title":{},"content":{"269":{}}}],["0xf9",{"_index":1455,"title":{},"content":{"300":{}}}],["0xfd",{"_index":1300,"title":{},"content":{"269":{}}}],["0xffff",{"_index":682,"title":{},"content":{"217":{}}}],["1",{"_index":460,"title":{"401":{},"802":{},"835":{},"897":{},"906":{},"909":{},"913":{}},"content":{"170":{},"213":{},"214":{},"219":{},"227":{},"228":{},"229":{},"232":{},"233":{},"268":{},"271":{},"314":{},"322":{},"360":{},"361":{},"374":{},"375":{},"376":{},"377":{},"378":{},"379":{},"380":{},"384":{},"385":{},"388":{},"389":{},"390":{},"395":{},"398":{},"400":{},"401":{},"404":{},"406":{},"408":{},"409":{},"410":{},"420":{},"421":{},"423":{},"434":{},"436":{},"441":{},"443":{},"448":{},"452":{},"464":{},"477":{},"478":{},"481":{},"486":{},"487":{},"490":{},"493":{},"494":{},"508":{},"532":{},"533":{},"534":{},"535":{},"536":{},"537":{},"538":{},"547":{},"548":{},"549":{},"550":{},"567":{},"568":{},"569":{},"570":{},"571":{},"572":{},"589":{},"590":{},"591":{},"592":{},"593":{},"594":{},"642":{},"645":{},"655":{},"656":{},"658":{},"685":{},"696":{},"700":{},"747":{},"750":{},"758":{},"759":{},"761":{},"762":{},"792":{},"805":{},"808":{},"820":{},"881":{},"885":{},"907":{},"910":{},"913":{},"914":{},"943":{},"944":{},"945":{},"947":{},"948":{},"949":{},"950":{},"955":{}}}],["1,2",{"_index":2033,"title":{},"content":{"384":{},"486":{}}}],["1,2,3",{"_index":2252,"title":{},"content":{"422":{},"477":{},"478":{},"489":{},"491":{}}}],["1,2,3,4",{"_index":2477,"title":{},"content":{"485":{}}}],["1,2,3,4,5",{"_index":2044,"title":{},"content":{"386":{}}}],["1..10",{"_index":2046,"title":{},"content":{"387":{}}}],["1..5",{"_index":2042,"title":{},"content":{"386":{}}}],["1.0",{"_index":2032,"title":{},"content":{"384":{},"385":{},"418":{},"420":{}}}],["1.0e2",{"_index":2011,"title":{},"content":{"381":{}}}],["1.1",{"_index":2038,"title":{},"content":{"385":{},"388":{}}}],["1.1.0",{"_index":2203,"title":{},"content":{"402":{}}}],["1.18",{"_index":3688,"title":{},"content":{"843":{}}}],["1.2",{"_index":2359,"title":{},"content":{"454":{}}}],["1.3",{"_index":2684,"title":{},"content":{"549":{}}}],["1/3",{"_index":3236,"title":{},"content":{"696":{}}}],["10",{"_index":1767,"title":{},"content":{"346":{},"409":{},"508":{},"567":{},"568":{},"569":{},"570":{},"571":{},"572":{},"612":{},"655":{},"685":{},"696":{},"734":{},"758":{},"881":{}}}],["100",{"_index":2012,"title":{},"content":{"381":{},"564":{},"612":{},"613":{},"663":{},"664":{}}}],["100.12345678",{"_index":2955,"title":{},"content":{"652":{}}}],["100.123456789123456789",{"_index":2954,"title":{},"content":{"652":{}}}],["1000",{"_index":3440,"title":{},"content":{"758":{},"760":{},"761":{},"948":{}}}],["10000",{"_index":1898,"title":{},"content":{"375":{},"421":{}}}],["100000",{"_index":3446,"title":{},"content":{"758":{}}}],["100000000",{"_index":2207,"title":{},"content":{"420":{},"759":{},"761":{},"762":{}}}],["100000000000",{"_index":3439,"title":{},"content":{"758":{},"760":{}}}],["1095",{"_index":3785,"title":{},"content":{"885":{}}}],["10:00:00",{"_index":3407,"title":{},"content":{"747":{}}}],["10_000",{"_index":2008,"title":{},"content":{"381":{}}}],["10_000.0",{"_index":2009,"title":{},"content":{"381":{}}}],["10min",{"_index":3262,"title":{},"content":{"708":{}}}],["11",{"_index":3302,"title":{"724":{}},"content":{"724":{}}}],["11.25",{"_index":3777,"title":{},"content":{"881":{}}}],["11100000",{"_index":1813,"title":{},"content":{"361":{}}}],["11155111",{"_index":2865,"title":{},"content":{"638":{}}}],["11:30pm",{"_index":3486,"title":{},"content":{"765":{}}}],["11_250_000",{"_index":3896,"title":{},"content":{"943":{}}}],["12",{"_index":2599,"title":{},"content":{"521":{},"535":{},"954":{}}}],["12.1",{"_index":2602,"title":{},"content":{"521":{}}}],["123",{"_index":2576,"title":{},"content":{"512":{}}}],["123456",{"_index":2566,"title":{},"content":{"510":{}}}],["128",{"_index":1317,"title":{},"content":{"269":{}}}],["12:00",{"_index":3908,"title":{},"content":{"945":{}}}],["12:03",{"_index":3906,"title":{},"content":{"945":{}}}],["12:57",{"_index":3907,"title":{},"content":{"945":{}}}],["13",{"_index":2605,"title":{},"content":{"522":{},"808":{}}}],["13.2",{"_index":2607,"title":{},"content":{"522":{}}}],["1391309040",{"_index":2248,"title":{},"content":{"418":{}}}],["13:00",{"_index":3909,"title":{},"content":{"945":{}}}],["14",{"_index":2711,"title":{},"content":{"554":{}}}],["14.26239",{"_index":2307,"title":{},"content":{"439":{}}}],["14.26239591",{"_index":2315,"title":{},"content":{"441":{}}}],["1405",{"_index":2893,"title":{"644":{}},"content":{}}],["15",{"_index":1984,"title":{},"content":{"378":{}}}],["15.5",{"_index":2332,"title":{},"content":{"427":{},"428":{}}}],["16",{"_index":770,"title":{},"content":{"218":{},"219":{},"225":{},"577":{},"578":{},"579":{},"580":{},"581":{},"582":{},"583":{}}}],["1622801400",{"_index":1754,"title":{},"content":{"345":{}}}],["1674564088",{"_index":2170,"title":{},"content":{"407":{}}}],["1676332800",{"_index":2632,"title":{},"content":{"534":{}}}],["1677493444",{"_index":2624,"title":{},"content":{"527":{}}}],["1677598185",{"_index":2168,"title":{},"content":{"407":{}}}],["1689857160",{"_index":1893,"title":{},"content":{"374":{}}}],["1693519200",{"_index":2643,"title":{},"content":{"537":{}}}],["1693605600",{"_index":2644,"title":{},"content":{"537":{}}}],["1694728800",{"_index":1974,"title":{},"content":{"378":{}}}],["16byte",{"_index":782,"title":{},"content":{"218":{},"219":{}}}],["18",{"_index":2952,"title":{"760":{}},"content":{"652":{},"756":{},"760":{},"761":{}}}],["180",{"_index":3783,"title":{},"content":{"885":{}}}],["181812.87",{"_index":2296,"title":{},"content":{"438":{}}}],["19",{"_index":3436,"title":{"761":{}},"content":{"756":{},"761":{}}}],["197",{"_index":3047,"title":{},"content":{"664":{}}}],["1:1",{"_index":2949,"title":{},"content":{"650":{}}}],["1\\ncondit",{"_index":2352,"title":{},"content":{"451":{}}}],["1e731fb84d0a094c6273fffed68147c381a273c83868cdeb9b81c7ec790c6d38",{"_index":732,"title":{},"content":{"217":{}}}],["1fb2ha",{"_index":3609,"title":{},"content":{"805":{}}}],["1mb",{"_index":3529,"title":{},"content":{"792":{}}}],["1s",{"_index":1164,"title":{},"content":{"256":{}}}],["1st",{"_index":960,"title":{},"content":{"224":{},"316":{},"390":{},"404":{},"750":{},"762":{},"948":{}}}],["2",{"_index":621,"title":{"803":{},"836":{},"898":{},"907":{},"910":{},"914":{}},"content":{"209":{},"216":{},"219":{},"228":{},"229":{},"232":{},"267":{},"322":{},"333":{},"360":{},"376":{},"377":{},"378":{},"385":{},"389":{},"390":{},"391":{},"401":{},"403":{},"406":{},"407":{},"408":{},"409":{},"410":{},"441":{},"443":{},"448":{},"464":{},"481":{},"486":{},"490":{},"497":{},"519":{},"557":{},"560":{},"573":{},"574":{},"575":{},"577":{},"578":{},"579":{},"580":{},"581":{},"582":{},"583":{},"626":{},"645":{},"648":{},"655":{},"656":{},"658":{},"678":{},"759":{},"761":{},"762":{},"763":{},"792":{},"820":{},"841":{},"881":{},"885":{},"886":{},"943":{},"944":{},"955":{}}}],["2.0",{"_index":2037,"title":{},"content":{"385":{},"418":{},"762":{},"963":{}}}],["2.1",{"_index":2554,"title":{},"content":{"508":{}}}],["2.5",{"_index":3774,"title":{},"content":{"881":{}}}],["2.58933391",{"_index":3638,"title":{},"content":{"820":{}}}],["2.o",{"_index":3127,"title":{},"content":{"679":{}}}],["20",{"_index":1440,"title":{"587":{},"646":{}},"content":{"295":{},"577":{},"578":{},"579":{},"580":{},"581":{},"582":{},"583":{},"584":{},"585":{},"586":{},"587":{},"588":{},"648":{}}}],["200",{"_index":1967,"title":{},"content":{"378":{},"464":{},"465":{},"792":{}}}],["2022",{"_index":2934,"title":{},"content":{"648":{},"953":{}}}],["2023",{"_index":1982,"title":{},"content":{"378":{}}}],["2024",{"_index":2935,"title":{},"content":{"648":{}}}],["2026",{"_index":3768,"title":{},"content":{"881":{}}}],["2048",{"_index":3981,"title":{},"content":{"954":{}}}],["21st",{"_index":1441,"title":{},"content":{"295":{}}}],["22.5",{"_index":3776,"title":{},"content":{"881":{}}}],["22_500_000",{"_index":3895,"title":{},"content":{"943":{}}}],["23",{"_index":2635,"title":{},"content":{"535":{}}}],["24",{"_index":2852,"title":{},"content":{"613":{},"615":{},"635":{},"655":{},"900":{},"951":{},"954":{}}}],["24h",{"_index":2924,"title":{"613":{}},"content":{}}],["25",{"_index":1985,"title":{},"content":{"378":{}}}],["25/07/2024",{"_index":3780,"title":{},"content":{"883":{}}}],["255",{"_index":3404,"title":{},"content":{"746":{}}}],["255121",{"_index":3600,"title":{},"content":{"805":{}}}],["256",{"_index":1127,"title":{},"content":{"251":{},"673":{},"746":{},"956":{}}}],["256kb",{"_index":2421,"title":{},"content":{"464":{}}}],["25°c",{"_index":1954,"title":{"378":{}},"content":{}}],["2^31",{"_index":459,"title":{},"content":{"170":{}}}],["2nd",{"_index":1608,"title":{},"content":{"316":{},"390":{}}}],["3",{"_index":526,"title":{"837":{}},"content":{"204":{},"216":{},"218":{},"219":{},"229":{},"232":{},"275":{},"320":{},"385":{},"390":{},"400":{},"403":{},"490":{},"505":{},"508":{},"558":{},"567":{},"568":{},"569":{},"570":{},"571":{},"572":{},"577":{},"578":{},"579":{},"580":{},"581":{},"582":{},"583":{},"589":{},"590":{},"591":{},"592":{},"593":{},"594":{},"609":{},"621":{},"645":{},"655":{},"656":{},"658":{},"750":{},"759":{},"805":{},"811":{},"820":{},"881":{},"885":{},"886":{},"890":{},"904":{},"943":{},"944":{},"948":{}}}],["3,2,2,1",{"_index":2508,"title":{},"content":{"492":{}}}],["3,4",{"_index":2476,"title":{},"content":{"485":{}}}],["3.24",{"_index":4016,"title":{},"content":{"959":{}}}],["3.5",{"_index":4017,"title":{},"content":{"959":{}}}],["3.53553390",{"_index":2550,"title":{},"content":{"507":{}}}],["3.6",{"_index":3182,"title":{},"content":{"685":{}}}],["30",{"_index":3611,"title":{},"content":{"805":{},"885":{}}}],["3000",{"_index":2948,"title":{"650":{}},"content":{"650":{}}}],["300000000",{"_index":3449,"title":{},"content":{"759":{}}}],["31",{"_index":2636,"title":{},"content":{"535":{}}}],["31536000",{"_index":3928,"title":{},"content":{"948":{}}}],["32",{"_index":735,"title":{},"content":{"217":{},"218":{},"219":{},"224":{},"225":{},"269":{},"314":{},"577":{},"578":{},"579":{},"580":{},"581":{},"582":{},"583":{},"956":{}}}],["32byte",{"_index":780,"title":{},"content":{"218":{},"219":{}}}],["32bytesinsid",{"_index":772,"title":{},"content":{"218":{},"219":{}}}],["33",{"_index":1569,"title":{},"content":{"314":{}}}],["34",{"_index":822,"title":{},"content":{"219":{}}}],["35040",{"_index":3939,"title":{},"content":{"949":{}}}],["3600",{"_index":3919,"title":{},"content":{"947":{},"948":{}}}],["365",{"_index":2928,"title":{},"content":{"613":{},"885":{}}}],["374c7527733556",{"_index":2387,"title":{},"content":{"471":{}}}],["3c21ef708bf11b4232",{"_index":2628,"title":{},"content":{"529":{}}}],["3mb",{"_index":3591,"title":{},"content":{"805":{}}}],["3rd",{"_index":690,"title":{},"content":{"217":{},"390":{}}}],["3s",{"_index":1161,"title":{},"content":{"256":{}}}],["4",{"_index":661,"title":{},"content":{"213":{},"214":{},"216":{},"218":{},"219":{},"227":{},"229":{},"232":{},"314":{},"401":{},"454":{},"482":{},"507":{},"558":{},"589":{},"590":{},"591":{},"592":{},"593":{},"594":{},"645":{},"655":{},"658":{},"724":{},"881":{},"943":{},"944":{},"1002":{}}}],["4,5,6",{"_index":2254,"title":{},"content":{"422":{}}}],["4.05902597",{"_index":2326,"title":{},"content":{"442":{}}}],["4.md",{"_index":4064,"title":{},"content":{"1002":{}}}],["4000",{"_index":1986,"title":{},"content":{"378":{}}}],["41.591",{"_index":1980,"title":{},"content":{"378":{}}}],["410",{"_index":3617,"title":{},"content":{"808":{}}}],["4317.35583398",{"_index":3935,"title":{},"content":{"948":{}}}],["4317.355833989885",{"_index":3932,"title":{},"content":{"948":{}}}],["45",{"_index":3775,"title":{},"content":{"881":{}}}],["456",{"_index":2578,"title":{},"content":{"512":{}}}],["45_000_000",{"_index":3894,"title":{},"content":{"943":{},"948":{}}}],["4756.5401",{"_index":2300,"title":{},"content":{"438":{}}}],["4:15:30",{"_index":4070,"title":{},"content":{"1003":{}}}],["4th",{"_index":697,"title":{},"content":{"217":{}}}],["5",{"_index":1664,"title":{},"content":{"322":{},"519":{},"567":{},"568":{},"569":{},"570":{},"571":{},"572":{},"655":{},"685":{},"913":{},"944":{}}}],["5/month",{"_index":3528,"title":{},"content":{"792":{}}}],["50/50",{"_index":1990,"title":{},"content":{"378":{}}}],["500",{"_index":3531,"title":{},"content":{"792":{}}}],["51",{"_index":3189,"title":{},"content":{"685":{}}}],["512",{"_index":3177,"title":{},"content":{"694":{}}}],["5136.986301369863",{"_index":3929,"title":{},"content":{"948":{}}}],["52e77c79bea0f84e2d9c40356932fb0dd31688c23d6b6e9ac99d2869dc407692",{"_index":730,"title":{},"content":{"217":{}}}],["539",{"_index":3930,"title":{},"content":{"948":{}}}],["59",{"_index":2634,"title":{},"content":{"535":{}}}],["592ac76afa",{"_index":2610,"title":{},"content":{"523":{}}}],["5s",{"_index":1801,"title":{},"content":{"360":{}}}],["5th",{"_index":699,"title":{},"content":{"217":{}}}],["6",{"_index":2638,"title":{},"content":{"535":{},"655":{},"758":{},"885":{},"886":{},"944":{},"955":{}}}],["6/20/2024",{"_index":4069,"title":{},"content":{"1003":{}}}],["64",{"_index":778,"title":{},"content":{"218":{},"219":{},"954":{}}}],["650",{"_index":681,"title":{},"content":{"217":{},"223":{},"694":{}}}],["66",{"_index":824,"title":{},"content":{"219":{},"685":{}}}],["68",{"_index":2712,"title":{},"content":{"556":{},"557":{},"558":{}}}],["68420",{"_index":3595,"title":{},"content":{"805":{}}}],["68656c6c6f",{"_index":2612,"title":{},"content":{"523":{}}}],["69.75757441",{"_index":2543,"title":{},"content":{"505":{}}}],["6th",{"_index":702,"title":{},"content":{"217":{}}}],["7",{"_index":1568,"title":{},"content":{"314":{},"576":{},"655":{},"845":{},"885":{},"886":{},"944":{},"948":{}}}],["730",{"_index":3784,"title":{},"content":{"885":{}}}],["7330d2b39ca35ea",{"_index":2378,"title":{},"content":{"468":{}}}],["754",{"_index":452,"title":{},"content":{"168":{}}}],["7th",{"_index":703,"title":{},"content":{"217":{}}}],["7z",{"_index":3621,"title":{},"content":{"811":{}}}],["8",{"_index":466,"title":{"652":{}},"content":{"186":{},"219":{},"361":{},"385":{},"413":{},"505":{},"506":{},"535":{},"537":{},"557":{},"652":{},"655":{},"696":{},"758":{},"759":{},"760":{},"761":{},"808":{}}}],["8.75",{"_index":3778,"title":{},"content":{"881":{}}}],["8.90800012",{"_index":2323,"title":{},"content":{"442":{}}}],["8_750_000",{"_index":3897,"title":{},"content":{"943":{}}}],["8am",{"_index":2215,"title":{},"content":{"413":{},"535":{}}}],["9",{"_index":2565,"title":{},"content":{"510":{},"511":{},"512":{},"537":{},"655":{},"685":{},"881":{}}}],["9.2795",{"_index":1981,"title":{},"content":{"378":{}}}],["90",{"_index":3050,"title":{},"content":{"664":{},"678":{},"685":{},"791":{},"885":{}}}],["901a365ff22b895",{"_index":2388,"title":{},"content":{"471":{}}}],["97",{"_index":2868,"title":{},"content":{"638":{}}}],["99.99999999",{"_index":3045,"title":{},"content":{"664":{}}}],["9f",{"_index":3391,"title":{},"content":{"731":{}}}],["_",{"_index":2006,"title":{},"content":{"381":{}}}],["_dnslink",{"_index":3569,"title":{},"content":{"799":{},"800":{}}}],["_dnslink.example.com",{"_index":3565,"title":{},"content":{"799":{}}}],["_preferencesbox.h",{"_index":2996,"title":{},"content":{"658":{}}}],["_preferencesbox.lock",{"_index":2997,"title":{},"content":{"658":{}}}],["_vaultbox.h",{"_index":2998,"title":{},"content":{"658":{}}}],["_vaultbox.lock",{"_index":2999,"title":{},"content":{"658":{}}}],["a0b1c2",{"_index":2581,"title":{},"content":{"512":{}}}],["a1",{"_index":3323,"title":{},"content":{"727":{},"728":{},"729":{}}}],["a3d7e45a0d9be5f",{"_index":2379,"title":{},"content":{"468":{}}}],["ab",{"_index":3887,"title":{},"content":{"939":{}}}],["abc",{"_index":2568,"title":{},"content":{"510":{}}}],["abc123f",{"_index":3596,"title":{},"content":{"805":{}}}],["abcdef0123456789",{"_index":3971,"title":{},"content":{"954":{}}}],["abdecoin_bal",{"_index":2320,"title":{},"content":{"442":{}}}],["abi",{"_index":2402,"title":{},"content":{"444":{}}}],["abi_decode/2",{"_index":2408,"title":{"446":{}},"content":{}}],["abi_encode/2",{"_index":2404,"title":{"445":{}},"content":{}}],["abil",{"_index":2714,"title":{},"content":{"560":{},"678":{},"688":{},"702":{},"704":{}}}],["abitrati",{"_index":2220,"title":{},"content":{"415":{}}}],["abouth",{"_index":2439,"title":{},"content":{"475":{}}}],["abov",{"_index":549,"title":{},"content":{"204":{},"218":{},"219":{},"224":{},"225":{},"268":{},"371":{},"388":{},"541":{},"542":{},"638":{},"664":{},"760":{},"801":{},"856":{}}}],["abritrati",{"_index":2221,"title":{},"content":{"415":{}}}],["absenc",{"_index":2014,"title":{},"content":{"381":{}}}],["absolut",{"_index":3037,"title":{},"content":{"663":{}}}],["acc",{"_index":2080,"title":{},"content":{"392":{}}}],["accept",{"_index":556,"title":{},"content":{"204":{},"367":{},"406":{},"421":{},"451":{},"557":{},"655":{},"663":{},"760":{},"811":{},"812":{},"813":{},"814":{},"906":{},"913":{}}}],["access",{"_index":505,"title":{"234":{},"235":{},"574":{},"608":{},"620":{},"827":{},"833":{},"854":{},"862":{},"880":{}},"content":{"204":{},"220":{},"234":{},"235":{},"236":{},"242":{},"266":{},"285":{},"314":{},"345":{},"356":{},"358":{},"388":{},"398":{},"424":{},"550":{},"573":{},"574":{},"575":{},"608":{},"612":{},"620":{},"648":{},"663":{},"683":{},"687":{},"690":{},"691":{},"692":{},"699":{},"803":{},"808":{},"809":{},"814":{},"815":{},"830":{},"831":{},"833":{},"838":{},"840":{},"843":{},"848":{},"852":{},"853":{},"854":{},"859":{},"861":{},"877":{},"878":{},"880":{},"890":{},"899":{},"904":{},"913":{},"930":{},"950":{},"951":{},"954":{},"955":{}}}],["access//aeweb.archethic.net",{"_index":2743,"title":{},"content":{"595":{},"596":{}}}],["accommod",{"_index":3823,"title":{},"content":{"897":{},"906":{},"913":{}}}],["accompani",{"_index":3800,"title":{},"content":{"890":{},"900":{},"901":{}}}],["accord",{"_index":744,"title":{},"content":{"218":{},"219":{},"259":{},"303":{},"318":{},"335":{},"345":{},"367":{},"428":{},"445":{},"446":{},"639":{},"658":{},"665":{},"688":{},"691":{},"695":{},"700":{},"704":{},"909":{},"934":{},"962":{}}}],["accordingli",{"_index":2428,"title":{},"content":{"464":{}}}],["account",{"_index":691,"title":{"213":{},"233":{},"242":{}},"content":{"213":{},"217":{},"218":{},"221":{},"223":{},"239":{},"242":{},"655":{},"656":{},"694":{},"782":{},"811":{},"812":{},"813":{},"814":{},"816":{},"876":{},"898":{},"907":{},"910":{},"913":{},"914":{},"951":{},"962":{},"963":{},"964":{},"969":{},"972":{},"974":{},"993":{},"995":{}}}],["accru",{"_index":3836,"title":{},"content":{"902":{}}}],["accumul",{"_index":1167,"title":{},"content":{"257":{},"894":{},"902":{}}}],["accur",{"_index":2337,"title":{},"content":{"427":{}}}],["achiev",{"_index":1022,"title":{},"content":{"238":{},"239":{},"316":{},"359":{},"678":{},"710":{},"736":{},"786":{},"825":{},"826":{},"881":{}}}],["acknowledg",{"_index":2888,"title":{},"content":{"641":{}}}],["acm",{"_index":3574,"title":{},"content":{"802":{}}}],["act",{"_index":478,"title":{},"content":{"201":{},"204":{},"464":{},"710":{},"805":{}}}],["action",{"_index":233,"title":{"397":{},"399":{},"533":{},"840":{},"894":{},"902":{}},"content":{"55":{},"180":{},"269":{},"286":{},"315":{},"346":{},"367":{},"374":{},"375":{},"376":{},"377":{},"378":{},"379":{},"392":{},"397":{},"398":{},"399":{},"400":{},"403":{},"408":{},"412":{},"413":{},"416":{},"418":{},"420":{},"421":{},"424":{},"427":{},"428":{},"532":{},"533":{},"534":{},"535":{},"536":{},"537":{},"538":{},"547":{},"548":{},"549":{},"550":{},"601":{},"633":{},"656":{},"658":{},"719":{},"787":{},"825":{},"826":{},"843":{},"894":{},"902":{},"906":{},"909":{},"913":{},"924":{},"945":{},"955":{},"956":{},"962":{}}}],["action'",{"_index":1864,"title":{},"content":{"368":{},"406":{},"408":{},"410":{},"826":{}}}],["actionrecipi",{"_index":155,"title":{},"content":{"28":{}}}],["activ",{"_index":2629,"title":{},"content":{"532":{},"645":{},"714":{},"876":{},"890":{},"900":{},"902":{},"926":{},"928":{},"933":{},"935":{},"956":{}}}],["actor",{"_index":3074,"title":{},"content":{"662":{},"678":{},"701":{},"702":{},"705":{},"727":{}}}],["actual",{"_index":2018,"title":{},"content":{"382":{},"389":{},"394":{},"401":{},"415":{},"480":{},"547":{},"705":{}}}],["ad",{"_index":586,"title":{"612":{},"855":{},"906":{}},"content":{"206":{},"217":{},"314":{},"315":{},"350":{},"381":{},"451":{},"744":{},"848":{},"861":{},"875":{},"877":{},"880":{},"898":{},"900":{},"902":{},"905":{},"906":{},"907":{},"916":{},"935":{},"957":{},"963":{},"964":{}}}],["adapt",{"_index":941,"title":{"671":{}},"content":{"223":{},"667":{},"674":{},"710":{},"728":{},"962":{}}}],["add",{"_index":664,"title":{"803":{},"896":{},"905":{}},"content":{"216":{},"243":{},"246":{},"251":{},"267":{},"321":{},"347":{},"350":{},"369":{},"377":{},"405":{},"418":{},"448":{},"452":{},"454":{},"456":{},"458":{},"532":{},"547":{},"638":{},"674":{},"694":{},"699":{},"799":{},"800":{},"813":{},"817":{},"845":{},"846":{},"848":{},"851":{},"852":{},"869":{},"889":{},"890":{},"902":{},"906":{},"907":{},"935":{},"976":{},"978":{},"988":{},"991":{},"997":{},"1000":{}}}],["add_ownership",{"_index":2244,"title":{},"content":{"418":{}}}],["add_ownership/1",{"_index":2363,"title":{"456":{}},"content":{"457":{}}}],["add_ownerships/1",{"_index":2371,"title":{"457":{}},"content":{}}],["add_recipi",{"_index":2247,"title":{},"content":{"418":{}}}],["add_recipient/1",{"_index":2372,"title":{"458":{}},"content":{}}],["add_recipients/1",{"_index":2374,"title":{"459":{}},"content":{"459":{}}}],["add_servic",{"_index":4045,"title":{"978":{}},"content":{}}],["add_token_transf",{"_index":2212,"title":{},"content":{"418":{},"421":{}}}],["add_token_transfer/1",{"_index":2357,"title":{"454":{}},"content":{"455":{}}}],["add_token_transfers/1",{"_index":2362,"title":{"455":{}},"content":{}}],["add_uco_transf",{"_index":2209,"title":{},"content":{"418":{},"420":{}}}],["add_uco_transfer/1",{"_index":2353,"title":{"452":{}},"content":{"453":{}}}],["add_uco_transfers/1",{"_index":2356,"title":{"453":{}},"content":{}}],["adddress",{"_index":2345,"title":{},"content":{"448":{}}}],["addit",{"_index":1540,"title":{"319":{},"907":{},"918":{}},"content":{"312":{},"633":{},"662":{},"672":{},"696":{},"700":{},"782":{},"790":{},"861":{},"870":{},"890":{},"897":{},"898":{},"906":{},"907":{},"913":{},"988":{},"991":{},"997":{},"1000":{}}}],["addition",{"_index":3682,"title":{},"content":{"841":{},"890":{},"901":{}}}],["addr",{"_index":875,"title":{},"content":{"213":{}}}],["address",{"_index":104,"title":{"155":{},"213":{},"218":{},"233":{},"556":{},"601":{},"642":{},"656":{},"674":{},"819":{},"844":{}},"content":{"18":{},"19":{},"28":{},"29":{},"43":{},"44":{},"55":{},"58":{},"59":{},"64":{},"65":{},"70":{},"71":{},"73":{},"74":{},"76":{},"77":{},"79":{},"80":{},"82":{},"83":{},"86":{},"87":{},"89":{},"90":{},"98":{},"99":{},"102":{},"103":{},"114":{},"115":{},"117":{},"118":{},"119":{},"120":{},"121":{},"123":{},"124":{},"125":{},"138":{},"139":{},"141":{},"142":{},"143":{},"144":{},"145":{},"147":{},"148":{},"149":{},"155":{},"176":{},"198":{},"199":{},"201":{},"202":{},"209":{},"213":{},"217":{},"218":{},"219":{},"221":{},"223":{},"224":{},"233":{},"235":{},"236":{},"243":{},"246":{},"247":{},"248":{},"253":{},"258":{},"314":{},"315":{},"317":{},"320":{},"321":{},"353":{},"369":{},"375":{},"376":{},"377":{},"382":{},"401":{},"407":{},"409":{},"415":{},"418":{},"420":{},"421":{},"430":{},"431":{},"433":{},"434":{},"435":{},"436":{},"437":{},"438":{},"439":{},"441":{},"442":{},"443":{},"452":{},"454":{},"458":{},"529":{},"532":{},"545":{},"546":{},"556":{},"557":{},"558":{},"559":{},"564":{},"638":{},"639":{},"642":{},"644":{},"656":{},"666":{},"669":{},"674":{},"694":{},"720":{},"731":{},"732":{},"734":{},"737":{},"738":{},"741":{},"747":{},"762":{},"781":{},"782":{},"798":{},"799":{},"805":{},"806":{},"819":{},"825":{},"835":{},"837":{},"841":{},"843":{},"844":{},"846":{},"847":{},"890":{},"898":{},"901":{},"907":{},"910":{},"914":{},"951":{},"956":{},"964":{},"974":{},"977":{},"980":{},"983":{},"990":{},"992":{},"995":{},"998":{}}}],["address'",{"_index":1579,"title":{},"content":{"315":{}}}],["address_index",{"_index":707,"title":{},"content":{"213":{},"214":{},"217":{},"218":{},"219":{}}}],["address_len",{"_index":809,"title":{},"content":{"218":{},"219":{}}}],["addressit",{"_index":810,"title":{},"content":{"218":{}}}],["addresslength",{"_index":820,"title":{},"content":{"219":{}}}],["adher",{"_index":2772,"title":{},"content":{"604":{},"872":{},"873":{}}}],["adjust",{"_index":3789,"title":{},"content":{"886":{},"906":{},"913":{}}}],["admin",{"_index":1256,"title":{},"content":{"269":{}}}],["administr",{"_index":1393,"title":{},"content":{"286":{},"793":{},"799":{}}}],["adopt",{"_index":1844,"title":{},"content":{"367":{},"659":{},"684":{},"688":{},"699":{},"786":{},"873":{}}}],["adpu",{"_index":869,"title":{"210":{}},"content":{}}],["advanc",{"_index":3863,"title":{},"content":{"928":{},"941":{}}}],["advantag",{"_index":3139,"title":{},"content":{"680":{},"827":{},"862":{},"877":{}}}],["advis",{"_index":2983,"title":{},"content":{"658":{}}}],["ae",{"_index":902,"title":{},"content":{"225":{},"230":{},"235":{},"236":{},"680":{},"692":{}}}],["aebnb",{"_index":2811,"title":{},"content":{"619":{}}}],["aebridg",{"_index":2732,"title":{"585":{},"591":{},"617":{},"821":{},"830":{}},"content":{"584":{},"585":{},"586":{},"587":{},"588":{},"589":{},"590":{},"591":{},"592":{},"593":{},"594":{},"827":{},"831":{}}}],["aeeth",{"_index":2809,"title":{"904":{}},"content":{"619":{},"891":{}}}],["aeeth/uco",{"_index":3779,"title":{},"content":{"881":{},"888":{},"904":{}}}],["aehost",{"_index":2731,"title":{"584":{},"590":{},"597":{},"788":{}},"content":{"584":{},"585":{},"586":{},"587":{},"588":{},"589":{},"590":{},"591":{},"592":{},"593":{},"594":{}}}],["aeip",{"_index":2710,"title":{"760":{},"761":{}},"content":{"554":{},"558":{},"689":{},"756":{},"760":{},"761":{},"808":{},"1002":{}}}],["aemat",{"_index":2810,"title":{},"content":{"619":{}}}],["aeronaut",{"_index":3058,"title":{},"content":{"664":{}}}],["aerospik",{"_index":1492,"title":{},"content":{"309":{}}}],["aes256",{"_index":921,"title":{},"content":{"221":{},"225":{},"675":{}}}],["aes256(mode=cbc",{"_index":988,"title":{},"content":{"225":{}}}],["aes256(mode=ctr",{"_index":979,"title":{},"content":{"225":{}}}],["aes\\_key",{"_index":989,"title":{},"content":{"225":{}}}],["aes_key",{"_index":924,"title":{},"content":{"221":{},"225":{}}}],["aes_key_iv_tag",{"_index":774,"title":{},"content":{"218":{},"219":{}}}],["aeswap",{"_index":2733,"title":{"586":{},"593":{},"606":{},"608":{},"859":{},"861":{},"877":{},"916":{},"935":{}},"content":{"584":{},"585":{},"586":{},"587":{},"588":{},"589":{},"590":{},"591":{},"592":{},"593":{},"594":{},"608":{},"859":{},"861":{},"862":{},"868":{},"869":{},"870":{},"872":{},"873":{},"875":{},"876":{},"877":{},"878":{},"890":{},"894":{},"897":{},"899":{},"902":{},"912":{},"924":{},"925":{},"926":{},"927":{},"928":{},"929":{},"930":{},"933":{},"934":{},"935":{},"936":{},"938":{},"941":{}}}],["aeswap'",{"_index":3746,"title":{},"content":{"876":{},"929":{},"930":{},"935":{},"937":{},"941":{}}}],["aewallet",{"_index":2735,"title":{"588":{},"594":{},"653":{},"950":{}},"content":{"584":{},"585":{},"586":{},"587":{},"588":{},"589":{},"590":{},"591":{},"592":{},"593":{},"594":{},"609":{},"966":{},"972":{},"984":{},"993":{}}}],["aeweb",{"_index":1838,"title":{"596":{},"601":{},"798":{},"804":{},"809":{},"816":{},"818":{},"819":{},"820":{}},"content":{"366":{},"595":{},"596":{},"600":{},"601":{},"777":{},"787":{},"790":{},"793":{},"801":{},"803":{},"804":{},"805":{},"806":{},"807":{},"809":{},"811":{},"816":{},"817":{},"818":{},"819":{},"820":{}}}],["aeweb'",{"_index":3550,"title":{},"content":{"787":{}}}],["aewebvers",{"_index":3592,"title":{},"content":{"805":{},"808":{}}}],["af28c3d5b3828ad3f8682f1b1d14a8507b829f65f7be6c50427a6019ccb6801c",{"_index":2240,"title":{},"content":{"418":{}}}],["affect",{"_index":3814,"title":{},"content":{"893":{},"894":{},"922":{}}}],["afterward",{"_index":2980,"title":{},"content":{"658":{}}}],["again",{"_index":1162,"title":{},"content":{"256":{},"322":{},"349":{},"806":{},"956":{}}}],["against",{"_index":2984,"title":{},"content":{"658":{},"678":{},"861":{},"923":{},"924":{},"936":{},"940":{}}}],["aggreg",{"_index":76,"title":{"257":{}},"content":{"15":{},"113":{},"253":{},"257":{},"319":{},"332":{},"342":{},"346":{},"554":{},"680":{},"753":{},"769":{},"929":{}}}],["ago",{"_index":3788,"title":{},"content":{"886":{}}}],["agpl",{"_index":3318,"title":{},"content":{"725":{}}}],["agre",{"_index":3627,"title":{},"content":{"812":{}}}],["agreement",{"_index":3060,"title":{},"content":{"664":{}}}],["agvsbg8gd29ybgq",{"_index":3604,"title":{},"content":{"805":{}}}],["aim",{"_index":911,"title":{},"content":{"220":{},"602":{},"659":{},"686":{},"705":{},"707":{},"724":{},"827":{},"862":{},"909":{},"954":{}}}],["aka",{"_index":887,"title":{},"content":{"220":{},"234":{},"314":{},"323":{},"573":{},"574":{},"575":{},"666":{},"748":{}}}],["al",{"_index":1111,"title":{},"content":{"246":{}}}],["alca",{"_index":550,"title":{},"content":{"204":{},"205":{},"206":{}}}],["alert",{"_index":3852,"title":{},"content":{"913":{}}}],["algo",{"_index":1012,"title":{},"content":{"233":{},"468":{},"471":{},"986":{}}}],["algorithm",{"_index":415,"title":{"328":{},"675":{}},"content":{"119":{},"155":{},"164":{},"176":{},"194":{},"225":{},"233":{},"264":{},"269":{},"278":{},"315":{},"323":{},"327":{},"328":{},"330":{},"332":{},"333":{},"345":{},"346":{},"468":{},"471":{},"473":{},"663":{},"664":{},"665":{},"666":{},"671":{},"672":{},"673":{},"674":{},"688":{},"694":{},"695":{},"709":{},"739":{},"747":{},"782":{},"844":{},"872":{},"936":{}}}],["alic",{"_index":2466,"title":{},"content":{"483":{},"520":{},"601":{},"605":{}}}],["align",{"_index":3825,"title":{},"content":{"898":{},"907":{},"910":{},"914":{}}}],["alloc",{"_index":106,"title":{},"content":{"18":{},"82":{},"86":{},"98":{},"125":{},"149":{},"259":{},"881":{},"897":{},"906":{},"913":{}}}],["allow",{"_index":889,"title":{},"content":{"234":{},"360":{},"371":{},"400":{},"464":{},"532":{},"546":{},"560":{},"573":{},"574":{},"575":{},"619":{},"630":{},"648":{},"649":{},"662":{},"663":{},"670":{},"683":{},"685":{},"686":{},"688":{},"690":{},"691":{},"693":{},"700":{},"704":{},"716":{},"724":{},"727":{},"728":{},"754":{},"758":{},"764":{},"781":{},"787":{},"790":{},"803":{},"805":{},"807":{},"811":{},"812":{},"813":{},"814":{},"821":{},"823":{},"843":{},"844":{},"845":{},"846":{},"848":{},"849":{},"850":{},"852":{},"860":{},"868":{},"873":{},"887":{},"889":{},"890":{},"893":{},"894":{},"898":{},"901":{},"902":{},"904":{},"906":{},"907":{},"908":{},"909":{},"910":{},"913":{},"914":{},"921":{},"938":{},"953":{},"954":{},"956":{},"961":{},"963":{},"976":{},"1002":{},"1003":{}}}],["allow_mint",{"_index":3445,"title":{},"content":{"758":{}}}],["alogrithm",{"_index":3113,"title":{},"content":{"678":{}}}],["alon",{"_index":3105,"title":{},"content":{"677":{}}}],["along",{"_index":1201,"title":{},"content":{"264":{},"323":{},"338":{},"350":{},"357":{},"412":{},"674":{},"680":{},"688":{},"861":{},"872":{},"894":{},"902":{}}}],["alreadi",{"_index":650,"title":{},"content":{"216":{},"338":{},"377":{},"523":{},"811":{},"881":{},"897":{},"960":{}}}],["alter",{"_index":3849,"title":{},"content":{"913":{}}}],["although",{"_index":3978,"title":{},"content":{"954":{}}}],["alway",{"_index":2349,"title":{},"content":{"450":{},"470":{},"514":{},"527":{},"545":{},"550":{},"759":{},"768":{},"808":{},"841":{}}}],["amang",{"_index":1497,"title":{},"content":{"309":{}}}],["amazon",{"_index":3167,"title":{},"content":{"693":{}}}],["amd",{"_index":1463,"title":{},"content":{"303":{}}}],["amm",{"_index":3706,"title":{"873":{},"917":{},"934":{},"938":{}},"content":{"859":{},"868":{},"869":{},"872":{},"873":{},"916":{},"917":{},"933":{},"934":{},"938":{},"941":{}}}],["among",{"_index":1576,"title":{},"content":{"315":{}}}],["amort",{"_index":1794,"title":{},"content":{"360":{}}}],["amount",{"_index":100,"title":{},"content":{"18":{},"64":{},"70":{},"82":{},"86":{},"98":{},"102":{},"125":{},"149":{},"219":{},"244":{},"247":{},"349":{},"360":{},"375":{},"378":{},"401":{},"415":{},"418":{},"420":{},"421":{},"427":{},"428":{},"439":{},"452":{},"454":{},"557":{},"558":{},"612":{},"761":{},"762":{},"767":{},"805":{},"835":{},"837":{},"841":{},"846":{},"876":{},"890":{},"893":{},"897":{},"906":{},"909":{},"913":{},"914":{},"920":{},"925":{},"939":{},"946":{}}}],["amount'",{"_index":2877,"title":{},"content":{"639":{}}}],["amount_send",{"_index":1905,"title":{},"content":{"375":{},"421":{}}}],["amoy",{"_index":2872,"title":{},"content":{"638":{}}}],["an",{"_index":3508,"title":{},"content":{"786":{}}}],["analys",{"_index":3510,"title":{},"content":{"786":{}}}],["analysi",{"_index":3363,"title":{},"content":{"728":{},"840":{},"872":{},"876":{}}}],["analyt",{"_index":3804,"title":{},"content":{"890":{},"901":{}}}],["analyz",{"_index":1483,"title":{"643":{}},"content":{"309":{},"805":{}}}],["anchor",{"_index":1183,"title":{},"content":{"260":{}}}],["and/or",{"_index":3580,"title":{},"content":{"802":{}}}],["android",{"_index":2905,"title":{},"content":{"609":{},"953":{},"960":{},"963":{}}}],["announc",{"_index":3287,"title":{},"content":{"716":{},"781":{}}}],["annual",{"_index":2925,"title":{},"content":{"613":{},"876":{},"884":{},"893":{},"900":{}}}],["anoth",{"_index":2082,"title":{},"content":{"392":{},"403":{},"485":{},"678":{},"715":{},"761":{},"820":{},"849":{},"850":{},"868":{},"898":{},"902":{},"924":{},"945":{},"953":{},"954":{},"956":{}}}],["answer",{"_index":3046,"title":{},"content":{"664":{}}}],["anyon",{"_index":2746,"title":{},"content":{"602":{},"655":{},"683":{},"795":{}}}],["anyth",{"_index":947,"title":{},"content":{"223":{},"384":{},"401":{},"451":{},"477":{},"541":{},"542":{},"559":{}}}],["apdu",{"_index":638,"title":{"211":{}},"content":{"212":{},"213":{},"214":{},"216":{},"219":{}}}],["api",{"_index":623,"title":{"215":{},"568":{}},"content":{"264":{},"315":{},"393":{},"464":{},"567":{},"568":{},"569":{},"570":{},"571":{},"572":{},"762":{},"797":{},"806":{},"935":{},"955":{},"956":{},"963":{},"1002":{}}}],["api.open",{"_index":1964,"title":{},"content":{"378":{}}}],["app",{"_index":540,"title":{"952":{}},"content":{"204":{},"205":{},"206":{},"215":{},"232":{},"655":{},"793":{},"795":{},"820":{},"935":{},"953":{},"956":{}}}],["appear",{"_index":407,"title":{},"content":{"119":{},"155":{},"164":{},"176":{},"194":{},"542":{},"655":{},"656":{},"811":{},"835":{},"837":{}}}],["append",{"_index":863,"title":{},"content":{"219":{},"267":{},"310":{},"311":{},"312":{},"314":{},"315":{},"486":{},"487":{}}}],["append/2",{"_index":2480,"title":{"486":{}},"content":{}}],["appendix",{"_index":2103,"title":{"401":{}},"content":{"398":{},"406":{},"408":{},"410":{},"434":{},"436":{}}}],["appli",{"_index":849,"title":{},"content":{"219":{},"315":{},"321":{},"322":{},"406":{},"505":{},"688":{},"696":{},"700":{},"701":{},"704":{},"705":{},"708":{},"770":{},"771":{},"847":{},"848":{}}}],["applic",{"_index":531,"title":{"215":{},"686":{},"832":{},"879":{},"955":{}},"content":{"204":{},"216":{},"235":{},"236":{},"239":{},"283":{},"312":{},"316":{},"320":{},"321":{},"354":{},"367":{},"371":{},"589":{},"590":{},"591":{},"592":{},"593":{},"594":{},"623":{},"624":{},"641":{},"643":{},"655":{},"658":{},"659":{},"686":{},"691":{},"701":{},"724":{},"786":{},"793":{},"797":{},"809":{},"812":{},"813":{},"814":{},"816":{},"827":{},"830":{},"832":{},"842":{},"843":{},"862":{},"877":{},"879":{},"890":{},"929":{},"930":{},"935":{},"953":{},"955":{},"956":{},"960":{},"961":{},"963":{},"1002":{}}}],["application'",{"_index":3679,"title":{},"content":{"838":{}}}],["application(i",{"_index":958,"title":{},"content":{"224":{}}}],["appnam",{"_index":662,"title":{},"content":{"216":{}}}],["approach",{"_index":1528,"title":{"312":{}},"content":{"311":{},"314":{},"316":{},"359":{},"680":{},"712":{},"799":{},"824":{},"928":{},"953":{}}}],["appropri",{"_index":2874,"title":{},"content":{"639":{},"830":{},"877":{}}}],["approv",{"_index":130,"title":{"344":{}},"content":{"21":{},"219":{},"269":{},"320":{},"344":{},"705":{},"770":{},"771":{},"898":{},"907":{},"910":{},"914":{}}}],["approx",{"_index":3420,"title":{},"content":{"750":{}}}],["approxim",{"_index":2625,"title":{},"content":{"527":{}}}],["appup",{"_index":1649,"title":{},"content":{"320":{}}}],["appvers",{"_index":654,"title":{},"content":{"216":{}}}],["appversion[0",{"_index":660,"title":{},"content":{"216":{}}}],["appwallet.h",{"_index":2988,"title":{},"content":{"658":{}}}],["appwallet.lock",{"_index":2989,"title":{},"content":{"658":{}}}],["apr",{"_index":2923,"title":{"613":{},"874":{},"876":{}},"content":{"876":{},"881":{},"884":{},"890":{},"893":{},"894":{},"900":{},"903":{},"904":{}}}],["arbitrageur",{"_index":3870,"title":{},"content":{"929":{}}}],["arbitrari",{"_index":1988,"title":{},"content":{"378":{}}}],["arch",{"_index":1708,"title":{"663":{}},"content":{"327":{},"335":{},"368":{},"659":{},"661":{},"663":{},"664":{},"685":{},"708":{},"727":{},"791":{}}}],["arch_address",{"_index":879,"title":{},"content":{"213":{},"221":{}}}],["archet",{"_index":3898,"title":{},"content":{"944":{}}}],["archeth",{"_index":279,"title":{"213":{},"218":{},"589":{},"590":{},"591":{},"593":{},"594":{},"599":{},"601":{},"608":{},"609":{},"612":{},"616":{},"619":{},"620":{},"622":{},"623":{},"632":{},"633":{},"636":{},"644":{},"648":{},"655":{},"656":{},"658":{},"659":{},"678":{},"680":{},"725":{},"788":{},"821":{},"825":{},"826":{},"857":{},"864":{},"865":{},"950":{},"957":{}},"content":{"73":{},"122":{},"130":{},"140":{},"146":{},"152":{},"164":{},"194":{},"204":{},"205":{},"206":{},"213":{},"215":{},"218":{},"219":{},"220":{},"221":{},"223":{},"225":{},"233":{},"234":{},"237":{},"238":{},"242":{},"250":{},"258":{},"278":{},"283":{},"291":{},"295":{},"308":{},"320":{},"321":{},"322":{},"334":{},"349":{},"350":{},"353":{},"359":{},"361":{},"364":{},"365":{},"366":{},"367":{},"368":{},"369":{},"370":{},"371":{},"382":{},"391":{},"412":{},"416":{},"428":{},"464":{},"545":{},"562":{},"566":{},"573":{},"574":{},"575":{},"589":{},"590":{},"591":{},"592":{},"593":{},"594":{},"601":{},"602":{},"603":{},"610":{},"611":{},"612":{},"616":{},"619":{},"622":{},"623":{},"625":{},"632":{},"633":{},"636":{},"641":{},"644":{},"648":{},"652":{},"655":{},"656":{},"658":{},"659":{},"661":{},"662":{},"663":{},"664":{},"667":{},"669":{},"671":{},"674":{},"678":{},"679":{},"680":{},"682":{},"684":{},"685":{},"687":{},"688":{},"689":{},"693":{},"694":{},"695":{},"700":{},"701":{},"704":{},"705":{},"707":{},"710":{},"714":{},"716":{},"718":{},"719":{},"724":{},"730":{},"731":{},"735":{},"739":{},"742":{},"745":{},"746":{},"748":{},"754":{},"755":{},"757":{},"762":{},"780":{},"785":{},"787":{},"788":{},"791":{},"792":{},"793":{},"799":{},"801":{},"804":{},"806":{},"809":{},"811":{},"812":{},"813":{},"814":{},"816":{},"818":{},"821":{},"824":{},"825":{},"826":{},"830":{},"832":{},"833":{},"834":{},"835":{},"837":{},"840":{},"842":{},"843":{},"857":{},"859":{},"861":{},"864":{},"866":{},"875":{},"877":{},"879":{},"897":{},"898":{},"900":{},"904":{},"906":{},"907":{},"912":{},"913":{},"916":{},"927":{},"929":{},"930":{},"933":{},"935":{},"937":{},"941":{},"950":{},"951":{},"953":{},"954":{},"956":{},"957":{},"961":{},"963":{},"1002":{}}}],["archethic'",{"_index":535,"title":{"220":{},"234":{},"308":{},"574":{},"575":{},"592":{},"629":{},"630":{},"714":{},"824":{},"842":{}},"content":{"204":{},"205":{},"206":{},"223":{},"328":{},"573":{},"574":{},"575":{},"589":{},"590":{},"591":{},"592":{},"593":{},"594":{},"619":{},"629":{},"630":{},"632":{},"659":{},"682":{},"690":{},"756":{},"823":{},"824":{},"825":{},"826":{},"830":{},"877":{}}}],["archethic.net",{"_index":560,"title":{},"content":{"204":{}}}],["archethic.oraclechain",{"_index":1783,"title":{},"content":{"350":{}}}],["archethic.oraclechain.service.mynewservic",{"_index":1786,"title":{},"content":{"350":{}}}],["archethic.oraclechain.services.ucopric",{"_index":1784,"title":{},"content":{"350":{}}}],["archethic_derive_with_seed_key",{"_index":718,"title":{},"content":{"217":{}}}],["archethic_lib_dart",{"_index":4014,"title":{},"content":{"957":{}}}],["archethic_nod",{"_index":1660,"title":{},"content":{"321":{},"322":{}}}],["archethicindex",{"_index":1429,"title":{"291":{},"307":{}},"content":{"291":{},"294":{},"295":{},"303":{},"305":{},"307":{}}}],["archiv",{"_index":1887,"title":{},"content":{"371":{},"811":{},"812":{},"817":{}}}],["area",{"_index":2655,"title":{},"content":{"539":{},"704":{}}}],["areaes_key",{"_index":779,"title":{},"content":{"218":{},"219":{}}}],["aren't",{"_index":2081,"title":{},"content":{"392":{},"749":{}}}],["arg",{"_index":234,"title":{},"content":{"55":{},"180":{},"376":{},"448":{}}}],["arg1",{"_index":2093,"title":{},"content":{"394":{}}}],["arg2",{"_index":2090,"title":{},"content":{"394":{}}}],["argument",{"_index":5,"title":{"6":{},"11":{},"112":{},"115":{},"118":{},"121":{},"124":{},"129":{},"132":{},"139":{},"142":{},"145":{},"148":{},"151":{},"199":{},"202":{},"399":{}},"content":{"5":{},"10":{},"392":{},"399":{},"404":{},"405":{},"422":{},"423":{},"448":{},"467":{},"469":{},"470":{},"533":{},"548":{}}}],["arithemet",{"_index":1640,"title":{},"content":{"281":{}}}],["arithmet",{"_index":2036,"title":{"385":{}},"content":{"385":{}}}],["ariti",{"_index":2256,"title":{"423":{}},"content":{"423":{}}}],["around",{"_index":1750,"title":{},"content":{"334":{},"696":{},"762":{},"792":{},"881":{}}}],["arriv",{"_index":1158,"title":{},"content":{"256":{},"663":{},"665":{}}}],["arrow",{"_index":2969,"title":{},"content":{"656":{},"845":{}}}],["arsèn",{"_index":2617,"title":{},"content":{"524":{}}}],["articl",{"_index":4010,"title":{},"content":{"956":{}}}],["asc",{"_index":38,"title":{},"content":{"7":{},"489":{},"490":{}}}],["ascend",{"_index":41,"title":{},"content":{"8":{}}}],["ascii",{"_index":2028,"title":{"383":{}},"content":{}}],["ask",{"_index":1586,"title":{},"content":{"315":{},"826":{},"962":{}}}],["asn",{"_index":882,"title":{},"content":{"214":{},"267":{},"268":{},"269":{},"276":{},"755":{}}}],["asn1",{"_index":1216,"title":{},"content":{"267":{}}}],["asn_der_sign",{"_index":815,"title":{},"content":{"219":{}}}],["asn_sign",{"_index":854,"title":{},"content":{"219":{}}}],["asnsigns",{"_index":1230,"title":{"268":{}},"content":{}}],["aspect",{"_index":1811,"title":{},"content":{"361":{},"789":{}}}],["assert",{"_index":1104,"title":{},"content":{"242":{},"253":{},"323":{},"328":{},"329":{},"338":{},"340":{},"341":{},"342":{},"343":{},"348":{},"633":{},"802":{},"826":{}}}],["assess",{"_index":3749,"title":{},"content":{"876":{},"900":{}}}],["asset",{"_index":101,"title":{"834":{}},"content":{"18":{},"28":{},"40":{},"70":{},"82":{},"86":{},"98":{},"102":{},"125":{},"149":{},"204":{},"242":{},"340":{},"366":{},"563":{},"619":{},"629":{},"759":{},"821":{},"823":{},"825":{},"826":{},"830":{},"859":{},"860":{},"872":{},"876":{},"877":{},"880":{},"886":{},"902":{},"917":{},"925":{},"926":{},"928":{},"933":{},"934":{},"950":{}}}],["assets/app.css",{"_index":3606,"title":{},"content":{"805":{}}}],["assets/image.jpg",{"_index":3607,"title":{},"content":{"805":{}}}],["assign",{"_index":1347,"title":{},"content":{"271":{},"276":{},"277":{},"388":{}}}],["assist",{"_index":2911,"title":{},"content":{"611":{}}}],["associ",{"_index":1254,"title":{},"content":{"269":{},"397":{},"651":{},"662":{},"688":{},"691":{},"694":{},"706":{},"727":{},"737":{},"782":{},"803":{},"811":{},"812":{},"813":{},"814":{},"854":{},"893":{},"897":{},"904":{},"906":{},"913":{},"956":{}}}],["assum",{"_index":575,"title":{},"content":{"205":{},"406":{}}}],["assumpt",{"_index":3235,"title":{},"content":{"696":{}}}],["assur",{"_index":2894,"title":{},"content":{"644":{},"737":{}}}],["ast",{"_index":2338,"title":{},"content":{"427":{}}}],["async",{"_index":677,"title":{},"content":{"217":{}}}],["asynchron",{"_index":3013,"title":{},"content":{"660":{},"727":{},"752":{}}}],["at/2",{"_index":2458,"title":{"481":{}},"content":{}}],["ath",{"_index":2118,"title":{},"content":{"400":{}}}],["atom",{"_index":1722,"title":{"664":{}},"content":{"333":{},"367":{},"368":{},"464":{},"559":{},"619":{},"629":{},"630":{},"632":{},"659":{},"661":{},"663":{},"664":{},"666":{},"708":{},"727":{},"780":{},"821":{},"823":{},"824":{}}}],["attack",{"_index":2919,"title":{},"content":{"612":{},"664":{},"677":{},"724":{},"872":{}}}],["attempt",{"_index":2771,"title":{},"content":{"604":{}}}],["attest",{"_index":304,"title":{"749":{}},"content":{"76":{},"203":{},"253":{},"289":{},"720":{},"750":{},"753":{}}}],["attract",{"_index":3808,"title":{},"content":{"890":{},"900":{}}}],["attribut",{"_index":1245,"title":{"380":{}},"content":{"269":{},"379":{},"380":{},"954":{}}}],["audit",{"_index":584,"title":{"627":{},"828":{}},"content":{"206":{},"370":{},"627":{},"705":{},"828":{},"872":{},"873":{}}}],["auth",{"_index":3986,"title":{},"content":{"955":{}}}],["auth_key",{"_index":785,"title":{},"content":{"218":{},"219":{},"225":{}}}],["auth_se",{"_index":783,"title":{},"content":{"218":{},"219":{},"225":{}}}],["auth_tag",{"_index":769,"title":{},"content":{"218":{},"219":{},"225":{}}}],["authent",{"_index":1395,"title":{},"content":{"286":{},"662":{},"683":{},"692":{},"693":{},"716":{},"727":{},"728":{},"793":{},"817":{},"953":{},"955":{},"956":{}}}],["authenticateyk",{"_index":1392,"title":{"286":{}},"content":{}}],["authentif",{"_index":3992,"title":{},"content":{"956":{}}}],["author",{"_index":47,"title":{"357":{}},"content":{"12":{},"28":{},"43":{},"52":{},"58":{},"61":{},"137":{},"143":{},"220":{},"225":{},"230":{},"234":{},"235":{},"236":{},"260":{},"269":{},"338":{},"339":{},"353":{},"357":{},"368":{},"418":{},"456":{},"545":{},"560":{},"573":{},"574":{},"575":{},"662":{},"665":{},"682":{},"690":{},"692":{},"710":{},"727":{},"774":{},"782":{},"848":{}}}],["authorit",{"_index":3468,"title":{},"content":{"781":{}}}],["authorization/deleg",{"_index":149,"title":{},"content":{"28":{},"58":{},"143":{}}}],["authorizationd",{"_index":193,"title":{},"content":{"43":{}}}],["authorized_key",{"_index":2216,"title":{},"content":{"414":{},"415":{},"456":{}}}],["authorized_public_key",{"_index":2246,"title":{},"content":{"418":{},"560":{}}}],["authorizedkey",{"_index":46,"title":{"12":{}},"content":{"12":{},"52":{},"53":{},"167":{},"177":{}}}],["authorizedkey.encryptedsecretkey",{"_index":59,"title":{},"content":{"13":{}}}],["authorizedkey.publickey",{"_index":60,"title":{},"content":{"13":{}}}],["authorizedpublickey",{"_index":230,"title":{},"content":{"52":{}}}],["authpolici",{"_index":1280,"title":{},"content":{"269":{}}}],["authvalu",{"_index":1271,"title":{},"content":{"269":{}}}],["auto",{"_index":3266,"title":{},"content":{"709":{},"956":{}}}],["autolock",{"_index":3996,"title":{},"content":{"956":{}}}],["autom",{"_index":1645,"title":{"787":{},"917":{}},"content":{"320":{},"701":{},"705":{},"787":{},"797":{},"859":{},"868":{},"917":{},"933":{}}}],["automat",{"_index":1656,"title":{},"content":{"320":{},"367":{},"376":{},"404":{},"405":{},"406":{},"541":{},"545":{},"560":{},"577":{},"578":{},"579":{},"580":{},"581":{},"582":{},"583":{},"705":{},"835":{},"837":{},"845":{},"848":{},"852":{},"861":{},"886":{},"897":{},"906":{},"913":{},"934":{},"1003":{}}}],["autonom",{"_index":1846,"title":{"368":{}},"content":{"367":{},"368":{},"661":{},"701":{},"738":{}}}],["autor",{"_index":3698,"title":{},"content":{"848":{}}}],["avail",{"_index":194,"title":{"255":{},"356":{},"609":{},"623":{},"894":{},"902":{},"964":{}},"content":{"43":{},"243":{},"246":{},"251":{},"256":{},"257":{},"319":{},"339":{},"353":{},"355":{},"356":{},"364":{},"365":{},"366":{},"377":{},"378":{},"392":{},"394":{},"398":{},"402":{},"424":{},"530":{},"532":{},"533":{},"536":{},"549":{},"565":{},"599":{},"609":{},"627":{},"641":{},"644":{},"648":{},"663":{},"664":{},"665":{},"695":{},"712":{},"715":{},"717":{},"733":{},"734":{},"738":{},"739":{},"749":{},"750":{},"757":{},"760":{},"788":{},"791":{},"792":{},"815":{},"818":{},"828":{},"830":{},"835":{},"838":{},"842":{},"857":{},"861":{},"886":{},"890":{},"893":{},"894":{},"900":{},"902":{},"906":{},"909":{},"913":{},"924":{},"956":{},"957":{},"962":{},"963":{},"965":{},"972":{},"1002":{}}}],["availability/lat",{"_index":3291,"title":{},"content":{"717":{}}}],["availabilityaddingtim",{"_index":79,"title":{},"content":{"15":{}}}],["averag",{"_index":1169,"title":{},"content":{"257":{},"279":{},"353":{},"355":{},"378":{}}}],["average(hourly_temperatur",{"_index":1995,"title":{},"content":{"378":{}}}],["average(x",{"_index":1971,"title":{},"content":{"378":{}}}],["average_temperatur",{"_index":1994,"title":{},"content":{"378":{}}}],["averageavail",{"_index":195,"title":{},"content":{"43":{}}}],["aviat",{"_index":3191,"title":{},"content":{"685":{}}}],["avoid",{"_index":892,"title":{},"content":{"234":{},"308":{},"311":{},"312":{},"314":{},"316":{},"346":{},"370":{},"536":{},"645":{},"682":{},"692":{},"710":{},"788":{},"817":{},"962":{},"963":{}}}],["avro",{"_index":1808,"title":{},"content":{"361":{}}}],["awar",{"_index":2963,"title":{},"content":{"656":{},"719":{},"876":{},"913":{}}}],["award",{"_index":3805,"title":{},"content":{"890":{}}}],["away",{"_index":3454,"title":{},"content":{"759":{}}}],["awc",{"_index":4030,"title":{},"content":{"963":{},"1002":{}}}],["awri",{"_index":1068,"title":{},"content":{"239":{}}}],["b",{"_index":1503,"title":{},"content":{"309":{},"392":{},"481":{},"939":{}}}],["b298kjkfs98dj7xdnsq",{"_index":3603,"title":{},"content":{"805":{}}}],["back",{"_index":859,"title":{"901":{}},"content":{"219":{},"239":{},"360":{},"655":{},"793":{},"806":{},"851":{},"890":{},"893":{},"894":{},"902":{},"909":{}}}],["backbon",{"_index":3755,"title":{},"content":{"872":{},"930":{}}}],["backend",{"_index":555,"title":{},"content":{"204":{},"793":{}}}],["background",{"_index":2930,"title":{},"content":{"648":{}}}],["backpressur",{"_index":1562,"title":{},"content":{"314":{}}}],["backup",{"_index":1514,"title":{},"content":{"310":{},"312":{},"315":{}}}],["backward",{"_index":3084,"title":{},"content":{"671":{},"976":{},"997":{}}}],["bad",{"_index":3126,"title":{},"content":{"678":{}}}],["balanc",{"_index":62,"title":{"24":{},"114":{},"891":{}},"content":{"24":{},"26":{},"64":{},"66":{},"73":{},"74":{},"114":{},"116":{},"157":{},"171":{},"242":{},"243":{},"246":{},"333":{},"438":{},"441":{},"442":{},"443":{},"564":{},"662":{},"732":{},"891":{},"893":{},"894":{},"897":{},"898":{},"906":{},"907":{},"910":{},"913":{},"914":{},"939":{},"949":{},"956":{},"964":{}}}],["balance.address",{"_index":396,"title":{},"content":{"115":{}}}],["balance.token",{"_index":68,"title":{},"content":{"25":{}}}],["balance.uco",{"_index":70,"title":{},"content":{"25":{},"438":{}}}],["ban",{"_index":3112,"title":{},"content":{"678":{}}}],["bandwidth",{"_index":1806,"title":{},"content":{"361":{},"712":{},"718":{},"733":{},"734":{}}}],["banish",{"_index":3055,"title":{},"content":{"664":{},"678":{}}}],["bar",{"_index":2448,"title":{},"content":{"477":{},"478":{},"512":{}}}],["base",{"_index":492,"title":{"884":{}},"content":{"204":{},"205":{},"224":{},"241":{},"251":{},"261":{},"279":{},"335":{},"346":{},"353":{},"367":{},"368":{},"381":{},"413":{},"481":{},"493":{},"494":{},"604":{},"613":{},"648":{},"661":{},"663":{},"664":{},"665":{},"670":{},"674":{},"679":{},"680":{},"685":{},"688":{},"689":{},"695":{},"696":{},"700":{},"701":{},"716":{},"724":{},"738":{},"744":{},"745":{},"747":{},"766":{},"785":{},"786":{},"792":{},"826":{},"845":{},"873":{},"886":{},"894":{},"900":{},"902":{},"906":{},"909":{},"913":{},"920":{},"929":{},"938":{},"953":{},"957":{}}}],["base16",{"_index":410,"title":{},"content":{"119":{},"155":{},"164":{},"176":{},"194":{}}}],["base64",{"_index":3448,"title":{},"content":{"759":{},"761":{},"805":{},"956":{}}}],["basi",{"_index":3796,"title":{},"content":{"890":{},"893":{}}}],["basic",{"_index":496,"title":{"381":{}},"content":{"204":{},"604":{},"743":{},"930":{}}}],["baz(uint,address",{"_index":2407,"title":{},"content":{"445":{},"446":{}}}],["be",{"_index":908,"title":{},"content":{"236":{},"315":{},"316":{},"319":{},"464":{},"470":{},"559":{},"683":{},"692":{},"701":{},"744":{},"791":{},"792":{},"793":{},"811":{}}}],["beacon",{"_index":73,"title":{"717":{},"730":{},"742":{}},"content":{"15":{},"111":{},"113":{},"251":{},"252":{},"255":{},"256":{},"319":{},"332":{},"666":{},"698":{},"714":{},"730":{},"731":{},"732":{},"733":{},"734":{},"737":{},"743":{},"744":{},"745":{},"747":{},"748":{},"749":{},"750":{}}}],["beaconchain",{"_index":1120,"title":{"250":{}},"content":{"250":{},"251":{},"252":{},"253":{},"257":{},"315":{},"353":{},"708":{},"717":{},"737":{},"740":{},"742":{},"748":{}}}],["beaconchainsummari",{"_index":72,"title":{"15":{},"111":{}},"content":{"15":{},"17":{},"91":{},"111":{},"113":{},"171":{},"175":{},"189":{}}}],["beaconchainsummary.availabilityaddingtim",{"_index":89,"title":{},"content":{"16":{}}}],["beaconchainsummary.p2pavail",{"_index":90,"title":{},"content":{"16":{}}}],["beaconchainsummary.summarytim",{"_index":91,"title":{},"content":{"16":{}}}],["beaconchainsummary.timestamp",{"_index":399,"title":{},"content":{"112":{}}}],["beaconchainsummary.transactionsummari",{"_index":92,"title":{},"content":{"16":{}}}],["beaconchainsummary.transactionsummaries.limit",{"_index":93,"title":{},"content":{"16":{}}}],["beaconchainsummary.transactionsummaries.pagingoffset",{"_index":94,"title":{},"content":{"16":{}}}],["beaconchainsummary.vers",{"_index":95,"title":{},"content":{"16":{}}}],["beauti",{"_index":3534,"title":{},"content":{"793":{}}}],["becom",{"_index":899,"title":{},"content":{"235":{},"330":{},"735":{},"781":{},"805":{},"961":{}}}],["befor",{"_index":588,"title":{},"content":{"206":{},"226":{},"232":{},"253":{},"256":{},"314":{},"322":{},"338":{},"400":{},"402":{},"403":{},"407":{},"532":{},"533":{},"663":{},"674":{},"728":{},"750":{},"770":{},"802":{},"809":{},"830":{},"835":{},"860":{},"877":{},"893":{},"897":{},"898":{},"906":{},"907":{},"909":{},"910":{},"913":{},"914":{},"945":{},"953":{},"955":{}}}],["begin",{"_index":1724,"title":{},"content":{"335":{},"655":{},"705":{},"805":{},"825":{},"831":{},"878":{},"883":{},"906":{},"909":{},"913":{}}}],["beginn",{"_index":3722,"title":{},"content":{"861":{}}}],["behalf",{"_index":1855,"title":{},"content":{"368":{}}}],["behav",{"_index":2671,"title":{},"content":{"541":{},"708":{}}}],["behavior",{"_index":1197,"title":{"348":{}},"content":{"263":{},"264":{},"348":{},"349":{},"368":{},"380":{},"708":{},"872":{}}}],["behaviour",{"_index":1604,"title":{},"content":{"316":{},"546":{},"807":{}}}],["behind",{"_index":1449,"title":{},"content":{"297":{},"298":{},"438":{},"705":{},"748":{}}}],["believ",{"_index":3207,"title":{},"content":{"687":{}}}],["below",{"_index":1770,"title":{},"content":{"346":{},"548":{},"560":{},"743":{},"782":{}}}],["benchmark",{"_index":1484,"title":{},"content":{"309":{},"322":{}}}],["benefit",{"_index":3738,"title":{},"content":{"875":{},"935":{}}}],["best",{"_index":1084,"title":{},"content":{"239":{},"240":{},"333":{},"359":{},"695":{},"738":{},"861":{},"873":{}}}],["beta",{"_index":3624,"title":{},"content":{"811":{}}}],["better",{"_index":312,"title":{"621":{}},"content":{"76":{},"203":{},"239":{},"241":{},"281":{},"312":{},"345":{},"370":{},"378":{},"648":{},"732":{},"743":{},"884":{}}}],["between",{"_index":458,"title":{},"content":{"170":{},"204":{},"209":{},"233":{},"320":{},"329":{},"360":{},"401":{},"615":{},"619":{},"621":{},"622":{},"635":{},"661":{},"665":{},"732":{},"745":{},"801":{},"812":{},"823":{},"833":{},"861":{},"890":{},"898":{},"907":{},"921":{},"923":{},"935":{},"961":{},"963":{},"1002":{}}}],["beyond",{"_index":3188,"title":{},"content":{"685":{},"696":{},"894":{},"955":{}}}],["bia",{"_index":2777,"title":{},"content":{"604":{}}}],["big",{"_index":829,"title":{},"content":{"219":{},"281":{},"542":{},"682":{},"805":{}}}],["bigger",{"_index":3281,"title":{},"content":{"713":{}}}],["biggest",{"_index":3250,"title":{},"content":{"701":{}}}],["billion",{"_index":3006,"title":{},"content":{"659":{},"660":{},"685":{}}}],["binanc",{"_index":2861,"title":{"638":{}},"content":{"638":{}}}],["binari",{"_index":414,"title":{"361":{}},"content":{"119":{},"155":{},"164":{},"176":{},"194":{},"226":{},"314":{},"359":{},"361":{},"471":{},"734":{},"843":{}}}],["biometr",{"_index":2219,"title":{"728":{}},"content":{"414":{},"655":{},"662":{},"670":{},"683":{},"687":{},"692":{},"724":{},"728":{},"950":{},"956":{}}}],["bip32",{"_index":937,"title":{},"content":{"223":{},"224":{}}}],["bip32/bip44",{"_index":940,"title":{},"content":{"223":{}}}],["bip39",{"_index":3976,"title":{},"content":{"954":{}}}],["bip39_mnemon",{"_index":3982,"title":{},"content":{"954":{}}}],["bip43",{"_index":943,"title":{},"content":{"223":{}}}],["bip44",{"_index":739,"title":{},"content":{"213":{},"214":{},"218":{},"219":{},"694":{}}}],["bip44path",{"_index":797,"title":{},"content":{"218":{},"219":{}}}],["bip44pathlen",{"_index":801,"title":{},"content":{"218":{},"219":{}}}],["bit",{"_index":954,"title":{},"content":{"224":{},"315":{},"361":{},"708":{},"956":{}}}],["bitcask",{"_index":1524,"title":{},"content":{"311":{}}}],["bitcoin",{"_index":489,"title":{},"content":{"204":{},"685":{},"694":{}}}],["bitfield",{"_index":3426,"title":{},"content":{"753":{}}}],["bitstr",{"_index":1812,"title":{},"content":{"361":{}}}],["black",{"_index":2976,"title":{"658":{}},"content":{}}],["blake2b",{"_index":1000,"title":{},"content":{"229":{},"468":{},"694":{}}}],["blind",{"_index":1877,"title":{},"content":{"370":{}}}],["blob",{"_index":3590,"title":{},"content":{"805":{}}}],["block",{"_index":228,"title":{"397":{},"403":{}},"content":{"52":{},"311":{},"360":{},"379":{},"388":{},"392":{},"393":{},"397":{},"398":{},"399":{},"400":{},"403":{},"405":{},"406":{},"408":{},"410":{},"413":{},"414":{},"415":{},"416":{},"417":{},"424":{},"532":{},"533":{},"536":{},"616":{},"636":{},"660":{},"661":{},"662":{},"780":{}}}],["blockag",{"_index":3244,"title":{},"content":{"699":{}}}],["blockchain",{"_index":482,"title":{"599":{},"621":{},"622":{},"644":{},"655":{},"727":{},"957":{}},"content":{"204":{},"220":{},"223":{},"225":{},"234":{},"238":{},"239":{},"320":{},"359":{},"364":{},"365":{},"366":{},"367":{},"382":{},"412":{},"424":{},"460":{},"573":{},"574":{},"575":{},"619":{},"621":{},"622":{},"624":{},"627":{},"630":{},"632":{},"633":{},"648":{},"649":{},"651":{},"652":{},"656":{},"659":{},"660":{},"661":{},"662":{},"663":{},"664":{},"678":{},"683":{},"686":{},"688":{},"695":{},"701":{},"704":{},"705":{},"707":{},"719":{},"727":{},"730":{},"731":{},"735":{},"739":{},"742":{},"746":{},"785":{},"791":{},"792":{},"793":{},"797":{},"801":{},"804":{},"806":{},"808":{},"809":{},"811":{},"812":{},"813":{},"814":{},"815":{},"818":{},"821":{},"824":{},"825":{},"826":{},"828":{},"833":{},"835":{},"841":{},"842":{},"859":{},"860":{},"861":{},"872":{},"890":{},"897":{},"898":{},"901":{},"906":{},"907":{},"910":{},"913":{},"914":{},"916":{},"927":{},"929":{},"933":{},"935":{},"937":{},"941":{},"950":{},"955":{},"956":{},"957":{},"961":{},"963":{},"964":{},"1002":{}}}],["blockchain'",{"_index":3252,"title":{},"content":{"701":{},"930":{}}}],["blockchain/ecosystem",{"_index":3131,"title":{"680":{}},"content":{}}],["bloom",{"_index":1618,"title":{},"content":{"317":{},"318":{}}}],["bnb",{"_index":2806,"title":{"639":{}},"content":{"619":{},"639":{},"648":{}}}],["bodi",{"_index":2415,"title":{},"content":{"463":{},"464":{},"465":{},"860":{}}}],["body'",{"_index":2420,"title":{},"content":{"464":{}}}],["bolo",{"_index":530,"title":{},"content":{"204":{},"206":{},"215":{}}}],["book",{"_index":3878,"title":{},"content":{"917":{}}}],["bool",{"_index":1366,"title":{"276":{},"284":{}},"content":{"976":{}}}],["boolean",{"_index":7,"title":{"158":{},"404":{}},"content":{"5":{},"6":{},"10":{},"11":{},"43":{},"44":{},"82":{},"83":{},"158":{},"381":{},"403":{},"404":{},"405":{},"408":{},"410":{},"1000":{}}}],["boost",{"_index":3773,"title":{},"content":{"881":{}}}],["boot",{"_index":3101,"title":{},"content":{"677":{}}}],["bootstrap",{"_index":1118,"title":{"258":{},"260":{},"261":{},"719":{}},"content":{"249":{},"258":{},"260":{},"261":{},"319":{},"345":{},"354":{},"719":{},"720":{},"739":{}}}],["both",{"_index":652,"title":{},"content":{"216":{},"315":{},"632":{},"633":{},"660":{},"679":{},"687":{},"823":{},"825":{},"826":{},"834":{},"835":{},"861":{},"886":{},"892":{},"945":{},"956":{}}}],["bottleneckarcheth",{"_index":3029,"title":{},"content":{"661":{}}}],["bottom",{"_index":2657,"title":{},"content":{"539":{}}}],["boundari",{"_index":1574,"title":{},"content":{"314":{}}}],["bounti",{"_index":3761,"title":{},"content":{"873":{}}}],["box",{"_index":1080,"title":{},"content":{"239":{},"823":{},"955":{}}}],["bracket",{"_index":2073,"title":{},"content":{"390":{}}}],["branch",{"_index":1650,"title":{},"content":{"320":{},"321":{},"604":{},"660":{},"680":{}}}],["brand",{"_index":1787,"title":{},"content":{"359":{}}}],["brave",{"_index":2856,"title":{"616":{},"636":{}},"content":{"616":{},"636":{}}}],["break",{"_index":1999,"title":{},"content":{"380":{},"670":{}}}],["breakdown",{"_index":3739,"title":{"882":{}},"content":{"875":{},"892":{}}}],["bridg",{"_index":545,"title":{"591":{},"619":{},"620":{},"621":{},"622":{},"623":{},"627":{},"629":{},"631":{},"632":{},"633":{},"644":{},"645":{},"821":{},"834":{},"865":{}},"content":{"204":{},"589":{},"590":{},"591":{},"592":{},"593":{},"594":{},"619":{},"620":{},"622":{},"623":{},"629":{},"632":{},"633":{},"641":{},"644":{},"645":{},"648":{},"821":{},"823":{},"825":{},"826":{},"830":{},"831":{},"833":{},"834":{},"835":{},"837":{},"864":{},"951":{}}}],["bridge'",{"_index":3648,"title":{},"content":{"825":{}}}],["bring",{"_index":1544,"title":{},"content":{"312":{},"367":{}}}],["broad",{"_index":2762,"title":{},"content":{"604":{}}}],["broadcast",{"_index":3278,"title":{"713":{}},"content":{"713":{},"717":{},"749":{}}}],["broader",{"_index":2820,"title":{},"content":{"619":{}}}],["brought",{"_index":3150,"title":{},"content":{"682":{}}}],["brows",{"_index":2728,"title":{},"content":{"564":{},"956":{}}}],["browser",{"_index":2857,"title":{"611":{},"616":{},"636":{}},"content":{"611":{},"791":{},"801":{},"804":{},"806":{},"830":{},"877":{}}}],["browser'",{"_index":3680,"title":{},"content":{"838":{}}}],["browser’",{"_index":2859,"title":{},"content":{"616":{},"636":{}}}],["bsc",{"_index":2808,"title":{},"content":{"619":{},"621":{},"639":{},"649":{},"651":{},"821":{}}}],["buck",{"_index":3527,"title":{},"content":{"792":{}}}],["buffer",{"_index":648,"title":{},"content":{"216":{},"218":{},"219":{},"269":{}}}],["bug",{"_index":3760,"title":{},"content":{"873":{}}}],["build",{"_index":891,"title":{"538":{},"724":{},"805":{},"845":{}},"content":{"234":{},"236":{},"239":{},"249":{},"321":{},"341":{},"366":{},"530":{},"544":{},"562":{},"563":{},"573":{},"574":{},"575":{},"603":{},"659":{},"666":{},"670":{},"690":{},"793":{},"804":{},"843":{},"930":{},"935":{},"960":{}}}],["built",{"_index":1475,"title":{},"content":{"308":{},"315":{},"334":{},"659":{},"809":{},"818":{},"830":{},"861":{},"877":{},"881":{},"916":{},"927":{},"933":{},"960":{}}}],["burn",{"_index":2278,"title":{},"content":{"433":{},"612":{},"648":{},"695":{},"767":{},"909":{}}}],["burnt",{"_index":3654,"title":{},"content":{"826":{}}}],["busi",{"_index":3541,"title":{},"content":{"793":{}}}],["button",{"_index":2661,"title":{},"content":{"540":{},"541":{},"545":{},"547":{},"549":{},"641":{},"656":{},"816":{},"831":{},"845":{},"846":{},"848":{},"851":{},"853":{},"854":{},"856":{},"878":{},"889":{},"890":{},"893":{},"896":{},"898":{},"906":{},"907":{},"909":{},"910":{},"913":{},"914":{}}}],["buy",{"_index":2873,"title":{"639":{}},"content":{"639":{},"951":{}}}],["buytoken",{"_index":1925,"title":{},"content":{"376":{}}}],["buytoken(recipient_address",{"_index":1899,"title":{},"content":{"375":{}}}],["byte",{"_index":455,"title":{"268":{},"276":{},"277":{}},"content":{"164":{},"194":{},"212":{},"213":{},"214":{},"217":{},"218":{},"219":{},"224":{},"225":{},"227":{},"228":{},"229":{},"232":{},"233":{},"268":{},"269":{},"276":{},"314":{},"315":{},"361":{},"672":{},"673":{},"674":{},"696":{},"746":{},"956":{}}}],["c",{"_index":533,"title":{"240":{}},"content":{"204":{},"238":{},"240":{},"280":{},"281":{},"481":{}}}],["c:\\users{user}\\appdata\\roaming{yourapporgan",{"_index":3002,"title":{},"content":{"658":{}}}],["ca",{"_index":1283,"title":{},"content":{"269":{}}}],["cach",{"_index":1147,"title":{},"content":{"253":{},"281":{},"315":{},"345":{},"354":{},"806":{},"838":{}}}],["cachemanager.h",{"_index":2990,"title":{},"content":{"658":{}}}],["cachemanager.lock",{"_index":2991,"title":{},"content":{"658":{}}}],["calcul",{"_index":773,"title":{"696":{},"939":{},"945":{},"947":{}},"content":{"218":{},"219":{},"270":{},"299":{},"301":{},"303":{},"304":{},"305":{},"306":{},"307":{},"371":{},"507":{},"613":{},"660":{},"695":{},"696":{},"786":{},"861":{},"876":{},"893":{},"897":{},"906":{},"909":{},"913":{},"939":{},"945":{},"946":{},"947":{},"948":{},"956":{}}}],["calculate(x",{"_index":2642,"title":{},"content":{"537":{}}}],["calculate_new_reward",{"_index":3916,"title":{},"content":{"947":{}}}],["calculate_reward",{"_index":3910,"title":{},"content":{"945":{}}}],["call",{"_index":103,"title":{},"content":{"18":{},"55":{},"180":{},"217":{},"225":{},"239":{},"270":{},"272":{},"276":{},"354":{},"360":{},"367":{},"376":{},"390":{},"392":{},"393":{},"405":{},"437":{},"440":{},"448":{},"453":{},"455":{},"457":{},"459":{},"464":{},"547":{},"548":{},"549":{},"648":{},"661":{},"663":{},"696":{},"707":{},"713":{},"714":{},"720":{},"735":{},"742":{},"751":{},"805":{},"857":{},"945":{},"953":{},"962":{},"965":{}}}],["call_function/3",{"_index":2342,"title":{"448":{}},"content":{}}],["callabl",{"_index":2076,"title":{},"content":{"392":{},"393":{}}}],["caller",{"_index":2104,"title":{},"content":{"399":{},"533":{}}}],["calul",{"_index":832,"title":{},"content":{"219":{}}}],["can't",{"_index":2855,"title":{"616":{},"636":{}},"content":{"801":{}}}],["canada.vancouver.rain",{"_index":2199,"title":{},"content":{"411":{}}}],["candid",{"_index":1089,"title":{"329":{}},"content":{"240":{},"328":{},"330":{},"377":{},"409":{}}}],["capabl",{"_index":1081,"title":{},"content":{"239":{},"314":{},"316":{},"322":{},"368":{},"549":{},"670":{},"685":{},"696":{},"724":{},"727":{},"748":{},"791":{},"793":{},"823":{},"824":{},"955":{}}}],["capac",{"_index":3186,"title":{},"content":{"685":{},"746":{},"825":{}}}],["capit",{"_index":3285,"title":{},"content":{"715":{},"875":{},"892":{},"900":{}}}],["captur",{"_index":2583,"title":{},"content":{"512":{}}}],["card",{"_index":1398,"title":{},"content":{"287":{},"724":{},"881":{},"890":{},"899":{},"900":{},"901":{}}}],["care",{"_index":1888,"title":{},"content":{"371":{},"399":{},"604":{}}}],["carri",{"_index":3134,"title":{},"content":{"680":{}}}],["carriag",{"_index":2339,"title":{},"content":{"427":{}}}],["case",{"_index":688,"title":{},"content":{"217":{},"239":{},"269":{},"312":{},"322":{},"380":{},"399":{},"401":{},"550":{},"660":{},"662":{},"663":{},"700":{},"741":{},"754":{},"782":{},"793":{},"819":{},"825":{},"852":{},"913":{},"954":{},"955":{},"956":{}}}],["cassandra",{"_index":1490,"title":{},"content":{"309":{}}}],["casual",{"_index":3725,"title":{},"content":{"861":{}}}],["categor",{"_index":3082,"title":{},"content":{"670":{},"928":{}}}],["categori",{"_index":2223,"title":{},"content":{"416":{},"763":{}}}],["caus",{"_index":2900,"title":{},"content":{"645":{}}}],["caution",{"_index":2162,"title":{},"content":{"406":{},"464":{},"655":{},"658":{},"830":{},"835":{},"837":{},"838":{},"877":{}}}],["cbc",{"_index":925,"title":{},"content":{"221":{},"225":{}}}],["cc",{"_index":3129,"title":{},"content":{"679":{}}}],["cd",{"_index":1658,"title":{"322":{}},"content":{"322":{},"563":{},"843":{}}}],["censorship",{"_index":3512,"title":{},"content":{"788":{},"791":{}}}],["central",{"_index":3198,"title":{},"content":{"686":{},"687":{},"791":{},"792":{},"793":{},"823":{},"860":{},"864":{},"866":{}}}],["cert.pem",{"_index":3585,"title":{},"content":{"803":{}}}],["certain",{"_index":77,"title":{},"content":{"15":{},"113":{},"310":{},"336":{},"360":{},"616":{},"636":{},"688":{},"704":{},"913":{},"955":{}}}],["certainti",{"_index":3044,"title":{},"content":{"664":{}}}],["certbot",{"_index":3573,"title":{},"content":{"802":{}}}],["certif",{"_index":1242,"title":{"802":{},"803":{},"813":{}},"content":{"269":{},"287":{},"295":{},"296":{},"300":{},"301":{},"302":{},"303":{},"338":{},"720":{},"727":{},"797":{},"801":{},"802":{},"803":{},"811":{},"813":{},"815":{}}}],["certifi",{"_index":3119,"title":{},"content":{"678":{},"679":{},"801":{},"951":{}}}],["certificates",{"_index":1454,"title":{"300":{},"303":{}},"content":{}}],["certonli",{"_index":3575,"title":{},"content":{"802":{}}}],["cex",{"_index":3703,"title":{},"content":{"864":{},"866":{},"951":{}}}],["chach",{"_index":1596,"title":{},"content":{"315":{}}}],["chain",{"_index":74,"title":{"314":{},"315":{},"316":{},"319":{},"347":{},"429":{},"630":{},"703":{},"716":{},"717":{},"730":{},"780":{},"803":{},"824":{}},"content":{"15":{},"58":{},"111":{},"113":{},"114":{},"123":{},"143":{},"144":{},"220":{},"223":{},"224":{},"235":{},"239":{},"249":{},"256":{},"259":{},"261":{},"314":{},"315":{},"316":{},"317":{},"319":{},"332":{},"333":{},"334":{},"336":{},"342":{},"343":{},"344":{},"345":{},"367":{},"368":{},"369":{},"371":{},"375":{},"376":{},"400":{},"401":{},"404":{},"406":{},"407":{},"409":{},"414":{},"415":{},"425":{},"429":{},"430":{},"431":{},"435":{},"436":{},"438":{},"439":{},"441":{},"442":{},"443":{},"451":{},"517":{},"545":{},"546":{},"550":{},"601":{},"619":{},"630":{},"632":{},"638":{},"648":{},"660":{},"661":{},"662":{},"663":{},"666":{},"669":{},"674":{},"682":{},"683":{},"688":{},"690":{},"692":{},"693":{},"694":{},"695":{},"696":{},"698":{},"704":{},"707":{},"708":{},"714":{},"716":{},"727":{},"730":{},"731":{},"732":{},"733":{},"734":{},"735":{},"737":{},"743":{},"744":{},"745":{},"747":{},"748":{},"749":{},"750":{},"751":{},"757":{},"760":{},"768":{},"781":{},"782":{},"789":{},"791":{},"792":{},"793":{},"799":{},"800":{},"803":{},"804":{},"806":{},"807":{},"811":{},"812":{},"813":{},"814":{},"820":{},"823":{},"824":{},"825":{},"877":{},"933":{},"988":{},"991":{}}}],["chain'",{"_index":1151,"title":{},"content":{"255":{},"315":{},"317":{},"368":{}}}],["chain.get_balance(0x00abcd",{"_index":2294,"title":{},"content":{"438":{}}}],["chain.get_burn_address",{"_index":2276,"title":{},"content":{"433":{}}}],["chain.get_first_transaction_address(\"000012345",{"_index":2269,"title":{},"content":{"431":{}}}],["chain.get_first_transaction_address/1",{"_index":2691,"title":{},"content":{"546":{}}}],["chain.get_genesis_address",{"_index":2181,"title":{},"content":{"409":{}}}],["chain.get_genesis_address(\"000012345",{"_index":2265,"title":{},"content":{"430":{}}}],["chain.get_genesis_address(contract.address",{"_index":1919,"title":{},"content":{"375":{}}}],["chain.get_genesis_address(transaction.address",{"_index":1939,"title":{},"content":{"377":{}}}],["chain.get_genesis_address/1",{"_index":2690,"title":{"548":{}},"content":{"546":{}}}],["chain.get_genesis_public_key(\"00013b08d",{"_index":2272,"title":{},"content":{"432":{}}}],["chain.get_genesis_public_key/1",{"_index":2692,"title":{},"content":{"546":{}}}],["chain.get_last_address(0x00abcd",{"_index":2283,"title":{},"content":{"435":{}}}],["chain.get_last_transaction(0x00abcd",{"_index":2286,"title":{},"content":{"436":{}}}],["chain.get_last_transaction(0x00abcf",{"_index":2287,"title":{},"content":{"436":{}}}],["chain.get_previous_address(0x00abcd",{"_index":2289,"title":{},"content":{"437":{}}}],["chain.get_previous_address(transact",{"_index":2290,"title":{},"content":{"437":{}}}],["chain.get_token_balance(transaction_address",{"_index":2314,"title":{},"content":{"441":{}}}],["chain.get_tokens_balance(0x00abcd",{"_index":2319,"title":{},"content":{"442":{},"443":{}}}],["chain.get_transaction(0x00abcd",{"_index":2280,"title":{},"content":{"434":{}}}],["chain.get_uco_balance(0x00abcd",{"_index":2306,"title":{},"content":{"439":{}}}],["chainlength",{"_index":280,"title":{},"content":{"73":{}}}],["chainunspentoutput",{"_index":373,"title":{"123":{}},"content":{"100":{},"123":{},"157":{},"179":{},"183":{}}}],["chainunspentoutputs.address",{"_index":401,"title":{},"content":{"124":{}}}],["chainunspentoutputs.limit",{"_index":402,"title":{},"content":{"124":{}}}],["chainunspentoutputs.pagingoffset",{"_index":403,"title":{},"content":{"124":{}}}],["challeng",{"_index":3251,"title":{},"content":{"701":{},"802":{}}}],["chang",{"_index":956,"title":{},"content":{"224":{},"252":{},"261":{},"269":{},"281":{},"312":{},"320":{},"321":{},"341":{},"342":{},"343":{},"380":{},"406":{},"464":{},"542":{},"554":{},"604":{},"648":{},"656":{},"663":{},"678":{},"687":{},"705":{},"716":{},"737":{},"739":{},"748":{},"764":{},"768":{},"770":{},"781":{},"792":{},"820":{},"923":{},"946":{},"948":{},"962":{},"964":{}}}],["change/deposit/withdraw/relock",{"_index":3934,"title":{},"content":{"948":{}}}],["change/level",{"_index":3933,"title":{},"content":{"948":{}}}],["channel",{"_index":3385,"title":{},"content":{"736":{},"965":{}}}],["char",{"_index":802,"title":{},"content":{"218":{},"219":{},"954":{}}}],["charact",{"_index":467,"title":{"383":{}},"content":{"186":{},"383":{},"519":{},"556":{},"557":{},"558":{}}}],["charg",{"_index":1113,"title":{},"content":{"249":{},"255":{},"259":{},"346":{},"663":{},"733":{},"737":{},"748":{},"750":{},"875":{},"901":{},"913":{}}}],["chars[rng.nextint(chars.length",{"_index":3974,"title":{},"content":{"954":{}}}],["chart",{"_index":3953,"title":{},"content":{"951":{},"956":{}}}],["cheap",{"_index":3433,"title":{},"content":{"755":{},"792":{}}}],["check",{"_index":712,"title":{},"content":{"217":{},"219":{},"251":{},"268":{},"276":{},"277":{},"318":{},"321":{},"335":{},"338":{},"339":{},"343":{},"344":{},"348":{},"370":{},"379":{},"394":{},"403":{},"406":{},"408":{},"410":{},"421":{},"514":{},"532":{},"533":{},"536":{},"564":{},"645":{},"673":{},"705":{},"728":{},"733":{},"750":{},"787":{},"897":{},"898":{},"906":{},"907":{},"909":{},"910":{},"913":{},"914":{},"947":{}}}],["check/recheck",{"_index":3286,"title":{},"content":{"715":{}}}],["checkyk",{"_index":1385,"title":{"284":{}},"content":{}}],["child'",{"_index":2052,"title":{},"content":{"388":{}}}],["chip",{"_index":3107,"title":{},"content":{"677":{}}}],["choic",{"_index":1498,"title":{},"content":{"309":{},"395":{},"671":{},"953":{},"956":{},"1002":{}}}],["choos",{"_index":2678,"title":{},"content":{"545":{},"552":{},"638":{},"881":{},"885":{},"886":{},"893":{},"894":{},"909":{}}}],["chosen",{"_index":3671,"title":{},"content":{"835":{},"886":{},"894":{},"905":{},"944":{},"954":{},"956":{}}}],["chrome",{"_index":3660,"title":{},"content":{"830":{},"877":{}}}],["chunk",{"_index":3610,"title":{},"content":{"805":{}}}],["ci",{"_index":1667,"title":{"321":{}},"content":{"321":{},"322":{}}}],["ci/cd",{"_index":1657,"title":{},"content":{"320":{}}}],["ci_logfile.txt",{"_index":1688,"title":{},"content":{"321":{}}}],["cipher",{"_index":1261,"title":{},"content":{"269":{}}}],["ciphertext",{"_index":2396,"title":{},"content":{"473":{}}}],["circul",{"_index":2916,"title":{},"content":{"612":{},"909":{}}}],["cla",{"_index":870,"title":{},"content":{"212":{},"213":{},"214":{}}}],["claim",{"_index":3791,"title":{},"content":{"887":{},"893":{},"894":{},"902":{}}}],["clair",{"_index":2186,"title":{},"content":{"409":{}}}],["classic",{"_index":3279,"title":{},"content":{"713":{},"798":{}}}],["classifi",{"_index":3868,"title":{},"content":{"929":{}}}],["clean",{"_index":1522,"title":{},"content":{"310":{},"322":{}}}],["cleanup",{"_index":1520,"title":{},"content":{"310":{}}}],["clear",{"_index":2399,"title":{},"content":{"473":{},"756":{},"838":{},"845":{},"876":{},"900":{},"901":{},"909":{},"956":{}}}],["clearer",{"_index":3883,"title":{},"content":{"926":{}}}],["cleartext",{"_index":2400,"title":{},"content":{"473":{}}}],["cli",{"_index":551,"title":{"592":{},"595":{},"601":{},"818":{},"842":{},"857":{}},"content":{"204":{},"205":{},"589":{},"590":{},"591":{},"592":{},"593":{},"594":{},"595":{},"596":{},"601":{},"787":{},"796":{},"797":{},"802":{},"803":{},"805":{},"818":{},"843":{},"857":{}}}],["cli.git",{"_index":3689,"title":{},"content":{"843":{}}}],["cli@latest",{"_index":3687,"title":{},"content":{"843":{}}}],["click",{"_index":2660,"title":{},"content":{"540":{},"541":{},"545":{},"547":{},"549":{},"655":{},"656":{},"800":{},"811":{},"812":{},"813":{},"814":{},"815":{},"816":{},"831":{},"878":{},"888":{},"890":{},"898":{},"899":{},"906":{},"907":{},"909":{},"910":{},"913":{},"914":{}}}],["client",{"_index":896,"title":{"567":{},"752":{}},"content":{"232":{},"234":{},"236":{},"329":{},"360":{},"369":{},"567":{},"568":{},"569":{},"570":{},"571":{},"572":{},"666":{},"748":{},"752":{},"791":{},"802":{},"806":{},"825":{},"963":{},"1002":{}}}],["client'",{"_index":420,"title":{},"content":{"126":{}}}],["clone",{"_index":599,"title":{},"content":{"207":{},"563":{},"843":{}}}],["close",{"_index":2068,"title":{},"content":{"390":{},"407":{},"451":{},"936":{}}}],["closer",{"_index":3282,"title":{},"content":{"714":{}}}],["closest",{"_index":1716,"title":{},"content":{"332":{},"661":{},"720":{},"738":{},"741":{}}}],["cloudfar",{"_index":3570,"title":{},"content":{"800":{}}}],["cloudflar",{"_index":2787,"title":{},"content":{"599":{}}}],["cn108780501",{"_index":3367,"title":{},"content":{"728":{}}}],["cn109074478",{"_index":3368,"title":{},"content":{"728":{}}}],["cname",{"_index":3563,"title":{},"content":{"799":{},"800":{}}}],["code",{"_index":143,"title":{"320":{},"343":{},"344":{},"426":{},"553":{},"703":{}},"content":{"28":{},"31":{},"105":{},"153":{},"154":{},"216":{},"239":{},"241":{},"285":{},"314":{},"315":{},"320":{},"321":{},"322":{},"367":{},"368":{},"369":{},"370":{},"377":{},"379":{},"380":{},"393":{},"395":{},"397":{},"400":{},"401":{},"403":{},"406":{},"407":{},"409":{},"414":{},"415":{},"418":{},"425":{},"426":{},"427":{},"428":{},"451":{},"464":{},"532":{},"539":{},"545":{},"549":{},"553":{},"605":{},"655":{},"656":{},"688":{},"701":{},"704":{},"705":{},"725":{},"739":{},"770":{},"779":{},"782":{},"808":{},"809":{},"823":{},"830":{},"858":{},"877":{},"950":{},"951":{},"953":{},"955":{},"956":{},"963":{}}}],["code.is_same?(cod",{"_index":2333,"title":{},"content":{"427":{}}}],["code.is_valid?(cod",{"_index":2341,"title":{},"content":{"428":{}}}],["code_approv",{"_index":3495,"title":{"771":{}},"content":{}}],["code_propos",{"_index":3494,"title":{"770":{}},"content":{"771":{}}}],["code_s",{"_index":843,"title":{},"content":{"219":{}}}],["codebas",{"_index":3556,"title":{},"content":{"787":{}}}],["coin",{"_index":689,"title":{"375":{}},"content":{"217":{},"648":{}}}],["coin_typ",{"_index":706,"title":{},"content":{"217":{}}}],["coingecko",{"_index":1774,"title":{},"content":{"349":{},"610":{},"625":{},"709":{}}}],["coinmarketcap",{"_index":2832,"title":{},"content":{"610":{},"625":{}}}],["cold",{"_index":518,"title":{},"content":{"204":{}}}],["collater",{"_index":3866,"title":{},"content":{"928":{}}}],["collect",{"_index":255,"title":{},"content":{"58":{},"143":{},"321":{},"389":{},"441":{},"700":{},"754":{},"759":{},"762":{},"890":{},"894":{},"900":{},"904":{}}}],["collet",{"_index":3450,"title":{},"content":{"759":{}}}],["colletion_symbol",{"_index":3451,"title":{},"content":{"759":{}}}],["colonel",{"_index":1929,"title":{},"content":{"377":{}}}],["column",{"_index":1532,"title":{},"content":{"312":{},"313":{},"314":{},"316":{}}}],["combin",{"_index":1018,"title":{},"content":{"238":{},"291":{},"321":{},"824":{},"873":{},"941":{}}}],["come",{"_index":394,"title":{},"content":{"114":{},"310":{},"315":{},"409":{},"669":{},"674":{},"678":{},"696":{},"720":{},"876":{},"881":{},"894":{},"943":{}}}],["command",{"_index":565,"title":{"210":{},"211":{},"818":{},"857":{},"964":{}},"content":{"205":{},"207":{},"212":{},"213":{},"321":{},"787":{},"797":{},"802":{},"803":{},"818":{},"819":{},"820":{},"842":{},"857":{},"964":{}}}],["comment",{"_index":2003,"title":{},"content":{"381":{}}}],["commerc",{"_index":1879,"title":{},"content":{"371":{}}}],["commiss",{"_index":3509,"title":{},"content":{"786":{}}}],["commit",{"_index":1691,"title":{"664":{}},"content":{"321":{},"333":{},"343":{},"368":{},"464":{},"659":{},"661":{},"663":{},"664":{},"666":{},"708":{},"727":{},"750":{},"887":{},"894":{},"904":{}}}],["commite",{"_index":1745,"title":{},"content":{"344":{}}}],["common",{"_index":1166,"title":{},"content":{"257":{},"360":{},"679":{},"861":{}}}],["commun",{"_index":546,"title":{"725":{},"961":{}},"content":{"204":{},"240":{},"281":{},"360":{},"545":{},"602":{},"666":{},"689":{},"707":{},"711":{},"713":{},"714":{},"715":{},"729":{},"736":{},"803":{},"873":{},"929":{},"953":{},"957":{},"961":{},"963":{},"1002":{}}}],["compact",{"_index":1523,"title":{},"content":{"310":{},"311":{}}}],["compaction/merg",{"_index":1539,"title":{},"content":{"312":{}}}],["compani",{"_index":1955,"title":{},"content":{"378":{}}}],["companion",{"_index":544,"title":{},"content":{"204":{}}}],["compar",{"_index":791,"title":{},"content":{"218":{},"219":{},"349":{},"382":{},"384":{},"427":{},"812":{},"860":{},"953":{}}}],["comparaison",{"_index":2021,"title":{"384":{}},"content":{"382":{}}}],["compat",{"_index":2824,"title":{},"content":{"622":{},"623":{},"624":{},"648":{},"671":{},"675":{},"682":{},"830":{},"877":{},"1002":{}}}],["compatibl",{"_index":4042,"title":{},"content":{"976":{},"997":{}}}],["compens",{"_index":3346,"title":{},"content":{"728":{},"875":{},"919":{}}}],["competitor",{"_index":3962,"title":{},"content":{"953":{}}}],["compil",{"_index":1677,"title":{},"content":{"321":{},"370":{},"843":{},"953":{}}}],["complet",{"_index":2102,"title":{},"content":{"396":{},"644":{},"693":{},"735":{},"737":{},"748":{},"752":{},"756":{},"782":{},"791":{},"793":{},"797":{},"824":{},"826":{},"837":{},"898":{},"907":{},"910":{},"914":{}}}],["completli",{"_index":1577,"title":{},"content":{"315":{},"367":{}}}],["complex",{"_index":1093,"title":{},"content":{"240":{},"486":{},"542":{},"670":{},"671":{},"678":{},"695":{},"696":{},"713":{},"755":{},"793":{},"930":{}}}],["complianc",{"_index":3164,"title":{"693":{}},"content":{"897":{}}}],["compliant",{"_index":3165,"title":{},"content":{"693":{}}}],["compon",{"_index":528,"title":{},"content":{"204":{},"240":{},"328":{},"334":{},"345":{},"953":{}}}],["compos",{"_index":2249,"title":{},"content":{"422":{},"542":{},"756":{},"805":{},"806":{},"946":{},"956":{}}}],["compound",{"_index":3744,"title":{},"content":{"876":{}}}],["comprehens",{"_index":3197,"title":{},"content":{"686":{},"827":{},"862":{},"872":{},"890":{},"892":{},"899":{},"926":{}}}],["compress",{"_index":3637,"title":{},"content":{"820":{}}}],["compris",{"_index":3983,"title":{},"content":{"955":{}}}],["compromis",{"_index":2158,"title":{},"content":{"406":{}}}],["comput",{"_index":951,"title":{},"content":{"223":{},"240":{},"242":{},"253":{},"280":{},"281":{},"312":{},"345":{},"367":{},"370":{},"666":{},"670":{},"674":{},"677":{},"696":{},"700":{},"701":{},"729":{},"732":{},"733":{},"738":{}}}],["concat/2",{"_index":2473,"title":{"485":{}},"content":{}}],["concaten",{"_index":1337,"title":{},"content":{"270":{},"485":{}}}],["concept",{"_index":1551,"title":{"628":{},"731":{},"743":{},"822":{}},"content":{"313":{},"314":{},"315":{},"662":{},"663":{},"678":{},"690":{},"693":{},"714":{},"743":{},"827":{},"830":{},"862":{},"877":{},"926":{}}}],["concern",{"_index":640,"title":{},"content":{"216":{},"269":{},"724":{}}}],["concis",{"_index":1078,"title":{},"content":{"239":{},"894":{},"902":{}}}],["conclus",{"_index":3889,"title":{"941":{},"1002":{}},"content":{}}],["concord",{"_index":3039,"title":{},"content":{"663":{}}}],["concret",{"_index":2109,"title":{},"content":{"399":{}}}],["concurr",{"_index":1478,"title":{},"content":{"308":{},"332":{},"360":{},"735":{}}}],["concurrent/parallel",{"_index":1047,"title":{},"content":{"239":{}}}],["condit",{"_index":1647,"title":{"403":{},"406":{},"408":{},"410":{},"414":{}},"content":{"320":{},"367":{},"368":{},"375":{},"377":{},"379":{},"392":{},"403":{},"404":{},"406":{},"407":{},"408":{},"409":{},"410":{},"411":{},"412":{},"414":{},"415":{},"416":{},"417":{},"420":{},"421":{},"427":{},"428":{},"451":{},"532":{},"533":{},"536":{},"538":{},"549":{},"550":{},"727":{},"763":{},"782":{},"825":{},"826":{},"885":{},"913":{},"940":{}}}],["conduct",{"_index":3710,"title":{},"content":{"860":{},"897":{}}}],["confid",{"_index":3521,"title":{},"content":{"791":{},"909":{}}}],["confidenti",{"_index":3077,"title":{},"content":{"662":{},"727":{}}}],["config",{"_index":1782,"title":{},"content":{"350":{}}}],["config.ex",{"_index":1781,"title":{},"content":{"350":{}}}],["configur",{"_index":1730,"title":{"350":{}},"content":{"335":{},"350":{},"599":{},"600":{},"638":{},"690":{},"728":{},"764":{},"845":{},"846":{},"848":{},"851":{},"856":{},"906":{},"913":{}}}],["confirm",{"_index":310,"title":{"836":{},"898":{},"907":{},"910":{},"914":{}},"content":{"76":{},"203":{},"251":{},"253":{},"256":{},"464":{},"655":{},"749":{},"750":{},"751":{},"753":{},"811":{},"814":{},"816":{},"820":{},"826":{},"834":{},"836":{},"837":{},"841":{},"897":{},"898":{},"907":{},"910":{},"912":{},"914":{},"962":{},"964":{},"977":{},"980":{},"983":{}}}],["conflict",{"_index":2899,"title":{},"content":{"645":{},"682":{}}}],["conform",{"_index":1744,"title":{},"content":{"343":{}}}],["congratul",{"_index":2683,"title":{},"content":{"545":{}}}],["connect",{"_index":563,"title":{"616":{},"636":{}},"content":{"205":{},"258":{},"260":{},"283":{},"360":{},"601":{},"616":{},"636":{},"639":{},"661":{},"683":{},"715":{},"716":{},"727":{},"729":{},"816":{},"820":{},"835":{},"841":{},"842":{},"956":{},"984":{}}}],["connectivity/crypto",{"_index":1191,"title":{},"content":{"261":{}}}],["consensu",{"_index":1709,"title":{"663":{}},"content":{"327":{},"335":{},"368":{},"630":{},"659":{},"660":{},"661":{},"663":{},"664":{},"685":{},"708":{},"716":{},"727":{},"791":{},"824":{}}}],["consensusarcheth",{"_index":3022,"title":{},"content":{"661":{}}}],["consid",{"_index":516,"title":{},"content":{"204":{},"256":{},"257":{},"312":{},"332":{},"357":{},"369":{},"438":{},"442":{},"443":{},"688":{},"705":{},"715":{},"755":{},"781":{},"782":{},"803":{},"876":{},"906":{}}}],["consider",{"_index":3083,"title":{},"content":{"670":{},"736":{}}}],["consist",{"_index":3012,"title":{},"content":{"660":{},"662":{},"663":{},"705":{},"835":{},"872":{}}}],["consol",{"_index":2656,"title":{},"content":{"539":{},"547":{},"548":{},"549":{}}}],["consolid",{"_index":2831,"title":{},"content":{"610":{},"625":{}}}],["const",{"_index":3970,"title":{},"content":{"954":{}}}],["constant",{"_index":961,"title":{"873":{},"938":{}},"content":{"224":{},"873":{},"938":{},"939":{},"940":{}}}],["constantli",{"_index":3040,"title":{},"content":{"663":{}}}],["constitut",{"_index":3820,"title":{},"content":{"897":{}}}],["constrain",{"_index":3256,"title":{},"content":{"701":{}}}],["constraint",{"_index":1628,"title":{"279":{}},"content":{"278":{},"279":{},"368":{},"660":{},"665":{},"680":{},"706":{},"727":{}}}],["consult",{"_index":3071,"title":{},"content":{"662":{},"857":{}}}],["consum",{"_index":98,"title":{},"content":{"18":{},"700":{}}}],["consumedinput",{"_index":96,"title":{"18":{}},"content":{"18":{},"40":{},"41":{},"157":{},"171":{},"185":{},"187":{},"189":{}}}],["consumedinputs.amount",{"_index":120,"title":{},"content":{"19":{}}}],["consumedinputs.from",{"_index":121,"title":{},"content":{"19":{}}}],["consumedinputs.protocolvers",{"_index":122,"title":{},"content":{"19":{}}}],["consumedinputs.st",{"_index":123,"title":{},"content":{"19":{}}}],["consumedinputs.timestamp",{"_index":124,"title":{},"content":{"19":{}}}],["consumedinputs.tokenaddress",{"_index":125,"title":{},"content":{"19":{}}}],["consumedinputs.tokenid",{"_index":126,"title":{},"content":{"19":{}}}],["consumedinputs.typ",{"_index":127,"title":{},"content":{"19":{}}}],["consumpt",{"_index":3009,"title":{},"content":{"659":{},"662":{},"685":{},"724":{}}}],["contact",{"_index":1182,"title":{},"content":{"260":{},"644":{},"826":{}}}],["contacts.h",{"_index":2992,"title":{},"content":{"658":{}}}],["contacts.lock",{"_index":2993,"title":{},"content":{"658":{}}}],["contain",{"_index":150,"title":{},"content":{"28":{},"58":{},"143":{},"267":{},"269":{},"284":{},"287":{},"315":{},"320":{},"321":{},"322":{},"336":{},"346":{},"355":{},"379":{},"401":{},"404":{},"410":{},"414":{},"415":{},"426":{},"427":{},"428":{},"429":{},"430":{},"431":{},"435":{},"436":{},"438":{},"439":{},"441":{},"442":{},"443":{},"444":{},"447":{},"460":{},"466":{},"474":{},"480":{},"495":{},"504":{},"509":{},"513":{},"518":{},"526":{},"528":{},"536":{},"656":{},"661":{},"669":{},"677":{},"705":{},"733":{},"734":{},"750":{},"763":{},"764":{},"768":{},"770":{},"775":{},"778":{},"779":{},"782":{},"793":{},"803":{},"805":{},"811":{},"812":{},"815":{},"848":{},"890":{},"934":{},"939":{},"956":{},"964":{}}}],["content",{"_index":145,"title":{"160":{},"554":{},"806":{},"849":{}},"content":{"28":{},"29":{},"160":{},"219":{},"335":{},"338":{},"339":{},"340":{},"341":{},"342":{},"374":{},"400":{},"401":{},"404":{},"407":{},"411":{},"414":{},"415":{},"417":{},"418":{},"434":{},"436":{},"450":{},"541":{},"554":{},"604":{},"666":{},"704":{},"757":{},"760":{},"761":{},"768":{},"778":{},"782":{},"803":{},"805":{},"806":{},"811":{},"812":{},"813":{},"815":{},"817":{},"820":{},"849":{},"898":{},"907":{},"910":{},"914":{}}}],["content_s",{"_index":844,"title":{},"content":{"219":{}}}],["context",{"_index":20,"title":{"331":{},"629":{}},"content":{"2":{},"79":{},"216":{},"241":{},"272":{},"283":{},"323":{},"331":{},"395":{},"600":{},"666":{},"812":{},"813":{},"814":{},"926":{},"964":{}}}],["continu",{"_index":1882,"title":{},"content":{"371":{},"674":{},"705":{},"787":{},"820":{},"872":{},"894":{}}}],["contract",{"_index":115,"title":{"336":{},"367":{},"372":{},"373":{},"379":{},"397":{},"402":{},"403":{},"412":{},"419":{},"422":{},"447":{},"530":{},"531":{},"532":{},"533":{},"534":{},"535":{},"536":{},"538":{},"539":{},"545":{},"546":{},"549":{},"550":{},"551":{},"571":{},"629":{},"779":{},"823":{},"828":{},"850":{},"931":{},"942":{}},"content":{"18":{},"28":{},"55":{},"61":{},"98":{},"125":{},"137":{},"184":{},"315":{},"329":{},"335":{},"336":{},"367":{},"368":{},"369":{},"370":{},"371":{},"374":{},"375":{},"376":{},"377":{},"378":{},"379":{},"382":{},"385":{},"390":{},"391":{},"392":{},"393":{},"394":{},"395":{},"398":{},"400":{},"401":{},"404":{},"406":{},"408":{},"409":{},"410":{},"412":{},"415":{},"416":{},"418":{},"421":{},"422":{},"424":{},"425":{},"427":{},"428":{},"447":{},"448":{},"449":{},"450":{},"451":{},"458":{},"464":{},"470":{},"514":{},"527":{},"530":{},"532":{},"533":{},"534":{},"535":{},"536":{},"538":{},"539":{},"540":{},"541":{},"542":{},"544":{},"545":{},"546":{},"547":{},"549":{},"550":{},"551":{},"553":{},"554":{},"559":{},"560":{},"567":{},"568":{},"569":{},"570":{},"571":{},"572":{},"619":{},"624":{},"627":{},"629":{},"632":{},"633":{},"639":{},"644":{},"648":{},"651":{},"696":{},"707":{},"708":{},"724":{},"727":{},"751":{},"755":{},"762":{},"779":{},"782":{},"793":{},"823":{},"825":{},"826":{},"828":{},"830":{},"837":{},"848":{},"850":{},"860":{},"870":{},"872":{},"873":{},"921":{},"929":{},"930":{},"935":{},"945":{},"949":{},"976":{},"997":{}}}],["contract'",{"_index":1856,"title":{},"content":{"368":{},"375":{},"398":{},"448":{},"513":{},"517":{},"527":{},"541":{},"545":{},"550":{},"560":{},"848":{}}}],["contract.add_ownership",{"_index":2366,"title":{},"content":{"456":{}}}],["contract.add_recipi",{"_index":1924,"title":{},"content":{"376":{}}}],["contract.add_recipient(\"000012345",{"_index":2373,"title":{},"content":{"458":{}}}],["contract.add_token_transf",{"_index":2358,"title":{},"content":{"454":{}}}],["contract.add_token_transfer(to",{"_index":1912,"title":{},"content":{"375":{}}}],["contract.add_token_transfer(token_address",{"_index":3464,"title":{},"content":{"762":{}}}],["contract.add_uco_transf",{"_index":1993,"title":{},"content":{"378":{},"427":{},"428":{}}}],["contract.add_uco_transfer(amount",{"_index":1927,"title":{},"content":{"376":{}}}],["contract.add_uco_transfer(to",{"_index":2354,"title":{},"content":{"452":{}}}],["contract.address",{"_index":1902,"title":{},"content":{"375":{},"421":{}}}],["contract.call_function(0x0000abcd",{"_index":2343,"title":{},"content":{"448":{}}}],["contract.cont",{"_index":2689,"title":{},"content":{"549":{}}}],["contract.set_code(\"@vers",{"_index":2351,"title":{},"content":{"451":{}}}],["contract.set_cont",{"_index":2653,"title":{},"content":{"538":{},"549":{}}}],["contract.set_content(\"averag",{"_index":1996,"title":{},"content":{"378":{}}}],["contract.set_content(\"hello",{"_index":1894,"title":{},"content":{"374":{},"450":{}}}],["contract.set_content(\"no",{"_index":1992,"title":{},"content":{"378":{}}}],["contract.set_content(chain.get_genesis_address(0x00002223bbd4ec3d64ae597696c7d7ade1cee65c639d885450ad2d7b75592ac76afa",{"_index":2701,"title":{},"content":{"548":{}}}],["contract.set_content(time.now",{"_index":2697,"title":{},"content":{"547":{}}}],["contract.set_type(\"transf",{"_index":1911,"title":{},"content":{"375":{},"376":{},"449":{}}}],["contract.uco_mov",{"_index":2140,"title":{},"content":{"401":{}}}],["contract.uco_transf",{"_index":2139,"title":{},"content":{"401":{}}}],["contract1",{"_index":1869,"title":{},"content":{"369":{}}}],["contract2",{"_index":1871,"title":{},"content":{"369":{}}}],["contract_address",{"_index":2344,"title":{},"content":{"448":{}}}],["contrast",{"_index":3355,"title":{},"content":{"728":{}}}],["contribut",{"_index":2744,"title":{"602":{},"603":{},"858":{}},"content":{"602":{},"603":{},"604":{},"678":{},"688":{},"689":{},"706":{},"858":{},"870":{},"894":{},"897":{},"900":{},"901":{},"902":{},"905":{},"906":{},"913":{},"927":{},"928":{},"929":{},"930":{}}}],["contributor",{"_index":2765,"title":{},"content":{"604":{},"701":{},"705":{}}}],["control",{"_index":2670,"title":{},"content":{"541":{},"542":{},"600":{},"662":{},"682":{},"687":{},"688":{},"785":{},"906":{},"913":{},"950":{},"955":{}}}],["conveni",{"_index":2007,"title":{},"content":{"381":{},"450":{}}}],["convent",{"_index":3647,"title":{},"content":{"824":{}}}],["convert",{"_index":413,"title":{},"content":{"119":{},"155":{},"164":{},"176":{},"194":{},"217":{},"218":{},"219":{},"267":{},"268":{},"269":{},"276":{},"316":{},"375":{},"382":{},"421":{},"427":{}}}],["coordin",{"_index":374,"title":{"733":{}},"content":{"108":{},"267":{},"662":{},"663":{},"666":{},"733":{},"782":{}}}],["coordinator'",{"_index":3482,"title":{},"content":{"782":{}}}],["copi",{"_index":653,"title":{},"content":{"216":{},"219":{},"275":{},"287":{},"296":{},"300":{},"321":{},"322":{},"424":{},"500":{},"503":{},"656":{},"890":{},"901":{}}}],["copy/past",{"_index":2892,"title":{},"content":{"643":{}}}],["core",{"_index":1014,"title":{"237":{},"569":{}},"content":{"567":{},"568":{},"569":{},"570":{},"571":{},"572":{},"934":{}}}],["cornerston",{"_index":3709,"title":{},"content":{"859":{},"869":{},"930":{}}}],["corpor",{"_index":3538,"title":{},"content":{"793":{}}}],["correct",{"_index":1142,"title":{},"content":{"253":{},"341":{},"409":{},"542":{},"604":{},"658":{},"705":{}}}],["correctli",{"_index":1692,"title":{},"content":{"321":{}}}],["correl",{"_index":3340,"title":{},"content":{"727":{}}}],["correspond",{"_index":721,"title":{},"content":{"214":{},"217":{},"271":{},"275":{},"655":{},"656":{},"782":{},"857":{},"890":{},"909":{}}}],["cosign",{"_index":3425,"title":{},"content":{"753":{}}}],["cost",{"_index":2951,"title":{"651":{}},"content":{"695":{},"696":{},"698":{},"699":{},"700":{},"786":{},"792":{},"861":{},"897":{},"906":{},"913":{},"933":{},"953":{}}}],["costli",{"_index":3522,"title":{"792":{}},"content":{}}],["council",{"_index":1654,"title":{},"content":{"320":{},"705":{}}}],["count",{"_index":1424,"title":{},"content":{"290":{},"377":{},"378":{},"550":{}}}],["counter",{"_index":2685,"title":{},"content":{"549":{},"550":{}}}],["counterparti",{"_index":3650,"title":{},"content":{"825":{},"826":{},"868":{}}}],["countri",{"_index":3087,"title":{},"content":{"671":{}}}],["coupl",{"_index":3168,"title":{},"content":{"693":{},"729":{},"792":{}}}],["cover",{"_index":1621,"title":{},"content":{"319":{},"542":{},"872":{}}}],["covert",{"_index":4025,"title":{},"content":{"962":{}}}],["cp",{"_index":1686,"title":{},"content":{"321":{}}}],["crash",{"_index":2270,"title":{},"content":{"431":{}}}],["creat",{"_index":900,"title":{"601":{},"655":{},"853":{},"856":{},"896":{},"897":{}},"content":{"223":{},"235":{},"251":{},"259":{},"260":{},"269":{},"313":{},"321":{},"322":{},"336":{},"340":{},"368":{},"371":{},"374":{},"388":{},"390":{},"401":{},"451":{},"470":{},"538":{},"549":{},"560":{},"602":{},"603":{},"605":{},"612":{},"633":{},"655":{},"656":{},"683":{},"689":{},"691":{},"692":{},"693":{},"700":{},"705":{},"729":{},"754":{},"755":{},"757":{},"759":{},"761":{},"762":{},"764":{},"773":{},"785":{},"793":{},"801":{},"820":{},"826":{},"845":{},"846":{},"848":{},"852":{},"853":{},"854":{},"855":{},"856":{},"864":{},"866":{},"869":{},"896":{},"897":{},"898":{},"930":{},"953":{},"954":{}}}],["create/import",{"_index":2854,"title":{},"content":{"615":{},"635":{}}}],["created/manipul",{"_index":110,"title":{},"content":{"18":{},"98":{},"125":{}}}],["creation",{"_index":1139,"title":{"757":{},"898":{}},"content":{"252":{},"256":{},"332":{},"612":{},"648":{},"662":{},"699":{},"700":{},"761":{},"811":{},"848":{},"897":{},"898":{},"907":{},"953":{}}}],["credenti",{"_index":3169,"title":{},"content":{"693":{}}}],["credit",{"_index":1907,"title":{},"content":{"375":{},"421":{}}}],["credo",{"_index":1694,"title":{},"content":{"321":{}}}],["criteria",{"_index":1727,"title":{},"content":{"335":{},"679":{},"738":{}}}],["critic",{"_index":3162,"title":{},"content":{"692":{},"898":{},"907":{},"910":{},"914":{}}}],["cron",{"_index":1853,"title":{},"content":{"368":{},"535":{}}}],["cross",{"_index":133,"title":{"630":{},"824":{}},"content":{"21":{},"369":{},"619":{},"630":{},"632":{},"666":{},"727":{},"736":{},"749":{},"782":{},"824":{},"825":{},"953":{},"963":{},"1002":{}}}],["crossvalidationstamp",{"_index":129,"title":{"21":{}},"content":{"21":{},"73":{},"74":{},"167":{},"177":{}}}],["crossvalidationstamp.nodepublickey",{"_index":138,"title":{},"content":{"22":{}}}],["crossvalidationstamp.signatur",{"_index":139,"title":{},"content":{"22":{}}}],["crowdfund",{"_index":2210,"title":{"421":{}},"content":{}}],["crowdsal",{"_index":1897,"title":{},"content":{"375":{}}}],["crucial",{"_index":3748,"title":{},"content":{"876":{},"894":{},"909":{},"913":{},"927":{}}}],["crypto",{"_index":483,"title":{"466":{}},"content":{"204":{},"220":{},"260":{},"425":{},"466":{},"551":{},"680":{},"687":{},"786":{},"926":{},"956":{}}}],["crypto.decrypt_with_storage_nonce(ciphertext",{"_index":2398,"title":{},"content":{"473":{}}}],["crypto.hash(\"mi",{"_index":2377,"title":{},"content":{"468":{}}}],["crypto.hash(\"tintin",{"_index":2391,"title":{},"content":{"472":{}}}],["crypto.hash(secret",{"_index":2097,"title":{},"content":{"395":{},"409":{}}}],["crypto.hmac(\"mi",{"_index":2386,"title":{},"content":{"471":{}}}],["crypto.sign_with_recovery(signature_payload",{"_index":2392,"title":{},"content":{"472":{}}}],["cryptocurr",{"_index":487,"title":{},"content":{"204":{},"619":{},"782":{},"785":{},"860":{},"937":{},"950":{}}}],["cryptograph",{"_index":453,"title":{},"content":{"164":{},"194":{},"330":{},"368":{},"417":{},"671":{},"673":{},"677":{},"680":{},"727":{},"728":{},"782":{},"823":{},"824":{},"954":{}}}],["cryptographi",{"_index":895,"title":{"222":{},"262":{},"667":{}},"content":{"223":{},"225":{},"234":{},"262":{},"263":{},"267":{},"269":{},"362":{},"466":{},"633":{},"667":{},"669":{},"671":{},"680":{},"692":{},"716":{},"824":{},"826":{}}}],["css",{"_index":3588,"title":{},"content":{"805":{}}}],["ctr",{"_index":922,"title":{},"content":{"221":{},"225":{}}}],["culmin",{"_index":3741,"title":{},"content":{"875":{}}}],["cumul",{"_index":3833,"title":{},"content":{"900":{}}}],["curent",{"_index":1458,"title":{},"content":{"301":{}}}],["currenc",{"_index":3264,"title":{},"content":{"709":{},"956":{}}}],["current",{"_index":587,"title":{},"content":{"206":{},"217":{},"228":{},"229":{},"232":{},"251":{},"252":{},"271":{},"273":{},"274":{},"295":{},"301":{},"304":{},"306":{},"320":{},"346":{},"360":{},"368":{},"377":{},"398":{},"406":{},"408":{},"410":{},"424":{},"431":{},"447":{},"513":{},"527":{},"547":{},"601":{},"622":{},"648":{},"656":{},"660":{},"686":{},"696":{},"705":{},"711":{},"724":{},"732":{},"745":{},"748":{},"805":{},"811":{},"812":{},"813":{},"814":{},"886":{},"893":{},"894":{},"901":{},"902":{},"906":{},"909":{},"913":{},"925":{},"956":{},"962":{},"964":{},"969":{},"993":{}}}],["current_ath",{"_index":2119,"title":{},"content":{"400":{}}}],["currentkeyhandl",{"_index":1348,"title":{},"content":{"271":{}}}],["currentkeyindex",{"_index":1465,"title":{},"content":{"304":{}}}],["cursor",{"_index":1612,"title":{},"content":{"316":{}}}],["curv",{"_index":686,"title":{"228":{}},"content":{"217":{},"218":{},"224":{},"225":{},"227":{},"228":{},"232":{},"233":{},"234":{},"267":{},"277":{},"315":{},"672":{},"674":{},"680":{},"692":{},"694":{},"844":{},"856":{},"986":{}}}],["curve,fn",{"_index":748,"title":{},"content":{"218":{},"219":{}}}],["curve25519",{"_index":3100,"title":{},"content":{"675":{}}}],["curve_typ",{"_index":723,"title":{},"content":{"217":{},"218":{},"219":{},"228":{}}}],["curveid",{"_index":1324,"title":{},"content":{"269":{}}}],["curvetyp",{"_index":1223,"title":{},"content":{"267":{}}}],["custodi",{"_index":3941,"title":{},"content":{"950":{}}}],["custom",{"_index":949,"title":{"694":{}},"content":{"223":{},"308":{},"361":{},"371":{},"412":{},"674":{},"694":{},"754":{}}}],["customiz",{"_index":3170,"title":{},"content":{"694":{}}}],["customizationsupport",{"_index":3949,"title":{},"content":{"951":{}}}],["cx_curve_t",{"_index":713,"title":{},"content":{"217":{}}}],["cx_ecdh",{"_index":756,"title":{},"content":{"218":{},"219":{}}}],["cx_ecdh(&originprivatekey",{"_index":758,"title":{},"content":{"218":{},"219":{}}}],["cx_ecdh_x",{"_index":759,"title":{},"content":{"218":{},"219":{}}}],["cx_ecfp_init_private_key(curv",{"_index":734,"title":{},"content":{"217":{}}}],["cx_ecfp_private_key_t",{"_index":709,"title":{},"content":{"217":{}}}],["cx_ecfp_public_key_t",{"_index":711,"title":{},"content":{"217":{},"218":{}}}],["cx_hash_sha256",{"_index":850,"title":{},"content":{"219":{}}}],["cyber",{"_index":3308,"title":{},"content":{"724":{}}}],["cycl",{"_index":1187,"title":{},"content":{"260":{},"740":{},"741":{}}}],["cycle/epoch",{"_index":1740,"title":{},"content":{"342":{}}}],["d",{"_index":3695,"title":{},"content":{"846":{},"848":{},"855":{}}}],["d3e4f5",{"_index":2582,"title":{},"content":{"512":{}}}],["daili",{"_index":1202,"title":{},"content":{"264":{},"665":{},"745":{},"765":{},"766":{},"767":{},"769":{}}}],["dailli",{"_index":1181,"title":{},"content":{"259":{}}}],["damag",{"_index":3382,"title":{},"content":{"729":{}}}],["danger",{"_index":1208,"title":{},"content":{"266":{},"267":{},"269":{},"270":{},"272":{},"274":{},"276":{},"431":{}}}],["dao",{"_index":3249,"title":{},"content":{"701":{}}}],["dapp",{"_index":2096,"title":{"961":{}},"content":{"395":{},"624":{},"793":{},"825":{},"929":{},"930":{},"956":{},"957":{},"961":{},"962":{},"963":{},"1002":{}}}],["dart",{"_index":1830,"title":{"364":{}},"content":{"364":{},"953":{},"954":{},"957":{},"959":{},"963":{},"1002":{}}}],["dashboard",{"_index":3792,"title":{"888":{}},"content":{"888":{}}}],["data",{"_index":112,"title":{"28":{},"353":{},"718":{},"778":{},"956":{}},"content":{"18":{},"28":{},"31":{},"39":{},"46":{},"54":{},"57":{},"61":{},"73":{},"74":{},"133":{},"137":{},"141":{},"157":{},"161":{},"186":{},"187":{},"196":{},"197":{},"204":{},"216":{},"218":{},"219":{},"225":{},"230":{},"235":{},"239":{},"242":{},"257":{},"266":{},"269":{},"287":{},"295":{},"308":{},"310":{},"311":{},"312":{},"313":{},"315":{},"316":{},"319":{},"332":{},"334":{},"341":{},"342":{},"345":{},"346":{},"348":{},"349":{},"354":{},"357":{},"359":{},"361":{},"368":{},"369":{},"371":{},"377":{},"378":{},"389":{},"390":{},"395":{},"403":{},"410":{},"417":{},"424":{},"429":{},"445":{},"446":{},"449":{},"450":{},"460":{},"470":{},"471":{},"473":{},"475":{},"509":{},"510":{},"512":{},"536":{},"549":{},"630":{},"660":{},"663":{},"673":{},"707":{},"708":{},"711":{},"712":{},"713":{},"715":{},"718":{},"720":{},"721":{},"727":{},"728":{},"737":{},"738":{},"739":{},"747":{},"749":{},"762":{},"768":{},"782":{},"791":{},"792":{},"793":{},"805":{},"806":{},"808":{},"812":{},"824":{},"953":{},"955":{},"956":{},"976":{},"997":{}}}],["data.actionrecipi",{"_index":156,"title":{},"content":{"29":{}}}],["data.cod",{"_index":157,"title":{},"content":{"29":{}}}],["data.cont",{"_index":158,"title":{},"content":{"29":{}}}],["data.ledg",{"_index":159,"title":{},"content":{"29":{}}}],["data.ownership",{"_index":160,"title":{},"content":{"29":{}}}],["data.recipi",{"_index":161,"title":{},"content":{"29":{}}}],["data/ownership",{"_index":901,"title":{},"content":{"235":{}}}],["data=hashedpath",{"_index":966,"title":{},"content":{"224":{}}}],["databas",{"_index":1119,"title":{"308":{}},"content":{"249":{},"308":{},"309":{},"310":{},"312":{},"334":{},"367":{},"369":{},"371":{},"464":{},"658":{},"793":{},"956":{}}}],["databuff",{"_index":632,"title":{},"content":{"216":{},"217":{},"218":{},"219":{}}}],["datalength",{"_index":634,"title":{},"content":{"216":{},"217":{},"218":{},"219":{}}}],["datastructur",{"_index":1509,"title":{},"content":{"310":{}}}],["date",{"_index":78,"title":{"534":{}},"content":{"15":{},"18":{},"82":{},"98":{},"113":{},"125":{},"149":{},"162":{},"244":{},"247":{},"252":{},"258":{},"319":{},"345":{},"353":{},"355":{},"357":{},"367":{},"368":{},"526":{},"534":{},"546":{},"648":{},"731":{},"740":{},"741":{},"747":{},"802":{},"946":{},"956":{}}}],["datetim",{"_index":1852,"title":{"543":{}},"content":{"368":{},"374":{},"378":{},"418":{},"534":{},"537":{},"543":{}}}],["day",{"_index":1764,"title":{},"content":{"346":{},"413":{},"535":{},"717":{},"731":{},"732":{},"733":{},"734":{},"740":{},"747":{},"767":{},"769":{},"885":{}}}],["dbft",{"_index":3190,"title":{},"content":{"685":{}}}],["ddress",{"_index":1826,"title":{},"content":{"355":{}}}],["de",{"_index":3132,"title":{},"content":{"680":{}}}],["deactiv",{"_index":2901,"title":{},"content":{"645":{}}}],["deal",{"_index":1533,"title":{},"content":{"312":{},"361":{},"378":{},"390":{},"426":{},"444":{},"447":{},"466":{},"480":{},"526":{},"528":{},"550":{},"751":{}}}],["decemb",{"_index":2933,"title":{},"content":{"648":{}}}],["decentr",{"_index":1025,"title":{"681":{},"687":{},"702":{},"860":{}},"content":{"238":{},"367":{},"619":{},"624":{},"630":{},"639":{},"648":{},"655":{},"656":{},"659":{},"663":{},"674":{},"682":{},"685":{},"686":{},"687":{},"688":{},"689":{},"691":{},"693":{},"701":{},"724":{},"727":{},"728":{},"735":{},"787":{},"788":{},"791":{},"792":{},"798":{},"811":{},"821":{},"824":{},"842":{},"859":{},"860":{},"861":{},"916":{},"917":{},"927":{},"929":{},"930":{},"933":{},"935":{},"941":{},"950":{},"961":{},"962":{},"964":{}}}],["decid",{"_index":3224,"title":{},"content":{"688":{},"704":{},"740":{},"787":{},"894":{}}}],["decim",{"_index":252,"title":{"652":{}},"content":{"58":{},"143":{},"385":{},"557":{},"652":{},"758":{},"759":{}}}],["decimals=8",{"_index":3455,"title":{},"content":{"760":{}}}],["decis",{"_index":1989,"title":{},"content":{"378":{},"689":{},"909":{}}}],["declar",{"_index":2048,"title":{},"content":{"388":{},"391":{},"392":{},"393":{},"811":{},"814":{}}}],["declin",{"_index":3676,"title":{},"content":{"837":{}}}],["decod",{"_index":1394,"title":{},"content":{"286":{},"287":{},"314":{},"338":{},"339":{},"343":{},"446":{},"456":{},"471":{}}}],["decreas",{"_index":3787,"title":{},"content":{"886":{}}}],["decrypt",{"_index":53,"title":{},"content":{"12":{},"52":{},"61":{},"137":{},"218":{},"219":{},"225":{},"236":{},"269":{},"473":{},"560":{},"680":{},"690":{},"692":{},"782":{}}}],["decrypt/load",{"_index":1186,"title":{},"content":{"260":{}}}],["decrypt_with_storage_nonce/1",{"_index":2395,"title":{"473":{}},"content":{}}],["decryptwallet(ecdhpointx",{"_index":763,"title":{},"content":{"218":{},"219":{}}}],["dedic",{"_index":564,"title":{},"content":{"205":{},"323":{},"599":{},"707":{},"806":{},"888":{}}}],["deduct",{"_index":3672,"title":{},"content":{"835":{}}}],["deeper",{"_index":3658,"title":{},"content":{"827":{},"862":{},"941":{}}}],["deeplink",{"_index":4029,"title":{},"content":{"963":{},"965":{}}}],["defacoin_bal",{"_index":2324,"title":{},"content":{"442":{}}}],["default",{"_index":948,"title":{"675":{}},"content":{"223":{},"400":{},"499":{},"514":{},"515":{},"550":{},"558":{},"675":{},"694":{},"835":{},"843":{},"844":{},"845":{},"854":{},"855":{},"885":{},"988":{},"991":{}}}],["defi",{"_index":2737,"title":{"589":{},"864":{}},"content":{"589":{},"590":{},"591":{},"592":{},"593":{},"594":{},"859":{},"861":{},"873":{},"927":{},"928":{},"929":{},"930":{},"933":{},"936":{},"941":{},"951":{}}}],["defin",{"_index":655,"title":{},"content":{"216":{},"217":{},"223":{},"232":{},"243":{},"246":{},"254":{},"258":{},"259":{},"263":{},"266":{},"269":{},"279":{},"314":{},"323":{},"327":{},"328":{},"330":{},"333":{},"335":{},"348":{},"367":{},"368":{},"371":{},"375":{},"379":{},"412":{},"413":{},"414":{},"421":{},"441":{},"533":{},"557":{},"558":{},"560":{},"663":{},"712":{},"713":{},"731":{},"734":{},"754":{},"757":{},"774":{},"776":{},"782":{},"801":{},"848":{},"1003":{}}}],["definit",{"_index":1780,"title":{},"content":{"350":{},"399":{},"558":{},"700":{},"756":{},"757":{},"759":{},"762":{}}}],["deflat",{"_index":3233,"title":{},"content":{"695":{}}}],["degre",{"_index":3711,"title":{},"content":{"860":{}}}],["delay",{"_index":2887,"title":{},"content":{"641":{}}}],["deleg",{"_index":1865,"title":{},"content":{"368":{},"680":{},"727":{},"848":{},"961":{},"1002":{}}}],["delegationsauthor",{"_index":3477,"title":{},"content":{"782":{}}}],["delet",{"_index":1521,"title":{},"content":{"310":{},"464":{},"494":{},"658":{},"839":{},"846":{},"848":{},"855":{}}}],["delete/1",{"_index":2589,"title":{"517":{}},"content":{}}],["delete/2",{"_index":2537,"title":{"503":{}},"content":{}}],["delete_at/3",{"_index":2513,"title":{"494":{}},"content":{}}],["deliv",{"_index":3246,"title":{},"content":{"700":{},"791":{},"890":{}}}],["deliveri",{"_index":3328,"title":{"806":{}},"content":{"727":{},"791":{},"804":{}}}],["delv",{"_index":3803,"title":{},"content":{"890":{},"901":{}}}],["demand",{"_index":3502,"title":{},"content":{"785":{}}}],["demo",{"_index":612,"title":{"209":{}},"content":{"209":{}}}],["depend",{"_index":439,"title":{},"content":{"160":{},"217":{},"218":{},"315":{},"321":{},"323":{},"367":{},"369":{},"371":{},"398":{},"407":{},"554":{},"563":{},"651":{},"677":{},"696":{},"708":{},"721":{},"876":{},"955":{},"957":{}}}],["deploy",{"_index":1839,"title":{"545":{},"555":{},"556":{},"599":{},"787":{},"811":{},"820":{}},"content":{"366":{},"369":{},"530":{},"544":{},"545":{},"550":{},"551":{},"560":{},"601":{},"632":{},"688":{},"705":{},"787":{},"790":{},"792":{},"793":{},"795":{},"796":{},"803":{},"809":{},"811":{},"812":{},"813":{},"814":{},"815":{},"818":{},"820":{},"823":{},"825":{}}}],["deposit",{"_index":3663,"title":{"883":{},"893":{}},"content":{"830":{},"861":{},"869":{},"870":{},"876":{},"883":{},"885":{},"890":{},"893":{},"894":{},"901":{},"902":{},"908":{},"918":{},"919":{},"921":{},"945":{},"946":{},"948":{}}}],["deposit/claim/withdraw/relock",{"_index":3911,"title":{},"content":{"945":{}}}],["depositratioonitslevel",{"_index":3925,"title":{},"content":{"947":{},"948":{}}}],["deposittokensamount",{"_index":3926,"title":{},"content":{"947":{}}}],["deprec",{"_index":322,"title":{"529":{}},"content":{"79":{},"80":{},"402":{}}}],["deps.get",{"_index":2726,"title":{},"content":{"563":{}}}],["depth",{"_index":3732,"title":{},"content":{"870":{},"901":{}}}],["der",{"_index":883,"title":{},"content":{"214":{},"267":{},"268":{},"269":{},"276":{}}}],["deriv",{"_index":671,"title":{"223":{},"224":{}},"content":{"217":{},"218":{},"219":{},"220":{},"223":{},"224":{},"225":{},"227":{},"236":{},"277":{},"294":{},"315":{},"368":{},"674":{},"691":{},"694":{},"855":{},"964":{},"986":{},"987":{},"988":{},"990":{},"991":{},"992":{},"997":{},"1000":{}}}],["derivationpath",{"_index":4048,"title":{},"content":{"986":{}}}],["derivearchethickeypair",{"_index":679,"title":{},"content":{"217":{},"218":{},"219":{}}}],["derivearchethickeypair(cx_curve_secp256k1",{"_index":680,"title":{},"content":{"217":{}}}],["derivearchethickeypair(cx_curve_t",{"_index":704,"title":{},"content":{"217":{}}}],["desc",{"_index":39,"title":{},"content":{"7":{}}}],["descend",{"_index":43,"title":{},"content":{"8":{}}}],["describ",{"_index":942,"title":{},"content":{"223":{},"239":{},"395":{},"551":{},"643":{},"690":{},"782":{},"804":{},"816":{},"856":{},"890":{}}}],["descript",{"_index":225,"title":{},"content":{"49":{},"92":{},"174":{},"182":{},"314":{},"320":{},"759":{},"761":{},"997":{},"1000":{}}}],["deseri",{"_index":1146,"title":{},"content":{"253":{}}}],["design",{"_index":1545,"title":{"313":{}},"content":{"412":{},"605":{},"623":{},"624":{},"648":{},"677":{},"682":{},"683":{},"755":{},"785":{},"786":{},"790":{},"797":{},"859":{},"861":{},"890":{},"894":{},"900":{},"902":{},"904":{},"905":{},"909":{},"937":{},"953":{}}}],["desir",{"_index":2902,"title":{},"content":{"645":{}}}],["desktop",{"_index":502,"title":{},"content":{"204":{},"206":{},"232":{},"623":{},"658":{},"830":{},"877":{},"953":{},"955":{},"963":{}}}],["destin",{"_index":1872,"title":{},"content":{"369":{},"378":{},"421":{},"452":{},"454":{},"557":{},"558":{},"781":{},"835":{}}}],["destruct",{"_index":2915,"title":{},"content":{"612":{},"648":{},"695":{}}}],["detail",{"_index":169,"title":{"705":{},"836":{},"882":{},"900":{},"901":{}},"content":{"31":{},"253":{},"263":{},"264":{},"269":{},"406":{},"408":{},"410":{},"465":{},"552":{},"705":{},"777":{},"782":{},"834":{},"836":{},"840":{},"857":{},"868":{},"875":{},"889":{},"890":{},"892":{},"894":{},"898":{},"899":{},"900":{},"901":{},"906":{},"907":{},"909":{},"910":{},"912":{},"913":{},"914":{},"941":{}}}],["detect",{"_index":1725,"title":{},"content":{"335":{},"664":{},"710":{},"806":{}}}],["determin",{"_index":331,"title":{},"content":{"82":{},"149":{},"252":{},"256":{},"257":{},"258":{},"261":{},"336":{},"346":{},"356":{},"357":{},"362":{},"378":{},"610":{},"625":{},"662":{},"666":{},"673":{},"700":{},"715":{},"740":{},"741":{},"819":{},"873":{},"894":{},"897":{},"902":{},"936":{},"938":{},"956":{}}}],["determinist",{"_index":2385,"title":{},"content":{"470":{},"527":{},"661":{},"747":{}}}],["dev",{"_index":1199,"title":{},"content":{"263":{},"563":{}}}],["develop",{"_index":574,"title":{"237":{},"569":{},"643":{},"796":{},"930":{}},"content":{"205":{},"206":{},"239":{},"333":{},"367":{},"368":{},"395":{},"535":{},"546":{},"564":{},"567":{},"568":{},"569":{},"570":{},"571":{},"572":{},"589":{},"590":{},"591":{},"592":{},"593":{},"594":{},"600":{},"643":{},"648":{},"658":{},"680":{},"745":{},"755":{},"756":{},"786":{},"788":{},"790":{},"795":{},"796":{},"821":{},"827":{},"842":{},"858":{},"862":{},"872":{},"873":{},"877":{},"927":{},"929":{},"930":{},"935":{},"950":{},"953":{},"957":{},"961":{},"963":{},"1002":{}}}],["developer'",{"_index":2369,"title":{},"content":{"456":{}}}],["deviat",{"_index":1778,"title":{},"content":{"349":{}}}],["devic",{"_index":504,"title":{"217":{},"609":{},"623":{},"670":{}},"content":{"204":{},"205":{},"206":{},"216":{},"217":{},"221":{},"230":{},"235":{},"236":{},"283":{},"284":{},"414":{},"658":{},"662":{},"670":{},"727":{},"728":{},"729":{},"782":{},"838":{},"950":{},"953":{},"955":{},"956":{},"998":{}}}],["device_origin",{"_index":724,"title":{},"content":{"217":{}}}],["dex",{"_index":2739,"title":{"593":{},"608":{},"609":{},"859":{},"860":{}},"content":{"589":{},"590":{},"591":{},"592":{},"593":{},"594":{},"639":{},"859":{},"860":{},"877":{},"880":{},"902":{},"929":{},"933":{},"951":{}}}],["diagram",{"_index":2751,"title":{"605":{}},"content":{"602":{},"605":{}}}],["dialyz",{"_index":1698,"title":{},"content":{"321":{}}}],["dict",{"_index":2515,"title":{},"content":{"495":{}}}],["dictionari",{"_index":3980,"title":{},"content":{"954":{}}}],["didn't",{"_index":3267,"title":{},"content":{"709":{}}}],["diff",{"_index":1373,"title":{},"content":{"277":{},"320":{},"770":{},"771":{}}}],["differ",{"_index":309,"title":{},"content":{"76":{},"203":{},"223":{},"225":{},"309":{},"312":{},"315":{},"346":{},"361":{},"368":{},"375":{},"376":{},"392":{},"398":{},"401":{},"403":{},"415":{},"538":{},"539":{},"541":{},"546":{},"551":{},"648":{},"745":{},"812":{},"861":{},"881":{},"884":{},"894":{},"902":{},"906":{},"913":{},"923":{},"929":{},"935":{},"950":{},"1002":{}}}],["differenti",{"_index":2070,"title":{},"content":{"390":{},"728":{}}}],["digest",{"_index":1580,"title":{},"content":{"315":{},"674":{}}}],["digit",{"_index":491,"title":{},"content":{"204":{},"624":{},"683":{},"693":{},"694":{},"727":{},"934":{},"955":{}}}],["digitalis",{"_index":3430,"title":{},"content":{"754":{}}}],["dimens",{"_index":1606,"title":{},"content":{"316":{}}}],["dimension",{"_index":1605,"title":{},"content":{"316":{}}}],["direct",{"_index":1,"title":{"578":{}},"content":{"5":{},"10":{},"159":{},"577":{},"578":{},"579":{},"580":{},"581":{},"582":{},"583":{},"817":{},"835":{},"868":{},"888":{},"898":{},"907":{},"910":{},"914":{}}}],["directli",{"_index":2292,"title":{},"content":{"437":{},"464":{},"550":{},"601":{},"633":{},"781":{},"791":{},"860":{},"872":{},"873":{},"875":{},"889":{},"890":{},"901":{},"904":{},"953":{},"963":{}}}],["directori",{"_index":1689,"title":{},"content":{"321":{},"600":{},"658":{}}}],["disabl",{"_index":2677,"title":{},"content":{"545":{},"808":{}}}],["disagr",{"_index":3057,"title":{},"content":{"664":{},"782":{}}}],["disappear",{"_index":3813,"title":{},"content":{"893":{}}}],["disast",{"_index":3036,"title":{},"content":{"663":{}}}],["disclaim",{"_index":2200,"title":{},"content":{"402":{},"464":{}}}],["disclos",{"_index":3469,"title":{},"content":{"781":{}}}],["disclosur",{"_index":893,"title":{},"content":{"234":{},"669":{},"674":{},"692":{},"710":{},"727":{},"728":{}}}],["discolur",{"_index":3080,"title":{"669":{}},"content":{}}],["disconnect",{"_index":3631,"title":{"816":{}},"content":{"816":{}}}],["discord",{"_index":2898,"title":{},"content":{"611":{},"644":{}}}],["discourag",{"_index":2427,"title":{},"content":{"464":{}}}],["discov",{"_index":3275,"title":{},"content":{"712":{},"787":{}}}],["discoveri",{"_index":1824,"title":{"355":{}},"content":{"357":{},"358":{},"661":{},"693":{},"711":{}}}],["discrep",{"_index":3871,"title":{},"content":{"929":{}}}],["discret",{"_index":2770,"title":{},"content":{"604":{}}}],["discuss",{"_index":2753,"title":{},"content":{"602":{}}}],["disk",{"_index":1496,"title":{},"content":{"309":{},"310":{},"312":{},"314":{},"315":{},"316":{},"317":{},"319":{},"956":{}}}],["dispatch",{"_index":3280,"title":{},"content":{"713":{}}}],["display",{"_index":440,"title":{},"content":{"160":{},"219":{},"284":{},"540":{},"545":{},"564":{},"655":{},"693":{},"742":{},"748":{},"791":{},"806":{},"837":{},"841":{},"855":{},"857":{},"889":{},"890":{},"893":{},"900":{},"901":{},"904":{},"906":{},"909":{},"913":{},"956":{}}}],["dispos",{"_index":1687,"title":{},"content":{"321":{}}}],["disrupt",{"_index":3054,"title":{},"content":{"664":{}}}],["dissemin",{"_index":3290,"title":{},"content":{"716":{}}}],["distilleri",{"_index":1700,"title":{},"content":{"321":{}}}],["distinct",{"_index":3260,"title":{},"content":{"705":{}}}],["distinguish",{"_index":1796,"title":{},"content":{"360":{},"793":{}}}],["distribut",{"_index":1035,"title":{"281":{},"325":{},"333":{}},"content":{"239":{},"259":{},"279":{},"281":{},"327":{},"333":{},"353":{},"660":{},"661":{},"664":{},"665":{},"695":{},"706":{},"711":{},"718":{},"730":{},"732":{},"736":{},"737":{},"738":{},"786":{},"789":{},"876":{},"881":{},"884":{},"890":{},"937":{}}}],["diverg",{"_index":3747,"title":{},"content":{"876":{}}}],["diversif",{"_index":3873,"title":{},"content":{"930":{}}}],["divid",{"_index":1095,"title":{},"content":{"241":{},"251":{},"508":{},"731":{},"734":{},"735":{},"888":{}}}],["dividend",{"_index":2558,"title":{},"content":{"508":{}}}],["divis",{"_index":2562,"title":{},"content":{"508":{}}}],["divisor",{"_index":2559,"title":{},"content":{"508":{}}}],["dn",{"_index":2785,"title":{},"content":{"599":{},"797":{},"798":{},"799":{},"800":{},"802":{}}}],["dnslink",{"_index":3549,"title":{"799":{}},"content":{"797":{},"798":{}}}],["dnslink=/archethic/0f1e3",{"_index":3567,"title":{},"content":{"799":{}}}],["do",{"_index":1584,"title":{},"content":{"315":{},"700":{}}}],["doc",{"_index":542,"title":{},"content":{"204":{},"603":{},"1003":{}}}],["docker",{"_index":1685,"title":{},"content":{"321":{}}}],["document",{"_index":539,"title":{"577":{},"859":{},"1003":{}},"content":{"204":{},"475":{},"476":{},"577":{},"578":{},"579":{},"580":{},"581":{},"582":{},"583":{},"602":{},"603":{},"605":{},"616":{},"636":{},"659":{},"693":{},"827":{},"832":{},"858":{},"862":{},"879":{},"889":{},"1003":{}}}],["docusauru",{"_index":2754,"title":{},"content":{"603":{}}}],["doe",{"_index":2438,"title":{},"content":{"475":{}}}],["doesdecrypt",{"_index":795,"title":{},"content":{"218":{},"219":{}}}],["doesn't",{"_index":793,"title":{},"content":{"218":{},"219":{},"332":{},"371":{},"451":{},"486":{},"545":{},"696":{},"758":{},"791":{},"792":{}}}],["doesn’t",{"_index":3208,"title":{},"content":{"687":{}}}],["dollar",{"_index":3810,"title":{},"content":{"892":{},"900":{}}}],["domain",{"_index":1096,"title":{"599":{},"798":{}},"content":{"241":{},"367":{},"797":{},"798":{},"799":{},"801":{},"802":{},"811":{},"813":{}}}],["don't",{"_index":1592,"title":{},"content":{"315":{},"369":{},"382":{},"400":{},"422":{},"537":{},"656":{},"669":{},"683":{},"698":{},"699":{}}}],["done",{"_index":585,"title":{},"content":{"206":{},"217":{},"269":{},"316":{},"335":{},"368":{},"385":{},"401":{},"545":{},"650":{},"655":{},"760":{},"799":{},"848":{},"851":{},"955":{}}}],["don’t",{"_index":2851,"title":{},"content":{"615":{},"635":{}}}],["dot",{"_index":3629,"title":{},"content":{"815":{}}}],["doubl",{"_index":447,"title":{},"content":{"168":{},"218":{},"219":{},"225":{},"381":{}}}],["down",{"_index":1072,"title":{},"content":{"239":{},"655":{},"660":{},"846":{},"855":{}}}],["download",{"_index":907,"title":{"952":{}},"content":{"236":{},"655":{},"658":{},"692":{},"795":{},"806":{},"807":{},"830":{},"843":{},"877":{},"952":{},"953":{},"960":{}}}],["dri",{"_index":2713,"title":{},"content":{"559":{}}}],["drive",{"_index":3877,"title":{},"content":{"930":{}}}],["drop",{"_index":1802,"title":{},"content":{"360":{}}}],["dropdown",{"_index":2968,"title":{},"content":{"656":{}}}],["due",{"_index":1249,"title":{},"content":{"269":{},"275":{},"346":{},"368":{},"678":{},"792":{},"837":{},"923":{}}}],["dump",{"_index":1517,"title":{},"content":{"310":{},"312":{},"314":{}}}],["duplic",{"_index":1723,"title":{},"content":{"333":{},"491":{}}}],["durabl",{"_index":3149,"title":{},"content":{"682":{}}}],["durat",{"_index":2889,"title":{},"content":{"641":{},"886":{},"893":{},"894":{},"949":{},"956":{}}}],["dure",{"_index":1165,"title":{"641":{}},"content":{"257":{},"260":{},"269":{},"315":{},"316":{},"324":{},"332":{},"345":{},"354":{},"368":{},"371":{},"378":{},"399":{},"600":{},"612":{},"641":{},"652":{},"662":{},"694":{},"695":{},"696":{},"700":{},"714":{},"715":{},"732":{},"734":{},"750":{},"759":{},"826":{},"894":{},"900":{},"906":{},"913":{}}}],["dynam",{"_index":1026,"title":{},"content":{"239":{},"390":{},"876":{},"900":{},"913":{},"927":{},"929":{}}}],["e",{"_index":1609,"title":{},"content":{"316":{},"371":{}}}],["e.g",{"_index":153,"title":{},"content":{"28":{},"821":{}}}],["e0",{"_index":871,"title":{},"content":{"212":{},"213":{},"214":{}}}],["e_{key",{"_index":929,"title":{},"content":{"221":{}}}],["e_{priv",{"_index":933,"title":{},"content":{"221":{}}}],["e_{pub",{"_index":932,"title":{},"content":{"221":{},"225":{}}}],["each",{"_index":1106,"title":{},"content":{"244":{},"247":{},"251":{},"252":{},"255":{},"269":{},"314":{},"315":{},"327":{},"333":{},"345":{},"346":{},"360":{},"362":{},"369":{},"371":{},"375":{},"377":{},"400":{},"413":{},"415":{},"420":{},"421":{},"422":{},"453":{},"455":{},"456":{},"457":{},"459":{},"490":{},"535":{},"603":{},"638":{},"639":{},"649":{},"656":{},"661":{},"662":{},"663":{},"665":{},"669":{},"672":{},"674":{},"685":{},"688":{},"692":{},"694":{},"695":{},"696":{},"700":{},"704":{},"708":{},"712":{},"716":{},"717":{},"724":{},"732":{},"733":{},"734":{},"736":{},"737":{},"738":{},"740":{},"742":{},"745":{},"748":{},"750":{},"780":{},"781":{},"787":{},"791":{},"792":{},"806":{},"815":{},"817":{},"848":{},"881":{},"884":{},"885":{},"890":{},"894":{},"897":{},"899":{},"900":{},"902":{},"906":{},"909":{},"927":{},"934":{},"935":{},"936":{},"956":{}}}],["earlier",{"_index":1748,"title":{},"content":{"344":{}}}],["earn",{"_index":3717,"title":{},"content":{"861":{},"870":{},"876":{},"881":{},"888":{},"892":{},"894":{},"901":{},"928":{},"937":{},"945":{}}}],["earth",{"_index":3193,"title":{},"content":{"685":{}}}],["eas",{"_index":3027,"title":{},"content":{"661":{},"699":{},"745":{},"789":{},"861":{},"905":{}}}],["easi",{"_index":2668,"title":{"790":{}},"content":{"541":{},"603":{},"682":{},"890":{},"900":{},"901":{},"953":{},"963":{},"1002":{}}}],["easier",{"_index":1842,"title":{},"content":{"367":{},"370":{},"842":{},"928":{}}}],["easili",{"_index":969,"title":{},"content":{"224":{},"233":{},"263":{},"315":{},"371":{},"377":{},"683":{},"747":{},"861":{},"890":{},"899":{},"901":{},"948":{},"963":{}}}],["ecc",{"_index":1412,"title":{},"content":{"288":{},"297":{},"680":{}}}],["ecc_public_key",{"_index":1410,"title":{},"content":{"287":{},"298":{}}}],["eccpoints",{"_index":1469,"title":{"306":{},"307":{}},"content":{}}],["eccsigns",{"_index":1365,"title":{"276":{},"304":{},"305":{}},"content":{}}],["ecdh",{"_index":755,"title":{},"content":{"218":{},"219":{},"225":{},"277":{},"293":{},"306":{},"307":{}}}],["ecdh_point_x(e_{priv",{"_index":986,"title":{},"content":{"225":{}}}],["ecdh_point_x(e_{pub",{"_index":985,"title":{},"content":{"225":{}}}],["ecdh_secret",{"_index":984,"title":{},"content":{"225":{}}}],["ecdhcurrentkey(euphemeralkey",{"_index":1468,"title":{"306":{}},"content":{}}],["ecdhpastkey",{"_index":1471,"title":{"307":{}},"content":{}}],["ecdhpointx",{"_index":752,"title":{},"content":{"218":{},"219":{}}}],["ecdsa",{"_index":1321,"title":{},"content":{"269":{}}}],["eci",{"_index":971,"title":{},"content":{"225":{},"362":{}}}],["eciese(ellipt",{"_index":972,"title":{},"content":{"225":{}}}],["econom",{"_index":3505,"title":{"786":{}},"content":{}}],["economi",{"_index":3501,"title":{},"content":{"785":{},"786":{}}}],["ecosystem",{"_index":579,"title":{"684":{},"724":{},"927":{}},"content":{"205":{},"602":{},"619":{},"655":{},"679":{},"686":{},"688":{},"701":{},"702":{},"859":{},"924":{},"926":{},"927":{},"928":{},"930":{},"933":{},"941":{},"961":{}}}],["ecosystem'",{"_index":3763,"title":{},"content":{"873":{},"927":{},"930":{}}}],["ed25519",{"_index":995,"title":{},"content":{"228":{},"672":{},"674":{},"694":{}}}],["eddsa",{"_index":3099,"title":{},"content":{"675":{}}}],["edg",{"_index":2908,"title":{},"content":{"611":{},"830":{}}}],["edit",{"_index":3700,"title":{},"content":{"849":{},"850":{}}}],["editor",{"_index":2782,"title":{},"content":{"605":{}}}],["editori",{"_index":2776,"title":{},"content":{"604":{}}}],["educ",{"_index":3762,"title":{},"content":{"873":{}}}],["effect",{"_index":2667,"title":{},"content":{"540":{},"546":{},"678":{},"710":{},"830":{},"861":{},"877":{},"890":{},"894":{},"913":{},"922":{}}}],["effici",{"_index":1477,"title":{"792":{}},"content":{"281":{},"308":{},"309":{},"310":{},"311":{},"312":{},"313":{},"316":{},"317":{},"318":{},"332":{},"361":{},"661":{},"713":{},"755":{},"792":{},"861":{},"872":{},"905":{},"929":{},"1002":{}}}],["effort",{"_index":1537,"title":{},"content":{"312":{}}}],["effortlessli",{"_index":3309,"title":{},"content":{"724":{}}}],["elaps",{"_index":2843,"title":{},"content":{"629":{}}}],["elect",{"_index":1144,"title":{"278":{},"665":{},"738":{}},"content":{"253":{},"264":{},"278":{},"323":{},"346":{},"661":{},"662":{},"663":{},"664":{},"665":{},"666":{},"685":{},"696":{},"727":{},"738":{},"741":{},"747":{},"763":{},"782":{}}}],["electr",{"_index":3380,"title":{},"content":{"729":{}}}],["electron",{"_index":3327,"title":{},"content":{"727":{},"955":{}}}],["element",{"_index":2316,"title":{},"content":{"441":{},"453":{},"455":{},"457":{},"459":{},"481":{},"483":{},"486":{},"487":{},"488":{},"491":{},"493":{},"494":{},"510":{},"511":{},"512":{},"679":{},"688":{},"706":{},"710":{},"720":{},"727":{},"876":{},"956":{}}}],["elig",{"_index":3683,"title":{},"content":{"841":{}}}],["elimin",{"_index":3120,"title":{},"content":{"678":{},"727":{}}}],["elixir",{"_index":1019,"title":{"239":{}},"content":{"238":{},"239":{},"381":{},"563":{},"704":{}}}],["ellipt",{"_index":894,"title":{},"content":{"225":{},"234":{},"267":{},"277":{},"672":{},"674":{},"680":{},"692":{},"694":{},"844":{},"856":{}}}],["emb",{"_index":1741,"title":{},"content":{"343":{},"693":{},"753":{},"801":{}}}],["embed",{"_index":1039,"title":{},"content":{"239":{},"334":{},"683":{},"692":{},"701":{}}}],["emiss",{"_index":3360,"title":{},"content":{"728":{}}}],["emit",{"_index":1192,"title":{},"content":{"261":{},"346":{},"745":{},"956":{}}}],["emphas",{"_index":3884,"title":{},"content":{"933":{}}}],["emploi",{"_index":3965,"title":{},"content":{"953":{}}}],["employ",{"_index":3652,"title":{},"content":{"826":{},"873":{},"938":{}}}],["empti",{"_index":2060,"title":{},"content":{"389":{},"390":{},"406":{},"484":{},"496":{},"838":{},"988":{},"991":{}}}],["empty?/1",{"_index":2470,"title":{"484":{}},"content":{}}],["emul",{"_index":4021,"title":{},"content":{"960":{}}}],["en",{"_index":3968,"title":{},"content":{"953":{},"997":{},"1000":{}}}],["enabl",{"_index":568,"title":{},"content":{"205":{},"564":{},"619":{},"662":{},"677":{},"682":{},"729":{},"801":{},"811":{},"817":{},"823":{},"824":{},"830":{},"869":{},"877":{},"889":{},"890":{},"894":{},"898":{},"902":{},"907":{},"910":{},"914":{},"934":{},"950":{},"961":{},"963":{}}}],["enc($wk_{a",{"_index":771,"title":{},"content":{"218":{},"219":{}}}],["enc($wk{a",{"_index":787,"title":{},"content":{"218":{},"219":{}}}],["enc(w_{",{"_index":923,"title":{},"content":{"221":{},"225":{}}}],["enc(wk_{a",{"_index":926,"title":{},"content":{"221":{},"225":{}}}],["enclav",{"_index":3269,"title":{},"content":{"710":{}}}],["encod",{"_index":796,"title":{"226":{},"227":{},"228":{},"229":{}},"content":{"212":{},"213":{},"218":{},"219":{},"221":{},"225":{},"226":{},"228":{},"229":{},"232":{},"267":{},"314":{},"316":{},"336":{},"349":{},"445":{},"456":{},"674":{},"805":{},"823":{},"956":{}}}],["encode(o_{pub",{"_index":874,"title":{},"content":{"212":{},"221":{}}}],["encode(pub_key",{"_index":886,"title":{},"content":{"214":{},"221":{}}}],["encoded_data",{"_index":2410,"title":{},"content":{"446":{}}}],["encoded_secret1",{"_index":2367,"title":{},"content":{"456":{}}}],["encoded_secret_key",{"_index":2365,"title":{},"content":{"456":{}}}],["encoded_wallet",{"_index":806,"title":{},"content":{"218":{},"219":{}}}],["encodedwallet",{"_index":865,"title":{},"content":{"219":{}}}],["encoding/decod",{"_index":2401,"title":{},"content":{"444":{},"673":{}}}],["encount",{"_index":2702,"title":{},"content":{"551":{}}}],["encourag",{"_index":2719,"title":{},"content":{"562":{},"602":{},"604":{},"937":{}}}],["encrypt",{"_index":50,"title":{"225":{},"692":{}},"content":{"12":{},"61":{},"137":{},"218":{},"220":{},"221":{},"225":{},"226":{},"230":{},"234":{},"235":{},"236":{},"269":{},"362":{},"415":{},"473":{},"560":{},"573":{},"574":{},"575":{},"662":{},"680":{},"682":{},"683":{},"690":{},"692":{},"716":{},"782":{},"802":{},"803":{},"956":{},"976":{}}}],["encryptedsecretkey",{"_index":56,"title":{},"content":{"12":{}}}],["end",{"_index":666,"title":{"596":{},"692":{},"809":{}},"content":{"216":{},"234":{},"309":{},"310":{},"314":{},"316":{},"321":{},"361":{},"374":{},"375":{},"376":{},"377":{},"378":{},"384":{},"387":{},"388":{},"392":{},"393":{},"395":{},"396":{},"399":{},"400":{},"403":{},"407":{},"408":{},"409":{},"410":{},"411":{},"413":{},"418":{},"420":{},"421":{},"427":{},"428":{},"464":{},"465":{},"486":{},"501":{},"532":{},"533":{},"534":{},"535":{},"536":{},"537":{},"538":{},"547":{},"548":{},"549":{},"550":{},"595":{},"596":{},"641":{},"682":{},"683":{},"692":{},"722":{},"732":{},"733":{},"734":{},"749":{},"793":{},"802":{},"803":{},"815":{},"886":{},"887":{},"893":{},"894":{}}}],["end_dat",{"_index":1961,"title":{},"content":{"378":{}}}],["endianthen",{"_index":830,"title":{},"content":{"219":{}}}],["endord",{"_index":1252,"title":{},"content":{"269":{}}}],["endors",{"_index":1237,"title":{},"content":{"269":{}}}],["endpoint",{"_index":162,"title":{"34":{}},"content":{"34":{},"126":{},"127":{},"171":{},"187":{},"360":{},"601":{},"803":{},"808":{},"820":{},"845":{},"848":{},"852":{},"856":{},"956":{},"963":{},"964":{},"966":{},"968":{}}}],["endpoint.ip",{"_index":165,"title":{},"content":{"35":{}}}],["endpoint.port",{"_index":166,"title":{},"content":{"35":{}}}],["endpointurl",{"_index":4036,"title":{},"content":{"968":{}}}],["energi",{"_index":3008,"title":{},"content":{"659":{},"662":{},"685":{}}}],["enf",{"_index":1617,"title":{},"content":{"316":{}}}],["engag",{"_index":3718,"title":{},"content":{"861":{},"890":{},"894":{},"899":{},"902":{},"904":{},"928":{}}}],["engin",{"_index":1474,"title":{},"content":{"308":{},"309":{},"680":{},"953":{}}}],["english",{"_index":3950,"title":{},"content":{"951":{},"954":{},"956":{},"997":{},"1000":{}}}],["enhanc",{"_index":2750,"title":{"689":{}},"content":{"602":{},"619":{},"630":{},"689":{},"727":{},"824":{},"861":{},"873":{},"903":{},"905":{},"930":{},"933":{}}}],["enjoy",{"_index":2962,"title":{},"content":{"655":{},"953":{}}}],["enlist",{"_index":3413,"title":{},"content":{"748":{}}}],["enough",{"_index":1652,"title":{},"content":{"320":{},"705":{},"709":{}}}],["enrol",{"_index":897,"title":{"235":{}},"content":{"355":{},"747":{}}}],["enrollmentd",{"_index":197,"title":{},"content":{"43":{}}}],["ensur",{"_index":311,"title":{"936":{}},"content":{"76":{},"203":{},"239":{},"253":{},"322":{},"332":{},"333":{},"349":{},"359":{},"368":{},"385":{},"406":{},"421":{},"600":{},"612":{},"629":{},"633":{},"639":{},"645":{},"648":{},"660":{},"661":{},"662":{},"663":{},"664":{},"665":{},"678":{},"682":{},"695":{},"696":{},"705":{},"708":{},"719":{},"720":{},"730":{},"732":{},"735":{},"736":{},"738":{},"739":{},"749":{},"750":{},"786":{},"823":{},"825":{},"826":{},"830":{},"835":{},"868":{},"872":{},"873":{},"876":{},"877":{},"884":{},"897":{},"898":{},"906":{},"907":{},"909":{},"910":{},"913":{},"914":{},"928":{},"934":{},"936":{},"938":{},"940":{}}}],["enter",{"_index":2049,"title":{},"content":{"388":{},"564":{},"645":{},"658":{},"687":{},"817":{},"834":{},"835":{},"836":{},"845":{},"849":{},"850":{},"856":{},"906":{},"909":{},"912":{},"913":{},"947":{},"956":{}}}],["enthusiast",{"_index":3724,"title":{},"content":{"861":{}}}],["entir",{"_index":1071,"title":{},"content":{"239":{},"316":{},"329":{},"330":{},"342":{},"346":{},"358":{},"367":{},"438":{},"632":{},"661":{},"663":{},"695":{},"710":{},"716":{},"717":{},"722":{},"725":{},"740":{},"742":{},"745":{},"782":{},"806":{},"949":{}}}],["entiti",{"_index":3861,"title":{},"content":{"928":{}}}],["entitl",{"_index":3730,"title":{},"content":{"869":{},"894":{},"902":{},"906":{},"935":{}}}],["entri",{"_index":1107,"title":{},"content":{"244":{},"247":{},"310":{},"799":{},"800":{},"839":{},"893":{}}}],["entropi",{"_index":950,"title":{},"content":{"223":{},"954":{}}}],["entrust",{"_index":3144,"title":{},"content":{"682":{}}}],["enum",{"_index":21,"title":{"579":{}},"content":{"2":{},"7":{},"80":{},"145":{},"577":{},"578":{},"579":{},"580":{},"581":{},"582":{},"583":{},"1003":{}}}],["envelop",{"_index":1814,"title":{"362":{}},"content":{"362":{}}}],["environ",{"_index":1661,"title":{},"content":{"322":{},"346":{},"563":{},"724":{},"816":{},"872":{},"873":{},"927":{},"936":{}}}],["environmn",{"_index":3401,"title":{},"content":{"744":{}}}],["ephemer",{"_index":930,"title":{},"content":{"221":{},"225":{}}}],["ephpublickey",{"_index":750,"title":{},"content":{"218":{},"219":{}}}],["ephpublickeys",{"_index":751,"title":{},"content":{"218":{},"219":{}}}],["epoch",{"_index":1130,"title":{"745":{}},"content":{"251":{},"342":{},"527":{},"534":{},"547":{},"745":{}}}],["epoch/cycl",{"_index":1172,"title":{},"content":{"257":{}}}],["epoch/slot",{"_index":3293,"title":{},"content":{"717":{}}}],["equal",{"_index":792,"title":{},"content":{"218":{},"219":{},"295":{}}}],["equip",{"_index":3258,"title":{},"content":{"704":{}}}],["equit",{"_index":2922,"title":{},"content":{"612":{}}}],["equival",{"_index":2043,"title":{},"content":{"386":{},"453":{},"455":{},"457":{},"459":{},"467":{},"469":{},"470":{},"514":{},"619":{},"725":{},"869":{},"919":{},"921":{}}}],["era",{"_index":3210,"title":{},"content":{"687":{}}}],["erc",{"_index":2734,"title":{"587":{},"646":{}},"content":{"584":{},"585":{},"586":{},"587":{},"588":{},"648":{}}}],["erc20",{"_index":2802,"title":{"648":{}},"content":{"619":{},"639":{},"641":{},"821":{},"864":{},"866":{}}}],["erlang",{"_index":1030,"title":{},"content":{"239":{},"281":{},"354":{}}}],["error",{"_index":19,"title":{"395":{},"644":{}},"content":{"2":{},"31":{},"79":{},"162":{},"198":{},"200":{},"382":{},"395":{},"539":{},"642":{},"644":{},"782":{}}}],["error.messag",{"_index":327,"title":{},"content":{"80":{}}}],["errorcontext",{"_index":17,"title":{"2":{}},"content":{"2":{},"79":{},"80":{}}}],["errorcontext.invalid_transact",{"_index":25,"title":{},"content":{"3":{}}}],["errorcontext.network_issu",{"_index":27,"title":{},"content":{"3":{}}}],["errordata",{"_index":170,"title":{"162":{}},"content":{"31":{},"32":{},"162":{}}}],["errordetail",{"_index":168,"title":{"31":{}},"content":{"31":{},"79":{},"80":{},"163":{},"171":{},"187":{}}}],["errordetails.cod",{"_index":172,"title":{},"content":{"32":{}}}],["errordetails.data",{"_index":173,"title":{},"content":{"32":{}}}],["errordetails.messag",{"_index":174,"title":{},"content":{"32":{}}}],["errorn",{"_index":1726,"title":{},"content":{"335":{}}}],["esc",{"_index":3701,"title":{},"content":{"849":{},"850":{}}}],["especi",{"_index":2761,"title":{},"content":{"604":{},"1002":{}}}],["essenti",{"_index":2793,"title":{"897":{},"900":{},"906":{},"909":{},"913":{}},"content":{"600":{},"648":{},"688":{},"702":{},"706":{},"832":{},"879":{},"890":{},"901":{},"902":{},"929":{}}}],["establish",{"_index":1795,"title":{},"content":{"360":{},"630":{},"664":{},"824":{},"873":{},"897":{}}}],["estim",{"_index":2681,"title":{"610":{},"625":{}},"content":{"545":{},"613":{},"820":{},"893":{},"906":{}}}],["esys_createprimari",{"_index":1331,"title":{},"content":{"269":{}}}],["esys_ecdh_zgen",{"_index":1379,"title":{},"content":{"277":{}}}],["esys_initi",{"_index":1351,"title":{},"content":{"272":{}}}],["esys_sign",{"_index":1369,"title":{},"content":{"276":{}}}],["esys_tr_password",{"_index":1334,"title":{},"content":{"269":{}}}],["esys_tr_rh_endors",{"_index":1332,"title":{},"content":{"269":{}}}],["et",{"_index":1102,"title":{},"content":{"242":{},"279":{},"345":{},"354":{}}}],["etc",{"_index":1008,"title":{},"content":{"232":{},"253":{},"264":{},"309":{},"312":{},"361":{},"546":{},"602":{},"675":{},"680":{},"682":{},"692":{},"696":{},"698":{},"724":{},"754":{},"782":{},"791":{},"793":{},"798":{},"842":{},"858":{},"976":{},"997":{}}}],["etc/letsencrypt/live/example.com/cert.pem",{"_index":3576,"title":{},"content":{"802":{}}}],["etc/letsencrypt/live/example.com/privatekey.pem",{"_index":3577,"title":{},"content":{"802":{}}}],["eth",{"_index":2804,"title":{"639":{}},"content":{"619":{},"624":{},"638":{},"639":{},"864":{},"866":{}}}],["ether",{"_index":2830,"title":{},"content":{"624":{}}}],["ethereum",{"_index":490,"title":{"638":{}},"content":{"204":{},"444":{},"619":{},"621":{},"622":{},"624":{},"638":{},"648":{},"649":{},"651":{},"652":{},"821":{}}}],["euphemer",{"_index":1375,"title":{},"content":{"277":{}}}],["euphemeralkey",{"_index":1372,"title":{"277":{},"307":{}},"content":{}}],["euphermerakley",{"_index":1435,"title":{"293":{}},"content":{}}],["eur",{"_index":358,"title":{},"content":{"92":{},"345":{}}}],["evalu",{"_index":2152,"title":{},"content":{"403":{}}}],["even",{"_index":1063,"title":{},"content":{"239":{},"322":{},"360":{},"382":{},"602":{},"604":{},"612":{},"662":{},"663":{},"674":{},"678":{},"687":{},"691":{},"701":{},"789":{},"791":{},"876":{}}}],["evenif",{"_index":1542,"title":{},"content":{"312":{}}}],["event",{"_index":1762,"title":{},"content":{"346":{},"367":{},"379":{},"683":{}}}],["everyth",{"_index":1543,"title":{},"content":{"312":{},"551":{},"757":{}}}],["evid",{"_index":3467,"title":{},"content":{"780":{}}}],["evm",{"_index":2261,"title":{"444":{},"624":{},"632":{},"633":{},"638":{},"644":{},"645":{},"825":{},"826":{},"828":{}},"content":{"425":{},"444":{},"622":{},"624":{},"627":{},"630":{},"632":{},"633":{},"638":{},"645":{},"652":{},"824":{},"825":{},"826":{},"828":{},"833":{},"834":{},"835":{},"837":{}}}],["evm.abi_decode(signatur",{"_index":2409,"title":{},"content":{"446":{}}}],["evm.abi_encode(signatur",{"_index":2405,"title":{},"content":{"445":{}}}],["evolut",{"_index":1707,"title":{},"content":{"327":{}}}],["evolv",{"_index":1011,"title":{},"content":{"233":{},"315":{},"671":{},"806":{}}}],["ew_{a",{"_index":878,"title":{},"content":{"213":{},"214":{},"221":{}}}],["ewk_{a",{"_index":877,"title":{},"content":{"213":{},"214":{},"221":{}}}],["ewka",{"_index":740,"title":{},"content":{"218":{}}}],["ex",{"_index":2406,"title":{},"content":{"445":{},"446":{}}}],["exact",{"_index":3646,"title":{},"content":{"820":{},"890":{},"901":{},"909":{}}}],["exactli",{"_index":1282,"title":{},"content":{"269":{},"612":{},"909":{}}}],["examin",{"_index":3824,"title":{},"content":{"898":{},"907":{}}}],["exampl",{"_index":493,"title":{"349":{},"373":{},"407":{},"409":{},"411":{},"419":{},"547":{},"548":{},"939":{},"948":{}},"content":{"204":{},"281":{},"336":{},"345":{},"346":{},"361":{},"369":{},"371":{},"388":{},"401":{},"404":{},"405":{},"406":{},"413":{},"414":{},"423":{},"450":{},"451":{},"546":{},"548":{},"550":{},"599":{},"601":{},"603":{},"642":{},"648":{},"652":{},"674":{},"693":{},"694":{},"700":{},"705":{},"731":{},"750":{},"751":{},"758":{},"759":{},"760":{},"761":{},"762":{},"768":{},"792":{},"805":{},"819":{},"845":{},"886":{},"945":{},"949":{},"956":{},"962":{}}}],["example.com",{"_index":3562,"title":{},"content":{"799":{},"801":{},"802":{}}}],["exce",{"_index":1728,"title":{},"content":{"335":{},"913":{}}}],["excel",{"_index":3957,"title":{},"content":{"953":{}}}],["except",{"_index":1243,"title":{},"content":{"269":{},"535":{},"645":{},"675":{},"708":{}}}],["excess",{"_index":3015,"title":{},"content":{"660":{},"923":{}}}],["exchang",{"_index":500,"title":{"860":{}},"content":{"204":{},"239":{},"277":{},"619":{},"629":{},"639":{},"648":{},"714":{},"724":{},"727":{},"821":{},"823":{},"826":{},"859":{},"860":{},"864":{},"866":{},"868":{},"902":{},"916":{},"917":{},"928":{},"929":{},"933":{}}}],["exclud",{"_index":2791,"title":{},"content":{"600":{},"811":{},"873":{},"938":{}}}],["exclus",{"_index":2825,"title":{},"content":{"623":{},"830":{}}}],["execut",{"_index":1052,"title":{"837":{}},"content":{"239":{},"319":{},"321":{},"367":{},"369":{},"370":{},"379":{},"397":{},"400":{},"406":{},"407":{},"464":{},"527":{},"532":{},"533":{},"547":{},"549":{},"559":{},"560":{},"624":{},"651":{},"696":{},"739":{},"825":{},"834":{},"848":{},"868":{},"873":{},"906":{},"912":{},"913":{},"922":{},"923":{},"924":{},"936":{},"938":{}}}],["executor",{"_index":2,"title":{},"content":{"5":{},"10":{}}}],["exhaust",{"_index":1531,"title":{},"content":{"311":{},"312":{},"314":{}}}],["exist",{"_index":1185,"title":{"711":{}},"content":{"260":{},"315":{},"318":{},"338":{},"344":{},"361":{},"388":{},"436":{},"515":{},"722":{},"741":{},"789":{},"792":{},"796":{},"826":{},"897":{}}}],["exit",{"_index":2057,"title":{},"content":{"388":{},"742":{},"849":{},"850":{}}}],["exlud",{"_index":1581,"title":{},"content":{"315":{}}}],["expand",{"_index":2156,"title":{},"content":{"405":{},"619":{}}}],["expect",{"_index":2031,"title":{},"content":{"384":{},"414":{},"541":{},"545":{},"547":{},"548":{},"656":{},"890":{},"898":{},"907":{},"913":{}}}],["expens",{"_index":3530,"title":{},"content":{"792":{}}}],["experi",{"_index":572,"title":{},"content":{"205":{},"566":{},"611":{},"859":{},"861":{},"930":{},"941":{},"953":{}}}],["experienc",{"_index":3723,"title":{},"content":{"861":{}}}],["experiment",{"_index":3867,"title":{},"content":{"928":{}}}],["expir",{"_index":2193,"title":{},"content":{"409":{},"721":{},"781":{}}}],["explain",{"_index":509,"title":{"866":{}},"content":{"204":{},"265":{},"282":{},"602":{},"864":{},"997":{},"1000":{}}}],["explicit",{"_index":2250,"title":{},"content":{"422":{}}}],["explicitli",{"_index":3399,"title":{},"content":{"744":{}}}],["exploit",{"_index":3067,"title":{},"content":{"662":{},"682":{},"687":{}}}],["explor",{"_index":1132,"title":{"742":{},"901":{},"941":{}},"content":{"251":{},"353":{},"545":{},"611":{},"638":{},"742":{},"743":{},"747":{},"748":{},"820":{},"830":{},"890":{},"899":{},"901":{},"928":{}}}],["expon",{"_index":2544,"title":{},"content":{"505":{}}}],["export",{"_index":1951,"title":{"393":{}},"content":{"377":{},"391":{},"392":{},"393":{},"448":{},"549":{}}}],["expos",{"_index":3410,"title":{},"content":{"747":{},"806":{},"961":{}}}],["exposur",{"_index":3342,"title":{},"content":{"727":{},"962":{}}}],["expr",{"_index":2035,"title":{},"content":{"384":{},"403":{},"404":{}}}],["express",{"_index":2144,"title":{"404":{}},"content":{"403":{},"404":{},"405":{},"412":{},"417":{},"509":{},"892":{}}}],["extend",{"_index":1771,"title":{},"content":{"347":{},"348":{},"894":{}}}],["extendedprivatekey",{"_index":967,"title":{},"content":{"224":{}}}],["extendedse",{"_index":964,"title":{},"content":{"224":{}}}],["extendedseed.slice(0",{"_index":968,"title":{},"content":{"224":{}}}],["extens",{"_index":2015,"title":{},"content":{"382":{},"602":{},"603":{},"755":{},"798":{},"811":{},"830":{},"877":{},"953":{}}}],["extern",{"_index":1213,"title":{},"content":{"266":{},"334":{},"341":{},"346":{},"367":{},"393":{},"604":{},"707":{},"708":{},"724":{},"727":{},"793":{}}}],["extract",{"_index":347,"title":{},"content":{"89":{},"224":{},"287":{},"316":{},"329":{},"417":{},"509":{},"510":{},"512":{}}}],["extract/2",{"_index":2563,"title":{"510":{}},"content":{}}],["f",{"_index":1128,"title":{},"content":{"251":{}}}],["f28c3d5b3828ad3f8682f1b1d14a8507b829f65f7be6c50427a6019ccb6801c",{"_index":2239,"title":{},"content":{"418":{}}}],["f9",{"_index":1446,"title":{},"content":{"296":{}}}],["fabric",{"_index":3118,"title":{},"content":{"678":{}}}],["face",{"_index":2016,"title":{},"content":{"382":{},"659":{},"682":{},"731":{},"951":{},"955":{}}}],["facial",{"_index":3987,"title":{},"content":{"955":{}}}],["facilit",{"_index":2020,"title":{},"content":{"382":{},"619":{},"648":{},"821":{},"859":{},"860":{},"861":{},"909":{},"913":{},"919":{},"926":{},"928":{},"933":{},"934":{},"963":{},"1002":{}}}],["fact",{"_index":3122,"title":{},"content":{"678":{},"808":{}}}],["facto",{"_index":3133,"title":{},"content":{"680":{}}}],["factor",{"_index":3989,"title":{},"content":{"955":{}}}],["fail",{"_index":1717,"title":{},"content":{"332":{},"405":{},"559":{}}}],["failur",{"_index":1070,"title":{},"content":{"239":{},"322":{},"385":{}}}],["fair",{"_index":1720,"title":{"936":{}},"content":{"333":{},"695":{},"872":{},"884":{},"940":{}}}],["fallback",{"_index":1598,"title":{},"content":{"315":{}}}],["fals",{"_index":438,"title":{},"content":{"158":{},"381":{},"384":{},"405":{},"407":{},"408":{},"427":{},"428":{},"476":{},"479":{},"483":{},"484":{},"511":{},"520":{}}}],["famili",{"_index":1501,"title":{},"content":{"309":{},"329":{},"662":{},"670":{}}}],["familiar",{"_index":3666,"title":{},"content":{"830":{},"877":{}}}],["faq",{"_index":3659,"title":{"829":{},"863":{}},"content":{"829":{},"835":{},"863":{}}}],["far",{"_index":3539,"title":{},"content":{"793":{},"890":{}}}],["fare",{"_index":3238,"title":{},"content":{"696":{}}}],["farm",{"_index":3707,"title":{"867":{},"870":{},"881":{},"890":{},"892":{},"894":{},"926":{},"937":{},"942":{}},"content":{"859":{},"861":{},"870":{},"876":{},"877":{},"880":{},"881":{},"884":{},"888":{},"889":{},"890":{},"892":{},"894":{},"904":{},"916":{},"933":{},"937":{},"941":{},"948":{},"949":{},"951":{}}}],["farm'",{"_index":3806,"title":{},"content":{"890":{},"894":{},"949":{}}}],["fashion",{"_index":3416,"title":{},"content":{"748":{}}}],["fast",{"_index":1023,"title":{},"content":{"238":{},"239":{},"242":{},"280":{},"311":{},"315":{},"330":{},"354":{},"356":{},"357":{},"685":{},"755":{}}}],["faster",{"_index":1103,"title":{},"content":{"242":{},"253":{},"279":{},"332":{},"345":{},"371":{}}}],["faucet",{"_index":2680,"title":{},"content":{"545":{},"564":{},"566":{},"819":{}}}],["fault",{"_index":1036,"title":{},"content":{"239":{},"663":{},"712":{}}}],["favor",{"_index":3853,"title":{},"content":{"913":{}}}],["favorit",{"_index":3205,"title":{},"content":{"687":{}}}],["feasibl",{"_index":3822,"title":{},"content":{"897":{}}}],["featur",{"_index":1069,"title":{"833":{},"861":{},"880":{},"951":{}},"content":{"239":{},"315":{},"359":{},"367":{},"369":{},"412":{},"549":{},"616":{},"636":{},"688":{},"704":{},"706":{},"735":{},"754":{},"787":{},"826":{},"827":{},"838":{},"841":{},"861":{},"862":{},"877":{},"889":{},"893":{},"894":{},"904":{},"951":{},"953":{}}}],["featuresaccess",{"_index":3952,"title":{},"content":{"951":{}}}],["featuresdecentr",{"_index":3944,"title":{},"content":{"951":{}}}],["fee",{"_index":185,"title":{"372":{},"695":{},"874":{},"875":{},"903":{}},"content":{"40":{},"89":{},"345":{},"424":{},"545":{},"601":{},"613":{},"621":{},"651":{},"659":{},"685":{},"695":{},"696":{},"698":{},"699":{},"700":{},"709":{},"782":{},"792":{},"811":{},"812":{},"813":{},"814":{},"820":{},"835":{},"836":{},"841":{},"859":{},"861":{},"868":{},"869":{},"873":{},"875":{},"876":{},"897":{},"900":{},"901":{},"902":{},"903":{},"904":{},"906":{},"913":{},"914":{},"919":{},"924":{},"928":{},"935":{},"938":{}}}],["feed",{"_index":3263,"title":{},"content":{"709":{},"852":{}}}],["feedback",{"_index":2768,"title":{},"content":{"604":{}}}],["fetch",{"_index":1184,"title":{},"content":{"260":{},"287":{},"290":{},"294":{},"296":{},"297":{},"298":{},"299":{},"301":{},"302":{},"303":{},"331":{},"332":{},"334":{},"342":{},"346":{},"348":{},"349":{},"354":{},"357":{},"378":{},"429":{},"464":{},"563":{},"709":{},"715":{},"747":{},"768":{},"793":{},"806":{},"824":{}}}],["fetch_id_from_address/1",{"_index":2626,"title":{"529":{}},"content":{}}],["fetchkey",{"_index":1405,"title":{},"content":{"287":{}}}],["fetchkey(keyindex",{"_index":1397,"title":{"287":{}},"content":{}}],["few",{"_index":307,"title":{},"content":{"76":{},"203":{},"243":{},"246":{},"250":{},"259":{},"438":{},"546":{},"604":{},"655":{},"762":{},"790":{},"837":{},"856":{}}}],["ff",{"_index":3403,"title":{},"content":{"746":{}}}],["fiat",{"_index":3994,"title":{},"content":{"956":{}}}],["fibonacci",{"_index":3503,"title":{"786":{}},"content":{}}],["fido2",{"_index":3152,"title":{},"content":{"682":{}}}],["field",{"_index":3,"title":{"13":{},"16":{},"19":{},"22":{},"25":{},"29":{},"32":{},"35":{},"38":{},"41":{},"44":{},"47":{},"50":{},"53":{},"56":{},"59":{},"62":{},"65":{},"68":{},"71":{},"74":{},"77":{},"80":{},"83":{},"87":{},"90":{},"93":{},"96":{},"99":{},"103":{},"106":{},"109":{}},"content":{"5":{},"10":{},"80":{},"228":{},"229":{},"232":{},"318":{},"320":{},"400":{},"404":{},"406":{},"414":{},"415":{},"417":{},"490":{},"532":{},"553":{},"554":{},"557":{},"558":{},"560":{},"693":{},"705":{},"761":{},"779":{},"835":{},"855":{}}}],["figur",{"_index":525,"title":{},"content":{"204":{},"913":{}}}],["file",{"_index":626,"title":{"600":{},"601":{}},"content":{"216":{},"217":{},"218":{},"219":{},"239":{},"265":{},"282":{},"310":{},"312":{},"314":{},"315":{},"316":{},"317":{},"318":{},"320":{},"321":{},"600":{},"601":{},"658":{},"793":{},"797":{},"805":{},"806":{},"811":{},"815":{},"818":{},"820":{}}}],["filesystem",{"_index":1530,"title":{},"content":{"311":{},"321":{}}}],["fill",{"_index":1593,"title":{},"content":{"315":{},"316":{},"354":{},"399":{},"547":{},"800":{},"825":{},"835":{}}}],["filter",{"_index":1554,"title":{},"content":{"313":{},"316":{},"317":{},"318":{},"665":{},"839":{}}}],["final",{"_index":1226,"title":{"898":{},"907":{},"910":{},"914":{}},"content":{"267":{},"269":{},"271":{},"275":{},"276":{},"295":{},"296":{},"306":{},"321":{},"322":{},"660":{},"692":{},"705":{},"724":{},"741":{},"906":{},"909":{},"913":{},"954":{},"955":{},"956":{},"962":{},"1002":{}}}],["financ",{"_index":3226,"title":{},"content":{"688":{},"706":{},"859":{},"927":{},"933":{},"941":{}}}],["financi",{"_index":3475,"title":{"874":{}},"content":{"782":{},"956":{}}}],["find",{"_index":393,"title":{},"content":{"114":{},"117":{},"120":{},"138":{},"141":{},"144":{},"150":{},"218":{},"219":{},"315":{},"346":{},"599":{},"662":{},"682":{},"841":{},"901":{},"939":{},"953":{},"954":{},"956":{},"963":{},"1002":{},"1003":{}}}],["fine",{"_index":1629,"title":{},"content":{"278":{},"844":{}}}],["finger",{"_index":3350,"title":{},"content":{"728":{}}}],["fingerprint",{"_index":3358,"title":{},"content":{"728":{},"955":{}}}],["finish",{"_index":3394,"title":{},"content":{"734":{}}}],["finit",{"_index":1756,"title":{},"content":{"346":{}}}],["fire",{"_index":1704,"title":{},"content":{"324":{}}}],["firm",{"_index":3759,"title":{},"content":{"873":{}}}],["firmwar",{"_index":593,"title":{},"content":{"206":{}}}],["first",{"_index":684,"title":{"260":{},"612":{},"811":{}},"content":{"217":{},"218":{},"219":{},"224":{},"235":{},"258":{},"259":{},"260":{},"267":{},"268":{},"274":{},"286":{},"299":{},"305":{},"315":{},"322":{},"332":{},"353":{},"355":{},"356":{},"357":{},"358":{},"380":{},"417":{},"431":{},"644":{},"652":{},"655":{},"678":{},"691":{},"694":{},"700":{},"716":{},"720":{},"734":{},"743":{},"746":{},"747":{},"791":{},"807":{},"812":{},"813":{},"814":{},"881":{},"948":{},"956":{}}}],["first'",{"_index":1555,"title":{},"content":{"314":{}}}],["first_cod",{"_index":2335,"title":{},"content":{"427":{}}}],["firstli",{"_index":1239,"title":{},"content":{"269":{},"549":{},"655":{},"656":{},"835":{}}}],["firstnam",{"_index":2437,"title":{},"content":{"475":{}}}],["firstpublickey",{"_index":198,"title":{},"content":{"43":{}}}],["fit",{"_index":1486,"title":{},"content":{"309":{},"805":{}}}],["fix",{"_index":687,"title":{},"content":{"217":{},"369":{},"604":{}}}],["flag",{"_index":637,"title":{},"content":{"216":{},"269":{}}}],["flags)*flag",{"_index":674,"title":{},"content":{"217":{}}}],["flags)first",{"_index":742,"title":{},"content":{"218":{},"219":{}}}],["flaw",{"_index":3959,"title":{},"content":{"953":{}}}],["flexibl",{"_index":2819,"title":{"886":{}},"content":{"619":{},"890":{},"893":{},"894":{},"902":{},"904":{},"908":{}}}],["fli",{"_index":909,"title":{},"content":{"236":{},"691":{}}}],["float",{"_index":196,"title":{"168":{}},"content":{"43":{},"44":{},"92":{},"93":{},"168":{},"219":{},"281":{},"349":{},"378":{},"381":{},"385":{},"438":{},"442":{},"443":{},"450":{},"557":{},"558":{}}}],["flow",{"_index":1179,"title":{},"content":{"258":{},"267":{}}}],["fluctuat",{"_index":3842,"title":{},"content":{"906":{},"913":{}}}],["flush",{"_index":1343,"title":{},"content":{"271":{},"274":{},"275":{},"310":{}}}],["flutter",{"_index":552,"title":{},"content":{"204":{},"364":{},"809":{},"830":{},"877":{},"953":{},"954":{},"955":{},"956":{},"957":{},"959":{},"960":{},"963":{}}}],["flutter'",{"_index":3956,"title":{},"content":{"953":{}}}],["fluttersecurestorag",{"_index":4012,"title":{},"content":{"956":{}}}],["fn",{"_index":762,"title":{},"content":{"218":{},"219":{}}}],["focu",{"_index":1494,"title":{},"content":{"309":{},"941":{},"963":{},"1002":{}}}],["fold",{"_index":1827,"title":{},"content":{"357":{}}}],["folder",{"_index":603,"title":{},"content":{"207":{},"322":{},"797":{},"805":{},"812":{},"820":{},"960":{}}}],["folder/fil",{"_index":3636,"title":{},"content":{"820":{}}}],["follow",{"_index":976,"title":{"866":{}},"content":{"225":{},"228":{},"229":{},"232":{},"233":{},"267":{},"269":{},"315":{},"317":{},"320":{},"338":{},"339":{},"343":{},"344":{},"379":{},"395":{},"413":{},"415":{},"530":{},"545":{},"552":{},"613":{},"633":{},"639":{},"645":{},"655":{},"658":{},"661":{},"666":{},"700":{},"705":{},"734":{},"804":{},"808":{},"809":{},"815":{},"826":{},"835":{},"864":{},"875":{},"885":{},"889":{},"897":{},"951":{},"955":{},"956":{},"1002":{}}}],["foo",{"_index":2455,"title":{},"content":{"478":{}}}],["foo\\\":\\\"bar",{"_index":2449,"title":{},"content":{"477":{}}}],["forc",{"_index":2760,"title":{},"content":{"604":{},"688":{},"704":{},"963":{}}}],["foreach",{"_index":3557,"title":{},"content":{"787":{}}}],["forfeit",{"_index":3339,"title":{},"content":{"727":{}}}],["forgeri",{"_index":3121,"title":{},"content":{"678":{}}}],["forget",{"_index":910,"title":{},"content":{"236":{},"615":{},"635":{}}}],["fork",{"_index":2763,"title":{},"content":{"604":{},"725":{}}}],["form",{"_index":470,"title":{"546":{},"551":{}},"content":{"186":{},"220":{},"234":{},"268":{},"403":{},"540":{},"542":{},"546":{},"548":{},"551":{},"573":{},"574":{},"575":{},"619":{},"656":{},"663":{},"704":{},"705":{},"732":{},"733":{},"734":{},"735":{},"780":{},"800":{},"811":{},"825":{},"845":{},"858":{},"872":{},"898":{},"907":{},"909":{},"910":{},"914":{},"930":{}}}],["form.therefor",{"_index":3020,"title":{},"content":{"661":{}}}],["formal",{"_index":3043,"title":{},"content":{"664":{}}}],["format",{"_index":411,"title":{"231":{},"232":{},"233":{}},"content":{"119":{},"155":{},"164":{},"176":{},"194":{},"217":{},"219":{},"225":{},"226":{},"233":{},"267":{},"268":{},"269":{},"276":{},"277":{},"314":{},"321":{},"340":{},"343":{},"381":{},"535":{},"603":{},"1000":{}}}],["formula",{"_index":3242,"title":{"873":{},"938":{}},"content":{"696":{},"700":{},"873":{},"917":{},"934":{},"938":{},"939":{}}}],["fortuna",{"_index":4011,"title":{},"content":{"956":{}}}],["forward",{"_index":1601,"title":{},"content":{"315":{},"369":{},"406":{},"666":{},"898":{},"907":{},"910":{},"914":{}}}],["found",{"_index":536,"title":{},"content":{"204":{},"237":{},"330":{},"611":{},"782":{},"798":{},"802":{}}}],["foundat",{"_index":2745,"title":{},"content":{"602":{},"677":{},"688":{},"926":{}}}],["foundation/aeip/blob/main/aeip",{"_index":4063,"title":{},"content":{"1002":{}}}],["foundation/aeweb",{"_index":2741,"title":{},"content":{"595":{},"596":{},"809":{},"818":{}}}],["foundation/archeth",{"_index":2722,"title":{},"content":{"563":{},"603":{},"843":{},"1002":{}}}],["foundation/bridg",{"_index":3662,"title":{},"content":{"830":{}}}],["foundation/dex",{"_index":3765,"title":{},"content":{"877":{}}}],["foundation/libj",{"_index":4066,"title":{},"content":{"1002":{}}}],["four",{"_index":2361,"title":{},"content":{"454":{},"688":{}}}],["fr",{"_index":4055,"title":{},"content":{"997":{},"1000":{}}}],["fr3049085",{"_index":3379,"title":{},"content":{"729":{}}}],["fr3049086",{"_index":3351,"title":{},"content":{"728":{}}}],["fr3049087",{"_index":3345,"title":{},"content":{"727":{}}}],["fr3049088",{"_index":3337,"title":{},"content":{"727":{}}}],["fr3049089",{"_index":3322,"title":{},"content":{"727":{}}}],["fr3049090",{"_index":3366,"title":{},"content":{"728":{}}}],["fr3049091",{"_index":3374,"title":{},"content":{"728":{}}}],["fr3049092",{"_index":3376,"title":{},"content":{"728":{}}}],["fr3049093",{"_index":3371,"title":{},"content":{"728":{}}}],["fr3049101",{"_index":3332,"title":{},"content":{"727":{}}}],["fr3049121",{"_index":3383,"title":{},"content":{"729":{}}}],["fr3098972",{"_index":3333,"title":{},"content":{"727":{}}}],["fraction",{"_index":449,"title":{},"content":{"168":{},"170":{}}}],["fragment",{"_index":4,"title":{},"content":{"5":{},"10":{}}}],["fragment_spread",{"_index":9,"title":{},"content":{"5":{},"10":{}}}],["framework",{"_index":3544,"title":{"953":{}},"content":{"793":{},"873":{},"953":{}}}],["françai",{"_index":4057,"title":{},"content":{"997":{},"1000":{}}}],["fraud",{"_index":3192,"title":{},"content":{"685":{},"860":{}}}],["fred",{"_index":2467,"title":{},"content":{"483":{},"520":{}}}],["free",{"_index":146,"title":{},"content":{"28":{},"186":{},"566":{},"619":{},"955":{}}}],["freedom",{"_index":3141,"title":{},"content":{"680":{},"687":{}}}],["french",{"_index":3951,"title":{},"content":{"951":{},"954":{},"956":{}}}],["frequenc",{"_index":1168,"title":{},"content":{"257":{}}}],["frequent",{"_index":3552,"title":{},"content":{"787":{}}}],["fresh",{"_index":1769,"title":{},"content":{"346":{},"660":{}}}],["fresher",{"_index":3294,"title":{},"content":{"717":{}}}],["friendli",{"_index":3194,"title":{},"content":{"685":{},"909":{},"930":{}}}],["friendlier",{"_index":2002,"title":{},"content":{"381":{}}}],["from_number/1",{"_index":2603,"title":{"522":{}},"content":{}}],["front",{"_index":2742,"title":{"596":{},"809":{},"900":{}},"content":{"595":{},"596":{},"674":{},"793":{},"890":{},"900":{}}}],["frontend",{"_index":3535,"title":{},"content":{"793":{},"930":{}}}],["fsm",{"_index":1706,"title":{"327":{}},"content":{"327":{}}}],["fucntion",{"_index":1425,"title":{},"content":{"290":{},"306":{}}}],["fuell",{"_index":3499,"title":{},"content":{"785":{}}}],["full",{"_index":2838,"title":{},"content":{"627":{},"828":{},"890":{},"901":{}}}],["full_nam",{"_index":2116,"title":{},"content":{"399":{}}}],["fullfil",{"_index":1546,"title":{},"content":{"313":{}}}],["fulli",{"_index":2844,"title":{},"content":{"630":{},"789":{},"893":{},"950":{}}}],["fun",{"_index":1915,"title":{},"content":{"375":{},"377":{},"378":{},"391":{},"392":{},"393":{},"549":{}}}],["funcion",{"_index":818,"title":{},"content":{"219":{}}}],["function",{"_index":538,"title":{"391":{},"392":{},"393":{},"416":{},"424":{},"549":{}},"content":{"204":{},"216":{},"217":{},"218":{},"219":{},"239":{},"243":{},"246":{},"250":{},"267":{},"269":{},"272":{},"276":{},"277":{},"323":{},"348":{},"349":{},"377":{},"381":{},"390":{},"391":{},"392":{},"393":{},"394":{},"399":{},"405":{},"416":{},"422":{},"423":{},"424":{},"426":{},"427":{},"429":{},"444":{},"445":{},"446":{},"447":{},"448":{},"460":{},"464":{},"466":{},"474":{},"480":{},"495":{},"504":{},"509":{},"512":{},"513":{},"518":{},"526":{},"528":{},"540":{},"546":{},"548":{},"549":{},"550":{},"619":{},"648":{},"658":{},"660":{},"677":{},"684":{},"701":{},"705":{},"782":{},"811":{},"833":{},"880":{},"890":{},"926":{},"927":{},"929":{},"930":{},"935":{},"941":{},"947":{},"956":{},"963":{}}}],["function'",{"_index":2255,"title":{"423":{}},"content":{}}],["function_nam",{"_index":2346,"title":{},"content":{"448":{}}}],["fund",{"_index":1874,"title":{"564":{},"566":{},"601":{}},"content":{"369":{},"378":{},"532":{},"545":{},"564":{},"601":{},"629":{},"632":{},"633":{},"644":{},"655":{},"656":{},"811":{},"812":{},"813":{},"814":{},"820":{},"823":{},"825":{},"826":{},"837":{},"841":{},"860":{}}}],["fundament",{"_index":3257,"title":{},"content":{"701":{},"902":{}}}],["fungibl",{"_index":2317,"title":{"758":{},"759":{},"760":{}},"content":{"441":{},"700":{},"758":{},"759":{},"760":{},"761":{},"951":{}}}],["fungible_token_address",{"_index":2310,"title":{},"content":{"441":{}}}],["further",{"_index":1189,"title":{"753":{},"941":{}},"content":{"261":{},"678":{},"750":{},"829":{},"863":{},"873":{}}}],["futur",{"_index":2188,"title":{},"content":{"409":{},"545":{},"547":{},"554":{},"612":{},"655":{},"683":{}}}],["g_amount",{"_index":831,"title":{},"content":{"219":{}}}],["g_bip44_path",{"_index":800,"title":{},"content":{"218":{},"219":{}}}],["g_io_apdu_buff",{"_index":649,"title":{},"content":{"216":{},"219":{}}}],["g_state",{"_index":1384,"title":{},"content":{"283":{}}}],["g_tx.recieveraddr",{"_index":828,"title":{},"content":{"219":{}}}],["g_wallet.encodedwallet",{"_index":765,"title":{},"content":{"218":{},"219":{}}}],["g_wallet.walletlen",{"_index":766,"title":{},"content":{"218":{},"219":{}}}],["gain",{"_index":3819,"title":{},"content":{"894":{},"902":{}}}],["gandi",{"_index":2786,"title":{},"content":{"599":{},"800":{}}}],["gateway",{"_index":3561,"title":{},"content":{"799":{}}}],["gather",{"_index":1175,"title":{},"content":{"258":{},"322":{},"349":{},"666":{},"705":{},"707":{},"715":{},"733":{}}}],["gener",{"_index":332,"title":{"400":{},"598":{},"607":{},"618":{},"647":{},"654":{},"691":{},"819":{},"844":{}},"content":{"82":{},"149":{},"164":{},"194":{},"204":{},"205":{},"206":{},"216":{},"217":{},"218":{},"219":{},"223":{},"236":{},"252":{},"257":{},"267":{},"268":{},"269":{},"270":{},"271":{},"274":{},"275":{},"277":{},"288":{},"290":{},"291":{},"293":{},"295":{},"297":{},"364":{},"365":{},"366":{},"367":{},"368":{},"400":{},"406":{},"414":{},"416":{},"577":{},"578":{},"579":{},"580":{},"581":{},"582":{},"583":{},"584":{},"585":{},"586":{},"587":{},"588":{},"604":{},"613":{},"659":{},"661":{},"662":{},"670":{},"672":{},"674":{},"688":{},"691":{},"692":{},"694":{},"708":{},"720":{},"721":{},"732":{},"733":{},"747":{},"782":{},"793":{},"805":{},"819":{},"826":{},"843":{},"844":{},"894":{},"902":{},"913":{},"935":{},"937":{},"953":{},"954":{},"956":{},"998":{},"1003":{}}}],["generatearchethicaddress(uint8_t",{"_index":804,"title":{},"content":{"218":{},"219":{}}}],["generatecertificate(ykindex",{"_index":1417,"title":{"289":{}},"content":{}}],["generateencryptedseedsc",{"_index":4043,"title":{},"content":{"976":{}}}],["generatekey",{"_index":856,"title":{},"content":{"219":{}}}],["generatekey(ykindex",{"_index":1411,"title":{"288":{}},"content":{}}],["generatekeyfromwallet(address_index",{"_index":812,"title":{},"content":{"218":{}}}],["generatekeypair(extendedprivatekey",{"_index":970,"title":{},"content":{"224":{}}}],["generatepublickey(0",{"_index":1336,"title":{},"content":{"270":{}}}],["generatepublickey(int",{"_index":1235,"title":{"269":{}},"content":{}}],["generatese",{"_index":3969,"title":{},"content":{"954":{}}}],["generationtx_vers",{"_index":841,"title":{},"content":{"219":{}}}],["generos",{"_index":3807,"title":{},"content":{"890":{}}}],["genesi",{"_index":248,"title":{},"content":{"58":{},"117":{},"123":{},"143":{},"259":{},"314":{},"315":{},"317":{},"377":{},"401":{},"409":{},"430":{},"432":{},"545":{},"546":{},"974":{},"995":{}}}],["genesisaddress",{"_index":404,"title":{"117":{}},"content":{"117":{},"156":{},"157":{},"974":{},"995":{}}}],["genesisaddress.address",{"_index":405,"title":{},"content":{"118":{}}}],["genrat",{"_index":1266,"title":{},"content":{"269":{}}}],["genserv",{"_index":1799,"title":{},"content":{"360":{}}}],["geo",{"_index":1825,"title":{},"content":{"355":{},"727":{}}}],["geograph",{"_index":1632,"title":{},"content":{"279":{},"353":{},"665":{},"738":{},"791":{}}}],["geoip",{"_index":1820,"title":{},"content":{"353":{}}}],["geoloc",{"_index":3320,"title":{},"content":{"727":{}}}],["geopatch",{"_index":199,"title":{},"content":{"43":{},"353":{}}}],["get",{"_index":617,"title":{},"content":{"209":{},"216":{},"217":{},"218":{},"219":{},"283":{},"307":{},"966":{},"972":{},"984":{},"993":{}}}],["get/1",{"_index":2585,"title":{"514":{}},"content":{}}],["get/2",{"_index":2521,"title":{"498":{},"515":{}},"content":{"514":{}}}],["get/3",{"_index":2525,"title":{"499":{}},"content":{}}],["get_account",{"_index":4039,"title":{"972":{}},"content":{}}],["get_balance/1",{"_index":2293,"title":{"438":{}},"content":{}}],["get_burn_address/0",{"_index":2275,"title":{"433":{}},"content":{}}],["get_current_account",{"_index":4053,"title":{"993":{}},"content":{}}],["get_current_count",{"_index":2086,"title":{},"content":{"393":{}}}],["get_endpoint",{"_index":4035,"title":{"966":{}},"content":{}}],["get_first_transaction_address/1",{"_index":2268,"title":{"431":{}},"content":{}}],["get_genesis_address/1",{"_index":2264,"title":{"430":{}},"content":{}}],["get_genesis_public_key/1",{"_index":2271,"title":{"432":{}},"content":{}}],["get_hourly_temperatures(lat",{"_index":1959,"title":{},"content":{"378":{}}}],["get_last_address/1",{"_index":2282,"title":{"435":{}},"content":{}}],["get_last_transaction/1",{"_index":2285,"title":{"436":{}},"content":{}}],["get_previous_address/1",{"_index":2288,"title":{"437":{}},"content":{}}],["get_services_from_keychain",{"_index":4047,"title":{"984":{}},"content":{}}],["get_token_balance/2",{"_index":2304,"title":{"440":{}},"content":{"438":{},"442":{},"443":{}}}],["get_token_balance/3",{"_index":2308,"title":{"441":{}},"content":{"440":{}}}],["get_tokens_balance/1",{"_index":2318,"title":{"442":{}},"content":{}}],["get_tokens_balance/2",{"_index":2305,"title":{"443":{}},"content":{"438":{}}}],["get_transaction/1",{"_index":2279,"title":{"434":{}},"content":{}}],["get_transfered_amount",{"_index":1904,"title":{},"content":{"375":{}}}],["get_uco_balance/1",{"_index":2303,"title":{"439":{}},"content":{"438":{}}}],["get_vot",{"_index":1952,"title":{},"content":{"377":{}}}],["getaddress.c",{"_index":736,"title":{},"content":{"218":{}}}],["getappvers",{"_index":608,"title":{},"content":{"208":{}}}],["getarchaddress",{"_index":610,"title":{},"content":{"208":{}}}],["getarchethicindex",{"_index":1437,"title":{"294":{}},"content":{}}],["getbip44path(address_index",{"_index":799,"title":{},"content":{"218":{},"219":{}}}],["getcurrentcertificate(certificates",{"_index":1457,"title":{"301":{}},"content":{}}],["getcurrentkey(publickeys",{"_index":1448,"title":{"297":{}},"content":{}}],["getecdhpoint",{"_index":1470,"title":{},"content":{"306":{}}}],["getecdhpoint(int",{"_index":1371,"title":{"277":{}},"content":{}}],["getecdhpoint(ykindex",{"_index":1434,"title":{"293":{}},"content":{}}],["getkeyindex",{"_index":1352,"title":{"273":{}},"content":{}}],["getnextcertificate(certificates",{"_index":1459,"title":{"302":{}},"content":{}}],["getnextkey",{"_index":1450,"title":{"298":{}},"content":{}}],["getoriginpublickey(cx_ecfp_public_key_t",{"_index":678,"title":{},"content":{"217":{}}}],["getpastcertificate(archethicindex",{"_index":1460,"title":{"303":{}},"content":{}}],["getpastkey(archethicindex",{"_index":1451,"title":{"299":{}},"content":{}}],["getpublickey",{"_index":609,"title":{},"content":{"208":{}}}],["getpublickey(int",{"_index":1356,"title":{"275":{}},"content":{}}],["getpublickey.c",{"_index":669,"title":{},"content":{"217":{}}}],["getrootcertif",{"_index":1453,"title":{"300":{}},"content":{}}],["getrootkey",{"_index":1445,"title":{"296":{}},"content":{}}],["gettransactionhash(uint8_t",{"_index":834,"title":{},"content":{"219":{}}}],["getversion.c",{"_index":627,"title":{},"content":{"216":{}}}],["getykindex",{"_index":1421,"title":{"290":{}},"content":{}}],["git",{"_index":1743,"title":{},"content":{"343":{},"563":{},"600":{},"604":{},"688":{},"704":{},"843":{}}}],["github",{"_index":537,"title":{},"content":{"204":{},"207":{},"364":{},"365":{},"366":{},"611":{},"757":{},"760":{},"787":{},"857":{},"858":{},"957":{}}}],["github'",{"_index":3554,"title":{},"content":{"787":{}}}],["github.com/archeth",{"_index":3686,"title":{},"content":{"843":{}}}],["gitignor",{"_index":2789,"title":{"600":{}},"content":{"600":{},"811":{}}}],["give",{"_index":858,"title":{},"content":{"219":{},"224":{},"242":{},"315":{},"545":{},"550":{},"552":{},"560":{},"655":{},"744":{},"763":{},"802":{},"848":{},"854":{},"900":{},"913":{}}}],["giveaway",{"_index":3936,"title":{"949":{}},"content":{}}],["given",{"_index":52,"title":{},"content":{"12":{},"204":{},"224":{},"243":{},"245":{},"246":{},"248":{},"256":{},"275":{},"276":{},"277":{},"279":{},"281":{},"315":{},"316":{},"323":{},"329":{},"330":{},"333":{},"346":{},"355":{},"371":{},"377":{},"404":{},"417":{},"420":{},"445":{},"446":{},"448":{},"472":{},"503":{},"515":{},"548":{},"564":{},"660":{},"661":{},"666":{},"669":{},"680":{},"696":{},"700":{},"731":{},"732":{},"734":{},"747":{},"748":{},"749":{},"751":{},"782":{},"844":{},"852":{},"890":{},"964":{},"987":{},"989":{},"990":{},"998":{}}}],["global",{"_index":1123,"title":{"266":{},"398":{},"415":{}},"content":{"250":{},"266":{},"312":{},"353":{},"398":{},"406":{},"408":{},"410":{},"415":{},"684":{},"685":{},"688":{},"705":{},"730":{},"731":{},"956":{}}}],["globalproperti",{"_index":3452,"title":{},"content":{"759":{}}}],["globe",{"_index":3520,"title":{},"content":{"791":{}}}],["glossari",{"_index":918,"title":{"221":{},"915":{}},"content":{"926":{}}}],["gmp",{"_index":1639,"title":{},"content":{"281":{},"563":{}}}],["go",{"_index":1061,"title":{"365":{}},"content":{"239":{},"365":{},"540":{},"549":{},"564":{},"566":{},"638":{},"649":{},"696":{},"705":{},"812":{},"813":{},"814":{},"843":{},"851":{},"855":{},"878":{}}}],["goal",{"_index":1676,"title":{},"content":{"321":{},"382":{},"400":{},"551":{},"805":{},"933":{}}}],["goe",{"_index":1117,"title":{},"content":{"249":{},"318":{},"739":{}}}],["golden",{"_index":3504,"title":{"786":{}},"content":{}}],["good",{"_index":1866,"title":{},"content":{"368":{},"550":{},"757":{},"806":{}}}],["goods/suppli",{"_index":3329,"title":{},"content":{"727":{}}}],["googl",{"_index":3954,"title":{},"content":{"953":{}}}],["google'",{"_index":3960,"title":{},"content":{"953":{}}}],["gossip",{"_index":3272,"title":{"712":{}},"content":{"712":{},"716":{}}}],["gossip'",{"_index":3273,"title":{},"content":{"712":{}}}],["goto",{"_index":4019,"title":{},"content":{"960":{}}}],["govern",{"_index":1086,"title":{"688":{},"701":{}},"content":{"239":{},"320":{},"343":{},"344":{},"688":{},"701":{},"702":{},"704":{},"705":{},"724":{},"860":{}}}],["gradual",{"_index":3248,"title":{},"content":{"700":{},"886":{}}}],["grain",{"_index":1630,"title":{},"content":{"278":{}}}],["grammar",{"_index":2775,"title":{},"content":{"604":{}}}],["grant",{"_index":3669,"title":{},"content":{"833":{},"880":{}}}],["granular",{"_index":2633,"title":{},"content":{"535":{}}}],["graph",{"_index":4003,"title":{},"content":{"956":{}}}],["graphic",{"_index":3546,"title":{"795":{}},"content":{}}],["graphql",{"_index":469,"title":{"576":{}},"content":{"186":{},"464":{},"576":{},"577":{},"578":{},"579":{},"580":{},"581":{},"582":{},"583":{},"1003":{}}}],["grate",{"_index":2747,"title":{},"content":{"602":{}}}],["great",{"_index":2781,"title":{},"content":{"605":{},"787":{}}}],["greater",{"_index":2173,"title":{},"content":{"407":{},"619":{},"881":{},"913":{},"954":{}}}],["greatli",{"_index":4033,"title":{},"content":{"963":{}}}],["green",{"_index":3828,"title":{},"content":{"900":{}}}],["greet",{"_index":3668,"title":{},"content":{"831":{},"878":{}}}],["ground",{"_index":2759,"title":{},"content":{"604":{},"710":{}}}],["group",{"_index":1721,"title":{},"content":{"333":{},"401":{},"512":{},"662":{},"688":{},"702":{},"714":{},"805":{},"927":{},"946":{},"956":{}}}],["growth",{"_index":3507,"title":{},"content":{"786":{},"927":{},"930":{}}}],["guarante",{"_index":973,"title":{},"content":{"225":{},"239":{},"368":{},"660":{},"724":{},"872":{}}}],["guard",{"_index":1861,"title":{},"content":{"368":{}}}],["gui",{"_index":553,"title":{},"content":{"204":{},"205":{},"206":{},"219":{}}}],["guid",{"_index":508,"title":{"865":{}},"content":{"204":{},"205":{},"206":{},"827":{},"837":{},"862":{},"864":{}}}],["guidelin",{"_index":2758,"title":{"604":{}},"content":{}}],["guides](/participate/dex/guid",{"_index":3891,"title":{},"content":{"941":{}}}],["gzip",{"_index":3597,"title":{},"content":{"805":{}}}],["hack",{"_index":3714,"title":{},"content":{"860":{}}}],["hacken",{"_index":2835,"title":{},"content":{"627":{},"828":{}}}],["halt",{"_index":3675,"title":{},"content":{"837":{}}}],["hand",{"_index":2026,"title":{},"content":{"382":{},"540":{},"545":{},"832":{},"879":{},"956":{}}}],["handi",{"_index":3551,"title":{},"content":{"787":{}}}],["handl",{"_index":1344,"title":{},"content":{"271":{},"272":{},"274":{},"275":{},"276":{},"277":{},"360":{},"685":{},"791":{}}}],["handlegetaddress(uint8_t",{"_index":741,"title":{},"content":{"218":{}}}],["handlegetpublickey(uint8_t",{"_index":673,"title":{},"content":{"217":{}}}],["handlegetversion(uint8_t",{"_index":628,"title":{},"content":{"216":{}}}],["handlesignhash(uint8_t",{"_index":819,"title":{},"content":{"219":{}}}],["happen",{"_index":1666,"title":{"641":{}},"content":{"322":{},"332":{},"464":{}}}],["hard",{"_index":3089,"title":{},"content":{"671":{},"823":{}}}],["hardwar",{"_index":498,"title":{"676":{},"677":{},"678":{},"679":{},"729":{}},"content":{"204":{},"217":{},"232":{},"240":{},"263":{},"283":{},"338":{},"670":{},"672":{},"675":{},"677":{},"678":{},"679":{},"683":{},"710":{}}}],["hardware(devic",{"_index":670,"title":{},"content":{"217":{}}}],["harmon",{"_index":2939,"title":{},"content":{"648":{}}}],["hash",{"_index":379,"title":{"164":{},"229":{},"311":{},"629":{},"673":{},"823":{}},"content":{"108":{},"164":{},"194":{},"218":{},"219":{},"224":{},"227":{},"229":{},"233":{},"269":{},"270":{},"276":{},"311":{},"315":{},"382":{},"417":{},"468":{},"471":{},"472":{},"619":{},"629":{},"632":{},"665":{},"669":{},"673":{},"674":{},"680":{},"694":{},"781":{},"782":{},"805":{},"823":{},"825":{},"826":{},"844":{},"986":{},"998":{}}}],["hash(contract.cod",{"_index":2227,"title":{},"content":{"417":{}}}],["hash(data",{"_index":2226,"title":{},"content":{"417":{}}}],["hash(encode(pub_key",{"_index":1013,"title":{},"content":{"233":{}}}],["hash/1",{"_index":2375,"title":{"467":{}},"content":{}}],["hash/2",{"_index":2376,"title":{"468":{}},"content":{"467":{}}}],["hash_typ",{"_index":805,"title":{},"content":{"213":{},"214":{},"218":{},"219":{},"229":{}}}],["hashalg",{"_index":1322,"title":{},"content":{"269":{}}}],["hashalgo",{"_index":4049,"title":{},"content":{"986":{}}}],["hashedpath",{"_index":962,"title":{},"content":{"224":{}}}],["hashfunct",{"_index":3593,"title":{},"content":{"805":{}}}],["hashrat",{"_index":3068,"title":{},"content":{"662":{}}}],["hashtosign",{"_index":1364,"title":{"276":{},"305":{}},"content":{"292":{},"304":{}}}],["hasn't",{"_index":1747,"title":{},"content":{"344":{}}}],["have",{"_index":1219,"title":{},"content":{"267":{},"645":{},"691":{},"728":{},"1002":{}}}],["haystack",{"_index":2468,"title":{},"content":{"483":{},"520":{}}}],["he/sh",{"_index":1945,"title":{},"content":{"377":{}}}],["header",{"_index":346,"title":{},"content":{"89":{},"267":{},"462":{},"464":{},"465":{},"832":{},"879":{}}}],["health",{"_index":3330,"title":{},"content":{"727":{},"894":{},"925":{}}}],["heart",{"_index":3361,"title":{},"content":{"728":{}}}],["heartbeat",{"_index":1154,"title":{"256":{}},"content":{}}],["heavi",{"_index":1538,"title":{},"content":{"312":{}}}],["held",{"_index":2111,"title":{},"content":{"399":{},"825":{},"890":{}}}],["hellmen",{"_index":1374,"title":{},"content":{"277":{}}}],["hello",{"_index":1891,"title":{"374":{}},"content":{"374":{},"381":{},"383":{},"392":{},"414":{},"418":{},"538":{},"541":{},"605":{}}}],["help",{"_index":562,"title":{"643":{}},"content":{"205":{},"233":{},"239":{},"250":{},"315":{},"317":{},"359":{},"360":{},"361":{},"364":{},"365":{},"366":{},"395":{},"605":{},"643":{},"644":{},"648":{},"662":{},"673":{},"687":{},"693":{},"756":{},"796":{},"805":{},"842":{},"857":{},"900":{},"940":{},"955":{}}}],["helper",{"_index":1140,"title":{},"content":{"252":{},"956":{}}}],["henc",{"_index":743,"title":{},"content":{"218":{},"219":{},"234":{},"269":{},"371":{},"399":{},"682":{},"700":{},"791":{},"805":{}}}],["here",{"_index":1015,"title":{},"content":{"237":{},"263":{},"264":{},"315":{},"316":{},"370":{},"388":{},"401":{},"402":{},"404":{},"450":{},"530":{},"541":{},"551":{},"627":{},"658":{},"687":{},"808":{},"828":{},"830":{},"848":{},"877":{},"881":{},"953":{},"955":{},"956":{}}}],["here'",{"_index":2059,"title":{},"content":{"388":{},"401":{},"550":{},"601":{},"639":{},"760":{},"761":{},"905":{}}}],["here’",{"_index":3816,"title":{},"content":{"894":{},"902":{}}}],["heritag",{"_index":3315,"title":{},"content":{"725":{}}}],["heurist",{"_index":1627,"title":{"279":{},"750":{}},"content":{"278":{},"659":{},"661":{},"663":{},"685":{},"695":{},"727":{},"739":{},"782":{}}}],["hex",{"_index":57,"title":{"166":{}},"content":{"12":{},"13":{},"21":{},"22":{},"52":{},"53":{},"55":{},"56":{},"73":{},"74":{},"108":{},"109":{},"166":{},"228":{},"229":{},"232":{},"251":{},"286":{},"415":{},"438":{},"442":{},"443":{},"523":{}}}],["hexadecim",{"_index":144,"title":{"382":{}},"content":{"28":{},"160":{},"166":{},"251":{},"382":{},"383":{},"471":{},"523":{},"556":{},"557":{},"558":{},"1000":{}}}],["hid",{"_index":676,"title":{},"content":{"217":{}}}],["hidden",{"_index":2708,"title":{},"content":{"553":{}}}],["hide",{"_index":3998,"title":{},"content":{"956":{}}}],["hierarch",{"_index":934,"title":{},"content":{"223":{}}}],["hierarchi",{"_index":1238,"title":{},"content":{"269":{}}}],["hierarchy6",{"_index":1333,"title":{},"content":{"269":{}}}],["hierarchy:tpma_object_restrict",{"_index":1275,"title":{},"content":{"269":{}}}],["high",{"_index":1055,"title":{},"content":{"239":{},"242":{},"323":{},"661":{},"663":{},"712":{},"716":{},"736":{},"788":{},"791":{},"792":{},"824":{},"859":{}}}],["higher",{"_index":3175,"title":{},"content":{"694":{},"710":{},"860":{},"881":{},"884":{},"894":{},"904":{},"913":{},"940":{},"954":{}}}],["highest",{"_index":3024,"title":{},"content":{"661":{},"701":{},"791":{},"872":{}}}],["highli",{"_index":3719,"title":{},"content":{"861":{}}}],["highlight",{"_index":3694,"title":{},"content":{"846":{},"848":{},"855":{},"856":{},"890":{},"900":{}}}],["hint",{"_index":2705,"title":{},"content":{"552":{},"763":{}}}],["his/her",{"_index":3147,"title":{},"content":{"682":{}}}],["histori",{"_index":1438,"title":{"838":{}},"content":{"294":{},"355":{},"604":{},"643":{},"644":{},"674":{},"833":{},"838":{},"839":{},"840":{}}}],["hive",{"_index":4007,"title":{},"content":{"956":{}}}],["hmac",{"_index":788,"title":{},"content":{"218":{},"219":{},"224":{},"471":{}}}],["hmac(authkey",{"_index":786,"title":{},"content":{"218":{},"219":{}}}],["hmac/1",{"_index":2382,"title":{"469":{}},"content":{}}],["hmac/2",{"_index":2383,"title":{"470":{}},"content":{"469":{}}}],["hmac/3",{"_index":2384,"title":{"471":{}},"content":{"470":{}}}],["hmac256(key",{"_index":991,"title":{},"content":{"225":{}}}],["hold",{"_index":1527,"title":{},"content":{"281":{},"311":{},"345":{},"371":{},"378":{},"648":{},"823":{},"825":{},"860":{},"876":{},"886":{},"897":{},"901":{},"921":{},"939":{}}}],["holder",{"_index":3786,"title":{},"content":{"886":{},"890":{},"904":{}}}],["holm",{"_index":2620,"title":{},"content":{"525":{}}}],["home",{"_index":3632,"title":{},"content":{"816":{}}}],["home/{user}/.local/share/{yourappnam",{"_index":3001,"title":{},"content":{"658":{}}}],["hood",{"_index":3555,"title":{},"content":{"787":{}}}],["hopefulli",{"_index":2682,"title":{},"content":{"545":{}}}],["host",{"_index":148,"title":{"601":{},"777":{},"800":{}},"content":{"28":{},"366":{},"449":{},"545":{},"601":{},"688":{},"704":{},"729":{},"782":{},"787":{},"788":{},"789":{},"791":{},"792":{},"793":{},"799":{},"800":{},"801":{},"804":{},"805":{},"806":{},"812":{}}}],["hot",{"_index":1082,"title":{},"content":{"239":{},"704":{},"950":{}}}],["hour",{"_index":1921,"title":{"945":{}},"content":{"376":{},"535":{},"613":{},"626":{},"841":{},"900":{},"945":{},"947":{},"948":{},"949":{}}}],["hourli",{"_index":3811,"title":{},"content":{"893":{}}}],["hourly_temperatur",{"_index":1987,"title":{},"content":{"378":{}}}],["hrt",{"_index":1203,"title":{"679":{},"680":{}},"content":{"265":{},"282":{},"680":{}}}],["hsm",{"_index":3098,"title":{},"content":{"675":{}}}],["htlc",{"_index":2813,"title":{"629":{},"823":{}},"content":{"619":{},"629":{},"632":{},"633":{},"823":{},"824":{},"825":{},"826":{},"837":{}}}],["html",{"_index":3473,"title":{},"content":{"782":{},"793":{},"805":{}}}],["http",{"_index":1819,"title":{"460":{}},"content":{"353":{},"355":{},"425":{},"460":{},"464":{},"465":{},"797":{},"806":{},"808":{},"963":{}}}],["http.fetch/1",{"_index":2695,"title":{},"content":{"546":{}}}],["http.fetch_many/1",{"_index":2696,"title":{},"content":{"546":{}}}],["http.request(\"https://arch",{"_index":1963,"title":{},"content":{"378":{}}}],["http.request(\"https://fakerapi.it/api/v1/addresses?_quantity=1&_seed=watermelon",{"_index":2416,"title":{},"content":{"464":{}}}],["http.request_mani",{"_index":2429,"title":{},"content":{"465":{}}}],["http://127.0.0.1:4000",{"_index":3635,"title":{},"content":{"820":{}}}],["http://localhost:4000/explorer/transaction/{type_your_address_in_hexadecim",{"_index":2730,"title":{},"content":{"564":{}}}],["http://localhost:4000/faucet",{"_index":2729,"title":{},"content":{"564":{}}}],["https://aeweb.archethic.net",{"_index":3618,"title":{},"content":{"809":{}}}],["https://app.uniswap.org",{"_index":2879,"title":{},"content":{"639":{}}}],["https://bridge.archethic.net",{"_index":2821,"title":{},"content":{"620":{},"827":{},"830":{}}}],["https://bridge.testnet.archethic.net",{"_index":3657,"title":{},"content":{"827":{}}}],["https://chainlist.org/chain/11155111",{"_index":2864,"title":{},"content":{"638":{}}}],["https://chainlist.org/chain/97",{"_index":2867,"title":{},"content":{"638":{}}}],["https://dex.archethic.net",{"_index":2903,"title":{},"content":{"608":{},"862":{},"877":{}}}],["https://dex.testnet.archethic.net",{"_index":3728,"title":{},"content":{"862":{},"877":{}}}],["https://fakerapi.it/api/v1/users?_quantity=1&_gender=female&_seed=tomato",{"_index":2431,"title":{},"content":{"465":{}}}],["https://fakerapi.it/api/v1/users?_quantity=1&_gender=male&_seed=cucumb",{"_index":2430,"title":{},"content":{"465":{}}}],["https://github.com/archeth",{"_index":2721,"title":{},"content":{"563":{},"809":{},"818":{},"830":{},"843":{},"877":{},"1002":{}}}],["https://mainnet.archethic.net",{"_index":3587,"title":{},"content":{"803":{},"820":{}}}],["https://mainnet.archethic.net/aeweb/0c19fd13......../image.jpg",{"_index":3613,"title":{},"content":{"806":{}}}],["https://migrat",{"_index":2946,"title":{},"content":{"649":{}}}],["https://mobiskill.fr/blog/conseil",{"_index":3964,"title":{},"content":{"953":{}}}],["https://pancakeswap.finance/liquidity?chain=bsctestnet",{"_index":2882,"title":{},"content":{"639":{}}}],["https://playground.archethic.net",{"_index":2648,"title":{},"content":{"530":{}}}],["https://sepolia.etherscan.io",{"_index":2866,"title":{},"content":{"638":{}}}],["https://testnet.archethic.net",{"_index":2679,"title":{},"content":{"545":{},"565":{},"601":{},"820":{}}}],["https://testnet.archethic.net/api/web_hosting/00007d9167",{"_index":3645,"title":{},"content":{"820":{}}}],["https://testnet.archethic.net/explorer/transaction/000013c531",{"_index":3642,"title":{},"content":{"820":{}}}],["https://testnet.archethic.net/explorer/transaction/0000a78a35",{"_index":3643,"title":{},"content":{"820":{}}}],["https://testnet.archethic.net/explorer/transaction/0000f1126",{"_index":3644,"title":{},"content":{"820":{}}}],["https://testnet.bscscan.com",{"_index":2870,"title":{},"content":{"638":{}}}],["https://www.archethic.net/wallet.html",{"_index":2906,"title":{},"content":{"609":{},"658":{}}}],["https://www.educative.io/answers/paramet",{"_index":2112,"title":{},"content":{"399":{}}}],["huge",{"_index":3255,"title":{},"content":{"701":{},"953":{}}}],["human",{"_index":471,"title":{},"content":{"186":{},"370":{},"688":{},"702":{}}}],["humanitarian",{"_index":3314,"title":{"725":{}},"content":{}}],["hundr",{"_index":3419,"title":{},"content":{"749":{}}}],["hybrid",{"_index":3136,"title":{},"content":{"680":{},"714":{},"799":{}}}],["hypergeometr",{"_index":1637,"title":{},"content":{"281":{},"664":{}}}],["hypergeomtr",{"_index":1636,"title":{"281":{}},"content":{}}],["i.",{"_index":873,"title":{},"content":{"212":{},"213":{},"214":{},"353":{},"662":{},"672":{},"673":{},"782":{}}}],["i/o",{"_index":1480,"title":{"430":{},"431":{},"432":{},"434":{},"435":{},"436":{},"438":{},"439":{},"440":{},"441":{},"442":{},"443":{},"448":{},"461":{},"462":{},"463":{},"464":{},"465":{},"529":{}},"content":{"308":{},"310":{},"312":{},"314":{},"392":{},"393":{},"424":{},"737":{}}}],["ico",{"_index":1895,"title":{"375":{},"376":{},"421":{}},"content":{"375":{},"376":{}}}],["ico_contract",{"_index":1922,"title":{},"content":{"376":{}}}],["icon",{"_index":2973,"title":{},"content":{"656":{},"811":{},"815":{},"890":{},"899":{},"900":{},"901":{},"906":{},"913":{}}}],["id",{"_index":105,"title":{},"content":{"18":{},"58":{},"64":{},"82":{},"86":{},"98":{},"125":{},"143":{},"149":{},"232":{},"287":{},"360":{},"362":{},"529":{},"638":{},"762":{},"847":{},"951":{},"955":{},"956":{}}}],["idea",{"_index":2716,"title":{},"content":{"550":{},"613":{},"683":{},"705":{},"858":{},"913":{}}}],["ideal",{"_index":3500,"title":{},"content":{"785":{}}}],["idempot",{"_index":2422,"title":{},"content":{"464":{}}}],["ident",{"_index":1867,"title":{"681":{},"682":{},"687":{},"702":{}},"content":{"368":{},"464":{},"662":{},"678":{},"682":{},"683":{},"687":{},"688":{},"691":{},"693":{},"694":{},"724":{},"727":{},"976":{},"997":{}}}],["identi",{"_index":3154,"title":{},"content":{"683":{}}}],["identif",{"_index":257,"title":{"740":{}},"content":{"58":{},"143":{},"164":{},"194":{},"220":{},"232":{},"315":{},"724":{},"727":{},"890":{},"900":{}}}],["identifi",{"_index":913,"title":{},"content":{"220":{},"244":{},"247":{},"251":{},"287":{},"314":{},"315":{},"316":{},"318":{},"346":{},"395":{},"409":{},"438":{},"442":{},"443":{},"673":{},"678":{},"682":{},"683":{},"688":{},"700":{},"702":{},"727":{},"897":{},"955":{},"988":{},"991":{}}}],["identitifi",{"_index":3166,"title":{},"content":{"693":{}}}],["idl",{"_index":1758,"title":{},"content":{"346":{}}}],["ie",{"_index":1487,"title":{},"content":{"309":{},"848":{}}}],["ieee",{"_index":451,"title":{},"content":{"168":{}}}],["iex",{"_index":2727,"title":{},"content":{"563":{}}}],["ignor",{"_index":3254,"title":{},"content":{"701":{}}}],["ii",{"_index":2658,"title":{"540":{}},"content":{}}],["imag",{"_index":1659,"title":{"601":{}},"content":{"321":{},"322":{},"601":{},"603":{},"759":{},"761":{},"782":{},"793":{},"805":{}}}],["image.jpg",{"_index":3608,"title":{},"content":{"805":{}}}],["imagin",{"_index":3094,"title":{},"content":{"674":{},"948":{}}}],["immedi",{"_index":3223,"title":{},"content":{"688":{},"704":{},"887":{},"894":{}}}],["immediately(sync",{"_index":645,"title":{},"content":{"216":{}}}],["immun",{"_index":3103,"title":{},"content":{"677":{}}}],["immut",{"_index":1508,"title":{},"content":{"310":{},"311":{},"312":{},"701":{}}}],["impact",{"_index":2260,"title":{"652":{},"922":{},"940":{}},"content":{"424":{},"639":{},"680":{},"685":{},"688":{},"704":{},"868":{},"876":{},"898":{},"906":{},"907":{},"910":{},"913":{},"914":{},"922":{},"936":{},"940":{}}}],["impact.info",{"_index":3851,"title":{},"content":{"913":{}}}],["imper",{"_index":2000,"title":{},"content":{"381":{}}}],["imperman",{"_index":3734,"title":{},"content":{"872":{},"875":{},"876":{}}}],["implement",{"_index":952,"title":{"265":{},"282":{},"679":{}},"content":{"224":{},"263":{},"264":{},"265":{},"282":{},"309":{},"315":{},"323":{},"335":{},"349":{},"360":{},"369":{},"677":{},"678":{},"679":{},"685":{},"724":{},"748":{},"756":{},"929":{},"951":{},"953":{},"963":{}}}],["implementationtpm",{"_index":1200,"title":{},"content":{"263":{}}}],["impli",{"_index":3038,"title":{},"content":{"663":{}}}],["import",{"_index":527,"title":{},"content":{"204":{},"270":{},"315":{},"319":{},"361":{},"655":{},"678":{},"696":{},"754":{},"789":{},"876":{}}}],["impos",{"_index":2707,"title":{},"content":{"552":{},"686":{}}}],["imposs",{"_index":2069,"title":{},"content":{"390":{},"451":{}}}],["improv",{"_index":1862,"title":{"753":{}},"content":{"368":{},"602":{},"643":{},"686":{},"689":{}}}],["in",{"_index":737,"title":{},"content":{"212":{},"213":{},"214":{},"218":{},"219":{}}}],["in?/2",{"_index":2464,"title":{"483":{},"520":{}},"content":{}}],["inact",{"_index":4002,"title":{},"content":{"956":{}}}],["inadvertedli",{"_index":2106,"title":{},"content":{"399":{}}}],["incent",{"_index":3225,"title":{"706":{}},"content":{"688":{}}}],["incentiv",{"_index":3219,"title":{},"content":{"688":{},"786":{},"870":{},"894":{},"926":{},"928":{},"944":{}}}],["includ",{"_index":0,"title":{"10":{},"839":{}},"content":{"10":{},"11":{},"18":{},"21":{},"24":{},"28":{},"40":{},"58":{},"61":{},"64":{},"82":{},"86":{},"98":{},"108":{},"116":{},"125":{},"137":{},"143":{},"149":{},"159":{},"204":{},"218":{},"267":{},"332":{},"353":{},"411":{},"610":{},"616":{},"619":{},"625":{},"636":{},"648":{},"672":{},"680":{},"720":{},"750":{},"811":{},"813":{},"827":{},"830":{},"832":{},"862":{},"873":{},"877":{},"879":{},"892":{},"893":{},"913":{},"930":{},"963":{}}}],["include.if",{"_index":11,"title":{},"content":{"11":{}}}],["inclus",{"_index":3218,"title":{},"content":{"688":{},"702":{}}}],["incom",{"_index":1772,"title":{},"content":{"348":{},"379":{},"413":{},"414":{},"415":{},"421":{},"532":{},"533":{},"661":{},"713":{},"715":{}}}],["inconsist",{"_index":3065,"title":{},"content":{"666":{},"782":{}}}],["incorpor",{"_index":2816,"title":{},"content":{"619":{},"930":{}}}],["increas",{"_index":864,"title":{},"content":{"219":{},"225":{},"268":{},"612":{},"678":{},"685":{},"695":{},"696":{},"700":{},"788":{},"893":{},"894":{},"902":{},"918":{}}}],["increasingli",{"_index":4023,"title":{},"content":{"961":{}}}],["increment",{"_index":1342,"title":{"276":{}},"content":{"271":{},"295":{},"317":{},"377":{},"549":{},"550":{}}}],["incrementindex",{"_index":1439,"title":{"295":{}},"content":{}}],["incur",{"_index":3885,"title":{},"content":{"935":{}}}],["inde",{"_index":3237,"title":{},"content":{"696":{},"801":{},"956":{}}}],["indeped",{"_index":3259,"title":{},"content":{"705":{}}}],["independ",{"_index":1792,"title":{},"content":{"360":{},"663":{}}}],["index",{"_index":698,"title":{"245":{},"248":{},"315":{}},"content":{"217":{},"218":{},"219":{},"223":{},"224":{},"244":{},"245":{},"247":{},"248":{},"249":{},"263":{},"268":{},"269":{},"270":{},"271":{},"272":{},"273":{},"274":{},"275":{},"276":{},"277":{},"283":{},"287":{},"289":{},"291":{},"295":{},"297":{},"298":{},"301":{},"304":{},"306":{},"311":{},"312":{},"315":{},"316":{},"317":{},"318":{},"319":{},"355":{},"407":{},"441":{},"454":{},"481":{},"493":{},"494":{},"558":{},"695":{},"819":{},"844":{},"845":{},"856":{},"964":{},"987":{},"988":{},"989":{},"990":{},"991":{}}}],["index.html",{"_index":3594,"title":{},"content":{"805":{}}}],["index/summari",{"_index":1600,"title":{},"content":{"315":{}}}],["index0",{"_index":2512,"title":{},"content":{"493":{},"494":{}}}],["index1",{"_index":2511,"title":{},"content":{"493":{},"494":{}}}],["index_yk",{"_index":1427,"title":{},"content":{"290":{},"294":{}}}],["indic",{"_index":1265,"title":{},"content":{"269":{},"330":{},"356":{},"423":{},"644":{},"672":{},"685":{},"694":{},"753":{},"799":{},"890":{},"900":{},"913":{},"925":{},"956":{}}}],["individu",{"_index":3334,"title":{},"content":{"727":{},"728":{},"785":{},"913":{},"928":{},"929":{}}}],["industri",{"_index":1044,"title":{},"content":{"239":{},"682":{},"693":{},"701":{}}}],["infinit",{"_index":3160,"title":{},"content":{"691":{}}}],["info",{"_index":581,"title":{},"content":{"206":{},"216":{},"217":{},"218":{},"219":{},"225":{},"256":{},"267":{},"269":{},"273":{},"277":{},"314":{},"330":{},"345":{},"346":{},"364":{},"366":{},"368":{},"369":{},"377":{},"385":{},"389":{},"392":{},"393":{},"400":{},"405":{},"417":{},"456":{},"458":{},"514":{},"517":{},"557":{},"662":{},"674":{},"696":{},"700":{},"759":{},"792":{},"802":{},"803":{},"811":{},"830":{},"835":{},"845":{},"848":{},"875":{},"877":{},"886":{},"889":{},"890":{},"897":{},"906":{},"913":{},"956":{},"969":{}}}],["inform",{"_index":241,"title":{"613":{},"815":{},"897":{},"899":{},"906":{},"909":{},"913":{}},"content":{"61":{},"137":{},"234":{},"239":{},"258":{},"260":{},"261":{},"267":{},"310":{},"315":{},"316":{},"318":{},"319":{},"345":{},"346":{},"348":{},"350":{},"353":{},"354":{},"355":{},"357":{},"475":{},"476":{},"599":{},"604":{},"610":{},"611":{},"625":{},"633":{},"643":{},"648":{},"655":{},"659":{},"666":{},"672":{},"673":{},"674":{},"689":{},"692":{},"694":{},"696":{},"704":{},"708":{},"715":{},"716":{},"718":{},"721":{},"733":{},"734":{},"764":{},"768":{},"811":{},"812":{},"815":{},"826":{},"829":{},"832":{},"834":{},"835":{},"836":{},"837":{},"845":{},"848":{},"860":{},"863":{},"875":{},"879":{},"889":{},"890":{},"893":{},"894":{},"897":{},"899":{},"900":{},"904":{},"906":{},"909":{},"912":{},"913":{},"955":{},"956":{},"961":{},"962":{},"964":{},"988":{},"991":{},"997":{},"1000":{},"1002":{}}}],["infrar",{"_index":3356,"title":{},"content":{"728":{}}}],["infrastructur",{"_index":3498,"title":{},"content":{"785":{}}}],["ingest",{"_index":1040,"title":{},"content":{"239":{}}}],["inher",{"_index":3102,"title":{},"content":{"677":{},"940":{}}}],["inherit",{"_index":1860,"title":{"406":{}},"content":{"368":{},"379":{},"403":{},"404":{},"406":{},"407":{},"414":{},"415":{},"420":{},"421":{},"451":{}}}],["initi",{"_index":592,"title":{"375":{},"835":{}},"content":{"206":{},"239":{},"258":{},"259":{},"260":{},"270":{},"272":{},"274":{},"283":{},"321":{},"324":{},"424":{},"549":{},"550":{},"612":{},"644":{},"648":{},"680":{},"727":{},"811":{},"825":{},"826":{},"834":{},"881":{},"894":{},"897":{},"898":{},"906":{},"907":{},"908":{},"909":{},"912":{},"913":{}}}],["initializetpm(int",{"_index":1350,"title":{"272":{}},"content":{}}],["initializeyk",{"_index":1383,"title":{"283":{}},"content":{}}],["initiziali",{"_index":1180,"title":{"259":{}},"content":{}}],["inject",{"_index":3116,"title":{},"content":{"678":{},"953":{}}}],["inline_frag",{"_index":10,"title":{},"content":{"5":{},"10":{}}}],["inmemori",{"_index":1513,"title":{},"content":{"310":{},"334":{}}}],["inner",{"_index":1218,"title":{},"content":{"267":{}}}],["innov",{"_index":3017,"title":{"661":{}},"content":{"687":{},"789":{},"928":{},"930":{},"933":{},"941":{}}}],["inpublicec",{"_index":1328,"title":{},"content":{"269":{}}}],["inpublicec.i",{"_index":1340,"title":{},"content":{"270":{}}}],["inpublicec.x",{"_index":1339,"title":{},"content":{"270":{}}}],["inpublicecc",{"_index":1241,"title":{},"content":{"269":{}}}],["input",{"_index":97,"title":{},"content":{"18":{},"73":{},"82":{},"147":{},"149":{},"216":{},"243":{},"246":{},"269":{},"287":{},"289":{},"291":{},"368":{},"371":{},"421":{},"546":{},"548":{},"564":{},"736":{},"834":{},"906":{},"912":{},"913":{},"1003":{}}}],["input/outputs:transact",{"_index":3386,"title":{},"content":{"737":{}}}],["insecur",{"_index":3518,"title":{},"content":{"791":{}}}],["insert",{"_index":1623,"title":{},"content":{"319":{},"605":{},"826":{}}}],["insid",{"_index":1049,"title":{},"content":{"239":{},"334":{},"354":{},"424":{},"674":{},"707":{}}}],["insight",{"_index":2095,"title":{},"content":{"395":{},"890":{},"900":{},"929":{}}}],["inspir",{"_index":936,"title":{},"content":{"223":{},"224":{},"712":{},"872":{}}}],["instal",{"_index":594,"title":{"207":{},"563":{},"843":{}},"content":{"206":{},"207":{},"563":{},"655":{},"701":{},"818":{},"830":{},"843":{},"877":{},"953":{},"956":{},"960":{}}}],["instanc",{"_index":905,"title":{},"content":{"235":{},"240":{},"315":{},"562":{},"563":{},"734":{},"745":{},"787":{},"792":{},"793":{}}}],["instantli",{"_index":3313,"title":{},"content":{"724":{},"868":{}}}],["instead",{"_index":1502,"title":{},"content":{"309":{},"370":{},"378":{},"401":{},"464":{},"486":{},"550":{},"633":{},"642":{},"694":{},"793":{},"799":{},"817":{},"823":{},"904":{},"917":{}}}],["instruct",{"_index":598,"title":{"207":{},"960":{}},"content":{"370":{},"427":{},"639":{},"818":{}}}],["insuffici",{"_index":3677,"title":{},"content":{"837":{}}}],["insur",{"_index":1953,"title":{"378":{}},"content":{"378":{}}}],["insurance_company_wallet",{"_index":1975,"title":{},"content":{"378":{}}}],["insure",{"_index":1956,"title":{},"content":{"378":{}}}],["insuree_wallet",{"_index":1977,"title":{},"content":{"378":{}}}],["int",{"_index":67,"title":{"170":{},"268":{},"275":{},"276":{}},"content":{"15":{},"16":{},"18":{},"19":{},"24":{},"25":{},"31":{},"32":{},"34":{},"35":{},"40":{},"41":{},"43":{},"44":{},"58":{},"59":{},"64":{},"65":{},"70":{},"71":{},"73":{},"74":{},"76":{},"77":{},"82":{},"83":{},"86":{},"87":{},"89":{},"90":{},"98":{},"99":{},"102":{},"103":{},"108":{},"109":{},"170":{},"216":{},"217":{},"218":{},"219":{},"954":{}}}],["integ",{"_index":462,"title":{},"content":{"172":{},"178":{},"216":{},"268":{},"381":{},"395":{},"450":{},"454":{},"464":{},"465":{},"506":{}}}],["integr",{"_index":378,"title":{"280":{},"800":{}},"content":{"108":{},"225":{},"345":{},"619":{},"660":{},"682":{},"688":{},"702":{},"705":{},"727":{},"728":{},"745":{},"782":{},"797":{},"827":{},"862":{},"872":{},"913":{},"928":{},"929":{},"930":{},"935":{},"963":{},"1002":{}}}],["intend",{"_index":692,"title":{},"content":{"217":{},"782":{},"897":{}}}],["intens",{"_index":1090,"title":{},"content":{"240":{}}}],["intent",{"_index":3243,"title":{},"content":{"698":{},"814":{},"898":{},"907":{},"910":{},"914":{}}}],["intepret",{"_index":1876,"title":{},"content":{"370":{}}}],["interact",{"_index":154,"title":{"865":{},"894":{},"902":{},"957":{}},"content":{"28":{},"204":{},"240":{},"369":{},"371":{},"395":{},"624":{},"693":{},"827":{},"830":{},"842":{},"843":{},"862":{},"864":{},"873":{},"877":{},"890":{},"899":{},"929":{},"953":{},"955":{},"956":{},"957":{},"963":{},"1002":{}}}],["interest",{"_index":1525,"title":{},"content":{"311":{},"313":{},"364":{},"438":{},"439":{},"441":{},"442":{},"443":{},"682":{},"689":{},"876":{}}}],["interfac",{"_index":567,"title":{"795":{},"818":{}},"content":{"205":{},"285":{},"382":{},"553":{},"724":{},"795":{},"797":{},"843":{},"861":{},"930":{},"953":{},"963":{},"1002":{},"1003":{}}}],["interim",{"_index":3817,"title":{},"content":{"894":{}}}],["intermediari",{"_index":2814,"title":{},"content":{"619":{},"629":{},"823":{},"933":{}}}],["intern",{"_index":1749,"title":{"392":{}},"content":{"334":{},"367":{},"369":{},"371":{},"391":{},"392":{},"393":{},"424":{},"464":{},"724":{},"957":{}}}],["internet",{"_index":2909,"title":{},"content":{"611":{},"724":{},"830":{},"877":{}}}],["interoper",{"_index":1399,"title":{},"content":{"287":{},"619":{},"682":{},"687":{},"690":{}}}],["interpol",{"_index":2005,"title":{},"content":{"381":{}}}],["interpret",{"_index":1731,"title":{"370":{},"857":{}},"content":{"336":{},"340":{},"367":{},"370":{},"380":{},"759":{},"782":{},"842":{}}}],["interrog",{"_index":3028,"title":{},"content":{"661":{},"712":{}}}],["interrupt",{"_index":3681,"title":{},"content":{"840":{}}}],["interv",{"_index":1138,"title":{"535":{},"541":{}},"content":{"252":{},"346":{},"368":{},"376":{},"413":{},"420":{},"535":{},"537":{},"538":{},"541":{},"543":{},"547":{},"548":{},"732":{},"734":{},"744":{},"745":{},"923":{}}}],["intervent",{"_index":4026,"title":{},"content":{"962":{}}}],["intrins",{"_index":3359,"title":{},"content":{"728":{}}}],["introduc",{"_index":1845,"title":{},"content":{"367":{},"382":{},"395":{},"549":{},"633":{},"714":{},"808":{},"826":{},"927":{}}}],["introduct",{"_index":481,"title":{"204":{},"659":{},"704":{},"933":{}},"content":{"827":{},"862":{}}}],["intuit",{"_index":3798,"title":{},"content":{"890":{},"899":{}}}],["invalid",{"_index":26,"title":{},"content":{"3":{},"119":{},"155":{},"164":{},"176":{},"194":{},"330":{},"395":{},"409":{},"559":{}}}],["invalid_transact",{"_index":22,"title":{},"content":{"2":{}}}],["invent",{"_index":3317,"title":{},"content":{"725":{}}}],["inventori",{"_index":3310,"title":{},"content":{"724":{}}}],["invest",{"_index":3809,"title":{},"content":{"892":{},"894":{},"897":{},"900":{},"902":{}}}],["investig",{"_index":3056,"title":{},"content":{"664":{}}}],["investor",{"_index":3834,"title":{},"content":{"901":{}}}],["invit",{"_index":2956,"title":{},"content":{"655":{},"656":{}}}],["invoc",{"_index":2110,"title":{},"content":{"399":{}}}],["involv",{"_index":619,"title":{},"content":{"209":{},"310":{},"612":{},"632":{},"633":{},"666":{},"678":{},"680":{},"689":{},"727":{},"748":{},"823":{},"825":{},"834":{},"868":{},"884":{},"889":{},"897":{},"906":{},"912":{},"913":{},"926":{}}}],["invovl",{"_index":1529,"title":{},"content":{"311":{},"333":{}}}],["io",{"_index":2904,"title":{},"content":{"609":{},"953":{},"956":{},"963":{}}}],["io_asynch_repli",{"_index":675,"title":{},"content":{"217":{}}}],["io_exchange_with_code(sw_ok",{"_index":663,"title":{},"content":{"216":{}}}],["ip",{"_index":163,"title":{},"content":{"34":{},"43":{},"126":{},"258":{},"338":{},"353":{},"355":{},"720":{},"798":{}}}],["ip/port/key",{"_index":3289,"title":{},"content":{"716":{}}}],["irrefut",{"_index":1884,"title":{},"content":{"371":{}}}],["is_same?/2",{"_index":2330,"title":{"427":{}},"content":{}}],["is_valid?/1",{"_index":2340,"title":{"428":{},"479":{}},"content":{}}],["ishexa",{"_index":4060,"title":{},"content":{"1000":{}}}],["isn't",{"_index":2631,"title":{},"content":{"534":{}}}],["isol",{"_index":1053,"title":{},"content":{"239":{},"254":{}}}],["issu",{"_index":1635,"title":{"640":{}},"content":{"280":{},"369":{},"370":{},"371":{},"385":{},"412":{},"602":{},"604":{},"611":{},"612":{},"644":{},"645":{},"658":{},"659":{},"661":{},"675":{},"682":{},"687":{},"731":{},"736":{},"787":{},"835":{},"858":{},"913":{},"953":{}}}],["issuer",{"_index":3481,"title":{},"content":{"782":{}}}],["it'",{"_index":1131,"title":{},"content":{"251":{},"277":{},"311":{},"334":{},"346":{},"382":{},"395":{},"401":{},"409":{},"411":{},"541":{},"550":{},"556":{},"600":{},"602":{},"671":{},"691":{},"694":{},"700":{},"701":{},"708":{},"712":{},"760":{},"781":{},"787":{},"792":{},"949":{}}}],["item",{"_index":2503,"title":{},"content":{"490":{},"567":{},"568":{},"569":{},"570":{},"571":{},"572":{},"573":{},"574":{},"575":{},"576":{},"577":{},"578":{},"579":{},"580":{},"581":{},"582":{},"583":{},"589":{},"590":{},"591":{},"592":{},"593":{},"594":{},"700":{}}}],["iter",{"_index":2532,"title":{},"content":{"501":{}}}],["itself",{"_index":904,"title":{},"content":{"235":{},"312":{},"682":{},"688":{},"692":{},"701":{},"704":{},"962":{}}}],["iv",{"_index":781,"title":{},"content":{"218":{},"219":{},"225":{}}}],["i’m",{"_index":2848,"title":{"615":{},"635":{}},"content":{}}],["jailbroken",{"_index":2985,"title":{},"content":{"658":{}}}],["javascript",{"_index":1837,"title":{"366":{}},"content":{"366":{},"805":{},"963":{},"1002":{}}}],["jerri",{"_index":2054,"title":{},"content":{"388":{}}}],["job",{"_index":2370,"title":{},"content":{"456":{},"666":{}}}],["joe",{"_index":2494,"title":{},"content":{"488":{}}}],["john",{"_index":2034,"title":{},"content":{"384":{},"475":{},"605":{}}}],["join",{"_index":1174,"title":{"720":{}},"content":{"258":{},"259":{},"260":{},"338":{},"488":{},"694":{},"710":{},"720":{},"747":{},"764":{},"782":{}}}],["join/2",{"_index":2490,"title":{"488":{}},"content":{}}],["joins/rejoin",{"_index":3288,"title":{},"content":{"716":{}}}],["js",{"_index":4013,"title":{},"content":{"957":{},"963":{},"1002":{}}}],["json",{"_index":408,"title":{"474":{}},"content":{"119":{},"155":{},"164":{},"176":{},"194":{},"378":{},"393":{},"411":{},"425":{},"450":{},"474":{},"475":{},"476":{},"477":{},"478":{},"479":{},"541":{},"693":{},"757":{},"760":{},"963":{}}}],["json.hourly.temperature_2m",{"_index":1970,"title":{},"content":{"378":{}}}],["json.is_valid?(\"\\\"str",{"_index":2457,"title":{},"content":{"479":{}}}],["json.is_valid?(\"str",{"_index":2456,"title":{},"content":{"479":{}}}],["json.is_valid?(response.bodi",{"_index":1968,"title":{},"content":{"378":{}}}],["json.parse(\"1",{"_index":2451,"title":{},"content":{"478":{}}}],["json.parse(\"[1,2,3",{"_index":2453,"title":{},"content":{"478":{}}}],["json.parse(\"\\\"str",{"_index":2452,"title":{},"content":{"478":{}}}],["json.parse(\"{\\\"foo\\\":\\\"bar",{"_index":2454,"title":{},"content":{"478":{}}}],["json.parse(response.bodi",{"_index":1969,"title":{},"content":{"378":{}}}],["json.path_extract",{"_index":2436,"title":{},"content":{"475":{}}}],["json.path_extract(next.cont",{"_index":2179,"title":{},"content":{"407":{}}}],["json.path_extract(previous.cont",{"_index":2177,"title":{},"content":{"407":{}}}],["json.path_extract(transaction.cont",{"_index":2122,"title":{},"content":{"400":{}}}],["json.path_match?(\"$.uco.usd",{"_index":2194,"title":{},"content":{"411":{}}}],["json.path_match?(\"{\\\"1622541930\\\":{\\\"uco\\\":{\\\"eur\\\":0.176922,\\\"usd\\\":0.21642",{"_index":2441,"title":{},"content":{"476":{}}}],["json.path_match?(next.cont",{"_index":2175,"title":{},"content":{"407":{}}}],["json.path_match?(transaction.cont",{"_index":2198,"title":{},"content":{"411":{}}}],["json.to_string(\"str",{"_index":2445,"title":{},"content":{"477":{}}}],["json.to_string(1",{"_index":2444,"title":{},"content":{"477":{}}}],["json.to_string([1,2,3",{"_index":2446,"title":{},"content":{"477":{}}}],["json.to_string([count",{"_index":2688,"title":{},"content":{"549":{}}}],["json.to_string(foo",{"_index":2447,"title":{},"content":{"477":{}}}],["json_extract(\"$.uco.usd",{"_index":2237,"title":{},"content":{"417":{}}}],["json_extract(data",{"_index":2236,"title":{},"content":{"417":{}}}],["json_match",{"_index":2233,"title":{},"content":{"417":{}}}],["json_match?(\"$.uco.usd",{"_index":2235,"title":{},"content":{"417":{}}}],["json_path",{"_index":2174,"title":{},"content":{"407":{}}}],["jsonpath",{"_index":2234,"title":{},"content":{"417":{},"475":{},"476":{}}}],["jsonrpc",{"_index":3460,"title":{},"content":{"762":{}}}],["k",{"_index":3758,"title":{},"content":{"873":{},"938":{},"939":{}}}],["kdf",{"_index":1326,"title":{},"content":{"269":{}}}],["keccak",{"_index":999,"title":{},"content":{"229":{}}}],["keccak256",{"_index":2381,"title":{},"content":{"468":{},"472":{}}}],["keep",{"_index":1423,"title":{},"content":{"290":{},"291":{},"310":{},"312":{},"315":{},"377":{},"385":{},"674":{},"683":{},"714":{},"730":{},"807":{},"830":{},"953":{},"956":{}}}],["kept",{"_index":3471,"title":{},"content":{"781":{},"861":{}}}],["key",{"_index":49,"title":{"212":{},"217":{},"224":{},"232":{},"329":{},"358":{},"628":{},"669":{},"672":{},"691":{},"822":{},"861":{}},"content":{"12":{},"21":{},"28":{},"52":{},"58":{},"61":{},"108":{},"136":{},"137":{},"143":{},"176":{},"204":{},"209":{},"212":{},"214":{},"217":{},"218":{},"219":{},"220":{},"221":{},"223":{},"224":{},"225":{},"230":{},"232":{},"235":{},"236":{},"251":{},"263":{},"267":{},"269":{},"270":{},"271":{},"272":{},"273":{},"274":{},"275":{},"276":{},"277":{},"283":{},"286":{},"287":{},"288":{},"289":{},"290":{},"292":{},"294":{},"295":{},"296":{},"297":{},"298":{},"299":{},"301":{},"302":{},"304":{},"305":{},"306":{},"307":{},"310":{},"311":{},"312":{},"314":{},"315":{},"316":{},"317":{},"319":{},"320":{},"328":{},"329":{},"330":{},"336":{},"338":{},"353":{},"355":{},"356":{},"357":{},"358":{},"362":{},"368":{},"382":{},"390":{},"395":{},"404":{},"407":{},"415":{},"418":{},"432":{},"438":{},"442":{},"443":{},"456":{},"470":{},"471":{},"482":{},"495":{},"497":{},"498":{},"499":{},"500":{},"501":{},"503":{},"515":{},"516":{},"517":{},"545":{},"550":{},"560":{},"662":{},"665":{},"669":{},"670":{},"672":{},"673":{},"674":{},"677":{},"678":{},"680":{},"683":{},"685":{},"687":{},"688":{},"691":{},"692":{},"693":{},"694":{},"710":{},"716":{},"720":{},"727":{},"728":{},"733":{},"734":{},"737":{},"781":{},"782":{},"802":{},"803":{},"811":{},"813":{},"830":{},"846":{},"848":{},"877":{},"926":{},"941":{},"955":{},"956":{},"961":{},"962":{},"964":{},"976":{},"987":{},"989":{},"998":{}}}],["key(enc(aes_key",{"_index":974,"title":{},"content":{"225":{}}}],["key.pem",{"_index":3586,"title":{},"content":{"803":{}}}],["key/valu",{"_index":1567,"title":{},"content":{"314":{}}}],["key1",{"_index":2061,"title":{},"content":{"390":{},"498":{},"499":{},"500":{},"501":{},"503":{}}}],["key2",{"_index":2062,"title":{},"content":{"390":{},"497":{},"498":{},"499":{},"500":{},"501":{},"502":{},"503":{}}}],["key3",{"_index":2523,"title":{},"content":{"498":{},"499":{},"500":{}}}],["key_certificates[ykindex",{"_index":1407,"title":{},"content":{"287":{}}}],["key_slots[ykindex",{"_index":1416,"title":{},"content":{"288":{},"292":{},"293":{}}}],["keybits.a",{"_index":1316,"title":{},"content":{"269":{}}}],["keyboard",{"_index":3692,"title":{},"content":{"845":{},"955":{},"956":{}}}],["keychain",{"_index":888,"title":{"236":{},"690":{},"699":{},"773":{},"852":{},"853":{},"854":{}},"content":{"220":{},"223":{},"225":{},"234":{},"235":{},"236":{},"573":{},"574":{},"575":{},"601":{},"655":{},"656":{},"674":{},"683":{},"690":{},"692":{},"693":{},"694":{},"699":{},"774":{},"797":{},"811":{},"820":{},"842":{},"843":{},"852":{},"853":{},"854":{},"856":{},"950":{},"951":{},"956":{},"963":{},"976":{},"978":{},"981":{},"984":{},"997":{}}}],["keychain'",{"_index":903,"title":{},"content":{"224":{},"235":{},"692":{},"956":{},"984":{}}}],["keychain/wallet",{"_index":3161,"title":{},"content":{"692":{}}}],["keychain_access",{"_index":3497,"title":{"774":{}},"content":{}}],["keychain_derive_address",{"_index":4052,"title":{"990":{}},"content":{}}],["keychain_derive_keypair",{"_index":4050,"title":{"987":{}},"content":{}}],["keyindex",{"_index":1236,"title":{"269":{},"272":{},"274":{},"275":{},"276":{},"277":{}},"content":{"274":{},"275":{},"276":{}}}],["keyindex+1",{"_index":1354,"title":{},"content":{"274":{}}}],["keypair",{"_index":753,"title":{},"content":{"218":{},"219":{},"678":{},"987":{}}}],["keys/1",{"_index":2530,"title":{"501":{}},"content":{}}],["keys:secret",{"_index":2368,"title":{},"content":{"456":{}}}],["keys:to",{"_index":2355,"title":{},"content":{"452":{},"454":{}}}],["keystor",{"_index":1196,"title":{"263":{},"264":{}},"content":{"262":{},"263":{},"264":{},"956":{}}}],["keytoasn",{"_index":1215,"title":{"267":{}},"content":{"267":{}}}],["keytyp",{"_index":1222,"title":{},"content":{"267":{}}}],["keyvalu",{"_index":1518,"title":{},"content":{"310":{}}}],["keyword",{"_index":2075,"title":{"396":{}},"content":{"391":{},"392":{},"395":{},"399":{},"403":{}}}],["kind",{"_index":1137,"title":{},"content":{"252":{},"312":{},"315":{},"319":{},"361":{},"368":{},"662":{},"674":{},"714":{},"749":{},"782":{},"965":{}}}],["knigg",{"_index":1696,"title":{},"content":{"321":{}}}],["know",{"_index":1573,"title":{},"content":{"314":{},"315":{},"661":{},"669":{},"674":{},"716":{},"722":{},"730":{},"790":{},"806":{},"890":{},"956":{}}}],["knowledg",{"_index":578,"title":{},"content":{"205":{},"602":{},"682":{},"687":{},"712":{},"713":{},"727":{}}}],["known",{"_index":1032,"title":{},"content":{"239":{},"269":{},"329":{},"362":{},"470":{},"662":{},"670":{},"716":{},"738":{},"823":{}}}],["kyc",{"_index":3943,"title":{},"content":{"950":{}}}],["lack",{"_index":3515,"title":{},"content":{"789":{}}}],["landscap",{"_index":3858,"title":{},"content":{"927":{},"929":{}}}],["languag",{"_index":1021,"title":{"379":{},"412":{}},"content":{"238":{},"239":{},"240":{},"381":{},"390":{},"391":{},"394":{},"412":{},"428":{},"604":{},"951":{},"953":{},"954":{},"956":{}}}],["larg",{"_index":3880,"title":{},"content":{"922":{}}}],["larger",{"_index":3855,"title":{},"content":{"913":{},"940":{}}}],["last",{"_index":398,"title":{},"content":{"111":{},"120":{},"131":{},"224":{},"258":{},"279":{},"281":{},"310":{},"312":{},"315":{},"317":{},"319":{},"353":{},"355":{},"358":{},"369":{},"613":{},"626":{},"665":{},"705":{},"732":{},"733":{},"740":{},"741":{},"781":{},"845":{},"900":{},"946":{},"956":{},"964":{}}}],["last_calculation_timestamp",{"_index":3912,"title":{},"content":{"946":{}}}],["lastli",{"_index":3857,"title":{},"content":{"913":{}}}],["lastnam",{"_index":2115,"title":{},"content":{"399":{},"475":{},"533":{}}}],["lastpublickey",{"_index":200,"title":{},"content":{"43":{}}}],["lasttransact",{"_index":301,"title":{"120":{}},"content":{"75":{},"120":{},"157":{}}}],["lasttransaction.address",{"_index":418,"title":{},"content":{"121":{}}}],["lat",{"_index":1979,"title":{},"content":{"378":{}}}],["latenc",{"_index":1034,"title":{},"content":{"239":{},"315":{},"345":{},"353":{},"359":{},"361":{},"680":{},"712":{},"733":{},"734":{}}}],["later",{"_index":1589,"title":{},"content":{"315":{},"605":{},"615":{},"635":{},"638":{},"728":{},"750":{},"758":{},"782":{},"837":{}}}],["latest",{"_index":395,"title":{},"content":{"114":{},"206":{},"315":{},"343":{},"401":{},"435":{},"436":{},"645":{},"648":{},"663":{},"748":{},"807":{},"808":{},"812":{},"827":{},"830":{},"862":{},"877":{}}}],["latter",{"_index":3516,"title":{},"content":{"791":{}}}],["launch",{"_index":1173,"title":{},"content":{"258":{},"320":{},"367":{},"648":{},"655":{},"705":{},"724":{},"843":{},"956":{}}}],["law",{"_index":3041,"title":{},"content":{"664":{},"701":{}}}],["layer",{"_index":1548,"title":{},"content":{"313":{},"353":{},"359":{},"361":{},"661":{},"678":{},"707":{},"710":{},"717":{},"727":{},"755":{},"900":{},"950":{}}}],["layer.thu",{"_index":3026,"title":{},"content":{"661":{}}}],["layout",{"_index":2774,"title":{},"content":{"604":{}}}],["lc",{"_index":738,"title":{},"content":{"212":{},"213":{},"214":{},"218":{}}}],["lead",{"_index":3850,"title":{},"content":{"913":{}}}],["leader",{"_index":2837,"title":{},"content":{"627":{},"828":{}}}],["leak",{"_index":1212,"title":{},"content":{"266":{},"953":{}}}],["learn",{"_index":2756,"title":{},"content":{"603":{},"953":{}}}],["led",{"_index":1560,"title":{},"content":{"314":{}}}],["ledger",{"_index":63,"title":{"37":{},"215":{},"244":{},"247":{},"573":{}},"content":{"24":{},"28":{},"29":{},"37":{},"40":{},"64":{},"67":{},"69":{},"86":{},"95":{},"97":{},"108":{},"116":{},"204":{},"205":{},"206":{},"216":{},"217":{},"218":{},"232":{},"564":{},"573":{},"574":{},"575":{},"683":{},"755":{},"762":{},"782":{}}}],["ledger.token",{"_index":179,"title":{},"content":{"38":{}}}],["ledger.uco",{"_index":180,"title":{},"content":{"38":{}}}],["ledger_cli",{"_index":606,"title":{},"content":{"207":{},"208":{}}}],["ledgeroper",{"_index":128,"title":{"40":{}},"content":{"20":{},"40":{},"88":{},"101":{},"108":{},"109":{},"171":{}}}],["ledgeroperations.consumedinput",{"_index":188,"title":{},"content":{"41":{}}}],["ledgeroperations.fe",{"_index":189,"title":{},"content":{"41":{}}}],["ledgeroperations.transactionmov",{"_index":190,"title":{},"content":{"41":{}}}],["ledgeroperations.unspentoutput",{"_index":191,"title":{},"content":{"41":{}}}],["left",{"_index":2662,"title":{},"content":{"540":{},"545":{},"549":{},"604":{},"833":{},"845":{},"956":{}}}],["legaci",{"_index":2149,"title":{"402":{}},"content":{"403":{},"890":{}}}],["len(ewk{aes}+ew{a",{"_index":876,"title":{},"content":{"213":{}}}],["len(txhash+ewk{aes}+ew_{a",{"_index":881,"title":{},"content":{"214":{}}}],["lend",{"_index":3882,"title":{},"content":{"926":{}}}],["length",{"_index":642,"title":{},"content":{"216":{},"217":{},"218":{},"219":{},"227":{},"289":{},"314":{},"465":{},"673":{}}}],["less",{"_index":1566,"title":{"683":{}},"content":{"314":{},"464":{},"683":{},"685":{},"897":{},"906":{},"913":{}}}],["let",{"_index":1572,"title":{},"content":{"314":{},"889":{},"890":{}}}],["let'",{"_index":2650,"title":{},"content":{"538":{},"541":{},"548":{},"549":{},"802":{},"948":{}}}],["level",{"_index":1098,"title":{"280":{},"884":{},"886":{}},"content":{"242":{},"280":{},"323":{},"553":{},"661":{},"674":{},"716":{},"751":{},"824":{},"873":{},"881":{},"884":{},"886":{},"887":{},"890":{},"893":{},"894":{},"904":{},"938":{},"944":{},"946":{},"948":{}}}],["leveldb",{"_index":1488,"title":{},"content":{"309":{}}}],["levelratio",{"_index":3921,"title":{},"content":{"947":{},"948":{}}}],["leverag",{"_index":1029,"title":{},"content":{"239":{},"264":{},"280":{},"315":{},"319":{},"360":{},"367":{},"605":{},"667":{},"696":{},"716":{},"742":{},"787":{},"793":{},"805":{},"806":{},"861":{},"916":{},"929":{},"933":{}}}],["lib",{"_index":4065,"title":{},"content":{"1002":{}}}],["libj",{"_index":4032,"title":{},"content":{"963":{},"1002":{}}}],["librari",{"_index":1204,"title":{"394":{},"422":{}},"content":{"265":{},"282":{},"385":{},"389":{},"390":{},"392":{},"393":{},"394":{},"422":{},"680":{},"953":{},"954":{},"955":{},"956":{},"957":{},"963":{},"1002":{}}}],["licens",{"_index":3319,"title":{},"content":{"725":{}}}],["life",{"_index":1841,"title":{},"content":{"367":{}}}],["lifecycl",{"_index":1210,"title":{},"content":{"266":{},"805":{}}}],["lifelong",{"_index":3347,"title":{},"content":{"728":{}}}],["light",{"_index":3354,"title":{},"content":{"728":{}}}],["lightweight",{"_index":1050,"title":{},"content":{"239":{}}}],["like",{"_index":2958,"title":{},"content":{"655":{}}}],["limit",{"_index":84,"title":{},"content":{"15":{},"73":{},"123":{},"147":{},"275":{},"537":{},"661":{},"718":{},"727":{},"805":{},"811":{},"913":{},"940":{},"963":{},"965":{}}}],["limitless",{"_index":3004,"title":{"685":{}},"content":{"659":{},"685":{}}}],["line",{"_index":566,"title":{"818":{},"857":{}},"content":{"205":{},"350":{},"380":{},"381":{},"427":{},"787":{},"797":{},"815":{},"842":{},"857":{}}}],["linear",{"_index":3007,"title":{},"content":{"659":{},"685":{},"736":{}}}],["linearli",{"_index":3938,"title":{},"content":{"949":{}}}],["link",{"_index":605,"title":{"601":{}},"content":{"207":{},"389":{},"480":{},"542":{},"545":{},"603":{},"611":{},"749":{},"759":{},"801":{},"832":{},"879":{},"889":{},"890":{},"901":{},"904":{},"1002":{}}}],["linkag",{"_index":3479,"title":{},"content":{"782":{}}}],["linter",{"_index":1683,"title":{},"content":{"321":{}}}],["linux",{"_index":2828,"title":{},"content":{"623":{},"658":{},"830":{},"877":{},"953":{},"963":{}}}],["liquid",{"_index":2878,"title":{"612":{},"867":{},"869":{},"889":{},"895":{},"896":{},"897":{},"905":{},"906":{},"907":{},"908":{},"909":{},"910":{},"918":{},"919":{},"920":{},"928":{}},"content":{"612":{},"639":{},"859":{},"861":{},"868":{},"869":{},"870":{},"872":{},"873":{},"875":{},"876":{},"877":{},"880":{},"881":{},"884":{},"888":{},"889":{},"894":{},"896":{},"897":{},"898":{},"899":{},"900":{},"901":{},"902":{},"903":{},"905":{},"906":{},"907":{},"908":{},"909":{},"910":{},"913":{},"916":{},"917":{},"918":{},"919":{},"920":{},"921":{},"923":{},"924":{},"925":{},"926":{},"927":{},"928":{},"929":{},"933":{},"934":{},"935":{},"937":{},"938":{},"939":{},"941":{},"951":{}}}],["lisibl",{"_index":4056,"title":{},"content":{"997":{},"1000":{}}}],["list",{"_index":69,"title":{"389":{},"425":{},"480":{},"726":{}},"content":{"16":{},"25":{},"28":{},"29":{},"41":{},"53":{},"58":{},"59":{},"68":{},"74":{},"90":{},"96":{},"126":{},"128":{},"134":{},"143":{},"147":{},"153":{},"162":{},"220":{},"235":{},"243":{},"246":{},"278":{},"284":{},"315":{},"316":{},"328":{},"329":{},"330":{},"334":{},"353":{},"357":{},"361":{},"377":{},"378":{},"389":{},"390":{},"392":{},"394":{},"401":{},"409":{},"414":{},"415":{},"425":{},"438":{},"443":{},"448":{},"453":{},"454":{},"455":{},"457":{},"459":{},"465":{},"480":{},"481":{},"482":{},"483":{},"484":{},"485":{},"486":{},"487":{},"488":{},"489":{},"490":{},"491":{},"492":{},"493":{},"494":{},"501":{},"502":{},"510":{},"511":{},"512":{},"532":{},"549":{},"557":{},"558":{},"559":{},"560":{},"656":{},"662":{},"665":{},"666":{},"692":{},"693":{},"700":{},"709":{},"716":{},"720":{},"722":{},"734":{},"738":{},"740":{},"741":{},"750":{},"761":{},"781":{},"782":{},"811":{},"838":{},"846":{},"848":{},"854":{},"855":{},"880":{},"901":{},"951":{},"956":{},"964":{}}}],["list'",{"_index":2497,"title":{},"content":{"488":{}}}],["list.append",{"_index":2481,"title":{},"content":{"486":{}}}],["list.append([1",{"_index":2482,"title":{},"content":{"486":{}}}],["list.at",{"_index":2460,"title":{},"content":{"481":{}}}],["list.at([\"a",{"_index":2459,"title":{},"content":{"481":{}}}],["list.concat",{"_index":2474,"title":{},"content":{"485":{}}}],["list.concat([1,2",{"_index":2475,"title":{},"content":{"485":{}}}],["list.concat(sold_item",{"_index":2253,"title":{},"content":{"422":{}}}],["list.delete_at([\"index0",{"_index":2514,"title":{},"content":{"494":{}}}],["list.empti",{"_index":2471,"title":{},"content":{"484":{}}}],["list.empty?([\"appl",{"_index":2472,"title":{},"content":{"484":{}}}],["list.in?([\"bob",{"_index":2465,"title":{},"content":{"483":{}}}],["list.in?([\"miss",{"_index":1933,"title":{},"content":{"377":{}}}],["list.in?([\"pet",{"_index":2184,"title":{},"content":{"409":{}}}],["list.in?(voters_genesis_address",{"_index":1940,"title":{},"content":{"377":{}}}],["list.join",{"_index":2491,"title":{},"content":{"488":{}}}],["list.join([\"mik",{"_index":2492,"title":{},"content":{"488":{}}}],["list.prepend",{"_index":2487,"title":{},"content":{"487":{}}}],["list.prepend([1",{"_index":2488,"title":{},"content":{"487":{}}}],["list.prepend(vot",{"_index":1947,"title":{},"content":{"377":{}}}],["list.reverse([1,2,2,3",{"_index":2507,"title":{},"content":{"492":{}}}],["list.set_at([\"index0",{"_index":2510,"title":{},"content":{"493":{}}}],["list.siz",{"_index":2462,"title":{},"content":{"482":{}}}],["list.size([1,2,3,4",{"_index":2463,"title":{},"content":{"482":{}}}],["list.sort([1,3,2",{"_index":2499,"title":{},"content":{"489":{}}}],["list.sort_by([[a",{"_index":2501,"title":{},"content":{"490":{}}}],["list.uniq([1,2,1,2,3",{"_index":2505,"title":{},"content":{"491":{}}}],["list1",{"_index":2478,"title":{},"content":{"485":{}}}],["list2",{"_index":2479,"title":{},"content":{"485":{}}}],["listen",{"_index":4027,"title":{},"content":{"962":{},"964":{}}}],["live",{"_index":1817,"title":{},"content":{"362":{},"781":{}}}],["load",{"_index":595,"title":{"249":{},"253":{}},"content":{"206":{},"242":{},"249":{},"253":{},"316":{},"319":{},"345":{},"354":{},"696":{},"848":{}}}],["local",{"_index":436,"title":{"562":{},"838":{}},"content":{"150":{},"256":{},"353":{},"535":{},"562":{},"567":{},"568":{},"569":{},"570":{},"571":{},"572":{},"616":{},"636":{},"643":{},"644":{},"658":{},"715":{},"806":{},"812":{},"833":{},"838":{},"839":{},"840":{},"955":{},"956":{},"963":{},"997":{},"1000":{}}}],["locat",{"_index":1578,"title":{},"content":{"315":{},"692":{}}}],["lock",{"_index":2166,"title":{"629":{},"823":{},"885":{},"925":{},"942":{}},"content":{"406":{},"619":{},"629":{},"632":{},"823":{},"825":{},"826":{},"881":{},"884":{},"885":{},"886":{},"887":{},"890":{},"893":{},"894":{},"900":{},"902":{},"913":{},"925":{},"944":{},"951":{},"956":{}}}],["lock(x",{"_index":2645,"title":{},"content":{"537":{}}}],["lock_tim",{"_index":2187,"title":{},"content":{"409":{}}}],["log",{"_index":1499,"title":{"310":{},"311":{}},"content":{"309":{},"310":{},"311":{},"313":{},"315":{},"321":{},"322":{},"832":{},"833":{},"879":{}}}],["log10(numb",{"_index":3247,"title":{},"content":{"700":{}}}],["logarithm",{"_index":3234,"title":{},"content":{"696":{},"700":{}}}],["logic",{"_index":1224,"title":{},"content":{"267":{},"360":{},"793":{},"847":{},"848":{}}}],["login",{"_index":3304,"title":{},"content":{"724":{}}}],["logo",{"_index":3799,"title":{},"content":{"890":{},"900":{}}}],["long",{"_index":994,"title":{"626":{}},"content":{"228":{},"229":{},"232":{},"315":{},"378":{},"688":{},"708":{},"710":{},"792":{},"808":{},"904":{},"937":{},"954":{},"956":{}}}],["longer",{"_index":2871,"title":{},"content":{"638":{},"724":{},"814":{},"881":{},"884":{},"886":{},"893":{},"894":{},"944":{}}}],["look",{"_index":1836,"title":{},"content":{"364":{},"366":{},"603":{},"894":{},"902":{}}}],["lookup",{"_index":1610,"title":{"330":{},"356":{},"358":{}},"content":{"279":{},"281":{},"316":{},"328":{},"357":{}}}],["loop",{"_index":2045,"title":{"387":{}},"content":{"501":{}}}],["lose",{"_index":2891,"title":{},"content":{"642":{},"644":{}}}],["loss",{"_index":3735,"title":{},"content":{"872":{},"875":{},"876":{}}}],["lost",{"_index":1890,"title":{},"content":{"371":{}}}],["lot",{"_index":1536,"title":{},"content":{"312":{},"662":{},"793":{}}}],["low",{"_index":1033,"title":{"280":{}},"content":{"239":{},"280":{},"359":{},"659":{},"714":{},"787":{},"859":{},"861":{},"933":{}}}],["lower",{"_index":3856,"title":{},"content":{"913":{}}}],["lowercas",{"_index":2622,"title":{},"content":{"525":{}}}],["lowest",{"_index":2823,"title":{},"content":{"621":{},"683":{}}}],["loyalti",{"_index":3476,"title":{},"content":{"782":{}}}],["lp",{"_index":3729,"title":{"919":{},"928":{}},"content":{"869":{},"870":{},"875":{},"885":{},"886":{},"887":{},"890":{},"891":{},"893":{},"894":{},"902":{},"903":{},"904":{},"906":{},"909":{},"918":{},"919":{},"920":{},"928":{},"929":{},"935":{}}}],["lp_tokens_deposit",{"_index":3914,"title":{},"content":{"946":{}}}],["lp_tokens_deposited_by_level",{"_index":3915,"title":{},"content":{"946":{}}}],["lsm",{"_index":1507,"title":{},"content":{"310":{},"312":{}}}],["lupin",{"_index":2616,"title":{},"content":{"524":{}}}],["m/650'/0/0",{"_index":955,"title":{},"content":{"224":{},"694":{}}}],["m/650'/0/1",{"_index":959,"title":{},"content":{"224":{}}}],["m/650'/account/index",{"_index":944,"title":{},"content":{"223":{}}}],["m/650'/amazon/0",{"_index":3173,"title":{},"content":{"694":{}}}],["m/650'/johndoeuco@!/0",{"_index":3174,"title":{},"content":{"694":{}}}],["machin",{"_index":1757,"title":{},"content":{"346":{},"444":{},"622":{},"624":{},"792":{}}}],["maco",{"_index":2827,"title":{},"content":{"623":{},"658":{},"830":{},"877":{},"953":{},"963":{}}}],["made",{"_index":885,"title":{},"content":{"214":{},"648":{},"691":{},"825":{},"893":{},"953":{},"956":{}}}],["main",{"_index":917,"title":{},"content":{"220":{},"223":{},"311":{},"314":{},"328":{},"334":{},"346":{},"400":{},"604":{},"693":{},"751":{},"811":{},"843":{},"845":{},"848":{},"851":{},"928":{},"951":{},"953":{},"956":{}}}],["mainli",{"_index":1834,"title":{},"content":{"364":{},"558":{},"682":{}}}],["mainnet",{"_index":1760,"title":{"615":{},"635":{},"642":{}},"content":{"346":{},"545":{},"615":{},"635":{},"642":{},"648":{},"745":{},"877":{},"956":{}}}],["mainnet.archethic.net",{"_index":3564,"title":{},"content":{"799":{},"800":{},"801":{}}}],["maintain",{"_index":1028,"title":{},"content":{"239":{},"251":{},"262":{},"263":{},"266":{},"327":{},"345":{},"602":{},"661":{},"717":{},"873":{},"894":{},"906":{},"929":{},"938":{},"939":{},"957":{}}}],["mainten",{"_index":3524,"title":{},"content":{"792":{},"953":{}}}],["major",{"_index":2803,"title":{},"content":{"619":{},"881":{}}}],["make",{"_index":521,"title":{},"content":{"204":{},"206":{},"250":{},"281":{},"315":{},"316":{},"317":{},"318":{},"332":{},"334":{},"367":{},"368":{},"370":{},"371":{},"381":{},"536":{},"603":{},"612":{},"630":{},"639":{},"645":{},"648":{},"664":{},"677":{},"678":{},"683":{},"684":{},"690":{},"693":{},"695":{},"696":{},"728":{},"755":{},"759":{},"791":{},"795":{},"798":{},"814":{},"820":{},"824":{},"842":{},"861":{},"894":{},"900":{},"909":{},"929":{},"930":{},"954":{}}}],["makefil",{"_index":656,"title":{},"content":{"216":{}}}],["maker",{"_index":3705,"title":{"917":{}},"content":{"859":{},"868":{},"933":{}}}],["malciou",{"_index":3110,"title":{},"content":{"678":{}}}],["malici",{"_index":3051,"title":{},"content":{"664":{},"678":{},"685":{},"791":{},"953":{}}}],["malwar",{"_index":3104,"title":{},"content":{"677":{}}}],["manag",{"_index":486,"title":{"640":{},"838":{},"852":{}},"content":{"204":{},"250":{},"252":{},"254":{},"286":{},"310":{},"312":{},"324":{},"663":{},"664":{},"687":{},"698":{},"699":{},"724":{},"727":{},"793":{},"805":{},"809":{},"817":{},"842":{},"843":{},"852":{},"872":{},"873":{},"881":{},"889":{},"894":{},"902":{},"906":{},"913":{},"928":{},"950":{},"951":{},"956":{},"963":{},"976":{},"1002":{}}}],["mandatori",{"_index":1401,"title":{},"content":{"287":{},"401":{},"811":{}}}],["mani",{"_index":523,"title":{"650":{}},"content":{"204":{},"315":{},"360":{},"422":{},"442":{},"443":{},"527":{},"687":{},"745":{},"756":{},"782":{},"906":{},"909":{},"996":{},"999":{}}}],["manipul",{"_index":1277,"title":{},"content":{"269":{},"389":{},"390":{},"474":{},"495":{},"518":{},"612":{},"940":{}}}],["manner",{"_index":2841,"title":{},"content":{"629":{},"823":{},"890":{},"899":{},"962":{}}}],["manual",{"_index":2160,"title":{},"content":{"406":{},"638":{},"658":{},"802":{}}}],["map",{"_index":445,"title":{"390":{},"401":{},"495":{}},"content":{"162":{},"348":{},"349":{},"390":{},"395":{},"398":{},"401":{},"404":{},"406":{},"408":{},"410":{},"415":{},"425":{},"437":{},"438":{},"442":{},"443":{},"452":{},"454":{},"456":{},"464":{},"465":{},"489":{},"490":{},"495":{},"496":{},"497":{},"498":{},"499":{},"500":{},"501":{},"502":{},"503":{},"550":{}}}],["map.delete([key1",{"_index":2538,"title":{},"content":{"503":{}}}],["map.get([key1",{"_index":2522,"title":{},"content":{"498":{},"499":{},"500":{}}}],["map.get(bal",{"_index":2321,"title":{},"content":{"442":{},"443":{}}}],["map.get(balance.token",{"_index":2298,"title":{},"content":{"438":{}}}],["map.get(contract.address",{"_index":2183,"title":{},"content":{"409":{}}}],["map.get(map",{"_index":2066,"title":{},"content":{"390":{}}}],["map.get(transaction.uco_mov",{"_index":1901,"title":{},"content":{"375":{}}}],["map.get(transaction.uco_transf",{"_index":1918,"title":{},"content":{"375":{}}}],["map.key",{"_index":2524,"title":{},"content":{"498":{}}}],["map.keys(key1",{"_index":2531,"title":{},"content":{"501":{}}}],["map.keys(map",{"_index":2533,"title":{},"content":{"501":{}}}],["map.new",{"_index":2072,"title":{},"content":{"390":{},"456":{},"462":{},"464":{},"465":{},"496":{}}}],["map.properti",{"_index":2064,"title":{},"content":{"390":{}}}],["map.set([key1",{"_index":2527,"title":{},"content":{"500":{}}}],["map.set(authorized_key",{"_index":2364,"title":{},"content":{"456":{}}}],["map.siz",{"_index":2154,"title":{},"content":{"404":{},"405":{},"407":{}}}],["map.size(key1",{"_index":2519,"title":{},"content":{"497":{}}}],["map.size(transaction.uco_transf",{"_index":2157,"title":{},"content":{"405":{}}}],["map.values(key1",{"_index":2536,"title":{},"content":{"502":{}}}],["map[\"properti",{"_index":2065,"title":{},"content":{"390":{}}}],["map[key",{"_index":2534,"title":{},"content":{"501":{}}}],["marathon",{"_index":3215,"title":{},"content":{"688":{}}}],["markdown",{"_index":2755,"title":{},"content":{"603":{},"604":{},"605":{}}}],["market",{"_index":3180,"title":{"917":{}},"content":{"685":{},"859":{},"868":{},"869":{},"870":{},"872":{},"902":{},"913":{},"928":{},"929":{},"933":{},"934":{},"936":{},"940":{}}}],["mask",{"_index":3997,"title":{},"content":{"956":{}}}],["mass",{"_index":1843,"title":{},"content":{"367":{},"659":{}}}],["master",{"_index":701,"title":{},"content":{"217":{},"220":{},"224":{},"724":{}}}],["masterse",{"_index":700,"title":{},"content":{"217":{}}}],["masterseedlen",{"_index":708,"title":{},"content":{"217":{}}}],["match",{"_index":376,"title":{},"content":{"108":{},"239":{},"275":{},"342":{},"368":{},"417":{},"511":{},"724":{},"782":{},"790":{},"803":{},"998":{}}}],["match?/2",{"_index":2569,"title":{"511":{}},"content":{}}],["materi",{"_index":1005,"title":{},"content":{"232":{},"660":{},"693":{}}}],["math",{"_index":2262,"title":{"504":{},"871":{},"872":{}},"content":{"425":{},"504":{},"948":{}}}],["math.pow(1.7",{"_index":2542,"title":{},"content":{"505":{}}}],["math.pow(2",{"_index":2541,"title":{},"content":{"505":{}}}],["math.rem",{"_index":2556,"title":{},"content":{"508":{}}}],["math.rem(10",{"_index":2555,"title":{},"content":{"508":{}}}],["math.rem(10.2",{"_index":2557,"title":{},"content":{"508":{}}}],["math.rem(2.1",{"_index":2553,"title":{},"content":{"508":{}}}],["math.sqrt(12.5",{"_index":2549,"title":{},"content":{"507":{}}}],["math.sqrt(16",{"_index":2548,"title":{},"content":{"507":{}}}],["math.trunc(8.32",{"_index":2546,"title":{},"content":{"506":{}}}],["mathemat",{"_index":2539,"title":{"873":{},"938":{}},"content":{"504":{},"724":{},"872":{},"917":{}}}],["matic",{"_index":2805,"title":{"639":{}},"content":{"619":{},"639":{}}}],["matter",{"_index":2483,"title":{},"content":{"486":{},"687":{},"808":{}}}],["max",{"_index":1359,"title":{},"content":{"275":{},"977":{},"980":{},"983":{}}}],["maxconfirm",{"_index":315,"title":{},"content":{"76":{},"977":{},"980":{},"983":{}}}],["maximum",{"_index":1997,"title":{},"content":{"379":{},"557":{},"663":{},"805":{},"893":{},"897":{},"906":{},"913":{}}}],["mb",{"_index":3625,"title":{},"content":{"811":{}}}],["mean",{"_index":1662,"title":{"613":{}},"content":{"322":{},"369":{},"384":{},"406":{},"423":{},"424":{},"559":{},"648":{},"650":{},"655":{},"712":{},"731":{},"747":{},"807":{},"815":{},"955":{}}}],["meant",{"_index":3245,"title":{},"content":{"699":{}}}],["measur",{"_index":1516,"title":{},"content":{"310":{},"728":{},"873":{},"876":{}}}],["mechan",{"_index":1563,"title":{},"content":{"314":{},"315":{},"334":{},"612":{},"661":{},"669":{},"674":{},"680":{},"695":{},"708":{},"729":{},"730":{},"739":{},"749":{},"782":{},"798":{},"856":{},"869":{},"884":{},"904":{},"929":{},"940":{},"955":{}}}],["media",{"_index":2896,"title":{},"content":{"611":{},"644":{}}}],["medium",{"_index":4009,"title":{},"content":{"956":{}}}],["meet",{"_index":2426,"title":{},"content":{"464":{},"545":{}}}],["member",{"_index":30,"title":{"4":{},"9":{},"14":{},"20":{},"23":{},"27":{},"30":{},"33":{},"39":{},"42":{},"51":{},"54":{},"57":{},"66":{},"69":{},"72":{},"85":{},"88":{},"91":{},"94":{},"97":{},"101":{},"104":{},"110":{},"157":{},"159":{},"161":{},"163":{},"165":{},"167":{},"169":{},"171":{},"173":{},"175":{},"177":{},"179":{},"181":{},"183":{},"185":{},"187":{},"189":{},"191":{},"193":{},"195":{}},"content":{"320":{},"344":{},"705":{},"727":{}}}],["memori",{"_index":1100,"title":{"345":{}},"content":{"242":{},"243":{},"246":{},"249":{},"311":{},"312":{},"315":{},"316":{},"317":{},"319":{},"345":{},"354":{}}}],["memtableload",{"_index":1823,"title":{},"content":{"354":{}}}],["mention",{"_index":548,"title":{},"content":{"204":{},"224":{},"315":{},"368":{},"760":{},"782":{}}}],["menu",{"_index":2649,"title":{"832":{},"879":{}},"content":{"530":{},"811":{},"812":{},"813":{},"814":{},"832":{},"833":{},"843":{},"845":{},"852":{},"856":{},"879":{},"880":{},"881":{},"888":{},"896":{}}}],["merchant",{"_index":1880,"title":{},"content":{"371":{},"687":{}}}],["merg",{"_index":1506,"title":{"310":{}},"content":{"310":{},"311":{},"604":{}}}],["mermaid",{"_index":2778,"title":{},"content":{"605":{}}}],["mermaidsequencediagram",{"_index":2780,"title":{},"content":{"605":{}}}],["mesh",{"_index":3378,"title":{},"content":{"729":{}}}],["messag",{"_index":171,"title":{"359":{},"362":{}},"content":{"31":{},"239":{},"322":{},"327":{},"359":{},"360":{},"361":{},"362":{},"377":{},"395":{},"403":{},"409":{},"545":{},"644":{},"661":{},"693":{},"715":{},"718":{},"727":{},"749":{},"837":{}}}],["messageenvelop",{"_index":1815,"title":{},"content":{"362":{}}}],["messengerdiscussion.h",{"_index":2994,"title":{},"content":{"658":{}}}],["messengerdiscussion.lock",{"_index":2995,"title":{},"content":{"658":{}}}],["metadata",{"_index":247,"title":{},"content":{"58":{},"143":{},"315":{},"671":{},"672":{},"805":{}}}],["meteo.com/v1/archive?latitude=#{lat}&longitude=#{long}&start_date=#{start_date}&end_date=#{end_date}&hourly=temperature_2m",{"_index":1965,"title":{},"content":{"378":{}}}],["method",{"_index":519,"title":{"965":{}},"content":{"204":{},"461":{},"464":{},"465":{},"619":{},"660":{},"683":{},"692":{},"694":{},"711":{},"727":{},"728":{},"762":{},"823":{},"837":{},"950":{},"954":{},"956":{},"963":{},"965":{},"1002":{}}}],["methodolog",{"_index":3757,"title":{},"content":{"872":{},"928":{}}}],["metric",{"_index":1673,"title":{},"content":{"322":{},"901":{},"913":{}}}],["migrat",{"_index":1873,"title":{"587":{},"646":{},"648":{},"649":{},"651":{}},"content":{"369":{},"584":{},"585":{},"586":{},"587":{},"588":{},"648":{},"649":{},"650":{},"651":{},"652":{},"724":{}}}],["mike",{"_index":2495,"title":{},"content":{"488":{}}}],["mileston",{"_index":3767,"title":{},"content":{"881":{}}}],["million",{"_index":2914,"title":{},"content":{"612":{},"685":{},"881":{}}}],["min",{"_index":3392,"title":{},"content":{"734":{}}}],["mind",{"_index":2040,"title":{},"content":{"385":{},"859":{},"953":{}}}],["mine",{"_index":1701,"title":{"323":{}},"content":{"323":{},"353":{},"662":{},"700":{},"709":{},"715":{},"781":{}}}],["miner",{"_index":1848,"title":{},"content":{"367":{},"370":{},"545":{},"678":{},"680":{},"685":{},"759":{}}}],["miner'",{"_index":3253,"title":{},"content":{"701":{}}}],["minim",{"_index":3229,"title":{},"content":{"695":{},"727":{},"872":{}}}],["minimum",{"_index":1631,"title":{},"content":{"279":{},"535":{},"696":{},"700":{},"749":{},"861":{},"868":{},"906":{},"913":{},"914":{}}}],["mint",{"_index":107,"title":{},"content":{"18":{},"82":{},"86":{},"98":{},"125":{},"149":{},"340":{},"612":{},"632":{},"648":{},"700":{},"755":{},"758":{},"760":{},"761":{},"767":{},"825":{}}}],["mint_reward",{"_index":3491,"title":{"767":{}},"content":{}}],["minting'",{"_index":3437,"title":{},"content":{"756":{}}}],["minu",{"_index":3684,"title":{},"content":{"841":{}}}],["minut",{"_index":1763,"title":{},"content":{"346":{},"534":{},"535":{},"745":{},"768":{}}}],["mismanag",{"_index":3715,"title":{},"content":{"860":{}}}],["mismatch",{"_index":3417,"title":{},"content":{"749":{}}}],["miss",{"_index":1195,"title":{},"content":{"261":{},"377":{},"560":{},"604":{},"648":{},"722":{},"739":{},"740":{}}}],["mission",{"_index":3840,"title":{},"content":{"904":{}}}],["misus",{"_index":3991,"title":{},"content":{"955":{}}}],["misusag",{"_index":1858,"title":{},"content":{"368":{}}}],["mitig",{"_index":3713,"title":{},"content":{"860":{},"872":{},"953":{}}}],["mix",{"_index":2725,"title":{},"content":{"563":{},"955":{}}}],["mnemon",{"_index":2981,"title":{},"content":{"658":{},"951":{},"954":{}}}],["mnft",{"_index":3447,"title":{},"content":{"759":{},"761":{}}}],["mobil",{"_index":501,"title":{"609":{},"623":{}},"content":{"204":{},"206":{},"232":{},"951":{},"953":{},"955":{},"956":{},"963":{}}}],["mock",{"_index":2666,"title":{"546":{}},"content":{"540":{},"542":{},"546":{},"547":{},"548":{},"555":{},"556":{},"560":{}}}],["mode",{"_index":643,"title":{},"content":{"216":{},"217":{},"263":{},"559":{},"564":{},"658":{},"713":{},"849":{},"850":{},"956":{}}}],["mode.sym",{"_index":1318,"title":{},"content":{"269":{}}}],["model",{"_index":1386,"title":{"934":{}},"content":{"284":{},"346":{},"367":{},"368":{},"630":{},"674":{},"701":{},"736":{},"755":{},"781":{},"824":{},"859":{},"868":{},"872":{},"873":{},"916":{},"928":{},"933":{},"934":{},"938":{},"941":{}}}],["modern",{"_index":1790,"title":{},"content":{"359":{},"801":{},"953":{}}}],["modif",{"_index":2591,"title":{},"content":{"517":{},"550":{},"604":{},"812":{}}}],["modifi",{"_index":1244,"title":{"369":{}},"content":{"269":{},"367":{},"545":{},"604":{},"616":{},"636":{},"648":{},"688":{}}}],["modul",{"_index":1124,"title":{"425":{},"426":{},"429":{},"444":{},"447":{},"460":{},"466":{},"474":{},"480":{},"495":{},"504":{},"509":{},"513":{},"518":{},"526":{},"528":{}},"content":{"250":{},"346":{},"354":{},"389":{},"390":{},"392":{},"393":{},"400":{},"422":{},"426":{},"429":{},"444":{},"447":{},"450":{},"460":{},"466":{},"474":{},"480":{},"495":{},"504":{},"509":{},"513":{},"518":{},"526":{},"528":{},"550":{},"677":{},"679":{},"704":{},"727":{}}}],["module.funct",{"_index":2092,"title":{},"content":{"394":{}}}],["module.function(arg1",{"_index":2089,"title":{},"content":{"394":{}}}],["modulo",{"_index":2561,"title":{},"content":{"508":{}}}],["moment",{"_index":2826,"title":{},"content":{"615":{},"623":{},"635":{},"946":{}}}],["monitor",{"_index":1153,"title":{},"content":{"255":{},"717":{}}}],["monopoli",{"_index":3204,"title":{},"content":{"687":{}}}],["month",{"_index":2205,"title":{},"content":{"420":{},"535":{},"792":{},"881":{},"885":{}}}],["more",{"_index":582,"title":{"652":{}},"content":{"206":{},"223":{},"239":{},"253":{},"263":{},"264":{},"309":{},"312":{},"320":{},"347":{},"392":{},"403":{},"421":{},"427":{},"465":{},"475":{},"476":{},"542":{},"612":{},"664":{},"670":{},"674":{},"678":{},"687":{},"695":{},"696":{},"710":{},"724":{},"727":{},"750":{},"755":{},"782":{},"792":{},"793":{},"875":{},"889":{},"894":{},"913":{},"917":{},"921":{},"949":{},"954":{},"963":{},"1002":{}}}],["moreov",{"_index":2815,"title":{},"content":{"619":{},"751":{}}}],["morpholog",{"_index":3348,"title":{},"content":{"728":{}}}],["mostli",{"_index":244,"title":{},"content":{"61":{},"137":{},"390":{},"947":{}}}],["motiv",{"_index":3010,"title":{"660":{},"789":{}},"content":{"790":{}}}],["move",{"_index":767,"title":{},"content":{"218":{},"219":{},"268":{},"315":{},"686":{},"762":{},"898":{},"907":{},"910":{},"914":{},"953":{}}}],["movement",{"_index":181,"title":{},"content":{"40":{},"86":{},"401":{},"560":{},"666":{},"734":{},"737":{},"782":{},"913":{},"923":{}}}],["movementsaddress",{"_index":349,"title":{},"content":{"89":{}}}],["msb",{"_index":1232,"title":{},"content":{"268":{}}}],["msg",{"_index":1797,"title":{},"content":{"360":{}}}],["msgpack",{"_index":1810,"title":{},"content":{"361":{}}}],["much",{"_index":1479,"title":{"651":{}},"content":{"308":{},"384":{},"947":{}}}],["muco",{"_index":3489,"title":{},"content":{"766":{},"767":{}}}],["multi",{"_index":3156,"title":{},"content":{"690":{},"714":{},"727":{}}}],["multicast",{"_index":1788,"title":{},"content":{"353":{},"359":{},"661":{},"714":{},"719":{},"727":{}}}],["multichain",{"_index":914,"title":{},"content":{"220":{}}}],["multidimension",{"_index":3299,"title":{},"content":{"739":{}}}],["multimedia",{"_index":1041,"title":{},"content":{"239":{}}}],["multipl",{"_index":1157,"title":{"537":{}},"content":{"256":{},"257":{},"309":{},"310":{},"321":{},"322":{},"327":{},"332":{},"360":{},"378":{},"532":{},"537":{},"546":{},"645":{},"670":{},"674":{},"696":{},"700":{},"705":{},"727":{},"734":{},"739":{},"806":{},"834":{},"912":{},"951":{}}}],["multiplex",{"_index":1791,"title":{"360":{}},"content":{"359":{},"360":{},"362":{}}}],["multireferenti",{"_index":3364,"title":{},"content":{"728":{}}}],["multise",{"_index":2850,"title":{},"content":{"615":{},"635":{}}}],["multitud",{"_index":3148,"title":{},"content":{"682":{}}}],["mumbai",{"_index":2862,"title":{"638":{}},"content":{"638":{}}}],["mustard",{"_index":1930,"title":{},"content":{"377":{}}}],["mustard_vot",{"_index":1943,"title":{},"content":{"377":{}}}],["mutabl",{"_index":2047,"title":{},"content":{"388":{},"404":{},"727":{}}}],["mutat",{"_index":1535,"title":{},"content":{"312":{},"422":{},"424":{},"449":{},"450":{},"451":{},"452":{},"454":{},"456":{},"458":{},"1003":{}}}],["my_websit",{"_index":3584,"title":{},"content":{"803":{}}}],["myamazingcontract",{"_index":2136,"title":{},"content":{"401":{}}}],["myimageaeweb",{"_index":2801,"title":{},"content":{"601":{}}}],["mynewservic",{"_index":1785,"title":{},"content":{"350":{}}}],["myseedphras",{"_index":2800,"title":{},"content":{"601":{},"819":{},"820":{}}}],["n",{"_index":993,"title":{},"content":{"227":{},"232":{},"233":{},"379":{},"388":{}}}],["name",{"_index":249,"title":{"399":{},"533":{},"599":{},"608":{},"798":{}},"content":{"58":{},"143":{},"180":{},"227":{},"314":{},"316":{},"321":{},"381":{},"384":{},"387":{},"388":{},"392":{},"399":{},"403":{},"448":{},"533":{},"537":{},"648":{},"655":{},"659":{},"665":{},"758":{},"759":{},"761":{},"797":{},"798":{},"799":{},"811":{},"855":{},"955":{},"974":{},"979":{},"982":{},"988":{},"991":{},"995":{},"997":{},"1000":{}}}],["name}#{new_lin",{"_index":2056,"title":{},"content":{"388":{}}}],["nano",{"_index":511,"title":{},"content":{"204":{},"206":{}}}],["narr",{"_index":3209,"title":{},"content":{"687":{}}}],["nativ",{"_index":2936,"title":{"755":{}},"content":{"648":{},"713":{},"754":{},"755":{},"785":{},"797":{},"826":{},"870":{},"897":{},"906":{},"913":{},"937":{},"953":{}}}],["natur",{"_index":3523,"title":{},"content":{"792":{}}}],["navig",{"_index":3691,"title":{"899":{}},"content":{"845":{},"849":{},"850":{},"890":{}}}],["nb",{"_index":992,"title":{},"content":{"227":{},"319":{},"322":{},"696":{}}}],["nbconfirm",{"_index":316,"title":{},"content":{"76":{},"977":{},"980":{},"983":{}}}],["near",{"_index":2709,"title":{},"content":{"554":{},"683":{}}}],["nearbi",{"_index":3377,"title":{},"content":{"729":{}}}],["nearest",{"_index":419,"title":{},"content":{"126":{},"712":{}}}],["nearestendpoint",{"_index":167,"title":{"126":{}},"content":{"36":{},"126":{}}}],["necessari",{"_index":2796,"title":{},"content":{"601":{},"645":{},"648":{},"781":{},"782":{},"803":{},"811":{},"827":{},"837":{},"862":{},"897":{},"906":{},"909":{},"913":{},"956":{}}}],["necessit",{"_index":3826,"title":{},"content":{"898":{},"907":{}}}],["need",{"_index":657,"title":{},"content":{"216":{},"217":{},"239":{},"240":{},"250":{},"252":{},"256":{},"309":{},"310":{},"311":{},"312":{},"313":{},"315":{},"319":{},"320":{},"336":{},"345":{},"350":{},"369":{},"370":{},"383":{},"400":{},"410":{},"413":{},"414":{},"438":{},"442":{},"443":{},"527":{},"534":{},"535":{},"540":{},"547":{},"616":{},"636":{},"638":{},"648":{},"651":{},"670":{},"674":{},"682":{},"685":{},"687":{},"724":{},"739":{},"741":{},"743":{},"755":{},"770":{},"781":{},"785":{},"787":{},"790":{},"792":{},"798":{},"799":{},"800":{},"803":{},"820":{},"845":{},"847":{},"848":{},"852":{},"868":{},"894":{},"898":{},"902":{},"907":{},"910":{},"914":{},"933":{},"947":{},"950":{},"955":{},"956":{}}}],["needl",{"_index":2469,"title":{},"content":{"483":{},"520":{}}}],["neg",{"_index":461,"title":{},"content":{"172":{}}}],["neighbor",{"_index":3274,"title":{},"content":{"712":{},"713":{}}}],["nest",{"_index":1553,"title":{"751":{}},"content":{"313":{},"390":{}}}],["network",{"_index":28,"title":{"259":{},"615":{},"635":{},"685":{},"698":{},"716":{},"733":{},"764":{},"765":{},"766":{},"767":{},"768":{},"769":{},"770":{},"771":{},"772":{}},"content":{"3":{},"34":{},"43":{},"73":{},"111":{},"114":{},"117":{},"120":{},"122":{},"123":{},"127":{},"128":{},"130":{},"131":{},"134":{},"135":{},"136":{},"138":{},"140":{},"141":{},"144":{},"146":{},"147":{},"150":{},"152":{},"164":{},"194":{},"236":{},"238":{},"239":{},"250":{},"258":{},"259":{},"315":{},"319":{},"321":{},"324":{},"329":{},"338":{},"340":{},"343":{},"353":{},"354":{},"355":{},"361":{},"362":{},"545":{},"562":{},"566":{},"615":{},"619":{},"624":{},"635":{},"638":{},"639":{},"659":{},"660":{},"661":{},"662":{},"663":{},"664":{},"667":{},"671":{},"675":{},"678":{},"682":{},"688":{},"695":{},"696":{},"698":{},"700":{},"704":{},"705":{},"706":{},"707":{},"710":{},"711":{},"712":{},"713":{},"714":{},"716":{},"717":{},"718":{},"719":{},"720":{},"721":{},"722":{},"724":{},"725":{},"727":{},"728":{},"729":{},"730":{},"733":{},"734":{},"735":{},"736":{},"738":{},"740":{},"745":{},"749":{},"763":{},"764":{},"780":{},"788":{},"791":{},"792":{},"803":{},"820":{},"848":{},"956":{}}}],["network_issu",{"_index":23,"title":{},"content":{"2":{}}}],["networkarcheth",{"_index":3021,"title":{},"content":{"661":{}}}],["networkfe",{"_index":3480,"title":{},"content":{"782":{}}}],["networkpatch",{"_index":201,"title":{},"content":{"43":{},"353":{}}}],["networktransact",{"_index":302,"title":{"128":{}},"content":{"75":{},"128":{},"179":{},"193":{}}}],["networktransactions.pag",{"_index":423,"title":{},"content":{"129":{}}}],["networktransactions.typ",{"_index":424,"title":{},"content":{"129":{}}}],["never",{"_index":1534,"title":{},"content":{"312":{},"728":{},"758":{},"956":{}}}],["nevertheless",{"_index":1549,"title":{},"content":{"313":{},"737":{}}}],["new",{"_index":477,"title":{"724":{}},"content":{"196":{},"235":{},"243":{},"246":{},"249":{},"251":{},"260":{},"270":{},"271":{},"277":{},"295":{},"310":{},"313":{},"314":{},"315":{},"322":{},"336":{},"339":{},"340":{},"341":{},"343":{},"346":{},"348":{},"350":{},"359":{},"367":{},"368":{},"369":{},"371":{},"374":{},"382":{},"388":{},"400":{},"402":{},"412":{},"418":{},"421":{},"451":{},"485":{},"486":{},"487":{},"517":{},"550":{},"632":{},"648":{},"659":{},"662":{},"663":{},"666":{},"674":{},"680":{},"683":{},"688":{},"690":{},"699":{},"700":{},"704":{},"705":{},"706":{},"708":{},"710":{},"714":{},"716":{},"721":{},"724":{},"732":{},"735":{},"736":{},"737":{},"741":{},"745":{},"748":{},"754":{},"757":{},"788":{},"798":{},"802":{},"807":{},"811":{},"812":{},"825":{},"826":{},"848":{},"853":{},"855":{},"856":{},"881":{},"884":{},"886":{},"887":{},"894":{},"898":{},"904":{},"907":{},"928":{},"930":{},"939":{},"998":{}}}],["new/0",{"_index":2516,"title":{"496":{}},"content":{}}],["new_count",{"_index":2717,"title":{},"content":{"550":{}}}],["new_index",{"_index":2178,"title":{},"content":{"407":{}}}],["new_lin",{"_index":2055,"title":{},"content":{"388":{}}}],["new_pric",{"_index":2121,"title":{},"content":{"400":{}}}],["newarcheth",{"_index":1444,"title":{},"content":{"295":{}}}],["newer",{"_index":3142,"title":{},"content":{"680":{}}}],["newli",{"_index":2795,"title":{"601":{}},"content":{}}],["newykindex",{"_index":1442,"title":{},"content":{"295":{}}}],["next",{"_index":714,"title":{"261":{},"400":{}},"content":{"217":{},"219":{},"252":{},"257":{},"258":{},"260":{},"271":{},"274":{},"275":{},"277":{},"321":{},"322":{},"367":{},"368":{},"371":{},"406":{},"415":{},"421":{},"424":{},"449":{},"450":{},"451":{},"452":{},"454":{},"456":{},"458":{},"544":{},"545":{},"659":{},"661":{},"669":{},"674":{},"705":{},"741":{},"747":{},"748":{},"781":{},"806":{},"835":{},"906":{},"913":{}}}],["next.cod",{"_index":2165,"title":{},"content":{"406":{}}}],["next.timestamp",{"_index":2167,"title":{},"content":{"407":{}}}],["nextkey",{"_index":1349,"title":{},"content":{"271":{},"272":{},"274":{},"275":{}}}],["nextkeyhandl",{"_index":1345,"title":{},"content":{"271":{}}}],["nextkeyindex",{"_index":1346,"title":{},"content":{"271":{}}}],["nfc",{"_index":3985,"title":{},"content":{"955":{}}}],["nft",{"_index":494,"title":{"601":{}},"content":{"204":{},"454":{},"558":{},"759":{},"761":{},"762":{},"951":{}}}],["nft1",{"_index":2327,"title":{},"content":{"443":{}}}],["nft2",{"_index":2328,"title":{},"content":{"443":{}}}],["nibbl",{"_index":3405,"title":{},"content":{"746":{}}}],["nice",{"_index":2757,"title":{},"content":{"603":{}}}],["nicer",{"_index":3559,"title":{},"content":{"798":{}}}],["nil",{"_index":1903,"title":{},"content":{"375":{},"381":{},"434":{},"436":{},"463":{},"464":{},"465":{},"481":{},"498":{},"514":{}}}],["nist",{"_index":3090,"title":{},"content":{"672":{},"694":{}}}],["nistp256",{"_index":996,"title":{},"content":{"228":{}}}],["node",{"_index":134,"title":{"43":{},"134":{},"260":{},"263":{},"264":{},"333":{},"338":{},"339":{},"352":{},"357":{},"358":{},"733":{},"764":{}},"content":{"21":{},"43":{},"45":{},"61":{},"126":{},"134":{},"135":{},"137":{},"157":{},"159":{},"169":{},"171":{},"177":{},"187":{},"189":{},"201":{},"204":{},"232":{},"237":{},"238":{},"239":{},"242":{},"249":{},"251":{},"252":{},"253":{},"255":{},"256":{},"257":{},"258":{},"259":{},"260":{},"261":{},"262":{},"263":{},"264":{},"278":{},"279":{},"281":{},"315":{},"319":{},"321":{},"322":{},"323":{},"324":{},"327":{},"329":{},"331":{},"332":{},"333":{},"334":{},"336":{},"338":{},"339":{},"340":{},"341":{},"342":{},"346":{},"348":{},"353":{},"354":{},"355":{},"356":{},"357":{},"358":{},"360":{},"362":{},"368":{},"424":{},"464":{},"470":{},"527":{},"545":{},"560":{},"630":{},"660":{},"661":{},"662":{},"663":{},"664":{},"665":{},"666":{},"678":{},"680":{},"682":{},"688":{},"695":{},"696":{},"698":{},"700":{},"704":{},"705":{},"708":{},"709":{},"710":{},"712":{},"713":{},"714":{},"715":{},"716":{},"717":{},"719":{},"720":{},"721":{},"722":{},"732":{},"733":{},"734":{},"736":{},"737":{},"738":{},"739":{},"741":{},"745":{},"747":{},"748":{},"749":{},"750":{},"751":{},"752":{},"753":{},"763":{},"764":{},"765":{},"766":{},"770":{},"771":{},"782":{},"785":{},"786":{},"799":{},"803":{},"806":{},"807":{},"808":{},"824":{},"845":{},"956":{},"976":{}}}],["node'",{"_index":136,"title":{},"content":{"21":{},"34":{},"127":{},"678":{},"734":{},"782":{}}}],["node.author",{"_index":205,"title":{},"content":{"44":{}}}],["node.authorizationd",{"_index":204,"title":{},"content":{"44":{}}}],["node.avail",{"_index":206,"title":{},"content":{"44":{}}}],["node.averageavail",{"_index":207,"title":{},"content":{"44":{}}}],["node.enrollmentd",{"_index":208,"title":{},"content":{"44":{}}}],["node.firstpublickey",{"_index":209,"title":{},"content":{"44":{}}}],["node.geopatch",{"_index":210,"title":{},"content":{"44":{}}}],["node.git",{"_index":2723,"title":{},"content":{"563":{}}}],["node.ip",{"_index":211,"title":{},"content":{"44":{}}}],["node.lastpublickey",{"_index":212,"title":{},"content":{"44":{}}}],["node.networkpatch",{"_index":213,"title":{},"content":{"44":{}}}],["node.originpublickey",{"_index":214,"title":{},"content":{"44":{}}}],["node.port",{"_index":215,"title":{},"content":{"44":{}}}],["node.rewardaddress",{"_index":216,"title":{},"content":{"44":{}}}],["node_reward",{"_index":3487,"title":{"766":{}},"content":{}}],["node_shared_secret",{"_index":3485,"title":{"765":{}},"content":{}}],["nodej",{"_index":596,"title":{},"content":{"206":{},"563":{},"818":{}}}],["nodeproof",{"_index":3478,"title":{},"content":{"782":{}}}],["nodepublickey",{"_index":137,"title":{},"content":{"21":{}}}],["nomin",{"_index":3886,"title":{},"content":{"935":{}}}],["non",{"_index":12,"title":{"669":{},"759":{}},"content":{"6":{},"11":{},"28":{},"115":{},"118":{},"121":{},"124":{},"129":{},"139":{},"142":{},"145":{},"148":{},"170":{},"172":{},"199":{},"202":{},"205":{},"360":{},"441":{},"551":{},"560":{},"604":{},"633":{},"669":{},"674":{},"688":{},"692":{},"700":{},"759":{},"761":{},"782":{},"826":{},"950":{}}}],["non_fungible_token_address",{"_index":2312,"title":{},"content":{"441":{}}}],["nonc",{"_index":243,"title":{},"content":{"61":{},"136":{},"137":{},"259":{},"260":{},"264":{},"319":{},"336":{},"545":{},"560":{},"660":{},"665":{},"738":{},"848":{},"976":{}}}],["none",{"_index":1358,"title":{},"content":{"275":{}}}],["nonneginteg",{"_index":87,"title":{"172":{}},"content":{"15":{},"16":{},"73":{},"74":{},"147":{},"148":{},"172":{}}}],["normal",{"_index":2917,"title":{},"content":{"612":{}}}],["nosql",{"_index":1495,"title":{},"content":{"309":{}}}],["notat",{"_index":2518,"title":{},"content":{"496":{},"498":{}}}],["note",{"_index":683,"title":{},"content":{"217":{},"346":{},"390":{},"400":{},"512":{},"535":{},"559":{},"644":{},"658":{},"696":{},"757":{},"768":{},"782":{},"837":{},"876":{},"963":{}}}],["noth",{"_index":3172,"title":{},"content":{"694":{},"737":{},"949":{}}}],["notic",{"_index":3578,"title":{},"content":{"802":{}}}],["notif",{"_index":1602,"title":{"747":{},"752":{}},"content":{"315":{},"748":{},"750":{},"752":{},"956":{}}}],["notifi",{"_index":476,"title":{},"content":{"196":{},"198":{},"201":{},"251":{},"315":{},"464":{},"666":{},"708":{},"748":{},"750":{},"751":{},"752":{}}}],["nouc",{"_index":3696,"title":{},"content":{"848":{}}}],["nounc",{"_index":3697,"title":{},"content":{"848":{}}}],["now",{"_index":761,"title":{},"content":{"218":{},"219":{},"224":{},"264":{},"319":{},"540":{},"542":{},"544":{},"545":{},"549":{},"559":{},"648":{},"655":{},"674":{},"680":{},"682":{},"687":{},"747":{},"762":{},"793":{},"823":{},"826":{},"881":{},"886":{}}}],["now/0",{"_index":2623,"title":{"527":{}},"content":{}}],["nowaday",{"_index":3427,"title":{},"content":{"754":{},"789":{}}}],["npm",{"_index":602,"title":{},"content":{"207":{},"563":{}}}],["nuclear",{"_index":3059,"title":{},"content":{"664":{}}}],["null",{"_index":13,"title":{},"content":{"6":{},"11":{},"115":{},"118":{},"121":{},"124":{},"129":{},"139":{},"142":{},"145":{},"148":{},"162":{},"199":{},"202":{},"216":{},"217":{},"218":{},"272":{}}}],["number",{"_index":253,"title":{},"content":{"58":{},"143":{},"162":{},"172":{},"178":{},"223":{},"224":{},"279":{},"281":{},"315":{},"317":{},"323":{},"330":{},"333":{},"375":{},"377":{},"390":{},"421":{},"423":{},"427":{},"452":{},"454":{},"482":{},"497":{},"505":{},"506":{},"507":{},"508":{},"519":{},"521":{},"522":{},"685":{},"691":{},"696":{},"700":{},"718":{},"727":{},"751":{},"890":{},"893":{},"901":{},"909":{},"954":{},"955":{},"956":{},"976":{},"977":{},"980":{},"983":{},"988":{},"991":{},"997":{}}}],["number_of_tokens(amount_send",{"_index":1910,"title":{},"content":{"375":{}}}],["number_of_tokens(uco_amount",{"_index":1916,"title":{},"content":{"375":{}}}],["number_of_uco_s",{"_index":1906,"title":{},"content":{"375":{}}}],["numberofsecondsremainingutilendofyear",{"_index":3920,"title":{},"content":{"947":{}}}],["numer",{"_index":457,"title":{},"content":{"170":{}}}],["o",{"_index":3178,"title":{},"content":{"694":{}}}],["o(1",{"_index":2485,"title":{},"content":{"486":{}}}],["o(n",{"_index":2486,"title":{},"content":{"486":{}}}],["o_{key",{"_index":693,"title":{},"content":{"217":{}}}],["o_{priv",{"_index":927,"title":{},"content":{"221":{},"225":{}}}],["o_{pub",{"_index":928,"title":{},"content":{"221":{},"225":{}}}],["object",{"_index":32,"title":{"580":{}},"content":{"4":{},"14":{},"16":{},"20":{},"23":{},"25":{},"27":{},"29":{},"30":{},"33":{},"38":{},"39":{},"41":{},"42":{},"47":{},"50":{},"51":{},"53":{},"54":{},"57":{},"59":{},"66":{},"68":{},"69":{},"72":{},"74":{},"80":{},"85":{},"88":{},"91":{},"94":{},"96":{},"97":{},"101":{},"104":{},"109":{},"110":{},"113":{},"116":{},"122":{},"125":{},"127":{},"130":{},"133":{},"135":{},"137":{},"140":{},"143":{},"146":{},"149":{},"152":{},"154":{},"157":{},"159":{},"161":{},"163":{},"165":{},"167":{},"169":{},"171":{},"175":{},"177":{},"181":{},"183":{},"185":{},"187":{},"189":{},"191":{},"195":{},"197":{},"200":{},"203":{},"269":{},"276":{},"287":{},"289":{},"294":{},"295":{},"301":{},"303":{},"322":{},"577":{},"578":{},"579":{},"580":{},"581":{},"582":{},"583":{},"604":{},"727":{},"786":{},"956":{},"976":{},"997":{},"1003":{}}}],["objectattribut",{"_index":1272,"title":{},"content":{"269":{}}}],["observ",{"_index":3984,"title":{},"content":{"955":{}}}],["obtain",{"_index":1684,"title":{},"content":{"321":{},"656":{},"664":{},"728":{},"826":{},"894":{}}}],["occas",{"_index":3300,"title":{},"content":{"739":{}}}],["occur",{"_index":2885,"title":{"641":{}},"content":{"860":{},"906":{},"913":{}}}],["offer",{"_index":1896,"title":{"375":{}},"content":{"674":{},"689":{},"724":{},"747":{},"860":{},"861":{},"876":{},"884":{},"890":{},"899":{},"900":{},"904":{},"928":{},"930":{},"933":{},"941":{},"953":{},"956":{},"957":{}}}],["offic",{"_index":3540,"title":{},"content":{"793":{}}}],["offici",{"_index":541,"title":{},"content":{"204":{},"364":{},"365":{},"366":{},"658":{},"900":{}}}],["offlin",{"_index":506,"title":{},"content":{"204":{},"256":{},"332":{},"739":{},"956":{}}}],["offset",{"_index":1462,"title":{},"content":{"303":{},"305":{},"307":{},"315":{},"316":{}}}],["oin",{"_index":3316,"title":{},"content":{"725":{}}}],["old",{"_index":2150,"title":{},"content":{"403":{},"656":{}}}],["omit",{"_index":2074,"title":{},"content":{"390":{}}}],["ommit",{"_index":2163,"title":{},"content":{"406":{}}}],["omp",{"_index":1641,"title":{},"content":{"281":{}}}],["on",{"_index":517,"title":{},"content":{"204":{},"251":{},"253":{},"269":{},"277":{},"288":{},"315":{},"316":{},"320":{},"369":{},"378":{},"379":{},"382":{},"392":{},"403":{},"407":{},"417":{},"458":{},"545":{},"547":{},"645":{},"661":{},"669":{},"682":{},"687":{},"688":{},"694":{},"701":{},"706":{},"727":{},"728":{},"743":{},"745":{},"775":{},"778":{},"790":{},"805":{},"815":{},"820":{},"823":{},"845":{},"848":{},"854":{},"856":{},"868":{},"886":{},"893":{},"898":{},"902":{},"906":{},"913":{},"924":{},"945":{},"953":{},"956":{},"965":{}}}],["onc",{"_index":557,"title":{},"content":{"204":{},"206":{},"219":{},"224":{},"236":{},"260":{},"261":{},"295":{},"315":{},"323":{},"330":{},"374":{},"377":{},"464":{},"545":{},"655":{},"656":{},"666":{},"678":{},"692":{},"693":{},"720":{},"722":{},"725":{},"741":{},"748":{},"752":{},"771":{},"781":{},"792":{},"793":{},"806":{},"811":{},"812":{},"813":{},"814":{},"818":{},"823":{},"841":{},"848":{},"894":{},"906":{},"909":{},"913":{},"960":{}}}],["onchain",{"_index":618,"title":{},"content":{"209":{},"219":{},"220":{},"221":{},"225":{},"232":{},"234":{},"573":{},"574":{},"575":{}}}],["one'",{"_index":3145,"title":{},"content":{"682":{}}}],["ongo",{"_index":3678,"title":{},"content":{"837":{}}}],["onlin",{"_index":2647,"title":{},"content":{"530":{},"693":{},"815":{},"956":{}}}],["open",{"_index":1818,"title":{"658":{},"689":{}},"content":{"353":{},"540":{},"545":{},"549":{},"602":{},"645":{},"648":{},"686":{},"689":{},"725":{},"785":{},"861":{},"890":{},"935":{},"953":{},"956":{},"957":{}}}],["oper",{"_index":175,"title":{},"content":{"37":{},"40":{},"108":{},"217":{},"269":{},"281":{},"310":{},"367":{},"371":{},"623":{},"648":{},"663":{},"677":{},"680":{},"719":{},"727":{},"728":{},"782":{},"799":{},"860":{},"872":{},"890":{},"898":{},"902":{},"907":{},"910":{},"913":{},"914":{},"926":{},"933":{},"934":{},"1003":{}}}],["operationsuco",{"_index":3474,"title":{},"content":{"782":{}}}],["opportun",{"_index":3228,"title":{},"content":{"689":{},"859":{},"933":{}}}],["opposit",{"_index":3384,"title":{},"content":{"735":{}}}],["opt",{"_index":2100,"title":{},"content":{"395":{}}}],["optim",{"_index":1547,"title":{},"content":{"313":{},"361":{},"661":{},"727":{},"830":{},"877":{},"928":{}}}],["option",{"_index":1403,"title":{"601":{},"839":{}},"content":{"287":{},"390":{},"394":{},"403":{},"454":{},"547":{},"558":{},"811":{},"832":{},"833":{},"835":{},"879":{},"893":{},"894":{},"902":{},"976":{},"988":{},"991":{},"997":{},"1000":{}}}],["optionali",{"_index":2153,"title":{},"content":{"403":{}}}],["oracl",{"_index":218,"title":{"341":{},"347":{},"410":{},"536":{},"544":{},"768":{}},"content":{"46":{},"131":{},"133":{},"196":{},"197":{},"342":{},"345":{},"346":{},"348":{},"368":{},"379":{},"398":{},"400":{},"403":{},"410":{},"411":{},"417":{},"536":{},"544":{},"610":{},"625":{},"695":{},"698":{},"708":{},"768":{},"769":{}}}],["oracle_summari",{"_index":3492,"title":{"769":{}},"content":{}}],["oraclechain",{"_index":1735,"title":{"334":{},"345":{},"346":{},"707":{}},"content":{"334":{},"341":{},"345":{},"346":{},"347":{},"367":{},"368":{},"707":{},"708":{},"709":{}}}],["oracledata",{"_index":217,"title":{"46":{},"131":{}},"content":{"46":{},"48":{},"51":{},"131":{},"133":{},"189":{},"196":{},"197":{}}}],["oracledata.servic",{"_index":221,"title":{},"content":{"47":{}}}],["oracledata.timestamp",{"_index":222,"title":{},"content":{"47":{},"132":{}}}],["oracleservic",{"_index":220,"title":{"49":{}},"content":{"46":{},"47":{},"49":{},"94":{}}}],["oracleservices.uco",{"_index":227,"title":{},"content":{"50":{}}}],["oraclesummari",{"_index":1739,"title":{"342":{}},"content":{}}],["oracleupd",{"_index":223,"title":{"196":{}},"content":{"48":{},"196":{}}}],["order",{"_index":35,"title":{},"content":{"7":{},"8":{},"144":{},"204":{},"218":{},"219":{},"224":{},"225":{},"236":{},"243":{},"246":{},"313":{},"314":{},"315":{},"317":{},"357":{},"358":{},"368":{},"371":{},"465":{},"486":{},"489":{},"490":{},"601":{},"655":{},"670":{},"671":{},"674":{},"692":{},"757":{},"761":{},"826":{},"845":{},"848":{},"917":{},"926":{},"934":{},"954":{},"956":{},"957":{},"963":{}}}],["ordinari",{"_index":3560,"title":{},"content":{"799":{}}}],["organ",{"_index":3073,"title":{},"content":{"662":{},"671":{},"688":{},"701":{},"727":{}}}],["origin",{"_index":377,"title":{"212":{},"217":{},"329":{},"670":{},"772":{}},"content":{"108":{},"209":{},"212":{},"217":{},"221":{},"230":{},"232":{},"328":{},"329":{},"330":{},"338":{},"662":{},"664":{},"670":{},"672":{},"782":{},"824":{},"835":{},"909":{},"998":{}}}],["origin_famili",{"_index":2218,"title":{},"content":{"414":{}}}],["origin_typ",{"_index":1007,"title":{},"content":{"232":{}}}],["originprivatekey",{"_index":754,"title":{},"content":{"218":{},"219":{}}}],["originpublickey",{"_index":202,"title":{},"content":{"43":{}}}],["originsignatur",{"_index":282,"title":{},"content":{"73":{},"998":{}}}],["os_perso_derive_node_with_se",{"_index":716,"title":{},"content":{"217":{}}}],["other",{"_index":1624,"title":{},"content":{"319":{},"662":{},"682":{},"763":{}}}],["otherwis",{"_index":444,"title":{},"content":{"160":{},"256":{},"268":{},"276":{},"311":{},"318":{},"427":{},"428":{},"838":{}}}],["otp",{"_index":3947,"title":{},"content":{"951":{},"955":{},"956":{}}}],["ought",{"_index":2766,"title":{},"content":{"604":{}}}],["ourselv",{"_index":3143,"title":{},"content":{"682":{}}}],["out",{"_index":1079,"title":{"794":{}},"content":{"239":{},"473":{},"680":{},"736":{},"791":{},"955":{},"956":{},"1003":{}}}],["outcom",{"_index":3848,"title":{},"content":{"909":{}}}],["outdat",{"_index":1699,"title":{},"content":{"321":{},"648":{}}}],["outer",{"_index":1217,"title":{},"content":{"267":{}}}],["outgo",{"_index":1998,"title":{},"content":{"379":{},"712":{},"715":{}}}],["outperform",{"_index":3179,"title":{},"content":{"685":{},"742":{}}}],["output",{"_index":183,"title":{},"content":{"40":{},"98":{},"123":{},"125":{},"216":{},"332":{},"333":{},"517":{},"541":{},"542":{},"547":{},"548":{},"550":{},"564":{},"605":{},"666":{},"700":{},"734":{},"781":{},"782":{}}}],["output'",{"_index":3240,"title":{},"content":{"696":{}}}],["outsid",{"_index":2077,"title":{},"content":{"392":{},"393":{},"424":{},"460":{},"630":{},"781":{},"824":{},"826":{},"876":{}}}],["over",{"_index":1136,"title":{},"content":{"252":{},"310":{},"613":{},"680":{},"705":{},"715":{},"747":{},"748":{},"753":{},"876":{},"881":{},"893":{},"900":{},"946":{},"949":{}}}],["overal",{"_index":3241,"title":{},"content":{"696":{},"753":{},"876":{},"894":{}}}],["overcom",{"_index":3005,"title":{},"content":{"659":{},"742":{}}}],["overhead",{"_index":983,"title":{},"content":{"225":{},"360":{},"742":{}}}],["overlap",{"_index":3239,"title":{},"content":{"696":{},"737":{}}}],["overload",{"_index":3418,"title":{},"content":{"749":{}}}],["overriden",{"_index":2161,"title":{},"content":{"406":{}}}],["overview",{"_index":3398,"title":{"932":{}},"content":{"743":{},"890":{},"891":{},"892":{},"894":{},"902":{}}}],["overwritten",{"_index":866,"title":{},"content":{"219":{}}}],["ovh",{"_index":2788,"title":{},"content":{"599":{},"800":{}}}],["own",{"_index":3203,"title":{},"content":{"687":{}}}],["owner",{"_index":1857,"title":{},"content":{"368":{},"701":{},"727":{},"820":{}}}],["ownership",{"_index":61,"title":{"52":{},"560":{}},"content":{"14":{},"28":{},"29":{},"52":{},"58":{},"59":{},"143":{},"167":{},"230":{},"336":{},"400":{},"418":{},"456":{},"545":{},"560":{},"687":{},"754":{},"760":{},"778":{},"782":{},"802":{},"848":{},"976":{}}}],["ownership.authorizedpublickey",{"_index":231,"title":{},"content":{"53":{}}}],["ownership.secret",{"_index":232,"title":{},"content":{"53":{}}}],["ownership_length",{"_index":845,"title":{},"content":{"219":{}}}],["p1",{"_index":629,"title":{},"content":{"212":{},"213":{},"214":{},"216":{},"217":{},"218":{},"219":{}}}],["p2",{"_index":631,"title":{},"content":{"212":{},"213":{},"214":{},"216":{},"217":{},"218":{},"219":{}}}],["p2p",{"_index":1045,"title":{"255":{},"351":{},"354":{},"710":{}},"content":{"239":{},"251":{},"256":{},"257":{},"260":{},"319":{},"327":{},"332":{},"353":{},"354":{},"355":{},"359":{},"362":{},"660":{},"661":{},"665":{},"710":{},"711":{},"716":{},"717":{},"719":{},"727":{},"734":{},"738":{},"782":{},"789":{},"791":{},"821":{}}}],["p2pavail",{"_index":80,"title":{"174":{}},"content":{"15":{},"16":{},"174":{}}}],["packag",{"_index":1831,"title":{},"content":{"364":{},"805":{},"843":{},"957":{},"960":{}}}],["pad",{"_index":4000,"title":{},"content":{"956":{}}}],["page",{"_index":421,"title":{},"content":{"128":{},"150":{},"394":{},"603":{},"655":{},"782":{},"793":{},"800":{},"805":{},"843":{},"844":{},"858":{},"888":{},"953":{},"956":{}}}],["pagin",{"_index":3411,"title":{},"content":{"747":{}}}],["pagingaddress",{"_index":428,"title":{},"content":{"144":{}}}],["pagingoffset",{"_index":86,"title":{},"content":{"15":{},"73":{},"123":{},"147":{}}}],["pair",{"_index":931,"title":{"904":{}},"content":{"221":{},"314":{},"316":{},"349":{},"678":{},"861":{},"881":{},"884":{},"889":{},"890":{},"897":{},"900":{},"906":{},"913":{},"964":{}}}],["panel",{"_index":2659,"title":{},"content":{"540":{},"541":{},"545":{},"546":{},"549":{},"551":{}}}],["paradigm",{"_index":938,"title":{},"content":{"223":{},"735":{}}}],["parallel",{"_index":1642,"title":{},"content":{"281":{}}}],["param",{"_index":685,"title":{},"content":{"217":{},"762":{}}}],["paramet",{"_index":639,"title":{},"content":{"216":{},"269":{},"270":{},"271":{},"274":{},"399":{},"413":{},"417":{},"427":{},"428":{},"430":{},"431":{},"432":{},"434":{},"435":{},"436":{},"437":{},"438":{},"439":{},"441":{},"442":{},"443":{},"445":{},"446":{},"448":{},"449":{},"450":{},"451":{},"452":{},"454":{},"456":{},"458":{},"464":{},"465":{},"468":{},"471":{},"472":{},"473":{},"475":{},"476":{},"477":{},"478":{},"479":{},"481":{},"482":{},"483":{},"484":{},"485":{},"486":{},"487":{},"488":{},"489":{},"490":{},"491":{},"492":{},"493":{},"494":{},"497":{},"498":{},"499":{},"500":{},"501":{},"502":{},"503":{},"505":{},"506":{},"507":{},"508":{},"510":{},"511":{},"512":{},"515":{},"516":{},"517":{},"519":{},"520":{},"521":{},"522":{},"523":{},"524":{},"525":{},"529":{},"684":{},"806":{},"820":{},"890":{}}}],["parameters.eccdetail",{"_index":1314,"title":{},"content":{"269":{}}}],["params:coin_typ",{"_index":813,"title":{},"content":{"218":{}}}],["parent",{"_index":1268,"title":{},"content":{"269":{},"388":{}}}],["parent'",{"_index":2051,"title":{},"content":{"388":{}}}],["parenthesi",{"_index":2091,"title":{},"content":{"394":{}}}],["pariti",{"_index":3651,"title":{},"content":{"825":{},"826":{}}}],["pars",{"_index":412,"title":{},"content":{"119":{},"155":{},"164":{},"176":{},"194":{},"336":{},"348":{},"349":{},"534":{},"806":{}}}],["parse/1",{"_index":2450,"title":{"478":{}},"content":{}}],["part",{"_index":777,"title":{},"content":{"218":{},"219":{},"239":{},"270":{},"277":{},"321":{},"322":{},"407":{},"532":{},"546":{},"664":{},"678":{},"701":{},"705":{},"728":{},"787":{},"823":{},"935":{},"963":{}}}],["parti",{"_index":622,"title":{},"content":{"209":{},"239":{},"682":{},"692":{},"693":{},"956":{}}}],["particip",{"_index":2921,"title":{"927":{},"935":{}},"content":{"612":{},"705":{},"710":{},"716":{},"861":{},"876":{},"890":{},"894":{},"900":{},"902":{},"926":{},"927":{},"928":{},"929":{},"930":{},"937":{},"941":{}}}],["particular",{"_index":3123,"title":{"697":{}},"content":{"678":{},"727":{},"901":{}}}],["partit",{"_index":1607,"title":{},"content":{"316":{}}}],["pass",{"_index":1327,"title":{},"content":{"269":{},"270":{},"274":{},"321":{},"399":{},"405":{},"407":{},"409":{},"411":{},"705":{},"771":{},"805":{},"956":{}}}],["passiv",{"_index":3860,"title":{},"content":{"928":{}}}],["passphras",{"_index":2799,"title":{},"content":{"601":{},"683":{}}}],["password",{"_index":1002,"title":{"683":{}},"content":{"230":{},"269":{},"645":{},"655":{},"683":{},"693":{},"724":{},"950":{},"951":{},"955":{},"956":{}}}],["patch",{"_index":1633,"title":{},"content":{"279":{},"343":{},"355":{},"464":{}}}],["patent",{"_index":3301,"title":{"723":{},"724":{},"726":{}},"content":{"724":{},"725":{}}}],["path",{"_index":916,"title":{"223":{},"317":{},"318":{}},"content":{"220":{},"223":{},"224":{},"227":{},"317":{},"318":{},"475":{},"476":{},"601":{},"691":{},"694":{},"803":{},"806":{},"820":{},"855":{},"986":{},"988":{},"991":{},"997":{},"1000":{}}}],["path_extract/2",{"_index":2435,"title":{"475":{}},"content":{}}],["path_match?/2",{"_index":2440,"title":{"476":{}},"content":{}}],["pathsuffix",{"_index":4051,"title":{},"content":{"988":{},"991":{},"997":{},"1000":{}}}],["pattern",{"_index":2229,"title":{},"content":{"417":{},"510":{},"511":{},"512":{},"633":{},"826":{}}}],["pay",{"_index":2798,"title":{},"content":{"601":{},"651":{},"792":{},"820":{}}}],["payload",{"_index":2669,"title":{},"content":{"541":{},"542":{},"551":{},"967":{},"970":{},"973":{},"985":{},"994":{},"999":{},"1000":{},"1001":{}}}],["payment",{"_index":3311,"title":{},"content":{"724":{}}}],["peer",{"_index":1156,"title":{},"content":{"256":{},"360":{},"619":{},"629":{},"661":{},"823":{},"824":{},"860":{}}}],["pend",{"_index":1646,"title":{"335":{},"783":{}},"content":{"320":{},"327":{},"331":{},"752":{},"782":{}}}],["peopl",{"_index":2720,"title":{},"content":{"562":{},"671":{},"686":{},"785":{}}}],["per",{"_index":719,"title":{},"content":{"217":{},"379":{},"464":{},"537":{},"540":{},"612":{},"616":{},"636":{},"685":{},"696":{},"820":{},"837":{},"881":{},"945":{}}}],["percentag",{"_index":3736,"title":{},"content":{"875":{},"876":{},"884":{},"890":{},"893":{},"894":{},"900":{},"901":{}}}],["perform",{"_index":176,"title":{},"content":{"37":{},"40":{},"67":{},"95":{},"108":{},"209":{},"217":{},"218":{},"219":{},"225":{},"236":{},"240":{},"253":{},"255":{},"256":{},"258":{},"273":{},"277":{},"280":{},"313":{},"315":{},"317":{},"318":{},"332":{},"335":{},"338":{},"339":{},"343":{},"344":{},"348":{},"357":{},"367":{},"417":{},"424":{},"464":{},"465":{},"471":{},"601":{},"613":{},"662":{},"673":{},"680":{},"700":{},"705":{},"712":{},"719":{},"728":{},"738":{},"741":{},"755":{},"782":{},"785":{},"802":{},"803":{},"826":{},"830":{},"877":{},"900":{},"906":{},"909":{},"913":{},"953":{},"956":{},"962":{}}}],["performecdh",{"_index":746,"title":{},"content":{"218":{},"219":{}}}],["performecdh(uint8_t",{"_index":749,"title":{},"content":{"218":{},"219":{}}}],["performecdsa",{"_index":852,"title":{},"content":{"219":{}}}],["performecdsa(uint8_t",{"_index":853,"title":{},"content":{"219":{}}}],["period",{"_index":1155,"title":{"885":{}},"content":{"256":{},"339":{},"342":{},"629":{},"712":{},"823":{},"825":{},"881":{},"884":{},"885":{},"886":{},"887":{},"890":{},"893":{},"894":{}}}],["peripheri",{"_index":3381,"title":{},"content":{"729":{}}}],["perman",{"_index":3338,"title":{},"content":{"727":{},"808":{},"811":{}}}],["permissionless",{"_index":3268,"title":{},"content":{"710":{}}}],["permit",{"_index":2779,"title":{},"content":{"605":{},"738":{},"782":{}}}],["persist",{"_index":1558,"title":{},"content":{"314":{},"319":{},"517":{},"550":{},"658":{},"740":{},"741":{},"748":{},"956":{}}}],["person",{"_index":1591,"title":{},"content":{"315":{},"682":{},"688":{},"690":{},"696":{},"702":{},"806":{},"900":{}}}],["perspect",{"_index":906,"title":{},"content":{"236":{},"312":{},"890":{}}}],["pertain",{"_index":3793,"title":{},"content":{"889":{}}}],["phase",{"_index":1141,"title":{},"content":{"253":{},"322":{},"666":{},"705":{},"714":{},"881":{}}}],["photograph",{"_index":3353,"title":{},"content":{"728":{}}}],["photographi",{"_index":3375,"title":{},"content":{"728":{}}}],["phrase",{"_index":2961,"title":{},"content":{"655":{},"658":{},"954":{},"956":{}}}],["physic",{"_index":503,"title":{},"content":{"204":{},"660":{}}}],["pick",{"_index":1614,"title":{},"content":{"316":{},"715":{}}}],["pictur",{"_index":3745,"title":{},"content":{"876":{}}}],["piec",{"_index":3847,"title":{},"content":{"909":{}}}],["pillar",{"_index":3220,"title":{},"content":{"688":{}}}],["pin",{"_index":1389,"title":{},"content":{"285":{},"304":{},"305":{},"306":{},"307":{},"655":{},"950":{},"951":{},"955":{},"956":{}}}],["pioneer",{"_index":3865,"title":{},"content":{"928":{}}}],["piv",{"_index":1391,"title":{},"content":{"285":{},"287":{},"679":{}}}],["pivot",{"_index":3859,"title":{},"content":{"928":{}}}],["place",{"_index":1512,"title":{"652":{}},"content":{"310":{},"399":{},"551":{},"652":{},"695":{},"873":{}}}],["placehold",{"_index":2108,"title":{},"content":{"399":{}}}],["placement",{"_index":3130,"title":{"680":{}},"content":{}}],["plain",{"_index":442,"title":{},"content":{"160":{},"603":{}}}],["plan",{"_index":3771,"title":{},"content":{"881":{}}}],["plane",{"_index":3553,"title":{},"content":{"787":{}}}],["platform",{"_index":2884,"title":{},"content":{"611":{},"639":{},"655":{},"658":{},"679":{},"686":{},"724":{},"827":{},"830":{},"859":{},"860":{},"861":{},"862":{},"873":{},"877":{},"916":{},"928":{},"930":{},"933":{},"941":{},"953":{},"963":{},"1002":{}}}],["platform'",{"_index":3721,"title":{},"content":{"861":{},"870":{},"872":{},"926":{}}}],["platform’",{"_index":3756,"title":{},"content":{"872":{}}}],["play",{"_index":3075,"title":{},"content":{"662":{},"927":{}}}],["playbook",{"_index":1672,"title":{},"content":{"322":{}}}],["player",{"_index":3890,"title":{},"content":{"941":{}}}],["playground",{"_index":2646,"title":{"530":{},"538":{},"545":{},"546":{},"549":{},"551":{}},"content":{"530":{},"547":{},"549":{},"553":{},"560":{}}}],["pleas",{"_index":1835,"title":{},"content":{"364":{},"366":{},"545":{},"604":{},"611":{},"658":{},"689":{},"768":{},"829":{},"858":{},"863":{},"889":{},"890":{}}}],["plugin",{"_index":3958,"title":{},"content":{"953":{}}}],["pm",{"_index":4071,"title":{},"content":{"1003":{}}}],["po",{"_index":2822,"title":{},"content":{"621":{},"864":{},"866":{}}}],["point",{"_index":1233,"title":{"866":{},"962":{},"963":{}},"content":{"268":{},"271":{},"274":{},"277":{},"288":{},"289":{},"292":{},"293":{},"295":{},"301":{},"302":{},"305":{},"306":{},"307":{},"385":{},"799":{},"800":{},"826":{},"864":{},"886":{},"894":{}}}],["pointer",{"_index":768,"title":{},"content":{"218":{},"219":{},"805":{}}}],["pointx",{"_index":747,"title":{},"content":{"218":{},"219":{}}}],["polici",{"_index":1258,"title":{},"content":{"269":{},"655":{}}}],["poll",{"_index":1736,"title":{},"content":{"341":{},"346":{},"660":{},"708":{}}}],["pollut",{"_index":3305,"title":{},"content":{"724":{}}}],["polygon",{"_index":2807,"title":{"638":{}},"content":{"619":{},"621":{},"638":{},"639":{},"648":{},"649":{},"651":{},"821":{},"864":{},"866":{}}}],["polymorph",{"_index":3185,"title":{},"content":{"685":{}}}],["pool",{"_index":2913,"title":{"612":{},"613":{},"867":{},"869":{},"889":{},"890":{},"895":{},"896":{},"897":{},"898":{},"899":{},"900":{},"901":{},"902":{},"921":{}},"content":{"612":{},"737":{},"740":{},"823":{},"825":{},"826":{},"861":{},"868":{},"869":{},"870":{},"873":{},"875":{},"876":{},"880":{},"881":{},"888":{},"889":{},"891":{},"896":{},"897":{},"898":{},"899":{},"900":{},"901":{},"902":{},"904":{},"905":{},"906":{},"907":{},"908":{},"909":{},"913":{},"917":{},"918":{},"919":{},"920":{},"922":{},"924":{},"925":{},"928":{},"934":{},"935":{},"936":{},"937":{},"938":{},"939":{}}}],["pool'",{"_index":3821,"title":{},"content":{"897":{},"900":{},"901":{},"902":{},"906":{},"909":{},"913":{},"920":{},"921":{},"922":{},"923":{},"935":{}}}],["pool’",{"_index":3831,"title":{},"content":{"900":{}}}],["popul",{"_index":1355,"title":{},"content":{"274":{},"354":{}}}],["popular",{"_index":3955,"title":{},"content":{"953":{},"961":{}}}],["popup",{"_index":2957,"title":{},"content":{"655":{},"837":{},"913":{}}}],["port",{"_index":164,"title":{},"content":{"34":{},"43":{},"258":{},"281":{},"338":{},"353":{},"355":{},"720":{}}}],["portal",{"_index":3536,"title":{},"content":{"793":{}}}],["portfolio",{"_index":3841,"title":{},"content":{"905":{}}}],["portion",{"_index":1262,"title":{},"content":{"269":{},"869":{},"894":{},"902":{},"906":{},"908":{},"935":{}}}],["pos_int",{"_index":2302,"title":{},"content":{"438":{},"442":{},"443":{}}}],["pose",{"_index":3200,"title":{},"content":{"687":{}}}],["posinteg",{"_index":85,"title":{"178":{}},"content":{"15":{},"16":{},"73":{},"74":{},"123":{},"124":{},"128":{},"129":{},"147":{},"148":{},"150":{},"151":{},"178":{}}}],["posist",{"_index":1461,"title":{},"content":{"303":{}}}],["posit",{"_index":463,"title":{},"content":{"178":{},"299":{},"303":{},"305":{},"315":{},"316":{},"318":{},"720":{},"728":{},"860":{},"890":{},"894":{},"928":{},"941":{}}}],["possibl",{"_index":37,"title":{},"content":{"7":{},"250":{},"308":{},"315":{},"359":{},"375":{},"382":{},"390":{},"403":{},"437":{},"450":{},"604":{},"615":{},"635":{},"648":{},"660":{},"664":{},"674":{},"678":{},"680":{},"683":{},"688":{},"691":{},"692":{},"693":{},"728":{},"759":{},"761":{},"805":{},"820":{},"856":{},"857":{},"894":{},"909":{},"955":{}}}],["post",{"_index":2419,"title":{},"content":{"464":{},"835":{},"836":{},"939":{}}}],["postur",{"_index":3764,"title":{},"content":{"873":{}}}],["potenti",{"_index":2918,"title":{},"content":{"612":{},"613":{},"670":{},"876":{},"894":{},"900":{},"901":{},"902":{},"904":{},"913":{},"919":{},"926":{}}}],["pow",{"_index":3016,"title":{},"content":{"660":{},"685":{}}}],["pow/2",{"_index":2540,"title":{"505":{}},"content":{}}],["power",{"_index":1678,"title":{},"content":{"321":{},"505":{},"701":{},"735":{},"812":{},"842":{},"859":{}}}],["practic",{"_index":3438,"title":{},"content":{"757":{},"873":{}}}],["pratic",{"_index":3097,"title":{},"content":{"674":{}}}],["pre",{"_index":3685,"title":{"959":{}},"content":{"843":{},"897":{},"906":{},"909":{},"913":{}}}],["precis",{"_index":448,"title":{},"content":{"168":{},"385":{},"441":{},"909":{},"1000":{}}}],["preconfigur",{"_index":3295,"title":{},"content":{"720":{}}}],["predetermin",{"_index":2833,"title":{"626":{}},"content":{}}],["predict",{"_index":1526,"title":{},"content":{"311":{},"315":{},"663":{},"727":{},"929":{}}}],["preemptiv",{"_index":3111,"title":{},"content":{"678":{}}}],["prefer",{"_index":522,"title":{},"content":{"204":{},"604":{},"802":{},"956":{}}}],["prefix",{"_index":2027,"title":{},"content":{"382":{},"383":{}}}],["preliminari",{"_index":3062,"title":{},"content":{"666":{}}}],["prepar",{"_index":2703,"title":{},"content":{"551":{}}}],["prepend",{"_index":1004,"title":{},"content":{"232":{},"268":{},"314":{},"672":{},"674":{}}}],["prepend/2",{"_index":2484,"title":{"487":{}},"content":{"486":{}}}],["prerequisit",{"_index":580,"title":{"206":{}},"content":{"688":{},"702":{}}}],["present",{"_index":1597,"title":{},"content":{"315":{},"318":{},"356":{},"357":{},"413":{},"604":{},"714":{},"812":{},"900":{},"909":{}}}],["preserv",{"_index":2434,"title":{},"content":{"465":{}}}],["preset",{"_index":2125,"title":{},"content":{"400":{}}}],["press",{"_index":3693,"title":{},"content":{"846":{},"848":{},"849":{},"850":{},"851":{},"853":{},"854":{},"855":{},"856":{}}}],["pretti",{"_index":2030,"title":{},"content":{"384":{},"541":{}}}],["prevail",{"_index":2773,"title":{},"content":{"604":{}}}],["prevent",{"_index":1211,"title":{},"content":{"266":{},"600":{},"612":{},"683":{},"692":{},"694":{},"737":{},"955":{}}}],["previou",{"_index":380,"title":{},"content":{"108":{},"219":{},"252":{},"256":{},"271":{},"272":{},"273":{},"274":{},"275":{},"276":{},"277":{},"297":{},"314":{},"315":{},"320":{},"332":{},"333":{},"335":{},"400":{},"406":{},"407":{},"409":{},"415":{},"421":{},"437":{},"550":{},"551":{},"669":{},"670":{},"674":{},"721":{},"767":{},"769":{},"782":{},"808":{},"815":{},"998":{}}}],["previous",{"_index":1452,"title":{},"content":{"299":{}}}],["previous.cod",{"_index":2164,"title":{},"content":{"406":{}}}],["previous_index",{"_index":2176,"title":{},"content":{"407":{}}}],["previous_public_key",{"_index":2217,"title":{},"content":{"414":{},"415":{},"437":{}}}],["previousaddress",{"_index":283,"title":{},"content":{"73":{}}}],["previouspublickey",{"_index":284,"title":{},"content":{"73":{},"998":{}}}],["previoussignatur",{"_index":285,"title":{},"content":{"73":{},"998":{}}}],["price",{"_index":1776,"title":{"610":{},"625":{},"922":{},"940":{}},"content":{"349":{},"371":{},"411":{},"610":{},"625":{},"695":{},"696":{},"709":{},"768":{},"868":{},"872":{},"873":{},"897":{},"906":{},"913":{},"914":{},"917":{},"922":{},"923":{},"929":{},"936":{},"938":{},"940":{},"951":{},"956":{}}}],["primari",{"_index":1330,"title":{},"content":{"269":{},"270":{},"927":{},"956":{}}}],["primarili",{"_index":1099,"title":{},"content":{"242":{}}}],["principl",{"_index":1097,"title":{"781":{}},"content":{"241":{},"315":{},"678":{},"785":{}}}],["prior",{"_index":577,"title":{},"content":{"205":{},"335":{}}}],["prioriti",{"_index":3993,"title":{},"content":{"956":{}}}],["privaci",{"_index":1250,"title":{},"content":{"269":{},"362":{},"655":{},"716":{},"724":{},"727":{},"860":{},"956":{}}}],["privat",{"_index":520,"title":{},"content":{"204":{},"214":{},"217":{},"221":{},"224":{},"236":{},"269":{},"277":{},"368":{},"670":{},"683":{},"710":{},"727":{},"782":{},"803":{},"811":{},"813":{},"823":{},"961":{},"962":{}}}],["privateket",{"_index":862,"title":{},"content":{"219":{}}}],["privatekey",{"_index":710,"title":{},"content":{"217":{},"218":{},"219":{}}}],["probabl",{"_index":2672,"title":{},"content":{"541":{},"844":{}}}],["problem",{"_index":29,"title":{"641":{},"643":{}},"content":{"3":{},"315":{}}}],["proce",{"_index":3612,"title":{},"content":{"806":{},"812":{},"823":{},"898":{},"907":{},"910":{},"914":{}}}],["proceed",{"_index":3665,"title":{},"content":{"830":{},"877":{}}}],["process",{"_index":646,"title":{"632":{},"633":{},"715":{},"747":{},"841":{}},"content":{"216":{},"239":{},"240":{},"249":{},"251":{},"254":{},"281":{},"320":{},"321":{},"323":{},"324":{},"327":{},"335":{},"346":{},"371":{},"600":{},"612":{},"630":{},"632":{},"644":{},"648":{},"655":{},"661":{},"677":{},"689":{},"705":{},"720":{},"727":{},"735":{},"736":{},"804":{},"824":{},"825":{},"826":{},"834":{},"837":{},"841":{},"868":{},"898":{},"905":{},"907":{},"908":{},"909":{},"910":{},"914":{},"917":{},"918":{},"920":{}}}],["processor",{"_index":3106,"title":{},"content":{"677":{}}}],["produc",{"_index":1003,"title":{},"content":{"232":{},"321":{},"322":{},"527":{},"662":{},"665":{},"694":{},"717":{}}}],["product",{"_index":1059,"title":{"873":{},"938":{}},"content":{"239":{},"366":{},"589":{},"590":{},"591":{},"592":{},"593":{},"594":{},"842":{},"858":{},"873":{},"930":{},"938":{},"939":{},"940":{}}}],["profession",{"_index":3862,"title":{},"content":{"928":{}}}],["profil",{"_index":2970,"title":{},"content":{"656":{}}}],["profit",{"_index":3212,"title":{},"content":{"688":{},"861":{},"876":{},"900":{},"929":{}}}],["progess",{"_index":3086,"title":{},"content":{"671":{}}}],["program",{"_index":1020,"title":{},"content":{"238":{},"239":{},"280":{},"281":{},"873":{},"953":{},"960":{}}}],["programm",{"_index":3232,"title":{},"content":{"695":{}}}],["progress",{"_index":2932,"title":{},"content":{"648":{},"696":{},"706":{},"834":{},"912":{}}}],["prohibit",{"_index":3069,"title":{},"content":{"662":{},"727":{}}}],["project",{"_index":604,"title":{"725":{}},"content":{"207":{},"216":{},"321":{},"602":{},"648":{},"688":{},"689":{},"795":{},"857":{},"904":{},"928":{},"929":{},"930":{},"957":{}}}],["project'",{"_index":2938,"title":{},"content":{"648":{}}}],["prometheu",{"_index":1665,"title":{},"content":{"322":{}}}],["promin",{"_index":3801,"title":{},"content":{"890":{},"901":{},"913":{}}}],["promot",{"_index":1074,"title":{},"content":{"239":{},"688":{}}}],["prompt",{"_index":851,"title":{},"content":{"219":{},"811":{},"812":{},"813":{},"814":{},"837":{}}}],["proof",{"_index":151,"title":{"328":{},"662":{},"702":{}},"content":{"28":{},"58":{},"108":{},"143":{},"328":{},"330":{},"662":{},"665":{},"670":{},"688":{},"754":{},"782":{},"826":{},"998":{}}}],["proofofintegr",{"_index":381,"title":{},"content":{"108":{}}}],["proofofwork",{"_index":383,"title":{},"content":{"108":{}}}],["prop",{"_index":1681,"title":{},"content":{"321":{}}}],["prop1",{"_index":2145,"title":{},"content":{"403":{}}}],["prop2",{"_index":2146,"title":{},"content":{"403":{}}}],["prop3",{"_index":2147,"title":{},"content":{"403":{}}}],["prop4",{"_index":2148,"title":{},"content":{"403":{}}}],["prop_{proposal_address",{"_index":1690,"title":{},"content":{"321":{}}}],["propag",{"_index":3271,"title":{"718":{}},"content":{"711":{},"712":{}}}],["proper",{"_index":1148,"title":{},"content":{"254":{},"658":{},"705":{}}}],["properti",{"_index":254,"title":{},"content":{"58":{},"143":{},"190":{},"353":{},"369":{},"390":{},"405":{},"663":{},"694":{},"696":{},"700":{},"712":{},"714":{},"718":{},"758":{},"759":{},"761":{},"946":{}}}],["property_nam",{"_index":3443,"title":{},"content":{"758":{}}}],["property_valu",{"_index":3444,"title":{},"content":{"758":{}}}],["proport",{"_index":3879,"title":{},"content":{"920":{}}}],["proportion",{"_index":3737,"title":{},"content":{"875":{},"940":{}}}],["propos",{"_index":1643,"title":{"320":{},"343":{}},"content":{"320":{},"321":{},"322":{},"339":{},"341":{},"343":{},"344":{},"602":{},"689":{},"705":{},"898":{},"907":{},"910":{},"914":{},"1002":{}}}],["protect",{"_index":2960,"title":{},"content":{"655":{},"861":{},"923":{},"936":{},"940":{},"950":{},"956":{},"961":{},"962":{}}}],["protobuf",{"_index":1807,"title":{},"content":{"361":{}}}],["protocol",{"_index":111,"title":{"361":{},"932":{}},"content":{"18":{},"105":{},"108":{},"153":{},"154":{},"353":{},"359":{},"361":{},"362":{},"464":{},"688":{},"689":{},"714":{},"720":{},"727":{},"792":{},"824":{},"873":{},"903":{},"904":{},"917":{},"925":{},"961":{},"963":{},"1002":{}}}],["protocolvers",{"_index":116,"title":{},"content":{"18":{},"108":{}}}],["prove",{"_index":1595,"title":{},"content":{"315":{},"760":{},"782":{},"802":{},"820":{}}}],["proven",{"_index":1883,"title":{},"content":{"371":{},"872":{},"873":{}}}],["provid",{"_index":720,"title":{"800":{},"919":{},"928":{}},"content":{"217":{},"224":{},"239":{},"242":{},"243":{},"245":{},"246":{},"248":{},"250":{},"252":{},"264":{},"278":{},"281":{},"309":{},"310":{},"312":{},"315":{},"316":{},"332":{},"334":{},"335":{},"345":{},"347":{},"348":{},"356":{},"369":{},"370":{},"395":{},"399":{},"421":{},"550":{},"612":{},"613":{},"619":{},"638":{},"656":{},"659":{},"661":{},"670":{},"671":{},"674":{},"682":{},"685":{},"687":{},"688":{},"690":{},"701":{},"716":{},"717":{},"749":{},"750":{},"765":{},"768":{},"789":{},"791":{},"793":{},"799":{},"811":{},"812":{},"813":{},"814":{},"823":{},"824":{},"826":{},"827":{},"832":{},"837":{},"845":{},"853":{},"861":{},"862":{},"868":{},"869":{},"870":{},"873":{},"875":{},"876":{},"879":{},"884":{},"889":{},"890":{},"891":{},"892":{},"893":{},"894":{},"898":{},"900":{},"901":{},"902":{},"903":{},"904":{},"906":{},"907":{},"909":{},"910":{},"913":{},"914":{},"917":{},"919":{},"921":{},"926":{},"927":{},"928":{},"929":{},"935":{},"936":{},"937":{},"938":{},"954":{},"955":{},"956":{},"963":{}}}],["provis",{"_index":2797,"title":{},"content":{"601":{},"826":{},"859":{},"870":{},"872":{},"875":{},"876":{},"897":{},"926":{},"928":{},"933":{},"937":{},"941":{}}}],["pseudo",{"_index":3066,"title":{},"content":{"662":{}}}],["pub",{"_index":4020,"title":{},"content":{"960":{}}}],["pub.dev",{"_index":1832,"title":{},"content":{"364":{},"957":{}}}],["public",{"_index":48,"title":{"212":{},"217":{},"232":{},"329":{},"565":{},"669":{},"672":{}},"content":{"12":{},"21":{},"28":{},"52":{},"58":{},"61":{},"108":{},"136":{},"137":{},"143":{},"176":{},"205":{},"206":{},"209":{},"212":{},"214":{},"217":{},"219":{},"220":{},"221":{},"224":{},"225":{},"230":{},"232":{},"235":{},"251":{},"263":{},"267":{},"269":{},"271":{},"274":{},"275":{},"277":{},"287":{},"296":{},"314":{},"315":{},"317":{},"320":{},"328":{},"329":{},"330":{},"336":{},"338":{},"353":{},"355":{},"356":{},"357":{},"358":{},"362":{},"377":{},"382":{},"415":{},"418":{},"424":{},"432":{},"545":{},"549":{},"560":{},"565":{},"662":{},"665":{},"669":{},"672":{},"673":{},"674":{},"678":{},"688":{},"691":{},"693":{},"716":{},"727":{},"733":{},"734":{},"737":{},"781":{},"782":{},"785":{},"811":{},"812":{},"813":{},"823":{},"848":{},"859":{},"861":{},"897":{},"906":{},"913":{},"916":{},"927":{},"929":{},"930":{},"933":{},"935":{},"937":{},"941":{},"964":{},"976":{},"987":{},"989":{},"998":{}}}],["public_key",{"_index":2274,"title":{},"content":{"432":{},"456":{}}}],["publicarea",{"_index":1247,"title":{},"content":{"269":{}}}],["publicationstatu",{"_index":3616,"title":{},"content":{"808":{}}}],["publickey",{"_index":58,"title":{"176":{}},"content":{"12":{},"13":{},"21":{},"22":{},"43":{},"44":{},"61":{},"62":{},"73":{},"74":{},"108":{},"109":{},"176":{},"217":{},"218":{},"219":{},"224":{},"267":{},"989":{}}}],["publickeys",{"_index":1357,"title":{"275":{},"298":{},"299":{}},"content":{}}],["publish",{"_index":558,"title":{},"content":{"204":{},"260":{},"364":{},"722":{},"811":{},"812":{},"813":{}}}],["pull",{"_index":2752,"title":{},"content":{"602":{},"604":{},"747":{},"787":{}}}],["purchas",{"_index":3872,"title":{},"content":{"929":{}}}],["pure",{"_index":3140,"title":{},"content":{"680":{}}}],["purpos",{"_index":945,"title":{"600":{}},"content":{"223":{},"315":{},"345":{},"356":{},"403":{},"406":{},"408":{},"410":{},"680":{},"688":{},"706":{},"827":{},"832":{},"862":{},"879":{},"929":{},"953":{},"997":{},"1000":{}}}],["push",{"_index":1854,"title":{},"content":{"368":{},"604":{},"715":{},"787":{}}}],["put",{"_index":1611,"title":{},"content":{"316":{},"464":{},"655":{},"695":{}}}],["qr",{"_index":2972,"title":{},"content":{"656":{},"951":{}}}],["qualif",{"_index":1821,"title":{},"content":{"353":{}}}],["qualifi",{"_index":3032,"title":{},"content":{"661":{},"717":{}}}],["qualiti",{"_index":3708,"title":{},"content":{"859":{}}}],["quantiti",{"_index":2912,"title":{"612":{}},"content":{"612":{},"836":{},"873":{},"897":{},"938":{}}}],["quantum",{"_index":3078,"title":{"668":{}},"content":{"667":{},"670":{},"781":{}}}],["queri",{"_index":45,"title":{"581":{}},"content":{"9":{},"17":{},"26":{},"36":{},"45":{},"48":{},"60":{},"63":{},"75":{},"84":{},"100":{},"107":{},"111":{},"114":{},"117":{},"120":{},"123":{},"128":{},"131":{},"136":{},"138":{},"141":{},"144":{},"147":{},"150":{},"156":{},"157":{},"173":{},"179":{},"183":{},"189":{},"193":{},"243":{},"246":{},"332":{},"333":{},"354":{},"371":{},"377":{},"577":{},"578":{},"579":{},"580":{},"581":{},"582":{},"583":{},"664":{},"1003":{}}}],["question",{"_index":3702,"title":{},"content":{"858":{}}}],["queue",{"_index":1803,"title":{},"content":{"360":{}}}],["quick",{"_index":3802,"title":{},"content":{"890":{},"900":{},"901":{},"955":{}}}],["quicker",{"_index":1761,"title":{},"content":{"346":{}}}],["quickli",{"_index":1159,"title":{},"content":{"256":{},"315":{},"345":{},"890":{}}}],["quit",{"_index":3517,"title":{},"content":{"791":{}}}],["quorum",{"_index":3221,"title":{},"content":{"688":{},"704":{}}}],["quot",{"_index":2004,"title":{},"content":{"381":{},"382":{}}}],["r",{"_index":1228,"title":{"268":{}},"content":{"268":{},"465":{},"472":{}}}],["r.bodi",{"_index":2433,"title":{},"content":{"465":{}}}],["r.statu",{"_index":2432,"title":{},"content":{"465":{}}}],["race",{"_index":3216,"title":{},"content":{"688":{}}}],["rain",{"_index":2197,"title":{},"content":{"411":{}}}],["rais",{"_index":2425,"title":{},"content":{"464":{},"893":{}}}],["ran",{"_index":1710,"title":{},"content":{"327":{}}}],["random",{"_index":1505,"title":{},"content":{"309":{},"546":{},"662":{},"954":{},"956":{}}}],["random.secur",{"_index":3973,"title":{},"content":{"954":{}}}],["randomli",{"_index":3159,"title":{},"content":{"691":{},"712":{},"954":{}}}],["rang",{"_index":1043,"title":{"386":{}},"content":{"239":{},"717":{},"861":{},"875":{},"930":{}}}],["rar",{"_index":3622,"title":{},"content":{"811":{}}}],["rare",{"_index":3231,"title":{},"content":{"695":{},"792":{}}}],["rate",{"_index":3362,"title":{},"content":{"728":{},"861":{},"876":{},"884":{},"893":{},"900":{},"902":{},"936":{}}}],["ratio",{"_index":2950,"title":{},"content":{"650":{},"897":{},"898":{},"902":{},"906":{},"907":{},"909":{},"913":{}}}],["rational",{"_index":1481,"title":{"309":{}},"content":{}}],["raw",{"_index":733,"title":{},"content":{"217":{},"221":{},"267":{},"268":{},"270":{},"401":{},"560":{}}}],["rawprivatekey",{"_index":717,"title":{},"content":{"217":{}}}],["re",{"_index":1378,"title":{},"content":{"277":{}}}],["reach",{"_index":1615,"title":{},"content":{"316":{},"353":{},"361":{},"418":{},"464":{},"666":{},"685":{},"720":{},"886":{}}}],["react",{"_index":2099,"title":{},"content":{"395":{},"538":{},"539":{},"953":{}}}],["read",{"_index":890,"title":{"318":{}},"content":{"234":{},"296":{},"300":{},"308":{},"309":{},"311":{},"314":{},"315":{},"316":{},"317":{},"318":{},"371":{},"450":{},"513":{},"515":{},"550":{},"552":{},"573":{},"574":{},"575":{},"655":{},"777":{},"791":{},"809":{},"954":{}}}],["read/writ",{"_index":2050,"title":{},"content":{"388":{}}}],["readabl",{"_index":472,"title":{},"content":{"186":{},"368":{},"997":{},"1000":{}}}],["reader",{"_index":576,"title":{"316":{}},"content":{"205":{},"318":{}}}],["readi",{"_index":2676,"title":{},"content":{"545":{},"684":{},"722":{},"823":{}}}],["readm",{"_index":3633,"title":{},"content":{"818":{},"857":{}}}],["real",{"_index":1752,"title":{},"content":{"345":{},"367":{},"661":{},"688":{},"695":{},"704":{},"705":{},"724":{},"748":{},"884":{}}}],["realiti",{"_index":1849,"title":{},"content":{"367":{},"736":{},"781":{}}}],["realiz",{"_index":3201,"title":{},"content":{"687":{},"894":{},"902":{}}}],["realli",{"_index":1092,"title":{},"content":{"240":{},"310":{},"311":{},"315":{},"319":{},"356":{},"361":{},"674":{},"787":{}}}],["realtim",{"_index":3412,"title":{"748":{}},"content":{}}],["rearrang",{"_index":3888,"title":{},"content":{"939":{}}}],["reason",{"_index":321,"title":{},"content":{"79":{},"80":{},"370":{},"390":{},"545":{},"648":{},"674":{},"683":{},"781":{},"953":{},"956":{}}}],["rebind",{"_index":2105,"title":{},"content":{"399":{}}}],["rebuild",{"_index":3030,"title":{},"content":{"661":{}}}],["recalcul",{"_index":3782,"title":{},"content":{"884":{}}}],["receiv",{"_index":308,"title":{"639":{},"650":{}},"content":{"76":{},"203":{},"205":{},"236":{},"315":{},"321":{},"332":{},"368":{},"375":{},"378":{},"413":{},"464":{},"624":{},"650":{},"656":{},"666":{},"708":{},"709":{},"715":{},"750":{},"761":{},"807":{},"825":{},"826":{},"835":{},"837":{},"841":{},"868":{},"869":{},"902":{},"906":{},"909":{},"913":{},"914":{},"918":{},"920":{},"926":{},"928":{},"935":{},"939":{},"951":{},"977":{},"980":{},"983":{}}}],["receive/send",{"_index":3496,"title":{},"content":{"773":{}}}],["receiveaddr",{"_index":837,"title":{},"content":{"219":{}}}],["receiveaddrlen",{"_index":838,"title":{},"content":{"219":{}}}],["recent",{"_index":2927,"title":{},"content":{"613":{},"951":{}}}],["recept",{"_index":4005,"title":{},"content":{"956":{}}}],["recertif",{"_index":3336,"title":{},"content":{"727":{}}}],["recieveraddr",{"_index":847,"title":{},"content":{"219":{}}}],["recieveraddress",{"_index":825,"title":{},"content":{"219":{}}}],["recipi",{"_index":152,"title":{"55":{},"559":{},"761":{},"848":{}},"content":{"28":{},"29":{},"55":{},"86":{},"167":{},"180":{},"181":{},"187":{},"219":{},"244":{},"245":{},"247":{},"248":{},"249":{},"315":{},"362":{},"415":{},"458":{},"532":{},"632":{},"666":{},"696":{},"700":{},"737":{},"751":{},"756":{},"761":{},"775":{},"782":{},"823":{},"825":{},"848":{}}}],["recipient'",{"_index":3462,"title":{},"content":{"762":{},"825":{},"826":{}}}],["recipient.act",{"_index":236,"title":{},"content":{"56":{}}}],["recipient.address",{"_index":237,"title":{},"content":{"56":{}}}],["recipient.arg",{"_index":238,"title":{},"content":{"56":{}}}],["recipient/send",{"_index":1109,"title":{},"content":{"244":{}}}],["recipient/sender/token",{"_index":1112,"title":{},"content":{"247":{}}}],["recipient_address",{"_index":1913,"title":{},"content":{"375":{},"415":{}}}],["recipientarg",{"_index":235,"title":{"180":{}},"content":{"55":{},"56":{},"180":{}}}],["reclaim",{"_index":3845,"title":{},"content":{"908":{}}}],["recogn",{"_index":2836,"title":{"645":{}},"content":{"627":{},"645":{},"828":{}}}],["recognit",{"_index":3988,"title":{},"content":{"955":{}}}],["recommand",{"_index":3572,"title":{},"content":{"802":{}}}],["recommend",{"_index":3661,"title":{},"content":{"830":{}}}],["record",{"_index":3349,"title":{},"content":{"728":{},"800":{},"956":{}}}],["recoveri",{"_index":4034,"title":{},"content":{"964":{}}}],["recur",{"_index":1920,"title":{"376":{}},"content":{}}],["recurr",{"_index":2204,"title":{"420":{}},"content":{}}],["red",{"_index":3630,"title":{},"content":{"815":{},"816":{}}}],["redeem",{"_index":3846,"title":{},"content":{"909":{},"920":{}}}],["redefin",{"_index":3506,"title":{},"content":{"786":{}}}],["redesign",{"_index":3270,"title":{},"content":{"710":{}}}],["redi",{"_index":1493,"title":{},"content":{"309":{}}}],["redirect",{"_index":1713,"title":{"599":{}},"content":{"327":{},"799":{},"801":{}}}],["reduc",{"_index":981,"title":{},"content":{"225":{},"312":{},"360":{},"361":{},"382":{},"661":{},"696":{},"718":{},"724":{},"753":{},"780":{},"953":{},"955":{}}}],["redund",{"_index":1519,"title":{},"content":{"310":{}}}],["ref",{"_index":3321,"title":{},"content":{"727":{},"728":{},"729":{}}}],["refer",{"_index":624,"title":{},"content":{"215":{},"263":{},"265":{},"276":{},"277":{},"282":{},"369":{},"656":{},"727":{},"730":{},"799":{},"803":{},"805":{},"806":{},"807":{},"808":{},"811":{},"812":{},"813":{},"814":{},"827":{},"829":{},"835":{},"862":{},"863":{},"889":{},"890":{},"901":{},"925":{},"941":{}}}],["referenc",{"_index":3158,"title":{},"content":{"691":{},"732":{},"760":{}}}],["refin",{"_index":3388,"title":{},"content":{"738":{}}}],["reflect",{"_index":2937,"title":{},"content":{"648":{}}}],["refresh",{"_index":4038,"title":{},"content":{"969":{}}}],["refresh_current_account",{"_index":4037,"title":{"969":{}},"content":{}}],["refund",{"_index":2180,"title":{"841":{}},"content":{"408":{},"641":{},"823":{},"833":{},"840":{},"841":{}}}],["refus",{"_index":2886,"title":{"641":{}},"content":{"663":{}}}],["regard",{"_index":1737,"title":{},"content":{"341":{},"346":{},"357":{},"599":{},"674":{},"695":{},"792":{},"815":{},"826":{},"845":{}}}],["regardless",{"_index":3011,"title":{},"content":{"660":{}}}],["regener",{"_index":1362,"title":{},"content":{"275":{}}}],["regex",{"_index":2263,"title":{"509":{}},"content":{"425":{},"509":{},"510":{},"512":{}}}],["regex.extract(\"123456abc",{"_index":2564,"title":{},"content":{"510":{}}}],["regex.extract(\"voodoo",{"_index":2567,"title":{},"content":{"510":{}}}],["regex.match?(\"123456",{"_index":2570,"title":{},"content":{"511":{}}}],["regex.match?(\"123456abc",{"_index":2571,"title":{},"content":{"511":{}}}],["regex.scan(\"a0b1c2,123\\nd3e4f5,456\\n",{"_index":2579,"title":{},"content":{"512":{}}}],["regex.scan(\"foo",{"_index":2573,"title":{},"content":{"512":{}}}],["regex.scan(\"toto,123\\ntutu,456\\n",{"_index":2574,"title":{},"content":{"512":{}}}],["regex_extract(data",{"_index":2232,"title":{},"content":{"417":{}}}],["regex_match?(\"hello",{"_index":2231,"title":{},"content":{"417":{}}}],["regex_match?(data",{"_index":2228,"title":{},"content":{"417":{}}}],["regist",{"_index":425,"title":{},"content":{"134":{},"826":{}}}],["registr",{"_index":3335,"title":{},"content":{"727":{}}}],["registri",{"_index":1712,"title":{},"content":{"327":{}}}],["regular",{"_index":2230,"title":{},"content":{"417":{},"509":{},"696":{},"873":{}}}],["reimport",{"_index":2979,"title":{},"content":{"658":{}}}],["reinforc",{"_index":3839,"title":{},"content":{"904":{}}}],["reinstal",{"_index":2987,"title":{},"content":{"658":{}}}],["reintegr",{"_index":3472,"title":{},"content":{"781":{}}}],["reject",{"_index":417,"title":{},"content":{"119":{},"155":{},"164":{},"176":{},"194":{},"403":{}}}],["rejoin",{"_index":3115,"title":{},"content":{"678":{},"721":{}}}],["rel",{"_index":3453,"title":{},"content":{"759":{},"913":{}}}],["relat",{"_index":54,"title":{},"content":{"12":{},"346":{},"664":{},"674":{},"691":{},"727":{},"728":{},"806":{},"888":{},"890":{},"922":{},"956":{},"964":{}}}],["relationship",{"_index":3876,"title":{},"content":{"930":{}}}],["relay",{"_index":1718,"title":{},"content":{"332":{},"701":{}}}],["releas",{"_index":583,"title":{},"content":{"206":{},"321":{},"322":{},"787":{},"841":{},"843":{},"887":{},"893":{}}}],["relev",{"_index":2101,"title":{},"content":{"395":{},"611":{},"688":{},"702":{}}}],["reli",{"_index":1094,"title":{},"content":{"240":{},"369":{},"371":{},"416":{},"464":{},"724":{},"823":{},"824":{},"917":{},"929":{}}}],["reliabl",{"_index":1024,"title":{},"content":{"238":{},"728":{},"873":{},"953":{},"961":{}}}],["reload",{"_index":1083,"title":{},"content":{"239":{},"704":{}}}],["relock",{"_index":3812,"title":{},"content":{"893":{},"894":{}}}],["rem/2",{"_index":2552,"title":{"508":{}},"content":{}}],["remain",{"_index":184,"title":{},"content":{"40":{},"98":{},"125":{},"604":{},"612":{},"648":{},"692":{},"715":{},"782":{},"805":{},"808":{},"825":{},"826":{},"835":{},"873":{},"886":{},"890":{},"893":{},"938":{}}}],["remaind",{"_index":2560,"title":{},"content":{"508":{}}}],["rememb",{"_index":2875,"title":{},"content":{"639":{},"956":{}}}],["remind",{"_index":2959,"title":{},"content":{"655":{},"674":{},"740":{}}}],["remot",{"_index":554,"title":{},"content":{"204":{},"360":{}}}],["remov",{"_index":1377,"title":{"612":{},"855":{},"908":{},"909":{},"910":{},"920":{}},"content":{"277":{},"503":{},"517":{},"612":{},"615":{},"635":{},"724":{},"725":{},"727":{},"755":{},"840":{},"852":{},"861":{},"880":{},"902":{},"904":{},"909":{},"910":{},"981":{}}}],["remove_servic",{"_index":4046,"title":{"981":{}},"content":{}}],["render",{"_index":441,"title":{},"content":{"160":{},"603":{},"801":{},"806":{},"953":{}}}],["renew",{"_index":1733,"title":{},"content":{"339":{},"662":{},"665":{},"727":{}}}],["rent",{"_index":3525,"title":{},"content":{"792":{}}}],["repair",{"_index":1171,"title":{"739":{}},"content":{"257":{},"260":{},"261":{},"714":{},"722":{},"727":{},"739":{},"740":{}}}],["repaireveri",{"_index":3025,"title":{},"content":{"661":{}}}],["replac",{"_index":328,"title":{},"content":{"80":{},"205":{},"224":{},"493":{},"686":{},"724":{}}}],["repli",{"_index":3579,"title":{},"content":{"802":{}}}],["replic",{"_index":314,"title":{"749":{},"751":{}},"content":{"76":{},"203":{},"249":{},"251":{},"253":{},"315":{},"332":{},"661":{},"666":{},"685":{},"696":{},"715":{},"716":{},"718":{},"727":{},"737":{},"741":{},"745":{},"747":{},"748":{},"750":{},"751":{},"753":{},"763":{},"825":{}}}],["replica",{"_index":1114,"title":{},"content":{"249":{},"696":{},"751":{},"792":{}}}],["replicast",{"_index":1634,"title":{},"content":{"279":{}}}],["repo",{"_index":4018,"title":{},"content":{"960":{}}}],["report",{"_index":2839,"title":{},"content":{"627":{},"828":{}}}],["repositori",{"_index":543,"title":{},"content":{"204":{},"207":{},"215":{},"237":{},"563":{},"600":{},"603":{},"689":{},"818":{}}}],["repository//github.com/archeth",{"_index":2740,"title":{},"content":{"595":{},"596":{}}}],["repres",{"_index":34,"title":{},"content":{"7":{},"12":{},"15":{},"18":{},"21":{},"24":{},"28":{},"34":{},"37":{},"40":{},"43":{},"46":{},"52":{},"55":{},"58":{},"61":{},"64":{},"67":{},"70":{},"73":{},"76":{},"79":{},"82":{},"86":{},"89":{},"95":{},"98":{},"102":{},"105":{},"108":{},"113":{},"116":{},"119":{},"122":{},"125":{},"127":{},"130":{},"133":{},"135":{},"137":{},"140":{},"143":{},"146":{},"149":{},"152":{},"154":{},"155":{},"158":{},"160":{},"164":{},"166":{},"168":{},"170":{},"172":{},"176":{},"178":{},"180":{},"184":{},"186":{},"188":{},"190":{},"192":{},"194":{},"197":{},"200":{},"203":{},"345":{},"346":{},"415":{},"478":{},"555":{},"674":{},"859":{},"869":{},"873":{},"876":{},"890":{},"900":{},"901":{},"902":{},"906":{},"909":{},"913":{},"918":{},"935":{},"938":{},"941":{},"956":{}}}],["represent",{"_index":1001,"title":{"230":{}},"content":{"383":{},"477":{},"521":{},"522":{},"523":{},"541":{},"678":{},"693":{}}}],["reproduc",{"_index":1588,"title":{},"content":{"315":{},"665":{},"674":{},"728":{},"738":{},"747":{},"782":{}}}],["repudi",{"_index":2847,"title":{},"content":{"633":{},"826":{}}}],["reput",{"_index":3331,"title":{},"content":{"727":{},"873":{}}}],["request",{"_index":1620,"title":{"967":{},"970":{},"973":{},"976":{},"979":{},"982":{},"985":{},"988":{},"991":{},"994":{},"997":{},"1000":{}},"content":{"318":{},"332":{},"349":{},"377":{},"460":{},"464":{},"465":{},"602":{},"604":{},"633":{},"661":{},"664":{},"720":{},"722":{},"724":{},"738":{},"740":{},"741":{},"748":{},"787":{},"801":{},"802":{},"806":{},"807":{},"825":{},"826":{},"967":{},"969":{},"970":{}}}],["request/1",{"_index":2411,"title":{"461":{}},"content":{}}],["request/1,2,3,4",{"_index":2423,"title":{},"content":{"464":{}}}],["request/2",{"_index":2412,"title":{"462":{}},"content":{"461":{}}}],["request/3",{"_index":2413,"title":{"463":{}},"content":{"462":{}}}],["request/4",{"_index":2414,"title":{"464":{}},"content":{"463":{},"465":{}}}],["request_many/1",{"_index":2424,"title":{"465":{}},"content":{"464":{}}}],["requir",{"_index":641,"title":{"601":{}},"content":{"216":{},"218":{},"219":{},"239":{},"261":{},"267":{},"285":{},"286":{},"309":{},"311":{},"312":{},"313":{},"314":{},"371":{},"464":{},"512":{},"536":{},"541":{},"542":{},"557":{},"558":{},"560":{},"655":{},"658":{},"662":{},"696":{},"710":{},"719":{},"782":{},"802":{},"811":{},"820":{},"843":{},"860":{},"884":{},"897":{},"956":{},"962":{},"964":{}}}],["requisit",{"_index":4015,"title":{"959":{}},"content":{}}],["research",{"_index":3085,"title":{"871":{},"872":{}},"content":{"671":{},"724":{},"872":{}}}],["resend",{"_index":1870,"title":{},"content":{"369":{}}}],["reserv",{"_index":790,"title":{"396":{}},"content":{"218":{},"219":{},"225":{},"399":{},"688":{},"706":{},"811":{},"897":{},"906":{},"913":{},"921":{},"934":{},"935":{}}}],["reset",{"_index":3343,"title":{},"content":{"727":{},"845":{},"886":{},"894":{}}}],["resid",{"_index":534,"title":{},"content":{"204":{}}}],["resili",{"_index":3125,"title":{},"content":{"678":{},"724":{},"788":{}}}],["resist",{"_index":3049,"title":{},"content":{"664":{},"781":{}}}],["resolut",{"_index":1585,"title":{},"content":{"315":{},"781":{}}}],["resolv",{"_index":1583,"title":{},"content":{"315":{},"401":{},"412":{},"644":{},"645":{},"658":{},"682":{},"782":{},"787":{},"798":{}}}],["resourc",{"_index":1065,"title":{},"content":{"239":{},"602":{},"659":{},"688":{},"696":{},"700":{}}}],["respect",{"_index":1404,"title":{},"content":{"287":{},"340":{},"368":{},"406":{},"632":{},"639":{},"666":{},"750":{},"763":{},"939":{}}}],["respond",{"_index":644,"title":{},"content":{"216":{},"256":{},"332":{}}}],["respond(async",{"_index":647,"title":{},"content":{"216":{}}}],["respons",{"_index":409,"title":{"968":{},"971":{},"974":{},"977":{},"980":{},"983":{},"986":{},"989":{},"992":{},"995":{},"998":{},"1001":{}},"content":{"119":{},"155":{},"164":{},"176":{},"194":{},"212":{},"213":{},"214":{},"217":{},"219":{},"241":{},"251":{},"255":{},"322":{},"333":{},"353":{},"378":{},"464":{},"465":{},"663":{},"666":{},"744":{},"806":{},"971":{}}}],["response.bodi",{"_index":2417,"title":{},"content":{"464":{}}}],["response.statu",{"_index":1966,"title":{},"content":{"378":{},"464":{}}}],["rest",{"_index":789,"title":{},"content":{"218":{},"219":{},"380":{},"644":{}}}],["restart",{"_index":1067,"title":{},"content":{"239":{}}}],["restor",{"_index":3298,"title":{},"content":{"739":{},"954":{}}}],["restrict",{"_index":1248,"title":{},"content":{"269":{},"368":{}}}],["result",{"_index":36,"title":{},"content":{"7":{},"218":{},"219":{},"224":{},"239":{},"379":{},"406":{},"448":{},"464":{},"505":{},"517":{},"542":{},"550":{},"621":{},"696":{},"825":{},"897":{},"906":{},"913":{},"953":{},"954":{},"962":{}}}],["result.touppercas",{"_index":3975,"title":{},"content":{"954":{}}}],["resum",{"_index":3670,"title":{},"content":{"833":{},"837":{},"840":{}}}],["resuppli",{"_index":3435,"title":{"760":{}},"content":{"756":{},"758":{},"760":{},"761":{}}}],["resync",{"_index":1194,"title":{},"content":{"261":{}}}],["retain",{"_index":2953,"title":{},"content":{"652":{},"682":{}}}],["retriev",{"_index":400,"title":{"236":{},"331":{},"332":{},"656":{}},"content":{"123":{},"236":{},"242":{},"245":{},"248":{},"316":{},"318":{},"319":{},"332":{},"333":{},"346":{},"390":{},"438":{},"442":{},"443":{},"545":{},"546":{},"550":{},"601":{},"630":{},"692":{},"805":{},"806":{},"824":{},"841":{},"864":{},"866":{},"893":{},"894":{},"902":{},"962":{},"963":{},"964":{}}}],["return",{"_index":71,"title":{"17":{},"26":{},"36":{},"45":{},"48":{},"60":{},"63":{},"75":{},"78":{},"81":{},"84":{},"100":{},"107":{},"156":{},"874":{},"876":{}},"content":{"162":{},"216":{},"217":{},"218":{},"219":{},"269":{},"273":{},"275":{},"276":{},"277":{},"284":{},"286":{},"289":{},"290":{},"295":{},"296":{},"297":{},"298":{},"299":{},"300":{},"302":{},"303":{},"306":{},"307":{},"348":{},"403":{},"404":{},"405":{},"408":{},"410":{},"427":{},"428":{},"430":{},"431":{},"432":{},"433":{},"434":{},"435":{},"436":{},"437":{},"438":{},"439":{},"441":{},"442":{},"443":{},"448":{},"464":{},"465":{},"468":{},"471":{},"472":{},"473":{},"475":{},"476":{},"477":{},"478":{},"479":{},"481":{},"482":{},"483":{},"484":{},"485":{},"486":{},"487":{},"488":{},"489":{},"490":{},"491":{},"492":{},"493":{},"494":{},"496":{},"497":{},"498":{},"499":{},"500":{},"501":{},"502":{},"503":{},"505":{},"506":{},"507":{},"508":{},"510":{},"511":{},"512":{},"515":{},"519":{},"520":{},"521":{},"522":{},"523":{},"524":{},"525":{},"527":{},"529":{},"549":{},"613":{},"656":{},"705":{},"752":{},"816":{},"869":{},"876":{},"894":{},"900":{},"902":{},"903":{},"906":{},"909":{},"918":{},"926":{},"928":{},"935":{},"954":{}}}],["reveal",{"_index":2842,"title":{},"content":{"629":{},"633":{},"728":{},"823":{},"824":{},"825":{},"826":{},"890":{},"899":{}}}],["revers",{"_index":1828,"title":{},"content":{"358":{},"492":{},"629":{},"633":{},"823":{},"826":{}}}],["reverse/1",{"_index":2506,"title":{"492":{}},"content":{}}],["review",{"_index":3673,"title":{},"content":{"836":{},"868":{},"898":{},"907":{}}}],["revis",{"_index":3770,"title":{},"content":{"881":{}}}],["revoc",{"_index":3326,"title":{},"content":{"727":{}}}],["revok",{"_index":3344,"title":{},"content":{"727":{}}}],["reward",{"_index":1177,"title":{"883":{},"887":{},"937":{},"943":{},"945":{}},"content":{"258":{},"353":{},"355":{},"695":{},"705":{},"709":{},"720":{},"766":{},"861":{},"870":{},"876":{},"881":{},"883":{},"884":{},"886":{},"887":{},"890":{},"892":{},"893":{},"894":{},"901":{},"904":{},"913":{},"919":{},"926":{},"937":{},"943":{},"947":{},"948":{},"949":{}}}],["reward_amount",{"_index":3913,"title":{},"content":{"946":{}}}],["rewardaddress",{"_index":203,"title":{},"content":{"43":{}}}],["rewardsremainingattheendofyear",{"_index":3918,"title":{},"content":{"947":{}}}],["rewardstoallocateforthishour",{"_index":3917,"title":{},"content":{"947":{},"948":{}}}],["rich",{"_index":3827,"title":{},"content":{"900":{}}}],["right",{"_index":1143,"title":{},"content":{"253":{},"264":{},"315":{},"327":{},"380":{},"541":{},"656":{},"662":{},"665":{},"682":{},"687":{},"688":{},"692":{},"704":{},"732":{},"747":{},"759":{},"832":{},"845":{},"879":{}}}],["rigor",{"_index":3754,"title":{},"content":{"872":{}}}],["rise",{"_index":3513,"title":{},"content":{"789":{}}}],["risk",{"_index":3052,"title":{},"content":{"664":{},"685":{},"725":{},"860":{},"872":{},"875":{},"876":{},"953":{},"955":{}}}],["rng",{"_index":3972,"title":{},"content":{"954":{}}}],["roadmap",{"_index":3548,"title":{"797":{},"817":{}},"content":{}}],["robert",{"_index":2493,"title":{},"content":{"488":{}}}],["robot",{"_index":1840,"title":{},"content":{"367":{}}}],["robust",{"_index":3720,"title":{},"content":{"861":{},"933":{}}}],["rocksdb",{"_index":1489,"title":{},"content":{"309":{}}}],["role",{"_index":1257,"title":{},"content":{"269":{},"688":{},"705":{},"782":{},"898":{},"907":{},"910":{},"914":{},"927":{}}}],["root",{"_index":514,"title":{"676":{},"677":{},"678":{},"679":{}},"content":{"204":{},"207":{},"269":{},"270":{},"272":{},"275":{},"276":{},"277":{},"296":{},"338":{},"507":{},"553":{},"677":{},"678":{},"679":{},"680":{},"691":{},"710":{},"956":{}}}],["rootkey",{"_index":1338,"title":{},"content":{"270":{},"300":{}}}],["rotat",{"_index":1626,"title":{"665":{},"738":{}},"content":{"278":{},"659":{},"661":{},"663":{},"665":{},"666":{},"727":{},"736":{},"738":{},"741":{},"748":{},"782":{},"890":{},"899":{}}}],["round",{"_index":1671,"title":{},"content":{"322":{},"534":{},"612":{},"945":{}}}],["row",{"_index":1603,"title":{},"content":{"316":{},"812":{},"813":{},"814":{}}}],["royalti",{"_index":3432,"title":{},"content":{"754":{}}}],["rpc",{"_index":2085,"title":{"965":{}},"content":{"393":{},"638":{},"956":{},"963":{}}}],["rsa_root_key",{"_index":1447,"title":{},"content":{"296":{}}}],["rule",{"_index":1850,"title":{"405":{}},"content":{"367":{},"406":{},"465":{},"552":{},"604":{},"700":{},"701":{},"811":{},"812":{},"823":{}}}],["run",{"_index":600,"title":{},"content":{"207":{},"239":{},"321":{},"322":{},"324":{},"346":{},"527":{},"536":{},"564":{},"764":{},"765":{},"785":{},"786":{},"787":{},"803":{},"820":{},"953":{},"960":{}}}],["s",{"_index":512,"title":{"268":{}},"content":{"204":{},"206":{},"246":{},"268":{},"472":{},"563":{}}}],["s1",{"_index":3422,"title":{},"content":{"751":{}}}],["s2",{"_index":3423,"title":{},"content":{"751":{}}}],["s3",{"_index":3424,"title":{},"content":{"751":{}}}],["safe",{"_index":3079,"title":{"668":{}},"content":{"667":{},"827":{},"862":{},"873":{},"877":{},"950":{}}}],["safest",{"_index":3187,"title":{},"content":{"685":{}}}],["safeti",{"_index":1515,"title":{},"content":{"310":{},"370":{},"685":{}}}],["same",{"_index":1116,"title":{},"content":{"249":{},"269":{},"333":{},"338":{},"357":{},"369":{},"371":{},"382":{},"392":{},"401":{},"405":{},"406":{},"409":{},"427":{},"438":{},"440":{},"442":{},"443":{},"470":{},"489":{},"490":{},"491":{},"492":{},"493":{},"494":{},"527":{},"532":{},"621":{},"642":{},"645":{},"648":{},"664":{},"678":{},"728":{},"731":{},"737":{},"760":{},"767":{},"768":{},"790":{},"792":{},"800":{},"806":{},"807":{},"820":{},"825":{},"847":{},"848":{},"856":{},"873":{},"938":{}}}],["sampl",{"_index":1150,"title":{"255":{}},"content":{"256":{},"257":{},"717":{},"734":{}}}],["satisfi",{"_index":3626,"title":{},"content":{"812":{}}}],["saturday",{"_index":2640,"title":{},"content":{"535":{}}}],["save",{"_index":1419,"title":{},"content":{"289":{},"294":{},"295":{},"890":{},"901":{}}}],["saveindex(ykindex",{"_index":1428,"title":{"291":{}},"content":{}}],["saw",{"_index":2673,"title":{},"content":{"541":{}}}],["sc",{"_index":2202,"title":{},"content":{"402":{},"532":{},"533":{}}}],["scalabl",{"_index":1027,"title":{},"content":{"239":{},"361":{},"659":{},"661":{},"663":{},"674":{},"680":{},"685":{},"730":{},"731":{},"732":{},"735":{},"736":{}}}],["scalar",{"_index":14,"title":{"582":{}},"content":{"6":{},"11":{},"13":{},"16":{},"19":{},"22":{},"25":{},"29":{},"32":{},"35":{},"41":{},"44":{},"47":{},"53":{},"56":{},"59":{},"62":{},"65":{},"71":{},"74":{},"77":{},"80":{},"83":{},"87":{},"90":{},"93":{},"99":{},"103":{},"106":{},"109":{},"112":{},"115":{},"118":{},"119":{},"121":{},"124":{},"129":{},"132":{},"139":{},"142":{},"145":{},"148":{},"151":{},"155":{},"158":{},"160":{},"162":{},"164":{},"166":{},"168":{},"170":{},"172":{},"174":{},"176":{},"178":{},"180":{},"182":{},"184":{},"186":{},"188":{},"190":{},"192":{},"194":{},"199":{},"202":{},"577":{},"578":{},"579":{},"580":{},"581":{},"582":{},"583":{},"1003":{}}}],["scale",{"_index":1541,"title":{},"content":{"312":{},"612":{},"713":{},"785":{},"890":{},"956":{}}}],["scan",{"_index":1714,"title":{},"content":{"330":{}}}],["scan/2",{"_index":2572,"title":{"512":{}},"content":{}}],["scarlett",{"_index":1928,"title":{},"content":{"377":{}}}],["scarlett_vot",{"_index":1941,"title":{},"content":{"377":{}}}],["scenario",{"_index":1085,"title":{},"content":{"239":{},"532":{},"533":{},"536":{},"826":{},"913":{},"948":{}}}],["scene",{"_index":3414,"title":{},"content":{"748":{}}}],["schedul",{"_index":1135,"title":{"252":{},"346":{}},"content":{"252":{},"334":{},"345":{},"346":{},"347":{},"350":{},"368":{},"945":{}}}],["schema",{"_index":1565,"title":{"577":{},"1003":{}},"content":{"314":{},"346":{},"577":{},"578":{},"579":{},"580":{},"581":{},"582":{},"583":{},"757":{},"760":{},"1003":{}}}],["schemaless",{"_index":1571,"title":{},"content":{"314":{}}}],["scheme",{"_index":935,"title":{},"content":{"223":{},"224":{},"225":{},"269":{},"735":{},"955":{}}}],["scientif",{"_index":2010,"title":{},"content":{"381":{}}}],["scope",{"_index":1622,"title":{"388":{}},"content":{"319":{},"388":{}}}],["scratch",{"_index":1476,"title":{},"content":{"308":{},"313":{}}}],["screen",{"_index":615,"title":{"658":{},"831":{},"878":{}},"content":{"209":{},"655":{},"656":{},"816":{},"831":{},"836":{},"878":{},"898":{},"907":{},"910":{},"914":{},"956":{}}}],["screenshot",{"_index":2699,"title":{},"content":{"548":{}}}],["script",{"_index":1680,"title":{},"content":{"321":{},"793":{}}}],["scripts/main.j",{"_index":3599,"title":{},"content":{"805":{}}}],["scripts/proposal_ci_job.sh",{"_index":1679,"title":{},"content":{"321":{}}}],["scylladb",{"_index":1491,"title":{},"content":{"309":{}}}],["sdk",{"_index":651,"title":{"363":{},"364":{},"365":{},"366":{},"570":{}},"content":{"216":{},"364":{},"365":{},"366":{},"560":{},"567":{},"568":{},"569":{},"570":{},"571":{},"572":{},"957":{},"960":{}}}],["se",{"_index":3128,"title":{},"content":{"679":{}}}],["seal",{"_index":3402,"title":{},"content":{"745":{}}}],["seamless",{"_index":1847,"title":{},"content":{"367":{},"619":{},"830":{},"859":{},"861":{}}}],["seamlessli",{"_index":3835,"title":{},"content":{"902":{}}}],["search",{"_index":3397,"title":{},"content":{"742":{}}}],["sec",{"_index":3181,"title":{},"content":{"685":{}}}],["second",{"_index":474,"title":{},"content":{"188":{},"217":{},"267":{},"322":{},"464":{},"467":{},"469":{},"527":{},"534":{},"535":{},"547":{},"655":{},"678":{},"685":{},"837":{},"876":{},"906":{},"913":{},"955":{},"956":{}}}],["second_cod",{"_index":2336,"title":{},"content":{"427":{}}}],["secp256k1",{"_index":997,"title":{},"content":{"228":{},"672":{},"674":{}}}],["secret",{"_index":51,"title":{"264":{},"339":{}},"content":{"12":{},"28":{},"52":{},"58":{},"61":{},"137":{},"143":{},"218":{},"219":{},"230":{},"235":{},"259":{},"264":{},"277":{},"336":{},"339":{},"354":{},"395":{},"409":{},"414":{},"415":{},"418":{},"456":{},"470":{},"560":{},"629":{},"632":{},"633":{},"655":{},"665":{},"698":{},"738":{},"765":{},"782":{},"813":{},"823":{},"825":{},"826":{},"848":{}}}],["secret'",{"_index":3653,"title":{},"content":{"826":{}}}],["secret_key",{"_index":2245,"title":{},"content":{"418":{},"471":{}}}],["section",{"_index":141,"title":{"889":{},"890":{},"891":{},"892":{}},"content":{"28":{},"235":{},"265":{},"282":{},"320":{},"423":{},"564":{},"599":{},"782":{},"811":{},"816":{},"875":{},"888":{},"889":{},"890":{},"891":{},"892":{},"901":{}}}],["section\"how",{"_index":2965,"title":{},"content":{"656":{}}}],["secur",{"_index":313,"title":{"791":{},"871":{},"936":{},"955":{}},"content":{"76":{},"203":{},"204":{},"206":{},"225":{},"234":{},"362":{},"368":{},"370":{},"412":{},"421":{},"545":{},"612":{},"619":{},"627":{},"629":{},"630":{},"632":{},"633":{},"648":{},"649":{},"655":{},"658":{},"659":{},"661":{},"662":{},"663":{},"677":{},"678":{},"679":{},"680":{},"682":{},"683":{},"685":{},"687":{},"692":{},"694":{},"705":{},"710":{},"716":{},"720":{},"727":{},"739":{},"750":{},"781":{},"788":{},"791":{},"801":{},"821":{},"823":{},"824":{},"828":{},"859":{},"860":{},"861":{},"872":{},"873":{},"898":{},"900":{},"907":{},"910":{},"914":{},"933":{},"941":{},"950":{},"953":{},"954":{},"955":{},"956":{},"961":{},"1002":{}}}],["securitysecur",{"_index":3945,"title":{},"content":{"951":{}}}],["see",{"_index":1133,"title":{"815":{}},"content":{"251":{},"338":{},"341":{},"343":{},"344":{},"394":{},"398":{},"406":{},"408":{},"410":{},"434":{},"436":{},"465":{},"475":{},"476":{},"539":{},"540":{},"541":{},"545":{},"547":{},"548":{},"549":{},"554":{},"605":{},"670":{},"710":{},"737":{},"744":{},"782":{},"820":{},"825":{},"913":{},"955":{}}}],["seed",{"_index":672,"title":{"954":{}},"content":{"217":{},"220":{},"224":{},"227":{},"236":{},"258":{},"260":{},"319":{},"470":{},"545":{},"560":{},"601":{},"615":{},"635":{},"691":{},"720":{},"803":{},"819":{},"820":{},"844":{},"845":{},"848":{},"852":{},"853":{},"856":{},"954":{},"956":{},"961":{},"976":{}}}],["seek",{"_index":1511,"title":{},"content":{"310":{},"314":{},"316":{},"929":{}}}],["seem",{"_index":1088,"title":{},"content":{"240":{}}}],["select",{"_index":2664,"title":{},"content":{"540":{},"542":{},"655":{},"656":{},"812":{},"813":{},"835":{},"843":{},"845":{},"848":{},"852":{},"856":{},"861":{},"868":{},"870":{},"886":{},"897":{},"913":{},"937":{},"956":{},"993":{}}}],["selector",{"_index":2665,"title":{},"content":{"540":{},"542":{},"552":{}}}],["self",{"_index":1170,"title":{"739":{}},"content":{"257":{},"260":{},"261":{},"314":{},"661":{},"687":{},"714":{},"722":{},"727":{},"739":{},"740":{},"785":{},"786":{}}}],["selfrepair",{"_index":3296,"title":{},"content":{"720":{}}}],["semant",{"_index":2071,"title":{},"content":{"390":{}}}],["send",{"_index":99,"title":{"601":{},"845":{},"851":{}},"content":{"18":{},"82":{},"98":{},"125":{},"149":{},"205":{},"271":{},"361":{},"362":{},"369":{},"371":{},"375":{},"378":{},"420":{},"421":{},"450":{},"532":{},"564":{},"601":{},"624":{},"666":{},"696":{},"700":{},"712":{},"715":{},"732":{},"737":{},"762":{},"766":{},"806":{},"807":{},"808":{},"820":{},"832":{},"842":{},"843":{},"845":{},"852":{},"879":{},"893":{},"949":{},"951":{},"963":{},"964":{},"975":{}}}],["send/sign",{"_index":4006,"title":{},"content":{"956":{}}}],["send_transact",{"_index":3459,"title":{"975":{}},"content":{"762":{}}}],["sender",{"_index":1110,"title":{},"content":{"244":{},"245":{},"247":{},"248":{},"362":{},"781":{}}}],["senderaddr",{"_index":835,"title":{},"content":{"219":{}}}],["senderaddrlen",{"_index":836,"title":{},"content":{"219":{}}}],["sendtxn",{"_index":611,"title":{},"content":{"208":{}}}],["sens",{"_index":3227,"title":{},"content":{"689":{}}}],["sensit",{"_index":1270,"title":{},"content":{"269":{},"956":{}}}],["sent",{"_index":1742,"title":{"642":{}},"content":{"343":{},"344":{},"353":{},"360":{},"375":{},"399":{},"409":{},"718":{},"748":{},"764":{},"768":{},"808":{},"977":{}}}],["sentenc",{"_index":3979,"title":{},"content":{"954":{}}}],["separ",{"_index":2496,"title":{},"content":{"488":{},"538":{},"890":{},"898":{},"901":{},"907":{}}}],["sepolia",{"_index":2860,"title":{"638":{}},"content":{"638":{}}}],["sequenc",{"_index":468,"title":{},"content":{"186":{},"268":{},"541":{},"722":{}}}],["sequence_no",{"_index":808,"title":{},"content":{"218":{},"219":{}}}],["sequenti",{"_index":1613,"title":{},"content":{"316":{}}}],["seri",{"_index":3977,"title":{},"content":{"954":{}}}],["serial",{"_index":1559,"title":{},"content":{"314":{},"348":{},"360":{},"361":{},"371":{},"450":{}}}],["seriou",{"_index":3727,"title":{},"content":{"861":{}}}],["serv",{"_index":2790,"title":{},"content":{"600":{},"808":{},"898":{},"907":{},"910":{},"914":{}}}],["server",{"_index":2863,"title":{},"content":{"638":{},"793":{},"798":{},"803":{},"806":{},"956":{},"963":{}}}],["servic",{"_index":219,"title":{"347":{},"709":{},"855":{},"856":{}},"content":{"46":{},"220":{},"224":{},"227":{},"334":{},"341":{},"345":{},"346":{},"347":{},"348":{},"349":{},"350":{},"360":{},"464":{},"530":{},"599":{},"601":{},"651":{},"656":{},"683":{},"690":{},"691":{},"692":{},"694":{},"709":{},"724":{},"727":{},"852":{},"854":{},"855":{},"856":{},"929":{},"930":{},"950":{},"955":{},"956":{},"962":{},"963":{},"964":{},"974":{},"978":{},"979":{},"981":{},"982":{},"984":{},"986":{},"987":{},"988":{},"989":{},"990":{},"991":{},"995":{},"997":{},"1000":{}}}],["servicenam",{"_index":4041,"title":{},"content":{"974":{},"988":{},"991":{},"995":{},"997":{},"1000":{}}}],["session",{"_index":1259,"title":{},"content":{"269":{},"817":{}}}],["set",{"_index":229,"title":{"638":{}},"content":{"52":{},"217":{},"218":{},"219":{},"251":{},"270":{},"272":{},"274":{},"276":{},"400":{},"418":{},"493":{},"500":{},"541":{},"547":{},"616":{},"636":{},"638":{},"639":{},"661":{},"662":{},"663":{},"705":{},"736":{},"757":{},"786":{},"811":{},"835":{},"845":{},"848":{},"849":{},"850":{},"875":{},"900":{},"906":{},"909":{},"913":{},"923":{},"934":{},"956":{}}}],["set/2",{"_index":2587,"title":{"516":{}},"content":{}}],["set/3",{"_index":2526,"title":{"500":{}},"content":{}}],["set_at/3",{"_index":2509,"title":{"493":{}},"content":{}}],["set_cod",{"_index":2243,"title":{},"content":{"418":{}}}],["set_code/1",{"_index":2350,"title":{"451":{}},"content":{}}],["set_cont",{"_index":2242,"title":{},"content":{"418":{}}}],["set_content/1",{"_index":2348,"title":{"450":{}},"content":{}}],["set_typ",{"_index":2208,"title":{},"content":{"418":{},"420":{},"421":{}}}],["set_type/1",{"_index":2347,"title":{"449":{}},"content":{}}],["setkeyindex",{"_index":1368,"title":{},"content":{"276":{}}}],["setkeyindex(int",{"_index":1353,"title":{"274":{}},"content":{}}],["setrootkey",{"_index":1335,"title":{"270":{}},"content":{}}],["setup",{"_index":2724,"title":{"958":{}},"content":{"563":{},"898":{},"907":{},"910":{},"914":{}}}],["seven",{"_index":1400,"title":{},"content":{"287":{}}}],["sever",{"_index":912,"title":{},"content":{"220":{},"263":{},"309":{},"317":{},"323":{},"333":{},"335":{},"360":{},"645":{},"648":{},"670":{},"683":{},"690":{},"701":{},"714":{},"728":{},"737":{},"782":{},"848":{},"888":{},"897":{},"962":{},"963":{}}}],["sha",{"_index":3091,"title":{},"content":{"673":{},"805":{}}}],["sha2",{"_index":998,"title":{},"content":{"229":{}}}],["sha2/sha3",{"_index":3135,"title":{},"content":{"680":{}}}],["sha256",{"_index":784,"title":{},"content":{"218":{},"219":{},"224":{},"229":{},"467":{},"468":{},"469":{},"471":{},"694":{}}}],["sha256(auth_se",{"_index":990,"title":{},"content":{"225":{}}}],["sha256(replacederivationpath(derivationpath",{"_index":963,"title":{},"content":{"224":{}}}],["sha256(sha256(wk_{a",{"_index":978,"title":{},"content":{"225":{}}}],["sha256hash",{"_index":351,"title":{"182":{}},"content":{"89":{},"90":{},"123":{},"124":{},"182":{}}}],["sha3",{"_index":3176,"title":{},"content":{"694":{}}}],["sha3_256",{"_index":821,"title":{},"content":{"219":{},"229":{},"468":{},"471":{}}}],["sha3_512",{"_index":823,"title":{},"content":{"219":{},"229":{},"468":{},"471":{}}}],["sha512",{"_index":775,"title":{},"content":{"218":{},"219":{},"229":{},"468":{},"471":{}}}],["sha512(key=masterse",{"_index":965,"title":{},"content":{"224":{}}}],["sha512(sha512(ecdh\\_secret",{"_index":987,"title":{},"content":{"225":{}}}],["sha512(sha512(ecdh_secret",{"_index":776,"title":{},"content":{"218":{},"219":{}}}],["shard",{"_index":1121,"title":{"735":{}},"content":{"250":{},"251":{},"315":{},"369":{},"661":{},"717":{},"718":{},"730":{},"731":{},"735":{},"736":{},"738":{},"739":{},"742":{},"744":{},"748":{},"749":{},"750":{},"751":{},"806":{}}}],["share",{"_index":240,"title":{"264":{},"339":{},"612":{}},"content":{"61":{},"137":{},"259":{},"264":{},"277":{},"329":{},"336":{},"339":{},"354":{},"360":{},"612":{},"615":{},"635":{},"655":{},"665":{},"698":{},"765":{},"869":{},"890":{},"901":{},"902":{},"906":{},"909":{},"918":{},"920":{},"935":{},"951":{},"957":{}}}],["sharedprefer",{"_index":4008,"title":{},"content":{"956":{}}}],["sharedsecret",{"_index":239,"title":{"61":{},"136":{}},"content":{"61":{},"63":{},"136":{},"137":{},"177":{}}}],["sharedsecrets.storagenoncepublickey",{"_index":246,"title":{},"content":{"62":{}}}],["sherlock",{"_index":2621,"title":{},"content":{"525":{}}}],["shield",{"_index":2858,"title":{},"content":{"616":{},"636":{},"815":{}}}],["ship",{"_index":1473,"title":{},"content":{"308":{},"310":{}}}],["short",{"_index":1077,"title":{},"content":{"239":{},"356":{}}}],["shorter",{"_index":3292,"title":{},"content":{"717":{}}}],["shorthand",{"_index":2517,"title":{},"content":{"496":{},"498":{}}}],["shortnam",{"_index":4040,"title":{},"content":{"974":{},"995":{}}}],["show",{"_index":613,"title":{},"content":{"209":{},"656":{},"889":{},"904":{},"913":{},"956":{}}}],["showcas",{"_index":3537,"title":{},"content":{"793":{}}}],["shown",{"_index":616,"title":{},"content":{"209":{},"890":{},"956":{}}}],["shuffl",{"_index":4001,"title":{},"content":{"956":{}}}],["side",{"_index":2663,"title":{},"content":{"540":{},"545":{},"546":{},"793":{},"806":{},"826":{},"833":{},"890":{},"901":{}}}],["sidebar",{"_index":4067,"title":{},"content":{"1003":{}}}],["sign",{"_index":446,"title":{"219":{}},"content":{"168":{},"170":{},"204":{},"219":{},"269":{},"276":{},"292":{},"304":{},"305":{},"320":{},"344":{},"472":{},"666":{},"728":{},"753":{},"811":{},"812":{},"813":{},"814":{},"834":{},"837":{},"912":{},"962":{},"963":{},"964":{},"975":{},"996":{},"997":{},"999":{},"1000":{},"1001":{}}}],["sign/encrypt",{"_index":3581,"title":{},"content":{"803":{}}}],["sign_encrypt",{"_index":1278,"title":{},"content":{"269":{}}}],["sign_len",{"_index":855,"title":{},"content":{"219":{}}}],["sign_payload",{"_index":4059,"title":{"999":{}},"content":{}}],["sign_transact",{"_index":4054,"title":{"996":{}},"content":{}}],["sign_with_recovery/1",{"_index":2389,"title":{"472":{}},"content":{}}],["signatur",{"_index":135,"title":{"214":{}},"content":{"21":{},"108":{},"209":{},"214":{},"216":{},"217":{},"218":{},"219":{},"253":{},"268":{},"273":{},"276":{},"328":{},"329":{},"330":{},"335":{},"368":{},"392":{},"445":{},"446":{},"472":{},"633":{},"662":{},"670":{},"675":{},"680":{},"727":{},"750":{},"753":{},"782":{},"817":{},"826":{},"964":{},"998":{}}}],["signature_payload",{"_index":2390,"title":{},"content":{"472":{}}}],["signcurrentkey(hashtosign",{"_index":1464,"title":{"304":{}},"content":{}}],["signecdsa",{"_index":1370,"title":{},"content":{"276":{},"304":{}}}],["signecdsa(hashtosign",{"_index":1431,"title":{"292":{}},"content":{}}],["signecdsa(int",{"_index":1363,"title":{"276":{}},"content":{}}],["signedpayload",{"_index":4061,"title":{},"content":{"1001":{}}}],["signedtx",{"_index":4058,"title":{},"content":{"998":{}}}],["signhash.c",{"_index":814,"title":{},"content":{"219":{}}}],["signifi",{"_index":860,"title":{},"content":{"219":{},"269":{},"900":{}}}],["signific",{"_index":2764,"title":{},"content":{"604":{},"648":{},"913":{},"922":{},"936":{},"941":{}}}],["significantli",{"_index":2818,"title":{},"content":{"612":{},"619":{},"678":{},"913":{}}}],["signpastkey(archethicindex",{"_index":1466,"title":{"305":{}},"content":{}}],["signtoasn",{"_index":1231,"title":{},"content":{"268":{}}}],["signtoasn(byt",{"_index":1227,"title":{"268":{}},"content":{}}],["signup",{"_index":3942,"title":{},"content":{"950":{}}}],["similar",{"_index":857,"title":{},"content":{"219":{},"316":{},"461":{},"462":{},"463":{},"543":{},"544":{},"633":{},"823":{},"826":{}}}],["similarli",{"_index":1234,"title":{},"content":{"268":{},"660":{},"825":{}}}],["simpl",{"_index":695,"title":{},"content":{"217":{},"314":{},"319":{},"330":{},"374":{},"648":{},"696":{},"755":{},"787":{},"793":{},"799":{},"807":{},"821":{},"948":{},"955":{},"1002":{}}}],["simpli",{"_index":2945,"title":{},"content":{"649":{},"811":{},"816":{}}}],["simplifi",{"_index":953,"title":{},"content":{"224":{},"412":{},"953":{},"954":{}}}],["simul",{"_index":1638,"title":{},"content":{"281":{},"346":{},"546":{},"547":{},"696":{},"745":{}}}],["singl",{"_index":620,"title":{},"content":{"209":{},"241":{},"310":{},"324":{},"378":{},"660":{},"696":{},"701":{},"749":{},"750":{},"753":{},"759":{},"792":{},"793":{},"805":{},"806":{},"820":{},"953":{}}}],["site",{"_index":3206,"title":{"811":{},"812":{},"814":{}},"content":{"687":{},"793":{},"809":{},"811":{},"812":{},"813":{},"814":{},"957":{}}}],["site'",{"_index":3628,"title":{"815":{}},"content":{"817":{}}}],["situat",{"_index":1991,"title":{},"content":{"378":{},"792":{}}}],["size",{"_index":416,"title":{"268":{}},"content":{"119":{},"155":{},"164":{},"176":{},"194":{},"224":{},"227":{},"267":{},"268":{},"269":{},"314":{},"315":{},"316":{},"335":{},"361":{},"421":{},"423":{},"464":{},"695":{},"696":{},"753":{},"805":{},"900":{},"913":{},"922":{},"925":{}}}],["size/1",{"_index":2258,"title":{"482":{},"497":{},"519":{}},"content":{"423":{}}}],["sizeof(ecdhpointx",{"_index":764,"title":{},"content":{"218":{},"219":{}}}],["sizer",{"_index":1229,"title":{"268":{}},"content":{}}],["skip",{"_index":15,"title":{"5":{}},"content":{"5":{},"6":{},"159":{}}}],["skip.if",{"_index":16,"title":{},"content":{"6":{}}}],["sla",{"_index":1738,"title":{},"content":{"341":{}}}],["slash",{"_index":2257,"title":{},"content":{"423":{}}}],["slippag",{"_index":2876,"title":{"923":{},"940":{}},"content":{"639":{},"872":{},"906":{},"913":{},"923":{},"924":{}}}],["slot",{"_index":1129,"title":{"734":{},"744":{}},"content":{"251":{},"252":{},"253":{},"256":{},"257":{},"288":{},"289":{},"293":{},"295":{},"296":{},"299":{},"300":{},"303":{},"305":{},"732":{},"734":{},"744":{},"745":{},"747":{},"748":{}}}],["slotposiot",{"_index":1472,"title":{},"content":{"307":{}}}],["slotposit",{"_index":1467,"title":{},"content":{"305":{},"307":{}}}],["slotvalid",{"_index":1145,"title":{},"content":{"253":{}}}],["slow",{"_index":3014,"title":{},"content":{"660":{}}}],["small",{"_index":2651,"title":{"612":{}},"content":{"538":{},"549":{},"604":{},"612":{},"664":{},"713":{},"956":{}}}],["smallest",{"_index":2748,"title":{},"content":{"602":{},"805":{},"876":{}}}],["smart",{"_index":114,"title":{"336":{},"367":{},"372":{},"373":{},"379":{},"397":{},"402":{},"403":{},"412":{},"419":{},"422":{},"530":{},"531":{},"538":{},"545":{},"546":{},"549":{},"550":{},"551":{},"571":{},"828":{},"850":{},"931":{},"942":{}},"content":{"18":{},"28":{},"55":{},"61":{},"98":{},"125":{},"137":{},"184":{},"315":{},"329":{},"335":{},"336":{},"367":{},"368":{},"369":{},"370":{},"371":{},"375":{},"378":{},"379":{},"382":{},"390":{},"391":{},"392":{},"393":{},"394":{},"400":{},"401":{},"406":{},"412":{},"415":{},"416":{},"422":{},"427":{},"428":{},"448":{},"450":{},"458":{},"464":{},"517":{},"527":{},"530":{},"533":{},"538":{},"539":{},"540":{},"544":{},"545":{},"546":{},"547":{},"549":{},"550":{},"553":{},"554":{},"559":{},"567":{},"568":{},"569":{},"570":{},"571":{},"572":{},"624":{},"627":{},"632":{},"638":{},"648":{},"651":{},"696":{},"707":{},"708":{},"724":{},"727":{},"751":{},"755":{},"762":{},"782":{},"793":{},"825":{},"826":{},"828":{},"848":{},"850":{},"860":{},"872":{},"873":{},"921":{},"929":{},"930":{},"935":{},"976":{},"997":{}}}],["smartphon",{"_index":3072,"title":{},"content":{"662":{},"692":{}}}],["smoothli",{"_index":2942,"title":{},"content":{"648":{}}}],["snapshot",{"_index":1886,"title":{},"content":{"371":{},"717":{},"900":{}}}],["sobelow",{"_index":1695,"title":{},"content":{"321":{}}}],["soc",{"_index":3108,"title":{},"content":{"677":{}}}],["social",{"_index":2895,"title":{},"content":{"611":{},"644":{},"712":{}}}],["sofia",{"_index":2185,"title":{},"content":{"409":{}}}],["soft",{"_index":3415,"title":{},"content":{"748":{}}}],["softwar",{"_index":497,"title":{},"content":{"204":{},"232":{},"239":{},"263":{},"264":{},"334":{},"662":{},"670":{},"672":{},"678":{},"680":{},"782":{}}}],["sold_item",{"_index":2251,"title":{},"content":{"422":{}}}],["sole",{"_index":3146,"title":{},"content":{"682":{}}}],["solicit",{"_index":2767,"title":{},"content":{"604":{},"962":{}}}],["solid",{"_index":3213,"title":{},"content":{"688":{}}}],["solut",{"_index":1482,"title":{"711":{},"750":{}},"content":{"309":{},"315":{},"361":{},"659":{},"687":{},"788":{},"789":{},"790":{},"791":{},"792":{},"793":{},"798":{},"963":{},"1002":{}}}],["solv",{"_index":3018,"title":{},"content":{"661":{}}}],["someon",{"_index":2920,"title":{},"content":{"612":{},"949":{}}}],["someth",{"_index":2214,"title":{},"content":{"413":{},"464":{},"465":{},"535":{},"536":{},"694":{},"696":{}}}],["sometim",{"_index":1590,"title":{},"content":{"280":{},"315":{},"735":{}}}],["somewher",{"_index":1889,"title":{},"content":{"371":{}}}],["soon",{"_index":569,"title":{},"content":{"205":{},"206":{},"696":{},"875":{},"894":{},"951":{}}}],["sort",{"_index":2502,"title":{},"content":{"490":{},"665":{}}}],["sort/1",{"_index":2498,"title":{"489":{}},"content":{}}],["sort_by/2",{"_index":2500,"title":{"490":{}},"content":{}}],["sortord",{"_index":33,"title":{"7":{}},"content":{"7":{},"144":{},"145":{}}}],["sortorder.asc",{"_index":40,"title":{},"content":{"8":{}}}],["sortorder.desc",{"_index":42,"title":{},"content":{"8":{}}}],["sound",{"_index":3088,"title":{},"content":{"671":{}}}],["sourc",{"_index":507,"title":{},"content":{"204":{},"216":{},"217":{},"218":{},"219":{},"321":{},"346":{},"370":{},"371":{},"378":{},"399":{},"602":{},"610":{},"625":{},"658":{},"677":{},"689":{},"708":{},"725":{},"785":{},"809":{},"830":{},"835":{},"841":{},"877":{},"935":{},"953":{},"957":{}}}],["sovereign",{"_index":3202,"title":{},"content":{"687":{}}}],["spa",{"_index":3543,"title":{},"content":{"793":{}}}],["space",{"_index":982,"title":{},"content":{"225":{},"861":{},"941":{},"956":{}}}],["spawn",{"_index":1663,"title":{},"content":{"322":{},"324":{},"327":{}}}],["speak",{"_index":3157,"title":{},"content":{"691":{}}}],["special",{"_index":2259,"title":{},"content":{"424":{},"648":{},"680":{}}}],["specif",{"_index":397,"title":{"220":{},"534":{},"535":{},"575":{},"631":{},"904":{}},"content":{"111":{},"131":{},"204":{},"217":{},"223":{},"233":{},"312":{},"314":{},"315":{},"379":{},"383":{},"395":{},"402":{},"406":{},"409":{},"438":{},"442":{},"443":{},"533":{},"534":{},"535":{},"541":{},"573":{},"574":{},"575":{},"600":{},"619":{},"688":{},"695":{},"704":{},"756":{},"823":{},"824":{},"825":{},"844":{},"845":{},"852":{},"856":{},"881":{},"885":{},"890":{},"894":{},"904":{},"963":{},"1002":{}}}],["specifi",{"_index":450,"title":{},"content":{"164":{},"168":{},"194":{},"224":{},"329":{},"374":{},"375":{},"380":{},"401":{},"406":{},"413":{},"414":{},"454":{},"533":{},"534":{},"535":{},"545":{},"548":{},"629":{},"761":{},"781":{},"811":{},"823":{},"825":{},"826":{},"847":{},"852":{},"897":{},"909":{},"913":{}}}],["specificatonfn",{"_index":798,"title":{},"content":{"218":{},"219":{}}}],["spectrometri",{"_index":3365,"title":{},"content":{"728":{}}}],["specul",{"_index":3869,"title":{},"content":{"929":{}}}],["speed",{"_index":2738,"title":{},"content":{"589":{},"590":{},"591":{},"592":{},"593":{},"594":{},"842":{}}}],["spend",{"_index":1105,"title":{},"content":{"243":{},"246":{}}}],["spent",{"_index":330,"title":{},"content":{"82":{},"149":{},"243":{},"244":{},"246":{},"247":{}}}],["split",{"_index":1126,"title":{},"content":{"251":{},"333":{},"378":{},"735":{},"749":{},"751":{},"791":{}}}],["spot",{"_index":2674,"title":{},"content":{"541":{}}}],["sqrt/1",{"_index":2547,"title":{"507":{}},"content":{}}],["squar",{"_index":2551,"title":{},"content":{"507":{}}}],["squential",{"_index":1225,"title":{},"content":{"267":{}}}],["ssl",{"_index":3571,"title":{"801":{},"813":{}},"content":{"801":{},"803":{},"813":{},"815":{}}}],["stabil",{"_index":3733,"title":{},"content":{"870":{},"930":{}}}],["stabl",{"_index":3387,"title":{},"content":{"738":{},"928":{},"936":{}}}],["stack",{"_index":1017,"title":{"238":{}},"content":{"943":{}}}],["stake",{"_index":3772,"title":{},"content":{"881":{},"894":{},"925":{},"926":{}}}],["stamp",{"_index":132,"title":{},"content":{"21":{},"108":{},"662":{},"666":{},"782":{}}}],["stamp'",{"_index":3484,"title":{},"content":{"782":{}}}],["stamp.nod",{"_index":3483,"title":{},"content":{"782":{}}}],["stand",{"_index":2840,"title":{},"content":{"629":{},"677":{}}}],["standalon",{"_index":1703,"title":{"324":{}},"content":{}}],["standard",{"_index":1777,"title":{"693":{},"756":{}},"content":{"349":{},"545":{},"648":{},"664":{},"682":{},"683":{},"685":{},"693":{},"756":{},"872":{}}}],["star",{"_index":3830,"title":{},"content":{"900":{}}}],["start",{"_index":589,"title":{"658":{}},"content":{"206":{},"218":{},"251":{},"260":{},"315":{},"322":{},"335":{},"381":{},"390":{},"487":{},"514":{},"563":{},"655":{},"666":{},"705":{},"720":{},"722":{},"731":{},"733":{},"735":{},"849":{},"850":{},"852":{},"864":{},"866":{},"883":{},"941":{},"945":{},"948":{}}}],["start_dat",{"_index":1960,"title":{},"content":{"378":{}}}],["startup",{"_index":2978,"title":{},"content":{"658":{}}}],["stat",{"_index":1599,"title":{},"content":{"315":{},"317":{}}}],["state",{"_index":102,"title":{"184":{},"513":{},"550":{},"946":{}},"content":{"18":{},"19":{},"98":{},"99":{},"125":{},"184":{},"239":{},"258":{},"327":{},"346":{},"367":{},"369":{},"371":{},"401":{},"424":{},"425":{},"450":{},"464":{},"513":{},"514":{},"515":{},"516":{},"517":{},"550":{},"554":{},"643":{},"731":{},"736":{},"739":{},"781":{},"946":{},"948":{}}}],["state.delete(key",{"_index":2590,"title":{},"content":{"517":{}}}],["state.get(\"ath",{"_index":2120,"title":{},"content":{"400":{}}}],["state.get(\"colonel",{"_index":1944,"title":{},"content":{"377":{}}}],["state.get(\"count",{"_index":2087,"title":{},"content":{"393":{},"550":{}}}],["state.get(\"lock_tim",{"_index":2192,"title":{},"content":{"409":{}}}],["state.get(\"miss",{"_index":1942,"title":{},"content":{"377":{}}}],["state.get(\"secret_hash",{"_index":2098,"title":{},"content":{"395":{},"409":{}}}],["state.get(\"voters_genesis_address",{"_index":1937,"title":{},"content":{"377":{}}}],["state.get(key",{"_index":2586,"title":{},"content":{"515":{}}}],["state.get/2",{"_index":2715,"title":{},"content":{"550":{}}}],["state.set(\"ath",{"_index":2124,"title":{},"content":{"400":{}}}],["state.set(\"colonel",{"_index":1949,"title":{},"content":{"377":{}}}],["state.set(\"count",{"_index":2718,"title":{},"content":{"550":{}}}],["state.set(\"miss",{"_index":1948,"title":{},"content":{"377":{}}}],["state.set(\"voters_genesis_address",{"_index":1950,"title":{},"content":{"377":{}}}],["state.set(key",{"_index":2588,"title":{},"content":{"516":{}}}],["stateless",{"_index":1878,"title":{"371":{}},"content":{"781":{}}}],["statement",{"_index":2225,"title":{"418":{}},"content":{"416":{}}}],["static",{"_index":1209,"title":{"811":{},"812":{},"814":{},"815":{}},"content":{"266":{},"270":{},"696":{},"793":{},"795":{},"809":{},"811":{},"814":{},"954":{}}}],["statist",{"_index":1625,"title":{},"content":{"319":{},"734":{},"900":{}}}],["statu",{"_index":665,"title":{"733":{},"840":{}},"content":{"216":{},"371":{},"464":{},"465":{},"630":{},"648":{},"733":{},"750":{},"752":{},"808":{},"824":{},"900":{}}}],["stay",{"_index":1957,"title":{},"content":{"378":{},"873":{},"938":{}}}],["stem",{"_index":3138,"title":{},"content":{"680":{}}}],["step",{"_index":827,"title":{"835":{},"836":{},"837":{},"897":{},"898":{},"906":{},"907":{},"909":{},"910":{},"913":{},"914":{}},"content":{"219":{},"321":{},"322":{},"370":{},"544":{},"545":{},"633":{},"645":{},"658":{},"678":{},"700":{},"790":{},"825":{},"826":{},"827":{},"834":{},"835":{},"862":{},"912":{}}}],["still",{"_index":2201,"title":{},"content":{"402":{},"601":{},"656":{},"662":{},"665":{},"680":{},"692":{},"789":{},"793":{},"799":{},"802":{},"939":{}}}],["stock",{"_index":1881,"title":{},"content":{"371":{}}}],["stop",{"_index":2151,"title":{},"content":{"403":{}}}],["storag",{"_index":242,"title":{"314":{},"319":{},"737":{}},"content":{"61":{},"136":{},"137":{},"204":{},"249":{},"260":{},"264":{},"278":{},"279":{},"308":{},"309":{},"312":{},"313":{},"315":{},"316":{},"319":{},"332":{},"333":{},"336":{},"354":{},"464":{},"545":{},"560":{},"661":{},"666":{},"685":{},"696":{},"700":{},"730":{},"732":{},"733":{},"735":{},"737":{},"738":{},"740":{},"741":{},"747":{},"749":{},"750":{},"848":{},"976":{}}}],["storagenoncepublickey",{"_index":245,"title":{},"content":{"61":{}}}],["store",{"_index":306,"title":{"956":{}},"content":{"76":{},"150":{},"196":{},"201":{},"203":{},"204":{},"217":{},"218":{},"219":{},"220":{},"225":{},"234":{},"235":{},"249":{},"263":{},"264":{},"270":{},"271":{},"274":{},"277":{},"279":{},"287":{},"295":{},"299":{},"312":{},"354":{},"371":{},"515":{},"516":{},"554":{},"573":{},"574":{},"575":{},"624":{},"655":{},"661":{},"663":{},"682":{},"690":{},"691":{},"696":{},"704":{},"728":{},"731":{},"741":{},"747":{},"750":{},"751":{},"781":{},"791":{},"806":{},"813":{},"955":{},"956":{}}}],["storesit",{"_index":811,"title":{},"content":{"218":{}}}],["str",{"_index":2380,"title":{},"content":{"468":{},"477":{},"478":{},"519":{},"521":{},"523":{},"524":{},"525":{}}}],["str1",{"_index":2595,"title":{},"content":{"520":{}}}],["str2",{"_index":2596,"title":{},"content":{"520":{}}}],["straighforward",{"_index":1557,"title":{},"content":{"314":{}}}],["straightforward",{"_index":2812,"title":{},"content":{"619":{},"876":{},"890":{},"905":{},"909":{}}}],["strategi",{"_index":1073,"title":{},"content":{"239":{},"312":{},"314":{},"861":{},"872":{},"894":{},"902":{},"926":{},"928":{}}}],["stream",{"_index":1561,"title":{"360":{}},"content":{"314":{},"359":{},"360":{},"362":{}}}],["strengthen",{"_index":2845,"title":{},"content":{"630":{},"824":{}}}],["strict",{"_index":3053,"title":{},"content":{"664":{}}}],["string",{"_index":119,"title":{"186":{},"383":{},"518":{}},"content":{"18":{},"19":{},"28":{},"29":{},"31":{},"32":{},"34":{},"35":{},"43":{},"44":{},"55":{},"56":{},"58":{},"59":{},"73":{},"74":{},"79":{},"80":{},"82":{},"83":{},"86":{},"87":{},"89":{},"90":{},"98":{},"99":{},"105":{},"106":{},"119":{},"155":{},"162":{},"164":{},"176":{},"186":{},"194":{},"378":{},"381":{},"383":{},"390":{},"395":{},"401":{},"411":{},"415":{},"425":{},"426":{},"427":{},"428":{},"450":{},"464":{},"465":{},"474":{},"475":{},"476":{},"478":{},"479":{},"488":{},"509":{},"518":{},"519":{},"521":{},"523":{},"524":{},"525":{},"535":{},"550":{},"954":{},"968":{},"974":{},"976":{},"977":{},"979":{},"980":{},"982":{},"983":{},"986":{},"988":{},"989":{},"991":{},"992":{},"995":{},"997":{},"998":{},"1000":{},"1001":{}}}],["string.from_number(13",{"_index":2604,"title":{},"content":{"522":{}}}],["string.from_number(13.2",{"_index":2606,"title":{},"content":{"522":{}}}],["string.from_number(count",{"_index":2687,"title":{},"content":{"549":{}}}],["string.in?(\"bob,alice,julia",{"_index":2594,"title":{},"content":{"520":{}}}],["string.siz",{"_index":2593,"title":{},"content":{"519":{}}}],["string.size(\"hello",{"_index":2592,"title":{},"content":{"519":{}}}],["string.to_hex(\"592ac76afa",{"_index":2609,"title":{},"content":{"523":{}}}],["string.to_hex(\"hello",{"_index":2611,"title":{},"content":{"523":{}}}],["string.to_lowercase(\"#{firstnam",{"_index":2117,"title":{},"content":{"399":{}}}],["string.to_lowercase(\"sherlock",{"_index":2619,"title":{},"content":{"525":{}}}],["string.to_numb",{"_index":2600,"title":{},"content":{"521":{}}}],["string.to_number(\"12",{"_index":2598,"title":{},"content":{"521":{}}}],["string.to_number(\"12.1",{"_index":2601,"title":{},"content":{"521":{}}}],["string.to_number(contract.cont",{"_index":2686,"title":{},"content":{"549":{}}}],["string.to_uppercase(\"arsèn",{"_index":2615,"title":{},"content":{"524":{}}}],["string_bip_44",{"_index":803,"title":{},"content":{"218":{},"219":{}}}],["strong",{"_index":2846,"title":{},"content":{"630":{},"824":{},"955":{}}}],["struct",{"_index":1816,"title":{},"content":{"362":{}}}],["structu",{"_index":1500,"title":{},"content":{"309":{}}}],["structur",{"_index":113,"title":{"241":{},"310":{},"311":{},"353":{},"782":{}},"content":{"18":{},"217":{},"218":{},"257":{},"267":{},"269":{},"270":{},"277":{},"310":{},"311":{},"312":{},"313":{},"315":{},"316":{},"353":{},"389":{},"390":{},"427":{},"450":{},"755":{},"782":{},"815":{},"820":{}}}],["style",{"_index":1075,"title":{},"content":{"239":{},"604":{},"705":{}}}],["stylesheet",{"_index":3533,"title":{},"content":{"793":{}}}],["sub",{"_index":1246,"title":{},"content":{"269":{},"316":{}}}],["subdomain",{"_index":3568,"title":{},"content":{"799":{}}}],["subexpress",{"_index":2584,"title":{},"content":{"512":{}}}],["subject",{"_index":1868,"title":{},"content":{"369":{},"414":{},"604":{},"662":{},"712":{},"736":{},"738":{},"789":{},"791":{},"924":{}}}],["submit",{"_index":1732,"title":{},"content":{"338":{},"339":{},"340":{},"342":{},"346":{},"542":{},"611":{},"643":{},"708":{},"752":{},"898":{},"906":{},"907":{},"910":{},"913":{},"914":{},"923":{}}}],["subnet",{"_index":1669,"title":{},"content":{"322":{}}}],["subpart",{"_index":2704,"title":{},"content":{"551":{}}}],["subscrib",{"_index":475,"title":{},"content":{"196":{},"198":{},"201":{},"464":{},"748":{},"752":{}}}],["subscript",{"_index":224,"title":{"583":{}},"content":{"48":{},"78":{},"81":{},"157":{},"577":{},"578":{},"579":{},"580":{},"581":{},"582":{},"583":{},"965":{}}}],["subsequ",{"_index":980,"title":{},"content":{"225":{},"825":{}}}],["subset",{"_index":1125,"title":{"251":{},"746":{}},"content":{"251":{},"252":{},"255":{},"256":{},"315":{},"317":{},"318":{},"442":{},"443":{},"731":{},"732":{},"733":{},"734":{},"737":{},"742":{},"745":{},"746":{},"748":{}}}],["substanti",{"_index":3818,"title":{},"content":{"894":{}}}],["substructur",{"_index":1281,"title":{},"content":{"269":{}}}],["subtract",{"_index":658,"title":{},"content":{"216":{},"612":{}}}],["succeed",{"_index":3261,"title":{},"content":{"705":{}}}],["success",{"_index":816,"title":{"968":{},"971":{},"974":{},"977":{},"980":{},"983":{},"986":{},"989":{},"992":{},"995":{},"998":{},"1001":{}},"content":{"219":{},"260":{},"283":{},"545":{},"688":{},"705":{},"838":{},"898":{},"907":{},"910":{},"914":{}}}],["successfulli",{"_index":305,"title":{},"content":{"76":{},"203":{},"239":{},"616":{},"636":{},"837":{}}}],["successor",{"_index":1648,"title":{},"content":{"320":{}}}],["such",{"_index":488,"title":{},"content":{"204":{},"269":{},"349":{},"353":{},"464":{},"604":{},"611":{},"619":{},"648":{},"660":{},"677":{},"682":{},"693":{},"698":{},"710":{},"717":{},"733":{},"738":{},"762":{},"785":{},"789":{},"792":{},"793":{},"798":{},"824":{},"868":{},"872":{},"928":{},"929":{},"953":{}}}],["suffer",{"_index":1504,"title":{},"content":{"309":{}}}],["suffici",{"_index":3421,"title":{},"content":{"750":{},"897":{}}}],["sugar",{"_index":2155,"title":{},"content":{"405":{}}}],["suggest",{"_index":2067,"title":{},"content":{"390":{},"404":{},"486":{},"604":{},"689":{},"799":{}}}],["suit",{"_index":1697,"title":{},"content":{"321":{},"793":{},"894":{},"902":{}}}],["suitabl",{"_index":2143,"title":{},"content":{"403":{}}}],["sum",{"_index":1972,"title":{},"content":{"378":{},"785":{}}}],["sum(a",{"_index":2078,"title":{},"content":{"392":{}}}],["sum(list",{"_index":2079,"title":{},"content":{"392":{}}}],["summar",{"_index":348,"title":{},"content":{"89":{},"342":{},"747":{}}}],["summari",{"_index":75,"title":{"891":{},"892":{}},"content":{"15":{},"89":{},"111":{},"113":{},"251":{},"252":{},"253":{},"257":{},"315":{},"317":{},"318":{},"342":{},"345":{},"346":{},"648":{},"717":{},"732":{},"733":{},"734":{},"740":{},"745":{},"747":{},"749":{},"836":{}}}],["summarytim",{"_index":81,"title":{},"content":{"15":{}}}],["sumofallweightedtoken",{"_index":3924,"title":{},"content":{"947":{}}}],["sunday",{"_index":2639,"title":{},"content":{"535":{}}}],["super",{"_index":3184,"title":{},"content":{"685":{}}}],["supervis",{"_index":1122,"title":{},"content":{"250":{},"254":{},"353":{},"359":{},"661":{},"714":{},"719":{},"727":{}}}],["supervisor",{"_index":1066,"title":{"254":{}},"content":{"239":{}}}],["suppli",{"_index":251,"title":{},"content":{"58":{},"143":{},"218":{},"219":{},"648":{},"758":{},"759":{},"760":{},"761":{},"785":{},"875":{}}}],["supplier",{"_index":3312,"title":{},"content":{"724":{},"903":{}}}],["support",{"_index":529,"title":{"611":{},"622":{}},"content":{"204":{},"206":{},"218":{},"219":{},"220":{},"225":{},"228":{},"229":{},"234":{},"251":{},"264":{},"308":{},"310":{},"312":{},"313":{},"315":{},"348":{},"354":{},"361":{},"362":{},"549":{},"605":{},"622":{},"638":{},"644":{},"659":{},"663":{},"664":{},"674":{},"680":{},"688":{},"700":{},"707":{},"709":{},"710":{},"735":{},"751":{},"753":{},"755":{},"801":{},"904":{},"927":{},"951":{},"953":{},"955":{},"963":{}}}],["suppos",{"_index":3937,"title":{},"content":{"949":{}}}],["sure",{"_index":590,"title":{},"content":{"206":{},"315":{},"332":{},"333":{},"336":{},"536":{},"645":{}}}],["sustain",{"_index":3109,"title":{},"content":{"678":{},"688":{},"785":{},"786":{},"904":{},"937":{}}}],["susten",{"_index":3511,"title":{},"content":{"786":{}}}],["sw_ok",{"_index":667,"title":{},"content":{"216":{},"219":{}}}],["swap",{"_index":1198,"title":{"867":{},"868":{},"911":{},"912":{},"913":{},"914":{},"924":{}},"content":{"263":{},"264":{},"613":{},"619":{},"629":{},"630":{},"632":{},"639":{},"823":{},"824":{},"859":{},"861":{},"868":{},"872":{},"875":{},"877":{},"880":{},"901":{},"902":{},"912":{},"913":{},"914":{},"916":{},"924":{},"933":{},"935":{},"939":{},"951":{}}}],["swap'",{"_index":3649,"title":{},"content":{"825":{}}}],["switch",{"_index":2849,"title":{"615":{},"635":{}},"content":{"615":{},"635":{},"956":{}}}],["symbiot",{"_index":3875,"title":{},"content":{"930":{}}}],["symbol",{"_index":250,"title":{},"content":{"58":{},"143":{},"638":{},"758":{},"759":{},"761":{}}}],["symmetr",{"_index":975,"title":{},"content":{"225":{},"269":{}}}],["sync",{"_index":1188,"title":{},"content":{"260":{},"319":{},"722":{},"739":{},"740":{},"741":{},"812":{}}}],["sync/r",{"_index":3297,"title":{},"content":{"739":{}}}],["synchron",{"_index":1178,"title":{"722":{},"741":{}},"content":{"258":{},"369":{},"600":{},"719":{},"722":{},"730":{},"734":{},"736":{}}}],["synchronizationnod",{"_index":3395,"title":{},"content":{"734":{}}}],["synergi",{"_index":3751,"title":{},"content":{"872":{}}}],["synopsi",{"_index":561,"title":{"205":{}},"content":{}}],["syntax",{"_index":2013,"title":{},"content":{"381":{},"382":{},"389":{},"390":{},"393":{},"394":{},"403":{},"603":{}}}],["system",{"_index":1038,"title":{"377":{},"884":{}},"content":{"239":{},"250":{},"314":{},"354":{},"377":{},"623":{},"661":{},"662":{},"677":{},"686":{},"687":{},"727":{},"729":{},"730":{},"735":{},"791":{},"792":{},"797":{},"798":{},"799":{},"830":{},"877":{},"881":{},"884":{},"897":{},"904":{},"906":{},"909":{},"913":{},"936":{},"955":{}}}],["t.t.,([0",{"_index":2577,"title":{},"content":{"512":{}}}],["tab",{"_index":2967,"title":{},"content":{"656":{},"845":{},"846":{},"847":{},"848":{},"849":{},"850":{},"851":{}}}],["tabl",{"_index":1101,"title":{"311":{},"345":{},"354":{},"355":{},"356":{},"357":{},"358":{},"893":{}},"content":{"242":{},"243":{},"245":{},"246":{},"248":{},"249":{},"279":{},"311":{},"315":{},"345":{},"354":{},"355":{},"356":{},"357":{},"358":{},"812":{},"813":{},"814":{},"893":{}}}],["tag",{"_index":2083,"title":{"424":{}},"content":{"392":{},"393":{},"424":{}}}],["take",{"_index":757,"title":{},"content":{"218":{},"219":{},"224":{},"239":{},"269":{},"275":{},"277":{},"287":{},"288":{},"289":{},"291":{},"310":{},"332":{},"395":{},"548":{},"689":{},"696":{},"728":{},"806":{},"827":{},"862":{},"875":{},"876":{},"877":{},"913":{},"948":{},"954":{}}}],["taken",{"_index":760,"title":{},"content":{"218":{},"604":{},"736":{},"782":{},"826":{},"873":{}}}],["talk",{"_index":3545,"title":{},"content":{"793":{}}}],["target",{"_index":1582,"title":{"793":{}},"content":{"315":{},"316":{},"320":{},"321":{},"322":{},"332":{},"782":{},"835":{},"848":{}}}],["task",{"_index":1091,"title":{},"content":{"240":{},"258":{},"261":{},"324":{},"670":{},"802":{},"953":{}}}],["tbnb",{"_index":2869,"title":{},"content":{"638":{}}}],["tcp",{"_index":1798,"title":{},"content":{"353":{},"360":{}}}],["team",{"_index":2910,"title":{},"content":{"611":{},"840":{},"944":{},"957":{}}}],["tech",{"_index":571,"title":{},"content":{"205":{}}}],["tech/pourquoi",{"_index":3966,"title":{},"content":{"953":{}}}],["technic",{"_index":1653,"title":{"963":{}},"content":{"320":{},"344":{},"684":{},"688":{},"689":{},"691":{},"701":{},"705":{},"827":{},"840":{},"862":{},"965":{}}}],["techniqu",{"_index":2817,"title":{},"content":{"619":{},"662":{},"824":{}}}],["technolog",{"_index":1016,"title":{"238":{}},"content":{"239":{},"367":{},"619":{},"659":{},"661":{},"679":{},"682":{},"724":{},"725":{},"727":{},"823":{},"872":{}}}],["telegram",{"_index":2897,"title":{},"content":{"611":{},"644":{}}}],["telemetri",{"_index":1715,"title":{},"content":{"330":{}}}],["tell",{"_index":2890,"title":{},"content":{"641":{},"909":{}}}],["temp",{"_index":1361,"title":{},"content":{"275":{}}}],["temperatur",{"_index":1958,"title":{},"content":{"378":{}}}],["templat",{"_index":1240,"title":{},"content":{"269":{}}}],["temporari",{"_index":3081,"title":{},"content":{"670":{}}}],["term",{"_index":1510,"title":{},"content":{"310":{},"312":{},"314":{},"315":{},"354":{},"560":{},"688":{},"696":{},"705":{},"727":{},"730":{},"738":{},"904":{},"937":{}}}],["termin",{"_index":607,"title":{},"content":{"208":{},"589":{},"590":{},"591":{},"592":{},"593":{},"594":{},"796":{},"842":{},"843":{},"960":{}}}],["terminolog",{"_index":946,"title":{},"content":{"223":{}}}],["test",{"_index":510,"title":{"208":{},"540":{},"541":{},"542":{},"543":{},"544":{}},"content":{"204":{},"206":{},"263":{},"320":{},"321":{},"322":{},"388":{},"530":{},"538":{},"540":{},"541":{},"542":{},"543":{},"544":{},"545":{},"546":{},"547":{},"549":{},"555":{},"556":{},"562":{},"688":{},"704":{},"705":{},"728":{},"795":{},"796":{},"827":{},"862":{},"872":{},"873":{},"877":{},"953":{}}}],["testcoin_bal",{"_index":2297,"title":{},"content":{"438":{}}}],["testnet",{"_index":513,"title":{"561":{},"572":{},"615":{},"635":{},"637":{},"638":{}},"content":{"204":{},"205":{},"263":{},"322":{},"346":{},"564":{},"565":{},"567":{},"568":{},"569":{},"570":{},"571":{},"572":{},"601":{},"615":{},"635":{},"638":{},"705":{},"745":{},"819":{},"827":{},"862":{},"877":{},"956":{}}}],["testnet/mainnet",{"_index":3400,"title":{},"content":{"744":{}}}],["text",{"_index":443,"title":{},"content":{"160":{},"186":{},"388":{},"468":{},"471":{},"473":{},"510":{},"511":{},"512":{},"518":{},"521":{},"522":{},"523":{},"539":{},"553":{},"554":{},"603":{},"656":{},"782":{},"956":{}}}],["textual",{"_index":464,"title":{},"content":{"186":{}}}],["thank",{"_index":1616,"title":{},"content":{"316":{},"611":{},"664":{},"735":{},"861":{},"1002":{}}}],["that'",{"_index":2675,"title":{},"content":{"544":{},"545":{}}}],["the:transact",{"_index":3265,"title":{},"content":{"709":{}}}],["theft",{"_index":3070,"title":{},"content":{"662":{}}}],["theme",{"_index":3995,"title":{},"content":{"956":{}}}],["themselv",{"_index":3155,"title":{},"content":{"683":{},"701":{}}}],["therebi",{"_index":3716,"title":{},"content":{"861":{},"929":{}}}],["therefor",{"_index":1711,"title":{},"content":{"327":{},"589":{},"590":{},"591":{},"592":{},"593":{},"594":{},"601":{},"602":{},"664":{},"669":{},"677":{},"717":{},"740":{},"748":{},"842":{},"886":{},"963":{},"1002":{}}}],["thier",{"_index":745,"title":{},"content":{"218":{},"219":{}}}],["thing",{"_index":1060,"title":{},"content":{"239":{},"336":{},"385":{},"401":{},"642":{},"801":{},"807":{}}}],["think",{"_index":1046,"title":{},"content":{"239":{},"792":{}}}],["third",{"_index":1064,"title":{},"content":{"239":{},"470":{},"682":{},"688":{},"706":{},"956":{}}}],["those",{"_index":1048,"title":{},"content":{"239":{},"240":{},"249":{},"252":{},"254":{},"257":{},"310":{},"312":{},"313":{},"316":{},"319":{},"332":{},"333":{},"359":{},"549":{},"688":{},"701":{},"734":{},"740":{},"747":{},"782":{},"869":{},"928":{},"930":{}}}],["thread",{"_index":1051,"title":{},"content":{"239":{}}}],["threat",{"_index":3199,"title":{},"content":{"687":{},"861":{}}}],["three",{"_index":1751,"title":{},"content":{"334":{},"346":{},"454":{},"663":{},"815":{},"890":{},"927":{}}}],["threshhold",{"_index":1655,"title":{},"content":{"320":{}}}],["threshold",{"_index":1729,"title":{},"content":{"335":{},"349":{},"378":{},"771":{},"913":{}}}],["thrift",{"_index":1809,"title":{},"content":{"361":{}}}],["through",{"_index":915,"title":{},"content":{"220":{},"224":{},"262":{},"263":{},"289":{},"292":{},"306":{},"329":{},"332":{},"339":{},"342":{},"360":{},"361":{},"371":{},"393":{},"605":{},"633":{},"667":{},"688":{},"700":{},"707":{},"708":{},"712":{},"713":{},"715":{},"716":{},"718":{},"724":{},"727":{},"728":{},"747":{},"756":{},"793":{},"824":{},"825":{},"826":{},"830":{},"837":{},"838":{},"841":{},"860":{},"868":{},"877":{},"890":{},"894":{},"899":{},"902":{},"904":{},"909":{},"937":{},"963":{}}}],["throughput",{"_index":3035,"title":{},"content":{"663":{}}}],["throw",{"_index":1934,"title":{},"content":{"377":{},"395":{},"403":{},"409":{},"716":{}}}],["thu",{"_index":570,"title":{},"content":{"205":{},"401":{},"612":{},"678":{},"691":{},"935":{},"954":{}}}],["ti",{"_index":3124,"title":{},"content":{"678":{},"887":{}}}],["tick",{"_index":1759,"title":{},"content":{"346":{}}}],["tier",{"_index":3838,"title":{},"content":{"904":{}}}],["time",{"_index":108,"title":{"261":{},"526":{},"534":{},"626":{},"629":{},"811":{},"823":{}},"content":{"18":{},"82":{},"98":{},"111":{},"125":{},"131":{},"149":{},"209":{},"252":{},"310":{},"311":{},"314":{},"315":{},"330":{},"371":{},"375":{},"388":{},"400":{},"407":{},"409":{},"413":{},"425":{},"438":{},"442":{},"443":{},"464":{},"526":{},"527":{},"534":{},"546":{},"547":{},"555":{},"604":{},"619":{},"629":{},"645":{},"648":{},"678":{},"685":{},"687":{},"688":{},"700":{},"704":{},"713":{},"715":{},"717":{},"720":{},"721":{},"727":{},"732":{},"734":{},"744":{},"745":{},"747":{},"748":{},"750":{},"760":{},"806":{},"823":{},"825":{},"861":{},"876":{},"884":{},"886":{},"893":{},"906":{},"908":{},"946":{},"953":{},"965":{}}}],["time(timeout",{"_index":1800,"title":{},"content":{"360":{}}}],["time.now",{"_index":2169,"title":{},"content":{"407":{},"409":{},"527":{}}}],["time.now/0",{"_index":2693,"title":{"547":{}},"content":{"546":{},"547":{}}}],["timefram",{"_index":1719,"title":{},"content":{"332":{},"890":{}}}],["timelock",{"_index":2834,"title":{},"content":{"626":{}}}],["timeout",{"_index":1163,"title":{},"content":{"256":{},"956":{}}}],["timer",{"_index":1134,"title":{"252":{}},"content":{"252":{},"745":{}}}],["timespan",{"_index":1160,"title":{},"content":{"256":{}}}],["timestamp",{"_index":82,"title":{"188":{},"555":{},"732":{}},"content":{"15":{},"16":{},"18":{},"19":{},"43":{},"44":{},"46":{},"47":{},"82":{},"83":{},"89":{},"90":{},"98":{},"99":{},"108":{},"109":{},"111":{},"112":{},"125":{},"131":{},"132":{},"144":{},"145":{},"149":{},"188":{},"315":{},"320":{},"345":{},"368":{},"374":{},"401":{},"407":{},"732":{},"734":{},"782":{},"945":{},"956":{}}}],["tini",{"_index":3023,"title":{},"content":{"661":{}}}],["tip",{"_index":573,"title":{},"content":{"205":{},"215":{},"217":{},"265":{},"268":{},"271":{},"275":{},"282":{},"390":{},"394":{},"450":{},"451":{},"486":{},"498":{},"501":{},"532":{},"656":{},"809":{},"830":{},"835":{},"877":{}}}],["tmp",{"_index":1668,"title":{},"content":{"321":{},"322":{}}}],["to_hex/1",{"_index":2608,"title":{"523":{}},"content":{}}],["to_lowercase/1",{"_index":2618,"title":{"525":{}},"content":{}}],["to_number/1",{"_index":2597,"title":{"521":{}},"content":{}}],["to_string/1",{"_index":2443,"title":{"477":{}},"content":{}}],["to_uppercase/1",{"_index":2614,"title":{"524":{}},"content":{}}],["toc",{"_index":625,"title":{},"content":{"215":{}}}],["today",{"_index":3542,"title":{},"content":{"793":{}}}],["todo",{"_index":1962,"title":{},"content":{"372":{},"378":{},"421":{},"560":{},"772":{}}}],["togeth",{"_index":3874,"title":{},"content":{"930":{}}}],["token",{"_index":65,"title":{"58":{},"141":{},"246":{},"340":{},"528":{},"558":{},"587":{},"642":{},"646":{},"648":{},"649":{},"700":{},"754":{},"760":{},"776":{},"785":{},"786":{},"847":{},"892":{},"912":{}},"content":{"18":{},"24":{},"37":{},"54":{},"58":{},"60":{},"64":{},"82":{},"86":{},"98":{},"116":{},"125":{},"141":{},"143":{},"149":{},"157":{},"171":{},"187":{},"191":{},"217":{},"246":{},"247":{},"248":{},"259":{},"340":{},"349":{},"375":{},"376":{},"401":{},"415":{},"418":{},"421":{},"425":{},"438":{},"441":{},"442":{},"443":{},"454":{},"528":{},"529":{},"558":{},"584":{},"585":{},"586":{},"587":{},"588":{},"619":{},"624":{},"632":{},"642":{},"648":{},"649":{},"656":{},"688":{},"695":{},"700":{},"706":{},"709":{},"754":{},"755":{},"756":{},"757":{},"758":{},"759":{},"760":{},"761":{},"762":{},"773":{},"776":{},"782":{},"786":{},"821":{},"825":{},"826":{},"835":{},"836":{},"841":{},"845":{},"847":{},"861":{},"868":{},"869":{},"870":{},"873":{},"881":{},"885":{},"886":{},"887":{},"889":{},"890":{},"891":{},"893":{},"894":{},"897":{},"898":{},"900":{},"901":{},"902":{},"906":{},"907":{},"908":{},"909":{},"913":{},"916":{},"917":{},"918":{},"919":{},"920":{},"921":{},"922":{},"924":{},"925":{},"928":{},"929":{},"934":{},"935":{},"936":{},"937":{},"938":{},"939":{},"946":{},"949":{},"951":{}}}],["token'",{"_index":426,"title":{},"content":{"141":{},"190":{},"529":{},"558":{},"648":{},"757":{}}}],["token.address",{"_index":427,"title":{},"content":{"142":{}}}],["token.collect",{"_index":259,"title":{},"content":{"59":{}}}],["token.decim",{"_index":260,"title":{},"content":{"59":{}}}],["token.fetch_id_from_address(\"000012345",{"_index":2627,"title":{},"content":{"529":{}}}],["token.fetch_id_from_address/1",{"_index":2694,"title":{},"content":{"546":{}}}],["token.genesi",{"_index":261,"title":{},"content":{"59":{}}}],["token.id",{"_index":262,"title":{},"content":{"59":{}}}],["token.nam",{"_index":263,"title":{},"content":{"59":{}}}],["token.ownership",{"_index":264,"title":{},"content":{"59":{}}}],["token.properti",{"_index":265,"title":{},"content":{"59":{}}}],["token.suppli",{"_index":266,"title":{},"content":{"59":{}}}],["token.symbol",{"_index":267,"title":{},"content":{"59":{}}}],["token.typ",{"_index":268,"title":{},"content":{"59":{}}}],["token_address",{"_index":1914,"title":{},"content":{"375":{},"401":{},"415":{},"418":{},"421":{},"438":{},"441":{},"442":{},"443":{},"454":{},"558":{}}}],["token_id",{"_index":2131,"title":{},"content":{"401":{},"415":{},"438":{},"440":{},"441":{},"442":{},"443":{},"454":{},"558":{}}}],["token_mov",{"_index":2129,"title":{},"content":{"401":{}}}],["token_nam",{"_index":3442,"title":{},"content":{"758":{}}}],["token_refer",{"_index":3456,"title":{},"content":{"760":{},"761":{}}}],["token_symbol",{"_index":3441,"title":{},"content":{"758":{}}}],["token_to_credit",{"_index":1909,"title":{},"content":{"375":{},"421":{}}}],["token_to_transf",{"_index":2222,"title":{},"content":{"415":{}}}],["token_transf",{"_index":2133,"title":{},"content":{"401":{},"407":{},"414":{},"415":{},"421":{},"454":{},"775":{}}}],["tokenaddress",{"_index":117,"title":{},"content":{"18":{},"70":{},"82":{},"86":{},"98":{},"762":{}}}],["tokenbal",{"_index":66,"title":{"64":{}},"content":{"24":{},"25":{},"64":{},"157":{},"171":{}}}],["tokenbalance.address",{"_index":269,"title":{},"content":{"65":{}}}],["tokenbalance.amount",{"_index":270,"title":{},"content":{"65":{}}}],["tokenbalance.tokenid",{"_index":271,"title":{},"content":{"65":{}}}],["tokenid",{"_index":118,"title":{},"content":{"18":{},"64":{},"70":{},"82":{},"86":{},"98":{},"762":{}}}],["tokenledg",{"_index":177,"title":{"67":{}},"content":{"37":{},"38":{},"67":{},"72":{}}}],["tokenledger.transf",{"_index":273,"title":{},"content":{"68":{}}}],["tokenom",{"_index":3893,"title":{},"content":{"943":{}}}],["tokenproperti",{"_index":258,"title":{"190":{}},"content":{"58":{},"59":{},"190":{}}}],["tokens_identifi",{"_index":2329,"title":{},"content":{"443":{}}}],["tokensamountatthislevel",{"_index":3922,"title":{},"content":{"947":{}}}],["tokentransf",{"_index":272,"title":{"70":{}},"content":{"67":{},"68":{},"70":{},"157":{},"171":{}}}],["tokentransfer.amount",{"_index":274,"title":{},"content":{"71":{}}}],["tokentransfer.to",{"_index":275,"title":{},"content":{"71":{}}}],["tokentransfer.tokenaddress",{"_index":276,"title":{},"content":{"71":{}}}],["tokentransfer.tokenid",{"_index":277,"title":{},"content":{"71":{}}}],["toler",{"_index":1037,"title":{},"content":{"239":{},"663":{},"712":{},"906":{},"913":{},"923":{}}}],["tom",{"_index":2053,"title":{},"content":{"388":{}}}],["tom\\njerry\\n",{"_index":2058,"title":{},"content":{"388":{}}}],["took",{"_index":1550,"title":{},"content":{"313":{}}}],["tool",{"_index":1675,"title":{},"content":{"321":{},"648":{},"649":{},"787":{},"793":{},"818":{},"842":{},"857":{},"928":{},"929":{},"930":{},"960":{}}}],["top",{"_index":1833,"title":{},"content":{"364":{},"365":{},"366":{},"562":{},"656":{},"659":{},"880":{}}}],["torrent",{"_index":3519,"title":{},"content":{"791":{}}}],["total",{"_index":867,"title":{"925":{}},"content":{"219":{},"243":{},"246":{},"648":{},"664":{},"820":{},"873":{},"875":{},"890":{},"892":{},"894":{},"897":{},"900":{},"902":{},"906":{},"909":{},"913":{},"925":{},"938":{}}}],["total_token_transf",{"_index":848,"title":{},"content":{"219":{}}}],["total_uco_transf",{"_index":846,"title":{},"content":{"219":{}}}],["toto,([0",{"_index":2575,"title":{},"content":{"512":{}}}],["touch",{"_index":3948,"title":{},"content":{"951":{},"955":{}}}],["toward",{"_index":3429,"title":{},"content":{"754":{}}}],["tp",{"_index":1056,"title":{},"content":{"239":{},"319":{},"685":{},"710":{},"736":{}}}],["tpm",{"_index":1009,"title":{"265":{}},"content":{"232":{},"240":{},"265":{},"267":{},"268":{},"269":{},"272":{},"275":{},"679":{},"680":{}}}],["tpm.c",{"_index":1206,"title":{},"content":{"265":{}}}],["tpm.h",{"_index":1207,"title":{},"content":{"265":{}}}],["tpm/yubikey",{"_index":3137,"title":{},"content":{"680":{}}}],["tpm2_alg_a",{"_index":1315,"title":{},"content":{"269":{}}}],["tpm2_alg_cfb",{"_index":1319,"title":{},"content":{"269":{}}}],["tpm2_alg_nul",{"_index":1320,"title":{},"content":{"269":{}}}],["tpm2_alg_sha256",{"_index":1323,"title":{},"content":{"269":{}}}],["tpm2_ecc_nist_p256",{"_index":1325,"title":{},"content":{"269":{}}}],["tpm2b_hash",{"_index":1367,"title":{},"content":{"276":{}}}],["tpma_object_adminwithpolici",{"_index":1255,"title":{},"content":{"269":{}}}],["tpma_object_decrypt",{"_index":1273,"title":{},"content":{"269":{}}}],["tpma_object_decrypt:th",{"_index":1263,"title":{},"content":{"269":{}}}],["tpma_object_fixedpar",{"_index":1274,"title":{},"content":{"269":{}}}],["tpma_object_fixedparent:ind",{"_index":1267,"title":{},"content":{"269":{}}}],["tpma_object_fixedtpm",{"_index":1264,"title":{},"content":{"269":{}}}],["tpma_object_restrict",{"_index":1279,"title":{},"content":{"269":{}}}],["tpma_object_sensitivedataorigin",{"_index":1269,"title":{},"content":{"269":{}}}],["tpma_object_sign_encrypt",{"_index":1260,"title":{},"content":{"269":{}}}],["tpma_object_userwithauth",{"_index":1253,"title":{},"content":{"269":{}}}],["tracer/mark",{"_index":3389,"title":{},"content":{"731":{}}}],["track",{"_index":1587,"title":{"732":{}},"content":{"315":{},"377":{},"834":{},"837":{},"900":{},"912":{}}}],["trade",{"_index":3712,"title":{"936":{}},"content":{"860":{},"861":{},"869":{},"872":{},"873":{},"875":{},"876":{},"900":{},"902":{},"906":{},"913":{},"917":{},"919":{},"921":{},"922":{},"923":{},"924":{},"928":{},"929":{},"930":{},"934":{},"935":{},"936":{},"938":{},"939":{},"940":{},"941":{}}}],["trade'",{"_index":3881,"title":{},"content":{"922":{}}}],["trader",{"_index":3726,"title":{"929":{}},"content":{"861":{},"868":{},"927":{},"929":{},"935":{},"939":{}}}],["tradit",{"_index":939,"title":{},"content":{"223":{},"687":{},"735":{},"791":{},"860":{},"917":{},"934":{}}}],["traffic",{"_index":3277,"title":{},"content":{"712":{},"718":{}}}],["transact",{"_index":18,"title":{"73":{},"138":{},"150":{},"219":{},"230":{},"253":{},"331":{},"335":{},"337":{},"338":{},"339":{},"340":{},"341":{},"342":{},"343":{},"344":{},"400":{},"401":{},"408":{},"449":{},"450":{},"451":{},"452":{},"453":{},"454":{},"455":{},"456":{},"457":{},"458":{},"459":{},"532":{},"533":{},"536":{},"542":{},"551":{},"641":{},"674":{},"695":{},"715":{},"716":{},"732":{},"747":{},"748":{},"763":{},"780":{},"782":{},"783":{},"784":{},"805":{},"845":{},"851":{},"856":{}},"content":{"2":{},"3":{},"18":{},"23":{},"27":{},"28":{},"30":{},"40":{},"73":{},"75":{},"76":{},"82":{},"85":{},"86":{},"89":{},"98":{},"105":{},"108":{},"110":{},"114":{},"117":{},"120":{},"122":{},"125":{},"128":{},"130":{},"138":{},"140":{},"144":{},"146":{},"147":{},"149":{},"150":{},"152":{},"153":{},"154":{},"157":{},"160":{},"167":{},"171":{},"177":{},"179":{},"187":{},"192":{},"198":{},"201":{},"203":{},"204":{},"209":{},"219":{},"220":{},"223":{},"230":{},"234":{},"235":{},"236":{},"249":{},"251":{},"253":{},"256":{},"257":{},"259":{},"260":{},"261":{},"263":{},"264":{},"279":{},"312":{},"314":{},"315":{},"316":{},"317":{},"318":{},"319":{},"323":{},"324":{},"327":{},"329":{},"330":{},"331":{},"332":{},"333":{},"334":{},"335":{},"336":{},"338":{},"339":{},"340":{},"341":{},"342":{},"343":{},"344":{},"345":{},"346":{},"348":{},"364":{},"365":{},"366":{},"367":{},"368":{},"369":{},"371":{},"374":{},"375":{},"377":{},"379":{},"393":{},"398":{},"399":{},"400":{},"401":{},"403":{},"404":{},"405":{},"406":{},"407":{},"408":{},"409":{},"410":{},"413":{},"414":{},"415":{},"416":{},"417":{},"418":{},"421":{},"424":{},"427":{},"428":{},"429":{},"430":{},"431":{},"434":{},"435":{},"436":{},"437":{},"438":{},"439":{},"441":{},"442":{},"443":{},"449":{},"450":{},"451":{},"452":{},"454":{},"456":{},"458":{},"464":{},"517":{},"527":{},"532":{},"533":{},"536":{},"537":{},"538":{},"541":{},"542":{},"544":{},"545":{},"549":{},"550":{},"551":{},"552":{},"555":{},"559":{},"573":{},"574":{},"575":{},"601":{},"619":{},"630":{},"632":{},"643":{},"651":{},"656":{},"659":{},"660":{},"661":{},"662":{},"663":{},"665":{},"666":{},"669":{},"670":{},"674":{},"682":{},"685":{},"688":{},"690":{},"692":{},"694":{},"695":{},"696":{},"698":{},"699":{},"700":{},"704":{},"705":{},"707":{},"708":{},"710":{},"714":{},"715":{},"716":{},"719":{},"720":{},"721":{},"722":{},"727":{},"729":{},"730":{},"732":{},"733":{},"734":{},"735":{},"736":{},"737":{},"738":{},"739":{},"740":{},"741":{},"742":{},"744":{},"745":{},"746":{},"747":{},"748":{},"749":{},"750":{},"751":{},"752":{},"753":{},"754":{},"755":{},"757":{},"759":{},"760":{},"761":{},"762":{},"763":{},"764":{},"765":{},"766":{},"767":{},"768":{},"769":{},"770":{},"771":{},"773":{},"774":{},"775":{},"776":{},"777":{},"778":{},"779":{},"780":{},"781":{},"782":{},"786":{},"790":{},"792":{},"800":{},"801":{},"803":{},"804":{},"805":{},"806":{},"807":{},"808":{},"811":{},"812":{},"813":{},"814":{},"815":{},"817":{},"820":{},"824":{},"833":{},"834":{},"837":{},"841":{},"842":{},"843":{},"845":{},"846":{},"848":{},"849":{},"850":{},"851":{},"852":{},"856":{},"859":{},"860":{},"861":{},"868":{},"875":{},"897":{},"898":{},"901":{},"906":{},"907":{},"909":{},"910":{},"912":{},"913":{},"914":{},"919":{},"933":{},"951":{},"956":{},"962":{},"963":{},"964":{},"975":{},"976":{},"977":{},"980":{},"983":{},"996":{},"997":{},"998":{}}}],["transactio'",{"_index":1734,"title":{},"content":{"339":{}}}],["transaction'",{"_index":406,"title":{"697":{}},"content":{"119":{},"155":{},"224":{},"235":{},"236":{},"253":{},"315":{},"317":{},"338":{},"345":{},"401":{},"404":{},"405":{},"411":{},"417":{},"437":{},"450":{},"552":{},"554":{},"556":{},"666":{},"674":{},"695":{},"696":{},"698":{},"700":{},"731":{},"734":{},"737":{},"741":{},"755":{},"757":{},"760":{},"761":{},"763":{},"782":{},"805":{},"976":{}}}],["transaction(",{"_index":3623,"title":{},"content":{"811":{},"812":{}}}],["transaction(aka",{"_index":3470,"title":{},"content":{"781":{}}}],["transaction(nod",{"_index":1822,"title":{},"content":{"354":{}}}],["transaction.address",{"_index":286,"title":{},"content":{"74":{},"139":{},"377":{},"382":{},"421":{}}}],["transaction.bal",{"_index":287,"title":{},"content":{"74":{}}}],["transaction.chainlength",{"_index":288,"title":{},"content":{"74":{}}}],["transaction.cod",{"_index":2334,"title":{},"content":{"427":{}}}],["transaction.cont",{"_index":2641,"title":{},"content":{"536":{}}}],["transaction.crossvalidationstamp",{"_index":289,"title":{},"content":{"74":{}}}],["transaction.data",{"_index":290,"title":{},"content":{"74":{}}}],["transaction.input",{"_index":291,"title":{},"content":{"74":{}}}],["transaction.inputs.limit",{"_index":292,"title":{},"content":{"74":{}}}],["transaction.inputs.pagingoffset",{"_index":293,"title":{},"content":{"74":{}}}],["transaction.originsignatur",{"_index":294,"title":{},"content":{"74":{}}}],["transaction.previousaddress",{"_index":295,"title":{},"content":{"74":{}}}],["transaction.previouspublickey",{"_index":296,"title":{},"content":{"74":{}}}],["transaction.previoussignatur",{"_index":297,"title":{},"content":{"74":{}}}],["transaction.typ",{"_index":298,"title":{},"content":{"74":{}}}],["transaction.uco_transfers[contract.address",{"_index":2211,"title":{},"content":{"421":{}}}],["transaction.validationstamp",{"_index":299,"title":{},"content":{"74":{}}}],["transaction.vers",{"_index":300,"title":{},"content":{"74":{}}}],["transaction:previ",{"_index":3063,"title":{},"content":{"666":{}}}],["transaction_address",{"_index":2309,"title":{},"content":{"441":{}}}],["transactionaddress",{"_index":4044,"title":{},"content":{"977":{},"980":{},"983":{}}}],["transactionattest",{"_index":303,"title":{"76":{}},"content":{"76":{},"157":{},"171":{},"201":{},"203":{}}}],["transactionattestation.address",{"_index":317,"title":{},"content":{"77":{}}}],["transactionattestation.maxconfirm",{"_index":318,"title":{},"content":{"77":{}}}],["transactionattestation.nbconfirm",{"_index":319,"title":{},"content":{"77":{}}}],["transactionchain",{"_index":44,"title":{"144":{}},"content":{"9":{},"75":{},"144":{},"157":{},"189":{},"367":{},"369":{},"659":{},"667":{},"669":{}}}],["transactionchain.address",{"_index":429,"title":{},"content":{"145":{}}}],["transactionchain.from",{"_index":430,"title":{},"content":{"145":{}}}],["transactionchain.ord",{"_index":431,"title":{},"content":{"145":{}}}],["transactionchain.pagingaddress",{"_index":432,"title":{},"content":{"145":{}}}],["transactionchainsinstead",{"_index":3019,"title":{},"content":{"661":{}}}],["transactionconfirm",{"_index":320,"title":{"201":{}},"content":{"78":{},"157":{},"201":{}}}],["transactionconfirmed.address",{"_index":480,"title":{},"content":{"202":{}}}],["transactiondata",{"_index":140,"title":{},"content":{"28":{}}}],["transactionerror",{"_index":31,"title":{"79":{},"198":{}},"content":{"4":{},"33":{},"79":{},"81":{},"157":{},"187":{},"198":{},"200":{}}}],["transactionerror.address",{"_index":323,"title":{},"content":{"80":{},"199":{}}}],["transactionerror.context",{"_index":324,"title":{},"content":{"80":{}}}],["transactionerror.error",{"_index":325,"title":{},"content":{"80":{}}}],["transactionerror.reason",{"_index":326,"title":{},"content":{"80":{}}}],["transactionhashfunct",{"_index":833,"title":{},"content":{"219":{}}}],["transactioninput",{"_index":281,"title":{"82":{},"147":{}},"content":{"73":{},"74":{},"82":{},"84":{},"147":{},"149":{},"157":{},"159":{},"171":{},"173":{},"179":{},"187":{},"189":{}}}],["transactioninput.amount",{"_index":333,"title":{},"content":{"83":{}}}],["transactioninput.from",{"_index":334,"title":{},"content":{"83":{}}}],["transactioninput.sp",{"_index":335,"title":{},"content":{"83":{}}}],["transactioninput.timestamp",{"_index":336,"title":{},"content":{"83":{}}}],["transactioninput.tokenaddress",{"_index":337,"title":{},"content":{"83":{}}}],["transactioninput.tokenid",{"_index":338,"title":{},"content":{"83":{}}}],["transactioninput.typ",{"_index":339,"title":{},"content":{"83":{}}}],["transactioninputs.address",{"_index":433,"title":{},"content":{"148":{}}}],["transactioninputs.limit",{"_index":434,"title":{},"content":{"148":{}}}],["transactioninputs.pagingoffset",{"_index":435,"title":{},"content":{"148":{}}}],["transactionmov",{"_index":186,"title":{"86":{}},"content":{"40":{},"41":{},"86":{},"157":{},"171":{},"187":{}}}],["transactionmovement.amount",{"_index":341,"title":{},"content":{"87":{}}}],["transactionmovement.to",{"_index":342,"title":{},"content":{"87":{}}}],["transactionmovement.tokenaddress",{"_index":343,"title":{},"content":{"87":{}}}],["transactionmovement.tokenid",{"_index":344,"title":{},"content":{"87":{}}}],["transactionmovement.typ",{"_index":345,"title":{},"content":{"87":{}}}],["transactions.pag",{"_index":437,"title":{},"content":{"151":{}}}],["transactions.th",{"_index":3031,"title":{},"content":{"661":{}}}],["transactionsaddress",{"_index":3393,"title":{},"content":{"734":{}}}],["transactionsummari",{"_index":83,"title":{"89":{}},"content":{"15":{},"16":{},"89":{},"157":{},"165":{},"171":{},"183":{},"187":{},"189":{}}}],["transactionsummary.address",{"_index":352,"title":{},"content":{"90":{}}}],["transactionsummary.fe",{"_index":353,"title":{},"content":{"90":{}}}],["transactionsummary.movementsaddress",{"_index":354,"title":{},"content":{"90":{}}}],["transactionsummary.timestamp",{"_index":355,"title":{},"content":{"90":{}}}],["transactionsummary.typ",{"_index":356,"title":{},"content":{"90":{}}}],["transactionsummary.validationstampchecksum",{"_index":357,"title":{},"content":{"90":{}}}],["transactiontyp",{"_index":422,"title":{"192":{}},"content":{"128":{},"129":{},"192":{}}}],["transfer",{"_index":142,"title":{"420":{},"557":{},"558":{},"641":{},"762":{},"775":{},"835":{},"837":{},"840":{},"846":{},"847":{}},"content":{"28":{},"40":{},"67":{},"70":{},"86":{},"95":{},"102":{},"209":{},"375":{},"376":{},"401":{},"404":{},"407":{},"415":{},"418":{},"420":{},"421":{},"424":{},"449":{},"545":{},"557":{},"558":{},"564":{},"600":{},"619":{},"632":{},"633":{},"696":{},"700":{},"725":{},"751":{},"752":{},"755":{},"759":{},"762":{},"782":{},"811":{},"812":{},"813":{},"814":{},"820":{},"823":{},"825":{},"826":{},"834":{},"835":{},"837":{},"838":{},"840":{},"845":{},"846":{},"847":{},"860":{},"864":{},"866":{}}}],["transfered_amount",{"_index":1900,"title":{},"content":{"375":{}}}],["transform",{"_index":3428,"title":{},"content":{"754":{},"790":{}}}],["transient",{"_index":1360,"title":{},"content":{"275":{}}}],["transit",{"_index":2941,"title":{},"content":{"648":{}}}],["transmiss",{"_index":1789,"title":{},"content":{"359":{}}}],["transmit",{"_index":3064,"title":{},"content":{"666":{},"732":{}}}],["transpar",{"_index":1863,"title":{},"content":{"368":{},"370":{},"701":{},"805":{},"873":{},"898":{},"907":{},"910":{},"914":{}}}],["transport",{"_index":1176,"title":{},"content":{"258":{},"355":{},"360":{},"361":{}}}],["travers",{"_index":1829,"title":{},"content":{"358":{}}}],["tree",{"_index":1149,"title":{},"content":{"254":{},"309":{},"332":{},"388":{},"666":{}}}],["trend",{"_index":3431,"title":{},"content":{"754":{},"872":{},"929":{}}}],["tri",{"_index":2698,"title":{"794":{}},"content":{"548":{},"612":{},"796":{}}}],["trigger",{"_index":1193,"title":{"408":{},"410":{},"531":{},"532":{},"533":{},"534":{},"535":{},"536":{},"537":{},"540":{},"541":{},"542":{},"543":{},"544":{}},"content":{"261":{},"281":{},"346":{},"367":{},"368":{},"374":{},"378":{},"379":{},"397":{},"398":{},"399":{},"408":{},"409":{},"410":{},"412":{},"413":{},"458":{},"532":{},"533":{},"534":{},"535":{},"536":{},"537":{},"538":{},"540":{},"541":{},"542":{},"543":{},"544":{},"545":{},"546":{},"547":{},"551":{},"559":{},"945":{}}}],["trigger'",{"_index":1851,"title":{},"content":{"367":{}}}],["trigger_bi",{"_index":2113,"title":{},"content":{"399":{}}}],["triggered_bi",{"_index":1892,"title":{},"content":{"374":{},"375":{},"376":{},"377":{},"378":{},"400":{},"403":{},"408":{},"409":{},"410":{},"411":{},"413":{},"418":{},"420":{},"421":{},"427":{},"428":{},"532":{},"533":{},"534":{},"535":{},"536":{},"537":{},"538":{},"547":{},"548":{},"549":{},"550":{}}}],["triggers/act",{"_index":2213,"title":{"413":{}},"content":{}}],["trivial",{"_index":2769,"title":{},"content":{"604":{}}}],["troubleshoot",{"_index":2974,"title":{"657":{}},"content":{"832":{},"879":{}}}],["true",{"_index":6,"title":{},"content":{"5":{},"6":{},"10":{},"11":{},"158":{},"284":{},"295":{},"354":{},"377":{},"381":{},"383":{},"384":{},"404":{},"405":{},"408":{},"409":{},"410":{},"427":{},"428":{},"476":{},"479":{},"483":{},"484":{},"511":{},"520":{},"758":{},"806":{},"976":{}}}],["truli",{"_index":3003,"title":{},"content":{"659":{}}}],["trunc/1",{"_index":2545,"title":{"506":{}},"content":{}}],["truncat",{"_index":2041,"title":{},"content":{"385":{},"506":{}}}],["trust",{"_index":515,"title":{"676":{},"677":{},"678":{},"679":{}},"content":{"204":{},"338":{},"662":{},"677":{},"678":{},"679":{},"680":{},"686":{},"710":{},"789":{},"824":{},"900":{},"933":{}}}],["truth",{"_index":1058,"title":{},"content":{"239":{},"371":{}}}],["tui",{"_index":3690,"title":{},"content":{"843":{}}}],["tupl",{"_index":1108,"title":{},"content":{"244":{},"247":{},"445":{},"446":{}}}],["turn",{"_index":3797,"title":{},"content":{"890":{},"899":{}}}],["tutori",{"_index":3619,"title":{"810":{},"830":{},"866":{},"877":{}},"content":{"809":{},"864":{},"866":{}}}],["tutoriel",{"_index":2736,"title":{"589":{},"864":{}},"content":{"589":{},"590":{},"591":{},"592":{},"593":{},"594":{}}}],["tvl",{"_index":2929,"title":{"925":{}},"content":{"613":{},"894":{},"900":{},"902":{},"913":{}}}],["twenti",{"_index":1402,"title":{},"content":{"287":{}}}],["twice",{"_index":1946,"title":{},"content":{"377":{}}}],["twist",{"_index":2001,"title":{},"content":{"381":{}}}],["two",{"_index":495,"title":{},"content":{"204":{},"252":{},"316":{},"328":{},"359":{},"416":{},"427":{},"438":{},"452":{},"456":{},"538":{},"540":{},"542":{},"674":{},"678":{},"679":{},"711":{},"746":{},"799":{},"801":{},"869":{},"873":{},"891":{},"897":{},"898":{},"906":{},"907":{},"913":{},"917":{},"919":{},"921":{},"934":{},"938":{},"963":{},"965":{}}}],["tx",{"_index":2654,"title":{},"content":{"538":{},"997":{}}}],["tx_hash",{"_index":880,"title":{},"content":{"214":{}}}],["tx_type",{"_index":842,"title":{},"content":{"219":{}}}],["txhash",{"_index":839,"title":{},"content":{"219":{}}}],["txhashlen",{"_index":840,"title":{},"content":{"219":{}}}],["txnhash",{"_index":861,"title":{},"content":{"219":{}}}],["txt",{"_index":3566,"title":{},"content":{"799":{},"800":{}}}],["ty",{"_index":3114,"title":{},"content":{"678":{}}}],["type",{"_index":55,"title":{"113":{},"116":{},"119":{},"122":{},"125":{},"127":{},"130":{},"133":{},"135":{},"137":{},"140":{},"143":{},"146":{},"149":{},"152":{},"154":{},"197":{},"200":{},"203":{},"228":{},"229":{},"337":{},"381":{},"552":{},"697":{},"763":{}},"content":{"12":{},"15":{},"18":{},"21":{},"24":{},"28":{},"31":{},"34":{},"37":{},"40":{},"43":{},"46":{},"49":{},"52":{},"55":{},"58":{},"61":{},"64":{},"67":{},"70":{},"73":{},"76":{},"79":{},"82":{},"86":{},"89":{},"92":{},"95":{},"98":{},"102":{},"105":{},"108":{},"119":{},"125":{},"128":{},"143":{},"149":{},"155":{},"158":{},"160":{},"162":{},"164":{},"166":{},"168":{},"170":{},"172":{},"176":{},"178":{},"186":{},"188":{},"192":{},"194":{},"204":{},"217":{},"218":{},"227":{},"232":{},"233":{},"267":{},"315":{},"317":{},"335":{},"338":{},"340":{},"388":{},"391":{},"395":{},"400":{},"401":{},"403":{},"404":{},"407":{},"413":{},"414":{},"415":{},"418":{},"420":{},"421":{},"449":{},"495":{},"537":{},"544":{},"552":{},"554":{},"629":{},"674":{},"698":{},"700":{},"757":{},"758":{},"759":{},"760":{},"761":{},"762":{},"763":{},"782":{},"799":{},"800":{},"835":{},"845":{},"846":{},"849":{},"850":{},"855":{},"860":{},"890":{},"917":{},"927":{},"976":{},"997":{},"1003":{}}}],["typic",{"_index":3731,"title":{},"content":{"870":{}}}],["typo",{"_index":2749,"title":{},"content":{"602":{},"604":{}}}],["uco",{"_index":64,"title":{"243":{},"557":{},"587":{},"610":{},"621":{},"625":{},"639":{},"646":{},"648":{},"650":{},"652":{},"785":{},"846":{},"904":{}},"content":{"18":{},"24":{},"37":{},"49":{},"67":{},"95":{},"98":{},"116":{},"125":{},"204":{},"205":{},"209":{},"217":{},"223":{},"243":{},"259":{},"345":{},"349":{},"350":{},"375":{},"376":{},"400":{},"401":{},"404":{},"407":{},"409":{},"411":{},"415":{},"418":{},"421":{},"438":{},"439":{},"452":{},"454":{},"557":{},"564":{},"566":{},"584":{},"585":{},"586":{},"587":{},"588":{},"610":{},"619":{},"625":{},"639":{},"648":{},"650":{},"652":{},"695":{},"696":{},"700":{},"709":{},"755":{},"767":{},"768":{},"773":{},"782":{},"785":{},"792":{},"820":{},"821":{},"845":{},"846":{},"854":{},"864":{},"866":{},"881":{},"886":{},"890":{},"891":{},"897":{},"904":{},"906":{},"913":{},"937":{},"943":{},"948":{},"949":{},"951":{},"956":{}}}],["uco'",{"_index":3230,"title":{},"content":{"695":{},"696":{}}}],["uco.archethic.net",{"_index":2947,"title":{},"content":{"649":{}}}],["uco.aud",{"_index":2442,"title":{},"content":{"476":{}}}],["uco.usd",{"_index":2123,"title":{},"content":{"400":{},"476":{}}}],["uco/token",{"_index":340,"title":{},"content":{"86":{}}}],["uco/token/cal",{"_index":329,"title":{},"content":{"82":{},"149":{}}}],["uco_amount",{"_index":1917,"title":{},"content":{"375":{}}}],["uco_bal",{"_index":2295,"title":{},"content":{"438":{}}}],["uco_mov",{"_index":2126,"title":{},"content":{"401":{}}}],["uco_transf",{"_index":2132,"title":{},"content":{"401":{},"404":{},"405":{},"407":{},"409":{},"414":{},"415":{},"420":{},"421":{},"434":{},"436":{},"452":{},"775":{}}}],["ucodata",{"_index":226,"title":{"92":{}},"content":{"49":{},"50":{},"92":{},"169":{}}}],["ucodata.eur",{"_index":360,"title":{},"content":{"93":{}}}],["ucodata.usd",{"_index":361,"title":{},"content":{"93":{}}}],["ucoledg",{"_index":178,"title":{"95":{}},"content":{"37":{},"38":{},"95":{},"104":{}}}],["ucoledger.transf",{"_index":363,"title":{},"content":{"96":{}}}],["ucotransf",{"_index":362,"title":{"102":{}},"content":{"95":{},"96":{},"102":{},"157":{},"171":{}}}],["ucotransfer.amount",{"_index":364,"title":{},"content":{"103":{}}}],["ucotransfer.to",{"_index":365,"title":{},"content":{"103":{}}}],["ui",{"_index":1594,"title":{},"content":{"315":{},"320":{},"953":{}}}],["uint16_t",{"_index":633,"title":{},"content":{"216":{},"217":{},"218":{},"219":{}}}],["uint32_t",{"_index":705,"title":{},"content":{"217":{},"218":{},"219":{}}}],["uint8_t",{"_index":630,"title":{},"content":{"216":{},"217":{},"218":{},"219":{}}}],["ultrason",{"_index":3372,"title":{},"content":{"728":{}}}],["ultrasound",{"_index":3352,"title":{},"content":{"728":{}}}],["unambigu",{"_index":1885,"title":{},"content":{"371":{}}}],["unauthor",{"_index":3163,"title":{},"content":{"692":{},"727":{},"962":{}}}],["unavoid",{"_index":1057,"title":{},"content":{"239":{}}}],["uncompress",{"_index":728,"title":{},"content":{"217":{},"267":{},"268":{},"277":{}}}],["uncompromis",{"_index":3034,"title":{},"content":{"663":{}}}],["under",{"_index":1251,"title":{},"content":{"269":{},"323":{},"331":{},"335":{},"644":{},"679":{},"688":{},"787":{},"825":{},"827":{},"862":{},"877":{}}}],["underli",{"_index":1793,"title":{},"content":{"360":{}}}],["understand",{"_index":1875,"title":{"874":{},"876":{}},"content":{"370":{},"401":{},"655":{},"743":{},"756":{},"759":{},"806":{},"809":{},"876":{},"898":{},"907":{},"909":{},"910":{},"913":{},"914":{},"926":{},"941":{}}}],["unfalsifi",{"_index":3307,"title":{},"content":{"724":{}}}],["unhid",{"_index":3999,"title":{},"content":{"956":{}}}],["unicast",{"_index":3283,"title":{},"content":{"714":{}}}],["unifi",{"_index":3434,"title":{},"content":{"756":{},"963":{}}}],["uniformli",{"_index":2940,"title":{},"content":{"648":{}}}],["uninstal",{"_index":2986,"title":{},"content":{"658":{}}}],["union",{"_index":4068,"title":{},"content":{"1003":{}}}],["uniq/1",{"_index":2504,"title":{"491":{}},"content":{}}],["uniqu",{"_index":256,"title":{},"content":{"58":{},"143":{},"244":{},"247":{},"269":{},"270":{},"314":{},"395":{},"619":{},"678":{},"684":{},"688":{},"700":{},"702":{},"727":{},"861":{},"876":{},"884":{},"890":{},"897":{},"899":{},"904":{},"936":{}}}],["unique.ecc",{"_index":1329,"title":{},"content":{"269":{}}}],["uniri",{"_index":1205,"title":{},"content":{"265":{},"282":{},"680":{}}}],["uniswap",{"_index":3750,"title":{},"content":{"872":{},"873":{},"938":{}}}],["unit",{"_index":1682,"title":{},"content":{"321":{},"876":{}}}],["unitari",{"_index":278,"title":{},"content":{"73":{},"122":{},"130":{},"140":{},"146":{},"152":{},"727":{}}}],["univers",{"_index":2931,"title":{},"content":{"648":{},"660":{},"661":{},"724":{}}}],["unix",{"_index":473,"title":{},"content":{"188":{},"374":{},"534":{}}}],["unknown",{"_index":1935,"title":{},"content":{"377":{}}}],["unless",{"_index":2159,"title":{},"content":{"406":{},"422":{},"660":{},"894":{}}}],["unlik",{"_index":2088,"title":{},"content":{"393":{},"860":{},"953":{}}}],["unlimit",{"_index":1805,"title":{"686":{}},"content":{"361":{},"710":{},"735":{},"754":{}}}],["unlock",{"_index":3655,"title":{"887":{}},"content":{"826":{},"886":{},"887":{},"893":{},"894":{}}}],["unmatch",{"_index":3961,"title":{},"content":{"953":{}}}],["unnecessari",{"_index":3276,"title":{},"content":{"712":{}}}],["unpredict",{"_index":3042,"title":{},"content":{"662":{},"664":{},"665":{}}}],["unpubl",{"_index":3614,"title":{"808":{}},"content":{}}],["unpublish",{"_index":3615,"title":{"814":{}},"content":{"808":{},"814":{}}}],["unsign",{"_index":636,"title":{},"content":{"216":{},"217":{},"218":{},"219":{}}}],["unspent",{"_index":182,"title":{},"content":{"40":{},"98":{},"123":{},"125":{},"243":{},"246":{},"332":{},"333":{},"517":{},"550":{},"564":{},"666":{},"700":{},"781":{},"782":{}}}],["unspentoutput",{"_index":187,"title":{"98":{}},"content":{"40":{},"41":{},"98":{},"123":{},"125":{},"157":{},"171":{},"185":{},"187":{},"189":{}}}],["unspentoutput.amount",{"_index":366,"title":{},"content":{"99":{}}}],["unspentoutput.from",{"_index":367,"title":{},"content":{"99":{}}}],["unspentoutput.st",{"_index":368,"title":{},"content":{"99":{}}}],["unspentoutput.timestamp",{"_index":369,"title":{},"content":{"99":{}}}],["unspentoutput.tokenaddress",{"_index":370,"title":{},"content":{"99":{}}}],["unspentoutput.tokenid",{"_index":371,"title":{},"content":{"99":{}}}],["unspentoutput.typ",{"_index":372,"title":{},"content":{"99":{}}}],["unsupport",{"_index":2907,"title":{},"content":{"611":{}}}],["until",{"_index":1485,"title":{},"content":{"309":{},"604":{},"629":{},"665":{},"669":{},"747":{},"781":{},"804":{},"806":{},"823":{},"886":{},"893":{},"894":{},"948":{}}}],["up",{"_index":1670,"title":{"638":{},"886":{}},"content":{"322":{},"354":{},"361":{},"589":{},"590":{},"591":{},"592":{},"593":{},"594":{},"648":{},"685":{},"691":{},"749":{},"842":{},"846":{},"886":{},"887":{},"893":{},"894":{}}}],["updat",{"_index":1190,"title":{"721":{},"807":{},"812":{},"813":{}},"content":{"261":{},"267":{},"271":{},"310":{},"312":{},"344":{},"367":{},"369":{},"371":{},"388":{},"541":{},"549":{},"645":{},"648":{},"662":{},"688":{},"699":{},"704":{},"706":{},"708":{},"781":{},"807":{},"812":{},"813":{},"814":{},"820":{},"826":{},"830":{},"875":{},"904":{}}}],["update_contract",{"_index":2084,"title":{},"content":{"392":{}}}],["updatehandlesindex",{"_index":1341,"title":{"271":{}},"content":{}}],["upgrad",{"_index":1644,"title":{},"content":{"320":{},"321":{},"322":{},"343":{},"537":{},"682":{},"705":{},"805":{}}}],["upload",{"_index":2792,"title":{},"content":{"600":{},"817":{},"820":{}}}],["upon",{"_index":715,"title":{},"content":{"217":{},"825":{},"831":{},"841":{},"878":{},"898":{},"907":{},"910":{},"914":{},"930":{}}}],["uppercas",{"_index":2613,"title":{},"content":{"523":{},"524":{}}}],["uptim",{"_index":3490,"title":{},"content":{"766":{}}}],["upto",{"_index":826,"title":{},"content":{"219":{}}}],["url",{"_index":2418,"title":{},"content":{"464":{},"465":{},"638":{},"798":{},"807":{},"827":{},"845":{},"852":{},"862":{},"963":{},"966":{},"968":{}}}],["us",{"_index":454,"title":{"555":{},"556":{},"601":{},"615":{},"635":{},"865":{}},"content":{"164":{},"186":{},"194":{},"204":{},"207":{},"208":{},"217":{},"220":{},"221":{},"223":{},"224":{},"225":{},"233":{},"234":{},"238":{},"239":{},"240":{},"242":{},"256":{},"257":{},"260":{},"263":{},"264":{},"269":{},"273":{},"276":{},"277":{},"279":{},"281":{},"284":{},"285":{},"287":{},"288":{},"289":{},"290":{},"292":{},"293":{},"295":{},"303":{},"304":{},"305":{},"307":{},"309":{},"310":{},"311":{},"312":{},"314":{},"315":{},"320":{},"330":{},"345":{},"349":{},"353":{},"354":{},"359":{},"361":{},"362":{},"364":{},"366":{},"368":{},"371":{},"379":{},"380":{},"381":{},"382":{},"383":{},"390":{},"392":{},"393":{},"394":{},"395":{},"399":{},"400":{},"401":{},"403":{},"404":{},"409":{},"410":{},"415":{},"416":{},"438":{},"442":{},"443":{},"450":{},"454":{},"458":{},"464":{},"468":{},"471":{},"486":{},"490":{},"501":{},"514":{},"530":{},"532":{},"533":{},"536":{},"540":{},"541":{},"545":{},"546":{},"547":{},"549":{},"550":{},"552":{},"554":{},"555":{},"556":{},"558":{},"560":{},"589":{},"590":{},"591":{},"592":{},"593":{},"594":{},"600":{},"601":{},"604":{},"605":{},"610":{},"621":{},"623":{},"625":{},"629":{},"632":{},"633":{},"638":{},"639":{},"645":{},"648":{},"655":{},"658":{},"659":{},"661":{},"662":{},"663":{},"669":{},"672":{},"673":{},"674":{},"675":{},"677":{},"678":{},"679":{},"680":{},"683":{},"685":{},"687":{},"688":{},"692":{},"694":{},"695":{},"704":{},"705":{},"707":{},"708":{},"709":{},"712":{},"714":{},"716":{},"718":{},"719":{},"727":{},"728":{},"730":{},"731":{},"735":{},"736":{},"739":{},"741":{},"742":{},"748":{},"754":{},"763":{},"771":{},"773":{},"781":{},"782":{},"787":{},"789":{},"796":{},"799":{},"802":{},"803":{},"804":{},"809":{},"811":{},"812":{},"813":{},"814":{},"818":{},"819":{},"820":{},"823":{},"827":{},"830":{},"841":{},"842":{},"845":{},"846":{},"853":{},"857":{},"861":{},"862":{},"864":{},"873":{},"877":{},"905":{},"909":{},"913":{},"917":{},"928":{},"929":{},"934":{},"935":{},"941":{},"951":{},"953":{},"954":{},"955":{},"956":{},"962":{},"963":{},"966":{},"976":{},"988":{},"991":{},"997":{},"998":{},"1000":{},"1002":{},"1003":{}}}],["us2019044735",{"_index":3324,"title":{},"content":{"727":{}}}],["us2019089539",{"_index":3369,"title":{},"content":{"728":{}}}],["usag",{"_index":1276,"title":{"962":{}},"content":{"269":{},"368":{},"512":{},"659":{},"667":{},"680":{},"693":{},"787":{},"941":{}}}],["usage/usage_overview",{"_index":3892,"title":{},"content":{"941":{}}}],["usb",{"_index":3076,"title":{},"content":{"662":{},"683":{},"692":{},"955":{}}}],["usd",{"_index":359,"title":{},"content":{"92":{},"411":{}}}],["usd/eur",{"_index":1775,"title":{},"content":{"349":{},"709":{}}}],["useless",{"_index":1768,"title":{},"content":{"346":{}}}],["user",{"_index":524,"title":{"651":{}},"content":{"204":{},"205":{},"209":{},"217":{},"219":{},"220":{},"269":{},"320":{},"368":{},"375":{},"382":{},"395":{},"464":{},"549":{},"553":{},"612":{},"632":{},"648":{},"662":{},"701":{},"724":{},"727":{},"742":{},"754":{},"756":{},"786":{},"793":{},"795":{},"797":{},"805":{},"807":{},"825":{},"826":{},"842":{},"843":{},"859":{},"860":{},"861":{},"868":{},"869":{},"870":{},"872":{},"873":{},"890":{},"893":{},"894":{},"900":{},"901":{},"902":{},"904":{},"909":{},"917":{},"918":{},"919":{},"920":{},"921":{},"923":{},"926":{},"929":{},"930":{},"941":{},"950":{},"953":{},"956":{},"962":{},"963":{},"964":{}}}],["user'",{"_index":1859,"title":{},"content":{"368":{},"817":{},"826":{},"955":{}}}],["user/blockchain",{"_index":547,"title":{},"content":{"204":{}}}],["users/{user}/library/containers/{yourappname}/data/docu",{"_index":3000,"title":{},"content":{"658":{}}}],["user’",{"_index":4024,"title":{},"content":{"962":{},"964":{},"1002":{}}}],["usual",{"_index":2135,"title":{},"content":{"401":{},"437":{},"450":{},"553":{},"694":{},"793":{},"954":{}}}],["utc",{"_index":1766,"title":{},"content":{"346":{},"535":{}}}],["utf",{"_index":465,"title":{},"content":{"186":{}}}],["util",{"_index":2224,"title":{"417":{}},"content":{"416":{},"601":{},"619":{},"859":{},"902":{},"928":{},"930":{},"935":{},"936":{}}}],["utilis",{"_index":3967,"title":{},"content":{"953":{}}}],["utxo",{"_index":109,"title":{},"content":{"18":{},"98":{},"125":{},"242":{},"243":{},"244":{},"245":{},"246":{},"247":{},"248":{},"249":{},"367":{},"368":{},"369":{},"371":{},"401":{},"517":{},"550":{},"700":{},"736":{},"755":{},"759":{},"781":{}}}],["v",{"_index":2394,"title":{},"content":{"472":{}}}],["v1",{"_index":2943,"title":{"649":{},"650":{}},"content":{"650":{},"751":{}}}],["v1.5.0",{"_index":2094,"title":{},"content":{"395":{}}}],["v14.0",{"_index":597,"title":{},"content":{"206":{}}}],["v2",{"_index":2944,"title":{"649":{},"650":{}},"content":{"650":{},"872":{},"873":{},"938":{}}}],["valid",{"_index":131,"title":{"324":{},"325":{},"335":{},"555":{},"715":{},"736":{},"784":{},"898":{},"907":{},"910":{},"914":{}},"content":{"21":{},"76":{},"108":{},"203":{},"251":{},"253":{},"261":{},"264":{},"278":{},"279":{},"315":{},"320":{},"321":{},"322":{},"323":{},"324":{},"327":{},"328":{},"331":{},"332":{},"333":{},"335":{},"336":{},"343":{},"348":{},"367":{},"368":{},"371":{},"401":{},"402":{},"403":{},"405":{},"428":{},"464":{},"479":{},"527":{},"555":{},"559":{},"661":{},"662":{},"663":{},"664":{},"665":{},"666":{},"685":{},"695":{},"696":{},"700":{},"705":{},"708":{},"710":{},"715":{},"716":{},"722":{},"727":{},"730":{},"732":{},"734":{},"735":{},"736":{},"737":{},"738":{},"750":{},"751":{},"752":{},"753":{},"759":{},"780":{},"781":{},"782":{},"787":{},"791":{},"802":{},"803":{},"806":{},"820":{},"837":{},"841":{},"846":{},"897":{},"898":{},"906":{},"907":{},"909":{},"910":{},"913":{},"914":{}}}],["valid_secret",{"_index":2190,"title":{},"content":{"409":{}}}],["valid_tim",{"_index":2191,"title":{},"content":{"409":{}}}],["validat",{"_index":1773,"title":{},"content":{"348":{}}}],["validation/repl",{"_index":3284,"title":{},"content":{"714":{}}}],["validationstamp",{"_index":192,"title":{"108":{}},"content":{"42":{},"73":{},"74":{},"108":{},"165":{},"167":{},"171":{},"177":{},"189":{},"195":{}}}],["validationstamp.ledgeroper",{"_index":384,"title":{},"content":{"109":{}}}],["validationstamp.proofofintegr",{"_index":385,"title":{},"content":{"109":{}}}],["validationstamp.proofofwork",{"_index":386,"title":{},"content":{"109":{}}}],["validationstamp.protocolvers",{"_index":387,"title":{},"content":{"109":{}}}],["validationstamp.signatur",{"_index":388,"title":{},"content":{"109":{}}}],["validationstamp.timestamp",{"_index":389,"title":{},"content":{"109":{}}}],["validationstampchecksum",{"_index":350,"title":{},"content":{"89":{}}}],["validit",{"_index":3092,"title":{},"content":{"673":{}}}],["valu",{"_index":24,"title":{"3":{},"8":{},"925":{}},"content":{"7":{},"111":{},"131":{},"168":{},"170":{},"217":{},"268":{},"269":{},"271":{},"274":{},"279":{},"281":{},"311":{},"312":{},"314":{},"316":{},"319":{},"346":{},"381":{},"382":{},"384":{},"388":{},"390":{},"399":{},"400":{},"403":{},"404":{},"405":{},"406":{},"417":{},"424":{},"438":{},"442":{},"443":{},"448":{},"456":{},"476":{},"478":{},"490":{},"493":{},"495":{},"497":{},"498":{},"499":{},"500":{},"501":{},"502":{},"503":{},"515":{},"516":{},"527":{},"546":{},"548":{},"550":{},"555":{},"556":{},"612":{},"695":{},"727":{},"759":{},"799":{},"844":{},"848":{},"869":{},"873":{},"875":{},"876":{},"885":{},"894":{},"900":{},"902":{},"913":{},"919":{},"921":{},"925":{},"938":{},"956":{}}}],["valuat",{"_index":3752,"title":{},"content":{"872":{}}}],["value2",{"_index":2520,"title":{},"content":{"497":{},"498":{},"499":{},"500":{},"501":{},"502":{},"503":{}}}],["value3",{"_index":2529,"title":{},"content":{"500":{}}}],["values/1",{"_index":2535,"title":{"502":{}},"content":{}}],["valuex",{"_index":2528,"title":{},"content":{"500":{}}}],["vancouver'",{"_index":2195,"title":{},"content":{"411":{}}}],["vari",{"_index":3674,"title":{},"content":{"837":{}}}],["variabl",{"_index":957,"title":{"266":{},"388":{},"398":{},"415":{}},"content":{"224":{},"266":{},"283":{},"346":{},"388":{},"398":{},"399":{},"406":{},"408":{},"410":{},"415":{},"498":{},"532":{},"533":{},"536":{},"875":{}}}],["variat",{"_index":3843,"title":{},"content":{"906":{},"913":{}}}],["varieti",{"_index":3815,"title":{},"content":{"894":{},"902":{}}}],["variou",{"_index":614,"title":{},"content":{"209":{},"610":{},"619":{},"622":{},"625":{},"705":{},"833":{},"861":{},"868":{},"880":{},"928":{},"929":{},"953":{}}}],["vector",{"_index":3753,"title":{},"content":{"872":{}}}],["venou",{"_index":3357,"title":{},"content":{"728":{}}}],["veri",{"_index":1804,"title":{},"content":{"361":{},"390":{},"410":{},"424":{},"542":{},"554":{},"612":{},"661":{},"678":{},"894":{}}}],["verif",{"_index":1152,"title":{"336":{},"337":{},"338":{},"339":{},"340":{},"341":{},"342":{},"343":{},"344":{},"630":{},"824":{}},"content":{"255":{},"335":{},"368":{},"370":{},"619":{},"630":{},"632":{},"662":{},"680":{},"728":{},"825":{},"898":{},"900":{},"907":{},"910":{},"914":{}}}],["verifi",{"_index":559,"title":{},"content":{"204":{},"285":{},"304":{},"305":{},"306":{},"307":{},"328":{},"330":{},"336":{},"348":{},"349":{},"367":{},"370":{},"371":{},"417":{},"630":{},"632":{},"645":{},"655":{},"658":{},"665":{},"666":{},"693":{},"705":{},"720":{},"801":{},"898":{},"900":{},"906":{},"907":{},"909":{},"910":{},"913":{},"914":{},"955":{}}}],["verifypinyk",{"_index":1388,"title":{"285":{}},"content":{"304":{}}}],["version",{"_index":88,"title":{"105":{},"153":{},"216":{},"380":{}},"content":{"15":{},"18":{},"73":{},"105":{},"107":{},"108":{},"153":{},"154":{},"187":{},"206":{},"216":{},"227":{},"233":{},"314":{},"320":{},"322":{},"374":{},"375":{},"376":{},"377":{},"378":{},"379":{},"380":{},"402":{},"427":{},"428":{},"532":{},"533":{},"534":{},"535":{},"536":{},"537":{},"538":{},"547":{},"548":{},"549":{},"550":{},"600":{},"609":{},"645":{},"648":{},"655":{},"658":{},"671":{},"672":{},"673":{},"688":{},"704":{},"705":{},"762":{},"799":{},"808":{},"811":{},"812":{},"813":{},"814":{},"815":{},"830":{},"877":{},"956":{},"976":{},"997":{}}}],["version.cod",{"_index":390,"title":{},"content":{"106":{}}}],["version.protocol",{"_index":391,"title":{},"content":{"106":{}}}],["version.transact",{"_index":392,"title":{},"content":{"106":{}}}],["versionedhash",{"_index":382,"title":{"194":{}},"content":{"108":{},"109":{},"194":{}}}],["veto",{"_index":3222,"title":{},"content":{"688":{},"704":{}}}],["via",{"_index":1054,"title":{},"content":{"239":{},"393":{},"460":{},"464":{},"509":{},"510":{},"512":{},"545":{},"547":{},"548":{},"611":{},"644":{},"656":{},"704":{},"762":{},"811":{},"820":{},"896":{},"955":{},"956":{},"957":{},"963":{}}}],["vibrant",{"_index":3217,"title":{},"content":{"688":{},"927":{}}}],["vibrat",{"_index":4004,"title":{},"content":{"956":{}}}],["video",{"_index":3589,"title":{},"content":{"805":{}}}],["view",{"_index":1115,"title":{"354":{},"900":{},"901":{},"962":{},"963":{}},"content":{"249":{},"250":{},"310":{},"312":{},"319":{},"332":{},"354":{},"362":{},"371":{},"545":{},"715":{},"815":{},"833":{},"838":{},"889":{},"890":{},"899":{},"900":{},"901":{}}}],["view:avail",{"_index":3396,"title":{},"content":{"734":{}}}],["virtual",{"_index":2403,"title":{},"content":{"444":{},"622":{},"624":{},"792":{},"953":{}}}],["visibl",{"_index":2971,"title":{},"content":{"656":{},"728":{}}}],["vision",{"_index":3033,"title":{},"content":{"661":{},"688":{},"717":{}}}],["visit",{"_index":2982,"title":{},"content":{"658":{},"795":{},"806":{},"858":{}}}],["visual",{"_index":2783,"title":{},"content":{"605":{},"890":{},"899":{}}}],["visualis",{"_index":1651,"title":{},"content":{"320":{}}}],["vital",{"_index":3373,"title":{},"content":{"728":{},"906":{},"909":{},"913":{}}}],["vm",{"_index":1031,"title":{},"content":{"239":{}}}],["void",{"_index":1214,"title":{"267":{},"268":{},"269":{}},"content":{}}],["volatil",{"_index":635,"title":{},"content":{"216":{},"217":{},"218":{},"219":{}}}],["volum",{"_index":3832,"title":{},"content":{"900":{},"903":{}}}],["vote",{"_index":1746,"title":{"377":{}},"content":{"344":{},"377":{},"688":{},"689":{},"704":{},"727":{}}}],["vote(candid",{"_index":1932,"title":{},"content":{"377":{},"409":{}}}],["vote(firstnam",{"_index":2114,"title":{},"content":{"399":{}}}],["vote_for_class_president(firstnam",{"_index":2630,"title":{},"content":{"533":{}}}],["voter",{"_index":1931,"title":{},"content":{"377":{},"662":{}}}],["voter_genesis_address",{"_index":1938,"title":{},"content":{"377":{}}}],["voters_genesis_address",{"_index":1936,"title":{},"content":{"377":{}}}],["vp",{"_index":3526,"title":{},"content":{"792":{}}}],["vs",{"_index":2107,"title":{},"content":{"399":{},"793":{}}}],["vscode",{"_index":4022,"title":{},"content":{"960":{}}}],["w+),(\\\\d",{"_index":2580,"title":{},"content":{"512":{}}}],["w3c",{"_index":3151,"title":{},"content":{"682":{},"693":{}}}],["w_{e",{"_index":919,"title":{},"content":{"221":{},"225":{}}}],["w_{key",{"_index":696,"title":{},"content":{"217":{}}}],["wafer",{"_index":3117,"title":{},"content":{"678":{}}}],["wait",{"_index":1674,"title":{},"content":{"322":{},"346":{},"641":{},"655":{},"750":{},"820":{},"837":{},"841":{},"894":{}}}],["wallet",{"_index":484,"title":{"220":{},"227":{},"234":{},"573":{},"574":{},"575":{},"594":{},"614":{},"615":{},"616":{},"624":{},"634":{},"635":{},"636":{},"638":{},"645":{},"655":{},"656":{},"658":{},"950":{}},"content":{"204":{},"205":{},"206":{},"209":{},"218":{},"219":{},"220":{},"221":{},"225":{},"226":{},"230":{},"232":{},"234":{},"235":{},"236":{},"259":{},"364":{},"545":{},"573":{},"574":{},"575":{},"589":{},"590":{},"591":{},"592":{},"593":{},"594":{},"601":{},"615":{},"616":{},"624":{},"632":{},"635":{},"636":{},"638":{},"639":{},"641":{},"645":{},"655":{},"656":{},"658":{},"674":{},"683":{},"690":{},"691":{},"692":{},"694":{},"699":{},"762":{},"773":{},"811":{},"812":{},"813":{},"814":{},"816":{},"817":{},"820":{},"825":{},"826":{},"830":{},"834":{},"835":{},"837":{},"841":{},"842":{},"860":{},"864":{},"866":{},"873":{},"877":{},"893":{},"897":{},"898":{},"906":{},"907":{},"909":{},"910":{},"912":{},"913":{},"914":{},"930":{},"943":{},"950":{},"951":{},"952":{},"953":{},"954":{},"956":{},"961":{},"962":{},"963":{},"964":{},"969":{},"1002":{}}}],["wallet'",{"_index":2794,"title":{"601":{}},"content":{"601":{},"638":{},"658":{}}}],["wallet_iv",{"_index":977,"title":{},"content":{"225":{}}}],["wallet_len",{"_index":807,"title":{},"content":{"218":{},"219":{}}}],["walletlen",{"_index":868,"title":{},"content":{"219":{}}}],["walletprivatekey",{"_index":722,"title":{},"content":{"217":{}}}],["wallet’",{"_index":4031,"title":{},"content":{"963":{}}}],["want",{"_index":898,"title":{},"content":{"235":{},"239":{},"309":{},"315":{},"316":{},"361":{},"369":{},"401":{},"540":{},"545":{},"645":{},"655":{},"674":{},"683":{},"694":{},"696":{},"749":{},"751":{},"791":{},"811":{},"816":{},"820":{},"848":{},"849":{},"850":{},"852":{},"894":{},"1002":{}}}],["warn",{"_index":1693,"title":{},"content":{"321":{},"801":{},"913":{},"956":{}}}],["wast",{"_index":3940,"title":{},"content":{"949":{}}}],["way",{"_index":485,"title":{"714":{}},"content":{"204":{},"220":{},"223":{},"314":{},"315":{},"320":{},"328":{},"329":{},"333":{},"345":{},"347":{},"349":{},"360":{},"368":{},"390":{},"399":{},"403":{},"615":{},"635":{},"648":{},"661":{},"663":{},"669":{},"674":{},"678":{},"682":{},"683":{},"694":{},"695":{},"705":{},"716":{},"722":{},"727":{},"730":{},"762":{},"785":{},"787":{},"793":{},"821":{},"890":{},"899":{},"955":{},"956":{},"962":{}}}],["we'll",{"_index":2652,"title":{},"content":{"538":{},"542":{},"551":{}}}],["weaken",{"_index":3306,"title":{},"content":{"724":{}}}],["weather",{"_index":2196,"title":{},"content":{"411":{}}}],["web",{"_index":499,"title":{"590":{},"611":{},"788":{}},"content":{"204":{},"239":{},"353":{},"366":{},"563":{},"589":{},"590":{},"591":{},"592":{},"593":{},"594":{},"787":{},"789":{},"791":{},"793":{},"797":{},"804":{},"806":{},"809":{},"830":{},"877":{},"953":{},"955":{},"963":{}}}],["web3",{"_index":3514,"title":{},"content":{"789":{},"792":{}}}],["webapp",{"_index":3532,"title":{},"content":{"793":{}}}],["webauthn",{"_index":3153,"title":{},"content":{"682":{},"693":{}}}],["webhost",{"_index":3547,"title":{},"content":{"795":{}}}],["webpag",{"_index":3582,"title":{},"content":{"803":{}}}],["websit",{"_index":2784,"title":{"599":{},"807":{},"808":{}},"content":{"600":{},"601":{},"611":{},"655":{},"658":{},"693":{},"787":{},"788":{},"790":{},"791":{},"792":{},"793":{},"795":{},"796":{},"797":{},"798":{},"799":{},"800":{},"801":{},"803":{},"804":{},"805":{},"806":{},"807":{},"808":{},"811":{},"815":{},"818":{},"820":{}}}],["website'",{"_index":3558,"title":{},"content":{"798":{}}}],["websocket",{"_index":4028,"title":{},"content":{"963":{}}}],["week",{"_index":2637,"title":{},"content":{"535":{},"885":{}}}],["weight",{"_index":3766,"title":{"944":{}},"content":{"881":{},"884":{},"890":{},"944":{}}}],["weightofthislevel",{"_index":3923,"title":{},"content":{"947":{}}}],["welcom",{"_index":479,"title":{"831":{},"865":{},"878":{}},"content":{"201":{},"602":{},"666":{},"750":{},"751":{},"752":{},"806":{},"831":{},"858":{},"859":{},"864":{},"878":{}}}],["well",{"_index":1006,"title":{},"content":{"232":{},"283":{},"315":{},"317":{},"319":{},"330":{},"390":{},"394":{},"687":{},"692":{},"700":{},"730":{},"733":{},"798":{},"891":{},"913":{},"953":{}}}],["weth",{"_index":3704,"title":{},"content":{"864":{},"866":{}}}],["we’v",{"_index":3769,"title":{},"content":{"881":{},"904":{}}}],["what'",{"_index":2706,"title":{},"content":{"552":{}}}],["wheel",{"_index":3341,"title":{},"content":{"727":{},"906":{},"913":{}}}],["whenev",{"_index":2025,"title":{},"content":{"382":{}}}],["wherea",{"_index":2134,"title":{},"content":{"401":{}}}],["whether",{"_index":1376,"title":{},"content":{"277":{},"479":{},"483":{},"484":{},"511":{},"520":{},"811":{},"955":{},"956":{}}}],["whichev",{"_index":2142,"title":{},"content":{"403":{}}}],["white",{"_index":2977,"title":{"658":{}},"content":{}}],["whole",{"_index":456,"title":{},"content":{"170":{}}}],["whose",{"_index":884,"title":{},"content":{"214":{},"688":{},"701":{},"956":{}}}],["wide",{"_index":1042,"title":{},"content":{"239":{},"312":{},"313":{},"316":{},"793":{},"861":{}}}],["wider",{"_index":3864,"title":{},"content":{"928":{},"929":{}}}],["widget",{"_index":3963,"title":{},"content":{"953":{}}}],["will",{"_index":3061,"title":{},"content":{"666":{},"906":{},"913":{}}}],["win",{"_index":3214,"title":{},"content":{"688":{}}}],["window",{"_index":2829,"title":{},"content":{"623":{},"658":{},"830":{},"877":{},"953":{},"963":{}}}],["wise",{"_index":4062,"title":{},"content":{"1002":{}}}],["wish",{"_index":2966,"title":{},"content":{"656":{},"835":{},"858":{},"894":{},"902":{},"909":{}}}],["withdraw",{"_index":3664,"title":{},"content":{"830":{},"861":{},"864":{},"866":{},"886":{},"889":{},"893":{},"894":{},"908":{},"909":{},"920":{}}}],["withdraw(secret",{"_index":2189,"title":{},"content":{"409":{}}}],["withdrawn",{"_index":3790,"title":{},"content":{"887":{},"893":{}}}],["within",{"_index":1575,"title":{},"content":{"314":{},"315":{},"362":{},"371":{},"395":{},"421":{},"527":{},"619":{},"655":{},"677":{},"679":{},"705":{},"737":{},"745":{},"823":{},"826":{},"897":{},"898":{},"901":{},"902":{},"907":{},"909":{},"913":{},"924":{},"926":{},"928":{},"929":{},"961":{},"963":{}}}],["without",{"_index":1087,"title":{},"content":{"239":{},"315":{},"321":{},"333":{},"358":{},"367":{},"407":{},"491":{},"503":{},"514":{},"532":{},"542":{},"629":{},"661":{},"666":{},"680":{},"682":{},"685":{},"687":{},"691":{},"693":{},"727":{},"728":{},"729":{},"790":{},"801":{},"823":{},"826":{},"860":{},"868":{},"876":{},"893":{},"894":{},"928":{},"933":{},"961":{},"962":{},"1002":{}}}],["wk_{ae",{"_index":920,"title":{},"content":{"221":{},"225":{}}}],["wo2017162930",{"_index":3370,"title":{},"content":{"728":{}}}],["wo2017162931",{"_index":3325,"title":{},"content":{"727":{}}}],["won't",{"_index":2975,"title":{"658":{}},"content":{"965":{}}}],["wonder",{"_index":3093,"title":{},"content":{"674":{},"687":{}}}],["word",{"_index":2853,"title":{},"content":{"615":{},"635":{},"655":{},"671":{},"692":{},"951":{},"954":{},"956":{}}}],["worflow",{"_index":1705,"title":{"326":{}},"content":{}}],["work",{"_index":375,"title":{"328":{},"630":{},"632":{},"662":{},"708":{},"804":{}},"content":{"108":{},"239":{},"315":{},"328":{},"330":{},"384":{},"389":{},"390":{},"394":{},"404":{},"656":{},"662":{},"670":{},"688":{},"695":{},"696":{},"700":{},"706":{},"777":{},"782":{},"790":{},"798":{},"809":{},"843":{},"998":{}}}],["workflow",{"_index":1702,"title":{"324":{},"666":{}},"content":{"323":{},"327":{},"335":{},"666":{}}}],["world",{"_index":1753,"title":{"374":{}},"content":{"345":{},"374":{},"392":{},"687":{},"705":{},"754":{}}}],["worldwid",{"_index":3195,"title":{},"content":{"685":{}}}],["worri",{"_index":2964,"title":{},"content":{"656":{},"801":{}}}],["worst",{"_index":3854,"title":{},"content":{"913":{}}}],["worth",{"_index":1908,"title":{},"content":{"375":{},"421":{},"963":{}}}],["wrap",{"_index":1564,"title":{},"content":{"281":{},"314":{},"362":{},"825":{},"826":{}}}],["write",{"_index":1076,"title":{"317":{},"539":{}},"content":{"239":{},"308":{},"309":{},"310":{},"311":{},"314":{},"315":{},"316":{},"317":{},"382":{},"464":{},"513":{},"516":{},"530":{},"539":{},"550":{},"559":{},"655":{},"663":{},"820":{},"1002":{}}}],["writes/read",{"_index":1552,"title":{},"content":{"313":{}}}],["written",{"_index":532,"title":{},"content":{"204":{},"314":{},"317":{},"422":{},"545":{},"603":{},"708":{},"963":{},"1002":{}}}],["wrong",{"_index":1062,"title":{"642":{}},"content":{"239":{}}}],["x",{"_index":729,"title":{},"content":{"217":{},"267":{},"269":{},"270":{},"277":{},"378":{},"383":{},"750":{},"873":{},"938":{}}}],["x509",{"_index":1408,"title":{},"content":{"287":{}}}],["x509_get0_pubkey_bitstr",{"_index":1409,"title":{},"content":{"287":{}}}],["x68\\x65\\x6c\\x6c\\x6f",{"_index":2029,"title":{},"content":{"383":{}}}],["xs",{"_index":1973,"title":{},"content":{"378":{}}}],["xxx",{"_index":3583,"title":{},"content":{"803":{}}}],["y",{"_index":731,"title":{},"content":{"217":{},"267":{},"269":{},"270":{},"277":{},"537":{},"873":{},"938":{}}}],["yarn",{"_index":601,"title":{},"content":{"207":{}}}],["ye",{"_index":1619,"title":{},"content":{"318":{},"609":{},"627":{},"820":{}}}],["year",{"_index":3303,"title":{},"content":{"724":{},"876":{},"881":{},"885":{},"886":{},"890":{},"900":{},"904":{},"943":{},"948":{}}}],["year=1",{"_index":3927,"title":{},"content":{"948":{}}}],["yellow",{"_index":3829,"title":{},"content":{"900":{}}}],["yes/no",{"_index":3641,"title":{},"content":{"820":{}}}],["yield",{"_index":2926,"title":{"926":{},"937":{}},"content":{"613":{},"859":{},"861":{},"870":{},"876":{},"877":{},"894":{},"916":{},"933":{},"937":{},"941":{}}}],["yk",{"_index":1443,"title":{},"content":{"295":{}}}],["ykcertif",{"_index":1456,"title":{},"content":{"300":{}}}],["ykindex",{"_index":1406,"title":{"292":{}},"content":{"287":{},"288":{},"289":{},"291":{},"292":{},"293":{},"295":{},"298":{},"302":{}}}],["ykpiv_algo_eccp256",{"_index":1433,"title":{},"content":{"292":{}}}],["ykpiv_attest",{"_index":1418,"title":{},"content":{"289":{}}}],["ykpiv_authent",{"_index":1396,"title":{},"content":{"286":{}}}],["ykpiv_decipher_data",{"_index":1436,"title":{},"content":{"293":{}}}],["ykpiv_fetch_object",{"_index":1426,"title":{},"content":{"290":{}}}],["ykpiv_obj_histori",{"_index":1430,"title":{},"content":{"291":{}}}],["ykpiv_obj_key_histori",{"_index":1422,"title":{},"content":{"290":{},"294":{}}}],["ykpiv_save_object",{"_index":1420,"title":{},"content":{"289":{}}}],["ykpiv_sign_data",{"_index":1432,"title":{},"content":{"292":{}}}],["ykpiv_util_generate_key",{"_index":1413,"title":{},"content":{"288":{}}}],["ykpiv_verifi",{"_index":1390,"title":{},"content":{"285":{}}}],["you'd",{"_index":3656,"title":{},"content":{"827":{},"862":{},"877":{}}}],["you'll",{"_index":2141,"title":{},"content":{"401":{},"540":{},"545":{},"616":{},"636":{},"638":{},"906":{}}}],["you'r",{"_index":2301,"title":{},"content":{"438":{},"439":{},"441":{},"442":{},"443":{},"803":{},"902":{},"906":{},"909":{},"913":{}}}],["you'v",{"_index":3844,"title":{},"content":{"906":{},"909":{},"913":{}}}],["your",{"_index":3211,"title":{},"content":{"687":{}}}],["yourself",{"_index":3667,"title":{},"content":{"830":{},"843":{},"877":{},"955":{}}}],["you’r",{"_index":3699,"title":{},"content":{"848":{},"851":{}}}],["you’v",{"_index":591,"title":{},"content":{"206":{}}}],["yubicloud",{"_index":3946,"title":{},"content":{"951":{},"955":{},"956":{}}}],["yubico",{"_index":1387,"title":{},"content":{"284":{},"679":{},"955":{}}}],["yubico’",{"_index":3990,"title":{},"content":{"955":{}}}],["yubikey",{"_index":1010,"title":{"282":{}},"content":{"232":{},"263":{},"282":{},"283":{},"284":{},"287":{},"290":{},"295":{},"304":{},"305":{},"306":{},"307":{},"655":{},"679":{},"680":{},"950":{},"955":{},"956":{}}}],["yubikey.c",{"_index":1381,"title":{},"content":{"282":{}}}],["yubikey.h",{"_index":1382,"title":{},"content":{"282":{}}}],["zero",{"_index":2461,"title":{},"content":{"481":{}}}],["zip",{"_index":3620,"title":{},"content":{"811":{}}}],["zone",{"_index":147,"title":{},"content":{"28":{},"976":{},"997":{}}}],["zpoint",{"_index":1380,"title":{},"content":{"277":{}}}]],"pipeline":["stemmer"]}} \ No newline at end of file +{"documents":[{"id":7,"pageTitle":"include","sectionTitle":"include","sectionRoute":"/build/api/schema/directives/include","type":"docs"},{"id":8,"pageTitle":"include","sectionTitle":"Arguments","sectionRoute":"/build/api/schema/directives/include#arguments","type":"docs"},{"id":2,"pageTitle":"skip","sectionTitle":"skip","sectionRoute":"/build/api/schema/directives/skip","type":"docs"},{"id":3,"pageTitle":"skip","sectionTitle":"Arguments","sectionRoute":"/build/api/schema/directives/skip#arguments","type":"docs"},{"id":4,"pageTitle":"ErrorContext","sectionTitle":"ErrorContext","sectionRoute":"/build/api/schema/enums/error-context","type":"docs"},{"id":5,"pageTitle":"ErrorContext","sectionTitle":"Values","sectionRoute":"/build/api/schema/enums/error-context#values","type":"docs"},{"id":6,"pageTitle":"ErrorContext","sectionTitle":"Member of","sectionRoute":"/build/api/schema/enums/error-context#member-of","type":"docs"},{"id":19,"pageTitle":"SortOrder","sectionTitle":"SortOrder","sectionRoute":"/build/api/schema/enums/sort-order","type":"docs"},{"id":20,"pageTitle":"SortOrder","sectionTitle":"Values","sectionRoute":"/build/api/schema/enums/sort-order#values","type":"docs"},{"id":21,"pageTitle":"SortOrder","sectionTitle":"Member of","sectionRoute":"/build/api/schema/enums/sort-order#member-of","type":"docs"},{"id":9,"pageTitle":"AuthorizedKey","sectionTitle":"AuthorizedKey","sectionRoute":"/build/api/schema/objects/authorized-key","type":"docs"},{"id":10,"pageTitle":"AuthorizedKey","sectionTitle":"Fields","sectionRoute":"/build/api/schema/objects/authorized-key#fields","type":"docs"},{"id":11,"pageTitle":"AuthorizedKey","sectionTitle":"Member of","sectionRoute":"/build/api/schema/objects/authorized-key#member-of","type":"docs"},{"id":12,"pageTitle":"Balance","sectionTitle":"Balance","sectionRoute":"/build/api/schema/objects/balance","type":"docs"},{"id":13,"pageTitle":"Balance","sectionTitle":"Fields","sectionRoute":"/build/api/schema/objects/balance#fields","type":"docs"},{"id":14,"pageTitle":"Balance","sectionTitle":"Returned by","sectionRoute":"/build/api/schema/objects/balance#returned-by","type":"docs"},{"id":15,"pageTitle":"Balance","sectionTitle":"Member of","sectionRoute":"/build/api/schema/objects/balance#member-of","type":"docs"},{"id":16,"pageTitle":"BeaconChainSummary","sectionTitle":"BeaconChainSummary","sectionRoute":"/build/api/schema/objects/beacon-chain-summary","type":"docs"},{"id":17,"pageTitle":"BeaconChainSummary","sectionTitle":"Fields","sectionRoute":"/build/api/schema/objects/beacon-chain-summary#fields","type":"docs"},{"id":18,"pageTitle":"BeaconChainSummary","sectionTitle":"Returned by","sectionRoute":"/build/api/schema/objects/beacon-chain-summary#returned-by","type":"docs"},{"id":22,"pageTitle":"ConsumedInputs","sectionTitle":"ConsumedInputs","sectionRoute":"/build/api/schema/objects/consumed-inputs","type":"docs"},{"id":23,"pageTitle":"ConsumedInputs","sectionTitle":"Fields","sectionRoute":"/build/api/schema/objects/consumed-inputs#fields","type":"docs"},{"id":24,"pageTitle":"ConsumedInputs","sectionTitle":"Member of","sectionRoute":"/build/api/schema/objects/consumed-inputs#member-of","type":"docs"},{"id":25,"pageTitle":"CrossValidationStamp","sectionTitle":"CrossValidationStamp","sectionRoute":"/build/api/schema/objects/cross-validation-stamp","type":"docs"},{"id":26,"pageTitle":"CrossValidationStamp","sectionTitle":"Fields","sectionRoute":"/build/api/schema/objects/cross-validation-stamp#fields","type":"docs"},{"id":27,"pageTitle":"CrossValidationStamp","sectionTitle":"Member of","sectionRoute":"/build/api/schema/objects/cross-validation-stamp#member-of","type":"docs"},{"id":40,"pageTitle":"Data","sectionTitle":"Data","sectionRoute":"/build/api/schema/objects/data","type":"docs"},{"id":41,"pageTitle":"Data","sectionTitle":"Fields","sectionRoute":"/build/api/schema/objects/data#fields","type":"docs"},{"id":42,"pageTitle":"Data","sectionTitle":"Member of","sectionRoute":"/build/api/schema/objects/data#member-of","type":"docs"},{"id":28,"pageTitle":"Endpoint","sectionTitle":"Endpoint","sectionRoute":"/build/api/schema/objects/endpoint","type":"docs"},{"id":29,"pageTitle":"Endpoint","sectionTitle":"Fields","sectionRoute":"/build/api/schema/objects/endpoint#fields","type":"docs"},{"id":30,"pageTitle":"Endpoint","sectionTitle":"Returned by","sectionRoute":"/build/api/schema/objects/endpoint#returned-by","type":"docs"},{"id":31,"pageTitle":"ErrorDetails","sectionTitle":"ErrorDetails","sectionRoute":"/build/api/schema/objects/error-details","type":"docs"},{"id":32,"pageTitle":"ErrorDetails","sectionTitle":"Fields","sectionRoute":"/build/api/schema/objects/error-details#fields","type":"docs"},{"id":33,"pageTitle":"ErrorDetails","sectionTitle":"Member of","sectionRoute":"/build/api/schema/objects/error-details#member-of","type":"docs"},{"id":34,"pageTitle":"Ledger","sectionTitle":"Ledger","sectionRoute":"/build/api/schema/objects/ledger","type":"docs"},{"id":35,"pageTitle":"Ledger","sectionTitle":"Fields","sectionRoute":"/build/api/schema/objects/ledger#fields","type":"docs"},{"id":36,"pageTitle":"Ledger","sectionTitle":"Member of","sectionRoute":"/build/api/schema/objects/ledger#member-of","type":"docs"},{"id":37,"pageTitle":"LedgerOperations","sectionTitle":"LedgerOperations","sectionRoute":"/build/api/schema/objects/ledger-operations","type":"docs"},{"id":38,"pageTitle":"LedgerOperations","sectionTitle":"Fields","sectionRoute":"/build/api/schema/objects/ledger-operations#fields","type":"docs"},{"id":39,"pageTitle":"LedgerOperations","sectionTitle":"Member of","sectionRoute":"/build/api/schema/objects/ledger-operations#member-of","type":"docs"},{"id":43,"pageTitle":"Node","sectionTitle":"Node","sectionRoute":"/build/api/schema/objects/node","type":"docs"},{"id":44,"pageTitle":"Node","sectionTitle":"Fields","sectionRoute":"/build/api/schema/objects/node#fields","type":"docs"},{"id":45,"pageTitle":"Node","sectionTitle":"Returned by","sectionRoute":"/build/api/schema/objects/node#returned-by","type":"docs"},{"id":46,"pageTitle":"OracleData","sectionTitle":"OracleData","sectionRoute":"/build/api/schema/objects/oracle-data","type":"docs"},{"id":47,"pageTitle":"OracleData","sectionTitle":"Fields","sectionRoute":"/build/api/schema/objects/oracle-data#fields","type":"docs"},{"id":48,"pageTitle":"OracleData","sectionTitle":"Returned by","sectionRoute":"/build/api/schema/objects/oracle-data#returned-by","type":"docs"},{"id":49,"pageTitle":"OracleServices","sectionTitle":"OracleServices","sectionRoute":"/build/api/schema/objects/oracle-services","type":"docs"},{"id":50,"pageTitle":"OracleServices","sectionTitle":"Fields","sectionRoute":"/build/api/schema/objects/oracle-services#fields","type":"docs"},{"id":51,"pageTitle":"OracleServices","sectionTitle":"Member of","sectionRoute":"/build/api/schema/objects/oracle-services#member-of","type":"docs"},{"id":52,"pageTitle":"Ownership","sectionTitle":"Ownership","sectionRoute":"/build/api/schema/objects/ownership","type":"docs"},{"id":53,"pageTitle":"Ownership","sectionTitle":"Fields","sectionRoute":"/build/api/schema/objects/ownership#fields","type":"docs"},{"id":54,"pageTitle":"Ownership","sectionTitle":"Member of","sectionRoute":"/build/api/schema/objects/ownership#member-of","type":"docs"},{"id":55,"pageTitle":"Recipient","sectionTitle":"Recipient","sectionRoute":"/build/api/schema/objects/recipient","type":"docs"},{"id":56,"pageTitle":"Recipient","sectionTitle":"Fields","sectionRoute":"/build/api/schema/objects/recipient#fields","type":"docs"},{"id":57,"pageTitle":"Recipient","sectionTitle":"Member of","sectionRoute":"/build/api/schema/objects/recipient#member-of","type":"docs"},{"id":58,"pageTitle":"SharedSecrets","sectionTitle":"SharedSecrets","sectionRoute":"/build/api/schema/objects/shared-secrets","type":"docs"},{"id":59,"pageTitle":"SharedSecrets","sectionTitle":"Fields","sectionRoute":"/build/api/schema/objects/shared-secrets#fields","type":"docs"},{"id":60,"pageTitle":"SharedSecrets","sectionTitle":"Returned by","sectionRoute":"/build/api/schema/objects/shared-secrets#returned-by","type":"docs"},{"id":64,"pageTitle":"Token","sectionTitle":"Token","sectionRoute":"/build/api/schema/objects/token","type":"docs"},{"id":65,"pageTitle":"Token","sectionTitle":"Fields","sectionRoute":"/build/api/schema/objects/token#fields","type":"docs"},{"id":66,"pageTitle":"Token","sectionTitle":"Returned by","sectionRoute":"/build/api/schema/objects/token#returned-by","type":"docs"},{"id":61,"pageTitle":"TokenBalance","sectionTitle":"TokenBalance","sectionRoute":"/build/api/schema/objects/token-balance","type":"docs"},{"id":62,"pageTitle":"TokenBalance","sectionTitle":"Fields","sectionRoute":"/build/api/schema/objects/token-balance#fields","type":"docs"},{"id":63,"pageTitle":"TokenBalance","sectionTitle":"Member of","sectionRoute":"/build/api/schema/objects/token-balance#member-of","type":"docs"},{"id":67,"pageTitle":"TokenLedger","sectionTitle":"TokenLedger","sectionRoute":"/build/api/schema/objects/token-ledger","type":"docs"},{"id":68,"pageTitle":"TokenLedger","sectionTitle":"Fields","sectionRoute":"/build/api/schema/objects/token-ledger#fields","type":"docs"},{"id":69,"pageTitle":"TokenLedger","sectionTitle":"Member of","sectionRoute":"/build/api/schema/objects/token-ledger#member-of","type":"docs"},{"id":70,"pageTitle":"TokenTransfer","sectionTitle":"TokenTransfer","sectionRoute":"/build/api/schema/objects/token-transfer","type":"docs"},{"id":71,"pageTitle":"TokenTransfer","sectionTitle":"Fields","sectionRoute":"/build/api/schema/objects/token-transfer#fields","type":"docs"},{"id":72,"pageTitle":"TokenTransfer","sectionTitle":"Member of","sectionRoute":"/build/api/schema/objects/token-transfer#member-of","type":"docs"},{"id":73,"pageTitle":"Transaction","sectionTitle":"Transaction","sectionRoute":"/build/api/schema/objects/transaction","type":"docs"},{"id":74,"pageTitle":"Transaction","sectionTitle":"Fields","sectionRoute":"/build/api/schema/objects/transaction#fields","type":"docs"},{"id":75,"pageTitle":"Transaction","sectionTitle":"Returned by","sectionRoute":"/build/api/schema/objects/transaction#returned-by","type":"docs"},{"id":76,"pageTitle":"TransactionAttestation","sectionTitle":"TransactionAttestation","sectionRoute":"/build/api/schema/objects/transaction-attestation","type":"docs"},{"id":77,"pageTitle":"TransactionAttestation","sectionTitle":"Fields","sectionRoute":"/build/api/schema/objects/transaction-attestation#fields","type":"docs"},{"id":78,"pageTitle":"TransactionAttestation","sectionTitle":"Returned by","sectionRoute":"/build/api/schema/objects/transaction-attestation#returned-by","type":"docs"},{"id":79,"pageTitle":"TransactionError","sectionTitle":"TransactionError","sectionRoute":"/build/api/schema/objects/transaction-error","type":"docs"},{"id":80,"pageTitle":"TransactionError","sectionTitle":"Fields","sectionRoute":"/build/api/schema/objects/transaction-error#fields","type":"docs"},{"id":81,"pageTitle":"TransactionError","sectionTitle":"Returned by","sectionRoute":"/build/api/schema/objects/transaction-error#returned-by","type":"docs"},{"id":91,"pageTitle":"TransactionInput","sectionTitle":"TransactionInput","sectionRoute":"/build/api/schema/objects/transaction-input","type":"docs"},{"id":92,"pageTitle":"TransactionInput","sectionTitle":"Fields","sectionRoute":"/build/api/schema/objects/transaction-input#fields","type":"docs"},{"id":93,"pageTitle":"TransactionInput","sectionTitle":"Returned by","sectionRoute":"/build/api/schema/objects/transaction-input#returned-by","type":"docs"},{"id":94,"pageTitle":"TransactionInput","sectionTitle":"Member of","sectionRoute":"/build/api/schema/objects/transaction-input#member-of","type":"docs"},{"id":82,"pageTitle":"TransactionMovement","sectionTitle":"TransactionMovement","sectionRoute":"/build/api/schema/objects/transaction-movement","type":"docs"},{"id":83,"pageTitle":"TransactionMovement","sectionTitle":"Fields","sectionRoute":"/build/api/schema/objects/transaction-movement#fields","type":"docs"},{"id":84,"pageTitle":"TransactionMovement","sectionTitle":"Member of","sectionRoute":"/build/api/schema/objects/transaction-movement#member-of","type":"docs"},{"id":88,"pageTitle":"TransactionSummary","sectionTitle":"TransactionSummary","sectionRoute":"/build/api/schema/objects/transaction-summary","type":"docs"},{"id":89,"pageTitle":"TransactionSummary","sectionTitle":"Fields","sectionRoute":"/build/api/schema/objects/transaction-summary#fields","type":"docs"},{"id":90,"pageTitle":"TransactionSummary","sectionTitle":"Member of","sectionRoute":"/build/api/schema/objects/transaction-summary#member-of","type":"docs"},{"id":95,"pageTitle":"UcoData","sectionTitle":"UcoData","sectionRoute":"/build/api/schema/objects/uco-data","type":"docs"},{"id":96,"pageTitle":"UcoData","sectionTitle":"Fields","sectionRoute":"/build/api/schema/objects/uco-data#fields","type":"docs"},{"id":97,"pageTitle":"UcoData","sectionTitle":"Member of","sectionRoute":"/build/api/schema/objects/uco-data#member-of","type":"docs"},{"id":85,"pageTitle":"UcoLedger","sectionTitle":"UcoLedger","sectionRoute":"/build/api/schema/objects/uco-ledger","type":"docs"},{"id":86,"pageTitle":"UcoLedger","sectionTitle":"Fields","sectionRoute":"/build/api/schema/objects/uco-ledger#fields","type":"docs"},{"id":87,"pageTitle":"UcoLedger","sectionTitle":"Member of","sectionRoute":"/build/api/schema/objects/uco-ledger#member-of","type":"docs"},{"id":98,"pageTitle":"UcoTransfer","sectionTitle":"UcoTransfer","sectionRoute":"/build/api/schema/objects/uco-transfer","type":"docs"},{"id":99,"pageTitle":"UcoTransfer","sectionTitle":"Fields","sectionRoute":"/build/api/schema/objects/uco-transfer#fields","type":"docs"},{"id":100,"pageTitle":"UcoTransfer","sectionTitle":"Member of","sectionRoute":"/build/api/schema/objects/uco-transfer#member-of","type":"docs"},{"id":101,"pageTitle":"UnspentOutput","sectionTitle":"UnspentOutput","sectionRoute":"/build/api/schema/objects/unspent-output","type":"docs"},{"id":102,"pageTitle":"UnspentOutput","sectionTitle":"Fields","sectionRoute":"/build/api/schema/objects/unspent-output#fields","type":"docs"},{"id":103,"pageTitle":"UnspentOutput","sectionTitle":"Returned by","sectionRoute":"/build/api/schema/objects/unspent-output#returned-by","type":"docs"},{"id":104,"pageTitle":"UnspentOutput","sectionTitle":"Member of","sectionRoute":"/build/api/schema/objects/unspent-output#member-of","type":"docs"},{"id":108,"pageTitle":"ValidationStamp","sectionTitle":"ValidationStamp","sectionRoute":"/build/api/schema/objects/validation-stamp","type":"docs"},{"id":109,"pageTitle":"ValidationStamp","sectionTitle":"Fields","sectionRoute":"/build/api/schema/objects/validation-stamp#fields","type":"docs"},{"id":110,"pageTitle":"ValidationStamp","sectionTitle":"Member of","sectionRoute":"/build/api/schema/objects/validation-stamp#member-of","type":"docs"},{"id":111,"pageTitle":"Version","sectionTitle":"Version","sectionRoute":"/build/api/schema/objects/version","type":"docs"},{"id":112,"pageTitle":"Version","sectionTitle":"Fields","sectionRoute":"/build/api/schema/objects/version#fields","type":"docs"},{"id":113,"pageTitle":"Version","sectionTitle":"Returned by","sectionRoute":"/build/api/schema/objects/version#returned-by","type":"docs"},{"id":105,"pageTitle":"balance","sectionTitle":"balance","sectionRoute":"/build/api/schema/queries/balance","type":"docs"},{"id":106,"pageTitle":"balance","sectionTitle":"Arguments","sectionRoute":"/build/api/schema/queries/balance#arguments","type":"docs"},{"id":107,"pageTitle":"balance","sectionTitle":"Type","sectionRoute":"/build/api/schema/queries/balance#type","type":"docs"},{"id":114,"pageTitle":"beaconChainSummary","sectionTitle":"beaconChainSummary","sectionRoute":"/build/api/schema/queries/beacon-chain-summary","type":"docs"},{"id":115,"pageTitle":"beaconChainSummary","sectionTitle":"Arguments","sectionRoute":"/build/api/schema/queries/beacon-chain-summary#arguments","type":"docs"},{"id":116,"pageTitle":"beaconChainSummary","sectionTitle":"Type","sectionRoute":"/build/api/schema/queries/beacon-chain-summary#type","type":"docs"},{"id":120,"pageTitle":"chainUnspentOutputs","sectionTitle":"chainUnspentOutputs","sectionRoute":"/build/api/schema/queries/chain-unspent-outputs","type":"docs"},{"id":121,"pageTitle":"chainUnspentOutputs","sectionTitle":"Arguments","sectionRoute":"/build/api/schema/queries/chain-unspent-outputs#arguments","type":"docs"},{"id":122,"pageTitle":"chainUnspentOutputs","sectionTitle":"Type","sectionRoute":"/build/api/schema/queries/chain-unspent-outputs#type","type":"docs"},{"id":117,"pageTitle":"genesisAddress","sectionTitle":"genesisAddress","sectionRoute":"/build/api/schema/queries/genesis-address","type":"docs"},{"id":118,"pageTitle":"genesisAddress","sectionTitle":"Arguments","sectionRoute":"/build/api/schema/queries/genesis-address#arguments","type":"docs"},{"id":119,"pageTitle":"genesisAddress","sectionTitle":"Type","sectionRoute":"/build/api/schema/queries/genesis-address#type","type":"docs"},{"id":123,"pageTitle":"lastTransaction","sectionTitle":"lastTransaction","sectionRoute":"/build/api/schema/queries/last-transaction","type":"docs"},{"id":124,"pageTitle":"lastTransaction","sectionTitle":"Arguments","sectionRoute":"/build/api/schema/queries/last-transaction#arguments","type":"docs"},{"id":125,"pageTitle":"lastTransaction","sectionTitle":"Type","sectionRoute":"/build/api/schema/queries/last-transaction#type","type":"docs"},{"id":126,"pageTitle":"nearestEndpoints","sectionTitle":"nearestEndpoints","sectionRoute":"/build/api/schema/queries/nearest-endpoints","type":"docs"},{"id":127,"pageTitle":"nearestEndpoints","sectionTitle":"Type","sectionRoute":"/build/api/schema/queries/nearest-endpoints#type","type":"docs"},{"id":128,"pageTitle":"networkTransactions","sectionTitle":"networkTransactions","sectionRoute":"/build/api/schema/queries/network-transactions","type":"docs"},{"id":129,"pageTitle":"networkTransactions","sectionTitle":"Arguments","sectionRoute":"/build/api/schema/queries/network-transactions#arguments","type":"docs"},{"id":130,"pageTitle":"networkTransactions","sectionTitle":"Type","sectionRoute":"/build/api/schema/queries/network-transactions#type","type":"docs"},{"id":131,"pageTitle":"nodes","sectionTitle":"nodes","sectionRoute":"/build/api/schema/queries/nodes","type":"docs"},{"id":132,"pageTitle":"nodes","sectionTitle":"Type","sectionRoute":"/build/api/schema/queries/nodes#type","type":"docs"},{"id":150,"pageTitle":"oracleData","sectionTitle":"oracleData","sectionRoute":"/build/api/schema/queries/oracle-data","type":"docs"},{"id":151,"pageTitle":"oracleData","sectionTitle":"Arguments","sectionRoute":"/build/api/schema/queries/oracle-data#arguments","type":"docs"},{"id":152,"pageTitle":"oracleData","sectionTitle":"Type","sectionRoute":"/build/api/schema/queries/oracle-data#type","type":"docs"},{"id":133,"pageTitle":"sharedSecrets","sectionTitle":"sharedSecrets","sectionRoute":"/build/api/schema/queries/shared-secrets","type":"docs"},{"id":134,"pageTitle":"sharedSecrets","sectionTitle":"Type","sectionRoute":"/build/api/schema/queries/shared-secrets#type","type":"docs"},{"id":135,"pageTitle":"token","sectionTitle":"token","sectionRoute":"/build/api/schema/queries/token","type":"docs"},{"id":136,"pageTitle":"token","sectionTitle":"Arguments","sectionRoute":"/build/api/schema/queries/token#arguments","type":"docs"},{"id":137,"pageTitle":"token","sectionTitle":"Type","sectionRoute":"/build/api/schema/queries/token#type","type":"docs"},{"id":138,"pageTitle":"transaction","sectionTitle":"transaction","sectionRoute":"/build/api/schema/queries/transaction","type":"docs"},{"id":139,"pageTitle":"transaction","sectionTitle":"Arguments","sectionRoute":"/build/api/schema/queries/transaction#arguments","type":"docs"},{"id":140,"pageTitle":"transaction","sectionTitle":"Type","sectionRoute":"/build/api/schema/queries/transaction#type","type":"docs"},{"id":141,"pageTitle":"transactionChain","sectionTitle":"transactionChain","sectionRoute":"/build/api/schema/queries/transaction-chain","type":"docs"},{"id":142,"pageTitle":"transactionChain","sectionTitle":"Arguments","sectionRoute":"/build/api/schema/queries/transaction-chain#arguments","type":"docs"},{"id":143,"pageTitle":"transactionChain","sectionTitle":"Type","sectionRoute":"/build/api/schema/queries/transaction-chain#type","type":"docs"},{"id":144,"pageTitle":"transactionInputs","sectionTitle":"transactionInputs","sectionRoute":"/build/api/schema/queries/transaction-inputs","type":"docs"},{"id":145,"pageTitle":"transactionInputs","sectionTitle":"Arguments","sectionRoute":"/build/api/schema/queries/transaction-inputs#arguments","type":"docs"},{"id":146,"pageTitle":"transactionInputs","sectionTitle":"Type","sectionRoute":"/build/api/schema/queries/transaction-inputs#type","type":"docs"},{"id":147,"pageTitle":"transactions","sectionTitle":"transactions","sectionRoute":"/build/api/schema/queries/transactions","type":"docs"},{"id":148,"pageTitle":"transactions","sectionTitle":"Arguments","sectionRoute":"/build/api/schema/queries/transactions#arguments","type":"docs"},{"id":149,"pageTitle":"transactions","sectionTitle":"Type","sectionRoute":"/build/api/schema/queries/transactions#type","type":"docs"},{"id":153,"pageTitle":"version","sectionTitle":"version","sectionRoute":"/build/api/schema/queries/version","type":"docs"},{"id":154,"pageTitle":"version","sectionTitle":"Type","sectionRoute":"/build/api/schema/queries/version#type","type":"docs"},{"id":175,"pageTitle":"Address","sectionTitle":"Address","sectionRoute":"/build/api/schema/scalars/address","type":"docs"},{"id":176,"pageTitle":"Address","sectionTitle":"Returned by","sectionRoute":"/build/api/schema/scalars/address#returned-by","type":"docs"},{"id":177,"pageTitle":"Address","sectionTitle":"Member of","sectionRoute":"/build/api/schema/scalars/address#member-of","type":"docs"},{"id":155,"pageTitle":"Boolean","sectionTitle":"Boolean","sectionRoute":"/build/api/schema/scalars/boolean","type":"docs"},{"id":156,"pageTitle":"Boolean","sectionTitle":"Member of","sectionRoute":"/build/api/schema/scalars/boolean#member-of","type":"docs"},{"id":157,"pageTitle":"Content","sectionTitle":"Content","sectionRoute":"/build/api/schema/scalars/content","type":"docs"},{"id":158,"pageTitle":"Content","sectionTitle":"Member of","sectionRoute":"/build/api/schema/scalars/content#member-of","type":"docs"},{"id":159,"pageTitle":"ErrorData","sectionTitle":"ErrorData","sectionRoute":"/build/api/schema/scalars/error-data","type":"docs"},{"id":160,"pageTitle":"ErrorData","sectionTitle":"Member of","sectionRoute":"/build/api/schema/scalars/error-data#member-of","type":"docs"},{"id":161,"pageTitle":"Float","sectionTitle":"Float","sectionRoute":"/build/api/schema/scalars/float","type":"docs"},{"id":162,"pageTitle":"Float","sectionTitle":"Member of","sectionRoute":"/build/api/schema/scalars/float#member-of","type":"docs"},{"id":163,"pageTitle":"Hash","sectionTitle":"Hash","sectionRoute":"/build/api/schema/scalars/hash","type":"docs"},{"id":164,"pageTitle":"Hash","sectionTitle":"Member of","sectionRoute":"/build/api/schema/scalars/hash#member-of","type":"docs"},{"id":167,"pageTitle":"Hex","sectionTitle":"Hex","sectionRoute":"/build/api/schema/scalars/hex","type":"docs"},{"id":168,"pageTitle":"Hex","sectionTitle":"Member of","sectionRoute":"/build/api/schema/scalars/hex#member-of","type":"docs"},{"id":165,"pageTitle":"Int","sectionTitle":"Int","sectionRoute":"/build/api/schema/scalars/int","type":"docs"},{"id":166,"pageTitle":"Int","sectionTitle":"Member of","sectionRoute":"/build/api/schema/scalars/int#member-of","type":"docs"},{"id":169,"pageTitle":"NonNegInteger","sectionTitle":"NonNegInteger","sectionRoute":"/build/api/schema/scalars/non-neg-integer","type":"docs"},{"id":170,"pageTitle":"NonNegInteger","sectionTitle":"Member of","sectionRoute":"/build/api/schema/scalars/non-neg-integer#member-of","type":"docs"},{"id":178,"pageTitle":"P2pAvailabilities","sectionTitle":"P2pAvailabilities","sectionRoute":"/build/api/schema/scalars/p2-p-availabilities","type":"docs"},{"id":179,"pageTitle":"P2pAvailabilities","sectionTitle":"Member of","sectionRoute":"/build/api/schema/scalars/p2-p-availabilities#member-of","type":"docs"},{"id":171,"pageTitle":"PosInteger","sectionTitle":"PosInteger","sectionRoute":"/build/api/schema/scalars/pos-integer","type":"docs"},{"id":172,"pageTitle":"PosInteger","sectionTitle":"Member of","sectionRoute":"/build/api/schema/scalars/pos-integer#member-of","type":"docs"},{"id":173,"pageTitle":"PublicKey","sectionTitle":"PublicKey","sectionRoute":"/build/api/schema/scalars/public-key","type":"docs"},{"id":174,"pageTitle":"PublicKey","sectionTitle":"Member of","sectionRoute":"/build/api/schema/scalars/public-key#member-of","type":"docs"},{"id":180,"pageTitle":"RecipientArgs","sectionTitle":"RecipientArgs","sectionRoute":"/build/api/schema/scalars/recipient-args","type":"docs"},{"id":181,"pageTitle":"RecipientArgs","sectionTitle":"Member of","sectionRoute":"/build/api/schema/scalars/recipient-args#member-of","type":"docs"},{"id":182,"pageTitle":"Sha256Hash","sectionTitle":"Sha256Hash","sectionRoute":"/build/api/schema/scalars/sha-256-hash","type":"docs"},{"id":183,"pageTitle":"Sha256Hash","sectionTitle":"Member of","sectionRoute":"/build/api/schema/scalars/sha-256-hash#member-of","type":"docs"},{"id":184,"pageTitle":"State","sectionTitle":"State","sectionRoute":"/build/api/schema/scalars/state","type":"docs"},{"id":185,"pageTitle":"State","sectionTitle":"Member of","sectionRoute":"/build/api/schema/scalars/state#member-of","type":"docs"},{"id":186,"pageTitle":"String","sectionTitle":"String","sectionRoute":"/build/api/schema/scalars/string","type":"docs"},{"id":187,"pageTitle":"String","sectionTitle":"Member of","sectionRoute":"/build/api/schema/scalars/string#member-of","type":"docs"},{"id":188,"pageTitle":"Timestamp","sectionTitle":"Timestamp","sectionRoute":"/build/api/schema/scalars/timestamp","type":"docs"},{"id":189,"pageTitle":"Timestamp","sectionTitle":"Member of","sectionRoute":"/build/api/schema/scalars/timestamp#member-of","type":"docs"},{"id":190,"pageTitle":"TokenProperties","sectionTitle":"TokenProperties","sectionRoute":"/build/api/schema/scalars/token-properties","type":"docs"},{"id":191,"pageTitle":"TokenProperties","sectionTitle":"Member of","sectionRoute":"/build/api/schema/scalars/token-properties#member-of","type":"docs"},{"id":192,"pageTitle":"TransactionType","sectionTitle":"TransactionType","sectionRoute":"/build/api/schema/scalars/transaction-type","type":"docs"},{"id":193,"pageTitle":"TransactionType","sectionTitle":"Member of","sectionRoute":"/build/api/schema/scalars/transaction-type#member-of","type":"docs"},{"id":196,"pageTitle":"VersionedHash","sectionTitle":"VersionedHash","sectionRoute":"/build/api/schema/scalars/versioned-hash","type":"docs"},{"id":197,"pageTitle":"VersionedHash","sectionTitle":"Member of","sectionRoute":"/build/api/schema/scalars/versioned-hash#member-of","type":"docs"},{"id":194,"pageTitle":"oracleUpdate","sectionTitle":"oracleUpdate","sectionRoute":"/build/api/schema/subscriptions/oracle-update","type":"docs"},{"id":195,"pageTitle":"oracleUpdate","sectionTitle":"Type","sectionRoute":"/build/api/schema/subscriptions/oracle-update#type","type":"docs"},{"id":198,"pageTitle":"transactionConfirmed","sectionTitle":"transactionConfirmed","sectionRoute":"/build/api/schema/subscriptions/transaction-confirmed","type":"docs"},{"id":199,"pageTitle":"transactionConfirmed","sectionTitle":"Arguments","sectionRoute":"/build/api/schema/subscriptions/transaction-confirmed#arguments","type":"docs"},{"id":200,"pageTitle":"transactionConfirmed","sectionTitle":"Type","sectionRoute":"/build/api/schema/subscriptions/transaction-confirmed#type","type":"docs"},{"id":201,"pageTitle":"transactionError","sectionTitle":"transactionError","sectionRoute":"/build/api/schema/subscriptions/transaction-error","type":"docs"},{"id":202,"pageTitle":"transactionError","sectionTitle":"Arguments","sectionRoute":"/build/api/schema/subscriptions/transaction-error#arguments","type":"docs"},{"id":203,"pageTitle":"transactionError","sectionTitle":"Type","sectionRoute":"/build/api/schema/subscriptions/transaction-error#type","type":"docs"},{"id":204,"pageTitle":"","sectionTitle":"Introduction","sectionRoute":"/build/clients/ledger-wallet/","type":"docs"},{"id":205,"pageTitle":"","sectionTitle":"Synopsis","sectionRoute":"/build/clients/ledger-wallet/#synopsis","type":"docs"},{"id":206,"pageTitle":"","sectionTitle":"Prerequisites","sectionRoute":"/build/clients/ledger-wallet/#prerequisites","type":"docs"},{"id":207,"pageTitle":"","sectionTitle":"Installation Instructions","sectionRoute":"/build/clients/ledger-wallet/#installation-instructions","type":"docs"},{"id":208,"pageTitle":"","sectionTitle":"Testing","sectionRoute":"/build/clients/ledger-wallet/#testing","type":"docs"},{"id":209,"pageTitle":"","sectionTitle":"Demo","sectionRoute":"/build/clients/ledger-wallet/#demo","type":"docs"},{"id":210,"pageTitle":"Ledger Application API","sectionTitle":"Ledger Application API","sectionRoute":"/build/clients/ledger-wallet/api","type":"docs"},{"id":211,"pageTitle":"Ledger Application API","sectionTitle":"GET VERSION","sectionRoute":"/build/clients/ledger-wallet/api#get-version","type":"docs"},{"id":212,"pageTitle":"Ledger Application API","sectionTitle":"GET DEVICE ORIGIN PUBLIC KEY","sectionRoute":"/build/clients/ledger-wallet/api#get-device-origin-public-key","type":"docs"},{"id":213,"pageTitle":"Ledger Application API","sectionTitle":"GET ARCHETHIC ADDRESS","sectionRoute":"/build/clients/ledger-wallet/api#get-archethic-address","type":"docs"},{"id":214,"pageTitle":"Ledger Application API","sectionTitle":"SIGN TRANSACTION","sectionRoute":"/build/clients/ledger-wallet/api#sign-transaction","type":"docs"},{"id":215,"pageTitle":"ADPU commands","sectionTitle":"ADPU commands","sectionRoute":"/build/clients/ledger-wallet/commands","type":"docs"},{"id":216,"pageTitle":"ADPU commands","sectionTitle":"APDU commands","sectionRoute":"/build/clients/ledger-wallet/commands#apdu-commands","type":"docs"},{"id":217,"pageTitle":"ADPU commands","sectionTitle":"Get Origin Public Key","sectionRoute":"/build/clients/ledger-wallet/commands#get-origin-public-key","type":"docs"},{"id":218,"pageTitle":"ADPU commands","sectionTitle":"Get Archethic Account Address","sectionRoute":"/build/clients/ledger-wallet/commands#get-archethic-account-address","type":"docs"},{"id":219,"pageTitle":"ADPU commands","sectionTitle":"Get Signature","sectionRoute":"/build/clients/ledger-wallet/commands#get-signature","type":"docs"},{"id":234,"pageTitle":"Archethic's wallet access","sectionTitle":"Archethic's wallet access","sectionRoute":"/build/clients/wallet-access","type":"docs"},{"id":235,"pageTitle":"Archethic's wallet access","sectionTitle":"Access enrollment","sectionRoute":"/build/clients/wallet-access#access-enrollment","type":"docs"},{"id":236,"pageTitle":"Archethic's wallet access","sectionTitle":"Keychain retrieval","sectionRoute":"/build/clients/wallet-access#keychain-retrieval","type":"docs"},{"id":220,"pageTitle":"Archethic's wallet specification","sectionTitle":"Archethic's wallet specification","sectionRoute":"/build/clients/wallet-spec","type":"docs"},{"id":221,"pageTitle":"Archethic's wallet specification","sectionTitle":"Glossary","sectionRoute":"/build/clients/wallet-spec#glossary","type":"docs"},{"id":222,"pageTitle":"Archethic's wallet specification","sectionTitle":"Cryptography","sectionRoute":"/build/clients/wallet-spec#cryptography","type":"docs"},{"id":223,"pageTitle":"Archethic's wallet specification","sectionTitle":"Derivation path","sectionRoute":"/build/clients/wallet-spec#derivation-path","type":"docs"},{"id":224,"pageTitle":"Archethic's wallet specification","sectionTitle":"Key derivation","sectionRoute":"/build/clients/wallet-spec#key-derivation","type":"docs"},{"id":225,"pageTitle":"Archethic's wallet specification","sectionTitle":"Encryption","sectionRoute":"/build/clients/wallet-spec#encryption","type":"docs"},{"id":226,"pageTitle":"Archethic's wallet specification","sectionTitle":"Encoding","sectionRoute":"/build/clients/wallet-spec#encoding","type":"docs"},{"id":227,"pageTitle":"Archethic's wallet specification","sectionTitle":"Encoding of wallet","sectionRoute":"/build/clients/wallet-spec#encoding-of-wallet","type":"docs"},{"id":228,"pageTitle":"Archethic's wallet specification","sectionTitle":"Encoding of Curve Types","sectionRoute":"/build/clients/wallet-spec#encoding-of-curve-types","type":"docs"},{"id":229,"pageTitle":"Archethic's wallet specification","sectionTitle":"Encoding of Hash Types","sectionRoute":"/build/clients/wallet-spec#encoding-of-hash-types","type":"docs"},{"id":230,"pageTitle":"Archethic's wallet specification","sectionTitle":"Transaction representation","sectionRoute":"/build/clients/wallet-spec#transaction-representation","type":"docs"},{"id":231,"pageTitle":"Archethic's wallet specification","sectionTitle":"Format","sectionRoute":"/build/clients/wallet-spec#format","type":"docs"},{"id":232,"pageTitle":"Archethic's wallet specification","sectionTitle":"Public Key Format","sectionRoute":"/build/clients/wallet-spec#public-key-format","type":"docs"},{"id":233,"pageTitle":"Archethic's wallet specification","sectionTitle":"Account Address Format","sectionRoute":"/build/clients/wallet-spec#account-address-format","type":"docs"},{"id":253,"pageTitle":"Core development","sectionTitle":"Core development","sectionRoute":"/build/core/","type":"docs"},{"id":254,"pageTitle":"Core development","sectionTitle":"Technology Stack","sectionRoute":"/build/core/#technology-stack","type":"docs"},{"id":255,"pageTitle":"Core development","sectionTitle":"Why Elixir ?","sectionRoute":"/build/core/#why-elixir-","type":"docs"},{"id":256,"pageTitle":"Core development","sectionTitle":"Why C ?","sectionRoute":"/build/core/#why-c-","type":"docs"},{"id":257,"pageTitle":"Core development","sectionTitle":"Structure","sectionRoute":"/build/core/#structure","type":"docs"},{"id":237,"pageTitle":"Account","sectionTitle":"Account","sectionRoute":"/build/core/account","type":"docs"},{"id":238,"pageTitle":"Account","sectionTitle":"UCO","sectionRoute":"/build/core/account#uco","type":"docs"},{"id":239,"pageTitle":"Account","sectionTitle":"Ledger","sectionRoute":"/build/core/account#ledger","type":"docs"},{"id":240,"pageTitle":"Account","sectionTitle":"Index","sectionRoute":"/build/core/account#index","type":"docs"},{"id":241,"pageTitle":"Account","sectionTitle":"Token","sectionRoute":"/build/core/account#token","type":"docs"},{"id":242,"pageTitle":"Account","sectionTitle":"Ledger","sectionRoute":"/build/core/account#ledger-1","type":"docs"},{"id":243,"pageTitle":"Account","sectionTitle":"Index","sectionRoute":"/build/core/account#index-1","type":"docs"},{"id":244,"pageTitle":"Account","sectionTitle":"Loading","sectionRoute":"/build/core/account#loading","type":"docs"},{"id":245,"pageTitle":"BeaconChain","sectionTitle":"BeaconChain","sectionRoute":"/build/core/beacon-chain/","type":"docs"},{"id":246,"pageTitle":"BeaconChain","sectionTitle":"Subsets","sectionRoute":"/build/core/beacon-chain/#subsets","type":"docs"},{"id":247,"pageTitle":"BeaconChain","sectionTitle":"Timers and schedulers","sectionRoute":"/build/core/beacon-chain/#timers-and-schedulers","type":"docs"},{"id":248,"pageTitle":"BeaconChain","sectionTitle":"Transaction loading","sectionRoute":"/build/core/beacon-chain/#transaction-loading","type":"docs"},{"id":249,"pageTitle":"BeaconChain","sectionTitle":"Supervisor","sectionRoute":"/build/core/beacon-chain/#supervisor","type":"docs"},{"id":250,"pageTitle":"P2P availability sampling","sectionTitle":"P2P availability sampling","sectionRoute":"/build/core/beacon-chain/p2p-sampling","type":"docs"},{"id":251,"pageTitle":"P2P availability sampling","sectionTitle":"Heartbeat","sectionRoute":"/build/core/beacon-chain/p2p-sampling#heartbeat","type":"docs"},{"id":252,"pageTitle":"P2P availability sampling","sectionTitle":"Aggregation","sectionRoute":"/build/core/beacon-chain/p2p-sampling#aggregation","type":"docs"},{"id":258,"pageTitle":"Bootstrap","sectionTitle":"Bootstrap","sectionRoute":"/build/core/bootstrap","type":"docs"},{"id":259,"pageTitle":"Bootstrap","sectionTitle":"Network initizialiation","sectionRoute":"/build/core/bootstrap#network-initizialiation","type":"docs"},{"id":260,"pageTitle":"Bootstrap","sectionTitle":"First node bootstrapping","sectionRoute":"/build/core/bootstrap#first-node-bootstrapping","type":"docs"},{"id":261,"pageTitle":"Bootstrap","sectionTitle":"Next time bootstraps","sectionRoute":"/build/core/bootstrap#next-time-bootstraps","type":"docs"},{"id":262,"pageTitle":"Cryptography","sectionTitle":"Cryptography","sectionRoute":"/build/core/cryptography/","type":"docs"},{"id":263,"pageTitle":"Cryptography","sectionTitle":"Node Keystore","sectionRoute":"/build/core/cryptography/#node-keystore","type":"docs"},{"id":264,"pageTitle":"Cryptography","sectionTitle":"Node Shared Secrets Keystore","sectionRoute":"/build/core/cryptography/#node-shared-secrets-keystore","type":"docs"},{"id":265,"pageTitle":"TPM Implementation","sectionTitle":"TPM Implementation","sectionRoute":"/build/core/cryptography/tpm","type":"docs"},{"id":266,"pageTitle":"TPM Implementation","sectionTitle":"Global Variables","sectionRoute":"/build/core/cryptography/tpm#global-variables","type":"docs"},{"id":267,"pageTitle":"TPM Implementation","sectionTitle":"void keyToASN():","sectionRoute":"/build/core/cryptography/tpm#void-keytoasn","type":"docs"},{"id":268,"pageTitle":"TPM Implementation","sectionTitle":"void signToASN(BYTE r, INT sizeR, BYTE s, INT sizeS, INT *asnSignSize)","sectionRoute":"/build/core/cryptography/tpm#void-signtoasnbyte-r-int-sizer-byte-s-int-sizes-int-asnsignsize","type":"docs"},{"id":269,"pageTitle":"TPM Implementation","sectionTitle":"void generatePublicKey(INT keyIndex)","sectionRoute":"/build/core/cryptography/tpm#void-generatepublickeyint-keyindex","type":"docs"},{"id":270,"pageTitle":"TPM Implementation","sectionTitle":"setRootKey()","sectionRoute":"/build/core/cryptography/tpm#setrootkey","type":"docs"},{"id":271,"pageTitle":"TPM Implementation","sectionTitle":"updateHandlesIndexes()","sectionRoute":"/build/core/cryptography/tpm#updatehandlesindexes","type":"docs"},{"id":272,"pageTitle":"TPM Implementation","sectionTitle":"initializeTPM(INT keyIndex):","sectionRoute":"/build/core/cryptography/tpm#initializetpmint-keyindex","type":"docs"},{"id":273,"pageTitle":"TPM Implementation","sectionTitle":"getKeyIndex():","sectionRoute":"/build/core/cryptography/tpm#getkeyindex","type":"docs"},{"id":274,"pageTitle":"TPM Implementation","sectionTitle":"setKeyIndex(INT keyIndex):","sectionRoute":"/build/core/cryptography/tpm#setkeyindexint-keyindex","type":"docs"},{"id":275,"pageTitle":"TPM Implementation","sectionTitle":"getPublicKey(INT keyIndex, INT *publicKeySize):","sectionRoute":"/build/core/cryptography/tpm#getpublickeyint-keyindex-int-publickeysize","type":"docs"},{"id":276,"pageTitle":"TPM Implementation","sectionTitle":"signECDSA(INT keyIndex, BYTE hashToSign, INT eccSignSize, bool increment):","sectionRoute":"/build/core/cryptography/tpm#signecdsaint-keyindex-byte-hashtosign-int-eccsignsize-bool-increment","type":"docs"},{"id":277,"pageTitle":"TPM Implementation","sectionTitle":"getECDHPoint(INT keyIndex, BYTE *euphemeralKey):","sectionRoute":"/build/core/cryptography/tpm#getecdhpointint-keyindex-byte-euphemeralkey","type":"docs"},{"id":278,"pageTitle":"Yubikey implementation","sectionTitle":"Yubikey implementation","sectionRoute":"/build/core/cryptography/yubikey","type":"docs"},{"id":279,"pageTitle":"Yubikey implementation","sectionTitle":"initializeYK() :","sectionRoute":"/build/core/cryptography/yubikey#initializeyk-","type":"docs"},{"id":280,"pageTitle":"Yubikey implementation","sectionTitle":"bool checkYK():","sectionRoute":"/build/core/cryptography/yubikey#bool-checkyk","type":"docs"},{"id":281,"pageTitle":"Yubikey implementation","sectionTitle":"verifyPinYK():","sectionRoute":"/build/core/cryptography/yubikey#verifypinyk","type":"docs"},{"id":282,"pageTitle":"Yubikey implementation","sectionTitle":"authenticateYK():","sectionRoute":"/build/core/cryptography/yubikey#authenticateyk","type":"docs"},{"id":283,"pageTitle":"Yubikey implementation","sectionTitle":"fetchKey(keyIndex):","sectionRoute":"/build/core/cryptography/yubikey#fetchkeykeyindex","type":"docs"},{"id":284,"pageTitle":"Yubikey implementation","sectionTitle":"generateKey(ykIndex):","sectionRoute":"/build/core/cryptography/yubikey#generatekeyykindex","type":"docs"},{"id":285,"pageTitle":"Yubikey implementation","sectionTitle":"generateCertificate(ykIndex):","sectionRoute":"/build/core/cryptography/yubikey#generatecertificateykindex","type":"docs"},{"id":286,"pageTitle":"Yubikey implementation","sectionTitle":"getYKIndex():","sectionRoute":"/build/core/cryptography/yubikey#getykindex","type":"docs"},{"id":287,"pageTitle":"Yubikey implementation","sectionTitle":"saveIndex(ykIndex, archethicIndex):","sectionRoute":"/build/core/cryptography/yubikey#saveindexykindex-archethicindex","type":"docs"},{"id":288,"pageTitle":"Yubikey implementation","sectionTitle":"signECDSA(hashtoSign, ykIndex):","sectionRoute":"/build/core/cryptography/yubikey#signecdsahashtosign-ykindex","type":"docs"},{"id":289,"pageTitle":"Yubikey implementation","sectionTitle":"getECDHPoint(ykIndex, euphermerakley) :","sectionRoute":"/build/core/cryptography/yubikey#getecdhpointykindex-euphermerakley-","type":"docs"},{"id":290,"pageTitle":"Yubikey implementation","sectionTitle":"getArchEthicIndex():","sectionRoute":"/build/core/cryptography/yubikey#getarchethicindex","type":"docs"},{"id":291,"pageTitle":"Yubikey implementation","sectionTitle":"incrementIndex():","sectionRoute":"/build/core/cryptography/yubikey#incrementindex","type":"docs"},{"id":292,"pageTitle":"Yubikey implementation","sectionTitle":"getRootKey():","sectionRoute":"/build/core/cryptography/yubikey#getrootkey","type":"docs"},{"id":293,"pageTitle":"Yubikey implementation","sectionTitle":"getCurrentKey(publicKeySize):","sectionRoute":"/build/core/cryptography/yubikey#getcurrentkeypublickeysize","type":"docs"},{"id":294,"pageTitle":"Yubikey implementation","sectionTitle":"getNextKey( publicKeySize):","sectionRoute":"/build/core/cryptography/yubikey#getnextkey-publickeysize","type":"docs"},{"id":295,"pageTitle":"Yubikey implementation","sectionTitle":"getPastKey(archEthicIndex, publicKeySize):","sectionRoute":"/build/core/cryptography/yubikey#getpastkeyarchethicindex-publickeysize","type":"docs"},{"id":296,"pageTitle":"Yubikey implementation","sectionTitle":"getRootCertificate( certificateSize):","sectionRoute":"/build/core/cryptography/yubikey#getrootcertificate-certificatesize","type":"docs"},{"id":297,"pageTitle":"Yubikey implementation","sectionTitle":"getCurrentCertificate(certificateSize):","sectionRoute":"/build/core/cryptography/yubikey#getcurrentcertificatecertificatesize","type":"docs"},{"id":298,"pageTitle":"Yubikey implementation","sectionTitle":"getNextCertificate(certificateSize):","sectionRoute":"/build/core/cryptography/yubikey#getnextcertificatecertificatesize","type":"docs"},{"id":299,"pageTitle":"Yubikey implementation","sectionTitle":"getPastCertificate(archEthicIndex, certificateSize):","sectionRoute":"/build/core/cryptography/yubikey#getpastcertificatearchethicindex-certificatesize","type":"docs"},{"id":300,"pageTitle":"Yubikey implementation","sectionTitle":"signCurrentKey(hashToSign, eccSignSize):","sectionRoute":"/build/core/cryptography/yubikey#signcurrentkeyhashtosign-eccsignsize","type":"docs"},{"id":301,"pageTitle":"Yubikey implementation","sectionTitle":"signPastKey(archEthicIndex, hashToSign, eccSignSize):","sectionRoute":"/build/core/cryptography/yubikey#signpastkeyarchethicindex-hashtosign-eccsignsize","type":"docs"},{"id":302,"pageTitle":"Yubikey implementation","sectionTitle":"ecdhCurrentKey(euphemeralKey, eccPointSize):","sectionRoute":"/build/core/cryptography/yubikey#ecdhcurrentkeyeuphemeralkey-eccpointsize","type":"docs"},{"id":303,"pageTitle":"Yubikey implementation","sectionTitle":"ecdhPastKey( archEthicIndex, euphemeralKey, eccPointSize):","sectionRoute":"/build/core/cryptography/yubikey#ecdhpastkey-archethicindex-euphemeralkey-eccpointsize","type":"docs"},{"id":308,"pageTitle":"Archethic's database","sectionTitle":"Archethic's database","sectionRoute":"/build/core/database","type":"docs"},{"id":309,"pageTitle":"Archethic's database","sectionTitle":"Rationale","sectionRoute":"/build/core/database#rationale","type":"docs"},{"id":310,"pageTitle":"Archethic's database","sectionTitle":"Log Structured Merge","sectionRoute":"/build/core/database#log-structured-merge","type":"docs"},{"id":311,"pageTitle":"Archethic's database","sectionTitle":"Log Structured Hash Tables","sectionRoute":"/build/core/database#log-structured-hash-tables","type":"docs"},{"id":312,"pageTitle":"Archethic's database","sectionTitle":"Our approach","sectionRoute":"/build/core/database#our-approach","type":"docs"},{"id":313,"pageTitle":"Archethic's database","sectionTitle":"Design","sectionRoute":"/build/core/database#design","type":"docs"},{"id":314,"pageTitle":"Archethic's database","sectionTitle":"Chains storage","sectionRoute":"/build/core/database#chains-storage","type":"docs"},{"id":315,"pageTitle":"Archethic's database","sectionTitle":"Chain indexing","sectionRoute":"/build/core/database#chain-indexing","type":"docs"},{"id":316,"pageTitle":"Archethic's database","sectionTitle":"Chain reader","sectionRoute":"/build/core/database#chain-reader","type":"docs"},{"id":317,"pageTitle":"Archethic's database","sectionTitle":"Write path","sectionRoute":"/build/core/database#write-path","type":"docs"},{"id":318,"pageTitle":"Archethic's database","sectionTitle":"Read path","sectionRoute":"/build/core/database#read-path","type":"docs"},{"id":319,"pageTitle":"Archethic's database","sectionTitle":"Additional of-chain storage","sectionRoute":"/build/core/database#additional-of-chain-storage","type":"docs"},{"id":304,"pageTitle":"Election","sectionTitle":"Election","sectionRoute":"/build/core/election","type":"docs"},{"id":305,"pageTitle":"Election","sectionTitle":"Heuristic constraints","sectionRoute":"/build/core/election#heuristic-constraints","type":"docs"},{"id":306,"pageTitle":"Election","sectionTitle":"Low-Level integrations","sectionRoute":"/build/core/election#low-level-integrations","type":"docs"},{"id":307,"pageTitle":"Election","sectionTitle":"Hypergeomtric distribution","sectionRoute":"/build/core/election#hypergeomtric-distribution","type":"docs"},{"id":320,"pageTitle":"Code Proposals","sectionTitle":"Code Proposals","sectionRoute":"/build/core/governance/code-proposals","type":"docs"},{"id":321,"pageTitle":"CD","sectionTitle":"CD","sectionRoute":"/build/core/governance/code-proposals-cd","type":"docs"},{"id":322,"pageTitle":"CI","sectionTitle":"CI","sectionRoute":"/build/core/governance/code-proposals-ci","type":"docs"},{"id":323,"pageTitle":"Mining","sectionTitle":"Mining","sectionRoute":"/build/core/mining/","type":"docs"},{"id":324,"pageTitle":"Mining","sectionTitle":"Standalone validation workflow","sectionRoute":"/build/core/mining/#standalone-validation-workflow","type":"docs"},{"id":325,"pageTitle":"Mining","sectionTitle":"Distributed validation","sectionRoute":"/build/core/mining/#distributed-validation","type":"docs"},{"id":326,"pageTitle":"Mining","sectionTitle":"Worflow","sectionRoute":"/build/core/mining/#worflow","type":"docs"},{"id":327,"pageTitle":"Mining","sectionTitle":"FSM","sectionRoute":"/build/core/mining/#fsm","type":"docs"},{"id":328,"pageTitle":"Proof of Work algorithm","sectionTitle":"Proof of Work algorithm","sectionRoute":"/build/core/mining/proof-of-work","type":"docs"},{"id":329,"pageTitle":"Proof of Work algorithm","sectionTitle":"Origin public key candidates","sectionRoute":"/build/core/mining/proof-of-work#origin-public-key-candidates","type":"docs"},{"id":330,"pageTitle":"Proof of Work algorithm","sectionTitle":"Lookup","sectionRoute":"/build/core/mining/proof-of-work#lookup","type":"docs"},{"id":362,"pageTitle":"Transaction context retrieval","sectionTitle":"Transaction context retrieval","sectionRoute":"/build/core/mining/transaction-context","type":"docs"},{"id":363,"pageTitle":"Transaction context retrieval","sectionTitle":"Retrieval","sectionRoute":"/build/core/mining/transaction-context#retrieval","type":"docs"},{"id":364,"pageTitle":"Transaction context retrieval","sectionTitle":"Node distribution","sectionRoute":"/build/core/mining/transaction-context#node-distribution","type":"docs"},{"id":331,"pageTitle":"Pending transaction validation","sectionTitle":"Pending transaction validation","sectionRoute":"/build/core/mining/transaction-validation","type":"docs"},{"id":332,"pageTitle":"Pending transaction validation","sectionTitle":"Smart contract verification","sectionRoute":"/build/core/mining/transaction-validation#smart-contract-verification","type":"docs"},{"id":333,"pageTitle":"Pending transaction validation","sectionTitle":"Transaction type verification","sectionRoute":"/build/core/mining/transaction-validation#transaction-type-verification","type":"docs"},{"id":334,"pageTitle":"Pending transaction validation","sectionTitle":"Node transaction verification","sectionRoute":"/build/core/mining/transaction-validation#node-transaction-verification","type":"docs"},{"id":335,"pageTitle":"Pending transaction validation","sectionTitle":"Node shared secrets transaction verification","sectionRoute":"/build/core/mining/transaction-validation#node-shared-secrets-transaction-verification","type":"docs"},{"id":336,"pageTitle":"Pending transaction validation","sectionTitle":"Token transaction verification","sectionRoute":"/build/core/mining/transaction-validation#token-transaction-verification","type":"docs"},{"id":337,"pageTitle":"Pending transaction validation","sectionTitle":"Oracle transaction verification","sectionRoute":"/build/core/mining/transaction-validation#oracle-transaction-verification","type":"docs"},{"id":338,"pageTitle":"Pending transaction validation","sectionTitle":"OracleSummary transaction verification","sectionRoute":"/build/core/mining/transaction-validation#oraclesummary-transaction-verification","type":"docs"},{"id":339,"pageTitle":"Pending transaction validation","sectionTitle":"Code proposal transaction verification","sectionRoute":"/build/core/mining/transaction-validation#code-proposal-transaction-verification","type":"docs"},{"id":340,"pageTitle":"Pending transaction validation","sectionTitle":"Code approval transaction verification","sectionRoute":"/build/core/mining/transaction-validation#code-approval-transaction-verification","type":"docs"},{"id":341,"pageTitle":"OracleChain","sectionTitle":"OracleChain","sectionRoute":"/build/core/oracle-chain/","type":"docs"},{"id":343,"pageTitle":"OracleChain Memory Tables","sectionTitle":"OracleChain Memory Tables","sectionRoute":"/build/core/oracle-chain/memory-table","type":"docs"},{"id":342,"pageTitle":"OracleChain Scheduler","sectionTitle":"OracleChain Scheduler","sectionRoute":"/build/core/oracle-chain/scheduler","type":"docs"},{"id":344,"pageTitle":"Oracle Chain Service","sectionTitle":"Oracle Chain Service","sectionRoute":"/build/core/oracle-chain/service","type":"docs"},{"id":345,"pageTitle":"Oracle Chain Service","sectionTitle":"Behavior","sectionRoute":"/build/core/oracle-chain/service#behavior","type":"docs"},{"id":346,"pageTitle":"Oracle Chain Service","sectionTitle":"Example","sectionRoute":"/build/core/oracle-chain/service#example","type":"docs"},{"id":347,"pageTitle":"Oracle Chain Service","sectionTitle":"Configuration","sectionRoute":"/build/core/oracle-chain/service#configuration","type":"docs"},{"id":348,"pageTitle":"P2P","sectionTitle":"P2P","sectionRoute":"/build/core/p2p/","type":"docs"},{"id":349,"pageTitle":"Messaging","sectionTitle":"Messaging","sectionRoute":"/build/core/p2p/messaging","type":"docs"},{"id":350,"pageTitle":"Messaging","sectionTitle":"Stream Multiplexer","sectionRoute":"/build/core/p2p/messaging#stream-multiplexer","type":"docs"},{"id":351,"pageTitle":"Messaging","sectionTitle":"Binary Protocol","sectionRoute":"/build/core/p2p/messaging#binary-protocol","type":"docs"},{"id":352,"pageTitle":"Messaging","sectionTitle":"Message envelop","sectionRoute":"/build/core/p2p/messaging#message-envelop","type":"docs"},{"id":353,"pageTitle":"Node","sectionTitle":"Node","sectionRoute":"/build/core/p2p/node","type":"docs"},{"id":354,"pageTitle":"Node","sectionTitle":"Data structure","sectionRoute":"/build/core/p2p/node#data-structure","type":"docs"},{"id":355,"pageTitle":"Node","sectionTitle":"P2P tables view","sectionRoute":"/build/core/p2p/node#p2p-tables-view","type":"docs"},{"id":356,"pageTitle":"Node","sectionTitle":"Discovery table","sectionRoute":"/build/core/p2p/node#discovery-table","type":"docs"},{"id":357,"pageTitle":"Node","sectionTitle":"Availability lookup table","sectionRoute":"/build/core/p2p/node#availability-lookup-table","type":"docs"},{"id":358,"pageTitle":"Node","sectionTitle":"Authorized nodes table","sectionRoute":"/build/core/p2p/node#authorized-nodes-table","type":"docs"},{"id":359,"pageTitle":"Node","sectionTitle":"Nodes key lookup table","sectionRoute":"/build/core/p2p/node#nodes-key-lookup-table","type":"docs"},{"id":360,"pageTitle":"SDK","sectionTitle":"SDK","sectionRoute":"/build/sdk/","type":"docs"},{"id":361,"pageTitle":"Dart SDK","sectionTitle":"Dart SDK","sectionRoute":"/build/sdk/dart","type":"docs"},{"id":365,"pageTitle":"Go SDK","sectionTitle":"Go SDK","sectionRoute":"/build/sdk/go","type":"docs"},{"id":366,"pageTitle":"Javascript SDK","sectionTitle":"Javascript SDK","sectionRoute":"/build/sdk/js","type":"docs"},{"id":373,"pageTitle":"Smart Contracts","sectionTitle":"Smart Contracts","sectionRoute":"/build/smart-contracts/","type":"docs"},{"id":374,"pageTitle":"Smart Contracts","sectionTitle":"Autonomous","sectionRoute":"/build/smart-contracts/#autonomous","type":"docs"},{"id":375,"pageTitle":"Smart Contracts","sectionTitle":"Modifiable:","sectionRoute":"/build/smart-contracts/#modifiable","type":"docs"},{"id":376,"pageTitle":"Smart Contracts","sectionTitle":"Interpreted","sectionRoute":"/build/smart-contracts/#interpreted","type":"docs"},{"id":377,"pageTitle":"Smart Contracts","sectionTitle":"Stateless","sectionRoute":"/build/smart-contracts/#stateless","type":"docs"},{"id":367,"pageTitle":"Smart Contracts - Examples","sectionTitle":"Smart Contracts - Examples","sectionRoute":"/build/smart-contracts/examples","type":"docs"},{"id":368,"pageTitle":"Smart Contracts - Examples","sectionTitle":"Hello World","sectionRoute":"/build/smart-contracts/examples#hello-world","type":"docs"},{"id":369,"pageTitle":"Smart Contracts - Examples","sectionTitle":"ICO (Initial Coin Offering)","sectionRoute":"/build/smart-contracts/examples#ico-initial-coin-offering","type":"docs"},{"id":370,"pageTitle":"Smart Contracts - Examples","sectionTitle":"Recurring ICO","sectionRoute":"/build/smart-contracts/examples#recurring-ico","type":"docs"},{"id":371,"pageTitle":"Smart Contracts - Examples","sectionTitle":"Vote system","sectionRoute":"/build/smart-contracts/examples#vote-system","type":"docs"},{"id":372,"pageTitle":"Smart Contracts - Examples","sectionTitle":"Insurance \"at least 25°c\"","sectionRoute":"/build/smart-contracts/examples#insurance-at-least-25c","type":"docs"},{"id":383,"pageTitle":"Smart Contracts - Fees","sectionTitle":"Smart Contracts - Fees","sectionRoute":"/build/smart-contracts/fees","type":"docs"},{"id":384,"pageTitle":"Smart Contracts - Language","sectionTitle":"Smart Contracts - Language","sectionRoute":"/build/smart-contracts/language/","type":"docs"},{"id":385,"pageTitle":"Smart Contracts - Language","sectionTitle":"Version attribute","sectionRoute":"/build/smart-contracts/language/#version-attribute","type":"docs"},{"id":386,"pageTitle":"Smart Contracts - Language","sectionTitle":"Basic Types","sectionRoute":"/build/smart-contracts/language/#basic-types","type":"docs"},{"id":387,"pageTitle":"Smart Contracts - Language","sectionTitle":"Hexadecimals","sectionRoute":"/build/smart-contracts/language/#hexadecimals","type":"docs"},{"id":388,"pageTitle":"Smart Contracts - Language","sectionTitle":"ASCII character in string","sectionRoute":"/build/smart-contracts/language/#ascii-character-in-string","type":"docs"},{"id":389,"pageTitle":"Smart Contracts - Language","sectionTitle":"Comparaison","sectionRoute":"/build/smart-contracts/language/#comparaison","type":"docs"},{"id":390,"pageTitle":"Smart Contracts - Language","sectionTitle":"Arithmetic","sectionRoute":"/build/smart-contracts/language/#arithmetic","type":"docs"},{"id":391,"pageTitle":"Smart Contracts - Language","sectionTitle":"Ranges","sectionRoute":"/build/smart-contracts/language/#ranges","type":"docs"},{"id":392,"pageTitle":"Smart Contracts - Language","sectionTitle":"Loop","sectionRoute":"/build/smart-contracts/language/#loop","type":"docs"},{"id":393,"pageTitle":"Smart Contracts - Language","sectionTitle":"Variables & Scopes","sectionRoute":"/build/smart-contracts/language/#variables--scopes","type":"docs"},{"id":394,"pageTitle":"Smart Contracts - Language","sectionTitle":"Lists","sectionRoute":"/build/smart-contracts/language/#lists","type":"docs"},{"id":395,"pageTitle":"Smart Contracts - Language","sectionTitle":"Maps","sectionRoute":"/build/smart-contracts/language/#maps","type":"docs"},{"id":396,"pageTitle":"Smart Contracts - Language","sectionTitle":"Functions","sectionRoute":"/build/smart-contracts/language/#functions","type":"docs"},{"id":397,"pageTitle":"Smart Contracts - Language","sectionTitle":"Internal Functions","sectionRoute":"/build/smart-contracts/language/#internal-functions","type":"docs"},{"id":398,"pageTitle":"Smart Contracts - Language","sectionTitle":"Exported Functions","sectionRoute":"/build/smart-contracts/language/#exported-functions","type":"docs"},{"id":399,"pageTitle":"Smart Contracts - Language","sectionTitle":"Library","sectionRoute":"/build/smart-contracts/language/#library","type":"docs"},{"id":400,"pageTitle":"Smart Contracts - Language","sectionTitle":"Errors","sectionRoute":"/build/smart-contracts/language/#errors","type":"docs"},{"id":401,"pageTitle":"Smart Contracts - Language","sectionTitle":"Reserved keywords","sectionRoute":"/build/smart-contracts/language/#reserved-keywords","type":"docs"},{"id":378,"pageTitle":"Smart Contracts - Actions block","sectionTitle":"Smart Contracts - Actions block","sectionRoute":"/build/smart-contracts/language/actions","type":"docs"},{"id":379,"pageTitle":"Smart Contracts - Actions block","sectionTitle":"Global variables","sectionRoute":"/build/smart-contracts/language/actions#global-variables","type":"docs"},{"id":380,"pageTitle":"Smart Contracts - Actions block","sectionTitle":"Named action arguments","sectionRoute":"/build/smart-contracts/language/actions#named-action-arguments","type":"docs"},{"id":381,"pageTitle":"Smart Contracts - Actions block","sectionTitle":"Generating the next transaction","sectionRoute":"/build/smart-contracts/language/actions#generating-the-next-transaction","type":"docs"},{"id":382,"pageTitle":"Smart Contracts - Actions block","sectionTitle":"Appendix 1: The transaction map","sectionRoute":"/build/smart-contracts/language/actions#appendix-1-the-transaction-map","type":"docs"},{"id":403,"pageTitle":"Smart Contracts - Condition block","sectionTitle":"Smart Contracts - Condition block","sectionRoute":"/build/smart-contracts/language/condition","type":"docs"},{"id":404,"pageTitle":"Smart Contracts - Condition block","sectionTitle":"Boolean expressions","sectionRoute":"/build/smart-contracts/language/condition#boolean-expressions","type":"docs"},{"id":405,"pageTitle":"Smart Contracts - Condition block","sectionTitle":"Rules","sectionRoute":"/build/smart-contracts/language/condition#rules","type":"docs"},{"id":406,"pageTitle":"Smart Contracts - Condition block","sectionTitle":"Condition inherit","sectionRoute":"/build/smart-contracts/language/condition#condition-inherit","type":"docs"},{"id":407,"pageTitle":"Smart Contracts - Condition block","sectionTitle":"Examples","sectionRoute":"/build/smart-contracts/language/condition#examples","type":"docs"},{"id":408,"pageTitle":"Smart Contracts - Condition block","sectionTitle":"Condition triggered by a transaction","sectionRoute":"/build/smart-contracts/language/condition#condition-triggered-by-a-transaction","type":"docs"},{"id":409,"pageTitle":"Smart Contracts - Condition block","sectionTitle":"Examples","sectionRoute":"/build/smart-contracts/language/condition#examples-1","type":"docs"},{"id":410,"pageTitle":"Smart Contracts - Condition block","sectionTitle":"Condition triggered by an oracle","sectionRoute":"/build/smart-contracts/language/condition#condition-triggered-by-an-oracle","type":"docs"},{"id":411,"pageTitle":"Smart Contracts - Condition block","sectionTitle":"Examples","sectionRoute":"/build/smart-contracts/language/condition#examples-2","type":"docs"},{"id":402,"pageTitle":"Smart Contracts (Legacy)","sectionTitle":"Smart Contracts (Legacy)","sectionRoute":"/build/smart-contracts/language/legacy/","type":"docs"},{"id":412,"pageTitle":"Smart Contract examples","sectionTitle":"Smart Contract examples","sectionRoute":"/build/smart-contracts/language/legacy/examples","type":"docs"},{"id":413,"pageTitle":"Smart Contract examples","sectionTitle":"Recurrent transfer","sectionRoute":"/build/smart-contracts/language/legacy/examples#recurrent-transfer","type":"docs"},{"id":414,"pageTitle":"Smart Contract examples","sectionTitle":"ICO / Crowdfunding","sectionRoute":"/build/smart-contracts/language/legacy/examples#ico--crowdfunding","type":"docs"},{"id":419,"pageTitle":"Smart Contract Language","sectionTitle":"Smart Contract Language","sectionRoute":"/build/smart-contracts/language/legacy/language","type":"docs"},{"id":420,"pageTitle":"Smart Contract Language","sectionTitle":"Triggers/Actions","sectionRoute":"/build/smart-contracts/language/legacy/language#triggersactions","type":"docs"},{"id":421,"pageTitle":"Smart Contract Language","sectionTitle":"Conditions","sectionRoute":"/build/smart-contracts/language/legacy/language#conditions","type":"docs"},{"id":422,"pageTitle":"Smart Contract Language","sectionTitle":"Global variables","sectionRoute":"/build/smart-contracts/language/legacy/language#global-variables","type":"docs"},{"id":423,"pageTitle":"Smart Contract Language","sectionTitle":"Functions","sectionRoute":"/build/smart-contracts/language/legacy/language#functions","type":"docs"},{"id":424,"pageTitle":"Smart Contract Language","sectionTitle":"Utilities","sectionRoute":"/build/smart-contracts/language/legacy/language#utilities","type":"docs"},{"id":425,"pageTitle":"Smart Contract Language","sectionTitle":"Statements","sectionRoute":"/build/smart-contracts/language/legacy/language#statements","type":"docs"},{"id":415,"pageTitle":"Smart Contracts - Library","sectionTitle":"Smart Contracts - Library","sectionRoute":"/build/smart-contracts/language/library/","type":"docs"},{"id":416,"pageTitle":"Smart Contracts - Library","sectionTitle":"Function's arity","sectionRoute":"/build/smart-contracts/language/library/#functions-arity","type":"docs"},{"id":417,"pageTitle":"Smart Contracts - Library","sectionTitle":"Tagged functions","sectionRoute":"/build/smart-contracts/language/library/#tagged-functions","type":"docs"},{"id":418,"pageTitle":"Smart Contracts - Library","sectionTitle":"Modules list","sectionRoute":"/build/smart-contracts/language/library/#modules-list","type":"docs"},{"id":429,"pageTitle":"Chain module","sectionTitle":"Chain module","sectionRoute":"/build/smart-contracts/language/library/chain","type":"docs"},{"id":430,"pageTitle":"Chain module","sectionTitle":"get_genesis_address/1 [I/O]","sectionRoute":"/build/smart-contracts/language/library/chain#get_genesis_address1-io","type":"docs"},{"id":431,"pageTitle":"Chain module","sectionTitle":"get_first_transaction_address/1 [I/O]","sectionRoute":"/build/smart-contracts/language/library/chain#get_first_transaction_address1-io","type":"docs"},{"id":432,"pageTitle":"Chain module","sectionTitle":"get_genesis_public_key/1 [I/O]","sectionRoute":"/build/smart-contracts/language/library/chain#get_genesis_public_key1-io","type":"docs"},{"id":433,"pageTitle":"Chain module","sectionTitle":"get_burn_address/0","sectionRoute":"/build/smart-contracts/language/library/chain#get_burn_address0","type":"docs"},{"id":434,"pageTitle":"Chain module","sectionTitle":"get_transaction/1 [I/O]","sectionRoute":"/build/smart-contracts/language/library/chain#get_transaction1--io","type":"docs"},{"id":435,"pageTitle":"Chain module","sectionTitle":"get_last_address/1 [I/O]","sectionRoute":"/build/smart-contracts/language/library/chain#get_last_address1-io","type":"docs"},{"id":436,"pageTitle":"Chain module","sectionTitle":"get_last_transaction/1 [I/O]","sectionRoute":"/build/smart-contracts/language/library/chain#get_last_transaction1-io","type":"docs"},{"id":437,"pageTitle":"Chain module","sectionTitle":"get_previous_address/1","sectionRoute":"/build/smart-contracts/language/library/chain#get_previous_address1","type":"docs"},{"id":438,"pageTitle":"Chain module","sectionTitle":"get_balance/1 [I/O]","sectionRoute":"/build/smart-contracts/language/library/chain#get_balance1-io","type":"docs"},{"id":439,"pageTitle":"Chain module","sectionTitle":"get_uco_balance/1 [I/O]","sectionRoute":"/build/smart-contracts/language/library/chain#get_uco_balance1-io","type":"docs"},{"id":440,"pageTitle":"Chain module","sectionTitle":"get_token_balance/2 [I/O]","sectionRoute":"/build/smart-contracts/language/library/chain#get_token_balance2-io","type":"docs"},{"id":441,"pageTitle":"Chain module","sectionTitle":"get_token_balance/3 [I/O]","sectionRoute":"/build/smart-contracts/language/library/chain#get_token_balance3-io","type":"docs"},{"id":442,"pageTitle":"Chain module","sectionTitle":"get_tokens_balance/1 [I/O]","sectionRoute":"/build/smart-contracts/language/library/chain#get_tokens_balance1-io","type":"docs"},{"id":443,"pageTitle":"Chain module","sectionTitle":"get_tokens_balance/2 [I/O]","sectionRoute":"/build/smart-contracts/language/library/chain#get_tokens_balance2-io","type":"docs"},{"id":426,"pageTitle":"Code module","sectionTitle":"Code module","sectionRoute":"/build/smart-contracts/language/library/code","type":"docs"},{"id":427,"pageTitle":"Code module","sectionTitle":"is_same?/2","sectionRoute":"/build/smart-contracts/language/library/code#is_same2","type":"docs"},{"id":428,"pageTitle":"Code module","sectionTitle":"is_valid?/1","sectionRoute":"/build/smart-contracts/language/library/code#is_valid1","type":"docs"},{"id":444,"pageTitle":"Contract module","sectionTitle":"Contract module","sectionRoute":"/build/smart-contracts/language/library/contract","type":"docs"},{"id":445,"pageTitle":"Contract module","sectionTitle":"call_function/3 [I/O]","sectionRoute":"/build/smart-contracts/language/library/contract#call_function3-io","type":"docs"},{"id":446,"pageTitle":"Contract module","sectionTitle":"set_type/1 [Transaction]","sectionRoute":"/build/smart-contracts/language/library/contract#set_type1-transaction","type":"docs"},{"id":447,"pageTitle":"Contract module","sectionTitle":"set_content/1 [Transaction]","sectionRoute":"/build/smart-contracts/language/library/contract#set_content1-transaction","type":"docs"},{"id":448,"pageTitle":"Contract module","sectionTitle":"set_code/1 [Transaction]","sectionRoute":"/build/smart-contracts/language/library/contract#set_code1-transaction","type":"docs"},{"id":449,"pageTitle":"Contract module","sectionTitle":"add_uco_transfer/1 [Transaction]","sectionRoute":"/build/smart-contracts/language/library/contract#add_uco_transfer1-transaction","type":"docs"},{"id":450,"pageTitle":"Contract module","sectionTitle":"add_uco_transfers/1 [Transaction]","sectionRoute":"/build/smart-contracts/language/library/contract#add_uco_transfers1-transaction","type":"docs"},{"id":451,"pageTitle":"Contract module","sectionTitle":"add_token_transfer/1 [Transaction]","sectionRoute":"/build/smart-contracts/language/library/contract#add_token_transfer1-transaction","type":"docs"},{"id":452,"pageTitle":"Contract module","sectionTitle":"add_token_transfers/1 [Transaction]","sectionRoute":"/build/smart-contracts/language/library/contract#add_token_transfers1-transaction","type":"docs"},{"id":453,"pageTitle":"Contract module","sectionTitle":"add_ownership/1 [Transaction]","sectionRoute":"/build/smart-contracts/language/library/contract#add_ownership1-transaction","type":"docs"},{"id":454,"pageTitle":"Contract module","sectionTitle":"add_ownerships/1 [Transaction]","sectionRoute":"/build/smart-contracts/language/library/contract#add_ownerships1-transaction","type":"docs"},{"id":455,"pageTitle":"Contract module","sectionTitle":"add_recipient/1 [Transaction]","sectionRoute":"/build/smart-contracts/language/library/contract#add_recipient1-transaction","type":"docs"},{"id":456,"pageTitle":"Contract module","sectionTitle":"add_recipients/1 [Transaction]","sectionRoute":"/build/smart-contracts/language/library/contract#add_recipients1-transaction","type":"docs"},{"id":457,"pageTitle":"Crypto module","sectionTitle":"Crypto module","sectionRoute":"/build/smart-contracts/language/library/crypto","type":"docs"},{"id":458,"pageTitle":"Crypto module","sectionTitle":"hash/1","sectionRoute":"/build/smart-contracts/language/library/crypto#hash1","type":"docs"},{"id":459,"pageTitle":"Crypto module","sectionTitle":"hash/2","sectionRoute":"/build/smart-contracts/language/library/crypto#hash2","type":"docs"},{"id":460,"pageTitle":"Crypto module","sectionTitle":"hmac/1","sectionRoute":"/build/smart-contracts/language/library/crypto#hmac1","type":"docs"},{"id":461,"pageTitle":"Crypto module","sectionTitle":"hmac/2","sectionRoute":"/build/smart-contracts/language/library/crypto#hmac2","type":"docs"},{"id":462,"pageTitle":"Crypto module","sectionTitle":"hmac/3","sectionRoute":"/build/smart-contracts/language/library/crypto#hmac3","type":"docs"},{"id":463,"pageTitle":"Crypto module","sectionTitle":"sign_with_recovery/1","sectionRoute":"/build/smart-contracts/language/library/crypto#sign_with_recovery1","type":"docs"},{"id":464,"pageTitle":"Crypto module","sectionTitle":"decrypt_with_storage_nonce/1","sectionRoute":"/build/smart-contracts/language/library/crypto#decrypt_with_storage_nonce1","type":"docs"},{"id":465,"pageTitle":"Evm module","sectionTitle":"Evm module","sectionRoute":"/build/smart-contracts/language/library/evm","type":"docs"},{"id":466,"pageTitle":"Evm module","sectionTitle":"abi_encode/2","sectionRoute":"/build/smart-contracts/language/library/evm#abi_encode2","type":"docs"},{"id":467,"pageTitle":"Evm module","sectionTitle":"abi_decode/2","sectionRoute":"/build/smart-contracts/language/library/evm#abi_decode2","type":"docs"},{"id":468,"pageTitle":"Http module","sectionTitle":"Http module","sectionRoute":"/build/smart-contracts/language/library/http","type":"docs"},{"id":469,"pageTitle":"Http module","sectionTitle":"request/1 [I/O]","sectionRoute":"/build/smart-contracts/language/library/http#request1-io","type":"docs"},{"id":470,"pageTitle":"Http module","sectionTitle":"request/2 [I/O]","sectionRoute":"/build/smart-contracts/language/library/http#request2-io","type":"docs"},{"id":471,"pageTitle":"Http module","sectionTitle":"request/3 [I/O]","sectionRoute":"/build/smart-contracts/language/library/http#request3-io","type":"docs"},{"id":472,"pageTitle":"Http module","sectionTitle":"request/4 [I/O]","sectionRoute":"/build/smart-contracts/language/library/http#request4-io","type":"docs"},{"id":473,"pageTitle":"Http module","sectionTitle":"request_many/1 [I/O]","sectionRoute":"/build/smart-contracts/language/library/http#request_many1-io","type":"docs"},{"id":474,"pageTitle":"Json module","sectionTitle":"Json module","sectionRoute":"/build/smart-contracts/language/library/json","type":"docs"},{"id":475,"pageTitle":"Json module","sectionTitle":"path_extract/2","sectionRoute":"/build/smart-contracts/language/library/json#path_extract2","type":"docs"},{"id":476,"pageTitle":"Json module","sectionTitle":"path_match?/2","sectionRoute":"/build/smart-contracts/language/library/json#path_match2","type":"docs"},{"id":477,"pageTitle":"Json module","sectionTitle":"to_string/1","sectionRoute":"/build/smart-contracts/language/library/json#to_string1","type":"docs"},{"id":478,"pageTitle":"Json module","sectionTitle":"parse/1","sectionRoute":"/build/smart-contracts/language/library/json#parse1","type":"docs"},{"id":479,"pageTitle":"Json module","sectionTitle":"is_valid?/1","sectionRoute":"/build/smart-contracts/language/library/json#is_valid1","type":"docs"},{"id":480,"pageTitle":"List module","sectionTitle":"List module","sectionRoute":"/build/smart-contracts/language/library/list","type":"docs"},{"id":481,"pageTitle":"List module","sectionTitle":"at/2","sectionRoute":"/build/smart-contracts/language/library/list#at2","type":"docs"},{"id":482,"pageTitle":"List module","sectionTitle":"size/1","sectionRoute":"/build/smart-contracts/language/library/list#size1","type":"docs"},{"id":483,"pageTitle":"List module","sectionTitle":"in?/2","sectionRoute":"/build/smart-contracts/language/library/list#in2","type":"docs"},{"id":484,"pageTitle":"List module","sectionTitle":"empty?/1","sectionRoute":"/build/smart-contracts/language/library/list#empty1","type":"docs"},{"id":485,"pageTitle":"List module","sectionTitle":"concat/2","sectionRoute":"/build/smart-contracts/language/library/list#concat2","type":"docs"},{"id":486,"pageTitle":"List module","sectionTitle":"append/2","sectionRoute":"/build/smart-contracts/language/library/list#append2","type":"docs"},{"id":487,"pageTitle":"List module","sectionTitle":"prepend/2","sectionRoute":"/build/smart-contracts/language/library/list#prepend2","type":"docs"},{"id":488,"pageTitle":"List module","sectionTitle":"join/2","sectionRoute":"/build/smart-contracts/language/library/list#join2","type":"docs"},{"id":489,"pageTitle":"List module","sectionTitle":"sort/1","sectionRoute":"/build/smart-contracts/language/library/list#sort1","type":"docs"},{"id":490,"pageTitle":"List module","sectionTitle":"sort_by/2","sectionRoute":"/build/smart-contracts/language/library/list#sort_by2","type":"docs"},{"id":491,"pageTitle":"List module","sectionTitle":"uniq/1","sectionRoute":"/build/smart-contracts/language/library/list#uniq1","type":"docs"},{"id":492,"pageTitle":"List module","sectionTitle":"reverse/1","sectionRoute":"/build/smart-contracts/language/library/list#reverse1","type":"docs"},{"id":493,"pageTitle":"List module","sectionTitle":"set_at/3","sectionRoute":"/build/smart-contracts/language/library/list#set_at3","type":"docs"},{"id":494,"pageTitle":"List module","sectionTitle":"delete_at/3","sectionRoute":"/build/smart-contracts/language/library/list#delete_at3","type":"docs"},{"id":495,"pageTitle":"Map module","sectionTitle":"Map module","sectionRoute":"/build/smart-contracts/language/library/map","type":"docs"},{"id":496,"pageTitle":"Map module","sectionTitle":"new/0","sectionRoute":"/build/smart-contracts/language/library/map#new0","type":"docs"},{"id":497,"pageTitle":"Map module","sectionTitle":"size/1","sectionRoute":"/build/smart-contracts/language/library/map#size1","type":"docs"},{"id":498,"pageTitle":"Map module","sectionTitle":"get/2","sectionRoute":"/build/smart-contracts/language/library/map#get2","type":"docs"},{"id":499,"pageTitle":"Map module","sectionTitle":"get/3","sectionRoute":"/build/smart-contracts/language/library/map#get3","type":"docs"},{"id":500,"pageTitle":"Map module","sectionTitle":"set/3","sectionRoute":"/build/smart-contracts/language/library/map#set3","type":"docs"},{"id":501,"pageTitle":"Map module","sectionTitle":"keys/1","sectionRoute":"/build/smart-contracts/language/library/map#keys1","type":"docs"},{"id":502,"pageTitle":"Map module","sectionTitle":"values/1","sectionRoute":"/build/smart-contracts/language/library/map#values1","type":"docs"},{"id":503,"pageTitle":"Map module","sectionTitle":"delete/2","sectionRoute":"/build/smart-contracts/language/library/map#delete2","type":"docs"},{"id":521,"pageTitle":"Math module","sectionTitle":"Math module","sectionRoute":"/build/smart-contracts/language/library/math","type":"docs"},{"id":522,"pageTitle":"Math module","sectionTitle":"pow/2","sectionRoute":"/build/smart-contracts/language/library/math#pow2","type":"docs"},{"id":523,"pageTitle":"Math module","sectionTitle":"trunc/1","sectionRoute":"/build/smart-contracts/language/library/math#trunc1","type":"docs"},{"id":524,"pageTitle":"Math module","sectionTitle":"sqrt/1","sectionRoute":"/build/smart-contracts/language/library/math#sqrt1","type":"docs"},{"id":525,"pageTitle":"Math module","sectionTitle":"rem/2","sectionRoute":"/build/smart-contracts/language/library/math#rem2","type":"docs"},{"id":504,"pageTitle":"Regex module","sectionTitle":"Regex module","sectionRoute":"/build/smart-contracts/language/library/regex","type":"docs"},{"id":505,"pageTitle":"Regex module","sectionTitle":"extract/2","sectionRoute":"/build/smart-contracts/language/library/regex#extract2","type":"docs"},{"id":506,"pageTitle":"Regex module","sectionTitle":"match?/2","sectionRoute":"/build/smart-contracts/language/library/regex#match2","type":"docs"},{"id":507,"pageTitle":"Regex module","sectionTitle":"scan/2","sectionRoute":"/build/smart-contracts/language/library/regex#scan2","type":"docs"},{"id":508,"pageTitle":"State module","sectionTitle":"State module","sectionRoute":"/build/smart-contracts/language/library/state","type":"docs"},{"id":509,"pageTitle":"State module","sectionTitle":"get/1","sectionRoute":"/build/smart-contracts/language/library/state#get1","type":"docs"},{"id":510,"pageTitle":"State module","sectionTitle":"get/2","sectionRoute":"/build/smart-contracts/language/library/state#get2","type":"docs"},{"id":511,"pageTitle":"State module","sectionTitle":"set/2","sectionRoute":"/build/smart-contracts/language/library/state#set2","type":"docs"},{"id":512,"pageTitle":"State module","sectionTitle":"delete/1","sectionRoute":"/build/smart-contracts/language/library/state#delete1","type":"docs"},{"id":513,"pageTitle":"String module","sectionTitle":"String module","sectionRoute":"/build/smart-contracts/language/library/string","type":"docs"},{"id":514,"pageTitle":"String module","sectionTitle":"size/1","sectionRoute":"/build/smart-contracts/language/library/string#size1","type":"docs"},{"id":515,"pageTitle":"String module","sectionTitle":"in?/2","sectionRoute":"/build/smart-contracts/language/library/string#in2","type":"docs"},{"id":516,"pageTitle":"String module","sectionTitle":"to_number/1","sectionRoute":"/build/smart-contracts/language/library/string#to_number1","type":"docs"},{"id":517,"pageTitle":"String module","sectionTitle":"from_number/1","sectionRoute":"/build/smart-contracts/language/library/string#from_number1","type":"docs"},{"id":518,"pageTitle":"String module","sectionTitle":"to_hex/1","sectionRoute":"/build/smart-contracts/language/library/string#to_hex1","type":"docs"},{"id":519,"pageTitle":"String module","sectionTitle":"to_uppercase/1","sectionRoute":"/build/smart-contracts/language/library/string#to_uppercase1","type":"docs"},{"id":520,"pageTitle":"String module","sectionTitle":"to_lowercase/1","sectionRoute":"/build/smart-contracts/language/library/string#to_lowercase1","type":"docs"},{"id":526,"pageTitle":"Time module","sectionTitle":"Time module","sectionRoute":"/build/smart-contracts/language/library/time","type":"docs"},{"id":527,"pageTitle":"Time module","sectionTitle":"now/0","sectionRoute":"/build/smart-contracts/language/library/time#now0","type":"docs"},{"id":528,"pageTitle":"Token module","sectionTitle":"Token module","sectionRoute":"/build/smart-contracts/language/library/token","type":"docs"},{"id":529,"pageTitle":"Token module","sectionTitle":"fetch_id_from_address/1 [I/O] (DEPRECATED)","sectionRoute":"/build/smart-contracts/language/library/token#fetch_id_from_address1-io-deprecated","type":"docs"},{"id":531,"pageTitle":"Smart Contracts - Triggers","sectionTitle":"Smart Contracts - Triggers","sectionRoute":"/build/smart-contracts/language/triggers","type":"docs"},{"id":532,"pageTitle":"Smart Contracts - Triggers","sectionTitle":"Contract triggered by a transaction","sectionRoute":"/build/smart-contracts/language/triggers#contract-triggered-by-a-transaction","type":"docs"},{"id":533,"pageTitle":"Smart Contracts - Triggers","sectionTitle":"Contract triggered by a transaction with a named action","sectionRoute":"/build/smart-contracts/language/triggers#contract-triggered-by-a-transaction-with-a-named-action","type":"docs"},{"id":534,"pageTitle":"Smart Contracts - Triggers","sectionTitle":"Contract triggered at a specific date and time","sectionRoute":"/build/smart-contracts/language/triggers#contract-triggered-at-a-specific-date-and-time","type":"docs"},{"id":535,"pageTitle":"Smart Contracts - Triggers","sectionTitle":"Contract triggered at a specific interval","sectionRoute":"/build/smart-contracts/language/triggers#contract-triggered-at-a-specific-interval","type":"docs"},{"id":536,"pageTitle":"Smart Contracts - Triggers","sectionTitle":"Contract triggered on every Oracle transaction","sectionRoute":"/build/smart-contracts/language/triggers#contract-triggered-on-every-oracle-transaction","type":"docs"},{"id":537,"pageTitle":"Smart Contracts - Triggers","sectionTitle":"Multiple triggers","sectionRoute":"/build/smart-contracts/language/triggers#multiple-triggers","type":"docs"},{"id":530,"pageTitle":"Smart Contracts Playground","sectionTitle":"Smart Contracts Playground","sectionRoute":"/build/smart-contracts/playground/","type":"docs"},{"id":538,"pageTitle":"Smart Contracts Playground - Build","sectionTitle":"Smart Contracts Playground - Build","sectionRoute":"/build/smart-contracts/playground/build","type":"docs"},{"id":539,"pageTitle":"Smart Contracts Playground - Build","sectionTitle":"I. Write the contract","sectionRoute":"/build/smart-contracts/playground/build#i-write-the-contract","type":"docs"},{"id":540,"pageTitle":"Smart Contracts Playground - Build","sectionTitle":"II. Test the triggers","sectionRoute":"/build/smart-contracts/playground/build#ii-test-the-triggers","type":"docs"},{"id":541,"pageTitle":"Smart Contracts Playground - Build","sectionTitle":"Test trigger 'interval'","sectionRoute":"/build/smart-contracts/playground/build#test-trigger-interval","type":"docs"},{"id":542,"pageTitle":"Smart Contracts Playground - Build","sectionTitle":"Test trigger 'transaction'","sectionRoute":"/build/smart-contracts/playground/build#test-trigger-transaction","type":"docs"},{"id":543,"pageTitle":"Smart Contracts Playground - Build","sectionTitle":"Test trigger 'datetime'","sectionRoute":"/build/smart-contracts/playground/build#test-trigger-datetime","type":"docs"},{"id":544,"pageTitle":"Smart Contracts Playground - Build","sectionTitle":"Test trigger 'oracle'","sectionRoute":"/build/smart-contracts/playground/build#test-trigger-oracle","type":"docs"},{"id":546,"pageTitle":"Smart Contracts Playground - Deploy","sectionTitle":"Smart Contracts Playground - Deploy","sectionRoute":"/build/smart-contracts/playground/deploy","type":"docs"},{"id":545,"pageTitle":"Smart Contracts Playground - Functions","sectionTitle":"Smart Contracts Playground - Functions","sectionRoute":"/build/smart-contracts/playground/functions","type":"docs"},{"id":547,"pageTitle":"Smart Contracts Playground - Mock form","sectionTitle":"Smart Contracts Playground - Mock form","sectionRoute":"/build/smart-contracts/playground/mock-form","type":"docs"},{"id":548,"pageTitle":"Smart Contracts Playground - Mock form","sectionTitle":"Example: Time.now/0","sectionRoute":"/build/smart-contracts/playground/mock-form#example-timenow0","type":"docs"},{"id":549,"pageTitle":"Smart Contracts Playground - Mock form","sectionTitle":"Example: Chain.get_genesis_address/1","sectionRoute":"/build/smart-contracts/playground/mock-form#example-chainget_genesis_address1","type":"docs"},{"id":550,"pageTitle":"Smart Contracts Playground - Transaction form","sectionTitle":"Smart Contracts Playground - Transaction form","sectionRoute":"/build/smart-contracts/playground/transaction-form","type":"docs"},{"id":551,"pageTitle":"Smart Contracts Playground - Transaction form","sectionTitle":"type","sectionRoute":"/build/smart-contracts/playground/transaction-form#type","type":"docs"},{"id":552,"pageTitle":"Smart Contracts Playground - Transaction form","sectionTitle":"code","sectionRoute":"/build/smart-contracts/playground/transaction-form#code","type":"docs"},{"id":553,"pageTitle":"Smart Contracts Playground - Transaction form","sectionTitle":"content","sectionRoute":"/build/smart-contracts/playground/transaction-form#content","type":"docs"},{"id":554,"pageTitle":"Smart Contracts Playground - Transaction form","sectionTitle":"validation timestamp (not used in deployment)","sectionRoute":"/build/smart-contracts/playground/transaction-form#validation-timestamp-not-used-in-deployment","type":"docs"},{"id":555,"pageTitle":"Smart Contracts Playground - Transaction form","sectionTitle":"address (not used in deployment)","sectionRoute":"/build/smart-contracts/playground/transaction-form#address-not-used-in-deployment","type":"docs"},{"id":556,"pageTitle":"Smart Contracts Playground - Transaction form","sectionTitle":"uco transfers","sectionRoute":"/build/smart-contracts/playground/transaction-form#uco-transfers","type":"docs"},{"id":557,"pageTitle":"Smart Contracts Playground - Transaction form","sectionTitle":"token transfers","sectionRoute":"/build/smart-contracts/playground/transaction-form#token-transfers","type":"docs"},{"id":558,"pageTitle":"Smart Contracts Playground - Transaction form","sectionTitle":"recipients","sectionRoute":"/build/smart-contracts/playground/transaction-form#recipients","type":"docs"},{"id":559,"pageTitle":"Smart Contracts Playground - Transaction form","sectionTitle":"ownerships","sectionRoute":"/build/smart-contracts/playground/transaction-form#ownerships","type":"docs"},{"id":560,"pageTitle":"Smart Contracts - State","sectionTitle":"Smart Contracts - State","sectionRoute":"/build/smart-contracts/state","type":"docs"},{"id":561,"pageTitle":"Testnet","sectionTitle":"Testnet","sectionRoute":"/build/testnet","type":"docs"},{"id":562,"pageTitle":"Testnet","sectionTitle":"Local","sectionRoute":"/build/testnet#local","type":"docs"},{"id":563,"pageTitle":"Testnet","sectionTitle":"Installation","sectionRoute":"/build/testnet#installation","type":"docs"},{"id":564,"pageTitle":"Testnet","sectionTitle":"Get some funds","sectionRoute":"/build/testnet#get-some-funds","type":"docs"},{"id":565,"pageTitle":"Testnet","sectionTitle":"Public","sectionRoute":"/build/testnet#public","type":"docs"},{"id":566,"pageTitle":"Testnet","sectionTitle":"Get some funds","sectionRoute":"/build/testnet#get-some-funds-1","type":"docs"},{"id":567,"pageTitle":"","sectionTitle":"🗃️ GraphQL","sectionRoute":"/category/api","type":"docs"},{"id":568,"pageTitle":"","sectionTitle":"🗃️ Clients","sectionRoute":"/category/build","type":"docs"},{"id":569,"pageTitle":"","sectionTitle":"🗃️ API","sectionRoute":"/category/build","type":"docs"},{"id":570,"pageTitle":"","sectionTitle":"🗃️ Core development","sectionRoute":"/category/build","type":"docs"},{"id":571,"pageTitle":"","sectionTitle":"🗃️ SDK","sectionRoute":"/category/build","type":"docs"},{"id":572,"pageTitle":"","sectionTitle":"🗃️ Smart Contracts","sectionRoute":"/category/build","type":"docs"},{"id":573,"pageTitle":"","sectionTitle":"📄️ Testnet","sectionRoute":"/category/build","type":"docs"},{"id":586,"pageTitle":"","sectionTitle":"🗃️ Ledger wallet","sectionRoute":"/category/clients","type":"docs"},{"id":587,"pageTitle":"","sectionTitle":"📄️ Archethic's wallet access","sectionRoute":"/category/clients","type":"docs"},{"id":588,"pageTitle":"","sectionTitle":"📄️ Archethic's wallet specification","sectionRoute":"/category/clients","type":"docs"},{"id":574,"pageTitle":"","sectionTitle":"📄️ aeHosting","sectionRoute":"/category/faq","type":"docs"},{"id":575,"pageTitle":"","sectionTitle":"📄️ aeBridge","sectionRoute":"/category/faq","type":"docs"},{"id":576,"pageTitle":"","sectionTitle":"📄️ aeSwap","sectionRoute":"/category/faq","type":"docs"},{"id":577,"pageTitle":"","sectionTitle":"📄️ Migration of ERC-20 UCO Tokens","sectionRoute":"/category/faq","type":"docs"},{"id":578,"pageTitle":"","sectionTitle":"📄️ aeWallet","sectionRoute":"/category/faq","type":"docs"},{"id":579,"pageTitle":"","sectionTitle":"📄️ Schema Documentation","sectionRoute":"/category/graphql","type":"docs"},{"id":580,"pageTitle":"","sectionTitle":"🗃️ Directives","sectionRoute":"/category/graphql","type":"docs"},{"id":581,"pageTitle":"","sectionTitle":"🗃️ Enums","sectionRoute":"/category/graphql","type":"docs"},{"id":582,"pageTitle":"","sectionTitle":"🗃️ Objects","sectionRoute":"/category/graphql","type":"docs"},{"id":583,"pageTitle":"","sectionTitle":"🗃️ Queries","sectionRoute":"/category/graphql","type":"docs"},{"id":584,"pageTitle":"","sectionTitle":"🗃️ Scalars","sectionRoute":"/category/graphql","type":"docs"},{"id":585,"pageTitle":"","sectionTitle":"🗃️ Subscriptions","sectionRoute":"/category/graphql","type":"docs"},{"id":595,"pageTitle":"","sectionTitle":"📄️ Tutoriel Archethic DeFi","sectionRoute":"/category/participate","type":"docs"},{"id":596,"pageTitle":"","sectionTitle":"🗃️ Archethic Web (aeHosting)","sectionRoute":"/category/participate","type":"docs"},{"id":597,"pageTitle":"","sectionTitle":"🗃️ Archethic Bridge (aeBridge)","sectionRoute":"/category/participate","type":"docs"},{"id":598,"pageTitle":"","sectionTitle":"📄️ Archethic's CLI","sectionRoute":"/category/participate","type":"docs"},{"id":599,"pageTitle":"","sectionTitle":"🗃️ Archethic DEX (aeSwap)","sectionRoute":"/category/participate","type":"docs"},{"id":600,"pageTitle":"","sectionTitle":"🗃️ Archethic Wallet (aeWallet)","sectionRoute":"/category/participate","type":"docs"},{"id":589,"pageTitle":"","sectionTitle":"📄️ CLI","sectionRoute":"/category/usage","type":"docs"},{"id":590,"pageTitle":"","sectionTitle":"📄️ AEWeb Front End","sectionRoute":"/category/usage","type":"docs"},{"id":591,"pageTitle":"Contributing","sectionTitle":"Contributing","sectionRoute":"/contributing","type":"docs"},{"id":592,"pageTitle":"Contributing","sectionTitle":"How to contribute","sectionRoute":"/contributing#how-to-contribute","type":"docs"},{"id":593,"pageTitle":"Contributing","sectionTitle":"Guidelines","sectionRoute":"/contributing#guidelines","type":"docs"},{"id":594,"pageTitle":"Contributing","sectionTitle":"Diagrams","sectionRoute":"/contributing#diagrams","type":"docs"},{"id":601,"pageTitle":"aeHosting","sectionTitle":"aeHosting","sectionRoute":"/FAQ/aeweb","type":"docs"},{"id":602,"pageTitle":"aeHosting","sectionTitle":"General","sectionRoute":"/FAQ/aeweb#general","type":"docs"},{"id":603,"pageTitle":"aeHosting","sectionTitle":" How do I redirect my domain names to my websites deployed on the Archethic Blockchain?","sectionRoute":"/FAQ/aeweb#-how-do-i-redirect-my-domain-names-to-my-websites-deployed-on-the-archethic-blockchain","type":"docs"},{"id":604,"pageTitle":"aeHosting","sectionTitle":"What is the purpose of a .gitignore file?","sectionRoute":"/FAQ/aeweb#what-is-the-purpose-of-a-gitignore-file","type":"docs"},{"id":605,"pageTitle":"aeHosting","sectionTitle":"When using the Archethic wallet's \"link to a file hosted on AEWeb\" option to create an NFT with an image, does it require sending funds to the newly created address using AEWeb CLI?","sectionRoute":"/FAQ/aeweb#when-using-the-archethic-wallets-link-to-a-file-hosted-on-aeweb-option-to-create-an-nft-with-an-image-does-it-require-sending-funds-to-the-newly-created-address-using-aeweb-cli","type":"docs"},{"id":606,"pageTitle":"aeBridge","sectionTitle":"aeBridge","sectionRoute":"/FAQ/bridge-2-ways","type":"docs"},{"id":607,"pageTitle":"aeBridge","sectionTitle":"General","sectionRoute":"/FAQ/bridge-2-ways#general","type":"docs"},{"id":608,"pageTitle":"aeBridge","sectionTitle":"What is Archethic Bridge?","sectionRoute":"/FAQ/bridge-2-ways#what-is-archethic-bridge","type":"docs"},{"id":609,"pageTitle":"aeBridge","sectionTitle":"How to access the Archethic Bridge ?","sectionRoute":"/FAQ/bridge-2-ways#how-to-access-the-archethic-bridge-","type":"docs"},{"id":610,"pageTitle":"aeBridge","sectionTitle":"Which blockchain is better to bridge my UCOs?","sectionRoute":"/FAQ/bridge-2-ways#which-blockchain-is-better-to-bridge-my-ucos","type":"docs"},{"id":611,"pageTitle":"aeBridge","sectionTitle":"What blockchains does the Archethic Bridge support?","sectionRoute":"/FAQ/bridge-2-ways#what-blockchains-does-the-archethic-bridge-support","type":"docs"},{"id":612,"pageTitle":"aeBridge","sectionTitle":"Is the Archethic Bridge available on mobile devices?","sectionRoute":"/FAQ/bridge-2-ways#is-the-archethic-bridge-available-on-mobile-devices","type":"docs"},{"id":613,"pageTitle":"aeBridge","sectionTitle":"What is an EVM wallet?","sectionRoute":"/FAQ/bridge-2-ways#what-is-an-evm-wallet","type":"docs"},{"id":614,"pageTitle":"aeBridge","sectionTitle":"How is the price of $UCO estimated?","sectionRoute":"/FAQ/bridge-2-ways#how-is-the-price-of-uco-estimated","type":"docs"},{"id":615,"pageTitle":"aeBridge","sectionTitle":"How long is the predetermined time?","sectionRoute":"/FAQ/bridge-2-ways#how-long-is-the-predetermined-time","type":"docs"},{"id":616,"pageTitle":"aeBridge","sectionTitle":"Is the bridge audited?","sectionRoute":"/FAQ/bridge-2-ways#is-the-bridge-audited","type":"docs"},{"id":617,"pageTitle":"aeBridge","sectionTitle":"Key Concepts","sectionRoute":"/FAQ/bridge-2-ways#key-concepts","type":"docs"},{"id":618,"pageTitle":"aeBridge","sectionTitle":"What is an HTLC (Hash Time Lock Contract) in the context of Archethic's bridge?","sectionRoute":"/FAQ/bridge-2-ways#what-is-an-htlc-hash-time-lock-contract-in-the-context-of-archethics-bridge","type":"docs"},{"id":619,"pageTitle":"aeBridge","sectionTitle":"How does Archethic's cross-chain verification work?","sectionRoute":"/FAQ/bridge-2-ways#how-does-archethics-cross-chain-verification-work","type":"docs"},{"id":620,"pageTitle":"aeBridge","sectionTitle":"Specifics of Bridging","sectionRoute":"/FAQ/bridge-2-ways#specifics-of-bridging","type":"docs"},{"id":621,"pageTitle":"aeBridge","sectionTitle":"How does the process of bridging from EVM to Archethic work?","sectionRoute":"/FAQ/bridge-2-ways#how-does-the-process-of-bridging-from-evm-to-archethic-work","type":"docs"},{"id":622,"pageTitle":"aeBridge","sectionTitle":"What is the process for bridging from Archethic to EVM?","sectionRoute":"/FAQ/bridge-2-ways#what-is-the-process-for-bridging-from-archethic-to-evm","type":"docs"},{"id":623,"pageTitle":"aeBridge","sectionTitle":"Wallet","sectionRoute":"/FAQ/bridge-2-ways#wallet","type":"docs"},{"id":624,"pageTitle":"aeBridge","sectionTitle":"I’m using the Mainnet network in the Wallet, how can I switch on the Testnet?","sectionRoute":"/FAQ/bridge-2-ways#im-using-the-mainnet-network-in-the-wallet-how-can-i-switch-on-the-testnet","type":"docs"},{"id":625,"pageTitle":"aeBridge","sectionTitle":"Why can't I connect to the Archethic wallet with my Brave browser?","sectionRoute":"/FAQ/bridge-2-ways#why-cant-i-connect-to-the-archethic-wallet-with-my-brave-browser","type":"docs"},{"id":626,"pageTitle":"aeBridge","sectionTitle":"Issues management","sectionRoute":"/FAQ/bridge-2-ways#issues-management","type":"docs"},{"id":627,"pageTitle":"aeBridge","sectionTitle":"What happens if a problem occurs, or I refuse a transaction during the transfer?","sectionRoute":"/FAQ/bridge-2-ways#what-happens-if-a-problem-occurs-or-i-refuse-a-transaction-during-the-transfer","type":"docs"},{"id":628,"pageTitle":"aeBridge","sectionTitle":"If I sent the tokens to a wrong Mainnet address, what to do?","sectionRoute":"/FAQ/bridge-2-ways#if-i-sent-the-tokens-to-a-wrong-mainnet-address-what-to-do","type":"docs"},{"id":629,"pageTitle":"aeBridge","sectionTitle":"Can I help the developers analyze the problems?","sectionRoute":"/FAQ/bridge-2-ways#can-i-help-the-developers-analyze-the-problems","type":"docs"},{"id":630,"pageTitle":"aeBridge","sectionTitle":"While a bridge from Archethic to EVM Blockchain, I have an error '1405'","sectionRoute":"/FAQ/bridge-2-ways#while-a-bridge-from-archethic-to-evm-blockchain-i-have-an-error-1405","type":"docs"},{"id":631,"pageTitle":"aeBridge","sectionTitle":"The bridge does not recognize my EVM wallet. What should I do?","sectionRoute":"/FAQ/bridge-2-ways#the-bridge-does-not-recognize-my-evm-wallet-what-should-i-do","type":"docs"},{"id":632,"pageTitle":"aeSwap","sectionTitle":"aeSwap","sectionRoute":"/FAQ/dex","type":"docs"},{"id":633,"pageTitle":"aeSwap","sectionTitle":"General","sectionRoute":"/FAQ/dex#general","type":"docs"},{"id":634,"pageTitle":"aeSwap","sectionTitle":"How to access the Archethic DEX named aeSwap ?","sectionRoute":"/FAQ/dex#how-to-access-the-archethic-dex-named-aeswap-","type":"docs"},{"id":635,"pageTitle":"aeSwap","sectionTitle":"Is the Archethic DEX available on mobile devices?","sectionRoute":"/FAQ/dex#is-the-archethic-dex-available-on-mobile-devices","type":"docs"},{"id":636,"pageTitle":"aeSwap","sectionTitle":"How is the price of UCO estimated?","sectionRoute":"/FAQ/dex#how-is-the-price-of-uco-estimated","type":"docs"},{"id":637,"pageTitle":"aeSwap","sectionTitle":"What web browsers are not supported?","sectionRoute":"/FAQ/dex#what-web-browsers-are-not-supported","type":"docs"},{"id":638,"pageTitle":"aeSwap","sectionTitle":"Why is a small quantity of liquidity pool shares removed when the first liquidity is added to a pool on Archethic?","sectionRoute":"/FAQ/dex#why-is-a-small-quantity-of-liquidity-pool-shares-removed-when-the-first-liquidity-is-added-to-a-pool-on-archethic","type":"docs"},{"id":639,"pageTitle":"aeSwap","sectionTitle":"What does APR (24h) mean in the pool information?","sectionRoute":"/FAQ/dex#what-does-apr-24h-mean-in-the-pool-information","type":"docs"},{"id":640,"pageTitle":"aeSwap","sectionTitle":"Wallet","sectionRoute":"/FAQ/dex#wallet","type":"docs"},{"id":641,"pageTitle":"aeSwap","sectionTitle":"I’m using the Mainnet network in the Wallet, how can I switch on the Testnet?","sectionRoute":"/FAQ/dex#im-using-the-mainnet-network-in-the-wallet-how-can-i-switch-on-the-testnet","type":"docs"},{"id":642,"pageTitle":"aeSwap","sectionTitle":"Why can't I connect to the Archethic wallet with my Brave browser?","sectionRoute":"/FAQ/dex#why-cant-i-connect-to-the-archethic-wallet-with-my-brave-browser","type":"docs"},{"id":643,"pageTitle":"Migration of ERC-20 UCO Tokens","sectionTitle":"Migration of ERC-20 UCO Tokens","sectionRoute":"/FAQ/migration-erc-token","type":"docs"},{"id":644,"pageTitle":"Migration of ERC-20 UCO Tokens","sectionTitle":"General","sectionRoute":"/FAQ/migration-erc-token#general","type":"docs"},{"id":645,"pageTitle":"Migration of ERC-20 UCO Tokens","sectionTitle":" Why Archethic migrates his ERC20 UCO Token? ","sectionRoute":"/FAQ/migration-erc-token#-why-archethic-migrates-his-erc20-uco-token-","type":"docs"},{"id":646,"pageTitle":"Migration of ERC-20 UCO Tokens","sectionTitle":"How do I migrate my V1 tokens to V2?","sectionRoute":"/FAQ/migration-erc-token#how-do-i-migrate-my-v1-tokens-to-v2","type":"docs"},{"id":647,"pageTitle":"Migration of ERC-20 UCO Tokens","sectionTitle":"If I have 3000 UCO in V1, how many UCO will I receive in V2?","sectionRoute":"/FAQ/migration-erc-token#if-i-have-3000-uco-in-v1-how-many-uco-will-i-receive-in-v2","type":"docs"},{"id":648,"pageTitle":"Migration of ERC-20 UCO Tokens","sectionTitle":"How much does the migration cost the user?","sectionRoute":"/FAQ/migration-erc-token#how-much-does-the-migration-cost-the-user","type":"docs"},{"id":649,"pageTitle":"Migration of ERC-20 UCO Tokens","sectionTitle":"I have UCO with more than 8 decimal places; does this have an impact?","sectionRoute":"/FAQ/migration-erc-token#i-have-uco-with-more-than-8-decimal-places-does-this-have-an-impact","type":"docs"},{"id":653,"pageTitle":"aeWallet","sectionTitle":"aeWallet","sectionRoute":"/FAQ/wallet","type":"docs"},{"id":654,"pageTitle":"aeWallet","sectionTitle":"General","sectionRoute":"/FAQ/wallet#general","type":"docs"},{"id":655,"pageTitle":"aeWallet","sectionTitle":" How to create a wallet on the Archethic blockchain?","sectionRoute":"/FAQ/wallet#-how-to-create-a-wallet-on-the-archethic-blockchain","type":"docs"},{"id":656,"pageTitle":"aeWallet","sectionTitle":" How to retrieve the address of my Archethic wallet?","sectionRoute":"/FAQ/wallet#-how-to-retrieve-the-address-of-my-archethic-wallet","type":"docs"},{"id":657,"pageTitle":"aeWallet","sectionTitle":"Troubleshooting","sectionRoute":"/FAQ/wallet#troubleshooting","type":"docs"},{"id":658,"pageTitle":"aeWallet","sectionTitle":"The Archethic wallet won't start or opens to a black or white screen","sectionRoute":"/FAQ/wallet#the-archethic-wallet-wont-start-or-opens-to-a-black-or-white-screen","type":"docs"},{"id":650,"pageTitle":"Archethic introduction","sectionTitle":"Archethic introduction","sectionRoute":"/learn/","type":"docs"},{"id":651,"pageTitle":"Archethic introduction","sectionTitle":"Motivations","sectionRoute":"/learn/#motivations","type":"docs"},{"id":652,"pageTitle":"Archethic introduction","sectionTitle":"Innovations","sectionRoute":"/learn/#innovations","type":"docs"},{"id":659,"pageTitle":"ARCH consensus","sectionTitle":"ARCH consensus","sectionRoute":"/learn/arch-consensus/","type":"docs"},{"id":660,"pageTitle":"ARCH consensus","sectionTitle":"Atomic Commitment","sectionRoute":"/learn/arch-consensus/#atomic-commitment","type":"docs"},{"id":661,"pageTitle":"ARCH consensus","sectionTitle":"Rotating Election","sectionRoute":"/learn/arch-consensus/#rotating-election","type":"docs"},{"id":662,"pageTitle":"ARCH consensus","sectionTitle":"Workflow","sectionRoute":"/learn/arch-consensus/#workflow","type":"docs"},{"id":672,"pageTitle":"Proof of Work","sectionTitle":"Proof of Work","sectionRoute":"/learn/arch-consensus/proof-of-work","type":"docs"},{"id":663,"pageTitle":"Cryptography","sectionTitle":"Cryptography","sectionRoute":"/learn/cryptography/","type":"docs"},{"id":664,"pageTitle":"Cryptography","sectionTitle":"Quantum-Safe","sectionRoute":"/learn/cryptography/#quantum-safe","type":"docs"},{"id":665,"pageTitle":"Cryptography","sectionTitle":"Non-Discolure of public keys","sectionRoute":"/learn/cryptography/#non-discolure-of-public-keys","type":"docs"},{"id":666,"pageTitle":"Cryptography","sectionTitle":"Origin Devices","sectionRoute":"/learn/cryptography/#origin-devices","type":"docs"},{"id":667,"pageTitle":"Cryptography","sectionTitle":"Adaptative","sectionRoute":"/learn/cryptography/#adaptative","type":"docs"},{"id":668,"pageTitle":"Cryptography","sectionTitle":"Public keys","sectionRoute":"/learn/cryptography/#public-keys","type":"docs"},{"id":669,"pageTitle":"Cryptography","sectionTitle":"Hashes","sectionRoute":"/learn/cryptography/#hashes","type":"docs"},{"id":670,"pageTitle":"Cryptography","sectionTitle":"Transaction addresses","sectionRoute":"/learn/cryptography/#transaction-addresses","type":"docs"},{"id":671,"pageTitle":"Cryptography","sectionTitle":"Default algorithms","sectionRoute":"/learn/cryptography/#default-algorithms","type":"docs"},{"id":676,"pageTitle":"Hardware Root of Trust","sectionTitle":"Hardware Root of Trust","sectionRoute":"/learn/cryptography/hardware-root-of-trust","type":"docs"},{"id":677,"pageTitle":"Hardware Root of Trust","sectionTitle":"What is hardware root of trust?","sectionRoute":"/learn/cryptography/hardware-root-of-trust#what-is-hardware-root-of-trust","type":"docs"},{"id":678,"pageTitle":"Hardware Root of Trust","sectionTitle":"Why hardware root of trust for Archethic?","sectionRoute":"/learn/cryptography/hardware-root-of-trust#why-hardware-root-of-trust-for-archethic","type":"docs"},{"id":679,"pageTitle":"Hardware Root of Trust","sectionTitle":"Implementation of Hardware Root of Trust (HRT)","sectionRoute":"/learn/cryptography/hardware-root-of-trust#implementation-of-hardware-root-of-trust-hrt","type":"docs"},{"id":680,"pageTitle":"Hardware Root of Trust","sectionTitle":"Placement of HRT in Archethic Blockchain/Ecosystem","sectionRoute":"/learn/cryptography/hardware-root-of-trust#placement-of-hrt-in-archethic-blockchainecosystem","type":"docs"},{"id":673,"pageTitle":"Decentralized Identity","sectionTitle":"Decentralized Identity","sectionRoute":"/learn/decentralized-id/","type":"docs"},{"id":674,"pageTitle":"Decentralized Identity","sectionTitle":"Identity","sectionRoute":"/learn/decentralized-id/#identity","type":"docs"},{"id":675,"pageTitle":"Decentralized Identity","sectionTitle":"Password-less","sectionRoute":"/learn/decentralized-id/#password-less","type":"docs"},{"id":681,"pageTitle":"Keychain","sectionTitle":"Keychain","sectionRoute":"/learn/decentralized-id/keychain","type":"docs"},{"id":682,"pageTitle":"Keychain","sectionTitle":"Key generation","sectionRoute":"/learn/decentralized-id/keychain#key-generation","type":"docs"},{"id":683,"pageTitle":"Keychain","sectionTitle":"End to end encryption","sectionRoute":"/learn/decentralized-id/keychain#end-to-end-encryption","type":"docs"},{"id":684,"pageTitle":"Keychain","sectionTitle":"Standard compliance","sectionRoute":"/learn/decentralized-id/keychain#standard-compliance","type":"docs"},{"id":685,"pageTitle":"Keychain","sectionTitle":"Customization","sectionRoute":"/learn/decentralized-id/keychain#customization","type":"docs"},{"id":686,"pageTitle":"Ecosystem","sectionTitle":"Ecosystem","sectionRoute":"/learn/ecosystem","type":"docs"},{"id":687,"pageTitle":"Ecosystem","sectionTitle":"Limitless network","sectionRoute":"/learn/ecosystem#limitless-network","type":"docs"},{"id":688,"pageTitle":"Ecosystem","sectionTitle":"Unlimited applications","sectionRoute":"/learn/ecosystem#unlimited-applications","type":"docs"},{"id":689,"pageTitle":"Ecosystem","sectionTitle":"Decentralized Identity","sectionRoute":"/learn/ecosystem#decentralized-identity","type":"docs"},{"id":690,"pageTitle":"Ecosystem","sectionTitle":"Governance","sectionRoute":"/learn/ecosystem#governance","type":"docs"},{"id":691,"pageTitle":"Ecosystem","sectionTitle":"Open enhancements","sectionRoute":"/learn/ecosystem#open-enhancements","type":"docs"},{"id":692,"pageTitle":"Transaction fees","sectionTitle":"Transaction fees","sectionRoute":"/learn/fee","type":"docs"},{"id":693,"pageTitle":"Transaction fees","sectionTitle":"Calculation","sectionRoute":"/learn/fee#calculation","type":"docs"},{"id":694,"pageTitle":"Transaction fees","sectionTitle":"Transaction's type particularities","sectionRoute":"/learn/fee#transactions-type-particularities","type":"docs"},{"id":695,"pageTitle":"Transaction fees","sectionTitle":"Network","sectionRoute":"/learn/fee#network","type":"docs"},{"id":696,"pageTitle":"Transaction fees","sectionTitle":"Keychain","sectionRoute":"/learn/fee#keychain","type":"docs"},{"id":697,"pageTitle":"Transaction fees","sectionTitle":"Token","sectionRoute":"/learn/fee#token","type":"docs"},{"id":698,"pageTitle":"Governance","sectionTitle":"Governance","sectionRoute":"/learn/governance/","type":"docs"},{"id":699,"pageTitle":"Governance","sectionTitle":"Decentralized Identity & Proof of Identity","sectionRoute":"/learn/governance/#decentralized-identity--proof-of-identity","type":"docs"},{"id":700,"pageTitle":"Governance","sectionTitle":"Code «On-Chain»","sectionRoute":"/learn/governance/#code-on-chain","type":"docs"},{"id":701,"pageTitle":"Governance","sectionTitle":"Introduction","sectionRoute":"/learn/governance/#introduction","type":"docs"},{"id":702,"pageTitle":"Governance","sectionTitle":"Details","sectionRoute":"/learn/governance/#details","type":"docs"},{"id":703,"pageTitle":"Governance","sectionTitle":"Incentives","sectionRoute":"/learn/governance/#incentives","type":"docs"},{"id":704,"pageTitle":"OracleChain","sectionTitle":"OracleChain","sectionRoute":"/learn/oracle-chain","type":"docs"},{"id":705,"pageTitle":"OracleChain","sectionTitle":"How is it work ?","sectionRoute":"/learn/oracle-chain#how-is-it-work-","type":"docs"},{"id":706,"pageTitle":"OracleChain","sectionTitle":"Services","sectionRoute":"/learn/oracle-chain#services","type":"docs"},{"id":711,"pageTitle":"P2P","sectionTitle":"P2P","sectionRoute":"/learn/p2p/","type":"docs"},{"id":712,"pageTitle":"P2P","sectionTitle":"Existing solutions","sectionRoute":"/learn/p2p/#existing-solutions","type":"docs"},{"id":713,"pageTitle":"P2P","sectionTitle":"Gossip","sectionRoute":"/learn/p2p/#gossip","type":"docs"},{"id":714,"pageTitle":"P2P","sectionTitle":"Broadcast","sectionRoute":"/learn/p2p/#broadcast","type":"docs"},{"id":715,"pageTitle":"P2P","sectionTitle":"Archethic's way","sectionRoute":"/learn/p2p/#archethics-way","type":"docs"},{"id":716,"pageTitle":"P2P","sectionTitle":"Transaction Validation Process","sectionRoute":"/learn/p2p/#transaction-validation-process","type":"docs"},{"id":717,"pageTitle":"P2P","sectionTitle":"Network transaction chains","sectionRoute":"/learn/p2p/#network-transaction-chains","type":"docs"},{"id":718,"pageTitle":"P2P","sectionTitle":"Beacons Chains","sectionRoute":"/learn/p2p/#beacons-chains","type":"docs"},{"id":719,"pageTitle":"P2P","sectionTitle":"Data propagation","sectionRoute":"/learn/p2p/#data-propagation","type":"docs"},{"id":707,"pageTitle":"Bootstrapping","sectionTitle":"Bootstrapping","sectionRoute":"/learn/p2p/bootstrapping","type":"docs"},{"id":708,"pageTitle":"Bootstrapping","sectionTitle":"Joining","sectionRoute":"/learn/p2p/bootstrapping#joining","type":"docs"},{"id":709,"pageTitle":"Bootstrapping","sectionTitle":"Updates","sectionRoute":"/learn/p2p/bootstrapping#updates","type":"docs"},{"id":710,"pageTitle":"Bootstrapping","sectionTitle":"Synchronization","sectionRoute":"/learn/p2p/bootstrapping#synchronization","type":"docs"},{"id":720,"pageTitle":"Self Repair","sectionTitle":"Self Repair","sectionRoute":"/learn/p2p/self-repair","type":"docs"},{"id":721,"pageTitle":"Self Repair","sectionTitle":"Identification","sectionRoute":"/learn/p2p/self-repair#identification","type":"docs"},{"id":722,"pageTitle":"Self Repair","sectionTitle":"Synchronization","sectionRoute":"/learn/p2p/self-repair#synchronization","type":"docs"},{"id":723,"pageTitle":"Patents","sectionTitle":"Patents","sectionRoute":"/learn/patents","type":"docs"},{"id":724,"pageTitle":"Patents","sectionTitle":"11 patents to build a new ecosystem","sectionRoute":"/learn/patents#11-patents-to-build-a-new-ecosystem","type":"docs"},{"id":725,"pageTitle":"Patents","sectionTitle":"Archethic, a Humanitarian and Community Project","sectionRoute":"/learn/patents#archethic-a-humanitarian-and-community-project","type":"docs"},{"id":726,"pageTitle":"Patents","sectionTitle":"List of patents","sectionRoute":"/learn/patents#list-of-patents","type":"docs"},{"id":727,"pageTitle":"Patents","sectionTitle":"Blockchain","sectionRoute":"/learn/patents#blockchain","type":"docs"},{"id":728,"pageTitle":"Patents","sectionTitle":"Biometrics","sectionRoute":"/learn/patents#biometrics","type":"docs"},{"id":729,"pageTitle":"Patents","sectionTitle":"Hardware","sectionRoute":"/learn/patents#hardware","type":"docs"},{"id":730,"pageTitle":"Sharding","sectionTitle":"Sharding","sectionRoute":"/learn/sharding/","type":"docs"},{"id":731,"pageTitle":"Sharding","sectionTitle":"Validation","sectionRoute":"/learn/sharding/#validation","type":"docs"},{"id":732,"pageTitle":"Sharding","sectionTitle":"Storage","sectionRoute":"/learn/sharding/#storage","type":"docs"},{"id":733,"pageTitle":"Sharding","sectionTitle":"Rotating Election","sectionRoute":"/learn/sharding/#rotating-election","type":"docs"},{"id":741,"pageTitle":"Beacon Chain","sectionTitle":"Beacon Chain","sectionRoute":"/learn/sharding/beacon-chain/","type":"docs"},{"id":742,"pageTitle":"Beacon Chain","sectionTitle":"Concepts","sectionRoute":"/learn/sharding/beacon-chain/#concepts","type":"docs"},{"id":743,"pageTitle":"Beacon Chain","sectionTitle":"Transaction tracking and timestamping","sectionRoute":"/learn/sharding/beacon-chain/#transaction-tracking-and-timestamping","type":"docs"},{"id":744,"pageTitle":"Beacon Chain","sectionTitle":"Status and Network Coordinates of nodes","sectionRoute":"/learn/sharding/beacon-chain/#status-and-network-coordinates-of-nodes","type":"docs"},{"id":745,"pageTitle":"Beacon Chain","sectionTitle":"Slot","sectionRoute":"/learn/sharding/beacon-chain/#slot","type":"docs"},{"id":734,"pageTitle":"Beacon Explorer","sectionTitle":"Beacon Explorer","sectionRoute":"/learn/sharding/beacon-chain/explorer","type":"docs"},{"id":735,"pageTitle":"Beacon Explorer","sectionTitle":"Concepts","sectionRoute":"/learn/sharding/beacon-chain/explorer#concepts","type":"docs"},{"id":736,"pageTitle":"Beacon Explorer","sectionTitle":"Slot","sectionRoute":"/learn/sharding/beacon-chain/explorer#slot","type":"docs"},{"id":737,"pageTitle":"Beacon Explorer","sectionTitle":"Epoch","sectionRoute":"/learn/sharding/beacon-chain/explorer#epoch","type":"docs"},{"id":738,"pageTitle":"Beacon Explorer","sectionTitle":"Subset","sectionRoute":"/learn/sharding/beacon-chain/explorer#subset","type":"docs"},{"id":739,"pageTitle":"Beacon Explorer","sectionTitle":"Process to get transaction notifications","sectionRoute":"/learn/sharding/beacon-chain/explorer#process-to-get-transaction-notifications","type":"docs"},{"id":740,"pageTitle":"Beacon Explorer","sectionTitle":"How to get transactions in realtime","sectionRoute":"/learn/sharding/beacon-chain/explorer#how-to-get-transactions-in-realtime","type":"docs"},{"id":746,"pageTitle":"Replication attestation","sectionTitle":"Replication attestation","sectionRoute":"/learn/sharding/replication-attestation","type":"docs"},{"id":747,"pageTitle":"Replication attestation","sectionTitle":"Heuristic solution","sectionRoute":"/learn/sharding/replication-attestation#heuristic-solution","type":"docs"},{"id":748,"pageTitle":"Replication attestation","sectionTitle":"Nested replications","sectionRoute":"/learn/sharding/replication-attestation#nested-replications","type":"docs"},{"id":749,"pageTitle":"Replication attestation","sectionTitle":"Client notifications","sectionRoute":"/learn/sharding/replication-attestation#client-notifications","type":"docs"},{"id":750,"pageTitle":"Replication attestation","sectionTitle":"Further improvements","sectionRoute":"/learn/sharding/replication-attestation#further-improvements","type":"docs"},{"id":751,"pageTitle":"Tokens","sectionTitle":"Tokens","sectionRoute":"/learn/token","type":"docs"},{"id":752,"pageTitle":"Tokens","sectionTitle":"Native","sectionRoute":"/learn/token#native","type":"docs"},{"id":753,"pageTitle":"Tokens","sectionTitle":"Standardized","sectionRoute":"/learn/token#standardized","type":"docs"},{"id":754,"pageTitle":"Tokens","sectionTitle":"Creation","sectionRoute":"/learn/token#creation","type":"docs"},{"id":755,"pageTitle":"Tokens","sectionTitle":"Fungible","sectionRoute":"/learn/token#fungible","type":"docs"},{"id":756,"pageTitle":"Tokens","sectionTitle":"Non-fungible","sectionRoute":"/learn/token#non-fungible","type":"docs"},{"id":757,"pageTitle":"Tokens","sectionTitle":"Resupply fungible tokens (AEIP-18)","sectionRoute":"/learn/token#resupply-fungible-tokens-aeip-18","type":"docs"},{"id":758,"pageTitle":"Tokens","sectionTitle":"Recipients (AEIP-19)","sectionRoute":"/learn/token#recipients-aeip-19","type":"docs"},{"id":759,"pageTitle":"Tokens","sectionTitle":"Transfer","sectionRoute":"/learn/token#transfer","type":"docs"},{"id":777,"pageTitle":"Transaction chains","sectionTitle":"Transaction chains","sectionRoute":"/learn/transaction-chain","type":"docs"},{"id":778,"pageTitle":"Transaction chains","sectionTitle":"Principles","sectionRoute":"/learn/transaction-chain#principles","type":"docs"},{"id":779,"pageTitle":"Transaction chains","sectionTitle":"Transaction structure","sectionRoute":"/learn/transaction-chain#transaction-structure","type":"docs"},{"id":780,"pageTitle":"Transaction chains","sectionTitle":"Pending transaction","sectionRoute":"/learn/transaction-chain#pending-transaction","type":"docs"},{"id":781,"pageTitle":"Transaction chains","sectionTitle":"Validated transaction","sectionRoute":"/learn/transaction-chain#validated-transaction","type":"docs"},{"id":760,"pageTitle":"Transaction types","sectionTitle":"Transaction types","sectionRoute":"/learn/transaction-types","type":"docs"},{"id":761,"pageTitle":"Transaction types","sectionTitle":"node (network)","sectionRoute":"/learn/transaction-types#node-network","type":"docs"},{"id":762,"pageTitle":"Transaction types","sectionTitle":"node_shared_secrets (network)","sectionRoute":"/learn/transaction-types#node_shared_secrets-network","type":"docs"},{"id":763,"pageTitle":"Transaction types","sectionTitle":"node_rewards (network)","sectionRoute":"/learn/transaction-types#node_rewards-network","type":"docs"},{"id":764,"pageTitle":"Transaction types","sectionTitle":"mint_rewards (network)","sectionRoute":"/learn/transaction-types#mint_rewards-network","type":"docs"},{"id":765,"pageTitle":"Transaction types","sectionTitle":"oracle (network)","sectionRoute":"/learn/transaction-types#oracle-network","type":"docs"},{"id":766,"pageTitle":"Transaction types","sectionTitle":"oracle_summary (network)","sectionRoute":"/learn/transaction-types#oracle_summary-network","type":"docs"},{"id":767,"pageTitle":"Transaction types","sectionTitle":"code_proposal (network)","sectionRoute":"/learn/transaction-types#code_proposal-network","type":"docs"},{"id":768,"pageTitle":"Transaction types","sectionTitle":"code_approval (network)","sectionRoute":"/learn/transaction-types#code_approval-network","type":"docs"},{"id":769,"pageTitle":"Transaction types","sectionTitle":"origin (network)","sectionRoute":"/learn/transaction-types#origin-network","type":"docs"},{"id":770,"pageTitle":"Transaction types","sectionTitle":"keychain","sectionRoute":"/learn/transaction-types#keychain","type":"docs"},{"id":771,"pageTitle":"Transaction types","sectionTitle":"keychain_access","sectionRoute":"/learn/transaction-types#keychain_access","type":"docs"},{"id":772,"pageTitle":"Transaction types","sectionTitle":"transfer","sectionRoute":"/learn/transaction-types#transfer","type":"docs"},{"id":773,"pageTitle":"Transaction types","sectionTitle":"token","sectionRoute":"/learn/transaction-types#token","type":"docs"},{"id":774,"pageTitle":"Transaction types","sectionTitle":"hosting","sectionRoute":"/learn/transaction-types#hosting","type":"docs"},{"id":775,"pageTitle":"Transaction types","sectionTitle":"data","sectionRoute":"/learn/transaction-types#data","type":"docs"},{"id":776,"pageTitle":"Transaction types","sectionTitle":"contract","sectionRoute":"/learn/transaction-types#contract","type":"docs"},{"id":782,"pageTitle":"UCO token","sectionTitle":"UCO token","sectionRoute":"/learn/uco","type":"docs"},{"id":783,"pageTitle":"UCO token","sectionTitle":"Fibonacci Golden Token Economics","sectionRoute":"/learn/uco#fibonacci-golden-token-economics","type":"docs"},{"id":784,"pageTitle":"Archethic Web (aeHosting)","sectionTitle":"Archethic Web (aeHosting)","sectionRoute":"/participate/aeweb/","type":"docs"},{"id":785,"pageTitle":"Archethic Web (aeHosting)","sectionTitle":"Motivations","sectionRoute":"/participate/aeweb/#motivations","type":"docs"},{"id":786,"pageTitle":"Archethic Web (aeHosting)","sectionTitle":"Easy","sectionRoute":"/participate/aeweb/#easy","type":"docs"},{"id":787,"pageTitle":"Archethic Web (aeHosting)","sectionTitle":"Security","sectionRoute":"/participate/aeweb/#security","type":"docs"},{"id":788,"pageTitle":"Archethic Web (aeHosting)","sectionTitle":"Costly efficient","sectionRoute":"/participate/aeweb/#costly-efficient","type":"docs"},{"id":789,"pageTitle":"Archethic Web (aeHosting)","sectionTitle":"Target","sectionRoute":"/participate/aeweb/#target","type":"docs"},{"id":790,"pageTitle":"Archethic Web (aeHosting)","sectionTitle":"Try out","sectionRoute":"/participate/aeweb/#try-out","type":"docs"},{"id":791,"pageTitle":"Archethic Web (aeHosting)","sectionTitle":"Graphical interface","sectionRoute":"/participate/aeweb/#graphical-interface","type":"docs"},{"id":792,"pageTitle":"Archethic Web (aeHosting)","sectionTitle":"Developers","sectionRoute":"/participate/aeweb/#developers","type":"docs"},{"id":793,"pageTitle":"Archethic Web (aeHosting)","sectionTitle":"Roadmap","sectionRoute":"/participate/aeweb/#roadmap","type":"docs"},{"id":794,"pageTitle":"Automate deployments","sectionTitle":"Automate deployments","sectionRoute":"/participate/aeweb/automation","type":"docs"},{"id":800,"pageTitle":"AEWeb - Domain names","sectionTitle":"AEWeb - Domain names","sectionRoute":"/participate/aeweb/dns","type":"docs"},{"id":801,"pageTitle":"AEWeb - Domain names","sectionTitle":"DNSLink","sectionRoute":"/participate/aeweb/dns#dnslink","type":"docs"},{"id":802,"pageTitle":"AEWeb - Domain names","sectionTitle":"Hosting provider integration","sectionRoute":"/participate/aeweb/dns#hosting-provider-integration","type":"docs"},{"id":803,"pageTitle":"AEWeb - Domain names","sectionTitle":"SSL","sectionRoute":"/participate/aeweb/dns#ssl","type":"docs"},{"id":804,"pageTitle":"AEWeb - Domain names","sectionTitle":"1. Get the certificate","sectionRoute":"/participate/aeweb/dns#1-get-the-certificate","type":"docs"},{"id":805,"pageTitle":"AEWeb - Domain names","sectionTitle":"2. Add the certificate on chain","sectionRoute":"/participate/aeweb/dns#2-add-the-certificate-on-chain","type":"docs"},{"id":795,"pageTitle":"AEWeb - How it works","sectionTitle":"AEWeb - How it works","sectionRoute":"/participate/aeweb/how-it-works","type":"docs"},{"id":796,"pageTitle":"AEWeb - How it works","sectionTitle":"Transaction building","sectionRoute":"/participate/aeweb/how-it-works#transaction-building","type":"docs"},{"id":797,"pageTitle":"AEWeb - How it works","sectionTitle":"Content delivery","sectionRoute":"/participate/aeweb/how-it-works#content-delivery","type":"docs"},{"id":798,"pageTitle":"AEWeb - How it works","sectionTitle":"Website updates","sectionRoute":"/participate/aeweb/how-it-works#website-updates","type":"docs"},{"id":799,"pageTitle":"AEWeb - How it works","sectionTitle":"Website unpublication","sectionRoute":"/participate/aeweb/how-it-works#website-unpublication","type":"docs"},{"id":806,"pageTitle":"","sectionTitle":"AEWeb Front end","sectionRoute":"/participate/aeweb/usage/aeweb-front","type":"docs"},{"id":807,"pageTitle":"","sectionTitle":"Tutorials","sectionRoute":"/participate/aeweb/usage/aeweb-front#tutorials","type":"docs"},{"id":808,"pageTitle":"","sectionTitle":"Deploy for the first time my static site","sectionRoute":"/participate/aeweb/usage/aeweb-front#deploy-for-the-first-time-my-static-site","type":"docs"},{"id":809,"pageTitle":"","sectionTitle":"Update my static site","sectionRoute":"/participate/aeweb/usage/aeweb-front#update-my-static-site","type":"docs"},{"id":810,"pageTitle":"","sectionTitle":"Update the SSL certificate","sectionRoute":"/participate/aeweb/usage/aeweb-front#update-the-ssl-certificate","type":"docs"},{"id":811,"pageTitle":"","sectionTitle":"Unpublish my static site","sectionRoute":"/participate/aeweb/usage/aeweb-front#unpublish-my-static-site","type":"docs"},{"id":812,"pageTitle":"","sectionTitle":"See my static site's informations","sectionRoute":"/participate/aeweb/usage/aeweb-front#see-my-static-sites-informations","type":"docs"},{"id":813,"pageTitle":"","sectionTitle":"Disconnect AEWeb","sectionRoute":"/participate/aeweb/usage/aeweb-front#disconnect-aeweb","type":"docs"},{"id":814,"pageTitle":"","sectionTitle":"Roadmap","sectionRoute":"/participate/aeweb/usage/aeweb-front#roadmap","type":"docs"},{"id":824,"pageTitle":"","sectionTitle":"AEWeb CLI (Command-Line Interface)","sectionRoute":"/participate/aeweb/usage/cli","type":"docs"},{"id":825,"pageTitle":"","sectionTitle":"aeweb generate-address","sectionRoute":"/participate/aeweb/usage/cli#aeweb-generate-address","type":"docs"},{"id":826,"pageTitle":"","sectionTitle":"aeweb deploy","sectionRoute":"/participate/aeweb/usage/cli#aeweb-deploy","type":"docs"},{"id":815,"pageTitle":"Archethic Bridge (aeBridge)","sectionTitle":"Archethic Bridge (aeBridge)","sectionRoute":"/participate/bridge/","type":"docs"},{"id":816,"pageTitle":"Archethic Bridge (aeBridge)","sectionTitle":"Key concepts","sectionRoute":"/participate/bridge/#key-concepts","type":"docs"},{"id":817,"pageTitle":"Archethic Bridge (aeBridge)","sectionTitle":"HTLC (Hash Time Lock Contract)","sectionRoute":"/participate/bridge/#htlc-hash-time-lock-contract","type":"docs"},{"id":818,"pageTitle":"Archethic Bridge (aeBridge)","sectionTitle":"Archethic's cross-chain verification","sectionRoute":"/participate/bridge/#archethics-cross-chain-verification","type":"docs"},{"id":819,"pageTitle":"Archethic Bridge (aeBridge)","sectionTitle":"EVM to Archethic","sectionRoute":"/participate/bridge/#evm-to-archethic","type":"docs"},{"id":820,"pageTitle":"Archethic Bridge (aeBridge)","sectionTitle":"Archethic to EVM","sectionRoute":"/participate/bridge/#archethic-to-evm","type":"docs"},{"id":821,"pageTitle":"Archethic Bridge (aeBridge)","sectionTitle":"How to access","sectionRoute":"/participate/bridge/#how-to-access","type":"docs"},{"id":822,"pageTitle":"Archethic Bridge (aeBridge)","sectionTitle":"Audit of EVM Smart Contracts","sectionRoute":"/participate/bridge/#audit-of-evm-smart-contracts","type":"docs"},{"id":823,"pageTitle":"Archethic Bridge (aeBridge)","sectionTitle":"FAQ","sectionRoute":"/participate/bridge/#faq","type":"docs"},{"id":827,"pageTitle":"","sectionTitle":"aeBridge - Tutorial","sectionRoute":"/participate/bridge/usage","type":"docs"},{"id":828,"pageTitle":"","sectionTitle":"Welcome Screen","sectionRoute":"/participate/bridge/usage#welcome-screen","type":"docs"},{"id":829,"pageTitle":"","sectionTitle":"Application Menu","sectionRoute":"/participate/bridge/usage#application-menu","type":"docs"},{"id":830,"pageTitle":"","sectionTitle":"Feature Access","sectionRoute":"/participate/bridge/usage#feature-access","type":"docs"},{"id":831,"pageTitle":"","sectionTitle":"Bridging Your Assets","sectionRoute":"/participate/bridge/usage#bridging-your-assets","type":"docs"},{"id":832,"pageTitle":"","sectionTitle":"Step 1: Initiating Transfer","sectionRoute":"/participate/bridge/usage#step-1-initiating-transfer","type":"docs"},{"id":833,"pageTitle":"","sectionTitle":"Step 2: Confirming Details","sectionRoute":"/participate/bridge/usage#step-2-confirming-details","type":"docs"},{"id":834,"pageTitle":"","sectionTitle":"Step 3: Executing Transfer","sectionRoute":"/participate/bridge/usage#step-3-executing-transfer","type":"docs"},{"id":835,"pageTitle":"","sectionTitle":"Local History and Management","sectionRoute":"/participate/bridge/usage#local-history-and-management","type":"docs"},{"id":836,"pageTitle":"","sectionTitle":"Options Include:","sectionRoute":"/participate/bridge/usage#options-include","type":"docs"},{"id":837,"pageTitle":"","sectionTitle":"Transfer Status Actions:","sectionRoute":"/participate/bridge/usage#transfer-status-actions","type":"docs"},{"id":838,"pageTitle":"","sectionTitle":"Refund Process","sectionRoute":"/participate/bridge/usage#refund-process","type":"docs"},{"id":839,"pageTitle":"Archethic's CLI","sectionTitle":"Archethic's CLI","sectionRoute":"/participate/cli/","type":"docs"},{"id":840,"pageTitle":"Archethic's CLI","sectionTitle":"Installation","sectionRoute":"/participate/cli/#installation","type":"docs"},{"id":841,"pageTitle":"Archethic's CLI","sectionTitle":"Generate address","sectionRoute":"/participate/cli/#generate-address","type":"docs"},{"id":842,"pageTitle":"Archethic's CLI","sectionTitle":"Build and send transaction","sectionRoute":"/participate/cli/#build-and-send-transaction","type":"docs"},{"id":843,"pageTitle":"Archethic's CLI","sectionTitle":"UCO transfers","sectionRoute":"/participate/cli/#uco-transfers","type":"docs"},{"id":844,"pageTitle":"Archethic's CLI","sectionTitle":"Token transfers","sectionRoute":"/participate/cli/#token-transfers","type":"docs"},{"id":845,"pageTitle":"Archethic's CLI","sectionTitle":"Recipients","sectionRoute":"/participate/cli/#recipients","type":"docs"},{"id":846,"pageTitle":"Archethic's CLI","sectionTitle":"Content","sectionRoute":"/participate/cli/#content","type":"docs"},{"id":847,"pageTitle":"Archethic's CLI","sectionTitle":"Smart contract","sectionRoute":"/participate/cli/#smart-contract","type":"docs"},{"id":848,"pageTitle":"Archethic's CLI","sectionTitle":"Sending the transaction","sectionRoute":"/participate/cli/#sending-the-transaction","type":"docs"},{"id":849,"pageTitle":"Archethic's CLI","sectionTitle":"Keychain management","sectionRoute":"/participate/cli/#keychain-management","type":"docs"},{"id":850,"pageTitle":"Archethic's CLI","sectionTitle":"Creating a keychain","sectionRoute":"/participate/cli/#creating-a-keychain","type":"docs"},{"id":851,"pageTitle":"Archethic's CLI","sectionTitle":"Accessing a keychain","sectionRoute":"/participate/cli/#accessing-a-keychain","type":"docs"},{"id":852,"pageTitle":"Archethic's CLI","sectionTitle":"Adding / removing a service","sectionRoute":"/participate/cli/#adding--removing-a-service","type":"docs"},{"id":853,"pageTitle":"Archethic's CLI","sectionTitle":"Create a transaction for a service","sectionRoute":"/participate/cli/#create-a-transaction-for-a-service","type":"docs"},{"id":854,"pageTitle":"Archethic's CLI","sectionTitle":"CLI - Archethic Command Line Interpreter","sectionRoute":"/participate/cli/#cli---archethic-command-line-interpreter","type":"docs"},{"id":855,"pageTitle":"Archethic's CLI","sectionTitle":"Contribution","sectionRoute":"/participate/cli/#contribution","type":"docs"},{"id":856,"pageTitle":"Tutoriel Archethic DeFi","sectionTitle":"Tutoriel Archethic DeFi","sectionRoute":"/participate/DeFi/","type":"docs"},{"id":857,"pageTitle":"Tutoriel Archethic DeFi","sectionTitle":"Welcome to the interactive guide for using the Archethic Bridge","sectionRoute":"/participate/DeFi/","type":"docs"},{"id":858,"pageTitle":"Tutoriel Archethic DeFi","sectionTitle":"This tutorial will explain the following points:","sectionRoute":"/participate/DeFi/","type":"docs"},{"id":863,"pageTitle":"","sectionTitle":"aeSwap DEX Documentation","sectionRoute":"/participate/dex/","type":"docs"},{"id":864,"pageTitle":"","sectionTitle":"What is a Decentralized Exchange (DEX)?","sectionRoute":"/participate/dex/#what-is-a-decentralized-exchange-dex","type":"docs"},{"id":865,"pageTitle":"","sectionTitle":"Key Features of aeSwap","sectionRoute":"/participate/dex/#key-features-of-aeswap","type":"docs"},{"id":866,"pageTitle":"","sectionTitle":"How to access","sectionRoute":"/participate/dex/#how-to-access","type":"docs"},{"id":867,"pageTitle":"","sectionTitle":"FAQ","sectionRoute":"/participate/dex/#faq","type":"docs"},{"id":859,"pageTitle":"","sectionTitle":"Swaps, Liquidity Pools, Farming","sectionRoute":"/participate/dex/Core Concepts/core_concepts_1","type":"docs"},{"id":860,"pageTitle":"","sectionTitle":"Swaps","sectionRoute":"/participate/dex/Core Concepts/core_concepts_1#swaps","type":"docs"},{"id":861,"pageTitle":"","sectionTitle":"Liquidity Pools","sectionRoute":"/participate/dex/Core Concepts/core_concepts_1#liquidity-pools","type":"docs"},{"id":862,"pageTitle":"","sectionTitle":"Farming","sectionRoute":"/participate/dex/Core Concepts/core_concepts_1#farming","type":"docs"},{"id":875,"pageTitle":"","sectionTitle":"Financials: Fees, APR, Understanding Returns","sectionRoute":"/participate/dex/Core Concepts/core_concepts_2","type":"docs"},{"id":876,"pageTitle":"","sectionTitle":"Fees","sectionRoute":"/participate/dex/Core Concepts/core_concepts_2#fees","type":"docs"},{"id":877,"pageTitle":"","sectionTitle":"APR and Understanding Returns","sectionRoute":"/participate/dex/Core Concepts/core_concepts_2#apr-and-understanding-returns","type":"docs"},{"id":868,"pageTitle":"","sectionTitle":"Security, Research & Math","sectionRoute":"/participate/dex/Core Concepts/core_concepts_3","type":"docs"},{"id":869,"pageTitle":"","sectionTitle":"Research & Math","sectionRoute":"/participate/dex/Core Concepts/core_concepts_3#research--math","type":"docs"},{"id":870,"pageTitle":"","sectionTitle":"The Mathematics of AMM and Constant Product Formula","sectionRoute":"/participate/dex/Core Concepts/core_concepts_3#the-mathematics-of-amm-and-constant-product-formula","type":"docs"},{"id":871,"pageTitle":"","sectionTitle":"aeSwap - Tutorial","sectionRoute":"/participate/dex/Guide_Usage/","type":"docs"},{"id":872,"pageTitle":"","sectionTitle":"Welcome Screen","sectionRoute":"/participate/dex/Guide_Usage/#welcome-screen","type":"docs"},{"id":873,"pageTitle":"","sectionTitle":"Application Menu","sectionRoute":"/participate/dex/Guide_Usage/#application-menu","type":"docs"},{"id":874,"pageTitle":"","sectionTitle":"Feature Access","sectionRoute":"/participate/dex/Guide_Usage/#feature-access","type":"docs"},{"id":878,"pageTitle":"","sectionTitle":"Farming","sectionRoute":"/participate/dex/Guide_Usage/farming","type":"docs"},{"id":879,"pageTitle":"","sectionTitle":"Detailed Breakdown","sectionRoute":"/participate/dex/Guide_Usage/farming#detailed-breakdown","type":"docs"},{"id":880,"pageTitle":"","sectionTitle":"Deposits & Rewards","sectionRoute":"/participate/dex/Guide_Usage/farming#deposits--rewards","type":"docs"},{"id":881,"pageTitle":"","sectionTitle":"Level-Based System","sectionRoute":"/participate/dex/Guide_Usage/farming#level-based-system","type":"docs"},{"id":882,"pageTitle":"","sectionTitle":"Locking Periods","sectionRoute":"/participate/dex/Guide_Usage/farming#locking-periods","type":"docs"},{"id":883,"pageTitle":"","sectionTitle":"Flexibility to Level Up","sectionRoute":"/participate/dex/Guide_Usage/farming#flexibility-to-level-up","type":"docs"},{"id":884,"pageTitle":"","sectionTitle":"Unlocking Rewards","sectionRoute":"/participate/dex/Guide_Usage/farming#unlocking-rewards","type":"docs"},{"id":885,"pageTitle":"","sectionTitle":"Dashboard","sectionRoute":"/participate/dex/Guide_Usage/farming#dashboard","type":"docs"},{"id":886,"pageTitle":"","sectionTitle":"Liquidity pool section","sectionRoute":"/participate/dex/Guide_Usage/farming#liquidity-pool-section","type":"docs"},{"id":887,"pageTitle":"","sectionTitle":"Farm pool section","sectionRoute":"/participate/dex/Guide_Usage/farming#farm-pool-section","type":"docs"},{"id":888,"pageTitle":"","sectionTitle":"Balances summary section","sectionRoute":"/participate/dex/Guide_Usage/farming#balances-summary-section","type":"docs"},{"id":889,"pageTitle":"","sectionTitle":"Farmed Tokens Summary section","sectionRoute":"/participate/dex/Guide_Usage/farming#farmed-tokens-summary-section","type":"docs"},{"id":890,"pageTitle":"","sectionTitle":"Deposits table","sectionRoute":"/participate/dex/Guide_Usage/farming#deposits-table","type":"docs"},{"id":891,"pageTitle":"","sectionTitle":"Interacting with Farms: Available Actions","sectionRoute":"/participate/dex/Guide_Usage/farming#interacting-with-farms-available-actions","type":"docs"},{"id":896,"pageTitle":"Liquidity Pool","sectionTitle":"Liquidity Pool","sectionRoute":"/participate/dex/Guide_Usage/liquidity_pool","type":"docs"},{"id":897,"pageTitle":"Liquidity Pool","sectionTitle":"Create a pool and add liquidity","sectionRoute":"/participate/dex/Guide_Usage/liquidity_pool#create-a-pool-and-add-liquidity","type":"docs"},{"id":898,"pageTitle":"Liquidity Pool","sectionTitle":"Step 1: Creating a Liquidity Pool: Essential Information","sectionRoute":"/participate/dex/Guide_Usage/liquidity_pool#step-1-creating-a-liquidity-pool-essential-information","type":"docs"},{"id":899,"pageTitle":"Liquidity Pool","sectionTitle":"Step 2: Finalizing Pool Creation: Confirmation and Validation Steps","sectionRoute":"/participate/dex/Guide_Usage/liquidity_pool#step-2-finalizing-pool-creation-confirmation-and-validation-steps","type":"docs"},{"id":900,"pageTitle":"Liquidity Pool","sectionTitle":"Navigating Pool Information","sectionRoute":"/participate/dex/Guide_Usage/liquidity_pool#navigating-pool-information","type":"docs"},{"id":901,"pageTitle":"Liquidity Pool","sectionTitle":"Front View: Essential Pool Details","sectionRoute":"/participate/dex/Guide_Usage/liquidity_pool#front-view-essential-pool-details","type":"docs"},{"id":902,"pageTitle":"Liquidity Pool","sectionTitle":"Back View: Exploring Pool Details","sectionRoute":"/participate/dex/Guide_Usage/liquidity_pool#back-view-exploring-pool-details","type":"docs"},{"id":903,"pageTitle":"Liquidity Pool","sectionTitle":"Interacting with Pools: Available Actions","sectionRoute":"/participate/dex/Guide_Usage/liquidity_pool#interacting-with-pools-available-actions","type":"docs"},{"id":904,"pageTitle":"Liquidity Pool","sectionTitle":"Fees","sectionRoute":"/participate/dex/Guide_Usage/liquidity_pool#fees","type":"docs"},{"id":905,"pageTitle":"Liquidity Pool","sectionTitle":"Specificity of the aeETH / UCO pair","sectionRoute":"/participate/dex/Guide_Usage/liquidity_pool#specificity-of-the-aeeth--uco-pair","type":"docs"},{"id":906,"pageTitle":"Liquidity Pool","sectionTitle":"Add Liquidity","sectionRoute":"/participate/dex/Guide_Usage/liquidity_pool#add-liquidity","type":"docs"},{"id":907,"pageTitle":"Liquidity Pool","sectionTitle":"Step 1: Adding Liquidity: Essential Information","sectionRoute":"/participate/dex/Guide_Usage/liquidity_pool#step-1-adding-liquidity-essential-information","type":"docs"},{"id":908,"pageTitle":"Liquidity Pool","sectionTitle":"Step 2: Finalizing Liquidity Addition: Confirmation and Validation Steps","sectionRoute":"/participate/dex/Guide_Usage/liquidity_pool#step-2-finalizing-liquidity-addition-confirmation-and-validation-steps","type":"docs"},{"id":909,"pageTitle":"Liquidity Pool","sectionTitle":"Remove Liquidity","sectionRoute":"/participate/dex/Guide_Usage/liquidity_pool#remove-liquidity","type":"docs"},{"id":910,"pageTitle":"Liquidity Pool","sectionTitle":"Step 1: Removing Liquidity: Essential Information","sectionRoute":"/participate/dex/Guide_Usage/liquidity_pool#step-1-removing-liquidity-essential-information","type":"docs"},{"id":911,"pageTitle":"Liquidity Pool","sectionTitle":"Step 2: Finalizing Liquidity Removal: Confirmation and Validation Steps","sectionRoute":"/participate/dex/Guide_Usage/liquidity_pool#step-2-finalizing-liquidity-removal-confirmation-and-validation-steps","type":"docs"},{"id":892,"pageTitle":"Swap","sectionTitle":"Swap","sectionRoute":"/participate/dex/Guide_Usage/swap","type":"docs"},{"id":893,"pageTitle":"Swap","sectionTitle":"Swapping Your Tokens","sectionRoute":"/participate/dex/Guide_Usage/swap#swapping-your-tokens","type":"docs"},{"id":894,"pageTitle":"Swap","sectionTitle":"Step 1: Swap - Essential Information","sectionRoute":"/participate/dex/Guide_Usage/swap#step-1-swap---essential-information","type":"docs"},{"id":895,"pageTitle":"Swap","sectionTitle":"Step 2: Finalizing swap: Confirmation and Validation Steps","sectionRoute":"/participate/dex/Guide_Usage/swap#step-2-finalizing-swap-confirmation-and-validation-steps","type":"docs"},{"id":924,"pageTitle":"","sectionTitle":"Ecosystem Participants","sectionRoute":"/participate/dex/Overview/ecosystem_participants","type":"docs"},{"id":925,"pageTitle":"","sectionTitle":"Liquidity Providers (LPs)","sectionRoute":"/participate/dex/Overview/ecosystem_participants#liquidity-providers-lps","type":"docs"},{"id":926,"pageTitle":"","sectionTitle":"Traders","sectionRoute":"/participate/dex/Overview/ecosystem_participants#traders","type":"docs"},{"id":927,"pageTitle":"","sectionTitle":"Developers","sectionRoute":"/participate/dex/Overview/ecosystem_participants#developers","type":"docs"},{"id":912,"pageTitle":"","sectionTitle":"Glossary","sectionRoute":"/participate/dex/Overview/glossary","type":"docs"},{"id":913,"pageTitle":"","sectionTitle":"aeSwap","sectionRoute":"/participate/dex/Overview/glossary#aeswap","type":"docs"},{"id":914,"pageTitle":"","sectionTitle":"Automated Market Maker (AMM)","sectionRoute":"/participate/dex/Overview/glossary#automated-market-maker-amm","type":"docs"},{"id":915,"pageTitle":"","sectionTitle":"Liquidity Addition","sectionRoute":"/participate/dex/Overview/glossary#liquidity-addition","type":"docs"},{"id":916,"pageTitle":"","sectionTitle":"Liquidity Provider (LP)","sectionRoute":"/participate/dex/Overview/glossary#liquidity-provider-lp","type":"docs"},{"id":917,"pageTitle":"","sectionTitle":"Liquidity Removal","sectionRoute":"/participate/dex/Overview/glossary#liquidity-removal","type":"docs"},{"id":918,"pageTitle":"","sectionTitle":"Pool","sectionRoute":"/participate/dex/Overview/glossary#pool","type":"docs"},{"id":919,"pageTitle":"","sectionTitle":"Price Impact","sectionRoute":"/participate/dex/Overview/glossary#price-impact","type":"docs"},{"id":920,"pageTitle":"","sectionTitle":"Slippage","sectionRoute":"/participate/dex/Overview/glossary#slippage","type":"docs"},{"id":921,"pageTitle":"","sectionTitle":"Swap","sectionRoute":"/participate/dex/Overview/glossary#swap","type":"docs"},{"id":922,"pageTitle":"","sectionTitle":"Total Value Locked (TVL)","sectionRoute":"/participate/dex/Overview/glossary#total-value-locked-tvl","type":"docs"},{"id":923,"pageTitle":"","sectionTitle":"Yield Farming","sectionRoute":"/participate/dex/Overview/glossary#yield-farming","type":"docs"},{"id":928,"pageTitle":"Protocol Overview","sectionTitle":"Protocol Overview","sectionRoute":"/participate/dex/Overview/protocol_overview","type":"docs"},{"id":929,"pageTitle":"Protocol Overview","sectionTitle":"Introduction","sectionRoute":"/participate/dex/Overview/protocol_overview#introduction","type":"docs"},{"id":930,"pageTitle":"Protocol Overview","sectionTitle":"The AMM Model","sectionRoute":"/participate/dex/Overview/protocol_overview#the-amm-model","type":"docs"},{"id":931,"pageTitle":"Protocol Overview","sectionTitle":"Participating in aeSwap","sectionRoute":"/participate/dex/Overview/protocol_overview#participating-in-aeswap","type":"docs"},{"id":932,"pageTitle":"Protocol Overview","sectionTitle":"Ensuring Fair and Secure Trading","sectionRoute":"/participate/dex/Overview/protocol_overview#ensuring-fair-and-secure-trading","type":"docs"},{"id":933,"pageTitle":"Protocol Overview","sectionTitle":"Rewards and Yield Farming","sectionRoute":"/participate/dex/Overview/protocol_overview#rewards-and-yield-farming","type":"docs"},{"id":934,"pageTitle":"Protocol Overview","sectionTitle":"The Mathematics of AMM and Constant Product Formula","sectionRoute":"/participate/dex/Overview/protocol_overview#the-mathematics-of-amm-and-constant-product-formula","type":"docs"},{"id":935,"pageTitle":"Protocol Overview","sectionTitle":"Example Calculation","sectionRoute":"/participate/dex/Overview/protocol_overview#example-calculation","type":"docs"},{"id":936,"pageTitle":"Protocol Overview","sectionTitle":"Price Impact and Slippage","sectionRoute":"/participate/dex/Overview/protocol_overview#price-impact-and-slippage","type":"docs"},{"id":937,"pageTitle":"Protocol Overview","sectionTitle":"Conclusion and Further Exploration","sectionRoute":"/participate/dex/Overview/protocol_overview#conclusion-and-further-exploration","type":"docs"},{"id":999,"pageTitle":"Smart Contracts","sectionTitle":"Smart Contracts","sectionRoute":"/participate/dex/Overview/smart_contracts/","type":"docs"},{"id":938,"pageTitle":"Farm Lock Smart Contract","sectionTitle":"Farm Lock Smart Contract","sectionRoute":"/participate/dex/Overview/smart_contracts/farm-lock","type":"docs"},{"id":939,"pageTitle":"Farm Lock Smart Contract","sectionTitle":"Rewards","sectionRoute":"/participate/dex/Overview/smart_contracts/farm-lock#rewards","type":"docs"},{"id":940,"pageTitle":"Farm Lock Smart Contract","sectionTitle":"Weights","sectionRoute":"/participate/dex/Overview/smart_contracts/farm-lock#weights","type":"docs"},{"id":941,"pageTitle":"Farm Lock Smart Contract","sectionTitle":"Rewards are calculated every hours","sectionRoute":"/participate/dex/Overview/smart_contracts/farm-lock#rewards-are-calculated-every-hours","type":"docs"},{"id":942,"pageTitle":"Farm Lock Smart Contract","sectionTitle":"State","sectionRoute":"/participate/dex/Overview/smart_contracts/farm-lock#state","type":"docs"},{"id":943,"pageTitle":"Farm Lock Smart Contract","sectionTitle":"Calculations","sectionRoute":"/participate/dex/Overview/smart_contracts/farm-lock#calculations","type":"docs"},{"id":944,"pageTitle":"Farm Lock Smart Contract","sectionTitle":"An example","sectionRoute":"/participate/dex/Overview/smart_contracts/farm-lock#an-example","type":"docs"},{"id":945,"pageTitle":"Farm Lock Smart Contract","sectionTitle":"Giveaways","sectionRoute":"/participate/dex/Overview/smart_contracts/farm-lock#giveaways","type":"docs"},{"id":946,"pageTitle":"Archethic Wallet (aeWallet)","sectionTitle":"Archethic Wallet (aeWallet)","sectionRoute":"/participate/wallet/","type":"docs"},{"id":947,"pageTitle":"Archethic Wallet (aeWallet)","sectionTitle":"Features","sectionRoute":"/participate/wallet/#features","type":"docs"},{"id":948,"pageTitle":"Archethic Wallet (aeWallet)","sectionTitle":"How to download the app","sectionRoute":"/participate/wallet/#how-to-download-the-app","type":"docs"},{"id":949,"pageTitle":"Archethic Wallet (aeWallet)","sectionTitle":"Framework","sectionRoute":"/participate/wallet/#framework","type":"docs"},{"id":950,"pageTitle":"Archethic Wallet (aeWallet)","sectionTitle":"Seed","sectionRoute":"/participate/wallet/#seed","type":"docs"},{"id":951,"pageTitle":"Archethic Wallet (aeWallet)","sectionTitle":"Securing the application","sectionRoute":"/participate/wallet/#securing-the-application","type":"docs"},{"id":952,"pageTitle":"Archethic Wallet (aeWallet)","sectionTitle":"Data store","sectionRoute":"/participate/wallet/#data-store","type":"docs"},{"id":953,"pageTitle":"Archethic Wallet (aeWallet)","sectionTitle":"Interactions with the Archethic blockchain","sectionRoute":"/participate/wallet/#interactions-with-the-archethic-blockchain","type":"docs"},{"id":954,"pageTitle":"Archethic Wallet (aeWallet)","sectionTitle":"Setup","sectionRoute":"/participate/wallet/#setup","type":"docs"},{"id":955,"pageTitle":"Archethic Wallet (aeWallet)","sectionTitle":"Pre-requisites","sectionRoute":"/participate/wallet/#pre-requisites","type":"docs"},{"id":956,"pageTitle":"Archethic Wallet (aeWallet)","sectionTitle":"Instructions","sectionRoute":"/participate/wallet/#instructions","type":"docs"},{"id":957,"pageTitle":"Communication with DApps","sectionTitle":"Communication with DApps","sectionRoute":"/participate/wallet/dapps-communication","type":"docs"},{"id":958,"pageTitle":"Communication with DApps","sectionTitle":"Point of view on usage","sectionRoute":"/participate/wallet/dapps-communication","type":"docs"},{"id":959,"pageTitle":"Communication with DApps","sectionTitle":"Technical point of view","sectionRoute":"/participate/wallet/dapps-communication","type":"docs"},{"id":960,"pageTitle":"Communication with DApps","sectionTitle":"Available commands","sectionRoute":"/participate/wallet/dapps-communication","type":"docs"},{"id":961,"pageTitle":"Communication with DApps","sectionTitle":"RPC Methods","sectionRoute":"/participate/wallet/dapps-communication","type":"docs"},{"id":962,"pageTitle":"Communication with DApps","sectionTitle":"get_endpoint","sectionRoute":"/participate/wallet/dapps-communication#get_endpoint","type":"docs"},{"id":963,"pageTitle":"Communication with DApps","sectionTitle":"Request","sectionRoute":"/participate/wallet/dapps-communication#request","type":"docs"},{"id":964,"pageTitle":"Communication with DApps","sectionTitle":"Success Response","sectionRoute":"/participate/wallet/dapps-communication#success-response","type":"docs"},{"id":965,"pageTitle":"Communication with DApps","sectionTitle":"refresh_current_account","sectionRoute":"/participate/wallet/dapps-communication#refresh_current_account","type":"docs"},{"id":966,"pageTitle":"Communication with DApps","sectionTitle":"Request","sectionRoute":"/participate/wallet/dapps-communication#request-1","type":"docs"},{"id":967,"pageTitle":"Communication with DApps","sectionTitle":"Success Response","sectionRoute":"/participate/wallet/dapps-communication#success-response-1","type":"docs"},{"id":968,"pageTitle":"Communication with DApps","sectionTitle":"get_accounts","sectionRoute":"/participate/wallet/dapps-communication#get_accounts","type":"docs"},{"id":969,"pageTitle":"Communication with DApps","sectionTitle":"Request","sectionRoute":"/participate/wallet/dapps-communication#request-2","type":"docs"},{"id":970,"pageTitle":"Communication with DApps","sectionTitle":"Success Response","sectionRoute":"/participate/wallet/dapps-communication#success-response-2","type":"docs"},{"id":971,"pageTitle":"Communication with DApps","sectionTitle":"send_transaction","sectionRoute":"/participate/wallet/dapps-communication#send_transaction","type":"docs"},{"id":972,"pageTitle":"Communication with DApps","sectionTitle":"Request","sectionRoute":"/participate/wallet/dapps-communication#request-3","type":"docs"},{"id":973,"pageTitle":"Communication with DApps","sectionTitle":"Success Response","sectionRoute":"/participate/wallet/dapps-communication#success-response-3","type":"docs"},{"id":974,"pageTitle":"Communication with DApps","sectionTitle":"add_service","sectionRoute":"/participate/wallet/dapps-communication#add_service","type":"docs"},{"id":975,"pageTitle":"Communication with DApps","sectionTitle":"Request","sectionRoute":"/participate/wallet/dapps-communication#request-4","type":"docs"},{"id":976,"pageTitle":"Communication with DApps","sectionTitle":"Success Response","sectionRoute":"/participate/wallet/dapps-communication#success-response-4","type":"docs"},{"id":977,"pageTitle":"Communication with DApps","sectionTitle":"remove_service","sectionRoute":"/participate/wallet/dapps-communication#remove_service","type":"docs"},{"id":978,"pageTitle":"Communication with DApps","sectionTitle":"Request","sectionRoute":"/participate/wallet/dapps-communication#request-5","type":"docs"},{"id":979,"pageTitle":"Communication with DApps","sectionTitle":"Success Response","sectionRoute":"/participate/wallet/dapps-communication#success-response-5","type":"docs"},{"id":980,"pageTitle":"Communication with DApps","sectionTitle":"get_services_from_keychain","sectionRoute":"/participate/wallet/dapps-communication#get_services_from_keychain","type":"docs"},{"id":981,"pageTitle":"Communication with DApps","sectionTitle":"Request","sectionRoute":"/participate/wallet/dapps-communication#request-6","type":"docs"},{"id":982,"pageTitle":"Communication with DApps","sectionTitle":"Success Response","sectionRoute":"/participate/wallet/dapps-communication#success-response-6","type":"docs"},{"id":983,"pageTitle":"Communication with DApps","sectionTitle":"keychain_derive_keypair","sectionRoute":"/participate/wallet/dapps-communication#keychain_derive_keypair","type":"docs"},{"id":984,"pageTitle":"Communication with DApps","sectionTitle":"Request","sectionRoute":"/participate/wallet/dapps-communication#request-7","type":"docs"},{"id":985,"pageTitle":"Communication with DApps","sectionTitle":"Success Response","sectionRoute":"/participate/wallet/dapps-communication#success-response-7","type":"docs"},{"id":986,"pageTitle":"Communication with DApps","sectionTitle":"keychain_derive_address","sectionRoute":"/participate/wallet/dapps-communication#keychain_derive_address","type":"docs"},{"id":987,"pageTitle":"Communication with DApps","sectionTitle":"Request","sectionRoute":"/participate/wallet/dapps-communication#request-8","type":"docs"},{"id":988,"pageTitle":"Communication with DApps","sectionTitle":"Success Response","sectionRoute":"/participate/wallet/dapps-communication#success-response-8","type":"docs"},{"id":989,"pageTitle":"Communication with DApps","sectionTitle":"get_current_account","sectionRoute":"/participate/wallet/dapps-communication#get_current_account","type":"docs"},{"id":990,"pageTitle":"Communication with DApps","sectionTitle":"Request","sectionRoute":"/participate/wallet/dapps-communication#request-9","type":"docs"},{"id":991,"pageTitle":"Communication with DApps","sectionTitle":"Success Response","sectionRoute":"/participate/wallet/dapps-communication#success-response-9","type":"docs"},{"id":992,"pageTitle":"Communication with DApps","sectionTitle":"sign_transactions","sectionRoute":"/participate/wallet/dapps-communication#sign_transactions","type":"docs"},{"id":993,"pageTitle":"Communication with DApps","sectionTitle":"Request","sectionRoute":"/participate/wallet/dapps-communication#request-10","type":"docs"},{"id":994,"pageTitle":"Communication with DApps","sectionTitle":"Success Response","sectionRoute":"/participate/wallet/dapps-communication#success-response-10","type":"docs"},{"id":995,"pageTitle":"Communication with DApps","sectionTitle":"sign_payloads","sectionRoute":"/participate/wallet/dapps-communication#sign_payloads","type":"docs"},{"id":996,"pageTitle":"Communication with DApps","sectionTitle":"Request","sectionRoute":"/participate/wallet/dapps-communication#request-11","type":"docs"},{"id":997,"pageTitle":"Communication with DApps","sectionTitle":"Success Response","sectionRoute":"/participate/wallet/dapps-communication#success-response-11","type":"docs"},{"id":998,"pageTitle":"Communication with DApps","sectionTitle":"In conclusion","sectionRoute":"/participate/wallet/dapps-communication","type":"docs"},{"id":1000,"pageTitle":"Schema Documentation","sectionTitle":"Schema Documentation","sectionRoute":"/schema","type":"docs"}],"index":{"version":"2.3.9","fields":["title","content"],"fieldVectors":[["title/7",[0,3.689]],["content/7",[0,4.743,1,6.337,2,7.603,3,4.542,4,7.603,5,4.388,6,4.515,7,5.063,8,1.734,9,7.603,10,7.603]],["title/8",[5,4.328]],["content/8",[0,4.31,6,5.204,7,5.836,8,1.364,11,9.51,12,4.883,13,5.836,14,3.798]],["title/2",[15,6.764]],["content/2",[1,6.337,2,7.603,3,4.542,4,7.603,5,4.388,6,4.515,7,5.063,8,1.734,9,7.603,10,7.603,15,8.697]],["title/3",[5,4.328]],["content/3",[6,5.204,7,5.836,8,1.364,12,4.883,13,5.836,14,3.798,15,7.904,16,9.51]],["title/4",[17,6.764]],["content/4",[8,1.622,17,7.772,18,1.413,19,6.089,20,5.739,21,6.192,22,9.352,23,9.352]],["title/5",[24,3.154]],["content/5",[18,1.487,25,9.844,26,6.898,27,9.844,28,3.142,29,8.181]],["title/6",[30,3.788]],["content/6",[31,7.42,32,3.808]],["title/19",[33,6.764]],["content/19",[8,1.544,21,5.715,24,3.345,33,8.948,34,3.219,35,4.224,36,5.037,37,4.432,38,9.364,39,10.767]],["title/20",[24,3.154]],["content/20",[35,5.707,40,9.844,41,9.844,42,9.844,43,9.844]],["title/21",[30,3.788]],["content/21",[44,7.271,45,4.895]],["title/9",[46,6.304]],["content/9",[8,1.373,34,2.682,46,7.413,47,4.757,48,3.269,49,3.293,50,3.724,51,5.265,52,3.159,53,6.134,54,4.762,55,2.195,56,7.192,57,4.103,58,5.722]],["title/10",[3,3.532]],["content/10",[8,1.639,14,4.563,57,5.425,58,5.686,59,9.51,60,9.51]],["title/11",[30,3.788]],["content/11",[32,3.808,61,5.975]],["title/12",[62,4.077]],["content/12",[0,3.632,8,1.474,34,2.989,55,2.446,62,6.193,63,4.186,64,4.132,65,3.385,66,6.207,67,3.782]],["title/13",[3,3.532]],["content/13",[8,1.622,14,3.735,32,3.363,66,7.243,67,4.413,68,9.352,69,3.117,70,8.617]],["title/14",[71,2.539]],["content/14",[45,4.895,62,5.304]],["title/15",[30,3.788]],["content/15",[18,1.599,32,3.808]],["title/16",[72,5.703]],["content/16",[8,1.533,34,2.648,55,2.167,67,4.479,72,4.976,73,5.193,74,2.824,75,3.965,76,4.623,77,4.877,78,3.776,79,7.101,80,7.887,81,7.101,82,3.502,83,6.651,84,4.551,85,4.623,86,5.901,87,5.207,88,2.96]],["title/17",[3,3.532]],["content/17",[8,1.786,14,4.869,32,2.522,67,4.441,69,2.337,80,5.827,82,3.458,83,4.914,85,4.566,87,5.142,89,7.012,90,7.012,91,7.012,92,7.012,93,7.012,94,7.012,95,7.012]],["title/18",[71,2.539]],["content/18",[45,4.895,72,7.42]],["title/22",[96,5.829]],["content/22",[0,2.136,8,1.458,18,1.071,34,1.758,55,2.893,64,1.718,65,3.309,67,4.022,78,2.506,82,4.203,88,2.956,96,5.077,97,2.688,98,4.343,99,2.193,100,4.383,101,3.524,102,5.176,103,2.24,104,2.554,105,4.293,106,3.237,107,2.932,108,1.854,109,4.09,110,4.099,111,2.605,112,1.528,113,2.579,114,1.571,115,1.322,116,4.343,117,3.65,118,3.547,119,1.766]],["title/23",[3,3.532]],["content/23",[8,1.801,14,5.014,67,4.919,82,3.333,102,3.441,104,2.473,119,2.532,120,6.759,121,6.759,122,6.759,123,6.759,124,6.759,125,6.759,126,6.759,127,6.759]],["title/24",[30,3.788]],["content/24",[32,3.808,128,7.764]],["title/25",[129,6.304]],["content/25",[0,3.178,8,1.35,34,2.615,48,3.215,49,2.595,55,2.14,57,4,58,4.192,129,7.289,130,4.643,131,4.047,132,7.531,133,5.855,134,2.722,135,5.454,136,5.431,137,7.012]],["title/26",[3,3.532]],["content/26",[8,1.639,14,4.563,57,5.425,58,5.686,138,9.51,139,9.51]],["title/27",[30,3.788]],["content/27",[18,1.599,32,3.808]],["title/40",[112,2.638]],["content/40",[0,2.332,8,1.086,12,2.642,18,1.143,34,1.919,47,2.557,48,1.758,49,1.419,51,2.518,55,1.57,61,5.586,63,4.689,69,2.523,101,3.761,104,1.386,112,2.91,114,2.523,115,2.122,119,2.836,140,5.146,141,3.003,142,3.155,143,3.586,144,5.011,145,4.069,146,4.117,147,4.475,148,2.904,149,4.475,150,2.045,151,3.202,152,5.04,153,4.741,154,2.788,155,5.146]],["title/41",[3,3.532]],["content/41",[8,1.762,14,4.297,32,3.869,61,4.058,63,3.757,69,3.586,104,1.937,119,2.695,145,3.26,152,3.662,156,7.192,157,7.192,158,7.192,159,7.192,160,7.192,161,7.192]],["title/42",[30,3.788]],["content/42",[18,1.599,32,3.808]],["title/28",[162,4.866]],["content/28",[8,1.559,28,2.798,34,3.269,55,2.675,67,4.137,119,3.285,136,6.79,162,7.065,163,6.278,164,6.428]],["title/29",[3,3.532]],["content/29",[8,1.639,14,4.563,67,4.488,119,3.563,165,9.51,166,9.51]],["title/30",[71,2.539]],["content/30",[45,4.895,167,9.208]],["title/31",[168,6.125]],["content/31",[8,1.575,19,5.799,55,2.718,67,4.203,112,2.887,119,3.337,143,3.557,168,6.702,169,4.392,170,7.401,171,5.137]],["title/32",[3,3.532]],["content/32",[8,1.707,14,4.753,67,4.203,119,3.337,170,7.401,172,8.906,173,8.906,174,8.906]],["title/33",[30,3.788]],["content/33",[31,7.42,32,3.808]],["title/34",[63,4.251]],["content/34",[8,1.559,34,3.269,55,2.675,63,6.172,64,3.195,65,2.618,175,4.62,176,3.696,177,7.015,178,7.015]],["title/35",[3,3.532]],["content/35",[8,1.639,32,4.108,177,7.61,178,7.61,179,9.51,180,9.51]],["title/36",[30,3.788]],["content/36",[32,3.808,112,3.432]],["title/37",[128,5.968]],["content/37",[0,3.101,8,1.328,18,1.585,34,2.551,55,2.088,63,3.573,67,3.228,96,6.628,101,3.4,128,6.787,142,2.852,175,3.605,176,2.884,181,4.794,182,5.931,183,5.534,184,4.143,185,4.724,186,6.965,187,6.356]],["title/38",[3,3.532]],["content/38",[8,1.715,14,3.201,32,4.077,67,3.782,69,3.779,96,5.74,186,6.031,187,5.504,188,8.015,189,8.015,190,8.015,191,8.015]],["title/39",[30,3.788]],["content/39",[32,3.808,192,7.271]],["title/43",[134,2.354]],["content/43",[7,5.542,8,1.296,28,2.106,34,2.461,47,3.28,55,2.014,58,6.156,67,3.114,82,4.454,104,1.778,119,3.858,134,2.978,163,4.726,164,4.839,193,6.6,194,2.508,195,6.6,196,4.05,197,6.6,198,6.6,199,6.081,200,6.6,201,6.081,202,6.6,203,6.6]],["title/44",[3,3.532]],["content/44",[7,4.84,8,1.824,14,5.078,58,5.545,67,2.57,82,3.89,104,1.467,119,3.475,196,3.342,204,5.446,205,5.446,206,5.446,207,5.446,208,5.446,209,5.446,210,5.446,211,5.446,212,5.446,213,5.446,214,5.446,215,5.446,216,5.446]],["title/45",[71,2.539]],["content/45",[45,4.895,134,3.062]],["title/46",[217,5.703]],["content/46",[8,1.575,34,3.321,55,2.718,82,5.413,112,2.887,217,7.692,218,4.693,219,3.888,220,7.126]],["title/47",[3,3.532]],["content/47",[8,1.639,14,3.798,32,3.42,82,4.69,220,7.61,221,9.51,222,8.763]],["title/48",[71,2.539]],["content/48",[8,1.437,45,4.632,217,7.022,223,8.715,224,6.634]],["title/49",[220,6.513]],["content/49",[8,1.656,55,2.952,64,3.526,220,7.741,225,6.779,226,7.741]],["title/50",[3,3.532]],["content/50",[8,1.463,32,3.669,226,8.164,227,10.203]],["title/51",[30,3.788]],["content/51",[32,3.808,217,7.42]],["title/52",[61,4.593]],["content/52",[8,1.487,34,3.032,46,6.297,47,4.041,48,2.777,49,2.242,51,5.587,53,5.211,55,2.481,57,4.638,61,5.851,228,4.247,229,4.073,230,8.131]],["title/53",[3,3.532]],["content/53",[8,1.622,14,3.735,32,3.363,46,7.243,57,5.335,69,3.117,231,9.352,232,9.352]],["title/54",[30,3.788]],["content/54",[8,1.437,32,4.238,65,2.992,112,3.248]],["title/55",[152,4.144]],["content/55",[8,1.53,34,3.17,55,2.594,57,4.849,103,4.04,104,2.29,114,2.833,115,2.384,119,3.185,152,5.429,233,3.564,234,7.065,235,7.065]],["title/56",[3,3.532]],["content/56",[8,1.707,14,4.753,57,5.08,119,3.337,235,7.401,236,8.906,237,8.906,238,8.906]],["title/57",[30,3.788]],["content/57",[32,3.808,112,3.432]],["title/58",[239,6.125]],["content/58",[0,3.218,8,1.361,34,2.648,47,3.529,48,3.651,49,2.947,50,3.677,51,3.475,53,4.551,55,2.167,58,4.245,112,2.302,114,2.367,115,1.991,134,2.054,239,7.142,240,3.776,241,2.554,242,3.399,243,4.551,244,5.901,245,7.101]],["title/59",[3,3.532]],["content/59",[8,1.463,14,4.075,58,6.1,246,10.203]],["title/60",[71,2.539]],["content/60",[45,4.895,239,7.967]],["title/64",[65,2.43]],["content/64",[0,2.083,8,0.998,34,1.714,47,2.285,48,1.57,49,1.267,51,2.25,55,2.857,61,5.283,65,3.583,67,3.283,69,2.319,74,1.368,104,1.874,105,4.213,119,3.508,149,3.998,150,1.827,151,2.86,247,3.56,248,5.223,249,4.048,250,6.718,251,5.766,252,6.156,253,2.083,254,5.745,255,5.558,256,2.652,257,3.098,258,5.783]],["title/65",[3,3.532]],["content/65",[8,1.804,14,4.958,32,2.169,61,3.403,67,4.004,69,2.828,104,1.625,119,3.991,258,7.052,259,6.031,260,6.031,261,6.031,262,6.031,263,6.031,264,6.031,265,6.031,266,6.031,267,6.031,268,6.031]],["title/66",[71,2.539]],["content/66",[45,4.895,65,3.161]],["title/61",[66,6.304]],["content/61",[0,3.302,8,1.385,34,2.717,55,2.223,62,3.65,63,3.805,65,3.68,66,7.477,67,4.556,100,5.005,104,2.917,105,5.846,118,5.482]],["title/62",[3,3.532]],["content/62",[8,1.707,14,4.753,67,5.18,104,2.399,269,8.906,270,8.906,271,8.906]],["title/63",[30,3.788]],["content/63",[32,3.808,62,5.304]],["title/67",[177,6.513]],["content/67",[8,1.575,34,3.321,55,2.718,63,4.652,64,3.246,142,4.576,176,3.754,177,8.784,272,6.898]],["title/68",[3,3.532]],["content/68",[8,1.437,32,3.603,69,3.34,272,7.761,273,10.02]],["title/69",[30,3.788]],["content/69",[32,3.808,63,5.53]],["title/70",[272,6.304]],["content/70",[8,1.53,34,3.17,55,2.594,67,5.032,100,3.93,101,4.225,104,2.873,117,6.584,118,6.397,142,3.544,272,8.259]],["title/71",[3,3.532]],["content/71",[8,1.743,14,4.854,67,4.985,104,2.846,274,8.374,275,8.374,276,8.374,277,8.374]],["title/72",[30,3.788]],["content/72",[32,3.808,177,8.472]],["title/73",[18,1.229]],["content/73",[8,1.416,18,1.491,28,1.946,34,2.274,55,2.609,57,4.877,58,3.645,62,4.283,67,4.035,84,3.907,85,3.97,86,5.067,87,4.471,88,2.542,97,3.478,104,2.66,112,2.772,119,2.284,129,6.622,192,5.872,278,4.588,279,1.364,280,6.097,281,3.907,282,5.618,283,6.097,284,5.618,285,5.618]],["title/74",[3,3.532]],["content/74",[8,1.823,14,4.808,32,3.737,57,4.204,58,2.967,62,2.486,67,3.478,69,2.456,85,3.232,87,3.639,104,1.985,112,1.609,119,1.86,129,3.844,192,3.409,281,3.181,286,3.972,287,4.963,288,4.963,289,4.963,290,4.963,291,4.963,292,4.963,293,4.963,294,4.963,295,4.963,296,4.963,297,4.963,298,4.963,299,4.963,300,4.963]],["title/75",[71,2.539]],["content/75",[8,1.762,18,1.626,44,5.928,45,5.844,301,7.173,302,6.907]],["title/76",[303,6.304]],["content/76",[8,1.385,18,1.1,34,2.717,55,2.223,67,4.556,104,2.601,131,2.597,303,7.477,304,7.079,305,5.643,306,3.24,307,4.744,308,3.462,309,3.679,310,3.709,311,3.02,312,4.744,313,2.895,314,4.027,315,6.055,316,6.055]],["title/77",[3,3.532]],["content/77",[8,1.707,14,4.753,67,5.18,104,2.399,317,8.906,318,8.906,319,8.906]],["title/78",[71,2.539]],["content/78",[224,7.01,320,8.799]],["title/79",[31,5.703]],["content/79",[8,1.515,17,6.959,19,6.878,20,5.138,31,7.403,34,3.123,55,2.555,104,2.846,119,3.137,168,6.301,321,5.751,322,6.959]],["title/80",[3,3.532]],["content/80",[3,3.335,8,1.688,14,3.993,17,6.387,21,5.088,32,2.764,104,2.07,119,2.879,168,5.783,321,5.278,322,8.309,323,7.081,324,7.685,325,7.685,326,7.685,327,7.685,328,5.952]],["title/81",[71,2.539]],["content/81",[31,7.42,224,7.01]],["title/91",[281,5.216]],["content/91",[0,2.444,7,3.309,8,1.124,18,1.183,34,2.011,55,3.089,65,3.349,67,3.696,78,2.868,82,4.549,97,5.262,99,2.51,100,4.68,101,3.893,104,2.727,105,4.743,106,3.704,107,3.356,108,2.121,117,4.177,118,4.058,119,2.021,281,5.02,329,4.97,330,7.144,331,2.895,332,1.957]],["title/92",[3,3.532]],["content/92",[7,4.357,8,1.792,14,4.99,67,4.479,82,3.502,104,2.557,119,2.66,333,7.101,334,7.101,335,7.101,336,7.101,337,7.101,338,7.101,339,7.101]],["title/93",[71,2.539]],["content/93",[45,4.895,281,6.785]],["title/94",[30,3.788]],["content/94",[18,1.599,32,3.808]],["title/82",[186,6.125]],["content/82",[0,2.794,8,1.236,18,0.931,34,2.299,55,3.282,63,3.22,65,3.501,67,4.066,100,4.591,101,4.282,104,2.897,105,5.217,106,4.233,107,3.835,117,4.774,118,4.638,119,2.309,142,2.57,152,3.138,181,4.319,186,6.483,340,6.164]],["title/83",[3,3.532]],["content/83",[8,1.766,14,4.916,67,4.804,104,2.742,119,2.96,341,7.902,342,7.902,343,7.902,344,7.902,345,7.902]],["title/84",[30,3.788]],["content/84",[32,3.808,128,7.764]],["title/88",[83,5.703]],["content/88",[8,1.422,18,1.497,34,2.827,55,3.024,67,3.577,75,4.233,82,4.887,83,5.312,104,2.974,119,2.84,185,3.414,346,5.705,347,5.429,348,6.593,349,7.581,350,7.581,351,5.872]],["title/89",[3,3.532]],["content/89",[8,1.774,14,4.941,67,3.483,69,2.46,82,3.64,104,2.623,119,2.766,351,5.717,352,7.382,353,7.382,354,7.382,355,7.382,356,7.382,357,7.382]],["title/90",[30,3.788]],["content/90",[32,3.808,72,7.42]],["title/95",[226,6.513]],["content/95",[8,1.622,55,2.854,196,6.94,225,6.553,226,7.483,358,8.617,359,8.617]],["title/96",[3,3.532]],["content/96",[8,1.639,14,4.563,196,7.011,360,9.51,361,9.51]],["title/97",[30,3.788]],["content/97",[32,3.808,220,8.472]],["title/85",[178,6.513]],["content/85",[8,1.575,34,3.321,55,2.718,63,4.652,64,3.246,142,4.576,176,3.754,178,8.784,362,6.898]],["title/86",[3,3.532]],["content/86",[8,1.437,32,3.603,69,3.34,362,7.761,363,10.02]],["title/87",[30,3.788]],["content/87",[32,3.808,63,5.53]],["title/98",[362,6.304]],["content/98",[8,1.59,34,3.375,55,2.762,67,4.27,100,4.183,101,4.498,104,2.438,142,3.773,362,8.586]],["title/99",[3,3.532]],["content/99",[8,1.639,14,4.563,67,4.488,104,2.562,364,9.51,365,9.51]],["title/100",[30,3.788]],["content/100",[32,3.808,178,8.472]],["title/101",[187,5.59]],["content/101",[0,2.311,8,1.414,18,1.136,34,1.901,55,3.008,64,1.858,65,3.395,67,3.548,78,2.711,82,4.404,99,2.373,100,4.556,101,3.736,102,5.351,104,2.655,105,4.552,106,3.502,107,3.172,108,2.005,109,2.941,110,4.434,114,1.699,115,1.43,117,3.949,118,3.837,119,1.91,182,3.268,183,3.048,184,3.088,187,5.163]],["title/102",[3,3.532]],["content/102",[8,1.792,14,4.99,67,4.479,82,3.502,102,3.615,104,2.557,119,2.66,366,7.101,367,7.101,368,7.101,369,7.101,370,7.101,371,7.101,372,7.101]],["title/103",[71,2.539]],["content/103",[45,4.895,373,8.2]],["title/104",[30,3.788]],["content/104",[32,3.808,128,7.764]],["title/108",[192,5.59]],["content/108",[0,2.492,8,1.139,18,1.409,34,2.051,48,1.878,49,1.516,55,1.678,57,3.137,58,3.288,63,2.872,67,2.595,82,3.917,88,3.312,111,4.39,116,5.067,128,5.825,131,2.832,132,4.4,135,5.244,151,5.803,175,4.186,176,3.349,192,5.456,374,5.825,375,2.924,376,3.706,377,3.103,378,4.436,379,2.651,380,2.777,381,5.499,382,4.57,383,5.499]],["title/109",[3,3.532]],["content/109",[8,1.781,14,4.832,32,2.69,57,4.267,58,4.472,67,3.53,82,3.689,128,5.485,382,6.216,384,7.48,385,7.48,386,7.48,387,7.48,388,7.48,389,7.48]],["title/110",[30,3.788]],["content/110",[18,1.599,32,3.808]],["title/111",[88,3.393]],["content/111",[8,1.515,18,1.596,34,3.123,55,2.555,88,4.824,111,5.838,119,4.336,143,4.219]],["title/112",[3,3.532]],["content/112",[8,1.707,14,4.753,119,4.459,390,8.906,391,8.906,392,8.906]],["title/113",[71,2.539]],["content/113",[45,4.895,88,4.414]],["title/105",[62,4.077]],["content/105",[8,1.238,18,1.304,28,2.755,45,3.99,62,5.878,74,2.568,104,3.161,393,4.979,394,5.715,395,5.297]],["title/106",[5,4.328]],["content/106",[8,1.412,12,5.054,13,6.041,14,3.932,104,2.652,396,9.844]],["title/107",[55,2.484]],["content/107",[0,3.973,32,3.153,34,3.269,62,6.362,63,4.579,64,3.962,65,3.246]],["title/114",[72,5.703]],["content/114",[8,1.219,24,4.132,28,2.713,45,3.93,72,7.473,73,4.651,74,2.529,75,4.747,82,5.259,108,3.344,397,3.878,398,4.563]],["title/115",[5,4.328]],["content/115",[8,1.463,14,4.075,82,5.031,399,10.203]],["title/116",[55,2.484]],["content/116",[32,3.254,34,3.375,72,6.342,73,6.066,74,3.298,75,5.053,76,5.892,77,6.215,78,4.813]],["title/120",[373,6.304]],["content/120",[8,1.15,28,2.558,45,3.705,74,3.056,84,5.136,85,5.218,86,6.661,104,3.221,182,5.136,183,4.792,187,5.504,248,4.987,351,6.207,373,6.207,400,4.047]],["title/121",[5,4.328]],["content/121",[8,1.683,12,4.432,13,5.297,14,4.687,85,5.62,104,2.325,351,6.685,401,8.632,402,8.632,403,8.632]],["title/122",[55,2.484]],["content/122",[0,2.676,8,1.199,18,1.263,32,2.123,34,2.202,55,2.551,64,2.152,65,3.55,78,3.14,82,2.912,99,2.748,100,4.485,101,4.154,102,4.94,104,2.252,105,5.062,106,4.055,107,3.674,108,2.322,109,3.406,110,5.135,114,1.968,115,1.656,182,3.784,183,3.53,184,3.575,187,5.74]],["title/117",[404,6.304]],["content/117",[8,1.298,18,1.367,28,2.889,45,4.183,104,3.365,248,5.631,393,5.22,404,7.009]],["title/118",[5,4.328]],["content/118",[8,1.412,12,5.054,13,6.041,14,3.932,104,2.652,405,9.844]],["title/119",[55,2.484]],["content/119",[14,3.856,26,7.587,34,2.717,55,2.223,104,3.32,119,2.73,406,3.621,407,5.003,408,4.251,409,3.709,410,5.83,411,4.068,412,5.105,413,4.533,414,4.824,415,3.539,416,4.027,417,5.643]],["title/123",[301,6.764]],["content/123",[8,1.298,18,1.675,28,2.889,45,4.183,104,3.229,301,7.521,393,5.22,398,4.857]],["title/124",[5,4.328]],["content/124",[8,1.412,12,5.054,13,6.041,14,3.932,104,2.652,418,9.844]],["title/125",[55,2.484]],["content/125",[18,1.85,28,3.036,32,3.42,34,3.547,278,7.156,279,2.128]],["title/126",[167,7.079]],["content/126",[69,3.17,134,2.751,162,6.83,163,6.811,167,8.271,419,8.763,420,9.51]],["title/127",[55,2.484]],["content/127",[28,3.088,32,3.479,34,3.608,136,7.493,162,7.375]],["title/128",[302,6.513]],["content/128",[8,1.277,18,1.658,28,2.843,45,4.117,55,3.35,69,2.968,85,5.799,302,7.126,421,5.707,422,7.401]],["title/129",[5,4.328]],["content/129",[8,1.606,12,4.722,13,5.644,14,4.472,85,5.989,422,7.644,423,9.198,424,9.198]],["title/130",[55,2.484]],["content/130",[18,1.85,28,3.036,32,3.42,34,3.547,278,7.156,279,2.128]],["title/131",[134,2.354]],["content/131",[28,3.142,69,3.281,134,3.594,425,9.071]],["title/132",[55,2.484]],["content/132",[28,3.142,32,3.54,34,3.671,134,3.594]],["title/150",[217,5.703]],["content/150",[8,1.257,24,4.212,28,2.798,45,4.053,82,5.361,108,3.448,217,7.618,218,4.62,397,3.999,398,4.705]],["title/151",[5,4.328]],["content/151",[8,1.463,14,4.075,82,5.031,222,9.401]],["title/152",[55,2.484]],["content/152",[32,3.54,34,3.671,112,3.191,217,8.173,218,5.188]],["title/133",[239,6.125]],["content/133",[28,3.036,45,4.396,48,3.249,49,2.622,239,8.597,242,4.552,243,6.095]],["title/134",[55,2.484]],["content/134",[0,3.39,32,2.69,34,2.789,47,3.717,48,3.747,49,3.024,50,3.873,51,3.661,53,4.794,112,2.425,114,2.493,115,2.097,134,2.163,239,7.392,240,3.978,241,2.69,242,3.58,243,4.794,244,6.216]],["title/135",[65,2.43]],["content/135",[8,1.319,28,2.936,45,4.252,65,3.343,104,3.016,112,2.982,393,5.306,426,7.124]],["title/136",[5,4.328]],["content/136",[8,1.412,12,5.054,13,6.041,14,3.932,104,2.652,427,9.844]],["title/137",[55,2.484]],["content/137",[0,2.542,32,2.017,34,2.092,47,2.788,48,1.916,49,1.546,51,2.745,55,2.459,61,4.547,65,3.744,69,2.686,74,1.669,104,1.511,105,3.396,149,4.878,150,2.229,151,3.49,247,4.344,248,5.014,249,3.885,250,6.448,251,5.534,252,5.909,253,2.542,254,5.787,255,5.335,256,3.236,257,3.78]],["title/138",[18,1.229]],["content/138",[8,1.341,18,1.837,28,2.985,45,4.323,104,3.047,393,5.394]],["title/139",[5,4.328]],["content/139",[8,1.412,12,5.054,13,6.041,14,3.932,104,2.652,286,7.877]],["title/140",[55,2.484]],["content/140",[18,1.85,28,3.036,32,3.42,34,3.547,278,7.156,279,2.128]],["title/141",[44,5.59]],["content/141",[8,1.219,18,1.611,28,2.713,33,7.065,35,4.16,44,5.838,45,3.93,74,2.529,82,4.192,104,3.139,393,4.904,428,8.501]],["title/142",[5,4.328]],["content/142",[8,1.725,12,4.174,13,4.989,14,4.559,21,5.383,33,6.757,82,4.01,104,2.793,429,8.131,430,8.131,431,8.131,432,8.131]],["title/143",[55,2.484]],["content/143",[18,1.85,28,3.036,32,3.42,34,3.547,278,7.156,279,2.128]],["title/144",[281,5.216]],["content/144",[8,1.219,18,1.284,28,2.713,45,3.93,69,2.833,84,5.448,85,5.535,86,7.065,87,6.233,97,4.849,104,3.139,281,6.834]],["title/145",[5,4.328]],["content/145",[8,1.683,12,4.432,13,5.297,14,4.687,85,5.62,87,6.329,104,2.325,433,8.632,434,8.632,435,8.632]],["title/146",[55,2.484]],["content/146",[0,2.857,18,1.322,32,2.266,34,2.35,55,2.67,65,3.525,78,3.352,82,3.108,97,5.733,99,2.933,100,4.646,101,4.349,104,2.357,105,5.299,106,4.328,107,3.921,108,2.479,281,5.607,329,5.808,330,6.777,331,3.383,332,2.287]],["title/147",[18,1.229]],["content/147",[8,1.298,18,1.81,28,2.889,45,4.183,85,5.892,306,4.024,393,5.22,421,5.8,436,4.857]],["title/148",[5,4.328]],["content/148",[8,1.463,14,4.075,85,6.643,437,10.203]],["title/149",[55,2.484]],["content/149",[18,1.85,28,3.036,32,3.42,34,3.547,278,7.156,279,2.128]],["title/153",[88,3.393]],["content/153",[18,1.461,69,3.224,88,5.143,111,5.347,143,3.864]],["title/154",[55,2.484]],["content/154",[18,1.437,32,3.42,34,3.547,88,5.105,111,5.256,143,3.798]],["title/175",[104,2.193]],["content/175",[14,3.856,26,7.587,34,2.717,55,2.223,104,3.32,119,2.73,406,3.621,407,5.003,408,4.251,409,3.709,410,5.83,411,4.068,412,5.105,413,4.533,414,4.824,415,3.539,416,4.027,417,5.643]],["title/176",[71,2.539]],["content/176",[45,4.895,404,8.2]],["title/177",[30,3.788]],["content/177",[8,1.879,18,1.051,31,4.876,32,4.47,44,3.157,45,5.232,62,2.303,65,2.078,66,3.56,83,3.221,96,3.292,112,1.49,134,1.33,186,3.459,187,3.157,224,4.607,272,3.56,281,4.459,301,3.82,303,3.56,320,3.82,362,3.56,373,3.56,404,3.56]],["title/155",[7,4.994]],["content/155",[6,5.204,7,7.011,14,4.563,34,3.547,55,2.902,438,6.192]],["title/156",[30,3.788]],["content/156",[0,4.102,1,6.713,8,1.719,15,7.521,32,3.987,134,2.617,281,5.8]],["title/157",[145,3.689]],["content/157",[14,4.219,18,1.265,34,3.123,55,2.555,144,5.544,145,5.508,439,4.945,440,4.676,441,6.701,442,7.716,443,5.006,444,5.997]],["title/158",[30,3.788]],["content/158",[32,3.808,112,3.432]],["title/159",[170,6.764]],["content/159",[13,5.553,14,3.614,19,5.892,55,2.762,69,3.016,71,2.824,78,4.813,119,3.391,170,7.521,253,4.102,445,4.57]],["title/160",[30,3.788]],["content/160",[32,3.808,168,7.967]],["title/161",[196,4.994]],["content/161",[14,4.3,24,3.345,34,3.219,55,2.634,196,6.607,446,4.549,447,6.907,448,6.907,449,7.954,450,4.633,451,8.632,452,8.632]],["title/162",[30,3.788]],["content/162",[8,1.437,32,4.238,134,2.898,226,8.018]],["title/163",[379,3.924]],["content/163",[14,3.579,26,7.172,28,2.082,34,2.432,55,1.99,119,2.444,257,4.396,279,1.459,332,2.367,379,5.893,407,4.479,408,3.806,409,3.321,410,5.219,411,3.642,412,4.571,413,4.058,414,4.319,415,4.352,416,3.605,417,5.052,450,3.501,453,4.18,454,1.442,455,3.501]],["title/164",[30,3.788]],["content/164",[8,1.437,32,4.238,83,7.022,192,6.881]],["title/167",[57,4.643]],["content/167",[14,4.61,34,3.608,55,2.952,57,6.584,144,6.405]],["title/168",[30,3.788]],["content/168",[8,1.789,18,1.246,32,4.584,46,6.39,61,4.656,129,6.39,152,4.201,192,5.666]],["title/165",[67,3.841]],["content/165",[12,4.115,14,4.103,24,3.981,34,3.831,55,2.446,67,5.351,446,4.224,449,7.385,456,8.015,457,8.015,458,4.262,459,10.274,460,2.639]],["title/166",[30,3.788]],["content/166",[8,1.87,18,0.815,32,4.712,62,2.702,65,1.61,66,4.177,72,3.779,83,3.779,96,3.862,128,3.954,134,1.56,162,3.224,168,4.058,186,4.058,187,3.704,192,3.704,272,4.177,281,3.456,303,4.177,362,4.177]],["title/169",[87,5.968]],["content/169",[12,5.692,14,4.428,34,3.375,55,2.762,87,6.636,253,4.102,461,11.086,462,6.215]],["title/170",[30,3.788]],["content/170",[45,4.895,281,6.785]],["title/178",[80,6.764]],["content/178",[14,4.15,80,8.636,225,7.282]],["title/179",[30,3.788]],["content/179",[32,3.808,72,7.42]],["title/171",[85,5.299]],["content/171",[14,4.517,34,3.487,55,2.854,85,6.089,253,4.238,462,6.422,463,7.364]],["title/172",[30,3.788]],["content/172",[8,1.719,18,1.367,45,5.774,281,5.8,302,7.242,373,7.009]],["title/173",[58,4.866]],["content/173",[14,3.823,26,7.539,34,2.682,48,3.269,49,2.639,55,2.195,58,6.432,104,1.937,119,2.695,407,4.939,408,4.197,409,3.662,410,5.755,411,4.016,412,5.04,413,4.475,414,4.762,415,3.493,416,3.975,417,5.57]],["title/174",[30,3.788]],["content/174",[8,1.789,18,1.246,32,4.584,46,6.39,129,6.39,134,2.386,192,5.666,239,6.209]],["title/180",[235,6.764]],["content/180",[14,3.735,34,3.487,103,4.444,152,4.761,233,3.92,234,9.399,235,7.772,249,4.509]],["title/181",[30,3.788]],["content/181",[32,3.808,152,5.391]],["title/182",[351,6.304]],["content/182",[14,4.15,225,7.282,351,8.048]],["title/183",[30,3.788]],["content/183",[8,1.437,32,3.603,45,4.632,83,7.022,373,7.761]],["title/184",[102,4.144]],["content/184",[14,3.864,34,3.608,102,6.281,114,3.224,115,2.713]],["title/185",[30,3.788]],["content/185",[8,1.437,32,4.238,96,7.176,187,6.881]],["title/186",[119,3.049]],["content/186",[14,3.958,34,4.117,55,3.024,112,2.458,119,4.137,146,6.066,443,4.532,454,1.676,464,7.581,465,7.581,466,4.591,467,5.705,468,6.3,469,5.109,470,3.828,471,6.3,472,6.3]],["title/187",[30,3.788]],["content/187",[8,1.859,18,0.921,31,4.272,32,4.693,65,1.82,83,4.272,88,2.542,96,4.366,112,1.976,134,1.763,152,3.104,162,3.645,168,4.588,186,4.588,187,4.187,281,3.907]],["title/188",[82,4.014]],["content/188",[14,4.517,34,3.487,55,2.854,82,5.996,473,8.133,474,5.591]],["title/189",[30,3.788]],["content/189",[8,1.846,32,4.514,44,4.641,45,4.819,72,6.433,83,4.736,96,4.84,134,1.955,187,4.641,192,4.641,217,6.433,281,4.331]],["title/190",[258,6.764]],["content/190",[14,3.932,34,3.671,254,6.041,258,9.692,426,7.624]],["title/191",[30,3.788]],["content/191",[32,3.808,65,3.161]],["title/192",[422,6.764]],["content/192",[14,4.563,18,1.437,34,3.547,55,3.486,422,9.495]],["title/193",[30,3.788]],["content/193",[45,4.895,302,8.472]],["title/196",[382,6.764]],["content/196",[14,3.579,26,7.172,28,2.082,34,2.432,55,1.99,119,2.444,257,4.396,279,1.459,332,2.367,379,5.753,382,5.421,407,4.479,408,3.806,409,3.321,410,5.219,411,3.642,412,4.571,413,4.058,414,4.319,415,4.352,416,3.605,417,5.052,450,3.501,453,4.18,454,1.442,455,3.501]],["title/197",[30,3.788]],["content/197",[32,3.808,192,7.271]],["title/194",[223,7.079]],["content/194",[112,3.083,217,6.664,218,5.012,223,8.271,306,4.229,475,7.366,476,6.409,477,3.375]],["title/195",[55,2.484]],["content/195",[32,3.54,34,3.671,112,3.191,217,8.173,218,5.188]],["title/198",[320,6.764]],["content/198",[8,1.277,18,1.345,104,2.957,134,2.576,303,6.898,306,3.96,320,7.401,475,6.898,476,6.002,478,7.126,479,5.707]],["title/199",[5,4.328]],["content/199",[8,1.412,12,5.054,13,6.041,14,3.932,104,2.652,480,9.844]],["title/200",[55,2.484]],["content/200",[18,1.228,32,2.924,34,3.032,131,2.898,303,8.03,304,7.603,305,6.297,306,3.616,307,5.294,308,3.864,309,4.106,310,4.14,311,3.371,312,5.294,313,3.231,314,4.494]],["title/201",[31,5.703]],["content/201",[8,1.341,18,1.413,19,6.089,31,7.925,104,3.047,475,7.243,476,6.302]],["title/202",[5,4.328]],["content/202",[8,1.412,12,5.054,13,6.041,14,3.932,104,2.652,323,9.071]],["title/203",[55,2.484]],["content/203",[19,6.524,31,8.258,32,3.603,34,3.737]],["title/204",[481,6.304]],["content/204",[0,1.984,18,0.661,35,2.142,49,0.712,52,1.923,55,1.336,63,3.918,64,0.942,101,2.175,112,1.419,134,1.266,154,1.4,242,1.237,279,0.578,306,1.149,313,2.263,332,0.938,397,1.179,446,1.362,454,0.968,458,1.374,478,2.068,482,3.018,483,4.518,484,3.502,485,2.08,486,1.274,487,1.944,488,1.387,489,2.247,490,1.775,491,3.21,492,2.442,493,1.115,494,1.895,495,1.327,496,2.068,497,2.95,498,4.008,499,1.428,500,1.474,501,1.811,502,1.811,503,4.034,504,4.064,505,1.06,506,3.503,507,1.414,508,1.895,509,1.895,510,1.284,511,2.381,512,1.944,513,2.419,514,1.491,515,1.608,516,1.565,517,1.142,518,2.584,519,2.554,520,1.545,521,1.211,522,2.147,523,1.631,524,1.065,525,2.381,526,1.149,527,1.775,528,2.001,529,1.211,530,3.807,531,2.858,532,1.851,533,1.944,534,2.584,535,3.331,536,3.294,537,1.741,538,0.982,539,1.428,540,3.77,541,2.001,542,2.247,543,1.851,544,4.377,545,1.219,546,1.458,547,2.584,548,3.39,549,2.85,550,2.247,551,1.443,552,1.711,553,2.147,554,2.381,555,2.381,556,1.656,557,1.228,558,1.944,559,1.327,560,2.584]],["title/205",[561,8.139]],["content/205",[12,2.796,48,1.86,63,5.311,64,1.985,99,2.534,279,2.075,308,2.588,328,4.218,332,1.976,484,1.837,492,2.336,504,4.274,508,6.801,513,4.36,524,2.245,535,3.92,540,3.605,550,8.067,551,4.405,553,4.526,562,2.923,563,3.141,564,4.218,565,3.256,566,3.67,567,3.437,568,4.36,569,4.218,570,4.098,571,5.446,572,3.993,573,3.216,574,2.377,575,5.018,576,4.736,577,5.018,578,4.098,579,3.216]],["title/206",[580,7.079]],["content/206",[8,0.781,48,1.86,63,5.311,88,2.27,279,1.218,313,2.164,332,1.976,395,4.84,484,1.837,501,3.816,502,3.816,504,4.274,508,3.993,510,2.706,511,7.269,512,5.936,521,2.552,529,2.552,530,4.736,535,2.706,540,3.605,550,4.736,553,4.526,557,2.588,569,4.218,574,2.377,581,2.421,582,2.588,583,5.784,584,3.9,585,3.437,586,3.01,587,2.336,588,2.75,589,2.923,590,4.098,591,5.446,592,2.796,593,5.446,594,5.055,595,3.67,596,4.736,597,5.446]],["title/207",[594,4.138,598,5.168]],["content/207",[454,1.851,514,4.83,537,5.643,543,5.997,565,5.006,594,5.366,599,7.283,600,6.482,601,8.374,602,9.734,603,6.301,604,5.366,605,5.138,606,7.716]],["title/208",[510,4.045]],["content/208",[8,1.792,454,2.001,606,8.339,607,6.215,608,9.05,609,9.05,610,9.05,611,9.05]],["title/209",[612,7.5]],["content/209",[18,1.13,48,2.555,49,2.062,64,2.726,104,2.015,108,2.942,135,3.84,142,3.118,176,3.153,377,4.221,458,3.978,484,2.524,524,3.084,612,6.892,613,5.793,614,4.952,615,4.794,616,6.505,617,5.137,618,5.242,619,4.365,620,4.59,621,3.035,622,5.793]],["title/210",[63,2.796,531,2.282,623,3.2]],["content/210",[279,2.164,530,8.414,540,6.405,543,6.928,573,5.713,624,5.193,625,9.675]],["title/211",[88,3.393]],["content/211",[8,1.458,13,2.279,20,3.618,63,3.08,67,1.753,71,1.159,88,3.481,97,2.119,112,1.204,135,1.907,143,1.483,183,2.22,332,1.347,462,2.551,504,2.012,507,2.032,526,2.622,531,1.584,538,1.411,581,1.651,604,2.38,617,2.551,621,1.507,626,2.012,627,3.714,628,3.714,629,4.437,630,4.901,631,4.437,632,6.095,633,3.086,634,4.901,635,3.086,636,3.086,637,5.434,638,4.567,639,2.22,640,5.128,641,1.831,642,4.223,643,2.602,644,3.23,645,3.714,646,1.672,647,3.714,648,7.57,649,5.434,650,2.723,651,2.279,652,2.311,653,2.418,654,5.897,655,2.744,656,5.897,657,1.483,658,3.422,659,1.641,660,3.714,661,2.032,662,3.714,663,3.714,664,2.763,665,3.839,666,2.392,667,3.422,668,3.714]],["title/212",[48,1.561,49,1.26,377,2.579,504,2.476]],["content/212",[8,1.152,13,2.848,24,0.765,48,2.173,49,2.516,55,2.307,58,3.339,63,2.424,64,0.72,65,0.589,67,0.932,71,1.448,103,1.649,104,0.532,113,1.08,135,1.781,175,1.04,176,0.832,229,2.325,306,0.878,332,0.716,377,3.151,397,0.901,409,1.005,411,1.102,413,1.228,439,2.049,454,0.437,455,1.06,474,1.18,498,2.775,504,3.026,507,1.08,520,2.074,524,0.814,538,2.664,573,1.166,581,1.543,585,1.246,586,1.091,587,0.847,617,1.356,626,1.07,629,1.486,630,4.641,631,1.486,632,1.641,633,1.641,634,1.641,635,1.641,636,1.641,642,1.414,643,1.383,655,2.16,657,2.231,659,1.533,669,1.974,670,1.974,671,3.835,672,2.998,673,1.974,674,1.974,675,1.974,676,1.974,677,1.974,678,1.974,679,1.717,680,1.974,681,1.717,682,5.585,683,1.246,684,1.604,685,7.402,686,3.298,687,3.018,688,1.979,689,1.717,690,1.819,691,3.914,692,1.717,693,1.974,694,4.642,695,2.19,696,1.974,697,1.974,698,0.852,699,1.974,700,4.642,701,2.884,702,1.974,703,1.974,704,1.974,705,4.037,706,1.974,707,1.58,708,1.974,709,1.974,710,4.037,711,1.819,712,1.673,713,1.974,714,1.673,715,1.383,716,1.974,717,3.47,718,1.974,719,1.285,720,0.658,721,1.383,722,3.47,723,1.641,724,1.974,725,1.717,726,1.641,727,2.884,728,1.641,729,1.383,730,1.974,731,1.448,732,1.974,733,1.486,734,1.974,735,1.265]],["title/213",[104,1.74,279,1.445]],["content/213",[0,0.83,8,0.869,13,1.124,35,0.897,36,1.069,49,0.896,50,0.949,51,0.897,53,2.082,55,0.559,58,3.165,63,0.957,67,0.865,71,1.89,104,1.805,112,1.053,113,1.003,135,3.441,176,0.772,229,0.918,251,2.231,279,1.184,306,0.815,332,1.179,379,1.566,393,1.057,413,1.14,439,1.082,447,2.599,455,4.148,484,2.608,507,1.003,526,0.815,529,0.859,538,2.012,549,1.193,581,0.815,589,0.983,617,1.258,626,0.993,629,1.379,630,6.769,631,1.379,632,5.034,633,1.523,634,2.7,635,1.523,636,1.523,641,0.904,642,1.312,648,1.523,659,0.81,661,2.394,671,1.778,679,1.594,684,2.448,686,1.918,691,0.949,698,1.401,705,2.825,707,4.237,710,1.594,711,1.688,723,1.523,727,1.523,735,1.174,736,1.832,737,1.466,738,1.523,739,1.466,740,1.832,741,1.832,742,1.688,743,1.284,744,2.584,745,1.688,746,1.688,747,2.993,748,1.688,749,1.688,750,2.993,751,2.993,752,5.582,753,2.7,754,2.993,755,1.379,756,1.688,757,1.013,758,1.688,759,1.688,760,1.419,761,4.409,762,4.032,763,1.688,764,1.688,765,2.993,766,2.993,767,1.258,768,1.594,769,4.605,770,3.066,771,1.688,772,1.688,773,0.949,774,1.688,775,1.466,776,1.688,777,1.11,778,1.594,779,1.688,780,1.688,781,1.594,782,2.993,783,2.825,784,2.326,785,1.594,786,1.688,787,1.688,788,1.523,789,1.523,790,1.193,791,1.312,792,1.594,793,1.258,794,1.688,795,1.688,796,2.988,797,2.993,798,1.688,799,1.688,800,1.688,801,1.688,802,1.594,803,1.688,804,1.688,805,2.599,806,2.993,807,2.993,808,2.993,809,1.688,810,1.832,811,1.832,812,1.832,813,1.832]],["title/214",[18,0.975,446,3.403]],["content/214",[8,1.38,18,0.49,35,0.624,36,0.744,48,0.435,49,0.351,51,0.624,53,1.5,58,2.405,67,0.601,71,1.814,100,1.5,104,1.566,112,0.413,130,1.549,135,3.631,145,0.578,152,0.649,176,0.986,196,0.782,229,1.625,251,0.875,279,0.523,306,0.567,332,0.462,379,2.265,380,0.643,393,0.735,409,0.649,411,0.711,413,2.019,440,1.307,446,0.671,447,1.872,455,3.796,460,0.42,466,0.772,484,2.118,507,0.697,524,0.525,526,0.567,529,0.597,538,1.233,549,0.83,553,1.059,557,1.112,581,0.567,617,1.607,618,0.893,621,1.316,626,0.69,629,0.959,630,7.995,631,0.959,632,3.343,633,1.059,634,1.945,635,1.059,636,1.059,638,1.812,641,0.628,642,3.364,648,3.343,649,2.156,653,3.059,659,1.434,661,1.775,667,1.174,671,0.697,679,1.108,684,1.859,698,1.01,705,2.822,707,3.218,710,1.108,712,0.614,714,1.128,723,1.059,735,0.817,737,1.02,739,1.02,742,1.174,743,0.893,744,1.916,745,1.174,746,2.156,747,2.156,748,1.174,749,1.174,750,2.156,751,2.156,752,4.874,753,1.059,754,2.156,755,0.959,756,1.174,757,0.704,758,1.174,759,1.174,761,3.582,762,2.156,763,1.174,764,1.174,765,2.156,766,2.156,767,0.875,768,1.108,769,3.498,770,2.274,771,1.174,772,1.174,773,0.66,774,1.174,775,1.872,776,1.174,777,0.772,778,1.108,779,1.174,780,1.174,781,1.108,782,2.156,783,2.035,784,2.324,785,1.108,786,1.174,787,1.174,788,1.059,789,1.059,790,0.83,791,0.913,792,1.108,793,0.875,794,1.174,795,1.174,796,1.831,797,2.156,798,1.174,799,1.174,800,1.174,801,1.174,802,1.108,803,1.174,804,1.174,805,1.872,806,2.156,807,2.156,808,2.156,809,1.174,814,1.274,815,1.274,816,0.735,817,1.108,818,1.274,819,1.274,820,2.34,821,1.059,822,1.274,823,1.059,824,1.174,825,1.274,826,1.274,827,0.684,828,1.274,829,1.02,830,1.274,831,1.274,832,1.274,833,2.34,834,1.274,835,2.34,836,1.274,837,1.274,838,1.274,839,3.245,840,2.34,841,1.274,842,1.274,843,1.274,844,1.274,845,1.274,846,1.274,847,1.274,848,1.274,849,0.793,850,1.274,851,0.987,852,1.274,853,1.274,854,4.022,855,2.34,856,1.274,857,0.893,858,0.804,859,0.844,860,1.108,861,3.245,862,1.274,863,0.913,864,0.83,865,1.274,866,1.274,867,0.762,868,1.274]],["title/215",[565,3.861,869,6.458]],["content/215",[]],["title/216",[565,3.861,638,5.002]],["content/216",[]],["title/217",[48,1.828,49,1.476,377,3.02]],["content/217",[8,1.762,48,2.457,49,1.983,377,4.058,409,3.662,455,3.86,565,4.3,629,5.412,631,5.412,638,7.413,726,5.977,737,5.755,738,5.977,796,4.058,870,6.255,871,6.255,872,9.913,873,5.274,874,6.627]],["title/218",[104,1.442,279,1.197,691,2.771]],["content/218",[8,1.726,104,1.66,279,1.379,409,3.138,455,6.293,460,2.837,565,3.685,629,4.638,631,4.638,638,6.673,661,3.373,691,3.192,707,4.932,727,5.123,737,4.932,738,5.123,739,4.932,796,3.478,805,4.932,870,5.361,871,5.361,873,4.52,875,6.164,876,6.164,877,5.361,878,5.361,879,5.68]],["title/219",[135,4.179]],["content/219",[8,1.695,48,1.975,49,2.271,135,4.228,409,2.944,455,6.164,460,2.712,520,3.457,629,4.351,631,4.351,638,4.479,661,3.164,707,4.627,721,4.052,737,4.627,738,4.806,739,4.627,805,4.627,817,5.029,870,5.029,871,5.029,873,4.24,877,5.029,878,5.029,880,8.236,881,5.783,882,4.479,883,4.627,884,4.806,885,4.351,886,5.328]],["title/234",[484,1.806,505,2.195,535,2.66]],["content/234",[18,1.332,47,4.383,50,4.566,241,2.292,279,1.426,306,2.835,313,2.533,454,1.409,470,3.219,482,2.108,484,3.411,505,4.147,529,2.987,618,4.467,666,3.578,686,3.764,743,4.467,887,4.565,888,4.191,889,2.434,890,3.559,891,4.779,892,3.966,893,4.797,894,4.378,895,3.764,896,3.677]],["title/235",[505,2.648,897,5.616]],["content/235",[18,1.409,47,3.948,48,3.186,49,2.817,50,5.289,51,2.691,69,1.833,74,1.636,104,2.14,112,1.783,141,3.209,306,2.445,406,3.948,477,3.31,484,2.68,504,4.305,505,3.258,531,3.387,684,2.542,888,3.775,898,4.347,899,4.259,900,3.189,901,5.499,902,6.153,903,4.4,904,4.032,905,3.853]],["title/236",[400,3.261,888,3.069]],["content/236",[18,1.244,28,1.846,35,2.83,47,2.874,49,2.882,50,2.994,53,6.699,104,1.558,176,2.438,308,2.748,332,2.988,400,4.159,406,2.874,484,1.951,504,5.198,505,2.371,520,3.457,531,4.09,557,2.748,671,3.164,672,3.104,888,4.968,891,3.133,896,3.336,902,4.479,906,5.029,907,3.765,908,3.706,909,5.328,910,5.029]],["title/220",[397,2.442,484,1.806,535,2.66]],["content/220",[8,0.821,18,0.865,47,2.844,48,1.955,49,2.254,50,4.233,69,2.725,74,2.432,219,2.499,257,5.51,279,1.829,306,3.636,454,1.265,470,2.89,482,1.892,483,3.857,484,3.218,485,2.72,505,2.347,524,2.36,529,3.831,618,4.011,671,4.474,672,3.072,701,4.757,887,4.099,888,4.533,911,3.931,912,3.302,913,3.163,914,5.724,915,2.611,916,3.302,917,3.422]],["title/221",[918,7.079]],["content/221",[8,1.739,48,2.918,49,3.034,50,4.423,104,1.042,279,0.865,377,4.249,454,1.889,484,1.305,504,4.081,520,3.64,618,2.71,691,2.003,725,5.296,733,4.582,796,5.568,874,3.564,877,3.364,878,3.364,879,3.564,886,3.564,919,6.939,920,7.871,921,7.429,922,5.611,923,5.611,924,5.611,925,5.611,926,5.611,927,3.564,928,3.564,929,3.868,930,6.939,931,2.441,932,3.564,933,3.868]],["title/222",[895,4.806]],["content/222",[]],["title/223",[671,3.534,916,3.725]],["content/223",[18,1.451,49,2.386,64,1.762,74,2.857,104,1.947,253,2.191,279,1.936,309,2.442,332,1.754,397,2.206,454,2.123,482,1.599,485,2.298,535,2.403,582,2.298,655,2.25,659,2.137,671,5.254,681,4.205,691,2.504,698,2.086,888,3.435,895,2.855,900,1.941,916,2.789,917,4.321,934,4.835,935,5.597,936,4.018,937,4.455,938,4.455,939,3.638,940,4.835,941,3.638,942,3.32,943,7.227,944,4.835,945,2.891,946,4.835,947,3.545,948,2.928,949,3.462,950,4.455,951,2.855]],["title/224",[49,1.781,671,3.534]],["content/224",[8,1.363,35,1.737,36,2.071,48,1.943,49,2.752,52,3.126,58,2.122,74,1.692,104,0.956,219,1.55,253,1.609,328,4.405,347,4.073,379,2.742,398,1.905,406,2.827,416,1.962,450,1.905,454,1.257,455,1.905,492,1.522,520,4.866,548,2.749,549,2.311,557,1.687,671,6.007,672,1.905,684,1.641,686,3.359,698,3.511,701,2.95,720,1.183,735,3.645,757,1.962,761,2.025,784,2.542,788,4.727,858,3.59,903,2.84,915,1.619,916,5.138,935,2.749,936,2.95,937,3.27,952,1.982,953,2.95,954,2.84,955,3.27,956,1.778,957,2.122,958,3.549,959,3.549,960,2.671,961,2.671,962,5.687,963,3.549,964,3.549,965,3.549,966,3.549,967,3.549,968,3.549,969,2.311,970,3.549]],["title/225",[50,4.214]],["content/225",[8,1.533,35,1.035,47,2.913,48,2.002,49,2.665,50,5.87,53,2.362,103,1.006,112,1.588,176,0.892,279,0.825,306,1.639,309,1.068,313,0.841,378,2.735,411,2.058,415,1.028,447,1.693,454,1.614,455,5.039,482,1.219,484,3.062,529,0.992,549,2.4,581,0.941,618,2.583,671,1.158,686,3.462,725,1.84,735,2.362,755,2.774,769,3.206,770,5.499,781,5.098,783,1.84,785,3.206,790,2.4,796,2.764,864,1.378,888,1.006,894,3.364,895,1.249,902,2.855,919,4.514,920,7.663,921,3.206,922,1.95,923,4.514,924,5.402,925,1.95,926,5.402,927,1.95,928,1.95,930,3.397,932,1.95,935,4.54,971,3.397,972,2.116,973,1.639,974,2.116,975,1.95,976,2.296,977,3.687,978,2.116,979,2.116,980,1.95,981,1.401,982,1.758,983,1.84,984,2.116,985,2.116,986,2.116,987,2.116,988,2.116,989,2.116,990,2.116,991,2.116]],["title/226",[796,4.593]],["content/226",[50,5.097,411,5.497,414,6.518,484,3.321,588,4.971,796,5.555]],["title/227",[484,2.179,796,3.644]],["content/227",[8,1.217,55,2.589,88,2.514,219,4.286,249,4.091,379,2.908,416,4.69,455,6.752,460,3.834,642,4.319,661,3.3,671,4.643,672,4.554,686,3.562,916,4.895,992,5.012,993,7.855]],["title/228",[55,1.633,686,3.161,796,3.02]],["content/228",[3,3.581,57,4.706,455,4.428,460,3.446,529,3.866,587,3.539,621,3.347,659,3.646,686,4.872,723,6.857,796,4.656,976,3.866,994,5.287,995,6.857,996,8.251,997,7.176]],["title/229",[55,1.633,379,2.581,796,3.02]],["content/229",[3,3.203,57,4.211,379,3.559,455,3.962,460,3.207,526,3.282,529,3.459,587,3.166,621,2.995,659,3.262,661,4.039,775,5.907,784,5.286,796,4.165,805,5.907,821,6.134,823,6.134,976,3.459,994,4.73,998,9.738,999,9.738,1000,6.42]],["title/230",[18,0.975,1001,4.625]],["content/230",[8,1.059,18,1.115,47,4.84,48,3.722,49,3.411,50,5.643,51,4.766,61,4.165,112,2.393,377,4.165,484,2.49,504,4,902,5.717,1002,4.975]],["title/231",[411,4.545]],["content/231",[]],["title/232",[48,1.828,49,1.476,411,2.989]],["content/232",[3,2.173,48,1.711,49,2.436,55,2.264,57,2.857,63,2.616,105,4.492,134,2.556,257,3.375,377,4.986,455,5.599,460,3.218,484,3.296,497,3.375,498,4.435,501,3.509,502,3.509,526,2.227,540,3.316,587,2.148,588,2.529,618,3.509,621,2.032,655,2.331,659,2.213,661,2.74,686,4.381,796,2.826,896,2.889,976,2.347,993,4.007,994,3.209,1003,3.672,1004,4.007,1005,6.452,1006,3.116,1007,5.008,1008,2.857,1009,3.439,1010,3.032]],["title/233",[104,1.442,411,2.989,691,2.771]],["content/233",[55,2.223,88,3.037,104,1.963,279,1.63,379,4.655,397,3.324,411,4.068,415,4.689,454,1.611,455,5.812,458,3.874,460,3.179,562,3.91,686,5.701,969,4.744,976,3.414,993,5.83,1011,6.055,1012,6.055,1013,7.286]],["title/253",[574,2.819,1014,4.625]],["content/253",[134,2.898,279,2.242,536,7.54,543,7.176,1015,5.595]],["title/254",[1016,4.276,1017,5.951]],["content/254",[8,1.219,28,2.713,134,2.459,279,1.902,454,1.879,482,2.811,533,6.397,1018,6.584,1019,6.584,1020,6.397,1021,5.366,1022,5.838,1023,5.729,1024,6.802,1025,3.853]],["title/255",[8,0.926,1019,5.002]],["content/255",[28,0.882,36,1.612,74,0.822,102,1.406,103,1.313,112,1.501,134,0.799,143,2.794,171,1.593,241,0.993,305,2.139,311,1.145,312,1.799,375,1.469,376,1.862,454,0.611,482,0.913,497,3.121,499,1.527,500,1.576,531,1.178,538,1.76,562,2.485,574,2.022,582,1.313,592,1.418,600,3.668,622,2.139,626,1.497,641,1.362,646,3.151,657,1.103,688,2.641,691,1.43,720,2.332,757,1.527,777,1.673,859,1.829,891,3.239,898,1.511,942,1.897,973,2.139,1016,1.829,1019,6.035,1020,2.079,1021,1.744,1022,1.897,1023,1.862,1026,2.079,1027,3.066,1028,2.881,1029,1.651,1030,4.027,1031,4.63,1032,3.245,1033,3.245,1034,3.245,1035,1.483,1036,4.027,1037,3.586,1038,4.07,1039,2.21,1040,2.762,1041,2.762,1042,2.139,1043,2.139,1044,2.296,1045,1.456,1046,2.545,1047,2.762,1048,1.576,1049,2.139,1050,2.762,1051,2.762,1052,1.395,1053,4.267,1054,1.612,1055,1.829,1056,2.21,1057,2.762,1058,2.545,1059,1.719,1060,3.484,1061,3.719,1062,2.545,1063,1.719,1064,2.139,1065,2.139,1066,2.545,1067,5.978,1068,2.762,1069,1.456,1070,2.402,1071,1.576,1072,2.21,1073,1.978,1074,2.545,1075,2.402,1076,1.593,1077,2.545,1078,2.402,1079,1.978,1080,2.402,1081,1.719,1082,2.402,1083,2.545,1084,2.025,1085,2.079,1086,1.829,1087,1.384]],["title/256",[8,0.926,533,4.859]],["content/256",[154,4.108,176,3.196,454,1.676,498,4.532,528,5.872,533,7.457,546,4.278,646,3.414,657,3.028,905,5.312,951,4.477,1009,5.206,1021,4.785,1048,4.325,1084,5.559,1088,7.581,1089,5.872,1090,7.581,1091,5.705,1092,5.429,1093,5.109,1094,5.312]],["title/257",[113,4.453]],["content/257",[20,5.739,143,3.735,312,6.089,409,4.761,492,4.011,620,5.739,1095,7.037,1096,6.422,1097,7.483]],["title/237",[691,4.214]],["content/237",[62,3.798,101,3.768,109,4.373,112,2.458,134,2.193,279,1.696,400,3.828,454,1.676,505,3.109,595,5.109,691,3.925,720,2.527,858,4.785,951,4.477,1023,5.109,1055,5.019,1098,4.278,1099,7.581,1100,5.019,1101,4.19,1102,6.3,1103,5.872,1104,4.936]],["title/238",[64,2.966]],["content/238",[35,3.52,45,3.325,52,3.159,62,3.603,64,3.921,69,2.397,97,4.103,104,1.937,109,6.206,182,4.609,194,2.733,307,4.683,330,5.57,477,2.552,538,2.733,655,3.347,664,3.37,720,2.397,867,4.3,1100,4.762,1101,5.29,1105,6.627]],["title/239",[63,4.251]],["content/239",[8,1.238,78,4.59,100,3.99,109,4.979,152,4.395,256,4.979,330,6.685,698,3.724,913,4.77,1106,3.189,1107,6.495,1108,7.173,1109,8.632,1110,6.685]],["title/240",[698,3.511]],["content/240",[52,4.04,109,5.306,152,5.701,400,4.645,698,3.968,720,3.066,1101,5.084,1110,8.672]],["title/241",[65,2.43]],["content/241",[35,3.432,45,3.242,52,3.08,62,3.513,65,3.172,69,2.337,97,4,104,1.889,109,6.127,182,4.494,194,2.665,307,4.566,330,5.431,477,2.489,512,5.277,538,2.665,655,3.264,664,3.286,720,2.337,867,4.192,1100,4.643,1101,5.201,1105,6.461,1111,7.012]],["title/242",[63,4.251]],["content/242",[8,1.201,65,2.5,78,4.453,100,3.871,104,2.256,109,4.83,152,4.263,256,4.83,330,6.486,698,3.613,913,4.628,1106,3.094,1107,6.301,1108,6.959,1110,6.486,1112,8.374]],["title/243",[698,3.511]],["content/243",[52,3.912,65,2.659,104,2.399,109,5.137,152,5.589,400,4.497,698,3.842,720,2.968,1101,4.922,1110,8.502]],["title/244",[595,5.485]],["content/244",[18,1.689,74,2.011,109,3.899,134,2.655,152,3.441,242,3.235,306,3.005,314,3.735,477,2.399,595,7.026,646,3.044,698,2.916,891,3.662,1048,5.237,1100,4.475,1101,5.073,1113,4.555,1114,7.629,1115,3.855,1116,3.083,1117,5.878,1118,4.401,1119,4.401]],["title/245",[1120,5.299]],["content/245",[28,2.634,37,4.236,279,1.846,307,5.372,486,4.069,521,3.866,538,3.135,562,4.428,657,3.295,720,2.75,1038,4.309,1115,4.706,1120,5.372,1121,4.872,1122,6.05,1123,4.996,1124,3.893]],["title/246",[1125,4.866]],["content/246",[18,1.457,48,1.666,49,1.345,57,2.782,73,3.98,75,4.857,131,1.738,134,2.516,144,4.816,194,1.853,229,2.443,310,2.483,314,2.695,409,2.483,476,4.902,477,1.731,492,2.092,517,2.155,529,2.285,587,3.731,589,2.618,646,3.276,659,2.155,664,2.285,712,2.351,900,2.92,913,2.695,1028,3.034,1045,2.57,1095,3.67,1106,1.802,1120,6.279,1121,4.296,1125,5.766,1126,3.67,1127,4.053,1128,4.877,1129,2.846,1130,3.67,1131,2.695,1132,4.526,1133,2.525]],["title/247",[1134,5.616,1135,4.525]],["content/247",[73,4.751,75,4.848,78,3.314,108,2.451,134,1.803,331,3.345,332,2.261,380,3.147,486,4.282,495,3.2,587,2.673,657,2.489,714,3.005,720,2.077,956,3.122,1048,4.953,1106,3.208,1120,4.058,1125,5.191,1129,5.066,1134,9.398,1135,4.367,1136,3.994,1137,4.2,1138,5.191,1139,5.402,1140,5.743]],["title/248",[18,0.975,595,4.352]],["content/248",[18,0.997,75,3.685,76,4.297,104,1.778,131,2.352,134,1.909,135,3.388,169,3.254,176,2.782,304,4.839,310,3.36,311,2.736,314,3.647,406,4.489,517,2.916,582,3.136,588,3.333,595,6.087,951,3.897,1008,3.765,1103,5.111,1104,5.881,1120,4.297,1129,3.851,1141,5.111,1142,4.966,1143,3.945,1144,3.851,1145,6.6,1146,6.6,1147,4.966]],["title/249",[1066,7.5]],["content/249",[486,4.69,646,4.283,655,4.426,1048,5.425,1053,8.763,1122,6.973,1148,8.271,1149,7.61]],["title/250",[194,2.034,1045,2.821,1150,4.283]],["content/250",[73,5.033,134,2.66,176,3.878,409,4.683,1106,3.399,1113,6.199,1125,5.499,1151,7.644,1152,5.084,1153,8.476]],["title/251",[1154,8.139]],["content/251",[18,1.272,52,4.657,73,3.265,74,1.775,134,2.436,176,2.516,194,3.2,310,3.038,331,3.203,380,3.013,436,3.203,444,4.273,454,1.319,506,4.775,516,3.613,581,2.653,588,3.013,644,5.19,657,2.383,1045,3.145,1125,5.035,1129,3.482,1139,3.713,1150,7.809,1155,3.767,1156,4.375,1157,3.298,1158,5.19,1159,4.959,1160,5.967,1161,5.967,1162,4.775,1163,5.498,1164,5.967]],["title/252",[76,5.299]],["content/252",[18,1.009,75,5.084,76,6.746,112,2.165,113,3.654,134,1.931,194,3.46,331,5.561,332,2.423,454,1.476,516,4.044,714,3.22,1045,3.519,1048,3.809,1120,4.348,1129,3.897,1150,5.344,1157,3.691,1165,4.715,1166,5.55,1167,5.808,1168,6.678,1169,5.344,1170,4.348,1171,4.782,1172,6.678]],["title/258",[1118,5.299]],["content/258",[28,2.86,78,3.469,102,3.321,104,1.757,134,2.96,163,4.671,164,4.783,176,2.75,241,2.346,279,1.459,331,3.501,398,3.501,563,3.763,592,3.349,655,3.036,672,3.501,684,3.015,714,3.145,1091,4.908,1118,7.769,1173,4.671,1174,4.396,1175,4.783,1176,5.421,1177,3.349,1178,4.571,1179,6.01]],["title/259",[28,2.061,1180,6.458]],["content/259",[18,1.422,28,3.004,51,3.432,64,2.556,65,2.094,74,2.8,106,4.816,134,2.722,240,3.729,243,4.494,248,4.363,307,4.566,484,2.366,592,4.832,655,3.264,684,4.35,744,4.141,900,3.778,1035,3.764,1113,4.726,1174,4.726,1181,7.012]],["title/260",[134,1.548,684,2.474,1118,3.485]],["content/260",[18,1.474,47,4.185,134,3.356,241,2.146,242,2.856,243,3.824,454,1.319,477,2.118,483,4.021,557,2.836,558,4.49,563,3.442,589,3.203,592,4.324,672,3.203,684,2.758,714,2.877,816,3.442,900,2.396,1045,3.145,1118,3.885,1165,3.09,1170,5.483,1171,6.031,1174,4.021,1182,5.19,1183,5.967,1184,3.173,1185,3.713,1186,5.967,1187,5.19,1188,4.49]],["title/261",[108,2.105,714,2.581,1118,3.485]],["content/261",[18,1.497,74,2.255,131,2.702,134,2.193,241,2.726,331,4.069,492,3.251,557,3.603,641,3.739,956,3.798,1091,5.705,1118,6.453,1170,4.936,1171,5.429,1189,5.559,1190,3.925,1191,7.581,1192,6.3,1193,3.505,1194,7.581,1195,5.559]],["title/262",[895,4.806]],["content/262",[134,2.898,895,5.917,915,4.571,1028,6.234,1196,7.761]],["title/263",[134,1.868,1196,5.002]],["content/263",[18,0.985,48,2.228,49,1.798,134,2.96,169,3.217,306,2.9,454,1.442,497,4.396,498,3.9,510,3.242,513,3.605,582,3.1,624,3.501,643,4.571,655,3.036,698,2.814,895,3.852,912,3.763,915,2.976,952,5.715,969,4.247,1010,3.95,1015,3.642,1028,4.058,1196,7.927,1197,4.671,1198,3.377,1199,6.01,1200,6.523]],["title/264",[51,2.236,134,1.322,240,2.43,1196,3.539]],["content/264",[18,0.963,51,4.948,131,2.272,134,2.551,169,3.143,240,4.69,242,3.051,243,5.652,306,2.835,415,3.096,454,1.409,497,4.296,529,2.987,582,3.029,623,3.811,720,2.939,761,3.636,952,4.924,1008,3.636,1015,3.559,1029,3.811,1143,3.811,1144,3.72,1196,7.831,1197,4.565,1198,3.301,1201,4.22,1202,4.797]],["title/265",[952,3.606,1009,4.435]],["content/265",[141,5.116,509,6.428,573,5.177,624,4.705,626,4.75,952,4.895,1009,6.021,1203,7.015,1204,5.309,1205,9.455,1206,8.767,1207,8.767]],["title/266",[957,3.861,1123,3.91]],["content/266",[112,2.715,505,3.434,655,3.897,957,6.919,1028,5.21,1123,6.397,1208,6.14,1209,6.994,1210,7.716,1211,6.14,1212,7.716,1213,5.643]],["title/267",[1214,5.616,1215,5.951]],["content/267",[0,1.672,8,1.193,48,3.463,49,3.063,55,1.79,58,2.206,113,5.29,150,3.306,241,2.109,332,2.128,346,4.414,374,6.101,411,2.06,413,2.296,416,2.039,474,2.206,538,2.229,581,1.641,621,1.497,641,1.819,664,1.729,684,1.706,686,4.312,728,3.066,729,4.111,731,4.301,733,6.261,796,3.31,863,2.642,882,5.655,883,6.658,894,4.028,895,2.179,976,1.729,1009,4.028,1179,3.4,1190,1.91,1208,2.705,1215,3.4,1216,3.689,1217,3.689,1218,7.302,1219,2.952,1220,3.689,1221,3.689,1222,3.689,1223,3.689,1224,2.952,1225,3.689,1226,2.039]],["title/268",[67,2.43,416,1.248,455,1.212,512,1.7,1214,1.964,1227,2.259,1228,1.877,1229,2.259,1230,2.259]],["content/268",[8,1.345,24,3.634,135,4.108,332,2.015,411,4.467,413,4.978,416,3.069,444,3.977,455,2.981,460,1.829,462,3.814,468,4.615,470,2.804,512,6.021,549,3.616,573,3.279,659,2.454,684,2.567,698,2.396,712,2.678,728,4.615,733,6.021,767,3.814,864,3.616,882,7.948,883,6.402,1004,6.402,1009,3.814,1228,8.528,1231,5.553,1232,5.553,1233,3.168,1234,4.83]],["title/269",[1214,4.655,1235,5.352,1236,3.833]],["content/269",[8,1.698,24,0.495,32,2.261,47,0.635,48,2.148,49,3.109,50,0.661,53,0.818,71,0.398,97,0.729,112,0.76,113,2.899,130,1.553,150,0.932,169,1.156,175,1.236,233,0.983,256,1.353,332,2.805,379,1.131,411,1.309,413,0.795,415,1.139,416,1.797,446,1.236,454,1.171,455,1.259,488,0.685,514,1.875,517,0.564,520,2.409,524,0.527,538,0.485,581,0.568,585,0.806,637,1.177,639,1.517,640,1.111,648,3.349,655,2.709,659,1.781,688,0.729,698,1.402,729,0.895,731,0.936,735,2.582,743,0.895,757,0.706,860,2.039,882,0.989,883,1.022,895,1.385,900,0.941,935,2.518,956,1.175,975,2.161,976,1.523,1002,1.58,1009,2.233,1032,0.895,1106,0.472,1116,1.07,1165,0.661,1208,0.936,1226,0.706,1237,7.081,1238,4.029,1239,1.022,1240,5.822,1241,3.251,1242,1.92,1243,2.601,1244,0.915,1245,4.239,1246,1.177,1247,1.277,1248,2.161,1249,0.936,1250,0.936,1251,2.191,1252,1.277,1253,2.345,1254,1.353,1255,3.251,1256,1.277,1257,0.915,1258,1.177,1259,1.177,1260,2.345,1261,1.277,1262,2.446,1263,1.277,1264,3.251,1265,2.083,1266,1.277,1267,1.277,1268,1.177,1269,3.251,1270,1.177,1271,1.277,1272,2.345,1273,2.345,1274,2.345,1275,1.277,1276,0.895,1277,0.936,1278,1.277,1279,1.277,1280,2.345,1281,1.277,1282,1.111,1283,1.277,1284,1.277,1285,1.277,1286,1.277,1287,1.277,1288,1.277,1289,1.277,1290,1.277,1291,1.277,1292,1.277,1293,1.277,1294,1.277,1295,1.277,1296,1.277,1297,1.277,1298,2.345,1299,1.277,1300,1.277,1301,2.345,1302,1.277,1303,1.277,1304,1.277,1305,1.277,1306,1.277,1307,1.277,1308,1.277,1309,1.277,1310,1.277,1311,1.277,1312,1.277,1313,1.277,1314,1.277,1315,1.277,1316,1.277,1317,1.277,1318,1.277,1319,1.277,1320,2.345,1321,1.277,1322,1.277,1323,1.277,1324,1.277,1325,1.277,1326,1.277,1327,1.553,1328,1.277,1329,1.277,1330,1.061,1331,1.277,1332,1.277,1333,1.277,1334,1.277]],["title/270",[1335,8.139]],["content/270",[49,3.199,103,2.836,113,3.265,229,2.989,256,3.442,306,2.653,332,2.165,379,4.705,477,2.118,514,6.115,527,4.098,592,3.064,639,3.17,659,2.637,698,3.633,729,4.181,731,4.375,733,4.49,773,3.09,777,5.1,1208,4.375,1209,3.951,1327,5.576,1330,4.959,1336,5.967,1337,5.498,1338,5.498,1339,5.967,1340,5.967]],["title/271",[1341,8.139]],["content/271",[8,0.936,24,2.527,48,2.228,49,2.822,99,3.036,306,2.9,332,2.367,380,3.294,460,2.951,477,2.315,573,3.852,587,2.797,639,2.455,698,4.415,714,3.145,721,4.571,1190,3.377,1226,3.605,1233,3.721,1342,6.742,1343,5.421,1344,6.416,1345,6.523,1346,8.96,1347,5.421,1348,6.523,1349,5.421]],["title/272",[1236,4.625,1350,6.458]],["content/272",[13,4.918,20,4.918,49,3.126,103,3.809,229,5.146,380,4.047,514,4.623,538,3.046,592,4.115,698,3.458,1009,5.504,1208,5.877,1344,7.357,1349,6.661,1351,8.015]],["title/273",[1352,8.139]],["content/273",[49,3.057,71,2.824,135,4.646,176,3.815,380,4.57,454,2.001,581,4.024,587,3.881,698,4.783]],["title/274",[1236,4.625,1353,6.458]],["content/274",[24,2.312,48,2.038,49,3.414,229,4.218,306,2.653,332,3.541,380,4.928,587,3.612,592,3.064,639,2.246,684,2.758,698,4.21,714,2.877,1208,4.375,1233,3.404,1236,4.273,1327,3.951,1343,4.959,1344,7.592,1349,6.999,1354,8.422,1355,5.498]],["title/275",[67,2.156,1236,3.273,1356,4.57,1357,3.974]],["content/275",[48,1.807,49,3.37,52,2.324,71,2.847,84,3.391,332,1.92,376,6.149,380,3.901,514,5.263,526,2.353,573,3.125,653,3.445,659,2.338,698,4.328,714,2.551,721,3.708,757,2.924,1009,5.305,1226,2.924,1236,7.641,1249,3.88,1343,6.42,1344,3.789,1349,4.397,1358,5.291,1359,4.397,1360,5.291,1361,7.725,1362,5.291]],["title/276",[67,1.361,455,1.548,1236,2.065,1342,2.17,1363,2.884,1364,2.397,1365,2.508,1366,2.508]],["content/276",[8,0.781,32,1.958,49,3.2,52,3.465,71,1.699,103,2.588,135,2.796,229,2.728,379,4.472,380,3.983,411,3.041,413,4.908,444,3.9,446,5.359,454,1.744,455,2.923,514,3.141,538,2.998,624,2.923,698,4.001,712,2.626,882,4.218,883,4.357,1208,3.993,1226,3.01,1236,3.9,1344,5.649,1347,6.556,1367,5.446,1368,5.446,1369,5.446,1370,5.018]],["title/277",[455,2.453,1236,3.273,1371,4.57,1372,4.211]],["content/277",[48,1.497,49,3.359,51,2.144,52,1.924,71,2.093,113,2.397,176,1.847,240,2.33,306,1.948,332,2.434,380,2.213,411,3.746,454,1.802,477,1.555,500,2.499,514,3.87,517,1.936,520,2.619,538,2.549,581,1.948,624,2.352,671,2.397,686,2.587,698,3.516,712,2.113,714,3.234,727,5.575,728,3.641,729,4.701,731,4.919,755,6.134,757,2.422,777,2.653,894,3.009,1131,3.707,1233,3.827,1344,4.804,1347,3.641,1373,3.641,1374,4.382,1375,6.708,1376,3.138,1377,2.472,1378,4.382,1379,4.382,1380,4.382]],["title/278",[952,3.606,1010,3.91]],["content/278",[141,5.116,509,6.428,573,5.177,624,4.705,626,4.75,952,4.895,1010,5.309,1203,7.015,1204,5.309,1205,9.455,1381,8.767,1382,8.767]],["title/279",[8,0.926,1383,6.458]],["content/279",[20,4.918,49,2.833,279,1.793,498,4.792,504,5.567,531,3.418,563,4.623,592,4.115,617,5.504,698,4.432,816,4.623,957,4.792,1006,4.987,1010,6.221,1384,8.015]],["title/280",[1366,5.616,1385,6.458]],["content/280",[6,4.873,69,2.968,71,2.779,150,3.539,440,4.973,454,1.969,504,5.948,1010,6.647,1386,5.197,1387,7.746]],["title/281",[1388,7.5]],["content/281",[143,3.735,454,2.068,505,3.835,559,4.801,567,5.903,641,4.612,1389,6.553,1390,9.352,1391,8.133]],["title/282",[1392,8.139]],["content/282",[49,2.969,57,4.924,71,2.693,233,3.618,486,5.309,641,4.257,659,3.815,684,3.99,1393,7.507,1394,6.181,1395,5.715,1396,8.632]],["title/283",[1397,8.139]],["content/283",[32,3.51,48,2.038,49,2.691,97,3.404,105,3.613,112,2.73,150,2.371,306,2.653,347,4.273,454,1.862,653,3.885,698,3.633,757,3.298,913,3.298,1010,3.613,1184,3.173,1242,5.763,1391,5.19,1394,4.273,1398,4.49,1399,4.775,1400,5.967,1401,5.19,1402,8.422,1403,4.914,1404,4.273,1405,5.967,1406,4.181,1407,5.967,1408,5.967,1409,5.967,1410,5.498]],["title/284",[1411,8.139]],["content/284",[49,2.913,332,3.833,454,1.851,517,3.701,757,4.628,1129,4.886,1233,4.777,1406,7.403,1412,7.283,1413,8.374,1414,8.374,1415,8.374,1416,7.283]],["title/285",[1417,8.139]],["content/285",[32,2.882,49,2.833,71,2.501,97,4.572,304,7.533,454,1.772,642,5.74,698,3.458,757,4.429,915,3.656,1129,5.995,1233,4.572,1406,5.616,1418,8.015,1419,6.413,1420,8.015]],["title/286",[1421,8.139]],["content/286",[49,2.417,71,2.735,332,3.181,454,1.938,1010,5.309,1184,4.662,1422,10.017,1423,5.618,1424,7.286,1425,8.078,1426,8.767,1427,8.078]],["title/287",[1428,6.458,1429,4.735]],["content/287",[97,5.08,279,1.992,332,3.231,698,4.736,757,4.922,1018,6.898,1406,7.692,1423,5.707,1429,6.53,1430,8.906]],["title/288",[1406,4.525,1431,6.458]],["content/288",[49,2.495,446,4.769,454,2.451,915,4.128,1233,5.162,1364,7.521,1406,6.342,1416,7.871,1432,9.05,1433,9.05]],["title/289",[8,0.768,1434,5.352,1435,5.352]],["content/289",[332,3.393,454,2.068,755,7.037,1129,5.457,1233,6.451,1406,6.553,1416,8.133,1436,9.352]],["title/290",[1437,8.139]],["content/290",[32,3.363,49,2.578,671,5.117,1184,4.973,1419,7.483,1422,8.617,1427,8.617,1429,6.857,1438,6.422]],["title/291",[1439,8.139]],["content/291",[6,3.132,8,1.368,32,2.058,49,2.63,71,1.786,112,1.855,279,1.28,306,3.636,332,3.461,454,1.808,477,2.031,557,2.72,587,3.507,698,4.115,792,7.111,1010,3.466,1129,3.34,1226,3.163,1233,3.265,1242,4.828,1342,4.307,1406,4.011,1419,4.58,1429,4.197,1440,6.021,1441,5.724,1442,10.405,1443,5.724,1444,5.724]],["title/292",[1445,8.139]],["content/292",[48,2.904,49,3.213,71,2.652,514,4.904,653,5.535,890,4.747,1129,4.961,1184,4.521,1226,4.698,1242,6.298,1446,8.501,1447,8.501]],["title/293",[1448,8.139]],["content/293",[49,3.406,71,2.735,332,3.181,380,5.49,698,4.69,1184,4.662,1412,7.624,1449,7.015]],["title/294",[1357,5.616,1450,6.458]],["content/294",[49,2.667,71,3.019,698,4.174,1184,5.145,1406,6.779,1410,8.915,1449,7.741]],["title/295",[1357,5.616,1451,6.458]],["content/295",[49,2.969,71,2.693,306,3.838,463,7.01,684,3.99,773,4.469,1129,6.847,1184,5.726,1452,8.632]],["title/296",[1453,6.458,1454,5.951]],["content/296",[71,2.967,653,6.192,890,5.31,1129,5.55,1242,5.616,1338,8.763,1455,9.51,1456,9.51]],["title/297",[1457,8.139]],["content/297",[32,3.254,49,3.057,587,3.881,698,4.783,773,4.686,1184,4.813,1233,5.162,1242,5.344,1458,9.05]],["title/298",[1459,8.139]],["content/298",[49,2.714,71,3.072,1184,5.235,1233,5.616,1242,5.813,1406,6.898]],["title/299",[1454,5.951,1460,6.458]],["content/299",[32,3.104,71,2.693,454,1.908,463,5.62,744,5.097,773,4.469,1129,6.283,1184,4.59,1242,5.097,1429,6.329,1461,8.632,1462,6.907,1463,8.632]],["title/300",[1365,5.616,1464,6.458]],["content/300",[49,2.885,446,5.515,454,2.314,559,4.236,587,3.539,698,3.559,773,4.272,1010,4.996,1364,6.857,1370,9.643,1388,7.603,1389,5.782,1465,8.251]],["title/301",[1364,4.448,1365,4.655,1466,5.352]],["content/301",[49,2.344,446,4.48,454,1.879,463,5.535,559,4.364,684,3.93,773,5.522,1010,5.148,1129,4.961,1233,4.849,1389,5.957,1429,6.233,1462,6.802,1467,7.833]],["title/302",[1468,6.458,1469,5.951]],["content/302",[49,2.38,71,2.693,559,4.432,587,3.702,698,3.724,755,6.495,773,4.469,915,3.938,1010,5.227,1226,4.77,1233,4.924,1389,6.049,1425,7.954,1470,8.632]],["title/303",[1372,4.211,1429,3.351,1469,4.211,1471,4.57]],["content/303",[49,2.344,71,2.652,454,1.879,559,4.364,617,5.838,755,6.397,773,4.402,1010,5.148,1233,6.083,1389,5.957,1429,6.233,1462,6.802,1467,7.833,1472,8.501]],["title/308",[535,3.209,1119,4.205]],["content/308",[37,4.115,112,2.598,242,3.836,279,1.793,529,4.814,890,4.475,892,4.987,949,5.74,1076,4.623,1119,5.218,1473,7.385,1474,6.661,1475,5.218,1476,7.385,1477,4.677,1478,6.661,1479,6.661,1480,4.429]],["title/309",[1481,8.139]],["content/309",[242,2.685,309,2.832,454,1.24,582,2.666,641,2.766,657,3.767,666,2.276,720,1.869,890,3.132,898,3.069,912,3.236,952,4.499,1008,3.2,1076,4.648,1119,3.652,1149,4.488,1157,3.1,1474,4.661,1477,4.702,1482,5.087,1483,4.878,1484,5.168,1485,3.652,1486,5.168,1487,5.168,1488,5.609,1489,5.609,1490,5.609,1491,5.609,1492,5.609,1493,5.609,1494,4.661,1495,5.609,1496,4.017,1497,5.609,1498,4.344,1499,3.78,1500,5.609,1501,4.661,1502,3.541,1503,4.661,1504,5.609,1505,4.488]],["title/310",[113,2.929,1499,3.607,1506,4.448]],["content/310",[49,1.227,77,3.057,108,2.67,112,2.668,113,3.715,175,2.346,241,1.601,394,2.947,398,2.389,454,1.501,477,1.58,486,2.195,529,2.086,619,2.597,620,2.731,626,3.679,657,1.778,666,1.806,720,2.263,757,2.46,863,5.894,1048,2.539,1076,4.748,1092,3.188,1107,3.349,1115,2.539,1119,4.421,1136,2.852,1157,2.46,1190,3.516,1343,3.699,1423,2.852,1473,4.101,1477,2.597,1480,2.46,1496,4.862,1499,4.576,1506,5.642,1507,6.256,1508,6.84,1509,4.451,1510,2.898,1511,3.699,1512,3.349,1513,4.101,1514,3.871,1515,3.871,1516,3.699,1517,5.905,1518,4.451,1519,4.451,1520,4.451,1521,3.264,1522,4.101,1523,4.101]],["title/311",[113,2.501,379,2.203,1101,2.526,1499,3.08]],["content/311",[24,2.388,49,2.375,108,2.424,112,2.793,113,3.373,228,3.22,379,2.972,444,4.414,454,1.363,641,3.04,657,2.462,698,2.659,863,4.414,890,4.811,892,3.835,917,3.685,1023,4.154,1076,3.556,1092,4.414,1100,5.704,1101,3.407,1131,3.407,1477,3.597,1499,4.154,1506,5.123,1508,7.16,1523,5.68,1524,6.164,1525,4.233,1526,4.932,1527,3.95,1528,4.233,1529,5.68,1530,5.68,1531,5.361]],["title/312",[1528,5.59]],["content/312",[18,0.672,24,1.725,49,1.227,112,2.201,113,2.436,242,2.13,306,1.979,309,2.248,312,2.898,397,2.03,398,3.644,454,1.82,486,2.195,516,2.695,529,2.086,531,1.898,582,2.115,626,3.679,641,2.195,657,1.778,688,3.873,698,3.973,720,1.484,863,3.188,892,2.769,904,3.264,906,3.871,951,2.628,956,2.23,981,2.947,1008,2.539,1042,3.447,1048,2.539,1073,3.188,1100,5.45,1115,2.539,1119,4.421,1123,2.695,1137,3,1190,2.305,1423,2.852,1477,2.597,1480,2.46,1496,3.188,1507,4.101,1508,3.699,1510,2.898,1514,3.871,1517,3.871,1531,3.871,1532,3.699,1533,2.947,1534,3.699,1535,3.057,1536,3.871,1537,4.451,1538,4.451,1539,4.451,1540,2.568,1541,3.447,1542,4.451,1543,3.871,1544,4.101]],["title/313",[1545,4.593]],["content/313",[35,3.475,112,2.302,113,3.885,176,2.994,242,3.399,477,2.52,529,4.448,641,3.502,657,2.836,900,2.851,1042,5.5,1048,4.051,1476,6.543,1477,4.144,1499,4.786,1525,4.877,1532,7.887,1546,7.101,1547,5.343,1548,4.702,1549,6.543,1550,7.101,1551,4.3,1552,7.101,1553,6.176,1554,5.5]],["title/314",[74,1.921,242,3.091]],["content/314",[18,1.498,24,2.542,35,1.542,48,1.076,49,1.424,74,2.258,88,1.313,104,2.044,108,1.239,143,1.258,225,2.208,248,1.96,249,2.49,256,1.817,380,1.591,397,2.356,411,1.759,414,3.419,416,3.626,454,0.697,455,3.522,460,1.037,477,1.118,485,3.118,505,1.292,532,2.256,581,1.401,586,1.741,588,1.591,626,4.112,641,1.554,642,2.256,655,1.466,661,1.724,666,2.095,695,3.259,735,2.019,796,3.702,863,2.256,887,2.256,890,1.759,892,1.96,913,1.741,917,1.883,931,1.989,1004,2.521,1038,1.645,1073,2.256,1076,2.979,1081,1.96,1106,3.324,1170,2.051,1394,3.698,1480,1.741,1496,3.698,1510,2.051,1511,2.618,1517,2.74,1528,2.164,1531,2.74,1532,5.453,1551,3.127,1555,3.15,1556,3.15,1557,3.15,1558,2.256,1559,3.999,1560,3.15,1561,2.521,1562,3.15,1563,1.817,1564,2.521,1565,2.051,1566,2.31,1567,3.15,1568,2.31,1569,3.15,1570,3.15,1571,3.15,1572,2.74,1573,2.123,1574,3.15,1575,1.707]],["title/315",[74,1.921,698,2.786]],["content/315",[18,1.57,28,0.774,29,1.102,35,0.649,37,0.68,48,0.453,49,1.144,52,2.387,55,1.658,69,1.383,74,2.902,75,1.873,82,1.196,104,2.587,108,0.954,112,0.786,113,0.725,114,0.442,115,0.372,131,1.723,134,0.97,143,0.529,150,1.333,152,1.708,176,0.559,233,0.556,241,1.206,242,1.161,247,1.027,248,4.497,253,0.601,257,0.893,308,0.63,309,0.669,314,0.733,375,0.705,379,1.17,380,0.669,393,0.765,394,0.878,395,1.489,397,1.107,398,3.879,406,0.659,415,0.644,416,1.854,439,0.783,454,1.069,455,0.711,463,0.863,476,0.893,477,0.861,485,0.63,517,1.072,521,1.137,523,0.837,527,0.91,529,0.621,548,1.027,557,0.63,562,1.302,586,0.733,589,0.711,590,0.997,623,0.792,626,4.268,652,0.825,657,1.657,671,0.725,684,1.551,686,0.783,698,4.072,720,0.809,767,0.91,849,0.825,858,0.837,863,0.949,890,2.316,898,1.836,905,0.929,908,0.849,913,3.786,945,1.45,952,0.74,954,1.941,969,2.184,976,0.621,994,1.555,1006,0.825,1011,1.102,1015,1.355,1023,0.893,1029,0.792,1034,0.929,1069,0.698,1076,0.765,1087,1.68,1092,0.949,1097,1.061,1100,3.201,1101,1.854,1106,1.239,1120,0.863,1121,1.433,1125,2.006,1137,0.893,1143,0.792,1147,1.826,1151,1.102,1159,2.788,1165,2.148,1185,0.825,1423,2.15,1462,3.869,1475,0.863,1482,0.837,1496,0.949,1499,0.893,1510,1.58,1514,2.11,1526,1.061,1551,0.803,1563,0.765,1573,2.261,1575,0.718,1576,1.325,1577,1.221,1578,3.091,1579,1.325,1580,1.221,1581,1.325,1582,1.7,1583,0.929,1584,1.221,1585,1.221,1586,1.153,1587,2.524,1588,0.997,1589,0.949,1590,1.153,1591,0.972,1592,0.91,1593,1.779,1594,1.153,1595,1.061,1596,1.325,1597,1.7,1598,1.325,1599,1.221,1600,1.325,1601,0.972,1602,0.997]],["title/316",[74,1.921,576,5.616]],["content/316",[18,1.29,24,3.31,49,1.679,52,1.699,69,1.289,74,1.812,112,1.254,113,2.116,241,2.708,242,1.851,249,1.865,347,2.77,400,1.953,413,2.406,416,2.138,463,2.518,495,1.986,517,1.709,521,1.812,531,1.649,585,2.441,595,2.607,626,4.629,666,1.569,698,2.627,720,1.289,796,2.182,857,2.71,890,2.16,892,2.406,898,2.116,908,2.479,913,2.138,931,2.441,960,4.582,1015,2.16,1022,2.656,1042,2.995,1048,2.206,1071,2.206,1076,2.231,1081,2.406,1100,2.561,1165,2.003,1246,3.564,1462,4.872,1477,2.257,1496,2.77,1511,3.214,1528,2.656,1532,7.721,1554,4.716,1582,4.267,1593,2.836,1603,5.06,1604,3.364,1605,3.868,1606,6.089,1607,3.868,1608,5.611,1609,3.564,1610,2.836,1611,3.214,1612,3.868,1613,3.868,1614,3.564,1615,2.77,1616,2.995,1617,3.868]],["title/317",[916,3.725,1076,3.725]],["content/317",[18,1.547,35,2.346,48,2.453,49,1.98,55,2.191,74,2.562,75,2.677,104,1.934,176,2.021,248,2.983,253,2.173,398,2.573,406,4.279,521,2.246,532,6.848,562,2.573,626,5.181,698,4.945,890,2.677,912,2.765,916,2.765,976,2.246,1006,2.983,1076,4.142,1100,7.379,1125,2.866,1151,3.984,1342,3.607,1477,2.797,1496,5.143,1554,3.713,1599,4.417,1618,4.417]],["title/318",[890,3.606,916,3.725]],["content/318",[3,2.705,18,1.632,75,3.48,176,2.627,241,3.122,400,4.384,444,6.218,463,6.505,521,2.921,576,5.421,626,3.377,698,2.689,712,4.186,744,3.68,890,6.034,913,3.445,916,3.595,1117,5.421,1125,3.726,1185,3.878,1477,3.637,1554,4.827,1597,4.367,1618,5.743,1619,7.215,1620,3.05]],["title/319",[74,1.592,242,2.562,1540,3.087]],["content/319",[18,0.799,24,2.05,28,1.689,49,1.459,73,2.895,74,2.715,76,5.03,78,2.814,112,1.715,134,2.234,194,2.011,241,1.903,242,4.802,243,3.391,398,4.146,400,2.672,527,3.634,595,3.566,657,2.113,672,2.84,695,3.34,698,2.283,761,3.018,908,3.391,992,4.397,1006,3.292,1029,3.163,1045,4.071,1048,3.018,1052,2.672,1056,4.234,1092,3.789,1100,3.503,1115,3.018,1118,5.03,1137,3.566,1188,3.982,1496,3.789,1558,3.789,1621,4.602,1622,6.719,1623,4.602,1624,4.397,1625,4.602]],["title/304",[1144,4.749]],["content/304",[69,2.671,131,3.662,134,2.318,242,4.917,279,1.793,415,4.99,720,3.424,1144,6.616,1626,5.059,1627,5.504,1628,5.74,1629,7.385,1630,8.015]],["title/305",[1627,4.435,1628,4.625]],["content/305",[18,0.941,24,2.415,52,2.738,131,3.852,134,1.803,242,4.782,253,3.935,306,2.771,398,3.345,454,1.378,492,2.673,655,4.041,1035,3.345,1101,3.445,1102,5.18,1103,4.827,1169,4.987,1610,4.57,1628,7.155,1631,7.572,1632,7.995,1633,8.303,1634,6.233]],["title/306",[378,2.989,1033,3.751,1098,3.02]],["content/306",[176,4.673,533,6.81,951,5.344,1020,6.81,1023,6.099,1029,5.41,1033,6.342,1098,5.107,1590,7.871,1635,5.053]],["title/307",[1035,3.466,1636,6.458]],["content/307",[24,2.362,52,2.678,134,2.473,164,4.471,175,3.213,196,3.741,253,3.875,312,3.97,398,3.273,454,1.348,493,2.63,521,2.857,533,6.434,546,3.44,646,2.746,720,2.032,829,4.879,951,5.049,956,3.054,1020,4.588,1030,5.303,1035,4.589,1147,4.588,1193,2.818,1477,3.558,1527,3.907,1564,4.879,1610,4.471,1637,7.878,1638,6.622,1639,5.618,1640,6.097,1641,6.097,1642,6.097]],["title/320",[143,2.579,1643,4.018]],["content/320",[3,1.667,30,1.788,48,1.312,49,1.059,82,1.894,88,3.86,104,1.631,130,4.964,131,2.672,141,2.241,143,4.656,150,2.406,225,4.244,279,0.859,380,1.94,446,2.024,454,0.849,458,2.043,482,2.002,485,2.878,510,1.909,517,1.698,524,1.584,526,1.708,531,1.638,582,1.825,587,3.65,626,4.062,646,1.73,657,2.994,956,3.755,976,1.8,1086,2.543,1173,2.751,1373,3.192,1582,2.692,1594,3.341,1643,7.134,1644,2.816,1645,2.638,1646,2.89,1647,1.839,1648,3.841,1649,3.841,1650,3.074,1651,3.841,1652,3.341,1653,2.543,1654,3.539,1655,3.841,1656,2.081,1657,3.841]],["title/321",[1658,6.764]],["content/321",[32,1.4,88,1.623,131,3.056,134,1.771,143,1.555,150,3.932,171,2.247,279,0.871,311,1.615,409,3.117,460,2.016,474,2.328,477,1.382,510,1.935,513,2.152,583,4.489,588,1.967,589,4.06,600,5.262,603,2.931,621,1.58,653,2.536,684,1.8,688,2.222,714,1.878,777,2.358,827,2.09,849,3.809,900,3.037,992,3.237,1003,2.856,1063,2.423,1070,3.387,1081,2.423,1141,3.016,1157,2.152,1162,3.116,1175,2.856,1226,2.152,1484,6.97,1499,2.625,1522,5.641,1582,2.729,1643,2.423,1644,5.547,1658,7.126,1659,4.29,1660,3.589,1661,2.789,1662,2.423,1663,3.387,1664,2.625,1665,6.122,1666,5.088,1667,3.387,1668,3.589,1669,3.895,1670,2.328,1671,3.237,1672,3.895,1673,3.387,1674,2.789]],["title/322",[1667,7.079]],["content/322",[28,1.112,104,0.938,131,1.997,134,1.007,143,3.216,150,2.226,249,1.679,255,2.306,279,1.253,308,1.655,411,1.945,439,2.057,507,3.065,510,2.784,531,1.485,565,2.082,583,5.904,592,1.788,600,4.312,604,3.59,626,1.887,646,1.569,653,2.268,664,1.632,666,1.413,712,3.388,714,1.679,777,2.109,827,1.87,849,2.167,891,1.887,900,2.821,956,2.806,1003,4.108,1018,2.698,1052,1.759,1087,1.745,1157,1.925,1226,1.925,1327,2.306,1499,5.946,1530,3.21,1582,2.441,1643,3.486,1644,5.153,1650,4.483,1659,2.441,1660,5.162,1667,6.112,1668,3.21,1675,2.347,1676,2.698,1677,4.656,1678,2.621,1679,3.483,1680,5.162,1681,3.483,1682,3.21,1683,3.483,1684,2.698,1685,5.602,1686,3.483,1687,3.483,1688,3.483,1689,3.029,1690,3.483,1691,2.167,1692,3.483,1693,2.895,1694,3.483,1695,3.483,1696,3.483,1697,2.895,1698,3.483,1699,3.21,1700,3.483]],["title/323",[1701,5.968]],["content/323",[18,1.527,20,3.912,52,2.8,131,4.329,134,2.551,253,2.889,415,3.096,439,3.764,538,2.422,557,3.029,564,4.937,646,4.553,655,4.706,887,4.565,912,3.677,952,3.559,1055,4.22,1098,3.597,1104,4.15,1144,3.72,1201,4.22,1251,4.296,1701,4.674,1702,4.937]],["title/324",[131,1.908,1702,4.145,1703,5.352]],["content/324",[18,1.304,28,2.755,131,3.838,134,2.496,486,4.257,592,4.432,600,5.297,620,5.297,646,3.887,1091,6.495,1165,4.469,1663,7.507,1704,8.632]],["title/325",[131,2.302,1035,3.466]],["content/325",[]],["title/326",[1705,8.139]],["content/326",[]],["title/327",[1706,7.5]],["content/327",[18,1.009,102,3.4,131,3.966,134,2.633,171,3.852,415,3.244,646,5.011,655,3.108,1028,4.155,1035,3.584,1045,3.519,1106,2.467,1143,3.992,1157,3.691,1646,5.025,1663,5.808,1702,5.172,1706,8.39,1707,6.678,1708,4.501,1709,4.215,1710,6.678,1711,4.044,1712,6.678,1713,5.55]],["title/328",[151,3.33,375,2.846,415,2.6]],["content/328",[48,3.326,49,2.685,69,2.46,131,2.631,135,4.999,151,4.593,375,3.925,377,6.149,415,3.585,485,3.508,495,3.79,528,5.717,535,3.668,559,3.79,655,4.532,917,4.413,1089,5.717,1104,4.806,1610,5.412]],["title/329",[48,1.561,49,1.26,377,2.579,1089,3.539]],["content/329",[18,1.41,28,2.211,48,3.188,49,2.573,52,4.099,69,3.111,114,2.308,115,1.942,134,2.699,135,3.556,240,3.683,347,4.96,377,5.956,450,3.717,458,3.683,485,3.291,896,3.995,915,3.159,1032,4.853,1071,3.951,1104,4.509,1501,5.756]],["title/330",[1610,5.968]],["content/330",[18,0.931,26,4.319,48,3.673,49,2.965,52,2.707,69,2.054,108,2.424,135,3.165,151,5.36,253,2.794,375,4.582,377,3.478,415,4.824,453,3.95,454,1.363,536,6.483,557,2.929,559,3.165,581,2.741,655,2.869,695,3.891,899,4.774,1006,3.835,1023,4.154,1071,3.516,1089,4.774,1265,3.95,1714,6.164,1715,6.164]],["title/362",[18,0.808,20,3.284,400,2.703]],["content/362",[18,1.823,20,5.644,131,3.991,134,2.66,1184,4.891,1251,6.199,1646,6.922]],["title/363",[400,4.11]],["content/363",[0,2.23,18,1.106,45,4.042,73,2.692,74,1.464,76,3.203,112,1.595,131,3.117,134,3.251,176,2.074,182,3.153,183,2.941,242,2.355,308,2.338,311,2.04,314,4.046,380,2.484,400,2.484,415,2.39,506,3.937,516,2.979,521,2.306,590,3.702,644,6.368,684,2.274,720,1.64,757,2.719,793,3.379,915,2.244,1045,3.858,1048,2.806,1103,3.81,1115,4.176,1139,3.061,1149,3.937,1157,2.719,1165,2.547,1184,2.616,1477,4.272,1478,4.089,1582,3.448,1620,2.408,1666,4.089,1716,3.937,1717,4.279,1718,4.533,1719,4.533]],["title/364",[134,1.868,1035,3.466]],["content/364",[18,1.209,45,2.567,52,2.439,62,2.782,74,1.652,131,1.98,134,3.146,182,3.559,183,3.32,242,2.658,253,4.251,311,3.317,380,4.04,400,2.804,409,2.827,415,3.886,485,2.639,574,2.425,590,6.021,621,2.253,655,2.585,912,3.203,1035,2.981,1048,3.168,1084,4.072,1087,2.782,1106,2.052,1116,2.533,1126,4.179,1529,5.117,1691,3.455,1720,4.301,1721,7.47,1722,3.279,1723,5.117]],["title/331",[18,0.808,131,1.908,1646,4.028]],["content/331",[18,1.601,55,2.57,114,1.989,115,1.673,131,3.479,135,3.064,145,2.704,176,2.516,380,3.013,416,3.298,492,3.612,577,5.498,585,3.767,589,3.203,646,2.687,655,2.777,712,4.705,720,1.989,744,3.524,912,3.442,952,3.332,1152,3.298,1251,4.021,1702,6.522,1708,4.021,1709,3.767,1724,4.098,1725,4.959,1726,5.967,1727,5.19,1728,5.498,1729,4.775,1730,3.824]],["title/332",[114,1.784,115,1.501,1152,2.958]],["content/332",[18,1.375,48,2.281,49,1.841,51,3.268,61,3.768,74,1.987,77,4.586,114,3.035,115,3.12,131,3.246,134,2.633,150,2.653,240,3.551,242,3.196,243,4.28,331,3.584,412,4.68,477,2.37,493,2.881,559,3.429,590,5.025,657,2.667,796,3.768,900,2.681,1060,5.025,1731,4.68]],["title/333",[18,0.808,55,1.633,1152,2.958]],["content/333",[]],["title/334",[18,0.808,134,1.548,1152,2.958]],["content/334",[18,1.009,28,2.132,47,3.319,48,2.281,49,2.51,55,2.038,134,2.997,145,3.027,163,4.782,164,4.897,176,2.815,377,3.768,406,3.319,498,3.992,514,3.852,515,4.155,588,3.372,650,4.897,712,4.39,976,3.129,1104,4.348,1116,3.046,1133,3.458,1174,4.501,1185,4.155,1201,4.421,1242,3.944,1394,4.782,1732,4.155]],["title/335",[18,0.602,51,1.951,134,1.153,240,2.12,1152,2.204]],["content/335",[18,1.177,47,3.872,51,3.813,134,3.236,145,3.531,176,3.285,194,2.961,240,4.144,477,2.765,712,4.864,915,3.555,976,3.651,1155,4.918,1394,5.58,1643,4.848,1732,4.848,1733,6.475,1734,7.792]],["title/336",[18,0.808,65,1.598,1152,2.958]],["content/336",[18,1.538,28,2.522,55,2.411,65,3.552,101,3.927,107,4.916,134,2.944,145,3.581,411,4.412,477,2.804,900,3.172,1104,5.145,1404,5.659,1731,5.537,1732,4.916]],["title/337",[18,0.808,218,2.821,1152,2.958]],["content/337",[18,1.177,112,3.27,134,2.254,145,3.531,219,4.884,477,2.765,891,4.222,956,3.903,1104,5.073,1133,4.035,1142,5.863,1213,5.251,1643,4.848,1735,6.569,1736,6.475,1737,5.46,1738,7.792]],["title/338",[18,0.808,1152,2.958,1739,5.352]],["content/338",[18,1.398,74,3.344,75,3.82,76,4.454,112,3,134,2.677,145,3.101,218,5.923,348,5.95,376,4.61,915,3.121,956,3.427,1071,5.28,1104,6.026,1130,6.965,1155,4.318,1184,3.638,1732,4.256,1740,6.841]],["title/339",[18,0.69,143,1.825,1152,2.526,1643,2.843]],["content/339",[18,1.073,28,3.029,74,2.113,131,2.531,176,2.994,395,4.357,411,3.965,477,2.52,712,3.424,956,5.355,976,3.328,1086,4.702,1104,4.623,1133,3.677,1394,5.085,1633,5.901,1643,5.905,1644,5.207,1691,4.418,1741,5.901,1742,4.623,1743,7.142,1744,7.101]],["title/340",[18,0.69,130,3.026,143,1.825,1152,2.526]],["content/340",[18,1.059,30,4.38,74,2.086,130,6.231,176,2.956,446,3.695,712,5.474,976,3.286,1086,4.643,1133,3.631,1185,4.363,1190,3.631,1643,7.064,1653,6.231,1742,4.566,1745,9.411,1746,5.277,1747,7.012,1748,7.012]],["title/341",[1735,5.299]],["content/341",[18,1.1,69,2.428,74,2.168,112,2.362,134,2.107,219,3.181,279,1.63,497,4.91,521,3.414,528,5.643,720,2.428,917,4.356,1039,5.83,1049,5.643,1119,4.744,1131,4.027,1135,5.105,1184,3.874,1213,4.91,1475,4.744,1513,6.713,1563,4.203,1735,4.744,1749,4.91,1750,5.83,1751,5.482]],["title/343",[1100,3.544,1101,2.958,1735,3.485]],["content/343",[8,1.204,18,1.051,34,1.714,64,2.536,74,1.368,75,2.567,78,2.445,82,3.431,112,2.722,185,2.07,218,3.667,219,4.391,241,3.019,312,2.993,358,4.236,378,2.567,406,2.285,415,2.233,454,1.538,485,3.307,493,1.983,505,1.885,528,3.56,581,2.044,595,3.098,657,1.836,720,2.319,744,2.715,945,2.748,951,4.958,1028,4.329,1034,3.221,1100,3.044,1101,3.846,1102,3.82,1103,3.56,1106,1.699,1118,2.993,1135,3.221,1147,3.459,1159,5.783,1165,2.38,1527,2.946,1735,4.53,1752,3.221,1753,3.459,1754,4.597,1755,4.597]],["title/342",[1135,4.525,1735,4.205]],["content/342",[8,0.485,18,1.312,24,1.309,34,2.038,52,1.484,54,2.237,75,4.416,76,2.2,102,4.027,112,1.772,134,0.977,150,1.342,218,1.78,219,1.475,233,1.416,241,1.215,309,1.706,331,1.813,393,1.949,400,1.706,415,1.641,477,1.94,492,2.952,493,1.457,507,1.848,513,3.021,581,1.502,587,1.449,600,2.073,646,4.185,683,2.132,892,2.102,913,1.867,917,2.02,957,2.02,1071,1.927,1106,3.615,1113,3.683,1124,1.594,1131,1.867,1135,2.367,1138,3.268,1144,1.971,1184,3.66,1192,4.542,1193,3.182,1213,2.277,1249,2.477,1386,1.971,1565,2.2,1638,2.616,1661,2.419,1674,2.419,1732,2.102,1735,2.2,1736,6.573,1737,2.367,1751,2.542,1756,5.466,1757,4.374,1758,3.378,1759,3.378,1760,3.683,1761,3.378,1762,4.542,1763,4.374,1764,2.237,1765,3.378,1766,3.113,1767,2.132,1768,3.378,1769,3.113,1770,2.703]],["title/344",[74,1.592,218,2.821,219,2.337]],["content/344",[219,4.152,485,4.52,582,4.52,664,4.457,720,3.17,1135,6.664,1735,6.192,1771,8.271]],["title/345",[1197,5.829]],["content/345",[18,1.555,71,2.059,112,3.589,131,2.352,134,1.909,176,2.782,218,4.76,219,2.881,241,2.373,412,6.329,445,3.333,477,3.205,529,3.093,538,2.508,559,3.388,655,3.071,712,3.182,720,2.2,1104,4.297,1184,4.803,1197,4.726,1559,5.111,1771,5.74,1772,4.532,1773,6.6]],["title/346",[493,3.511]],["content/346",[64,2.272,65,2.592,100,2.881,112,2.815,196,3.825,219,2.721,279,1.394,311,2.584,412,4.367,445,3.147,454,1.378,485,2.962,488,3.345,538,2.369,559,3.2,791,4.463,796,3.517,931,5.481,952,3.48,1162,4.987,1175,4.57,1184,5.313,1197,4.463,1620,3.05,1729,4.987,1774,7.215,1775,8,1776,4.705,1777,4.2,1778,6.233,1779,5.18]],["title/347",[1730,5.216]],["content/347",[8,1.543,64,2.621,219,5.007,241,2.586,279,1.609,477,2.552,566,4.847,586,3.975,657,3.823,664,4.485,1135,5.04,1201,4.762,1730,4.609,1780,5.274,1781,7.192,1782,7.192,1783,7.192,1784,7.192,1785,7.192,1786,7.192]],["title/348",[1045,4.289]],["content/348",[]],["title/349",[171,4.695]],["content/349",[37,3.512,111,3.781,112,2.218,171,3.946,279,1.53,311,2.836,414,4.529,454,2.046,477,2.428,482,2.262,495,4.752,562,3.672,1022,4.698,1033,4.794,1034,4.794,1045,4.878,1048,3.902,1069,3.605,1084,5.016,1122,5.016,1528,4.698,1548,4.529,1561,5.474,1787,6.841,1788,5.298,1789,6.841,1790,5.95,1791,5.685]],["title/350",[1561,5.168,1791,5.367]],["content/350",[8,1.887,12,1.636,77,2.188,100,1.473,103,2.477,105,4.626,134,0.922,162,1.905,171,4.86,219,3.335,228,1.664,240,1.694,458,1.694,460,1.716,485,1.514,523,2.011,546,1.798,554,2.936,562,1.71,563,4.407,587,1.367,621,2.114,859,2.11,889,1.217,896,1.838,912,1.838,915,1.453,952,1.779,981,2.11,983,2.771,1029,1.905,1063,1.982,1106,1.177,1156,2.336,1157,2.88,1166,2.648,1176,4.331,1224,2.55,1344,2.282,1478,2.648,1559,4.036,1561,6.742,1742,2.075,1791,4.331,1792,6.093,1793,3.186,1794,3.186,1795,4.036,1796,2.936,1797,7.64,1798,2.936,1799,3.186,1800,3.186,1801,3.186,1802,3.186,1803,3.186]],["title/351",[111,3.569,414,4.276]],["content/351",[28,2.277,69,1.584,99,2.212,111,4.734,112,1.541,171,2.742,279,1.063,309,2.4,414,6.304,416,2.627,454,1.578,455,4.598,460,1.565,466,2.878,493,2.05,527,4.9,529,2.227,562,2.551,666,1.928,898,2.601,915,2.168,949,5.11,954,3.803,981,5.672,1008,2.711,1027,3.147,1034,3.331,1092,3.404,1137,3.203,1176,3.95,1185,4.439,1477,2.774,1482,5.407,1533,3.147,1547,3.577,1548,3.147,1559,6.635,1615,3.404,1670,2.842,1804,3.331,1805,3.803,1806,3.803,1807,4.753,1808,4.753,1809,4.753,1810,4.753,1811,4.38,1812,4.753,1813,4.753]],["title/352",[171,3.725,1814,5.951]],["content/352",[28,2.035,48,3.012,49,2.432,50,3.301,99,2.967,105,3.86,111,3.523,134,1.844,152,4.49,171,5.833,313,2.533,331,3.421,454,2.236,529,2.987,895,3.764,971,5.874,1032,4.467,1045,3.359,1106,2.355,1110,4.937,1115,3.636,1250,4.674,1561,5.101,1564,5.101,1575,3.454,1791,5.297,1814,5.874,1815,6.374,1816,6.374,1817,5.874]],["title/353",[134,2.354]],["content/353",[]],["title/354",[112,2.093,113,3.534]],["content/354",[0,2.191,28,1.543,47,3.592,48,2.469,49,1.993,69,1.611,78,2.571,104,1.947,111,2.672,113,2.646,134,1.398,163,5.176,164,5.299,194,3.289,199,4.455,201,4.455,241,1.739,254,2.967,279,1.082,398,2.595,409,2.462,436,2.595,454,1.069,488,2.595,492,3.712,499,2.672,684,2.235,873,3.545,1034,3.388,1035,2.595,1045,5.417,1120,4.706,1122,3.545,1123,2.928,1132,3.008,1169,3.869,1177,3.71,1548,3.201,1615,3.462,1632,3.869,1701,3.545,1742,3.148,1788,3.745,1798,4.455,1818,2.928,1819,3.32,1820,4.835,1821,7.227]],["title/355",[1045,2.821,1101,2.958,1115,3.053]],["content/355",[6,3.449,28,2.012,45,2.914,51,3.084,103,2.995,112,2.043,134,2.907,240,3.352,241,2.266,242,3.017,306,2.803,454,1.393,529,2.954,531,2.687,595,4.248,1023,4.248,1030,5.481,1038,3.292,1045,3.321,1049,4.881,1100,4.173,1101,4.836,1102,5.238,1115,3.595,1118,4.104,1124,2.974,1147,4.743,1165,3.263,1184,3.352,1355,5.808,1510,4.104,1593,4.621,1670,3.768,1822,6.303,1823,6.303]],["title/356",[1101,3.569,1824,5.002]],["content/356",[28,2.106,48,3.517,49,2.839,52,2.899,78,3.509,134,1.909,150,2.622,163,4.726,164,6.623,194,3.432,241,2.373,398,3.542,684,4.175,698,2.847,897,5.74,1045,4.76,1101,3.647,1169,5.281,1176,5.484,1177,3.388,1438,4.532,1633,7.506,1819,4.532,1825,6.081,1826,6.6]],["title/357",[194,2.034,1101,2.958,1610,3.925]],["content/357",[48,3.446,49,2.782,134,2.254,194,3.834,331,4.182,505,3.195,684,4.664,720,2.597,945,4.658,1023,5.251,1077,7.18,1092,5.58,1101,6.183,1265,4.993,1597,5.46]],["title/358",[47,2.66,134,1.548,1101,2.958]],["content/358",[35,4.249,47,5.847,48,2.966,49,2.394,69,2.077,78,4.617,112,2.02,134,3.286,176,2.627,241,2.241,331,3.345,516,3.774,684,2.881,1023,4.2,1101,5.522,1116,2.843,1184,3.314,1201,4.127,1597,4.367,1610,6.366,1737,4.367,1824,4.827,1827,6.233]],["title/359",[49,1.26,134,1.322,1101,2.526,1610,3.351]],["content/359",[35,3.761,48,4.02,49,3.245,134,2.223,398,5.367,505,3.152,684,4.622,1071,4.384,1087,3.85,1101,5.526,1824,5.952,1828,5.952,1829,7.685]],["title/360",[651,4.994]],["content/360",[]],["title/361",[651,3.963,1830,4.735]],["content/361",[18,1.046,194,2.632,279,2.361,332,2.513,454,2.063,482,3.086,484,2.337,537,4.667,541,7.228,552,4.585,558,5.211,562,3.717,581,3.08,651,6.477,1525,4.756,1830,6.843,1831,5.542,1832,6.382,1833,5.211,1834,6.023,1835,4.585,1836,5.542]],["title/365",[651,3.963,1061,4.018]],["content/365",[18,1.304,194,3.28,279,2.409,332,3.132,482,3.56,537,5.817,541,6.685,562,4.633,651,6.607,1061,5.371,1833,6.495]],["title/366",[651,3.963,1837,5.168]],["content/366",[18,1.422,101,3.485,148,3.957,194,2.665,279,2.376,332,2.544,454,1.55,482,3.512,499,3.875,537,4.726,541,5.431,562,3.764,581,3.118,651,6.518,891,3.8,1059,4.363,1833,5.277,1835,4.643,1836,5.611,1837,5.611,1838,3.729,1839,3.57]],["title/373",[114,2.152,115,1.811]],["content/373",[18,1.143,44,2.675,74,1.159,78,2.071,102,3.117,103,1.851,109,3.532,114,2.521,115,2.404,131,1.388,143,1.555,175,2.052,176,2.581,233,3.171,279,1.37,332,1.413,439,2.3,477,2.173,482,2.024,492,1.67,521,2.869,531,1.661,556,2.496,559,1.999,574,1.7,655,2.849,714,1.878,744,2.3,951,2.3,1016,2.579,1025,1.765,1029,2.328,1052,1.967,1069,2.052,1071,3.492,1087,1.951,1096,2.675,1119,2.536,1173,2.789,1190,3.17,1193,3.497,1213,2.625,1244,2.789,1386,2.273,1544,3.589,1577,3.589,1647,2.93,1656,2.11,1722,2.3,1731,4.29,1735,2.536,1749,4.126,1752,4.29,1762,5.088,1840,3.895,1841,6.122,1842,3.237,1843,3.589,1844,2.931,1845,2.789,1846,3.016,1847,3.116,1848,2.931,1849,3.387,1850,2.675,1851,3.895]],["title/374",[1846,6.304]],["content/374",[8,0.493,18,1.416,35,1.684,47,1.71,49,1.921,74,1.024,78,2.95,82,1.697,97,1.963,109,1.985,112,1.115,114,1.147,115,1.954,131,1.226,134,1.604,135,1.766,143,2.783,218,1.813,279,0.77,308,1.635,309,1.737,311,1.426,313,1.367,332,2.012,376,3.738,453,2.205,454,0.761,472,2.859,477,1.221,485,1.635,492,1.476,520,3.316,521,1.612,524,1.419,548,2.665,574,1.502,581,1.53,585,2.172,587,2.379,655,2.582,671,1.882,714,1.659,900,1.381,973,2.665,1081,3.451,1135,2.411,1137,2.319,1138,3.316,1151,5.792,1152,1.901,1165,1.781,1193,1.59,1197,2.464,1248,3.17,1249,2.523,1276,2.411,1386,2.008,1404,2.464,1628,2.464,1647,2.655,1691,2.141,1708,2.319,1709,2.172,1722,2.032,1735,2.24,1846,2.665,1852,2.523,1853,3.17,1854,2.859,1855,3.44,1856,4.697,1857,5.792,1858,3.44,1859,2.859,1860,4.697,1861,3.44,1862,2.665,1863,2.464,1864,4.438,1865,2.665,1866,2.859,1867,2.083]],["title/375",[1244,5.829]],["content/375",[18,1.514,44,3.131,74,2.774,99,2.122,102,2.321,104,2.25,109,2.63,112,1.478,114,2.784,115,2.614,133,2.837,143,2.762,154,2.471,254,2.798,279,1.02,398,3.712,439,2.693,477,1.618,493,1.967,516,2.761,517,2.015,581,2.028,624,2.447,657,2.762,664,2.137,687,3.966,720,1.52,896,2.63,898,2.495,952,2.546,1052,2.303,1069,2.403,1094,4.846,1106,1.685,1116,2.08,1119,2.969,1121,2.693,1178,3.195,1190,2.361,1592,4.749,1601,3.343,1635,2.546,1662,2.837,1749,3.073,1839,2.321,1868,3.195,1869,4.56,1870,4.56,1871,6.915,1872,3.265,1873,2.837,1874,2.546]],["title/376",[1731,5.703]],["content/376",[114,2.725,115,2.675,143,4.395,279,1.28,312,3.727,313,2.274,321,3.931,471,4.757,507,3.132,521,3.831,559,2.938,584,4.099,598,4.58,657,2.286,712,2.76,720,1.908,827,4.388,892,3.561,951,3.38,1015,3.196,1052,2.89,1152,3.163,1502,5.161,1515,4.978,1635,3.196,1677,6.795,1731,6.684,1842,4.757,1848,4.307,1863,4.099,1875,4.951,1876,5.724,1877,5.724]],["title/377",[1878,7.5]],["content/377",[18,1.422,35,1.946,45,1.839,52,1.747,74,1.183,97,2.269,99,1.851,102,4.416,108,1.564,109,2.294,112,2.486,114,2.891,115,2.926,131,2.219,154,2.155,175,2.096,279,0.89,306,1.769,439,2.349,454,1.376,477,1.412,493,2.685,507,2.176,521,1.864,531,1.696,549,2.59,559,2.042,641,1.961,646,1.791,655,1.851,665,2.59,714,1.918,743,2.787,773,2.059,793,2.731,889,1.519,890,2.221,900,1.597,915,1.814,949,2.848,969,2.59,1058,3.665,1094,2.787,1103,3.08,1106,1.47,1115,2.269,1116,1.814,1119,2.59,1165,2.059,1190,2.059,1527,2.549,1559,3.08,1575,2.155,1609,3.665,1635,2.221,1749,2.68,1776,2.155,1879,3.977,1880,3.665,1881,3.977,1882,2.993,1883,3.459,1884,3.977,1885,3.977,1886,3.459,1887,3.305,1888,3.459,1889,3.977,1890,3.977]],["title/367",[114,1.784,115,1.501,493,2.309]],["content/367",[]],["title/368",[1753,4.859,1891,4.525]],["content/368",[18,1.161,82,3.79,88,3.204,115,2.155,145,3.483,233,3.222,450,4.125,460,2.531,473,6.684,477,2.727,557,3.652,666,3.118,695,4.851,900,3.085,1193,3.553,1753,7.524,1852,5.635,1891,5.385,1892,4.205,1893,7.685,1894,7.081]],["title/369",[592,2.346,689,3.974,1895,3.657,1896,2.732]],["content/369",[8,1.612,18,0.863,37,1.834,64,2.977,65,2.668,74,1.063,88,1.489,99,2.66,100,3.304,104,1.54,108,1.405,114,1.191,115,2.291,142,1.489,233,1.497,253,1.619,308,2.717,309,2.887,413,2.222,450,1.917,460,1.176,524,2.947,655,2.66,659,1.579,666,3.867,1106,1.32,1647,1.71,1742,2.326,1856,2.407,1892,3.128,1895,2.858,1897,3.572,1898,6.585,1899,5.716,1900,7.147,1901,5.716,1902,6.585,1903,2.503,1904,5.716,1905,3.291,1906,5.716,1907,3.291,1908,3.106,1909,5.267,1910,3.572,1911,3.106,1912,3.572,1913,3.291,1914,4.908,1915,6.147,1916,3.572,1917,3.572,1918,3.572,1919,3.572]],["title/370",[1895,5.168,1920,6.458]],["content/370",[8,1.643,64,2.323,65,1.903,74,1.896,88,2.657,103,3.029,104,1.717,115,2.473,142,2.657,233,3.697,234,5.297,309,3.219,460,2.099,621,3.578,659,2.817,666,2.586,1138,3.811,1656,3.454,1892,3.488,1895,5.101,1911,5.544,1921,4.378,1922,10.112,1923,6.374,1924,6.374,1925,6.374,1926,6.374,1927,6.374]],["title/371",[1038,3.373,1746,4.859]],["content/371",[6,1.475,8,1.688,18,0.685,45,1.246,48,0.921,52,1.184,69,1.512,88,1.124,104,1.582,112,1.471,115,1.272,143,1.812,171,2.617,194,1.024,233,1.13,248,3.655,253,2.662,286,2.157,460,2.269,538,1.024,557,1.281,581,1.199,587,1.156,621,1.094,650,1.977,659,3.044,664,1.263,666,3.593,969,1.755,1038,1.408,1089,6.859,1106,0.996,1195,3.327,1342,2.029,1423,1.728,1424,2.24,1587,2.029,1620,1.319,1647,1.29,1746,6.664,1892,2.482,1915,2.029,1928,8.857,1929,5.874,1930,8.857,1931,7.674,1932,4.18,1933,2.696,1934,3.63,1935,2.696,1936,2.696,1937,4.537,1938,5.874,1939,4.537,1940,2.696,1941,6.889,1942,4.537,1943,6.889,1944,4.537,1945,2.696,1946,2.696,1947,2.696,1948,2.696,1949,2.696,1950,2.696,1951,2.029,1952,2.696]],["title/372",[1953,5.951,1954,6.458]],["content/372",[8,1.799,69,1.378,88,1.008,99,1.125,100,4.276,112,0.784,114,0.806,115,0.678,119,1.549,194,0.918,196,4.425,233,1.013,308,1.149,312,1.574,331,1.297,408,1.41,409,1.231,460,1.362,507,2.263,517,1.068,620,1.483,621,1.678,659,1.827,666,3.753,729,2.898,817,2.102,994,3.473,1126,1.819,1157,2.285,1165,1.251,1169,3.309,1184,2.199,1193,1.117,1424,5.332,1502,1.526,1527,1.549,1533,1.6,1729,3.309,1852,1.772,1872,1.731,1874,1.35,1892,1.322,1915,3.112,1953,2.227,1955,2.417,1956,2.417,1957,4.713,1958,5.42,1959,4.135,1960,5.42,1961,5.42,1962,1.934,1963,2.417,1964,2.417,1965,2.417,1966,2.227,1967,2.009,1968,2.417,1969,2.417,1970,2.417,1971,2.417,1972,5.912,1973,2.417,1974,2.417,1975,5.42,1976,2.417,1977,5.42,1978,2.417,1979,2.417,1980,2.417,1981,2.417,1982,4.135,1983,4.135,1984,2.417,1985,2.417,1986,2.417,1987,4.135,1988,2.417,1989,2.102,1990,2.417,1991,2.227,1992,2.417,1993,5.58,1994,5.42,1995,2.417,1996,2.417]],["title/383",[114,1.784,115,1.501,185,2.41]],["content/383",[1962,8.636]],["title/384",[114,1.784,115,1.501,1021,3.379]],["content/384",[18,1.603,36,2.705,88,1.932,114,1.545,115,2.366,143,1.851,150,1.842,218,4.954,228,6.066,233,3.537,397,2.114,454,1.865,460,3.096,517,2.048,655,2.157,659,3.729,712,4.068,719,3.018,976,2.172,993,5.603,1052,2.341,1193,4.346,1245,3.709,1647,5.275,1762,3.852,1772,4.808,1860,4.719,1997,3.399,1998,4.031]],["title/385",[88,2.692,1245,5.168]],["content/385",[8,1.15,88,4.727,143,4.103,450,4.302,454,1.772,460,2.639,566,5.401,684,3.705,688,4.572,789,6.661,956,4.015,1143,4.792,1197,5.74,1245,6.413,1731,5.616,1999,7.385]],["title/386",[55,1.971,496,5.168]],["content/386",[6,3.197,7,3.585,8,1.506,24,2.264,119,3.615,196,5.091,249,2.817,411,3.262,438,3.804,447,4.675,454,1.834,462,4.013,492,2.506,521,2.738,538,2.22,566,3.938,586,3.229,589,3.136,1019,4.525,1021,5.237,1891,4.094,1903,4.094,2000,5.843,2001,5.843,2002,5.843,2003,5.843,2004,5.384,2005,5.843,2006,5.843,2007,5.384,2008,5.843,2009,5.843,2010,5.843,2011,5.843,2012,4.525,2013,4.284,2014,5.843]],["title/387",[144,5.389]],["content/387",[8,1.631,19,3.32,24,2.913,37,2.618,48,1.742,49,1.406,104,1.374,114,1.699,115,1.43,144,5.913,279,1.141,286,6.016,379,2.458,413,3.172,454,1.127,477,1.81,482,1.686,517,2.253,524,2.102,567,4.746,791,3.651,981,3.376,1063,3.172,1076,2.941,1116,2.326,1131,2.818,1592,3.502,1676,3.949,1845,3.651,2004,4.698,2013,5.512,2015,3.651,2016,3.949,2017,7.518,2018,3.739,2019,7.518,2020,3.219,2021,4.698,2022,7.518,2023,5.099,2024,5.099,2025,5.099,2026,3.949,2027,4.698]],["title/388",[119,2.005,467,4.028,2028,5.352]],["content/388",[6,4.582,8,1.515,119,3.137,144,6.994,397,3.82,454,2.336,467,6.301,657,3.344,729,5.868,1001,5.997,1891,5.868,2027,7.716,2029,8.374]],["title/389",[2021,7.5]],["content/389",[6,4.982,8,1.796,24,2.588,249,4.39,375,3.551,438,5.929,460,2.199,666,3.694,791,6.521,947,4.897,1479,5.55,1662,4.155,2030,6.154,2031,4.586,2032,5.55,2033,8.39,2034,7.919,2035,7.919]],["title/390",[2036,7.5]],["content/390",[8,1.761,115,1.728,196,3.782,252,6.317,311,2.555,448,4.932,460,3.727,466,3.733,526,2.741,581,2.741,585,3.891,621,3.495,659,2.724,1060,4.638,1070,5.361,1204,3.733,1233,3.516,1423,3.95,1635,3.442,2032,5.123,2036,5.68,2037,7.16,2038,5.68,2039,6.164,2040,5.361,2041,5.68]],["title/391",[1043,6.304]],["content/391",[2042,10.392,2043,6.766,2044,10.392]],["title/392",[2045,7.5]],["content/392",[8,1.656,249,5.565,666,4.683,2046,9.675]],["title/393",[8,0.768,957,3.2,1622,4.655]],["content/393",[8,1.815,24,2.215,55,1.09,108,1.405,228,1.866,249,4.826,443,4.273,460,2.354,477,2.029,493,1.541,505,1.465,510,1.775,549,2.326,659,1.579,666,2.9,900,1.434,957,5.698,993,2.858,1015,3.192,1149,2.858,1185,3.557,1190,2.96,1268,5.267,1347,2.968,1622,10.243,2038,6.585,2047,3.106,2048,4.427,2049,4.328,2050,3.572,2051,3.572,2052,3.572,2053,3.572,2054,3.572,2055,8.169,2056,3.572,2057,4.751,2058,3.572,2059,2.688]],["title/394",[69,2.713]],["content/394",[8,1.118,69,4.185,112,2.526,113,4.264,255,5.159,375,4.144,460,2.566,581,3.465,605,4.781,621,3.161,1124,3.677,1204,4.718,1277,5.713,2013,5.713,2018,5.713,2060,5.713]],["title/395",[445,4.11]],["content/395",[24,2.569,37,2.215,49,2.226,69,2.209,103,2.05,112,1.399,113,2.361,114,1.438,115,1.21,119,1.616,244,3.585,253,1.955,254,4.068,321,2.963,375,2.294,400,2.178,445,5.428,454,1.785,460,2.659,485,2.05,526,1.918,538,1.639,573,2.548,589,2.316,621,2.689,683,2.723,690,3.975,900,1.732,960,3.246,1006,2.684,1021,2.723,1026,3.246,1124,3.128,1204,2.612,1277,3.163,1403,2.517,1533,2.856,1553,3.752,1608,3.975,1804,3.023,2013,5.919,2060,5.919,2061,5.134,2062,4.861,2063,4.314,2064,4.314,2065,4.314,2066,4.314,2067,3.341,2068,3.585,2069,3.975,2070,3.975,2071,4.314,2072,3.341,2073,4.314,2074,4.314]],["title/396",[538,3.093]],["content/396",[55,2.446,114,2.671,115,2.247,279,1.793,538,4.309,621,3.252,1021,5.059,1749,5.401,1915,7.731,1951,7.731,2048,8.782,2075,7.957]],["title/397",[538,2.454,1749,4.352]],["content/397",[5,2.386,8,1.427,69,1.495,103,3.931,114,1.495,115,1.258,135,2.303,194,1.705,228,2.343,233,1.881,249,2.163,309,2.266,454,0.992,517,1.983,538,4.269,581,1.995,582,2.132,659,3.019,666,4.037,1116,2.047,1124,2.117,1204,2.717,1480,2.48,1503,7.684,1647,2.148,1749,5.574,1753,3.376,1891,4.787,1915,7.487,1951,3.376,2048,3.475,2075,3.475,2076,4.134,2077,3.213,2078,6.831,2079,4.487,2080,9.247,2081,4.134,2082,2.792,2083,5.677,2084,4.487]],["title/398",[538,2.454,1951,4.859]],["content/398",[18,0.952,103,2.995,114,2.101,115,1.767,143,2.517,228,3.292,408,3.678,454,1.393,538,4.335,581,2.803,623,3.768,666,2.557,915,2.875,1054,3.678,1124,2.974,1204,3.817,1213,4.248,1480,3.483,1749,5.897,1915,6.584,1951,7.563,2013,4.621,2048,4.881,2076,5.808,2077,4.514,2083,5.238,2085,5.238,2086,6.303,2087,5.808,2088,5.481]],["title/399",[1204,4.929]],["content/399",[69,2.46,114,2.46,115,2.07,194,2.805,375,3.925,421,4.73,454,1.632,538,3.701,573,4.359,712,3.559,1006,4.593,1021,4.659,1133,3.822,1204,5.897,1403,4.307,2013,5.412,2018,5.412,2089,7.382,2090,9.738,2091,7.382,2092,7.382,2093,7.382]],["title/400",[19,5.299]],["content/400",[8,0.752,19,6.503,20,3.217,26,3.673,49,1.445,51,3.755,55,1.6,112,2.487,115,2.151,119,1.964,143,3.064,154,2.84,171,4.426,256,3.024,397,2.391,445,2.647,454,1.696,460,1.726,462,3.6,524,2.161,562,2.814,574,3.35,666,3.113,720,1.747,757,2.897,913,2.897,942,3.6,976,2.456,1131,2.897,1498,4.06,1575,2.84,1845,3.754,1934,7.262,2075,4.06,2094,5.242,2095,4.356,2096,5.08,2097,4.83,2098,4.83,2099,4.356,2100,5.242,2101,4.356]],["title/401",[790,4.205,2075,5.002]],["content/401",[8,1.491,666,4.216,2102,6.293]],["title/378",[114,1.523,115,1.281,228,2.387,233,1.916]],["content/378",[143,3.864,228,5.053,233,4.056,1052,4.885,1193,5.336,1254,5.581]],["title/379",[957,3.861,1123,3.91]],["content/379",[18,1.774,115,2.595,194,2.6,218,3.605,228,3.573,233,2.868,309,3.455,439,4.04,445,4.674,460,3.048,505,2.805,587,2.934,957,6.271,1123,4.143,1133,4.793,1193,4.849,1856,4.61,2103,6.965]],["title/380",[5,2.846,233,2.244,249,2.581]],["content/380",[5,5.652,8,1.101,18,0.792,24,2.973,228,2.738,233,3.804,249,2.527,454,1.159,485,2.491,507,2.868,538,2.916,639,3.76,666,2.127,688,2.99,720,1.747,743,3.673,790,3.413,957,4.587,1165,2.714,1193,2.423,1327,3.471,1512,3.944,1593,3.844,1742,3.413,1780,3.844,1888,4.559,2075,4.06,2104,4.83,2105,5.242,2106,5.242,2107,7.07,2108,5.242,2109,5.242,2110,5.242,2111,4.559,2112,5.242,2113,5.242,2114,5.242,2115,6.673,2116,5.242,2117,5.242]],["title/381",[18,0.808,332,1.942,714,2.581]],["content/381",[3,2.946,8,1.321,18,1.243,24,1.725,55,2.072,61,4.645,64,1.622,74,1.324,108,1.751,114,1.484,115,2.78,143,3.678,145,2.017,218,2.346,228,2.325,229,5.234,233,3.45,332,2.463,380,3.429,454,0.984,460,1.466,477,2.41,526,1.979,581,1.979,588,2.248,657,1.778,666,2.755,683,2.81,889,1.7,917,2.661,948,2.695,1052,2.248,1106,1.645,1124,2.1,1592,3.057,1676,3.447,1892,2.436,2118,4.451,2119,6.79,2120,4.451,2121,8.231,2122,4.451,2123,4.101,2124,4.451,2125,4.451]],["title/382",[18,0.69,445,2.308,460,1.505,2103,3.439]],["content/382",[8,1.471,18,1.207,55,1.295,64,2.021,65,1.267,69,1.415,74,1.65,82,2.093,100,3.026,102,1.269,104,2.928,109,1.438,114,0.831,115,0.699,119,0.934,131,0.888,142,4.275,143,1.695,145,1.924,150,1.687,181,4.588,248,2.641,309,2.8,395,2.605,406,3.649,445,3.306,450,1.338,454,0.551,458,1.325,460,3.196,493,1.831,570,1.875,585,1.573,621,1.722,661,2.323,688,1.422,733,4.172,898,1.364,900,1.001,947,1.827,1015,2.37,1060,1.875,1116,1.137,1131,1.377,1401,2.167,1502,1.573,1583,4.588,1721,4.496,1875,1.509,1914,4.496,2018,1.827,2059,1.875,2126,2.492,2127,6.547,2128,4.245,2129,2.492,2130,6.547,2131,4.688,2132,1.65,2133,1.875,2134,2.492,2135,3.194,2136,2.492,2137,4.245,2138,4.245,2139,2.492,2140,2.492,2141,1.93]],["title/403",[114,1.523,115,1.281,228,2.387,1647,2.187]],["content/403",[7,6.444,8,1.506,18,1.191,24,3.592,37,1.724,55,1.025,71,3.171,112,1.089,131,1.197,143,1.341,171,1.937,218,3.613,228,2.841,233,2.874,249,1.619,309,1.696,417,4.213,454,0.742,470,2.747,485,1.596,517,1.484,526,1.493,582,1.596,588,1.696,621,1.362,666,2.207,712,1.619,945,2.008,1403,1.959,1647,5.026,1860,3.666,1892,2.976,1934,4.352,2013,2.462,2035,8.839,2075,4.213,2082,2.089,2142,3.358,2143,3.358,2144,2.462,2145,6.855,2146,6.855,2147,6.855,2148,6.855,2149,4.73,2150,3.094,2151,3.358,2152,3.358,2153,3.358]],["title/404",[7,3.963,2144,4.735]],["content/404",[3,2.213,5,2.711,6,2.79,7,5.48,8,1.738,18,1.136,24,3.46,49,1.406,52,2.24,55,2.725,64,1.858,71,2.346,74,1.517,115,2.108,142,2.126,145,3.407,150,2.026,375,2.711,406,2.534,445,2.575,454,1.127,460,1.679,493,2.2,659,2.253,960,3.837,1015,2.847,1647,4.274,1656,2.763,1860,5.067,2035,4.434,2047,4.434,2067,3.949,2132,4.978,2144,3.739,2154,6.538]],["title/405",[1850,5.59]],["content/405",[5,3.044,6,3.132,7,6.385,8,1.173,18,0.865,24,3.168,71,2.976,103,2.72,131,2.04,228,2.989,254,5.017,406,2.844,438,3.727,493,2.469,538,2.175,581,2.545,659,3.613,664,2.682,1116,2.611,1327,6.315,1656,4.43,1717,4.978,2132,5.413,2144,8.639,2154,4.978,2155,5.724,2156,5.274,2157,5.724]],["title/406",[1647,3.091,1860,4.352]],["content/406",[3,1.83,8,0.934,18,1.663,24,1.634,36,2.461,74,1.938,114,2.171,115,2.232,143,3.179,169,2.079,228,2.202,311,1.748,332,1.53,380,3.289,397,2.971,445,2.129,450,2.263,460,1.389,493,1.819,556,2.702,575,6.002,587,1.808,621,1.711,712,2.033,714,4.316,849,2.624,945,2.521,956,2.112,957,2.521,1052,2.129,1116,1.924,1123,2.553,1133,2.183,1404,3.02,1601,3.092,1647,4.895,1656,2.285,1662,4.053,1850,4.473,1860,6.032,1864,3.374,2060,3.092,2103,3.173,2158,4.217,2159,3.504,2160,3.667,2161,4.217,2162,3.02,2163,4.217,2164,4.217,2165,4.217,2166,2.33]],["title/407",[493,3.511]],["content/407",[8,1.749,18,0.601,49,1.097,55,1.899,64,1.45,74,1.183,82,3.069,104,1.071,108,1.564,142,3.197,143,2.486,145,1.803,380,2.008,438,2.59,439,2.349,517,2.751,588,2.008,621,3.111,659,2.751,666,3.111,698,2.685,777,2.408,1052,2.008,1087,1.992,1327,5.743,1647,4.507,1860,6.345,2068,3.305,2132,5.077,2133,4.684,2154,5.413,2167,3.977,2168,3.977,2169,3.459,2170,3.977,2171,3.977,2172,3.977,2173,3.183,2174,8.674,2175,3.977,2176,6.224,2177,3.977,2178,6.224,2179,3.977]],["title/408",[18,0.808,1193,2.474,1647,2.562]],["content/408",[6,3.41,7,3.825,18,1.823,71,1.945,115,3.03,169,3.073,228,3.255,233,2.613,438,4.058,445,3.147,460,2.053,587,2.673,621,2.529,666,3.523,712,3.005,945,3.726,957,3.726,1123,3.774,1133,3.227,1193,4.014,1647,4.782,1864,4.987,1892,4.751,2103,4.69,2180,4.69]],["title/409",[493,3.511]],["content/409",[6,2.006,8,1.677,18,1.527,26,2.568,51,2.856,64,1.336,69,1.222,74,1.736,104,1.572,108,1.442,115,1.636,143,2.331,171,3.366,248,2.28,380,1.851,394,2.427,397,1.672,454,0.81,460,1.207,621,1.487,666,3.672,913,2.026,1089,4.52,1116,1.672,1131,2.026,1142,2.758,1193,2.698,1327,5.488,1647,4.332,1742,2.387,1767,3.684,1892,4.952,1932,3.377,1934,5.818,2097,5.377,2098,5.377,2132,2.427,2169,5.075,2181,3.665,2182,3.665,2183,3.665,2184,3.665,2185,3.665,2186,3.665,2187,3.665,2188,2.758,2189,5.836,2190,5.836,2191,5.836,2192,5.836,2193,3.188]],["title/410",[218,2.821,1193,2.474,1647,2.562]],["content/410",[6,3.336,7,3.741,18,1.765,71,1.902,112,1.976,115,3.001,150,2.423,169,3.007,218,5.64,228,3.185,445,3.079,454,1.348,460,2.008,587,2.615,621,2.474,657,2.435,666,2.474,712,2.94,945,3.645,957,3.645,1123,3.692,1133,3.157,1193,3.952,1647,4.092,1804,4.272,1864,4.879,1892,3.336,2103,4.588]],["title/411",[493,3.511]],["content/411",[0,4.161,8,1.317,64,2.463,119,3.439,145,4.725,218,4.838,359,6.228,406,4.562,408,5.357,666,2.742,1131,3.735,1327,6.078,1647,4.394,1776,3.662,1892,5.023,2194,6.759,2195,6.759,2196,6.759,2197,6.759,2198,6.759,2199,6.759]],["title/402",[114,1.784,115,1.501,2149,4.655]],["content/402",[88,3.713,131,3.175,194,3.385,322,7.401,397,4.063,477,3.161,588,4.497,1015,4.973,2200,8.206,2201,6.002,2202,7.746,2203,8.906]],["title/412",[114,1.784,115,1.501,493,2.309]],["content/412",[]],["title/413",[142,2.692,2204,6.458]],["content/413",[8,1.786,52,2.865,55,1.99,99,3.036,100,3.015,104,1.757,142,3.735,233,2.734,460,2.148,659,3.96,666,2.646,1106,3.31,1138,3.9,1647,3.122,1860,4.396,1892,3.569,2032,5.421,2132,4.319,2205,5.219,2206,8.96,2207,7.446,2208,5.673,2209,6.01]],["title/414",[8,0.768,1895,4.283,2210,5.352]],["content/414",[8,1.773,18,1.522,55,1.931,64,2.833,65,1.89,97,2.318,99,2.946,100,2.926,104,1.095,115,1.14,142,3.658,233,1.704,253,1.842,286,3.252,311,1.685,313,1.615,380,2.052,413,2.528,416,3.498,460,1.338,477,1.442,556,2.604,582,1.931,655,1.891,659,2.797,666,2.568,712,1.959,714,1.959,720,1.354,1106,1.502,1575,2.202,1647,3.721,1772,2.791,1860,2.739,1872,2.91,1892,2.224,1898,5.832,1902,3.745,1905,7.164,1907,3.745,1908,3.534,1909,5.832,1914,2.791,1962,3.252,2132,2.691,2133,3.058,2208,3.534,2211,4.064,2212,3.745]],["title/419",[114,1.784,115,1.501,1021,3.379]],["content/419",[114,3.563,115,2.998,233,2.977,279,2.123,313,2.822,477,3.794,482,2.348,655,4.417,949,5.085,953,5.901,1021,5.991,1069,3.742,1193,3.283,1201,4.702,1545,4.007,1583,4.976,1635,3.965,1647,3.399,2144,5.207]],["title/420",[2213,8.139]],["content/420",[8,1.623,18,1.5,55,1.881,108,2.424,228,3.22,233,4.164,308,2.929,450,3.309,466,3.733,492,3.695,493,2.659,639,2.32,655,2.869,657,2.462,659,2.724,666,3.495,976,2.889,1106,2.277,1138,5.151,1193,3.983,1597,4.319,1764,4.081,1772,4.233,1892,4.714,2214,6.483,2215,5.68]],["title/421",[1647,3.896]],["content/421",[3,2.562,8,1.514,18,1.466,51,2.889,55,1.802,69,1.968,74,1.757,143,2.358,145,4.398,150,2.346,228,3.084,332,2.142,450,3.169,493,2.547,504,3.199,655,2.748,657,2.358,1647,5.33,1772,4.055,1860,3.979,1868,4.137,1891,5.857,2031,5.74,2132,3.909,2133,4.443,2216,5.135,2217,5.135,2218,8.359,2219,5.633]],["title/422",[957,3.861,1123,3.91]],["content/422",[3,1.844,8,1.393,18,1.357,34,1.584,48,1.451,49,1.171,50,2.2,51,3.206,55,1.296,57,5.127,64,1.548,65,1.269,69,2.665,74,1.949,100,3.696,104,1.765,114,2.184,115,2.52,119,2.455,142,2.731,143,1.697,145,1.926,150,1.688,152,3.336,228,2.219,309,2.145,380,3.308,445,4.038,454,0.939,714,3.159,957,3.917,976,1.991,1106,1.57,1123,2.573,1647,3.136,1772,2.918,1860,4.415,1913,6.037,1914,2.918,2018,3.115,2131,4.692,2132,2.813,2133,3.197,2216,3.695,2217,3.695,2220,4.249,2221,4.249,2222,4.249]],["title/423",[538,3.093]],["content/423",[18,1.265,114,2.791,115,2.348,228,4.374,233,3.51,279,1.873,332,3.038,454,1.851,495,4.299,538,4.015,1094,5.868,1647,4.008,2223,7.716,2224,5.868,2225,7.716]],["title/424",[2224,5.703]],["content/424",[3,2.135,8,1.693,18,1.106,24,1.906,52,2.161,112,2.835,145,4.39,176,2.074,218,3.858,228,2.57,347,5.243,376,3.316,379,2.372,406,2.445,453,3.153,517,2.174,559,3.759,581,2.188,639,1.852,684,2.274,1647,4.956,2144,7.102,2226,4.92,2227,4.92,2228,4.92,2229,6.773,2230,6.085,2231,4.92,2232,4.92,2233,4.92,2234,6.368,2235,4.92,2236,4.92,2237,4.92,2238,4.533]],["title/425",[2225,7.5]],["content/425",[8,1.207,18,1.6,47,1.871,48,1.286,49,1.038,51,2.916,55,1.148,61,2.124,64,1.372,65,1.124,100,3.42,104,1.014,115,1.055,142,3.084,143,1.503,145,1.706,229,3.706,233,4.442,477,3.254,664,3.943,666,4.299,1615,2.695,1852,2.76,1891,2.637,1892,5.798,1914,2.585,2032,4.953,2037,3.128,2208,5.183,2209,6.817,2212,5.491,2239,3.764,2240,3.764,2241,8.414,2242,5.96,2243,5.96,2244,5.96,2245,3.468,2246,3.468,2247,5.96,2248,3.764]],["title/415",[114,1.784,115,1.501,1204,3.241]],["content/415",[5,3.683,8,1.691,114,2.308,115,1.942,523,5.891,532,4.96,538,3.547,1106,2.559,1124,3.268,1204,4.194,1535,4.756,1592,4.756,2159,5.756,2249,5.211,2250,6.926,2251,10.556,2252,7.468,2253,9.333,2254,9.333]],["title/416",[2255,6.458,2256,5.951]],["content/416",[5,5.671,141,4.961,253,4.833,416,4.698,460,2.8,493,3.667,538,4.053,1265,5.448,1662,5.289,2256,7.833,2257,8.501,2258,7.065]],["title/417",[538,2.454,2083,5.367]],["content/417",[18,1.624,24,2.388,48,2.105,102,3.138,112,1.998,115,1.728,134,1.783,142,2.57,176,2.599,185,2.776,194,3.274,228,3.22,233,2.584,482,2.038,505,2.528,538,3.775,587,2.644,592,3.165,653,4.013,714,4.154,1049,4.774,1480,4.762,1535,4.233,1662,3.835,1749,4.154,1804,4.319,2077,6.17,2083,7.16,2259,5.361,2260,3.733]],["title/418",[69,2.152,1124,3.047]],["content/418",[65,2.538,69,2.833,74,2.529,102,4.328,108,3.344,115,2.384,119,3.185,143,3.395,408,4.961,445,4.293,483,5.729,1819,5.838,2261,4.698,2262,6.584,2263,6.802]],["title/429",[74,1.921,1124,3.047]],["content/429",[18,1.437,74,3.399,112,3.083,150,3.779,538,3.614,1124,4.488,1184,5.057]],["title/430",[1480,3.569,2264,6.458]],["content/430",[8,1.434,18,1.778,71,3.12,74,2.286,104,3.37,150,3.054,248,4.782,639,2.893,2265,9.999,2266,7.081,2267,6.684]],["title/431",[1480,3.569,2268,6.458]],["content/431",[8,1.133,18,1.859,71,2.465,74,2.351,104,3.204,150,3.14,587,3.389,639,2.974,684,3.653,1208,5.794,2266,7.281,2269,7.902,2270,7.902]],["title/432",[1480,3.569,2271,6.458]],["content/432",[8,1.277,48,3.75,49,3.027,71,2.779,248,5.541,639,3.352,2272,8.906,2273,8.906,2274,10.115]],["title/433",[2275,8.139]],["content/433",[8,1.412,71,3.072,104,2.652,2276,9.844,2277,9.844,2278,7.624]],["title/434",[1480,3.569,2279,6.458]],["content/434",[8,1.679,18,1.668,71,3.092,104,3.273,145,3.436,460,2.497,639,2.854,1133,3.925,1903,5.312,2103,5.705,2132,5.019,2280,7.581,2281,6.986]],["title/435",[1480,3.569,2282,6.458]],["content/435",[8,1.238,18,1.626,71,2.693,74,2.568,104,3.31,150,3.43,395,5.297,639,3.249,2283,8.632,2284,7.507]],["title/436",[1480,3.569,2285,6.458]],["content/436",[8,1.691,18,1.594,71,2.912,74,2.06,104,3.177,145,3.139,150,2.752,395,4.25,460,2.281,639,2.607,1133,3.586,1185,4.309,1903,6.54,2103,5.211,2132,4.585,2284,6.023,2286,6.926,2287,6.926]],["title/437",[2288,8.139]],["content/437",[8,1.422,18,1.668,37,3.892,71,2.365,103,4.71,104,2.042,380,3.828,406,3.768,445,3.828,639,2.854,2135,5.705,2217,9.602,2284,6.593,2289,7.581,2290,7.581,2291,7.581,2292,4.717]],["title/438",[1480,3.569,2293,6.458]],["content/438",[8,1.412,18,1.013,24,3.158,49,1.85,57,2.499,62,3.36,64,2.971,65,3.101,69,1.46,70,4.037,71,2.093,74,1.996,104,2.196,108,1.723,150,1.741,196,2.689,307,2.853,397,3.06,400,2.213,445,3.387,454,0.969,495,2.249,516,4.936,639,1.649,657,1.75,659,1.936,913,2.422,1071,2.499,1116,1.999,1449,3.506,1525,6.272,1914,4.607,2131,4.804,2294,4.382,2295,4.382,2296,4.382,2297,4.382,2298,4.382,2299,4.037,2300,4.382,2301,6.4,2302,3.811,2303,4.037,2304,3.641,2305,4.037]],["title/439",[1480,3.569,2303,5.951]],["content/439",[8,1.183,18,1.581,64,3.007,71,2.574,74,3.114,100,3.814,104,3.096,150,3.278,639,3.106,1525,5.666,2301,5.782,2306,8.251,2307,8.251]],["title/440",[1480,3.569,2304,5.367]],["content/440",[103,4.762,659,4.428,1116,4.571,2131,7.176,2308,9.233]],["title/441",[1480,3.569,2308,5.951]],["content/441",[8,1.567,12,2.571,18,1.335,62,2.508,65,3.262,71,1.562,74,2.207,104,2.632,150,1.99,255,4.912,448,4.007,460,2.443,621,2.032,639,1.885,655,3.453,659,3.905,698,3.2,1525,3.439,1914,5.095,2131,5.313,2299,4.614,2301,3.509,2309,5.008,2310,7.419,2311,5.008,2312,8.837,2313,5.008,2314,8.837,2315,5.008,2316,2.857,2317,5.198]],["title/442",[1480,3.569,2318,6.458]],["content/442",[8,1.496,18,1.121,24,2.875,49,1.381,57,2.857,62,3.716,65,2.917,71,2.315,74,2.207,104,2.38,108,1.97,150,1.99,196,3.073,397,2.284,400,2.529,445,2.529,454,1.107,516,3.032,523,3.161,639,1.885,657,2,659,3.278,913,2.768,1116,2.284,1125,2.994,1525,5.095,1914,6.068,2131,6.328,2301,5.198,2302,4.355,2304,4.162,2319,4.614,2320,5.008,2321,6.836,2322,5.008,2323,5.008,2324,5.008,2325,4.614,2326,5.008]],["title/443",[1480,3.569,2305,5.951]],["content/443",[8,1.538,18,0.995,24,2.554,49,1.18,57,3.759,62,3.301,65,2.909,69,1.427,71,2.507,74,1.961,104,2.164,108,1.684,150,1.701,196,2.627,397,1.953,400,2.162,445,2.162,454,0.947,460,2.646,516,2.592,523,2.702,621,2.674,639,1.612,657,1.71,659,1.892,913,3.642,1116,1.953,1125,2.559,1525,4.526,1914,7.066,2131,7.369,2301,4.618,2302,5.731,2304,3.558,2319,3.945,2321,6.072,2325,8.314,2327,4.281,2328,4.281,2329,4.281]],["title/426",[143,2.579,1124,3.047]],["content/426",[119,3.625,143,4.61,150,3.844,538,3.677,1124,4.565,1533,6.405]],["title/427",[2330,8.139]],["content/427",[6,2.868,8,1.525,18,1.159,71,2.394,88,2.185,100,2.423,113,2.868,114,2.557,115,2.151,119,3.4,143,4.435,150,3.049,233,2.197,253,2.376,413,3.261,438,3.413,444,3.754,495,2.691,538,1.992,566,3.533,582,2.491,598,4.194,639,1.973,666,2.127,791,5.494,1116,2.391,1647,2.509,1892,4.198,1993,4.559,2331,4.83,2332,4.83,2333,5.242,2334,5.242,2335,5.242,2336,5.242,2337,5.242,2338,5.242,2339,5.242]],["title/428",[2340,7.5]],["content/428",[6,3.528,8,1.573,18,1.343,71,2.012,88,2.688,100,2.981,114,2.963,115,2.492,119,2.416,131,2.298,143,4.379,150,2.562,233,2.703,279,1.442,438,4.198,444,4.617,639,2.427,666,2.616,744,3.807,1021,4.07,1647,3.086,1892,4.864,1993,5.608,2331,5.941,2332,5.941,2341,6.448]],["title/444",[115,1.811,1124,3.047]],["content/444",[115,3.237,150,3.844,538,3.677,587,4.149,1124,4.565,1533,6.405]],["title/445",[1480,3.569,2342,6.458]],["content/445",[5,3.776,24,2.752,36,4.144,52,3.119,69,2.367,71,2.216,103,4.51,114,2.367,115,1.991,234,7.887,249,3.424,460,2.339,538,4.062,621,2.881,639,2.673,664,3.328,1856,4.786,1951,5.343,2343,7.101,2344,9.491,2345,7.101,2346,9.491]],["title/446",[18,0.975,2347,6.458]],["content/446",[18,1.626,55,3.749,112,2.798,115,2.42,142,3.598,148,4.871,639,3.249,714,4.162,1535,5.928,1911,7.507]],["title/447",[18,0.975,2348,6.458]],["content/447",[18,0.997,37,3.388,99,3.071,102,3.36,112,2.139,113,3.611,114,3.01,115,2.533,119,2.473,145,5.256,196,4.05,406,3.28,408,3.851,454,1.459,462,4.532,493,2.847,573,3.897,639,2.484,714,3.182,890,3.685,1015,3.685,1124,3.114,1535,4.532,1559,5.111,1894,6.081,2007,6.081,2135,4.966,2349,4.625]],["title/448",[18,0.975,2350,6.458]],["content/448",[8,1.032,18,1.446,74,2.14,115,2.017,143,4.581,477,2.552,493,3.103,556,4.609,573,4.247,586,3.975,639,2.707,714,3.468,793,4.939,900,2.887,947,5.274,1535,4.939,1647,3.442,1860,6.451,2068,5.977,2069,6.627,2351,7.192,2352,7.192]],["title/449",[18,0.975,2353,5.951]],["content/449",[18,1.211,64,2.921,100,4.749,104,2.159,253,3.632,445,4.047,460,2.639,495,4.115,639,3.017,664,3.756,714,3.864,1535,5.504,1872,5.74,2132,6.802,2267,6.97,2354,8.015,2355,7.385]],["title/450",[18,0.975,2356,6.458]],["content/450",[69,3.281,103,4.678,1106,3.637,2043,6.41,2316,5.616,2353,9.071]],["title/451",[18,0.975,2357,5.951]],["content/451",[18,1.282,64,2.198,65,1.801,69,2.01,100,4.538,104,2.286,253,2.734,445,3.046,450,3.237,454,1.333,462,4.142,494,4.422,639,2.27,661,3.3,664,2.826,698,2.602,714,2.908,1403,3.52,1535,4.142,1751,4.539,1872,4.319,1914,6.741,2131,6.077,2133,6.385,2267,7.38,2355,5.558,2358,8.485,2359,8.485,2360,8.485,2361,5.558]],["title/452",[18,0.975,2362,6.458]],["content/452",[69,3.281,103,4.678,1106,3.637,2043,6.41,2316,5.616,2357,9.071]],["title/453",[18,0.975,2363,5.951]],["content/453",[8,1.479,18,0.847,24,2.173,47,2.788,49,2.842,51,5.344,61,4.547,445,4.069,495,2.88,581,2.494,639,2.111,664,2.628,714,2.704,796,5.322,1106,2.977,1394,4.017,1535,3.852,2072,4.344,2216,9.496,2274,8.69,2364,5.609,2365,8.058,2366,5.609,2367,5.609,2368,5.609,2369,5.609,2370,5.168]],["title/454",[18,0.975,2371,6.458]],["content/454",[69,3.281,103,4.678,1106,3.637,2043,6.41,2316,5.616,2363,9.071]],["title/455",[18,0.975,2372,6.458]],["content/455",[18,1.538,104,3.034,114,3.393,115,2.855,152,5.183,454,1.747,517,3.492,581,3.514,639,2.974,664,3.703,714,3.81,1193,3.653,1535,5.427,2373,7.902]],["title/456",[18,0.975,2374,5.951]],["content/456",[69,3.281,103,4.678,1106,3.637,2043,6.41,2316,5.616,2374,9.071]],["title/457",[483,4.352,1124,3.047]],["content/457",[150,3.912,483,6.634,538,3.741,895,5.813,1124,4.645,1533,6.518]],["title/458",[2375,8.139]],["content/458",[5,5.329,474,5.991,784,7.176,2043,6.524,2376,9.233]],["title/459",[2376,7.5]],["content/459",[8,1.35,71,2.188,379,5.122,415,4.571,443,6.351,454,1.55,639,2.64,775,7.531,784,6.74,821,5.827,823,5.827,1000,6.099,1012,7.821,2377,9.411,2378,7.012,2379,7.012,2380,6.901,2381,6.461]],["title/460",[2382,8.139]],["content/460",[5,5.329,474,5.991,784,7.176,2043,6.524,2383,9.233]],["title/461",[2383,7.5]],["content/461",[5,4.262,49,2.833,51,3.922,112,2.598,115,2.881,134,2.318,672,4.302,900,4.125,908,5.136,1032,5.616,1064,6.207,1116,3.656,2043,5.218,2349,5.616,2384,7.385,2385,6.661]],["title/462",[2384,7.5]],["content/462",[8,1.392,49,2.675,71,1.842,112,3.61,144,5.534,176,2.489,379,4.03,414,5.534,415,2.868,443,5.801,454,1.305,639,2.223,775,4.725,784,6.949,788,6.946,821,4.907,823,4.907,1012,6.946,1394,5.986,2245,5.441,2386,9.703,2387,8.359,2388,5.904]],["title/463",[2389,8.139]],["content/463",[8,1.46,52,3.471,71,2.465,135,4.057,379,5.43,446,4.164,512,5.946,639,2.974,659,3.492,1228,6.567,2281,7.281,2381,7.281,2390,7.902,2391,7.902,2392,7.902,2393,7.902,2394,7.902]],["title/464",[2395,8.139]],["content/464",[8,1.501,50,4.272,53,6.707,71,2.574,112,2.675,415,4.007,443,4.933,639,3.106,1079,5.909,2396,10.465,2397,8.251,2398,8.251,2399,5.909,2400,8.251]],["title/465",[1124,3.047,2261,3.569]],["content/465",[150,3.655,490,6.317,538,3.496,1124,4.341,1533,6.09,1757,7.36,2261,5.084,2401,8.476,2402,9.198,2403,7.36]],["title/466",[2404,8.139]],["content/466",[52,3.624,112,3.918,135,5.901,538,3.135,639,3.106,744,4.872,796,5.905,1108,6.857,2405,8.251,2406,7.176,2407,7.603]],["title/467",[2408,8.139]],["content/467",[52,3.624,112,2.675,135,5.901,538,3.135,639,3.106,744,4.872,1108,6.857,1394,7.495,2406,7.176,2407,7.603,2409,8.251,2410,11.494]],["title/468",[1124,3.047,1819,4.435]],["content/468",[112,2.982,150,3.655,482,3.041,538,3.496,1054,5.367,1124,4.341,1620,4.501,1819,7.689,2077,6.587]],["title/469",[1480,3.569,2411,6.458]],["content/469",[519,6.064,857,7.282,2412,9.576]],["title/470",[1480,3.569,2412,5.951]],["content/470",[346,7.677,857,7.149,2072,7.902,2413,9.401]],["title/471",[1480,3.569,2413,5.951]],["content/471",[857,7.149,1903,7.149,2414,8.873,2415,8.479]],["title/472",[1480,3.569,2414,5.616]],["content/472",[8,1.297,18,0.999,36,1.859,71,0.994,102,1.622,103,3.143,108,1.253,111,1.761,114,1.062,115,0.893,119,1.194,131,1.858,134,0.922,143,1.273,176,1.343,219,2.887,242,1.525,279,0.713,308,2.477,310,1.622,346,3.922,409,3.89,416,1.761,445,1.609,454,0.704,460,1.049,462,3.579,469,2.147,474,1.905,475,2.468,476,3.512,478,2.55,488,1.71,519,3.041,524,1.314,538,1.211,557,1.514,621,1.293,623,1.905,639,1.199,641,1.571,665,4.974,666,1.293,719,2.075,889,1.217,908,2.042,956,1.596,1052,1.609,1054,1.859,1076,1.838,1094,2.233,1119,2.075,1184,1.694,1502,2.011,1521,2.336,1566,3.821,1611,2.648,1615,2.282,1620,1.559,1633,2.648,1666,2.648,1691,3.243,1722,3.078,1749,2.147,1819,6.211,1867,1.929,1903,2.233,1966,2.936,1967,4.331,2072,2.468,2162,2.282,2200,2.936,2214,2.398,2292,1.982,2415,6.349,2416,3.186,2417,3.186,2418,4.541,2419,2.648,2420,3.186,2421,3.186,2422,3.186,2423,3.186,2424,2.936,2425,2.936,2426,2.936,2427,3.186,2428,3.186]],["title/473",[1480,3.569,2424,5.951]],["content/473",[8,1.506,35,2.859,69,1.947,71,1.823,119,2.189,169,2.881,176,3.498,346,4.397,409,4.224,445,2.95,462,4.013,519,3.409,582,2.777,639,2.199,642,4.184,665,3.804,666,3.366,1133,3.025,1228,4.856,1620,4.721,1819,4.013,1850,4.013,1903,4.094,1967,4.856,2072,4.525,2214,4.397,2414,5.082,2415,6.895,2418,5.698,2429,5.843,2430,5.843,2431,5.843,2432,5.843,2433,5.843,2434,5.843]],["title/474",[408,3.768,1124,3.047]],["content/474",[119,3.625,150,3.844,408,6.735,538,3.677,1124,4.565,1277,7.094]],["title/475",[2435,8.139]],["content/475",[8,1.059,71,2.303,112,2.393,119,2.766,241,2.654,408,6.359,539,4.08,582,3.508,639,2.779,916,6.684,1133,3.822,2034,8.469,2115,6.42,2234,6.42,2436,7.382,2437,9.738,2438,7.382,2439,7.382]],["title/476",[2440,8.139]],["content/476",[6,4.093,8,1.409,24,2.898,71,2.334,119,2.802,241,2.69,408,6.401,438,4.87,539,4.134,582,3.555,639,2.816,916,6.719,1133,3.873,2123,6.892,2234,6.505,2441,9.823,2442,7.48]],["title/477",[2443,8.139]],["content/477",[8,1.725,71,2.537,408,4.745,460,2.678,639,3.061,947,5.962,1001,5.823,2252,6.506,2380,5.962,2444,8.131,2445,8.131,2446,8.131,2447,8.131,2448,7.072,2449,8.131]],["title/478",[2450,8.139]],["content/478",[8,1.697,24,3.019,34,2.906,71,2.431,119,2.919,408,6.528,460,2.566,639,2.933,2252,6.235,2380,5.713,2448,6.777,2451,7.792,2452,7.792,2453,7.792,2454,7.792,2455,7.792]],["title/479",[2340,7.5]],["content/479",[6,4.651,8,1.53,71,2.652,119,3.995,131,3.03,408,6.8,438,5.535,639,3.2,1376,6.088,2456,8.501,2457,8.501]],["title/480",[69,2.152,1124,3.047]],["content/480",[69,4.187,150,3.655,538,3.496,605,5.644,1124,4.341,1533,6.09,2018,6.745]],["title/481",[2458,8.139]],["content/481",[8,1.604,69,3.475,71,2.109,460,2.226,492,2.899,533,8.415,621,2.742,639,2.544,659,4.057,698,4.497,1503,9.294,1903,4.736,2316,3.855,2459,10.425,2460,6.759,2461,6.759]],["title/482",[2258,6.764]],["content/482",[8,1.559,49,2.417,69,3.938,71,2.735,253,3.973,639,3.3,659,3.874,661,4.797,2462,8.767,2463,8.767]],["title/483",[2464,7.5]],["content/483",[6,4.385,8,1.474,69,2.671,71,2.501,438,5.218,639,3.017,1376,5.74,2316,4.572,2465,10.274,2466,9.423,2467,7.385,2468,9.466,2469,9.466]],["title/484",[2470,8.139]],["content/484",[6,4.797,8,1.559,69,3.938,71,2.735,438,5.708,639,3.3,1376,6.278,2060,6.428,2471,8.767,2472,8.767]],["title/485",[2473,8.139]],["content/485",[8,1.706,69,3.754,71,2.465,477,2.804,639,2.974,1337,7.281,2082,4.916,2474,7.902,2475,7.902,2476,7.902,2477,7.902,2478,10.18,2479,10.18]],["title/486",[2480,8.139]],["content/486",[8,1.317,35,3.308,69,3.727,71,2.109,454,1.494,460,3.023,477,2.399,573,3.991,621,2.742,639,2.544,666,2.742,793,4.641,863,4.84,1093,4.555,1502,5.795,2033,6.228,2067,5.235,2316,5.947,2481,6.759,2482,6.759,2483,5.878,2484,6.228,2485,6.759,2486,6.759]],["title/487",[2484,7.5]],["content/487",[8,1.46,69,3.965,71,2.465,460,3.353,477,2.804,589,4.241,639,2.974,659,3.492,863,5.659,2316,6.425,2487,7.902,2488,7.902,2489,7.902]],["title/488",[2490,8.139]],["content/488",[8,1.798,69,3.19,71,2.244,119,3.586,639,2.707,1174,4.847,2316,4.103,2491,7.192,2492,7.192,2493,9.572,2494,9.572,2495,7.192,2496,8.883,2497,7.192]],["title/489",[2498,8.139]],["content/489",[8,1.277,35,4.358,38,7.746,69,3.966,71,2.779,445,4.497,639,3.352,1116,4.063,2252,7.126,2499,8.906]],["title/490",[2500,8.139]],["content/490",[3,4.699,8,1.045,24,2.823,35,3.565,38,6.336,69,3.609,71,2.273,445,4.875,454,1.611,460,3.179,526,4.293,621,3.917,639,2.742,1106,2.692,1116,3.324,2501,7.286,2502,6.713,2503,4.111]],["title/491",[2504,8.139]],["content/491",[8,1.277,69,3.966,71,2.779,639,3.352,1087,4.461,1116,4.063,1723,8.206,2252,7.126,2316,5.08,2505,8.906]],["title/492",[2506,8.139]],["content/492",[8,1.319,69,4.023,71,2.87,639,3.462,1116,4.196,1828,7.124,2507,9.198,2508,9.198]],["title/493",[2509,8.139]],["content/493",[8,1.045,24,4.647,69,3.609,71,2.273,229,3.65,328,5.643,460,2.399,492,3.125,639,2.742,659,3.22,698,5.174,1116,3.324,2316,4.156,2510,7.286,2511,6.713,2512,6.713]],["title/494",[2513,8.139]],["content/494",[8,1.15,69,3.779,71,2.501,460,2.639,492,3.437,639,3.017,659,3.542,698,5.159,1116,3.656,1521,5.877,2316,4.572,2511,7.385,2512,7.385,2514,8.015]],["title/495",[445,3.261,1124,3.047]],["content/495",[24,3.564,49,2.536,55,2.807,150,3.655,445,5.654,538,3.496,1124,4.341,1277,6.745,2515,9.198]],["title/496",[2516,8.139]],["content/496",[8,1.341,71,2.918,445,5.711,2060,8.293,2072,7.243,2517,8.617,2518,8.617]],["title/497",[2258,6.764]],["content/497",[8,1.257,24,3.397,49,2.417,71,2.735,253,3.973,445,5.967,621,3.557,639,3.3,2062,6.428,2519,8.767,2520,6.597]],["title/498",[2521,7.079]],["content/498",[8,1.317,24,4.333,49,3.224,71,2.109,445,5.647,573,3.991,639,2.544,957,4.041,1903,6.433,2061,5.235,2062,6.731,2517,6.228,2518,6.228,2520,6.908,2522,7.984,2523,5.878,2524,6.759]],["title/499",[2525,8.139]],["content/499",[8,1.328,24,4.55,49,3.099,71,2.134,445,6.249,639,2.575,948,6.352,2061,5.298,2062,6.787,2520,6.965,2522,8.05,2523,5.95]],["title/500",[2526,8.139]],["content/500",[8,1.255,24,4.692,49,2.771,71,1.966,229,3.157,445,5.075,639,2.372,653,4.104,2061,7.785,2062,7.962,2520,8.171,2522,5.481,2523,7.61,2527,6.303,2528,8.75,2529,8.75]],["title/501",[2530,8.139]],["content/501",[8,1.645,24,3.709,49,2.639,69,2.397,71,2.244,445,5.792,454,1.59,573,4.247,639,2.707,666,2.918,2045,6.627,2061,5.57,2062,7.018,2520,5.412,2531,7.192,2532,7.192,2533,7.192,2534,7.192]],["title/502",[2535,8.139]],["content/502",[8,1.238,24,4.547,69,2.877,71,2.693,445,5.925,639,3.249,2062,6.329,2520,8.102,2536,8.632]],["title/503",[2537,8.139]],["content/503",[8,1.118,24,4.335,49,3.085,52,3.422,71,2.431,445,5.649,639,2.933,653,5.073,1087,3.903,1377,4.397,2061,6.035,2062,7.397,2520,5.863,2538,7.792]],["title/521",[1124,3.047,2262,5.002]],["content/521",[150,3.982,538,3.808,1124,4.728,2262,7.761,2539,7.761]],["title/522",[2540,8.139]],["content/522",[8,1.447,36,4.547,71,2.431,253,5.071,466,6.109,526,3.465,639,2.933,849,4.848,1678,8.419,2541,7.792,2542,7.792,2543,7.792,2544,11.188]],["title/523",[2545,8.139]],["content/523",[8,1.298,71,2.824,253,5.432,462,6.215,466,5.48,639,3.407,2041,10.215,2546,9.05]],["title/524",[2547,8.139]],["content/524",[8,1.515,71,2.613,253,5.245,514,6.094,639,3.152,661,4.582,773,4.336,2548,8.374,2549,8.374,2550,8.374,2551,10.564]],["title/525",[2552,8.139]],["content/525",[8,1.637,71,2.216,253,4.301,460,3.52,526,4.754,639,2.673,1095,7.142,1767,4.482,2238,6.543,2553,7.101,2554,7.101,2555,7.101,2556,7.101,2557,7.101,2558,7.101,2559,7.101,2560,7.101,2561,7.101,2562,7.101]],["title/504",[1124,3.047,2263,5.168]],["content/504",[112,2.982,119,3.446,150,3.655,347,6.587,538,3.496,1054,5.367,1124,4.341,2144,6.745,2230,7.644,2263,7.36]],["title/505",[2563,8.139]],["content/505",[8,1.605,69,2.597,71,2.431,112,2.526,347,5.58,443,6.031,639,2.933,659,3.443,1054,4.547,2229,7.814,2263,6.235,2316,4.445,2564,7.792,2565,5.863,2566,7.792,2567,7.792,2568,7.792]],["title/506",[2569,8.139]],["content/506",[6,4.324,8,1.46,69,2.634,71,2.465,376,5.325,438,5.145,443,6.086,639,2.974,659,4.499,1376,5.659,2229,7.885,2316,4.507,2565,7.66,2570,7.902,2571,7.902]],["title/507",[2572,8.139]],["content/507",[8,1.617,69,2.032,71,1.902,112,1.976,347,4.366,443,5.112,538,2.317,639,2.295,641,3.007,683,3.849,1054,3.558,1276,4.272,1721,4.187,2229,6.622,2263,4.879,2316,3.478,2448,5.303,2565,6.434,2573,6.097,2574,8.55,2575,6.097,2576,9.874,2577,6.097,2578,8.55,2579,6.097,2580,6.097,2581,6.097,2582,6.097,2583,6.097,2584,6.097]],["title/508",[102,3.288,1124,3.047]],["content/508",[102,5.758,150,3.716,538,3.554,587,4.011,890,5.222,1076,5.394,1124,4.413,1856,6.302]],["title/509",[2585,8.139]],["content/509",[102,4.328,115,2.384,454,1.879,581,3.78,589,4.563,712,4.099,948,5.148,1087,4.258,1903,7.473,2043,5.535,2349,7.473,2521,9.275]],["title/510",[2521,7.079]],["content/510",[24,2.978,49,3.449,52,3.376,71,3.468,102,5.658,306,3.417,639,2.893,890,4.291,948,6.73,1185,4.782,2586,7.685]],["title/511",[2587,8.139]],["content/511",[24,4.735,49,3.369,102,5.429,306,3.78,639,3.2,1076,6.152,2588,8.501]],["title/512",[2589,8.139]],["content/512",[18,1.615,36,5.538,49,3.146,74,2.113,102,5.443,109,4.096,114,3.163,182,4.551,183,4.245,477,2.52,581,3.158,639,2.673,1377,5.355,1558,5.085,1856,6.396,2590,7.101,2591,5.901]],["title/513",[119,2.419,1124,3.047]],["content/513",[119,4.325,150,3.844,443,5.784,538,3.677,1124,4.565,1277,7.094]],["title/514",[2258,6.764]],["content/514",[8,1.559,71,2.735,119,3.285,253,3.973,467,6.597,621,3.557,639,3.3,1664,5.908,2380,7.971,2592,8.767,2593,8.767]],["title/515",[2464,7.5]],["content/515",[6,4.515,8,1.501,71,2.574,438,5.372,639,3.106,1376,5.909,2466,6.857,2467,7.603,2468,9.643,2469,9.643,2594,10.465,2595,8.251,2596,8.251]],["title/516",[2597,8.139]],["content/516",[8,1.637,71,2.537,119,3.046,253,3.685,443,4.861,639,3.061,1001,5.823,2380,7.603,2598,8.131,2599,9.928,2600,8.131,2601,8.131,2602,8.131]],["title/517",[2603,8.139]],["content/517",[8,1.559,71,2.735,253,5.356,443,5.241,639,3.3,1001,6.278,2604,8.767,2605,8.078,2606,8.767,2607,8.767]],["title/518",[2608,8.139]],["content/518",[8,1.605,57,4.445,71,2.431,119,2.919,144,5.159,443,4.658,639,2.933,650,5.713,1001,5.58,2380,8.203,2609,10.089,2610,10.089,2611,7.792,2612,7.792,2613,7.18]],["title/519",[2614,8.139]],["content/519",[8,1.298,71,2.824,119,3.391,639,3.407,2380,8.129,2613,8.339,2615,9.05,2616,11.086,2617,9.05]],["title/520",[2618,8.139]],["content/520",[8,1.298,71,2.824,119,3.391,639,3.407,2380,8.129,2619,9.05,2620,11.086,2621,9.05,2622,9.05]],["title/526",[108,2.54,1124,3.047]],["content/526",[8,1.364,78,5.057,108,4.494,150,3.779,538,3.614,1124,4.488,1533,6.297]],["title/527",[2623,8.139]],["content/527",[8,1.006,18,1.059,24,2.717,71,2.936,108,2.758,114,2.337,115,2.639,131,2.499,134,2.028,474,4.192,523,4.426,587,3.007,600,4.303,657,2.801,1003,5.142,1052,3.541,1116,4.293,1130,5.277,1575,3.8,1856,4.726,2169,6.099,2349,4.914,2385,5.827,2624,7.012,2625,9.411]],["title/528",[65,1.928,1124,3.047]],["content/528",[65,3.482,150,3.912,538,3.741,1124,4.645,1533,6.518]],["title/529",[322,4.448,1480,2.958,2626,5.352]],["content/529",[8,1.277,65,3.278,71,2.779,104,3.206,105,5.393,426,6.898,639,3.352,2627,8.906,2628,8.906]],["title/531",[114,1.784,115,1.501,1193,2.474]],["content/531",[]],["title/532",[18,0.808,115,1.501,1193,2.474]],["content/532",[3,2.213,8,1.281,18,1.763,69,1.699,88,2.126,99,3.499,104,1.374,115,1.43,143,2.036,152,3.828,194,1.938,228,2.663,233,2.137,454,1.127,460,1.679,573,3.011,588,2.575,664,2.389,666,3.05,712,2.458,777,3.088,889,1.947,957,3.048,1052,4.51,1085,3.837,1087,3.766,1116,2.326,1157,2.818,1193,4.128,1647,3.598,1772,5.163,1874,4.198,1892,4.114,2202,7.767,2629,5.067]],["title/533",[18,0.602,115,1.118,233,1.671,249,1.922,1193,1.843]],["content/533",[5,4.445,8,1.199,18,1.682,88,2.461,114,1.968,115,1.656,194,3.177,228,4.366,233,3.504,249,2.847,397,2.693,450,3.169,454,1.305,460,1.944,588,2.982,655,2.748,666,3.391,712,2.847,957,3.53,1052,4.221,1085,4.443,1193,2.729,1647,4.001,1772,4.055,1892,4.574,2104,5.441,2115,7.27,2202,5.135,2630,8.359]],["title/534",[78,2.12,108,1.568,115,1.118,397,1.819,1193,1.843]],["content/534",[8,1.032,78,3.825,88,2.998,108,3.765,115,2.684,233,3.015,397,3.281,412,5.04,450,3.86,460,2.369,473,6.255,474,4.3,657,2.873,666,2.918,1130,5.412,1193,3.325,1671,7.955,1763,5.755,1852,7.888,1892,3.935,2631,7.192,2632,7.192]],["title/535",[115,1.281,397,2.085,1138,2.732,1193,2.113]],["content/535",[8,1.938,88,1.559,115,1.048,119,1.401,233,1.567,397,1.705,411,2.088,436,2.007,450,2.007,460,2.426,466,2.264,474,2.235,574,1.632,657,1.493,659,3.704,666,1.517,683,2.36,1106,1.381,1138,3.544,1193,1.728,1243,2.992,1631,4.154,1763,4.744,1764,4.877,1766,3.445,1853,3.445,1892,2.046,1921,2.568,2205,4.744,2214,2.813,2215,3.445,2599,3.252,2633,5.928,2634,3.739,2635,3.739,2636,3.739,2637,3.445,2638,2.813,2639,3.739,2640,3.739]],["title/536",[18,0.69,115,1.281,218,2.408,1193,2.113]],["content/536",[8,1.217,18,1.483,88,2.514,112,1.955,115,2.379,150,2.397,194,2.292,218,6.303,228,3.15,233,2.528,454,1.876,460,1.986,521,2.826,590,4.539,600,3.701,641,4.184,666,3.443,712,2.908,892,3.753,957,3.606,1085,4.539,1193,2.788,1647,4.061,1892,4.643,2214,4.539,2641,8.485]],["title/537",[1157,3.569,1193,2.985]],["content/537",[8,1.791,18,1.504,55,1.076,84,2.26,88,3.701,233,4.855,249,1.7,460,3.121,466,3.427,659,3.132,666,4.626,719,2.296,731,5.196,1138,4.237,1157,1.949,1193,3.276,1592,5.569,1644,2.586,1852,4.149,1892,6.239,2565,2.654,2642,3.527,2643,3.527,2644,3.527,2645,5.659]],["title/530",[114,1.784,115,1.501,2646,3.676]],["content/530",[114,3.823,115,3.216,194,2.733,219,3.14,454,1.59,510,3.574,891,5.187,976,4.485,1015,4.016,1076,4.149,1839,5.477,2646,6.573,2647,5.977,2648,7.192,2649,5.874]],["title/538",[114,1.523,115,1.281,891,2.476,2646,3.138]],["content/538",[8,1.643,18,1.332,88,2.657,114,2.125,115,1.787,233,3.697,309,3.219,460,2.099,495,3.273,510,3.168,659,2.817,666,3.578,900,2.559,1138,5.272,1193,2.947,1647,3.051,1891,6.18,1892,5.533,2099,5.297,2496,4.937,2650,4.937,2651,4.674,2652,5.544,2653,8.126,2654,5.874]],["title/539",[115,1.811,1076,3.725]],["content/539",[19,5.708,114,2.922,115,2.458,143,3.501,309,4.427,443,5.241,1076,6.271,1133,4.539,2099,7.286,2655,8.078,2656,7.286,2657,8.767]],["title/540",[510,2.66,1193,2.474,2658,5.352]],["content/540",[114,2.054,115,2.785,440,3.442,454,1.363,470,3.113,495,3.165,510,4.936,538,2.342,657,2.462,719,4.013,761,3.516,898,3.373,1061,3.835,1133,3.192,1193,5.42,1818,5.217,2026,4.774,2141,4.774,2659,6.673,2660,3.442,2661,3.373,2662,4.638,2663,6.17,2664,3.64,2665,5.361,2666,6.17,2667,4.233]],["title/541",[510,2.66,1138,3.2,1193,2.474]],["content/541",[18,1.371,115,2.545,145,2.376,183,3.134,229,2.626,309,3.874,397,2.391,408,3.059,454,1.159,468,4.356,510,3.813,549,3.413,641,2.585,947,3.844,1001,3.754,1015,2.927,1131,2.897,1133,3.973,1138,5.425,1143,3.134,1190,3.973,1193,4.914,1656,2.84,1856,3.533,1891,3.673,2030,4.83,2031,5.269,2650,4.06,2659,4.06,2660,4.284,2661,4.198,2668,5.376,2669,3.6,2670,3.533,2671,4.83,2672,4.83,2673,5.242,2674,5.242]],["title/542",[18,0.808,510,2.66,1193,2.474]],["content/542",[18,1.601,36,3.482,115,2.361,183,3.567,407,4.098,470,6.022,495,3.064,510,2.966,549,3.885,582,2.836,605,3.662,641,2.943,761,3.404,829,4.775,947,4.375,956,2.989,1087,2.989,1093,4.021,1142,4.49,1193,4.512,1621,5.19,1732,3.713,1804,4.181,2249,4.49,2652,5.19,2664,3.524,2665,5.19,2666,6.031,2669,4.098,2670,4.021]],["title/543",[510,2.66,1193,2.474,1852,3.925]],["content/543",[510,5.736,857,6.779,1138,5.784,1193,5.336,1852,7.094]],["title/544",[218,2.821,510,2.66,1193,2.474]],["content/544",[18,1.538,55,2.411,114,2.634,115,2.216,218,5.365,510,5.597,714,3.81,761,5.807,827,4.241,857,5.537,891,4.282,1193,4.706,1839,4.023,2675,7.281]],["title/546",[114,1.523,115,1.281,1839,2.327,2646,3.138]],["content/546",[18,0.85,28,1.119,47,1.742,48,1.197,49,0.966,61,1.978,74,1.043,104,2.177,114,1.877,115,2.266,134,1.014,142,1.461,143,1.4,148,1.978,171,2.022,185,1.578,242,1.678,243,2.246,248,4.391,279,0.784,313,1.393,321,2.407,400,1.77,440,3.144,450,1.881,454,1.245,484,1.182,510,1.742,517,1.549,532,2.51,546,1.978,557,1.666,585,2.212,605,2.151,672,3.022,714,1.69,761,3.212,793,2.407,816,2.022,827,1.881,858,2.212,898,1.918,976,1.642,1054,2.045,1115,1.999,1132,2.181,1133,3.654,1193,1.62,1244,2.51,1656,1.899,1760,3.794,1777,2.362,1818,3.409,1835,2.321,1839,5.258,1848,2.637,1856,4.756,1874,1.957,2026,2.715,2031,2.407,2141,5.465,2188,2.637,2349,2.456,2426,3.23,2659,4.361,2660,3.144,2661,1.918,2662,2.637,2663,2.51,2675,3.23,2676,2.913,2677,3.23,2678,2.57,2679,2.913,2680,2.913,2681,2.637,2682,3.505,2683,3.505]],["title/545",[114,1.523,115,1.281,538,1.737,2646,3.138]],["content/545",[8,1.142,18,1.202,48,1.44,69,1.405,71,1.316,88,1.758,103,3.095,112,1.367,114,2.171,115,2.232,143,1.684,194,1.602,233,1.768,454,0.932,460,2.145,510,3.237,524,1.739,529,1.976,538,4.295,592,2.165,666,2.643,761,2.405,900,1.693,1048,2.405,1052,2.129,1061,2.624,1069,2.222,1081,2.624,1133,3.373,1190,3.373,1239,3.374,1342,5.989,1647,2.018,1818,2.553,1845,3.02,1892,3.564,1915,3.173,1951,4.901,2646,2.896,2650,3.266,2651,3.092,2653,3.885,2656,3.504,2659,5.045,2660,3.637,2661,2.307,2662,3.173,2684,4.217,2685,7.333,2686,4.217,2687,4.217,2688,4.217,2689,4.217]],["title/547",[114,1.329,115,1.118,470,2.013,2646,2.738,2666,2.855]],["content/547",[24,2.195,74,1.686,78,3.013,97,3.232,104,1.526,108,2.228,114,1.888,115,1.589,248,3.525,307,3.689,309,2.861,400,4.099,454,1.253,470,2.861,493,3.502,510,2.816,538,3.604,574,2.474,777,3.431,889,2.163,1008,3.232,1157,4.486,1193,2.619,1505,4.534,1604,4.927,1638,4.388,2659,4.388,2663,5.813,2666,7.85,2667,5.574,2690,5.221,2691,5.666,2692,5.666,2693,4.927,2694,5.666,2695,5.666,2696,5.666]],["title/548",[493,2.786,2693,5.616]],["content/548",[8,1.591,88,2.436,103,2.777,108,2.298,114,1.947,115,2.326,183,3.493,229,2.927,233,2.449,454,1.292,460,1.924,474,3.493,510,2.904,517,2.582,587,2.506,657,2.334,664,2.738,666,2.371,1052,2.95,1054,3.409,1130,4.397,1133,3.025,1138,3.493,1193,2.701,1403,3.409,1593,4.284,1638,4.525,1892,3.197,2018,4.284,2031,5.698,2188,4.397,2646,4.013,2656,4.856,2660,3.262,2661,3.197,2666,5.942,2693,5.082,2697,5.843]],["title/549",[493,2.786,2690,5.951]],["content/549",[5,3.278,8,1.623,24,2.388,52,2.707,88,2.57,97,4.915,103,2.929,183,5.151,233,2.584,450,3.309,460,2.03,470,3.113,493,2.659,538,3.274,666,2.501,757,3.407,1054,3.597,1133,4.461,1138,3.685,1770,4.932,1892,3.373,2031,4.233,2650,6.673,2656,5.123,2666,7.113,2698,5.123,2699,6.164,2700,6.164,2701,6.164]],["title/550",[18,0.602,114,1.329,115,1.118,470,2.013,2646,2.738]],["content/550",[12,3.74,18,1.458,115,2.043,309,3.679,380,3.679,470,5.821,483,4.91,942,5.003,1015,4.068,1193,3.368,1512,5.482,1543,6.336,1676,5.643,1839,3.709,2652,6.336,2659,8.386,2669,5.003,2702,7.286,2703,7.286,2704,7.286]],["title/551",[55,2.484]],["content/551",[18,1.581,55,3.507,169,4.069,406,4.1,454,1.824,858,5.208,890,4.607,976,3.866,1850,5.666,2665,7.176,2678,6.05,2705,7.603,2706,8.251,2707,7.603]],["title/552",[143,3.251]],["content/552",[3,3.689,114,3.554,115,2.99,143,4.259,443,5.082,514,4.904,524,3.505,567,5.366,1098,4.797,2135,6.397,2646,5.838,2708,8.501]],["title/553",[145,3.689]],["content/553",[3,3.478,55,2.446,76,5.218,102,4.08,114,2.671,115,2.247,145,3.632,306,3.564,406,3.983,439,4.733,443,4.792,454,1.772,956,4.015,1133,4.15,1804,5.616,2188,6.031,2709,7.385,2710,5.616,2711,8.015]],["title/554",[82,2.254,131,1.629,454,1.01,1839,2.327]],["content/554",[18,1.437,24,3.685,34,3.547,108,3.741,131,3.39,454,2.103,510,4.726,2666,6.811]],["title/555",[104,1.442,454,1.183,1839,2.725]],["content/555",[24,3.564,104,2.478,144,6.09,406,4.571,454,2.034,467,6.922,510,4.571,1131,5.084,2666,6.587,2712,8]],["title/556",[64,2.354,142,2.692]],["content/556",[3,3.335,64,2.801,69,2.561,100,4.622,104,2.07,142,4.168,144,5.088,196,4.716,252,5.635,466,4.654,467,5.783,556,4.925,581,3.417,621,3.118,641,4.931,655,3.577,1872,5.504,1997,5.635,2712,6.684]],["title/557",[65,1.928,142,2.692]],["content/557",[3,2.735,65,2.613,69,2.101,100,2.914,104,2.357,142,3.648,144,5.793,196,3.868,426,6.777,454,1.393,467,6.584,494,4.621,526,2.803,641,4.957,655,2.933,659,2.785,661,3.449,698,2.719,726,5.238,948,3.817,1403,3.678,1780,6.416,1834,5.481,1872,4.514,1914,4.328,2131,4.514,2710,4.417,2712,7.61]],["title/558",[152,4.144]],["content/558",[18,1.41,26,4.853,69,2.308,104,1.866,114,3.765,115,3.167,131,2.469,643,4.853,683,5.891,761,3.951,908,4.438,947,5.078,1052,5.33,1076,3.995,1193,4.314,1662,4.309,1717,6.023,1722,4.09,2713,6.926]],["title/559",[61,4.593]],["content/559",[3,2.296,12,2.717,47,3.839,48,3.117,49,2.766,50,5.195,51,5.453,53,4.951,61,2.986,69,2.575,115,1.484,134,1.53,181,3.708,242,2.533,243,3.391,454,1.17,621,2.147,641,3.81,651,3.247,655,2.463,672,2.84,733,3.982,858,3.34,889,2.021,900,2.124,1052,2.672,1195,3.88,1510,3.445,1656,2.867,1770,4.234,1839,2.694,1856,3.566,1962,4.234,2246,7.118,2646,3.634,2666,3.789,2714,4.234]],["title/560",[102,2.725,114,1.784,115,1.501]],["content/560",[8,1.489,18,1.499,24,2.385,36,3.592,49,1.081,74,1.167,88,1.635,102,5.472,109,2.262,114,2.052,115,1.1,119,1.469,182,2.513,183,2.345,233,1.644,380,1.98,400,1.98,445,3.109,454,1.361,460,2.027,477,2.185,493,2.656,505,1.608,538,1.49,592,2.013,659,2.72,666,1.591,688,2.237,720,2.052,858,2.476,890,2.19,948,3.728,1076,3.551,1124,1.851,1131,2.167,1342,2.951,1424,7.153,1502,2.476,1533,2.597,1558,2.808,1647,1.877,1839,1.997,1856,5.121,1866,3.259,1892,3.368,2059,2.951,2087,3.614,2292,2.44,2349,2.748,2591,3.259,2685,3.614,2715,3.922,2716,3.037,2717,6.156,2718,3.922]],["title/561",[513,4.498]],["content/561",[]],["title/562",[436,4.369]],["content/562",[28,2.936,279,2.058,436,4.937,510,5.565,891,4.984,905,6.446,1833,6.922,2719,7.644,2720,7.644]],["title/563",[594,5.216]],["content/563",[8,0.947,101,4.489,439,3.897,499,3.647,512,4.966,543,4.726,589,3.542,594,7.096,596,5.74,599,7.855,602,6.081,891,3.576,905,4.625,1019,5.111,1184,3.509,1199,6.081,1639,6.081,1658,7.506,1661,4.726,1743,4.966,2721,4.966,2722,5.484,2723,6.6,2724,5.111,2725,8.323,2726,6.6,2727,6.6]],["title/564",[1874,4.545]],["content/564",[52,3.005,62,3.427,63,3.573,64,2.493,97,3.902,99,3.184,104,2.826,141,3.992,142,2.852,182,4.384,183,4.09,440,3.82,513,3.781,568,3.781,574,2.987,600,4.198,643,4.794,712,3.298,1061,4.256,1874,5.857,2012,7.169,2049,4.143,2680,5.685,2728,6.304,2729,6.841,2730,6.841]],["title/565",[48,2.78]],["content/565",[48,3.485,194,3.877,513,5.639,2679,8.479]],["title/566",[1874,4.545]],["content/566",[28,3.088,64,3.526,146,7.741,279,2.164,572,7.094,1061,6.019,2680,8.04]],["title/567",[8,0.926,469,4.352]],["content/567",[8,1.463,469,6.876,1568,7.481,2503,5.757]],["title/568",[8,0.926,896,3.725]],["content/568",[8,1.774,114,2.46,115,2.07,436,3.962,460,2.431,513,4.08,526,4.33,574,3.223,623,4.413,651,4.53,896,4.258,1014,5.286,1664,4.975,1767,4.659,2503,6.797]],["title/569",[8,0.926,623,3.861]],["content/569",[8,1.774,114,2.46,115,2.07,436,3.962,460,2.431,513,4.08,526,4.33,574,3.223,623,4.413,651,4.53,896,4.258,1014,5.286,1664,4.975,1767,4.659,2503,6.797]],["title/570",[8,0.768,574,2.337,1014,3.833]],["content/570",[8,1.774,114,2.46,115,2.07,436,3.962,460,2.431,513,4.08,526,4.33,574,3.223,623,4.413,651,4.53,896,4.258,1014,5.286,1664,4.975,1767,4.659,2503,6.797]],["title/571",[8,0.926,651,3.963]],["content/571",[8,1.774,114,2.46,115,2.07,436,3.962,460,2.431,513,4.08,526,4.33,574,3.223,623,4.413,651,4.53,896,4.258,1014,5.286,1664,4.975,1767,4.659,2503,6.797]],["title/572",[8,0.768,114,1.784,115,1.501]],["content/572",[8,1.774,114,2.46,115,2.07,436,3.962,460,2.431,513,4.08,526,4.33,574,3.223,623,4.413,651,4.53,896,4.258,1014,5.286,1664,4.975,1767,4.659,2503,6.797]],["title/573",[8,0.926,513,3.569]],["content/573",[8,1.774,114,2.46,115,2.07,436,3.962,460,2.431,513,4.08,526,4.33,574,3.223,623,4.413,651,4.53,896,4.258,1014,5.286,1664,4.975,1767,4.659,2503,6.797]],["title/586",[8,0.768,63,2.796,484,1.806]],["content/586",[8,1.433,18,0.941,47,3.097,50,4.496,63,3.255,279,1.942,306,3.861,397,2.843,470,4.384,482,2.871,484,4.073,505,3.56,535,4.315,618,6.084,621,2.529,887,6.218,888,4.126,889,2.38,890,3.48,891,3.377,2503,3.517]],["title/587",[8,0.656,484,1.542,505,1.874,535,2.271]],["content/587",[8,1.433,18,0.941,47,3.097,50,4.496,63,3.255,279,1.942,306,3.861,397,2.843,470,4.384,482,2.871,484,4.073,505,3.56,535,4.315,618,6.084,621,2.529,887,6.218,888,4.126,889,2.38,890,3.48,891,3.377,2503,3.517]],["title/588",[8,0.656,397,2.085,484,1.542,535,2.271]],["content/588",[8,1.433,18,0.941,47,3.097,50,4.496,63,3.255,279,1.942,306,3.861,397,2.843,470,4.384,482,2.871,484,4.073,505,3.56,535,4.315,618,6.084,621,2.529,887,6.218,888,4.126,889,2.38,890,3.48,891,3.377,2503,3.517]],["title/574",[8,0.926,2731,4.138]],["content/574",[8,1.774,64,2.921,65,2.393,332,4.486,1440,5.059,1873,4.987,2731,5.136,2732,4.918,2733,3.632,2734,5.877,2735,4.792]],["title/575",[8,0.926,2732,3.963]],["content/575",[8,1.774,64,2.921,65,2.393,332,4.486,1440,5.059,1873,4.987,2731,5.136,2732,4.918,2733,3.632,2734,5.877,2735,4.792]],["title/576",[8,0.926,2733,2.927]],["content/576",[8,1.774,64,2.921,65,2.393,332,4.486,1440,5.059,1873,4.987,2731,5.136,2732,4.918,2733,3.632,2734,5.877,2735,4.792]],["title/577",[8,0.507,64,1.289,65,1.056,1440,2.232,1873,2.2,2734,2.593]],["content/577",[8,1.774,64,2.921,65,2.393,332,4.486,1440,5.059,1873,4.987,2731,5.136,2732,4.918,2733,3.632,2734,5.877,2735,4.792]],["title/578",[8,0.926,2735,3.861]],["content/578",[8,1.774,64,2.921,65,2.393,332,4.486,1440,5.059,1873,4.987,2731,5.136,2732,4.918,2733,3.632,2734,5.877,2735,4.792]],["title/579",[8,0.768,539,2.958,1565,3.485]],["content/579",[1,4.093,8,1.77,14,2.699,21,4.475,32,2.43,45,3.124,224,4.475,332,2.452,469,4.555,526,3.005,539,5.073,621,3.724,735,4.331,770,4.736,1440,4.266,1565,5.977,1656,3.662,2503,6.806]],["title/580",[1,3.91,8,0.926]],["content/580",[1,4.093,8,1.77,14,2.699,21,4.475,32,2.43,45,3.124,224,4.475,332,2.452,469,4.555,526,3.005,539,5.073,621,3.724,735,4.331,770,4.736,1440,4.266,1565,5.977,1656,3.662,2503,6.806]],["title/581",[8,0.926,21,4.276]],["content/581",[1,4.093,8,1.77,14,2.699,21,4.475,32,2.43,45,3.124,224,4.475,332,2.452,469,4.555,526,3.005,539,5.073,621,3.724,735,4.331,770,4.736,1440,4.266,1565,5.977,1656,3.662,2503,6.806]],["title/582",[8,0.926,32,2.322]],["content/582",[1,4.093,8,1.77,14,2.699,21,4.475,32,2.43,45,3.124,224,4.475,332,2.452,469,4.555,526,3.005,539,5.073,621,3.724,735,4.331,770,4.736,1440,4.266,1565,5.977,1656,3.662,2503,6.806]],["title/583",[8,0.926,45,2.985]],["content/583",[1,4.093,8,1.77,14,2.699,21,4.475,32,2.43,45,3.124,224,4.475,332,2.452,469,4.555,526,3.005,539,5.073,621,3.724,735,4.331,770,4.736,1440,4.266,1565,5.977,1656,3.662,2503,6.806]],["title/584",[8,0.926,14,2.579]],["content/584",[1,4.093,8,1.77,14,2.699,21,4.475,32,2.43,45,3.124,224,4.475,332,2.452,469,4.555,526,3.005,539,5.073,621,3.724,735,4.331,770,4.736,1440,4.266,1565,5.977,1656,3.662,2503,6.806]],["title/585",[8,0.926,224,4.276]],["content/585",[1,4.093,8,1.77,14,2.699,21,4.475,32,2.43,45,3.124,224,4.475,332,2.452,469,4.555,526,3.005,539,5.073,621,3.724,735,4.331,770,4.736,1440,4.266,1565,5.977,1656,3.662,2503,6.806]],["title/595",[8,0.656,279,1.022,2736,3.351,2737,2.767]],["content/595",[8,1.682,279,2.623,454,1.363,460,2.837,484,2.08,499,3.407,526,2.741,531,2.628,535,3.063,545,2.909,551,3.442,574,2.691,607,4.233,661,3.373,1059,3.835,1670,3.685,1711,3.733,2503,6.068,2731,3.95,2732,3.782,2733,2.794,2735,3.685,2736,4.52,2737,3.733,2738,4.638,2739,3.733]],["title/596",[8,0.656,279,1.022,499,2.526,2731,2.929]],["content/596",[8,1.682,279,2.623,454,1.363,460,2.837,484,2.08,499,3.407,526,2.741,531,2.628,535,3.063,545,2.909,551,3.442,574,2.691,607,4.233,661,3.373,1059,3.835,1670,3.685,1711,3.733,2503,6.068,2731,3.95,2732,3.782,2733,2.794,2735,3.685,2736,4.52,2737,3.733,2738,4.638,2739,3.733]],["title/597",[8,0.656,279,1.022,545,2.156,2732,2.804]],["content/597",[8,1.682,279,2.623,454,1.363,460,2.837,484,2.08,499,3.407,526,2.741,531,2.628,535,3.063,545,2.909,551,3.442,574,2.691,607,4.233,661,3.373,1059,3.835,1670,3.685,1711,3.733,2503,6.068,2731,3.95,2732,3.782,2733,2.794,2735,3.685,2736,4.52,2737,3.733,2738,4.638,2739,3.733]],["title/598",[8,0.768,535,2.66,551,2.989]],["content/598",[8,1.682,279,2.623,454,1.363,460,2.837,484,2.08,499,3.407,526,2.741,531,2.628,535,3.063,545,2.909,551,3.442,574,2.691,607,4.233,661,3.373,1059,3.835,1670,3.685,1711,3.733,2503,6.068,2731,3.95,2732,3.782,2733,2.794,2735,3.685,2736,4.52,2737,3.733,2738,4.638,2739,3.733]],["title/599",[8,0.656,279,1.022,2733,2.071,2739,2.767]],["content/599",[8,1.682,279,2.623,454,1.363,460,2.837,484,2.08,499,3.407,526,2.741,531,2.628,535,3.063,545,2.909,551,3.442,574,2.691,607,4.233,661,3.373,1059,3.835,1670,3.685,1711,3.733,2503,6.068,2731,3.95,2732,3.782,2733,2.794,2735,3.685,2736,4.52,2737,3.733,2738,4.638,2739,3.733]],["title/600",[8,0.656,279,1.022,484,1.542,2735,2.732]],["content/600",[8,1.682,279,2.623,454,1.363,460,2.837,484,2.08,499,3.407,526,2.741,531,2.628,535,3.063,545,2.909,551,3.442,574,2.691,607,4.233,661,3.373,1059,3.835,1670,3.685,1711,3.733,2503,6.068,2731,3.95,2732,3.782,2733,2.794,2735,3.685,2736,4.52,2737,3.733,2738,4.638,2739,3.733]],["title/589",[8,0.926,551,3.606]],["content/589",[8,1.606,551,6.252,666,3.732,1838,4.891,2740,8.476,2741,7.644,2742,6.587,2743,8.476]],["title/590",[8,0.656,666,1.854,1838,2.43,2742,3.273]],["content/590",[8,1.606,551,6.252,666,3.732,1838,4.891,2740,8.476,2741,7.644,2742,6.587,2743,8.476]],["title/591",[2744,4.643]],["content/591",[279,1.988,479,4.132,507,3.528,509,4.728,539,3.563,546,3.638,578,4.852,579,3.807,604,4.132,900,2.589,911,4.428,1008,3.678,1028,4.012,1063,4.012,1065,4.994,1131,3.563,1620,3.155,1635,3.6,1643,4.012,1711,3.904,1818,3.904,1862,4.994,2015,4.617,2719,5.358,2744,5.07,2745,5.358,2746,5.358,2747,6.448,2748,5.608,2749,5.941,2750,4.269,2751,5.608,2752,5.358,2753,6.448]],["title/592",[2744,4.643]],["content/592",[279,1.609,411,4.016,421,4.609,441,5.755,442,6.627,443,4.3,493,3.103,521,3.37,532,5.151,539,3.975,542,6.255,543,5.151,605,4.413,891,3.897,900,2.887,1106,2.657,1659,5.04,1836,5.755,2013,5.274,2015,5.151,2668,5.04,2722,5.977,2744,4.103,2754,7.192,2755,6.255,2756,6.627,2757,7.192]],["title/593",[2758,8.139]],["content/593",[12,3.268,32,1.472,37,2.102,108,1.61,145,1.855,184,2.479,241,1.472,307,2.665,332,1.485,454,1.727,488,2.197,492,1.756,496,3.276,522,3.402,687,3.56,760,3.17,917,2.447,956,3.189,1021,2.584,1063,2.547,1075,3.56,1142,3.08,1195,3.002,1213,2.759,1244,2.932,1438,2.811,1485,2.665,1506,3.402,1597,2.869,1620,4.67,1635,3.554,1650,3.276,1743,3.08,1835,2.71,1850,2.811,1854,3.402,1868,2.869,1888,3.56,2067,3.17,2591,3.402,2651,3.002,2662,3.08,2719,5.29,2744,3.631,2749,5.866,2752,7.322,2755,3.56,2759,3.772,2760,3.402,2761,3.772,2762,4.094,2763,3.772,2764,3.17,2765,7.662,2766,4.094,2767,5.866,2768,6.366,2769,4.094,2770,4.094,2771,4.094,2772,3.56,2773,4.094,2774,4.094,2775,4.094,2776,4.094,2777,4.094]],["title/594",[2751,7.079]],["content/594",[143,3.637,183,3.992,454,1.476,529,3.129,539,3.691,562,3.584,900,2.681,915,3.046,1029,3.992,1133,3.458,1545,3.768,1589,4.782,1623,5.808,1891,4.68,2034,9.678,2466,8.61,2751,9.678,2755,5.808,2778,6.678,2779,5.808,2780,6.678,2781,6.154,2782,6.678,2783,5.808]],["title/601",[2731,5.216]],["content/601",[]],["title/602",[332,2.953]],["content/602",[]],["title/603",[249,1.532,279,0.711,482,1.05,1096,2.182,1713,2.64,1839,1.617,2784,1.674]],["content/603",[141,5.116,194,3.332,219,3.827,241,3.153,393,5.057,493,3.782,564,6.79,1730,5.618,1737,6.143,2785,6.79,2786,8.078,2787,8.767,2788,8.078]],["title/604",[626,2.9,945,3.2,2789,4.655]],["content/604",[20,4.198,88,2.852,142,2.852,311,2.836,397,4.222,454,1.513,543,4.899,574,2.987,626,6.09,646,3.081,1131,3.781,1165,3.542,1178,4.794,1211,5.016,1689,5.95,1730,4.384,1743,6.965,1838,3.638,2670,4.61,2784,3.605,2789,5.95,2790,5.298,2791,5.685,2792,8.05,2793,4.318]],["title/605",[99,0.637,104,0.369,148,0.772,279,0.306,454,0.552,494,1.004,551,0.764,605,0.84,626,0.742,641,0.675,900,1.003,1403,0.799,1659,0.959,1838,1.329,1874,0.764,2794,1.19,2795,1.369]],["content/605",[18,0.792,35,2.565,74,1.56,99,2.44,148,4.329,162,3.134,176,2.21,185,2.361,219,4.36,233,2.197,279,1.173,400,2.647,454,1.696,484,3.062,493,2.261,513,2.897,551,2.927,563,3.024,587,2.248,626,2.84,672,2.814,888,4.313,916,3.024,1659,3.673,1711,3.174,1838,4.08,1839,2.669,1874,4.284,2059,3.944,2201,3.533,2224,3.673,2292,4.774,2466,4.356,2679,4.356,2784,4.043,2794,6.673,2796,3.359,2797,3.471,2798,4.356,2799,4.83,2800,4.559,2801,5.242]],["title/606",[2732,4.994]],["content/606",[]],["title/607",[332,2.953]],["content/607",[]],["title/608",[279,1.445,545,3.047]],["content/608",[0,1.803,18,0.601,28,1.27,64,1.45,65,1.188,74,1.183,101,3.093,108,1.564,115,1.115,133,2.475,142,1.658,146,3.183,256,2.294,279,1.94,313,3.047,378,2.221,379,1.918,397,1.814,458,3.31,470,2.008,482,2.868,487,2.993,488,2.135,490,2.731,500,4.374,519,2.321,535,1.977,538,1.512,545,4.093,568,2.198,579,2.349,614,2.633,720,1.326,889,2.377,1016,2.633,1025,2.821,1152,2.198,1156,4.564,1198,2.059,1399,3.183,1575,2.155,1722,2.349,1847,3.183,2020,2.511,2043,2.59,2156,3.665,2166,2.198,2173,3.183,2224,2.787,2406,3.459,2750,2.633,2802,3.08,2803,3.665,2804,3.305,2805,3.977,2806,3.977,2807,3.665,2808,2.916,2809,3.305,2810,3.183,2811,3.459,2812,3.977,2813,3.977,2814,3.183,2815,2.731,2816,3.305,2817,3.665,2818,3.665,2819,3.459,2820,3.305,2821,2.916,2822,3.977]],["title/609",[8,0.656,279,1.022,505,1.874,545,2.156]],["content/609",[8,1.463,505,4.184,545,4.815,2823,8.873]],["title/610",[64,1.666,312,2.975,482,1.511,545,2.156]],["content/610",[36,4.961,185,4.802,454,1.879,458,4.521,482,2.811,490,5.838,526,3.78,1116,4.865,2808,7.82,2809,7.065,2810,6.802,2824,7.833]],["title/611",[279,1.022,482,1.511,529,2.142,545,2.156]],["content/611",[279,2.386,458,4.521,482,3.526,490,5.838,529,3.984,545,5.032,587,3.646,614,5.628,1757,6.802,2261,4.698,2403,6.802,2825,5.957]],["title/612",[194,1.515,279,0.892,501,2.794,504,2.16,545,1.881]],["content/612",[175,4.549,279,1.931,454,1.908,502,6.049,531,3.681,545,4.073,1038,4.508,1545,4.871,2825,6.049,2826,7.954,2827,7.173,2828,6.685,2829,6.685,2830,6.685]],["title/613",[484,2.179,2261,3.569]],["content/613",[28,2.106,65,1.97,99,3.071,114,2.2,115,1.851,154,4.894,306,2.935,308,3.136,482,2.182,484,3.474,490,6.203,491,4.839,531,2.814,1025,2.991,1052,3.333,1545,3.724,1757,7.227,2096,4.369,2261,6.12,2403,7.227,2804,5.484,2825,7.216,2831,6.6]],["title/614",[64,1.951,1776,2.9,2681,4.028]],["content/614",[0,3.973,64,3.195,218,4.62,241,3.153,279,1.961,331,4.705,454,1.938,507,4.797,614,5.804,1774,7.286,1776,4.75,2832,8.078,2833,8.078]],["title/615",[108,2.105,994,3.43,2834,5.352]],["content/615",[398,5.476,621,4.139,1921,7.007,2835,10.203]],["title/616",[545,3.047,584,4.625]],["content/616",[114,2.833,115,2.384,194,3.231,313,3.378,482,2.811,584,7.637,1015,4.747,1619,7.065,2261,4.698,2836,7.833,2837,7.065,2838,7.833,2839,7.065,2840,7.833]],["title/617",[49,1.781,1551,3.91]],["content/617",[]],["title/618",[20,1.77,108,1.134,115,0.809,379,1.39,535,1.433,545,1.361,2166,1.594,2815,1.98]],["content/618",[51,3.155,55,1.967,101,4.418,108,3.496,115,2.852,311,2.673,313,3.532,379,3.109,450,3.461,454,1.426,500,5.07,535,3.204,545,3.043,1087,3.23,1155,4.07,1156,6.518,1198,3.339,1485,4.198,1722,3.807,1828,4.994,1874,3.6,2166,4.913,2815,4.428,2816,5.358,2841,5.941,2842,5.159,2843,4.617,2844,6.448]],["title/619",[74,1.186,133,2.481,375,2.12,535,1.982,1152,2.204]],["content/619",[18,1.021,74,2.731,112,2.191,133,4.205,134,1.955,313,2.685,400,3.413,482,3.035,521,3.167,535,4.562,559,3.47,646,3.044,665,5.977,889,2.581,1025,3.063,1152,3.735,1198,4.753,1386,3.944,1709,4.266,1722,3.991,1795,5.235,2077,4.84,2261,3.735,2750,4.475,2845,5.617,2846,6.228,2847,5.878]],["title/620",[397,2.946,545,3.047]],["content/620",[]],["title/621",[279,0.892,375,2.12,545,1.881,646,1.795,2261,2.204]],["content/621",[18,0.952,51,3.084,65,1.882,74,2.603,107,3.921,114,2.101,115,1.767,133,3.921,142,2.627,152,3.209,279,1.957,313,2.504,379,3.039,454,1.393,477,2.237,482,2.084,484,2.126,524,2.599,535,3.132,545,2.974,559,3.236,619,3.678,646,3.94,652,3.921,1071,3.595,1152,3.483,1198,3.263,1404,4.514,1722,3.722,1839,3.209,1874,4.886,2166,3.483,2261,3.483,2815,4.328]],["title/622",[279,1.022,545,2.156,646,2.058,2261,2.526]],["content/622",[12,3.273,51,3.119,115,1.787,135,3.273,142,2.657,233,2.672,241,2.292,279,1.426,311,2.643,313,2.533,454,1.409,482,2.916,545,3.008,619,3.72,652,3.966,827,3.421,857,4.467,895,3.764,900,2.559,915,2.908,976,2.987,1104,4.15,1502,4.024,1540,3.677,1620,3.119,1828,4.937,1845,4.565,1874,4.924,2229,4.937,2261,4.874,2292,3.966,2815,4.378,2843,4.565,2848,5.874]],["title/623",[484,2.746]],["content/623",[]],["title/624",[28,1.014,454,0.702,484,1.072,513,1.756,1760,2.141,2849,2.927,2850,2.542]],["content/624",[28,2.42,37,3.892,240,4.032,458,4.032,484,3.725,485,3.603,513,5.477,672,4.069,910,6.593,1377,4.278,1589,5.429,1760,5.109,2827,8.236,2850,6.066,2851,6.986,2852,6.986,2853,5.705,2854,5.559,2855,6.986]],["title/625",[279,0.791,484,1.193,563,2.04,2856,3.075,2857,2.939,2858,2.478]],["content/625",[0,3.531,77,5.351,228,4.07,229,3.903,279,1.743,305,6.035,436,4.182,484,2.629,539,4.306,563,5.82,657,3.112,719,5.073,1069,4.106,1244,5.58,2141,6.035,2857,8.384,2859,8.774,2860,7.18]],["title/626",[486,3.185,1635,3.606]],["content/626",[]],["title/627",[18,0.48,29,2.64,142,1.324,1165,1.645,1666,2.64,2861,2.64,2862,2.927]],["content/627",[194,3.182,279,1.873,484,2.825,531,3.571,545,3.952,666,3.397,1165,4.336,1674,5.997,2180,7.949,2661,4.582,2802,6.486,2863,8.374,2864,8.374,2865,6.486,2866,7.716]],["title/628",[65,1.19,104,1.074,1062,3.674,1742,2.596,1760,2.687]],["content/628",[19,5.708,65,2.618,104,3.183,460,2.887,493,3.782,659,3.874,1060,6.597,1116,3.999,1502,5.534,1760,5.908,2867,8.078]],["title/629",[29,3.798,562,2.453,574,1.995,1483,3.974]],["content/629",[18,1.304,102,4.395,241,3.104,436,4.633,531,5.004,562,4.633,574,3.768,942,5.928,1438,5.928,1732,5.371,1862,6.685,2868,8.632]],["title/630",[19,2.302,279,0.791,482,1.169,545,1.669,2261,1.954,2869,3.536]],["content/630",[19,4.401,104,1.821,115,1.895,171,3.899,194,2.568,279,2.054,436,3.628,529,3.167,545,4.332,562,3.628,592,3.47,646,3.044,683,4.266,684,3.124,789,5.617,1054,3.944,1182,5.878,1251,4.555,1265,4.331,1438,4.641,1583,4.736,1635,3.774,1874,3.774,2102,4.093,2867,6.228,2870,6.228,2871,5.878,2872,6.228,2873,6.228,2874,6.228]],["title/631",[484,1.542,545,2.156,2261,2.526,2837,3.798]],["content/631",[88,2.901,108,1.808,311,2.885,395,2.821,454,1.538,460,1.514,484,4.104,517,2.032,521,2.154,526,2.044,545,3.283,559,2.36,590,3.459,621,1.865,661,2.515,712,2.216,827,3.735,892,2.86,898,2.515,912,2.652,976,3.261,1002,3.098,1116,2.097,1157,2.541,1190,2.38,1219,3.679,1243,3.679,1583,4.876,1635,3.885,1818,5.669,2049,2.784,2261,5.848,2629,4.689,2796,2.946,2837,5.783,2875,7.736,2876,4.597,2877,6.958,2878,4.597]],["title/632",[2733,3.689]],["content/632",[]],["title/633",[332,2.953]],["content/633",[]],["title/634",[8,0.507,249,1.705,279,0.791,505,1.45,2733,1.603,2739,2.141]],["content/634",[8,1.463,505,4.184,2733,4.624,2879,8.873]],["title/635",[194,1.515,279,0.892,501,2.794,504,2.16,2739,2.414]],["content/635",[88,3.965,194,3.614,526,4.229,1619,7.904,2735,5.686,2880,7.904,2881,7.904,2882,8.763]],["title/636",[64,1.951,1776,2.9,2681,4.028]],["content/636",[0,3.973,64,3.195,218,4.62,241,3.153,279,1.961,331,4.705,454,1.938,507,4.797,614,5.804,1774,7.286,1776,4.75,2832,8.078,2833,8.078]],["title/637",[499,2.958,529,2.508,2858,3.751]],["content/637",[241,2.554,279,1.589,488,3.811,536,5.343,537,4.786,572,5.207,605,4.357,1054,4.144,1132,4.418,1616,5.5,1635,5.299,1732,4.418,1835,4.702,2101,5.901,2784,3.742,2858,6.651,2871,6.176,2872,6.543,2873,6.543,2874,6.543,2883,7.101,2884,6.543,2885,5.901,2886,5.901,2887,4.144,2888,7.101]],["title/638",[240,1.201,279,0.505,586,1.248,684,1.044,1377,1.275,2651,1.656,2889,1.749,2890,1.591,2891,1.673]],["content/638",[24,2.696,100,2.125,107,2.86,184,2.784,240,5.844,279,1.028,311,1.906,313,1.827,505,1.885,521,2.154,524,1.895,570,3.459,582,2.185,592,2.36,619,2.683,646,2.07,658,4.236,719,2.993,720,1.532,864,2.993,900,2.793,1063,2.86,1139,2.86,1165,2.38,1211,5.102,1277,5.102,1282,3.998,1377,3.926,1541,3.56,1563,2.652,1635,2.567,1671,3.82,1767,4.392,1804,3.221,2012,3.56,2188,3.459,2278,3.56,2651,5.102,2698,3.82,2820,3.82,2889,3.56,2890,3.424,2891,4.313,2892,3.998,2893,3.998,2894,4.236,2895,4.597,2896,3.098,2897,3.679,2898,4.236,2899,2.784,2900,4.597]],["title/639",[241,1.434,1662,2.481,2891,1.71,2901,2.687,2902,3.987]],["content/639",[8,1.505,71,2.134,176,2.884,185,4.168,332,2.482,398,4.968,492,3.97,720,2.28,773,3.542,976,3.206,1136,4.384,1198,3.542,1921,6.356,2012,5.298,2681,5.148,2716,5.298,2853,6.965,2896,4.61,2903,7.406,2904,4.529,2905,6.304,2906,6.304,2907,5.298]],["title/640",[484,2.746]],["content/640",[]],["title/641",[28,1.014,454,0.702,484,1.072,513,1.756,1760,2.141,2849,2.927,2850,2.542]],["content/641",[28,2.42,37,3.892,240,4.032,458,4.032,484,3.725,485,3.603,513,5.477,672,4.069,910,6.593,1377,4.278,1589,5.429,1760,5.109,2827,8.236,2850,6.066,2851,6.986,2852,6.986,2853,5.705,2854,5.559,2855,6.986]],["title/642",[279,0.791,484,1.193,563,2.04,2856,3.075,2857,2.939,2858,2.478]],["content/642",[0,3.531,77,5.351,228,4.07,229,3.903,279,1.743,305,6.035,436,4.182,484,2.629,539,4.306,563,5.82,657,3.112,719,5.073,1069,4.106,1244,5.58,2141,6.035,2857,8.384,2859,8.774,2860,7.18]],["title/643",[64,1.453,65,1.19,1440,2.517,1873,2.481,2734,2.924]],["content/643",[]],["title/644",[332,2.953]],["content/644",[]],["title/645",[64,1.453,65,1.19,279,0.892,1873,2.481,2802,3.088]],["content/645",[0,1.095,37,1.241,64,3.062,65,3.029,74,1.23,75,1.35,78,2.199,88,2.675,103,1.149,107,1.504,108,0.951,114,0.806,115,0.678,175,1.274,184,1.464,194,1.571,241,0.869,249,1.165,251,1.66,279,1.435,309,1.22,311,1.714,312,1.574,313,2.153,321,1.66,395,1.483,426,3.203,454,0.534,477,2.559,482,2.778,485,1.149,488,1.297,490,2.84,492,1.037,493,1.043,500,1.379,505,0.991,521,1.133,524,1.705,538,2.74,545,1.141,562,1.297,574,1.055,587,2.752,592,1.241,604,4.111,621,0.981,646,1.088,657,1.652,665,1.574,689,2.102,695,1.526,761,1.379,867,1.445,885,1.819,889,0.923,912,2.385,956,1.211,1025,1.095,1116,1.103,1139,1.504,1173,2.961,1190,2.806,1195,1.772,1244,1.731,1440,5.303,1527,1.549,1545,2.333,1662,1.504,1670,2.472,1675,1.629,1699,2.227,1760,1.629,1777,1.629,1818,1.464,1873,4.891,2020,1.526,2259,2.102,2278,1.872,2734,6.16,2764,1.872,2793,1.526,2796,1.549,2807,3.81,2808,3.032,2825,2.898,2893,2.102,2908,2.417,2909,2.009,2910,1.934,2911,2.417,2912,2.227,2913,2.417,2914,1.574,2915,4.135,2916,2.417,2917,4.135,2918,2.417,2919,2.417,2920,2.417]],["title/646",[65,1.364,1873,2.843,2921,3.798,2922,3.539]],["content/646",[65,3.096,313,3.231,482,2.688,490,5.584,889,3.105,1061,5.059,1106,3.004,1675,6.988,1873,7.103,2808,5.962,2810,6.506,2923,7.072,2924,8.131,2925,8.131]],["title/647",[64,1.895,308,1.51,523,2.005,2921,2.64,2922,2.46,2926,2.927]],["content/647",[64,3.962,308,4.166,585,5.534,1662,5.454,1873,6.764,2921,7.286,2922,6.79,2926,10.017,2927,8.767,2928,6.428]],["title/648",[524,1.884,1479,3.798,1873,2.843,2929,2.975]],["content/648",[18,1.228,114,2.71,115,2.28,185,5.141,219,3.55,439,4.802,482,3.428,490,5.584,657,3.247,1052,4.106,1254,4.69,1873,5.059,2798,6.757,2808,5.962,2810,6.506]],["title/649",[64,1.289,252,2.593,466,2.141,582,1.68,1512,2.661,2260,2.141]],["content/649",[64,4.051,252,7.331,279,1.719,466,6.055,482,2.541,490,5.278,493,3.315,684,3.553,1165,3.979,1512,7.524,1873,6.221,2261,4.247,2930,6.15,2931,7.081,2932,7.685,2933,7.685]],["title/653",[2735,4.866]],["content/653",[]],["title/654",[332,2.953]],["content/654",[]],["title/655",[279,1.022,482,1.511,484,1.542,900,1.835]],["content/655",[35,2.649,51,3.341,88,1.391,143,1.333,240,1.775,241,1.946,249,2.61,279,1.211,306,1.484,307,2.173,310,3.999,313,1.326,407,2.292,421,2.139,440,1.864,454,0.738,460,1.099,466,2.021,474,1.996,484,1.826,526,1.484,527,2.292,531,2.911,540,2.21,556,3.469,557,3.245,559,1.714,579,1.971,585,2.107,589,1.792,594,2.139,615,2.139,621,1.354,641,1.646,646,1.503,661,1.826,684,3.631,691,3.535,721,2.339,761,1.904,858,2.107,859,2.21,888,2.572,890,3.022,898,1.826,900,2.173,907,2.173,976,1.564,1002,2.25,1010,2.021,1025,1.513,1072,2.671,1076,1.925,1173,2.39,1239,2.671,1250,2.448,1258,3.076,1389,2.339,1568,2.448,1575,1.809,1611,2.774,1662,2.077,1664,2.25,1674,2.39,1724,2.292,1767,2.107,1874,1.864,1875,2.021,2162,2.39,2188,2.512,2219,2.25,2565,2.512,2638,2.512,2660,3.022,2664,1.971,2746,2.774,2784,1.759,2853,2.512,2854,5.006,2887,1.948,2934,3.076,2935,2.903,2936,3.338,2937,2.903,2938,3.876,2939,5.674,2940,4.988]],["title/656",[104,1.231,279,1.022,400,2.308,484,1.542]],["content/656",[18,0.647,65,1.968,69,1.427,71,1.336,104,2.431,143,1.71,150,1.701,219,1.869,233,1.795,279,1.474,308,4.288,375,2.277,407,2.94,443,2.559,460,1.41,470,2.162,482,1.415,484,2.711,526,1.904,557,3.132,573,2.528,587,1.836,613,3.316,615,2.744,621,1.737,624,2.298,653,2.787,691,4.672,720,1.427,721,3,888,2.035,900,2.646,956,2.145,1025,1.94,1054,2.498,1106,1.582,1143,2.559,1239,3.426,1592,2.94,1684,3.316,1833,3.222,1874,3.68,2031,2.94,2150,3.945,2201,2.885,2660,4.486,2661,2.343,2664,3.892,2934,3.945,2941,3.558,2942,3.945,2943,4.281,2944,3.316,2945,4.832,2946,4.281,2947,3.945,2948,4.281,2949,3.945,2950,3.945,2951,3.066]],["title/657",[2952,7.079]],["content/657",[]],["title/658",[279,0.645,484,0.973,589,1.548,615,1.848,1818,1.746,2953,2.657,2954,2.884,2955,2.884]],["content/658",[88,1.758,233,1.768,279,1.457,313,1.675,436,2.263,454,0.932,460,1.389,484,2.198,502,2.955,504,2.285,507,2.307,526,2.896,531,3.393,538,1.602,541,3.266,559,2.165,574,1.841,621,1.711,626,2.285,641,2.079,643,2.955,661,2.307,683,2.662,744,2.49,827,2.263,907,2.746,976,1.976,1015,2.354,1119,2.746,1142,3.173,1148,3.667,1521,4.776,1558,3.02,1583,2.955,1635,3.637,1689,3.667,1835,5.269,2049,2.553,2160,3.667,2162,3.02,2784,2.222,2794,3.667,2828,3.266,2829,3.266,2830,3.266,2882,3.885,2887,2.461,2939,3.504,2956,4.217,2957,4.217,2958,4.217,2959,3.667,2960,3.504,2961,4.217,2962,3.173,2963,4.217,2964,4.217,2965,4.217,2966,4.217,2967,4.217,2968,4.217,2969,4.217,2970,4.217,2971,4.217,2972,4.217,2973,4.217,2974,4.217,2975,4.217,2976,4.217,2977,4.217,2978,4.217,2979,4.217,2980,4.217]],["title/650",[279,1.445,481,5.002]],["content/650",[18,1.151,28,2.881,44,3.567,185,2.339,241,1.868,249,2.504,279,1.705,313,2.064,332,1.884,454,1.148,477,2.704,482,2.519,529,2.434,531,2.214,535,2.581,539,2.87,714,2.504,720,2.54,891,2.814,911,3.567,1016,3.438,1025,4.091,1027,5.045,1033,5.34,1065,4.022,1276,3.639,1475,3.381,1482,3.278,1626,3.278,1627,3.567,1635,2.9,1691,3.231,1708,3.5,1709,3.278,1722,3.067,1833,3.908,1843,4.785,1844,3.908,2016,4.022,2981,5.193,2982,4.517,2983,4.785,2984,4.517,2985,4.517,2986,4.517,2987,4.316]],["title/651",[2988,7.079]],["content/651",[18,1.192,28,3.445,37,4.05,52,2.392,74,1.62,112,1.765,134,1.575,228,4.12,243,3.49,311,2.258,378,3.041,482,1.8,488,2.923,503,5.018,519,3.178,538,2.069,587,2.336,620,3.342,652,3.388,688,3.106,773,2.82,973,4.218,1005,4.736,1035,2.923,1045,2.87,1072,4.357,1226,3.01,1234,4.736,1628,3.9,1650,4.357,1709,4.979,1736,4.526,1769,5.018,2159,4.526,2909,6.556,2984,6.86,2989,5.446,2990,4.218,2991,4.736,2992,5.446,2993,5.018,2994,5.018]],["title/652",[2995,6.125]],["content/652",[18,1.385,28,2.481,52,1.44,74,2.007,84,2.102,103,1.558,131,1.169,134,2.474,150,1.303,171,1.892,228,3.523,229,2.673,242,2.554,279,0.734,306,1.458,311,1.36,313,1.303,314,1.812,332,1.936,454,1.891,458,1.744,482,1.084,485,2.536,492,2.288,517,1.449,563,1.892,646,1.477,714,1.581,720,2.248,976,1.537,981,2.171,1016,2.171,1027,2.171,1028,2.04,1035,2.864,1038,1.713,1045,1.728,1055,2.171,1071,1.871,1087,1.643,1098,1.85,1106,2.492,1121,3.983,1122,2.405,1144,3.113,1156,2.405,1170,3.474,1477,1.914,1547,2.468,1548,2.171,1563,1.892,1573,2.21,1620,1.605,1626,2.07,1627,2.252,1635,1.831,1691,2.04,1708,2.21,1709,2.07,1716,2.624,1722,3.151,1752,2.298,1772,2.252,1788,2.54,1804,2.298,1824,2.54,1846,2.54,2385,2.725,2909,2.725,2996,3.279,2997,3.279,2998,3.279,2999,3.279,3000,3.279,3001,3.279,3002,2.725,3003,3.279,3004,3.279,3005,2.54,3006,3.022,3007,3.279,3008,3.279,3009,3.279,3010,3.022,3011,2.852]],["title/659",[1708,4.352,1709,4.076]],["content/659",[18,1.295,28,1.243,74,1.159,103,1.851,112,1.262,131,3.056,134,2.696,175,2.052,194,1.48,229,1.951,254,2.39,279,1.37,306,1.732,311,1.615,313,1.547,374,2.856,395,2.39,409,1.983,415,2.974,454,0.861,470,1.967,477,1.382,482,2.024,485,1.851,486,1.921,492,1.67,505,1.597,529,1.825,556,2.496,588,1.967,655,1.813,688,2.222,889,2.338,956,1.951,1025,1.765,1027,2.579,1036,3.387,1037,3.016,1055,4.053,1063,2.423,1071,2.222,1076,2.247,1106,1.439,1113,2.625,1144,3.572,1158,3.387,1526,3.116,1551,2.358,1626,3.865,1627,4.204,1691,3.809,1708,4.126,1709,5.413,1722,4.467,1751,4.607,1792,3.589,1997,2.856,2012,3.016,2862,3.589,2990,3.016,3012,3.895,3013,3.895,3014,3.895,3015,3.895,3016,3.895,3017,3.895,3018,3.895]],["title/660",[1691,4.018,1722,3.814]],["content/660",[28,1.41,37,3.465,45,3.12,54,2.924,131,1.574,134,3.232,194,1.678,279,0.988,311,1.831,377,2.492,415,2.145,482,1.46,486,2.178,492,1.894,521,3.163,529,2.069,549,2.875,582,2.099,777,2.674,867,2.64,1035,2.37,1116,2.014,1144,2.577,1616,3.42,1620,2.161,1637,4.069,1684,5.227,1691,2.748,1708,2.976,1709,5.17,1711,2.674,1722,2.608,1725,5.609,1777,2.976,1795,3.42,2012,3.42,2651,3.238,2897,3.534,3019,4.069,3020,3.841,3021,4.416,3022,4.416,3023,4.416,3024,4.416,3025,4.416,3026,4.416,3027,4.069,3028,5.4,3029,7.338,3030,3.162,3031,4.416,3032,4.416,3033,4.069,3034,4.416,3035,4.069,3036,4.416,3037,4.416,3038,4.416]],["title/661",[1144,3.768,1626,4.076]],["content/661",[18,1.342,47,2.511,48,2.551,49,2.059,51,2.473,69,2.489,131,1.801,134,3.279,151,4.646,194,1.92,240,2.687,243,3.238,249,2.436,311,2.095,379,2.436,398,2.712,415,3.627,458,2.687,492,2.167,559,3.834,744,2.984,1003,3.705,1035,2.712,1045,2.663,1106,1.867,1143,3.021,1144,5.726,1158,4.395,1202,5.62,1485,3.29,1554,3.913,1588,3.802,1626,5.607,1628,3.619,1632,4.043,1733,4.199,2201,3.405,2502,4.656,3020,6.495]],["title/662",[1702,6.304]],["content/662",[18,1.538,20,3.111,52,1.353,69,1.69,73,1.686,74,1.922,99,2.36,104,0.83,131,3.983,132,5.991,133,5.149,134,3.5,145,1.396,152,1.569,181,2.159,182,1.975,183,3.031,241,1.108,242,4.26,308,3.07,314,3.57,331,1.654,374,3.718,406,1.531,409,3.289,415,1.497,446,1.624,476,3.417,477,1.799,479,4.798,546,1.739,557,1.464,559,1.582,589,2.721,619,2.959,887,2.206,891,2.747,896,1.777,951,1.819,976,1.444,1087,1.543,1141,2.386,1144,1.798,1149,2.465,1175,3.718,1404,2.206,1601,2.259,1615,2.206,1626,1.945,1691,1.917,1702,2.386,1722,1.819,2370,2.839,3039,2.68,3040,3.081,3041,3.081,3042,2.839,3043,2.839]],["title/672",[151,4.018,375,3.434]],["content/672",[18,1.408,28,1.59,47,1.498,48,2.524,49,2.569,50,1.561,62,1.51,69,1.005,74,0.897,131,2.268,132,2.412,134,1.44,135,1.548,151,4.597,176,1.271,228,1.575,229,1.51,279,0.674,311,3.391,313,1.198,331,1.618,332,1.807,374,2.211,375,3.929,377,4.169,393,1.739,454,1.101,477,1.07,482,1.647,497,2.032,504,5.05,515,1.876,524,1.243,562,1.618,568,1.666,581,2.215,641,2.456,688,1.72,873,2.211,889,2.43,1003,2.211,1032,2.113,1038,1.575,1063,1.876,1106,1.84,1137,2.032,1139,1.876,1143,1.802,1144,2.906,1152,1.666,1165,1.561,1190,1.561,1254,1.739,1395,3.297,1501,2.505,1505,2.412,1536,2.622,1540,1.739,1551,1.826,1624,2.505,1701,2.211,1721,2.07,1733,2.505,1867,1.826,1868,2.113,1931,2.778,2201,2.032,2219,3.356,2670,2.032,2819,2.622,2986,2.622,2987,2.505,2990,2.335,3020,2.622,3044,3.015,3045,2.622,3046,3.015,3047,2.778,3048,3.015,3049,2.778,3050,2.778,3051,2.412,3052,2.335,3053,2.778,3054,2.505,3055,2.778]],["title/663",[895,4.806]],["content/663",[28,2.936,44,6.317,279,2.058,895,5.432,915,4.196,941,6.922,1029,5.499,1276,6.446,3056,7.644,3057,6.922]],["title/664",[3056,5.367,3057,4.859]],["content/664",[]],["title/665",[12,2.346,48,1.561,49,1.26,3058,4.57]],["content/665",[12,3.349,18,1.353,44,4.479,48,3.764,49,3.038,52,2.865,74,1.941,104,1.757,150,2.592,279,1.459,379,3.145,380,3.294,394,4.319,454,2.263,485,3.1,517,2.883,714,4.32,893,4.908,895,3.852,1106,2.41,1485,4.247,1563,3.763,1573,4.396,1592,4.479,1711,3.95]],["title/666",[377,3.644,504,3.499]],["content/666",[18,1.235,35,2.801,49,3.034,135,4.197,151,3.561,332,2.077,375,3.044,377,4.613,380,2.89,492,3.507,497,3.857,498,3.422,504,4.43,520,6.221,582,2.72,657,2.286,720,1.908,889,2.186,891,3.101,912,3.302,951,3.38,1032,4.011,1081,3.561,1091,4.307,1093,3.857,1133,2.964,1157,3.163,1501,4.757,1999,5.274,2219,3.857,2896,3.857,3056,4.757,3059,5.724,3060,5.274,3061,5.274]],["title/667",[941,6.125]],["content/667",[28,2.356,35,3.612,88,3.077,247,5.717,279,1.651,415,3.585,453,6.241,720,2.46,895,5.751,1011,6.134,1093,4.975,1131,4.08,1498,5.717,2720,6.134,2825,5.173,2854,5.412,3051,5.907,3062,6.42,3063,5.907,3064,7.382,3065,7.382,3066,7.382,3067,6.802]],["title/668",[48,2.206,49,1.781]],["content/668",[0,3.218,8,1.019,48,2.426,49,1.958,88,2.96,241,2.554,247,5.5,332,2.576,377,4.007,415,3.449,454,1.57,455,5.738,497,4.786,498,4.245,686,4.193,873,6.959,894,4.877,995,5.901,997,6.176,1004,5.682,1106,2.624,1265,6.082,1540,4.096,3068,6.543]],["title/669",[379,3.924]],["content/669",[48,2.625,49,2.119,88,3.204,112,2.491,176,3.24,241,2.764,331,4.125,379,4.821,415,3.733,453,4.925,454,1.699,455,4.125,562,4.125,642,5.504,712,3.705,873,5.635,913,4.247,1127,6.387,2401,7.081,3069,7.081,3070,7.685]],["title/670",[18,0.975,104,1.74]],["content/670",[12,1.523,18,1.398,34,1.106,35,1.452,37,1.523,48,2.499,49,2.236,54,1.964,55,0.905,74,1.462,104,2.184,241,2.262,279,0.664,321,2.038,332,1.076,379,3.909,380,3.694,394,1.964,406,2.442,415,3.056,454,1.932,455,2.638,477,2.596,484,1.001,485,2.336,492,1.272,493,1.28,495,1.523,529,1.39,581,1.319,582,1.41,588,1.498,657,2.513,664,1.39,671,1.623,686,5.464,714,1.431,720,0.989,761,2.803,796,1.674,888,1.41,893,2.233,894,5.568,898,1.623,941,2.233,949,2.125,951,1.752,995,2.466,997,4.274,1004,2.374,1025,1.345,1027,1.964,1049,2.298,1063,1.846,1092,3.52,1098,1.674,1106,1.096,1137,2,1157,1.64,1201,1.964,1386,1.731,1423,1.901,1438,2.038,1563,1.711,1573,3.312,1580,4.529,1588,2.233,1737,2.079,1882,2.233,1896,1.774,2742,2.125,2937,2.58,3071,2.734,3072,2.734,3073,6.291,3074,4.915,3075,4.915]],["title/671",[415,3.137,948,3.91]],["content/671",[28,2.798,135,4.501,454,1.938,498,5.241,921,7.624,948,5.309,1008,5.001,1243,7.015,1635,4.895,2825,6.143,3076,8.767,3077,8.767,3078,8.767]],["title/676",[498,3.2,514,3.087,515,3.33]],["content/676",[]],["title/677",[498,3.2,514,3.087,515,3.33]],["content/677",[49,1.594,150,2.298,175,3.047,313,4.563,439,3.415,453,3.706,454,1.278,488,3.104,498,4.924,507,3.164,514,4.751,515,5.968,521,2.71,538,2.198,568,3.196,646,2.604,951,3.415,952,4.599,1038,4.302,1124,3.886,1545,3.263,1575,3.133,1711,3.502,2745,4.806,2841,5.328,2897,4.627,3079,5.783,3080,5.328,3081,5.783,3082,5.783,3083,5.783,3084,5.783,3085,5.783,3086,5.783]],["title/678",[279,1.022,498,2.732,514,2.636,515,2.843]],["content/678",[28,1.641,37,1.608,48,1.07,49,1.417,108,1.232,134,2.595,136,2.426,256,2.965,279,0.701,311,1.299,313,1.245,394,2.074,454,1.445,474,3.073,482,1.036,485,1.489,495,1.608,497,2.111,498,5.364,514,4.362,515,4.705,521,1.468,527,2.151,557,3.594,570,4.918,582,2.443,619,2.999,621,1.271,684,1.448,753,6.285,777,3.958,827,1.681,864,2.04,913,2.841,931,1.977,952,1.749,956,2.575,1001,2.243,1022,2.151,1063,1.949,1093,2.111,1097,2.507,1116,1.429,1189,2.297,1249,2.297,1548,2.074,1551,1.897,1804,2.195,1848,2.357,1867,5.056,2082,1.949,2667,5.734,2714,2.507,2744,1.787,2820,2.603,2962,2.357,3028,2.507,3029,5.23,3033,6.022,3052,2.426,3087,2.426,3088,3.133,3089,3.133,3090,3.133,3091,3.133,3092,5.14,3093,2.887,3094,4.736,3095,3.133,3096,3.133,3097,2.603,3098,2.887,3099,3.133,3100,2.887,3101,2.603,3102,2.887,3103,2.725,3104,3.133]],["title/679",[498,2.384,514,2.3,515,2.481,952,2.226,1203,3.19]],["content/679",[279,1.569,313,2.786,454,1.55,492,3.007,495,3.6,498,4.192,514,4.045,515,5.855,579,4.141,652,4.363,952,3.915,1009,4.816,1010,4.246,1016,6.231,1124,3.309,1166,5.827,1251,4.726,1387,6.099,1391,6.099,1575,3.8,1727,6.099,2316,4,2887,4.092,3097,5.827,3105,7.012,3106,7.012,3107,7.012]],["title/680",[279,1.022,1203,3.657,3108,4.57,3109,4.57]],["content/680",[0,1.753,37,1.986,49,1.066,50,2.003,52,1.699,53,2.479,76,2.518,134,1.119,135,1.986,175,3.969,176,1.63,279,1.362,313,1.537,379,1.865,453,2.479,454,0.855,477,1.373,483,6.261,492,3.23,497,5.757,514,2.231,515,2.406,529,1.812,574,2.658,592,1.986,619,2.257,686,2.284,761,2.206,894,2.656,895,2.284,902,4.716,945,2.312,1008,2.206,1009,2.656,1010,2.342,1027,2.561,1034,2.71,1079,2.77,1087,1.937,1136,2.479,1152,2.138,1201,2.561,1203,7.434,1204,5.626,1205,3.364,1276,2.71,1412,5.296,1474,3.214,1528,2.656,1563,4.344,1628,2.77,1650,3.095,1848,2.91,1865,2.995,2201,2.607,2259,3.364,2260,2.342,3110,3.868,3111,3.868,3112,3.868,3113,3.868,3114,3.364,3115,6.089,3116,3.868,3117,3.214,3118,3.868,3119,3.564,3120,3.868]],["title/673",[1025,2.927,1867,3.91]],["content/673",[]],["title/674",[1867,4.929]],["content/674",[18,0.683,28,1.444,47,2.248,50,2.342,74,1.346,134,1.308,279,1.537,306,2.011,311,1.875,313,1.797,378,2.525,393,2.609,485,2.149,488,2.428,517,1.999,535,2.248,568,2.5,578,3.403,622,3.503,657,1.806,666,2.788,720,1.507,743,3.169,761,2.58,829,3.619,892,2.814,904,3.316,913,2.5,1008,2.58,1016,2.995,1025,3.767,1044,3.759,1064,3.503,1087,2.266,1143,2.704,1399,3.619,1525,3.106,1545,2.552,1583,3.169,1591,3.316,1624,3.759,1635,2.525,1644,3.316,1777,3.048,1834,3.934,1867,6.367,2016,3.503,2668,3.169,2670,3.048,2825,3.169,2875,4.168,2931,4.168,3045,3.934,3121,4.523,3122,4.523,3123,4.523,3124,4.523,3125,4.523,3126,4.523,3127,4.523,3128,4.523,3129,4.168,3130,4.523,3131,4.168]],["title/675",[1002,4.352,1566,4.735]],["content/675",[37,2.461,49,1.322,50,2.482,63,2.504,74,2.136,219,2.093,313,1.905,321,3.292,454,1.588,477,2.548,482,1.585,484,2.905,485,3.413,491,3.515,498,2.866,505,3.531,519,4.19,520,2.866,521,2.246,563,2.765,666,2.913,888,2.278,889,1.83,898,2.623,900,1.925,908,4.602,912,4.142,913,2.649,969,3.121,1002,5.803,1039,3.836,1211,3.515,1395,4.754,1423,3.072,1545,2.705,1566,5.265,1592,3.292,1762,3.984,1777,3.231,1867,2.903,2188,3.607,2219,3.231,2709,4.417,2716,3.713,2746,3.984,2799,4.417,2824,4.417,3054,3.984,3132,4.794,3133,4.417]],["title/681",[888,3.868]],["content/681",[18,1.1,47,3.621,50,3.772,53,4.669,74,2.872,219,3.181,306,3.24,477,2.586,484,3.257,505,3.959,521,3.414,535,3.621,720,2.428,888,3.462,889,2.782,891,3.948,912,4.203,942,5.003,1399,5.83,1551,4.412,1591,5.342,1730,4.669,3134,6.336]],["title/682",[49,1.781,332,2.343]],["content/682",[37,2.938,48,1.955,49,3.156,54,3.79,219,3.569,253,2.594,306,2.545,332,3.461,484,1.931,505,2.347,514,4.716,531,3.486,570,4.307,671,3.132,672,4.388,684,2.646,744,3.38,885,4.307,889,2.186,900,2.298,909,5.274,916,3.302,1025,2.594,1063,3.561,1087,2.867,1131,3.163,1219,4.58,1254,3.302,1653,3.79,1670,3.422,1867,4.951,3135,5.724,3136,4.978,3137,4.978,3138,5.724]],["title/683",[50,2.771,666,3.16]],["content/683",[12,2.133,18,1.451,35,2.033,37,2.133,47,3.2,49,2.448,50,4.598,53,4.126,69,1.385,74,2.345,184,2.516,219,1.814,241,1.494,313,1.651,332,2.336,400,3.251,454,1.424,484,1.402,505,4.169,519,2.424,557,1.974,622,3.217,666,2.612,686,2.453,888,4.566,892,2.585,893,3.126,894,2.853,895,2.453,900,1.668,902,4.987,903,5.152,904,3.046,907,2.705,908,2.662,1006,2.585,1008,2.37,1039,3.324,1106,2.379,1143,2.484,1211,3.046,1226,2.296,1395,4.263,1578,5.933,2201,2.8,2219,2.8,2854,3.046,3050,3.828,3054,3.452,3139,4.154,3140,3.324,3141,3.613]],["title/684",[1777,4.352,3142,5.951]],["content/684",[3,2.254,37,2.666,48,3.083,49,2.489,69,1.731,74,1.545,154,2.814,171,2.996,279,1.705,408,3.03,440,2.9,488,2.787,491,3.808,493,2.24,521,2.434,539,2.87,557,2.468,559,2.666,562,2.787,622,4.022,888,3.621,889,1.983,900,2.085,917,3.105,1001,3.719,1002,3.5,1005,4.517,1025,4.091,1044,4.316,1087,2.601,1276,3.639,1395,3.438,1551,3.145,1741,4.316,1777,3.5,1824,4.022,1867,5.466,2102,3.145,2647,4.316,2784,2.737,3129,4.785,3131,4.785,3143,5.193,3144,5.193,3145,5.193,3146,4.517,3147,5.193]],["title/685",[949,5.829]],["content/685",[18,0.647,49,2.686,74,1.274,104,1.153,219,2.877,241,2.37,254,2.627,279,0.958,313,2.619,332,2.915,379,2.064,415,2.079,454,1.995,484,1.444,485,2.035,489,3.723,491,3.139,493,1.847,517,1.892,519,2.498,664,2.006,671,4.396,681,3.723,684,3.046,686,4.744,691,2.217,739,3.426,784,3.066,888,2.035,894,2.94,898,3.606,916,2.47,948,3.991,949,3.066,955,3.945,995,3.558,1000,3.723,1003,3.139,1106,1.582,1131,2.366,1165,2.217,1174,2.885,1211,3.139,1254,2.47,1265,4.223,1502,2.702,1867,2.592,2135,3.222,2214,4.959,3068,3.945,3148,4.281,3149,4.281,3150,3.723,3151,4.281,3152,4.281,3153,3,3154,4.281,3155,4.281,3156,4.281]],["title/686",[579,4.806]],["content/686",[256,5.394,279,2.092,521,4.382,538,3.554,639,3.52,1123,5.663,1653,6.192,1844,7.037,2676,7.772]],["title/687",[28,2.061,2982,5.616]],["content/687",[8,0.828,18,1.089,49,0.998,108,2.835,131,2.569,185,1.629,242,1.732,253,1.64,279,1.292,313,1.438,314,3.192,454,0.8,460,1.902,474,2.163,489,5.023,492,2.477,657,1.445,719,2.356,720,1.206,824,3.334,864,2.356,889,1.382,952,2.02,1023,2.438,1025,1.64,1027,2.395,1056,4.621,1081,2.251,1087,1.812,1106,1.337,1123,2.191,1144,2.111,1265,2.319,1344,4.136,1515,3.147,1566,5.285,1615,2.591,1627,3.966,1664,2.438,1670,2.163,1708,2.438,1709,3.646,1767,2.284,1777,3.892,1848,4.346,2260,2.191,2565,2.723,2892,5.023,2982,3.147,2984,5.023,2985,3.147,2986,6.269,2987,4.8,2994,3.334,3028,4.621,3029,4.621,3030,2.591,3157,3.334,3158,2.319,3159,3.618,3160,5.775,3161,3.334,3162,3.618,3163,5.775,3164,3.147,3165,3.618,3166,3.007,3167,3.618,3168,3.618,3169,3.618,3170,3.334,3171,3.618,3172,3.147,3173,3.618,3174,3.618]],["title/688",[531,2.754,1805,5.168]],["content/688",[328,6.297,482,2.688,515,5.059,531,3.467,579,4.802,587,3.487,767,5.584,889,3.105,911,5.584,1025,3.685,1038,4.247,1818,4.924,1862,6.297,2707,7.492,2720,6.757,2887,4.745,3175,5.962,3176,5.823]],["title/689",[1025,2.927,1867,3.91]],["content/689",[49,1.93,61,3.951,108,1.823,279,1.566,313,1.842,454,1.025,483,3.124,486,4.161,505,1.901,517,2.048,523,2.926,562,2.488,578,3.488,582,2.203,652,2.884,657,1.851,720,1.545,761,2.644,939,3.488,956,2.322,1006,2.884,1015,2.588,1025,3.173,1038,2.421,1063,2.884,1087,2.322,1143,2.771,1170,3.018,1399,3.709,1482,2.926,1635,2.588,1753,3.488,1867,6.673,1880,4.271,2049,2.807,2219,3.124,2483,4.031,2670,4.719,2995,3.488,3045,4.031,3071,4.271,3119,4.271,3176,5.014,3177,4.271,3178,4.635,3179,4.031,3180,4.635,3181,4.635,3182,4.635,3183,4.635,3184,3.183,3185,4.635,3186,4.635,3187,4.635,3188,4.635,3189,4.635]],["title/690",[1086,5.389]],["content/690",[8,0.714,12,1.548,18,0.455,28,2.031,37,1.548,48,1.03,49,0.831,65,0.9,74,1.482,77,2.07,88,1.257,108,1.186,111,1.666,134,1.44,143,1.204,148,1.701,151,1.876,256,1.739,279,1.83,332,1.807,375,1.603,378,1.683,397,1.375,415,1.464,454,0.667,471,2.505,477,1.767,482,2.104,492,1.293,510,1.498,516,1.826,517,1.332,529,1.413,579,2.941,580,2.622,604,1.932,720,1.005,744,1.78,790,1.963,816,2.873,849,1.876,884,2.505,889,1.151,904,2.211,913,1.666,915,1.375,945,1.802,994,3.191,1025,2.257,1048,1.72,1064,2.335,1065,2.335,1069,2.624,1074,2.778,1086,4.892,1106,1.84,1123,1.826,1143,1.802,1190,4.235,1201,1.996,1244,2.159,1251,2.032,1254,1.739,1257,2.159,1510,3.243,1591,3.652,1653,1.996,1721,2.07,1743,2.269,1746,2.269,1752,2.113,1839,1.535,1844,2.269,1867,3.016,2101,2.505,2260,1.826,2316,1.72,2361,2.778,2670,2.032,2714,3.985,2744,1.72,2745,4.139,2760,2.505,2793,3.144,3011,2.622,3051,2.412,3087,2.335,3190,2.412,3191,3.015,3192,3.015,3193,3.015,3194,3.015,3195,2.778,3196,4.589,3197,2.269,3198,3.015,3199,2.778,3200,2.778,3201,2.505,3202,2.412,3203,2.778,3204,2.335]],["title/691",[1818,3.91,2750,4.276]],["content/691",[111,3.828,241,2.49,279,1.549,492,2.97,507,3.789,543,4.96,546,3.908,604,4.438,619,4.041,646,3.119,757,3.828,900,2.78,1025,3.139,1525,4.756,1643,5.807,1653,4.585,1746,5.211,1818,4.194,1835,4.585,1862,5.364,1896,4.14,1989,6.023,2067,5.364,2710,6.54,2744,3.951,2750,4.585,3205,6.926,3206,6.023]],["title/692",[18,0.975,185,2.908]],["content/692",[18,0.777,24,1.994,28,1.642,64,2.758,65,1.536,74,1.531,131,1.834,134,1.488,185,4.043,194,1.955,218,2.712,279,1.151,311,3.138,375,2.736,397,2.347,406,2.557,415,2.499,416,2.844,454,1.673,482,1.701,485,2.445,492,2.207,521,2.411,582,2.445,698,2.22,744,3.039,773,2.664,864,3.35,1035,2.762,1071,2.935,1084,3.773,1093,3.468,1106,1.901,1165,2.664,1177,2.642,1512,3.872,1563,2.968,1611,4.276,1627,3.534,1720,3.985,1737,3.606,1752,5.304,1776,2.788,1779,4.276,2278,3.985,2893,4.475,2929,3.35,3207,4.475,3208,4.741,3209,4.741,3210,5.146,3211,5.146]],["title/693",[773,4.214]],["content/693",[8,1.286,18,1.463,28,1.35,36,1.448,52,1.09,64,1.541,74,0.738,99,1.155,103,1.179,114,2.441,115,2.054,131,0.884,134,0.718,142,1.763,152,3.729,185,4.611,241,0.892,242,2.645,253,2.505,254,1.522,306,1.103,311,1.029,314,3.054,375,1.319,394,1.643,406,2.102,416,3.054,439,1.465,455,1.332,460,1.393,466,1.502,492,1.064,521,1.163,527,1.704,569,1.922,581,1.103,582,3.102,587,1.814,595,2.85,620,1.522,641,1.224,683,1.566,695,1.566,719,1.615,757,1.371,773,1.285,793,1.704,849,2.631,864,1.615,898,1.358,951,1.465,981,1.643,992,3.514,1008,1.415,1029,1.483,1052,2.791,1061,1.544,1065,1.922,1081,1.544,1093,1.672,1106,1.562,1114,4.593,1144,1.448,1157,1.371,1165,1.285,1209,1.643,1510,1.615,1540,3.766,1591,1.819,1631,3.873,1638,1.922,1750,3.384,1767,1.566,1776,3.537,1779,5.425,2214,1.867,2230,2.062,2910,1.985,2929,5.837,3166,2.062,3208,3.897,3212,3.897,3213,2.481,3214,2.481,3215,2.158,3216,2.481,3217,2.286,3218,2.481,3219,2.062,3220,1.777]],["title/694",[55,1.633,406,2.66,3101,4.448]],["content/694",[]],["title/695",[28,2.598]],["content/695",[18,1.228,28,2.595,51,3.979,55,2.481,73,4.449,74,2.419,134,2.999,185,3.662,218,4.285,240,4.324,406,4.041,486,4.01,488,4.364,1008,4.638,1592,5.584,2929,5.294,3221,6.297]],["title/696",[888,3.868]],["content/696",[18,1.246,185,3.715,477,2.928,484,2.784,486,5.161,505,3.383,664,3.866,888,3.921,1139,5.133,1190,4.272,1592,5.666,1844,6.209,2929,5.372,3005,6.39,3222,8.251,3223,8.251]],["title/697",[65,2.43]],["content/697",[8,1.127,12,1.714,18,1.031,28,1.065,52,1.466,55,1.019,64,1.217,65,2.907,69,1.804,98,3.076,99,1.554,107,2.077,108,1.313,109,5.332,131,1.19,134,0.965,142,2.256,152,1.699,176,1.407,182,2.139,183,1.996,185,4.162,242,1.598,253,3.094,254,2.048,255,4.52,256,3.938,279,0.747,331,1.792,375,1.775,406,1.659,460,1.099,477,1.921,492,1.432,493,1.44,529,1.564,581,1.484,684,1.543,688,1.904,743,3.793,744,1.971,827,1.792,849,2.077,864,3.524,889,1.275,900,3.153,913,1.845,915,2.469,951,3.196,976,1.564,1006,2.077,1065,2.585,1106,2,1131,1.845,1139,3.368,1157,2.992,1165,1.728,1540,3.938,1584,3.076,1631,3.793,1701,2.448,1779,2.774,1780,2.448,1850,2.292,2317,3.793,2503,3.054,2929,2.173,3212,3.076,3220,2.39,3224,2.903,3225,3.338,3226,3.076]],["title/698",[1086,5.389]],["content/698",[143,2.943,279,1.11,482,2.906,492,2.129,517,2.193,524,2.046,531,2.116,538,1.886,579,2.931,594,3.181,620,3.046,720,1.654,777,3.006,849,3.088,884,4.125,904,3.639,908,3.181,912,2.863,951,2.931,1025,3.984,1039,3.972,1044,4.125,1048,4.204,1063,3.088,1086,5.82,1131,2.743,1386,4.3,1508,4.125,1645,3.409,1653,4.879,1678,3.735,1718,4.574,1846,3.844,1850,3.409,1857,4.125,1863,3.554,2765,4.317,3002,4.125,3019,4.574,3051,5.897,3052,3.844,3133,4.574,3227,4.963,3228,4.963,3229,4.574,3230,4.574,3231,4.963,3232,4.963,3233,4.574,3234,4.963,3235,4.574]],["title/699",[8,0.572,151,2.481,1025,1.807,1867,3.776]],["content/699",[256,4.904,378,4.747,471,7.065,579,5.02,580,7.393,913,4.698,1086,5.628,1591,7.82,1721,5.838,2101,7.065,2714,6.802,2793,5.366,3052,6.584,3196,7.833]],["title/700",[74,1.921,143,2.579]],["content/700",[]],["title/701",[481,6.304]],["content/701",[18,1.167,28,2.466,74,1.574,77,3.634,88,2.206,108,2.081,134,2.234,143,2.113,145,2.398,148,2.986,241,1.903,279,1.184,306,3.435,397,3.524,454,1.17,470,2.672,477,1.878,482,2.554,510,2.63,744,3.125,849,3.292,889,2.021,904,3.88,1019,4.098,1054,3.088,1069,2.788,1082,4.602,1083,4.876,1086,3.503,1106,2.854,1124,2.497,1143,3.163,1190,5.195,1743,3.982,1746,3.982,1752,3.708,2260,3.204,2655,4.876,2714,4.234,2760,4.397,3199,4.876,3200,4.876,3201,4.397,3202,4.234,3236,5.291]],["title/702",[169,4.014]],["content/702",[3,1.345,18,0.468,28,0.989,30,1.442,71,0.967,88,2.123,130,2.051,131,2.312,134,1.473,143,3.934,150,2.024,169,1.528,176,1.306,229,1.552,279,1.139,311,1.284,313,2.024,378,1.73,398,1.663,454,0.685,470,1.564,477,1.1,482,2.144,485,3.082,493,2.197,510,3.733,513,1.712,516,1.876,538,1.177,559,2.615,584,2.219,587,1.329,589,3.481,614,2.051,646,2.294,712,3.127,714,1.494,777,3.084,816,1.787,849,1.928,900,1.244,911,2.128,956,1.552,976,1.452,1061,1.928,1075,2.694,1086,2.051,1123,1.876,1136,1.985,1141,6.428,1142,3.833,1148,2.694,1157,1.712,1173,2.219,1175,2.272,1177,1.591,1226,1.712,1257,2.219,1327,2.051,1449,2.479,1510,2.017,1575,1.679,1643,6.349,1644,4.755,1645,2.128,1652,2.694,1653,2.051,1654,2.855,1656,1.679,1724,2.128,1752,2.171,1753,2.331,1839,3.302,1882,3.833,2018,2.272,2716,2.4,2765,2.694,2899,1.876,2990,2.4,3052,2.4,3237,3.098,3238,3.098,3239,3.098]],["title/703",[3203,7.5]],["content/703",[28,2.595,65,2.428,375,4.324,477,2.886,517,3.593,790,5.294,945,4.861,1035,4.364,1064,6.297,1069,4.285,1190,4.21,1254,4.69,1628,5.823,2316,4.638,2744,4.638,2793,5.133,2910,6.506,3204,6.297]],["title/704",[1735,5.299]],["content/704",[18,1.177,28,2.487,74,3.001,103,3.703,112,2.526,114,2.597,115,2.185,279,1.743,454,1.723,482,2.576,529,3.651,546,4.397,564,6.035,911,5.351,915,3.555,1049,6.035,1175,5.713,1213,5.251,1548,5.159,1735,5.073]],["title/705",[8,0.926,375,3.434]],["content/705",[18,1.522,74,1.589,112,3.267,114,1.78,115,1.498,131,1.904,134,1.545,218,2.815,241,1.921,308,2.539,311,3.225,332,1.938,439,3.154,454,1.72,476,3.6,477,3.256,507,2.923,532,3.825,849,3.324,915,2.437,954,4.274,994,3.423,1106,1.974,1120,3.478,1131,2.952,1190,4.028,1197,3.825,1213,3.6,1243,4.274,1563,3.081,1691,3.324,1708,5.242,1709,4.91,1722,3.154,1732,4.84,1735,5.065,1736,4.439,2671,4.922,3240,5.342]],["title/706",[219,3.553]],["content/706",[64,3.519,65,2.175,69,2.428,134,2.107,185,3.281,219,3.181,308,3.462,415,3.539,454,1.611,529,3.414,1177,4.956,1184,3.874,1652,6.336,1701,5.342,1735,4.744,1774,6.055,1775,6.713,1776,5.231,3241,6.713,3242,6.713,3243,7.286,3244,6.713,3245,7.286]],["title/711",[1045,4.289]],["content/711",[18,0.856,28,3.306,47,2.816,49,2.238,131,2.893,134,2.743,279,1.267,313,2.251,477,2.011,478,4.534,488,3.041,498,4.853,514,3.268,515,3.525,520,3.387,529,2.655,582,2.692,641,2.794,892,3.525,893,4.263,941,4.263,994,3.631,1022,3.891,1045,2.986,1056,4.534,1071,3.232,1133,2.934,1174,3.818,1548,3.751,1725,4.708,1805,4.534,2316,3.232,2667,3.891,2759,5.221,2899,3.431,3153,3.97,3246,8.117,3247,5.666,3248,5.666]],["title/712",[1185,4.018,1482,4.076]],["content/712",[28,2.936,112,2.982,495,4.722,519,5.367,546,5.19,587,3.945,1035,4.937,1045,4.847,1824,7.124,3249,8]],["title/713",[3250,7.079]],["content/713",[28,3.416,99,2.838,112,1.976,134,2.856,176,2.57,194,2.317,254,5.247,419,5.618,454,1.348,578,4.588,655,2.838,915,2.781,936,5.067,1034,4.272,1036,5.303,1037,4.722,1055,4.037,1106,2.253,1131,3.37,1155,3.849,1528,4.187,1662,3.793,1806,4.879,1868,4.272,1998,5.303,2871,5.303,3006,5.618,3137,5.303,3249,5.303,3250,5.303,3251,6.097,3252,5.618,3253,5.618,3254,6.097,3255,5.618]],["title/714",[3256,6.764]],["content/714",[28,3.163,103,3.603,108,2.982,112,2.458,134,2.193,546,5.592,578,5.705,643,5.312,655,3.528,915,3.458,1093,5.109,1477,4.424,1541,5.872,1772,5.206,2651,5.559,2914,4.936,3252,6.986,3256,6.3,3257,6.986,3258,7.581,3259,7.581]],["title/715",[485,3.069,535,3.209]],["content/715",[18,0.901,28,1.905,73,3.265,74,1.775,103,2.836,111,3.298,134,2.436,254,3.662,279,1.884,454,2.158,477,2.118,500,3.404,546,5.507,912,3.442,1033,4.181,1122,6.175,1137,4.021,1141,6.522,1165,3.09,1170,3.885,1171,4.273,1423,3.824,1551,3.613,1597,4.181,1721,4.098,1788,7.559,1845,4.273,2629,4.021,3114,5.19,3134,5.19,3260,5.967,3261,5.967,3262,5.967]],["title/716",[18,0.808,131,1.908,646,2.41]],["content/716",[18,0.911,99,2.807,108,2.372,112,1.955,131,2.15,134,3.247,171,4.895,184,3.652,194,3.73,241,3.53,308,2.866,314,3.333,331,3.237,436,3.237,516,3.652,546,3.403,563,3.479,915,3.871,1115,4.84,1136,3.865,1165,3.123,1175,4.422,1184,3.207,1614,5.558,1701,4.422,1772,4.142,1854,5.012,1998,5.246,2082,3.753,3263,5.012,3264,6.031]],["title/717",[18,0.808,28,1.708,74,1.592]],["content/717",[18,1.541,28,3.42,48,1.624,49,1.31,50,2.461,69,1.584,74,2.549,131,1.694,134,3.307,241,3.08,279,1.063,313,1.889,314,2.627,454,1.578,477,1.687,485,2.259,492,2.038,563,4.116,684,2.197,720,1.584,889,1.815,895,2.807,915,3.255,956,2.381,1029,2.842,1032,3.331,1045,3.76,1055,3.147,1071,2.711,1098,2.682,1106,2.636,1250,3.485,1395,3.147,1573,3.203,1709,3,1934,3.803,2899,2.878,3250,4.134,3265,4.38,3266,4.753,3267,4.753,3268,4.753]],["title/718",[73,3.534,74,1.921]],["content/718",[28,3.307,75,3.729,108,3.581,134,1.931,194,3.46,488,3.584,720,2.226,1003,4.897,1028,4.155,1043,5.172,1045,4.798,1071,3.809,1106,2.467,1120,4.348,1121,3.944,1150,5.344,1153,6.154,1548,4.421,1711,4.044,1764,4.421,1886,5.808,3010,6.154,3011,5.808,3256,5.55,3269,6.678,3270,6.678,3271,6.678,3272,6.678]],["title/719",[112,2.093,3249,5.616]],["content/719",[28,2.634,84,5.287,112,2.675,171,4.759,241,2.967,253,3.739,254,5.063,279,1.846,314,4.56,454,1.824,915,3.764,981,5.463,1035,4.428,1121,4.872,1742,5.372,1806,6.602,3255,7.603]],["title/707",[1118,5.299]],["content/707",[18,1.246,28,2.634,134,2.386,175,4.348,176,3.478,233,3.459,279,1.846,311,3.42,454,1.824,482,2.728,641,4.069,1045,4.348,1118,5.372,1122,6.05,1178,5.782,1788,6.39,2941,6.857]],["title/708",[1174,5.485]],["content/708",[0,2.704,18,1.272,28,2.688,49,2.322,69,1.989,103,2.836,104,1.607,108,2.347,111,3.298,112,1.934,134,3.234,163,4.273,164,4.375,304,4.375,311,2.474,313,2.371,332,2.165,394,3.951,463,3.885,557,2.836,559,3.064,589,3.203,646,2.687,672,3.203,684,3.893,1118,3.885,1174,4.021,1177,3.064,1242,3.524,1615,4.273,1620,2.92,1716,4.775,2316,3.404,3273,5.967,3274,5.967]],["title/709",[1190,4.214]],["content/709",[18,1.324,28,2.798,108,3.448,112,2.842,134,2.536,241,3.153,332,3.181,380,4.427,439,5.177,477,3.858,2193,7.624,3093,8.078]],["title/710",[1178,5.703]],["content/710",[18,1.471,28,2.356,69,2.46,131,2.631,134,3.152,468,6.134,485,3.508,557,3.508,558,5.555,589,5.227,666,2.995,1071,4.211,1170,4.806,1171,5.286,1178,5.173,1185,4.593,1188,5.555,1195,5.412,1573,4.975,1620,3.612,2676,6.134]],["title/720",[1170,4.205,1171,4.625]],["content/720",[18,0.963,102,3.245,112,2.066,134,3.156,143,2.546,194,2.422,279,1.973,311,2.643,313,2.533,415,3.096,454,1.95,482,2.108,506,5.101,657,2.546,956,3.193,1052,3.219,1117,5.544,1118,4.15,1121,3.764,1157,3.523,1170,5.742,1171,6.316,1188,4.797,1195,4.674,1563,3.677,1627,4.378,3275,6.374,3276,5.874,3277,6.374,3278,6.374]],["title/721",[257,5.485]],["content/721",[18,1.648,28,2.035,69,2.125,75,3.559,78,4.69,242,3.051,331,3.421,398,3.421,1048,3.636,1071,3.636,1106,3.258,1120,6.584,1170,4.15,1171,6.316,1187,5.544,1188,6.636,1195,8,1558,4.565,1620,3.119,1711,3.86,1764,5.839,2891,2.734,2937,5.544,3202,5.101]],["title/722",[1178,5.703]],["content/722",[18,1.353,69,2.174,78,3.469,104,1.757,134,3.187,176,2.75,242,4.289,306,2.9,314,3.605,331,3.501,398,3.501,406,3.242,454,1.442,477,2.315,557,3.1,657,3.579,688,3.721,714,3.145,1144,5.228,1185,4.058,1187,5.673,1188,6.742,1226,3.605,1558,4.671,1620,3.192,1626,4.117,1716,5.219]],["title/723",[3279,6.513]],["content/723",[]],["title/724",[477,1.415,579,2.354,891,2.16,3279,3.19,3280,3.674]],["content/724",[28,2.055,114,1.385,115,1.165,219,1.814,257,4.339,279,0.929,328,3.217,376,2.8,477,1.474,486,3.175,492,1.782,500,2.37,524,1.713,531,2.745,567,4.064,582,1.974,587,2.761,640,3.613,657,1.659,661,2.273,701,3.452,889,2.459,911,4.422,915,1.895,952,2.32,973,3.217,981,2.75,1002,2.8,1008,2.37,1016,2.75,1025,1.883,1081,2.585,1086,2.75,1094,2.911,1106,2.379,1173,2.975,1213,2.8,1226,2.296,1250,3.046,1377,2.344,1398,3.126,1620,2.033,1661,2.975,1749,2.8,1752,2.911,1867,2.516,1873,2.585,1896,2.484,2219,2.8,2539,3.217,2885,3.452,2887,2.424,2897,3.324,2909,5.351,2987,3.452,3063,3.324,3103,3.613,3279,7.106,3280,3.828,3281,2.911,3282,4.154,3283,4.154,3284,4.154,3285,4.154,3286,4.154,3287,4.154,3288,3.046,3289,4.154,3290,4.154,3291,3.828,3292,3.828]],["title/725",[279,1.022,546,2.579,604,2.929,3293,4.57]],["content/725",[28,2.453,142,4.168,143,3.069,507,5.471,557,3.652,1016,5.088,1071,4.384,1377,4.337,1818,6.055,2043,5.004,2763,7.081,3030,5.504,3279,6.15,3294,9.999,3295,7.685,3296,7.685,3297,7.685,3298,7.685]],["title/726",[69,2.152,3279,5.168]],["content/726",[]],["title/727",[482,2.691]],["content/727",[18,1.181,24,1.887,28,2.495,30,0.977,32,1.317,47,1.044,48,0.717,49,1.608,54,3.225,74,1.968,84,1.346,108,0.826,111,1.161,112,1.187,114,0.7,115,0.589,131,2.079,133,2.279,135,1.078,171,1.211,175,1.107,219,0.917,253,0.952,256,1.211,257,1.415,278,1.58,313,1.935,314,1.161,378,1.173,453,3.121,454,0.464,482,0.694,485,0.998,486,4.286,491,4.851,500,2.089,504,3.937,517,0.928,519,2.842,520,1.256,524,0.866,563,1.211,578,2.756,582,0.998,592,1.078,619,1.225,624,1.127,646,2.626,889,0.802,893,1.58,913,1.161,915,3.565,1016,1.39,1025,2.998,1038,1.097,1045,1.107,1081,2.279,1087,1.835,1122,1.54,1124,0.991,1144,1.225,1157,1.161,1170,1.367,1171,1.504,1213,3.282,1242,2.163,1250,1.54,1254,1.211,1377,1.185,1395,1.39,1510,1.367,1526,1.68,1547,1.58,1548,1.39,1626,1.326,1627,1.442,1628,1.504,1647,1.005,1691,1.307,1708,1.415,1709,1.326,1722,2.163,1733,1.745,1746,1.58,1788,1.626,1825,1.935,1857,1.745,1865,1.626,1867,4.006,2047,1.826,2316,1.198,2750,1.39,2991,1.826,3047,1.935,3051,2.931,3052,1.626,3055,1.935,3098,1.935,3101,1.745,3134,1.826,3141,1.826,3207,1.826,3299,2.1,3300,5.753,3301,2.1,3302,5.753,3303,2.1,3304,2.1,3305,2.1,3306,1.935,3307,1.745,3308,2.1,3309,1.826,3310,3.375,3311,2.1,3312,2.1,3313,2.837,3314,2.1,3315,2.1,3316,2.1,3317,1.826,3318,2.1,3319,2.1,3320,1.826,3321,1.935,3322,1.745,3323,2.1,3324,2.1]],["title/728",[2219,5.485]],["content/728",[28,2.276,37,1.461,49,0.785,54,1.885,112,0.923,175,1.5,176,1.2,306,1.266,378,1.589,446,1.5,453,1.824,454,1.05,463,1.853,504,4.639,510,1.415,517,1.258,519,2.771,521,1.334,588,1.437,712,1.372,757,2.624,777,1.724,889,1.087,893,5.365,912,1.642,915,2.166,941,3.573,1024,2.278,1025,2.152,1087,4.288,1116,1.298,1152,1.573,1219,4.888,1395,4.721,1516,6.586,1534,3.946,1588,2.142,1589,2.038,1684,2.205,1730,1.824,2070,2.623,2219,6.874,2843,2.038,2949,4.375,3300,6.892,3302,6.892,3313,6.631,3325,2.476,3326,2.846,3327,2.846,3328,2.476,3329,8.561,3330,2.846,3331,4.748,3332,6.108,3333,4.748,3334,2.846,3335,6.108,3336,2.846,3337,2.623,3338,2.846,3339,2.846,3340,2.846,3341,2.087,3342,3.946,3343,2.846,3344,4.748,3345,2.846,3346,2.846,3347,2.846,3348,2.846,3349,2.846,3350,2.846,3351,2.846,3352,2.366,3353,2.846,3354,2.846,3355,2.846]],["title/729",[498,4.866]],["content/729",[18,1.086,28,2.296,148,4.058,504,5.83,546,5.401,563,4.149,568,3.975,900,2.887,951,4.247,1038,3.757,1087,3.603,1563,4.149,3146,6.255,3300,8.325,3302,8.325,3356,7.192,3357,7.192,3358,7.192,3359,7.192,3360,7.192,3361,7.192,3362,7.192]],["title/730",[1121,4.806]],["content/730",[18,1.209,28,2.554,74,2.38,103,2.639,131,2.852,242,4.489,279,1.79,311,3.317,454,2.074,470,2.804,477,1.971,482,3.393,529,2.602,589,2.981,646,3.603,899,4.301,935,4.301,938,5.117,939,4.179,1025,2.517,1027,3.677,1038,2.901,1069,2.927,1095,4.179,1121,5.538,1126,4.179,1478,4.615,1590,4.83,1616,4.301,1678,4.179,1805,4.444,2102,4.845,3363,5.553]],["title/731",[131,2.901]],["content/731",[18,1.777,28,1.989,97,3.555,102,4.42,109,3.595,131,3.095,133,3.878,134,1.803,229,3.122,311,2.584,454,1.378,477,2.212,546,3.517,646,2.807,760,4.827,1022,4.28,1027,4.127,1035,3.345,1055,4.127,1056,4.987,1079,4.463,1106,2.303,1121,3.68,1178,4.367,1386,3.637,1626,3.934,1635,3.48,1849,5.421,1868,4.367,2985,5.421,3061,5.743,3364,5.743]],["title/732",[242,3.896]],["content/732",[18,1.688,48,1.388,49,1.12,73,2.224,74,2.611,99,1.891,104,2.714,112,1.317,131,2.771,134,3.146,152,2.069,181,4.435,242,5.571,314,4.85,406,2.02,477,1.442,912,2.344,956,2.036,1035,2.181,1106,2.872,1113,2.739,1116,1.854,1120,2.646,1125,2.43,1133,2.104,1211,2.98,1254,5.062,1480,2.246,1549,3.745,1575,2.202,2102,2.461,2870,3.745,2891,4.666,3150,3.534,3217,3.745,3365,4.064]],["title/733",[1144,3.768,1626,4.076]],["content/733",[18,1.401,28,1.738,51,2.665,69,3.091,104,1.467,112,1.765,131,1.941,134,3.357,176,2.296,194,2.998,242,4.867,243,3.49,311,2.258,488,2.923,492,2.336,951,3.216,1032,3.816,1035,2.923,1045,2.87,1084,3.993,1106,2.012,1121,3.216,1144,5.934,1510,3.546,1588,4.098,1620,2.665,1626,3.437,1632,4.357,1716,4.357,1727,4.736,1846,4.218,1868,3.816,2779,4.736,3366,4.736,3367,5.446]],["title/741",[73,3.534,74,1.921]],["content/741",[18,1.115,28,2.356,73,4.039,74,2.196,131,2.631,242,3.533,279,1.651,311,3.06,454,2.153,482,2.441,485,3.508,624,3.962,1006,4.593,1027,4.887,1035,3.962,1038,3.855,1121,5.751,1123,4.47,1178,5.173,1423,4.73,1510,4.806,1563,4.258,1573,4.975]],["title/742",[1551,4.929]],["content/742",[52,3.727,73,5.371,74,2.92,78,3.207,102,3.071,104,2.644,279,1.349,306,2.682,406,4.879,454,1.876,482,1.994,493,2.602,589,4.554,655,2.807,1027,3.993,1095,4.539,1116,3.871,1121,5.011,1123,3.652,1125,5.073,1635,3.368,1662,3.753,1764,5.618,2016,4.671,3368,6.031,3369,6.031,3370,6.031]],["title/743",[18,0.808,82,2.639,1587,4.028]],["content/743",[18,1.733,52,2.302,62,2.626,73,4.966,74,2.971,75,2.927,82,2.585,99,2.44,104,1.412,108,2.062,131,2.735,134,2.889,242,4.344,311,2.173,312,3.413,332,2.784,398,2.814,458,2.788,470,2.647,477,1.86,587,2.248,666,2.127,951,3.095,1027,3.471,1035,2.814,1106,3.353,1125,3.134,1129,3.059,1138,4.587,1143,3.134,1165,2.714,1764,5.08,3042,4.83,3136,4.559]],["title/744",[28,1.459,134,1.322,374,3.351,665,2.975]],["content/744",[18,1.301,28,3.17,48,2.105,49,1.7,73,4.714,74,2.563,75,3.442,134,3.11,150,2.449,194,3.274,241,2.217,242,2.95,332,2.236,374,4.52,398,3.309,470,3.113,488,3.309,589,3.309,665,4.013,666,2.501,712,2.972,951,3.64,1006,3.835,1034,4.319,1106,2.277,1113,4.154,1125,5.151,1175,4.52,1764,4.081,1806,4.932]],["title/745",[1129,4.749]],["content/745",[18,1.274,28,1.479,48,2.392,49,1.93,52,3.075,69,1.545,73,2.536,74,1.379,75,2.588,82,4.636,104,2.273,108,2.754,131,2.496,134,2.919,136,3.59,150,1.842,181,3.248,183,2.771,194,1.761,241,1.667,406,2.304,414,3.069,470,2.341,655,2.157,666,2.841,684,2.143,905,3.248,976,2.172,1034,3.248,1045,2.443,1048,2.644,1095,3.488,1106,1.713,1125,4.186,1129,4.086,1138,2.771,1150,5.603,1157,2.562,1165,2.4,1178,4.906,1625,4.031,1764,3.069,1767,2.926,1806,3.709,3371,4.635,3372,4.635,3373,4.635,3374,4.635,3375,4.635]],["title/734",[73,3.534,1132,4.018]],["content/734",[18,1.145,103,3.603,279,1.696,440,4.233,454,1.676,482,3.277,524,3.126,983,6.593,1029,4.532,1071,4.325,1106,2.801,1120,4.936,1121,6.52,1125,5.925,1132,4.717,2057,6.3,2983,6.986,3157,6.986,3376,7.581]],["title/735",[1551,4.929]],["content/735",[73,4.873,74,2.65,312,5.799,496,7.126,517,3.936,657,3.557,684,4.117,1132,5.541,1551,5.393,1770,7.126,1875,5.393,3377,6.702]],["title/736",[1129,4.749]],["content/736",[18,1.194,73,4.324,74,2.351,108,4.004,409,4.023,492,3.389,586,4.367,858,4.988,908,5.064,1121,4.666,1129,6.572,1133,4.091,1138,6.086,3378,7.902,3379,7.902,3380,7.902]],["title/737",[1130,6.125]],["content/737",[18,1.606,28,2.449,73,4.966,74,1.56,75,4.284,108,3.018,134,1.516,279,1.173,309,2.647,314,2.897,378,2.927,458,2.788,477,1.86,492,2.248,513,4.24,517,2.317,523,3.309,574,2.288,587,3.291,905,3.673,1071,2.99,1106,1.937,1125,3.134,1129,4.477,1130,7.998,1134,4.559,1138,6.355,1192,4.356,1202,3.944,1575,2.84,1638,4.06,1760,5.171,1763,4.194,3005,4.06,3381,5.242]],["title/738",[1125,4.866]],["content/738",[18,1.284,279,1.902,455,5.724,482,2.811,495,4.364,659,3.757,684,3.93,872,7.833,1125,5.082,1127,7.065,3164,7.393,3382,8.501,3383,8.501,3384,8.501]],["title/739",[18,0.808,646,2.41,1602,4.028]],["content/739",[18,1.032,52,1.971,73,5.735,74,2.032,75,4.618,78,5.574,104,1.84,108,1.765,112,1.454,134,3.032,242,3.959,306,1.995,314,2.48,332,1.628,348,3.902,415,2.179,460,2.25,492,2.93,684,3.158,714,2.163,761,2.559,897,3.902,915,2.047,969,2.921,1048,2.559,1129,2.618,1132,2.792,1136,2.875,1143,2.682,1144,3.986,1174,3.024,1184,2.386,1485,2.921,1588,5.14,1662,2.792,1764,4.523,1896,2.682,2385,3.729,2752,3.729,3385,4.487,3386,4.487,3387,4.487,3388,4.487,3389,3.902,3390,6.831]],["title/740",[18,0.975,3391,6.458]],["content/740",[18,1.482,52,2.219,73,2.765,74,1.503,108,2.937,134,2.16,279,1.13,314,4.127,395,3.101,440,2.821,454,1.117,475,6.88,476,3.405,477,1.793,557,2.401,587,2.167,619,2.949,714,2.436,887,3.619,896,4.308,952,2.821,956,2.531,1081,3.144,1106,1.867,1113,3.405,1120,4.862,1121,2.984,1125,4.465,1129,5.726,1132,5.527,1136,3.238,1449,4.043,1558,3.619,1602,3.802,1620,2.473,1626,3.19,1711,3.06,1742,3.29,1752,3.541,2102,3.06,3392,5.053,3393,5.053,3394,5.053,3395,5.053]],["title/746",[304,4.735,314,3.569]],["content/746",[8,0.947,18,1.364,28,2.106,52,2.899,73,4.942,74,1.963,75,3.685,112,2.139,133,4.106,134,1.909,171,3.807,194,2.508,242,3.159,310,3.36,311,3.744,605,4.05,620,4.05,666,2.678,720,2.2,898,3.611,1121,3.897,1126,4.966,1137,4.448,1563,3.807,1631,4.625,1670,3.945,2081,6.081,3256,5.484,3396,6.6,3397,6.6,3398,6.6]],["title/747",[1482,4.076,1627,4.435]],["content/747",[0,2.173,18,1.085,69,1.598,73,3.929,74,2.136,108,1.885,131,3.65,134,3.109,135,2.461,150,1.905,194,2.729,242,2.294,304,7.509,306,2.132,308,2.278,310,4.868,311,1.987,313,1.905,314,3.969,460,1.579,476,4.839,479,3.072,493,2.068,526,2.132,582,2.278,588,2.421,620,2.942,665,3.121,712,2.311,720,1.598,729,3.359,960,3.607,1106,1.771,1113,3.231,1121,2.831,1165,2.482,1189,3.515,1404,3.433,1589,3.433,1602,3.607,1674,3.433,1691,2.983,3399,4.794,3400,4.417]],["title/748",[314,3.569,1553,5.616]],["content/748",[8,1.773,18,0.839,52,2.439,74,2.79,103,2.639,114,1.851,115,1.557,131,2.852,134,2.314,142,2.315,152,5.225,253,2.517,306,2.469,310,2.827,314,3.069,476,5.392,479,3.559,493,2.396,529,2.602,898,3.039,917,4.783,1098,3.134,1114,4.615,1121,4.725,1126,4.179,1533,3.677,2817,5.117,2921,4.615,3401,5.553,3402,5.553,3403,5.553]],["title/749",[896,3.725,1602,4.859]],["content/749",[18,1.732,71,2.244,131,3.835,134,3.112,142,2.998,475,5.57,476,4.847,479,6.134,557,3.418,665,4.683,896,6.206,1602,7.203,1646,5.412,1732,4.475,2102,4.355,2991,6.255]],["title/750",[1189,4.735,1862,5.002]],["content/750",[18,1.51,76,5.004,131,2.739,134,2.892,135,3.946,304,5.635,310,3.913,314,4.247,416,4.247,446,5.269,529,3.601,620,4.716,981,5.088,1136,4.925,1265,4.925,1741,6.387,3219,6.387,3404,7.685,3405,7.685]],["title/751",[65,2.43]],["content/751",[18,1.059,61,3.957,65,3.172,151,4.363,255,4.643,279,2.105,454,1.55,477,2.489,524,2.891,527,4.816,655,3.264,688,4,889,2.678,900,2.815,949,5.022,1008,4,1069,3.695,1753,5.277,1805,5.611,2914,4.566,3406,6.461,3407,6.461,3408,7.012,3409,7.012,3410,6.099,3411,7.012]],["title/752",[2914,5.299]],["content/752",[18,0.952,63,3.292,64,3.189,65,3.001,107,3.921,109,3.636,113,3.449,114,2.101,115,1.767,142,4.19,176,2.657,279,1.41,406,3.132,516,3.817,521,4.1,529,2.954,574,2.752,582,2.995,657,2.517,695,3.978,882,4.881,900,2.53,1023,4.248,1093,4.248,1377,3.556,1386,3.678,1477,3.678,1545,3.556,1548,4.173,2015,4.514,2914,4.104,3412,5.808]],["title/753",[1777,5.485]],["content/753",[65,3.373,152,3.526,397,4.257,523,4.372,524,2.855,535,3.442,562,3.717,574,3.024,726,5.756,915,3.159,952,3.867,1777,4.667,1780,5.078,1875,4.194,2102,4.194,2249,5.211,2399,4.96,2710,7.916,2930,5.542,3413,6.382,3414,5.542,3415,6.023,3416,6.926]],["title/754",[1139,5.064]],["content/754",[18,1.086,35,3.52,55,2.195,65,3.212,74,2.14,145,3.26,194,2.733,229,3.603,279,1.609,406,4.757,408,5.585,426,5.57,477,2.552,537,4.847,655,3.347,683,4.54,900,3.843,1543,6.255,1565,4.683,1780,5.274,1866,5.977,3417,6.627]],["title/755",[2317,5.703]],["content/755",[6,2.692,8,1.77,55,2.234,65,3.241,107,4.555,249,3.53,250,5.859,251,5.028,252,5.368,254,4.493,460,2.411,466,2.979,493,3.159,793,3.379,889,2.796,1534,4.089,1589,3.523,1767,4.622,2317,5.131,2638,3.702,3414,5.859,3418,6.746,3419,4.089,3420,7.322,3421,7.322,3422,7.322,3423,7.322,3424,4.92,3425,4.92]],["title/756",[12,3.315,2317,4.525]],["content/756",[8,1.652,12,3.325,18,0.978,24,1.622,37,2.149,55,1.976,65,2.662,101,2.08,109,2.414,131,1.492,142,1.745,225,2.933,249,3.819,250,5.182,251,4.447,252,3.069,254,3.974,255,5.244,460,1.378,466,2.534,493,2.794,494,7.476,521,1.961,526,1.861,581,1.861,605,4.861,620,2.568,621,1.698,900,1.68,1143,2.502,1165,2.167,1659,7.145,1731,2.933,1780,3.069,1848,3.149,1875,2.534,2207,3.478,2317,4.538,2349,2.933,3426,3.856,3427,3.478,3428,4.185,3429,4.185,3430,4.185,3431,4.185,3432,3.856,3433,4.185]],["title/757",[65,1.19,2317,2.794,2710,2.794,2930,3.19,3414,3.19]],["content/757",[8,1.384,18,1.253,55,1.783,61,3.297,65,3.539,74,1.738,107,3.635,108,2.298,145,2.648,194,2.22,251,4.013,406,2.904,408,3.409,466,3.538,493,2.521,537,3.938,548,4.525,549,3.804,556,3.744,585,3.688,1116,2.665,1131,3.229,1565,3.804,1595,4.675,2059,4.397,2317,4.094,2710,4.094,2930,4.675,3136,7.216,3414,4.675,3418,5.384,3419,4.856,3434,5.843,3435,5.384,3436,5.384]],["title/758",[152,2.725,2710,3.751,3415,4.655]],["content/758",[3,1.738,8,1.782,12,3.213,18,0.605,35,1.96,37,2.057,55,1.222,65,3.124,69,1.335,100,2.893,107,2.492,145,1.816,152,4.433,225,2.807,249,1.931,250,3.205,251,4.298,254,2.458,308,1.904,406,1.991,450,3.359,460,2.537,466,3.79,493,2.7,494,4.589,621,1.625,900,1.608,1139,3.894,1659,5.398,2059,4.71,2082,2.492,2207,6.402,2317,5.398,2710,4.386,2930,3.205,3414,5.008,3415,5.443,3419,3.329,3426,3.691,3427,3.329,3435,3.691,3436,3.691,3437,6.259]],["title/759",[142,3.393]],["content/759",[8,1.837,18,0.945,55,1.222,63,2.092,65,2.821,88,1.67,99,1.864,100,2.893,104,1.686,105,2.426,112,1.299,114,2.086,115,1.755,117,3.102,118,3.014,142,3.63,255,2.652,279,0.896,307,2.608,460,2.537,484,2.112,485,1.904,488,2.15,493,2.7,494,2.937,519,2.338,621,1.625,623,3.742,685,3.691,761,2.285,767,2.751,900,1.608,960,3.014,1054,5.513,1750,3.205,1780,2.937,2037,3.329,2207,5.201,3438,3.691,3439,4.006,3440,4.006,3441,3.484,3442,4.006,3443,4.006,3444,4.006,3445,4.006]],["title/777",[18,0.975,74,1.921]],["content/777",[18,1.658,28,2.843,131,3.175,228,5.734,279,1.992,470,4.497,981,5.897,1106,3.291,1722,5.259,3446,8.906]],["title/778",[1097,6.513]],["content/778",[18,1.826,48,2.631,49,2.124,69,1.335,74,2.979,102,2.039,104,2.545,109,3.61,131,2.746,182,4.937,183,4.605,306,1.781,313,1.592,321,2.751,379,1.931,398,4.674,450,3.359,454,1.384,516,2.426,557,1.904,657,1.6,714,3.714,889,1.53,899,3.102,956,2.007,1106,1.48,1110,3.102,1131,2.214,1190,2.074,1386,2.338,1485,2.608,1585,3.691,1701,2.937,1817,3.691,1849,3.484,1872,2.869,1878,3.691,2077,2.869,2193,3.484,2292,2.492,2796,2.567,3027,3.691,3056,3.329,3265,3.691,3447,4.006,3448,4.006,3449,4.006,3450,3.691,3451,4.006]],["title/779",[18,0.975,113,3.534]],["content/779",[8,1.882,12,0.571,18,1.273,19,2.349,47,2.108,48,2.235,49,2.323,50,0.576,51,1.413,52,0.907,53,1.323,55,0.881,61,1.165,63,2.51,64,0.405,65,0.862,69,1.203,74,0.331,82,0.549,104,0.778,112,1.17,113,1.13,114,1.203,115,1.012,131,3.074,132,4.939,133,2.64,134,0.597,135,4.101,136,1.599,141,1.205,142,0.861,143,1.441,145,1.309,148,0.628,150,1.434,151,3.585,152,2.447,169,1.018,175,1.901,176,0.469,181,2.024,182,1.851,183,1.727,184,0.674,185,0.93,332,1.048,374,0.816,375,1.919,376,0.75,377,1.63,378,1.153,379,0.536,380,2.681,406,0.553,415,1.003,421,0.713,443,0.665,453,1.323,454,0.639,487,0.837,497,0.75,504,0.603,516,0.674,520,0.665,523,0.702,536,0.837,538,0.423,548,1.599,582,0.981,641,1.018,655,1.974,683,0.702,688,0.635,691,0.576,692,0.967,721,3.721,760,0.862,873,0.816,912,0.642,942,0.764,1008,1.647,1045,0.586,1048,0.635,1071,0.635,1133,0.576,1137,0.75,1144,2.105,1174,0.75,1254,1.191,1257,0.797,1540,0.642,1563,0.642,1582,0.78,1583,1.447,1588,0.837,1589,0.797,1595,1.652,1626,1.303,1627,1.418,1646,2.715,1647,0.532,1659,0.78,1731,0.78,1770,0.89,2102,0.674,2779,0.967,2796,0.713,3035,1.025,3043,2.661,3452,0.967,3453,1.112,3454,0.967,3455,1.112,3456,1.112,3457,1.112,3458,1.112,3459,1.112,3460,1.112,3461,1.112,3462,1.112,3463,1.112]],["title/780",[18,0.975,1646,4.859]],["content/780",[]],["title/781",[18,0.975,131,2.302]],["content/781",[]],["title/760",[18,0.975,55,1.971]],["content/760",[18,1.741,28,3.456,55,3.304,134,2.792,150,2.895,314,5.336,406,3.621,454,1.611,621,2.956,858,4.599,1144,4.251,1404,5.217,1624,8.023,1647,3.487,2223,6.713,2705,6.713]],["title/761",[28,2.061,134,1.868]],["content/761",[18,1.284,28,2.713,134,3.534,150,3.378,241,3.057,600,5.216,889,3.246,900,3.413,956,4.258,1174,5.729,1730,5.448,1742,5.535]],["title/762",[28,2.061,3464,6.458]],["content/762",[18,1.437,51,4.654,134,2.751,240,5.057,600,5.836,720,3.17,1202,7.156,3465,9.51]],["title/763",[28,2.061,3466,6.458]],["content/763",[18,1.413,99,4.352,134,2.705,492,4.011,1177,4.801,1202,7.037,3467,8.617,3468,8.617,3469,9.352]],["title/764",[28,2.061,3470,6.458]],["content/764",[18,1.324,64,3.195,100,5.025,107,6.764,380,4.427,1116,3.999,1202,6.597,1764,5.804,2278,6.79,3467,8.078,3468,8.078]],["title/765",[28,2.061,218,3.403]],["content/765",[18,1.177,64,2.84,74,2.318,112,2.526,145,4.572,150,3.096,218,4.106,241,2.802,493,3.361,683,4.918,720,2.597,956,3.903,1116,3.555,1184,4.144,1742,6.569,1763,6.235,1776,4.222,1835,5.159,2349,5.46]],["title/766",[28,2.061,3471,6.458]],["content/766",[18,1.726,76,6.192,218,5.012,380,4.802,1202,7.156,1764,6.297,3472,9.51]],["title/767",[28,2.061,3473,5.951]],["content/767",[18,1.367,130,5.992,134,2.617,143,3.614,150,3.596,588,4.57,657,3.614,849,6.898,956,4.533,1373,7.521]],["title/768",[28,2.061,3474,6.458]],["content/768",[18,1.389,130,6.09,134,2.66,454,2.034,557,4.371,849,5.723,1327,6.09,1373,7.644,1729,7.36,3473,8.476]],["title/769",[28,2.061,377,3.644]],["content/769",[1962,8.636]],["title/770",[888,3.868]],["content/770",[18,1.437,64,3.466,65,2.84,454,2.103,484,3.209,900,4.587,3475,9.51]],["title/771",[3476,8.139]],["content/771",[18,1.541,47,5.071,655,4.748,888,4.849]],["title/772",[142,3.393]],["content/772",[18,1.437,150,3.779,152,4.842,517,5.412,2132,6.297,2133,7.156]],["title/773",[65,2.43]],["content/773",[18,1.57,65,3.103,655,4.836]],["title/774",[148,4.593]],["content/774",[18,1.762,169,4.855,375,5.235,890,5.497,1838,5.235]],["title/775",[112,2.638]],["content/775",[18,1.514,61,5.654,145,4.541,150,3.982,517,4.428]],["title/776",[115,2.282]],["content/776",[3,4.349,18,1.514,115,2.81,143,4.002,150,3.982]],["title/782",[64,2.354,65,1.928]],["content/782",[48,2.309,64,2.463,134,1.955,176,2.849,251,4.641,279,1.512,482,2.235,485,3.212,487,5.086,488,3.628,492,2.899,507,3.698,600,4.147,657,2.699,900,2.713,1097,5.408,1170,4.401,1541,5.235,1545,3.814,1818,4.093,1972,6.228,2670,4.555,2720,7.629,2914,4.401,3087,5.235,3313,5.235,3477,6.759,3478,6.759,3479,6.759,3480,6.228,3481,6.759]],["title/783",[65,1.364,3482,4.57,3483,4.57,3484,4.57]],["content/783",[18,1.033,32,2.46,65,2.043,134,2.677,229,3.427,311,2.836,483,4.61,492,2.934,524,2.821,531,2.917,574,2.987,600,4.198,773,3.542,1022,4.698,1035,3.672,1170,4.454,1545,3.86,1844,5.148,2929,4.454,3087,5.298,3197,5.148,3480,6.304,3485,6.841,3486,9.123,3487,6.841,3488,6.841,3489,6.841,3490,6.841]],["title/784",[279,1.197,499,2.958,2731,3.43]],["content/784",[28,2.713,148,4.797,194,3.231,279,1.902,313,3.378,477,3.017,574,3.711,864,5.535,892,5.289,1025,3.853,1055,5.628,1482,5.366,2784,4.48,3103,7.393,3491,7.833]],["title/785",[2988,7.079]],["content/785",[74,2.225,148,5.543,454,1.654,488,4.015,499,4.134,515,4.654,527,5.137,720,2.493,1035,4.015,1045,3.942,1063,4.654,1185,4.654,1482,4.722,1811,6.892,1868,5.242,2201,5.041,2845,6.216,2995,5.629,3005,5.793,3406,6.892,3492,7.48,3493,6.892,3494,7.48]],["title/786",[2668,5.703]],["content/786",[18,1.115,307,4.806,375,3.925,376,4.975,517,3.262,574,3.223,657,2.948,827,3.962,889,2.819,1087,3.698,1116,3.367,1482,4.659,1540,4.258,1545,4.165,1573,4.975,1838,3.925,1839,4.958,2784,6.106,2988,6.42,3407,8.973]],["title/787",[313,3.234]],["content/787",[28,1.492,74,2.096,112,2.284,131,2.511,148,3.976,194,1.776,279,1.046,306,2.078,313,3.369,440,2.61,482,1.545,499,2.583,521,2.19,684,3.257,720,2.348,743,3.275,793,3.21,890,2.61,896,2.696,898,2.557,908,4.515,939,3.517,1008,2.666,1025,2.118,1038,2.441,1045,2.463,1055,3.094,1063,2.908,1079,3.347,1081,2.908,1106,2.603,1126,3.517,1344,3.347,1482,2.95,1632,3.74,1708,3.15,1709,2.95,1868,3.275,2102,2.83,2292,2.908,2784,4.975,2858,3.275,3002,3.884,3028,3.74,3029,3.74,3176,5.046,3224,4.065,3307,3.884,3491,4.307,3495,4.674,3496,4.674,3497,4.674,3498,4.674,3499,4.674,3500,4.307]],["title/788",[1477,3.768,3501,6.458]],["content/788",[8,0.579,18,0.609,28,2.009,64,1.47,74,1.2,111,2.23,112,1.308,148,4.933,185,1.817,194,1.533,279,1.408,460,1.329,482,1.334,488,2.166,492,1.73,493,1.741,557,1.917,581,1.794,582,1.917,620,2.476,621,1.637,657,1.611,793,2.771,905,2.827,908,2.586,956,2.021,994,2.586,1025,2.853,1038,2.107,1046,3.718,1055,2.671,1106,1.491,1114,3.353,1116,1.841,1131,2.23,1185,2.51,1249,2.958,1477,2.354,1482,2.547,1737,2.827,1750,6.192,1757,3.228,1839,2.054,1967,3.353,1991,3.718,2205,3.228,2403,3.228,2784,5.293,2798,3.353,2929,6.83,3146,3.509,3176,5.542,3209,3.718,3412,3.718,3493,3.718,3502,4.035,3503,5.8,3504,4.035,3505,7.739,3506,4.035,3507,4.035,3508,4.035,3509,4.035,3510,4.035]],["title/789",[1582,5.703]],["content/789",[8,0.465,74,0.964,112,1.051,114,1.08,115,0.909,148,4.356,150,1.288,279,0.725,332,1.176,421,4.288,482,1.072,485,1.54,486,1.598,488,2.837,499,5.039,524,1.336,531,2.853,540,4.431,555,4.87,557,1.54,582,2.512,620,1.989,626,2.864,666,2.715,688,1.849,695,2.046,720,1.762,761,1.849,859,2.146,891,1.756,900,1.301,905,2.271,908,2.077,915,1.479,1008,1.849,1029,1.938,1042,2.511,1081,2.017,1093,3.562,1119,3.441,1184,1.724,1209,4.431,1213,2.185,1224,2.594,1393,2.819,1395,3.499,1482,2.046,1502,2.046,1536,2.819,1659,2.271,1675,3.562,1680,2.987,1697,2.694,1796,2.987,1838,4.105,1839,1.65,2096,2.146,2102,1.963,2107,2.987,2135,2.439,2201,2.185,2663,2.321,2742,4.792,2784,4.48,3176,3.785,3184,2.226,3452,2.819,3511,3.241,3512,3.241,3513,3.241,3514,2.987,3515,3.241,3516,3.241,3517,3.241,3518,2.987,3519,3.241,3520,3.241,3521,5.183,3522,3.241,3523,5.285,3524,2.694,3525,3.241]],["title/790",[1079,4.625,2698,5.367]],["content/790",[]],["title/791",[567,4.076,3526,6.458]],["content/791",[510,4.162,521,3.924,524,3.453,540,5.544,567,5.286,574,3.656,604,5.366,907,5.452,1209,5.544,1839,5.378,2746,6.959,2784,5.567,2960,6.959,3527,8.374]],["title/792",[574,3.553]],["content/792",[454,2.034,510,4.571,551,5.136,562,4.937,574,4.016,607,6.317,1185,5.723,1839,4.683,2698,7.644,2784,4.847]],["title/793",[3528,7.5]],["content/793",[8,1.006,249,3.381,378,5.931,482,2.318,499,3.875,524,2.891,531,2.99,551,3.915,565,4.192,566,4.726,567,5.941,603,5.277,623,4.192,626,3.8,888,3.332,1038,3.663,1096,4.816,1242,4.141,1545,3.957,1645,4.816,1819,4.816,2102,4.246,2784,3.695,2785,5.431,2914,4.566,3529,6.099]],["title/794",[1645,4.435,1839,3.288]],["content/794",[131,1.709,148,2.705,233,3.01,279,1.926,454,1.588,485,2.278,499,2.649,537,3.231,551,4.808,565,2.866,566,3.231,583,3.515,600,2.942,657,1.915,695,4.533,712,2.311,777,2.903,889,1.83,905,3.359,1025,2.173,1029,2.866,1033,3.359,1069,2.526,1092,3.433,1106,1.771,1131,2.649,1251,3.231,1276,3.359,1583,3.359,1620,2.346,1635,2.677,1645,4.932,1675,3.231,1838,2.549,1839,5.675,1854,3.984,1882,3.607,2752,3.984,2781,4.417,2784,4.537,3202,3.836,3253,4.417,3530,4.794,3531,4.794,3532,4.794,3533,4.794,3534,4.794,3535,4.794,3536,4.794,3537,4.794]],["title/800",[249,2.581,1096,3.676,1838,2.846]],["content/800",[104,1.889,163,5.022,249,4.537,375,3.729,477,2.489,488,3.764,521,3.286,536,5.277,657,2.801,1006,4.363,1008,4,1025,3.178,1038,3.663,1096,4.816,1482,4.426,1563,4.045,1583,4.914,2015,5.022,2418,4.816,2784,5.598,2785,5.431,3257,6.461,3521,5.431,3529,6.099,3538,7.012,3539,7.012]],["title/801",[3529,7.079]],["content/801",[24,2.11,55,1.662,74,1.62,88,2.27,104,1.467,134,2.281,148,3.073,175,2.87,249,3.803,279,1.765,454,2.248,495,2.796,585,3.437,624,2.923,657,2.175,664,2.552,695,3.437,720,1.815,1038,2.844,1096,5.417,1107,4.098,1233,3.106,1265,3.49,1393,4.736,1502,3.437,1528,3.74,1713,6.556,2067,4.218,2201,3.67,2784,4.888,2785,4.218,3114,4.736,3540,5.446,3541,5.446,3542,4.736,3543,5.018,3544,4.736,3545,5.446,3546,5.018,3547,5.446,3548,5.446,3549,5.018]],["title/802",[148,3.02,378,2.989,720,1.784]],["content/802",[18,1.243,55,2.512,74,2.449,148,4.645,421,5.275,470,4.156,657,3.287,664,3.857,1107,6.194,1116,3.755,1233,5.961,1593,6.035,2660,4.596,2784,4.338,2785,6.375,2786,4.101,2788,4.101,3328,10.503,3543,7.584,3544,7.159,3546,7.584,3549,7.584,3550,4.451]],["title/803",[3551,6.304]],["content/803",[18,0.911,148,3.403,279,1.349,313,3.372,441,6.79,458,3.207,482,1.994,495,3.097,529,2.826,549,3.927,559,3.097,568,3.333,605,3.701,655,2.807,900,2.421,1060,4.539,1087,3.021,1096,4.142,1242,5.011,1620,2.952,1693,5.012,1713,5.012,1741,5.012,1790,5.246,1838,3.207,2784,5.613,2856,5.246,2858,4.226,2942,5.558,3097,5.012,3215,5.246,3542,7.38,3544,7.38,3551,4.671]],["title/804",[460,2.127,1242,3.814]],["content/804",[49,2.13,50,2.74,61,2.986,78,2.814,131,1.886,176,2.231,454,1.708,477,1.878,522,4.397,536,3.982,551,2.955,565,5.455,581,2.353,588,2.672,641,2.609,666,2.147,858,3.34,896,3.052,1091,3.982,1096,6.266,1104,3.445,1242,6.301,1595,4.234,1620,3.781,2160,6.719,2201,3.566,2650,4.098,2785,5.983,3229,7.118,3542,6.719,3552,5.291,3553,7.725,3554,5.291,3555,5.291,3556,5.291,3557,5.291,3558,5.291,3559,5.291,3560,5.291]],["title/805",[74,1.36,621,1.854,664,2.142,1242,2.699]],["content/805",[18,1.136,28,1.628,49,2.898,50,2.64,74,1.517,131,1.817,134,1.475,145,2.311,150,2.026,162,3.048,176,2.149,376,3.436,454,1.662,505,2.091,516,3.088,520,5.339,546,2.877,551,2.847,565,3.048,581,2.267,600,3.129,624,2.737,657,2.036,666,3.05,672,2.737,889,1.947,916,2.941,1242,5.82,1254,2.941,1838,3.998,1839,2.596,2301,3.573,2784,2.687,2796,3.268,3521,3.949,3551,7.633,3561,5.099,3562,5.099,3563,5.099,3564,5.099,3565,5.099,3566,5.099,3567,4.698]],["title/795",[375,3.434,1838,3.434]],["content/795",[18,1.246,74,2.455,148,4.656,279,2.341,454,1.824,482,2.728,499,4.56,646,3.715,891,4.471,942,5.666,976,3.866,1485,5.372,1838,4.388,2784,4.348,2858,5.782,3307,6.857]],["title/796",[18,0.975,891,3.499]],["content/796",[8,1.796,18,1.39,37,1.225,84,1.529,100,1.103,103,1.944,104,2.249,112,2.062,145,2.433,148,1.346,150,1.625,184,1.445,247,3.168,332,0.866,379,1.972,400,1.205,406,2.033,416,2.966,421,2.621,460,2.095,478,1.909,486,1.177,493,1.029,517,1.054,524,0.984,526,1.819,551,1.332,562,1.281,587,1.023,603,1.795,620,1.464,624,2.881,626,4.23,743,1.672,768,2.075,796,3.029,829,1.909,889,0.911,899,1.848,1029,1.427,1210,2.199,1327,1.58,1483,2.075,1486,2.199,1644,1.75,1659,4.458,1676,1.848,1721,1.639,1724,1.639,1831,1.909,1837,1.909,1838,1.269,1863,1.709,1997,1.75,2249,1.795,2748,2.075,2784,3.352,3069,3.769,3427,1.983,3452,4.668,3568,5.368,3569,2.386,3570,2.386,3571,2.386,3572,3.769,3573,4.09,3574,6.361,3575,2.386,3576,2.386,3577,4.09,3578,2.386,3579,4.09,3580,2.386,3581,2.386,3582,2.386,3583,2.386,3584,2.386,3585,6.361,3586,4.09,3587,5.368,3588,2.386,3589,4.09,3590,4.09,3591,2.199]],["title/797",[145,2.927,3307,5.367]],["content/797",[6,2.131,18,1.143,54,2.579,74,1.821,99,1.813,104,1.049,108,1.532,112,1.985,131,1.388,134,1.771,145,2.775,148,2.198,279,1.37,306,1.732,400,1.967,409,1.983,412,2.729,436,2.09,440,3.418,441,3.116,479,2.496,482,1.288,499,3.384,557,2.909,564,3.016,620,2.39,623,3.66,624,5.003,626,5.051,639,1.466,714,1.878,757,3.384,859,2.579,896,2.247,907,4.925,916,2.247,1011,3.237,1029,2.328,1071,2.222,1106,1.439,1116,1.777,1121,2.3,1147,2.931,1157,2.152,1162,3.116,1184,2.071,1485,2.536,1573,2.625,1591,2.856,1620,3.702,1725,3.237,1819,2.675,1838,2.071,1866,3.237,1875,2.358,2249,2.931,2663,2.789,2784,4.912,2858,4.29,2960,3.237,3389,3.387,3521,3.016,3592,2.931,3593,3.895]],["title/798",[1190,3.344,2784,3.403]],["content/798",[18,1.446,74,2.14,99,3.347,134,2.08,308,3.418,395,4.413,477,2.552,524,2.965,624,5.138,684,3.325,695,4.54,889,2.746,907,4.683,1060,5.412,1116,3.281,1190,4.956,1423,4.609,1604,6.255,1620,3.52,1662,4.475,1838,3.825,2418,4.939,2784,5.044]],["title/799",[2784,3.403,3594,6.458]],["content/799",[8,1.181,18,1.244,88,2.411,99,2.691,112,2.67,134,1.672,143,2.31,162,3.457,184,3.502,380,2.92,395,3.548,460,1.904,466,3.502,482,1.912,505,2.371,624,4.421,665,3.765,976,2.71,994,3.706,1015,3.229,1742,3.765,1819,3.971,1845,4.141,2349,4.052,2483,5.029,2605,7.589,2677,5.328,2710,5.771,2784,5.055,2790,4.479,3100,5.328,3317,5.029,3572,5.328,3595,8.343,3596,5.783,3597,5.783]],["title/806",[666,2.172,1838,2.846,2742,3.833]],["content/806",[143,2.948,279,1.651,375,3.925,454,1.632,482,2.441,486,3.64,499,4.08,505,3.027,507,4.039,531,3.148,552,4.887,573,4.359,588,3.727,890,4.122,976,3.459,1209,4.887,1475,4.806,1838,3.925,1839,3.758,1875,4.47,2721,5.555,2741,6.134,3184,5.069,3598,7.382,3599,5.555]],["title/807",[3599,6.125]],["content/807",[]],["title/808",[108,1.568,684,1.843,1209,2.64,1839,2.03,3184,2.738]],["content/808",[0,1.42,8,0.449,18,0.987,48,1.756,49,0.864,69,1.713,74,0.932,84,2.008,88,1.306,141,1.828,142,1.306,145,2.33,150,2.042,185,1.411,229,1.569,241,1.848,249,2.478,279,1.15,310,1.595,407,2.151,446,3.444,450,1.681,454,0.693,470,1.582,477,1.824,482,2.161,484,1.057,520,1.873,526,1.393,538,1.191,556,3.294,557,2.443,558,2.357,568,1.731,581,1.393,587,2.204,592,1.608,624,1.681,626,3.541,641,1.545,650,2.297,691,1.622,720,2.178,790,2.04,851,2.426,888,2.443,889,1.196,898,2.812,908,2.008,917,1.873,1025,1.42,1054,1.828,1096,2.151,1139,3.198,1209,3.403,1242,3.035,1254,2.965,1376,2.243,1401,4.47,1403,2.999,1838,1.666,1839,4.251,1850,2.151,1874,1.749,1887,2.603,2015,2.243,2048,2.426,2649,1.922,2660,1.749,2784,3.444,2789,2.725,2791,2.603,2796,2.008,2923,2.725,2951,2.243,3184,7.419,3317,2.725,3600,3.133,3601,3.133,3602,3.133,3603,2.887,3604,3.133,3605,3.133]],["title/809",[1190,2.771,1209,3.544,3184,3.676]],["content/809",[18,1.341,20,2.549,48,1.419,74,1.236,88,4.006,112,1.347,142,1.732,145,1.883,148,2.344,150,2.558,185,1.871,241,2.315,279,0.929,309,2.098,395,2.549,436,2.23,446,4.155,454,0.918,458,2.209,477,2.798,482,2.936,484,1.402,531,2.745,556,2.662,557,1.974,558,3.126,587,2.761,603,3.126,624,2.23,684,1.92,691,2.151,720,1.385,791,2.975,851,3.217,889,1.586,1061,2.585,1101,2.296,1188,3.126,1190,4.598,1254,2.396,1597,2.911,1603,3.452,1678,3.126,1839,2.115,1850,2.853,1874,2.32,1887,6.552,2591,3.452,2649,2.549,2660,2.32,2664,2.453,3184,6.981,3592,3.126,3603,3.828,3606,4.154,3607,4.154]],["title/810",[1190,2.771,1242,3.161,3551,4.145]],["content/810",[0,2.083,18,1.66,20,2.821,48,1.57,49,1.918,51,2.25,74,1.368,88,2.901,142,1.916,145,2.083,185,2.07,279,1.028,306,2.044,446,3.667,454,1.016,482,1.52,484,1.551,520,4.16,531,1.96,556,2.946,557,2.185,558,3.459,587,2.984,624,4.506,664,2.154,684,2.125,691,2.38,720,1.532,851,3.56,889,1.755,1061,2.86,1096,3.157,1101,2.541,1190,5.208,1242,6.248,1254,4.843,1603,3.82,1839,2.34,1874,2.567,2649,2.821,2660,2.567,2664,2.715,3184,6.43,3551,3.56]],["title/811",[1209,3.544,3184,3.676,3595,4.655]],["content/811",[18,1.582,20,3.101,74,1.503,88,3.113,142,2.106,185,2.275,279,1.13,310,2.573,446,3.935,454,1.117,482,1.671,484,1.705,505,2.072,521,2.368,531,2.155,556,3.238,557,2.401,587,3.203,624,4.008,684,2.336,691,2.616,720,1.684,851,3.913,889,1.929,1061,3.144,1101,2.793,1190,3.867,1209,4.944,1254,2.915,1603,4.199,1839,2.573,1874,2.821,2048,3.913,2649,3.101,2660,2.821,3184,7.787,3221,3.913,3288,3.705,3595,9.532]],["title/812",[241,1.643,1133,2.366,1209,3.026,3608,4.211]],["content/812",[18,0.931,88,3.592,113,3.373,145,3.905,150,2.449,194,2.342,241,2.217,380,3.113,482,2.038,505,2.528,517,2.724,566,4.154,626,4.669,666,2.501,976,2.889,1106,3.67,1115,3.516,1242,5.088,1662,3.835,1737,4.319,1751,4.638,1839,4.386,2647,5.123,2660,4.811,2784,4.54,2859,5.361,2951,6.17,3551,4.774,3609,6.164,3610,5.68]],["title/813",[1838,3.434,3611,5.951]],["content/813",[71,2.465,141,4.611,279,1.768,310,4.023,484,2.666,531,3.369,563,4.558,615,5.064,691,4.091,898,4.324,942,5.427,1661,5.659,1838,4.202,2660,4.412,2661,4.324,2923,6.872,3610,7.281,3611,9.381,3612,7.902]],["title/814",[3528,7.5]],["content/814",[1,4.718,18,1.177,135,4,145,4.572,484,2.629,486,4.975,568,4.306,664,3.651,892,4.848,1106,2.879,1259,7.18,1395,5.159,1502,4.918,1838,4.144,1859,6.475,1887,6.475,2049,4.718,2792,6.777,3608,7.18]],["title/824",[551,2.226,565,2.384,566,2.687,567,2.517,1838,2.12]],["content/824",[194,3.003,279,1.768,454,1.747,482,2.613,543,5.659,551,4.412,557,3.755,565,4.724,594,5.064,596,6.872,598,6.323,626,4.282,1475,5.145,1675,5.325,1838,4.202,1839,4.023,2721,5.946,2741,6.567,2784,4.164,3613,7.281]],["title/825",[104,1.442,332,1.942,1838,2.846]],["content/825",[8,1.087,104,2.974,331,4.069,332,3.596,454,2.589,493,3.271,513,4.19,565,4.532,659,3.35,672,5.319,688,4.325,698,3.271,1838,4.032,2680,6.3,2800,6.593,3614,7.581]],["title/826",[1838,3.434,1839,3.288]],["content/826",[8,1.567,18,1.766,28,0.909,37,1.461,64,1.037,74,0.847,99,1.325,113,1.558,131,2.177,142,1.187,145,2.152,162,3.652,185,3.211,310,3.63,454,1.576,460,0.937,484,0.96,517,1.258,521,1.334,526,2.716,540,1.885,563,1.642,565,2.839,600,1.747,603,2.142,620,2.914,621,1.155,626,2.573,639,1.071,641,1.404,657,1.137,672,4.254,719,1.853,867,1.702,888,1.353,898,1.558,900,2.452,916,3.524,956,1.426,1054,1.661,1076,1.642,1116,1.298,1132,3.801,1133,3.163,1190,1.474,1595,2.278,1619,2.366,1674,4.374,1838,1.514,1839,4.359,1857,2.366,1874,1.589,1882,2.142,2082,2.954,2679,5.076,2681,3.573,2784,3.219,2792,2.476,2798,2.366,2800,2.476,3567,2.623,3615,2.846,3616,2.846,3617,2.846,3618,2.846,3619,2.846,3620,2.846,3621,2.846,3622,2.846,3623,2.846,3624,2.846,3625,2.846,3626,2.366]],["title/815",[279,1.197,545,2.526,2732,3.284]],["content/815",[64,2.801,65,2.295,101,3.819,153,7.081,279,1.719,313,3.054,482,2.541,485,3.652,490,5.278,500,5.704,545,3.626,574,3.355,695,4.851,889,2.935,1025,3.483,1045,4.05,1722,4.538,2020,4.851,2802,5.952,2808,5.635,2810,6.15]],["title/816",[49,1.781,1551,3.91]],["content/816",[]],["title/817",[108,1.568,115,1.118,379,1.922,2166,2.204,2815,2.738]],["content/817",[48,1.286,51,4.487,74,2.503,101,4.181,108,3.309,115,2.571,142,2.484,143,1.503,152,1.916,311,1.56,313,2.368,379,1.815,397,1.717,450,2.02,453,2.412,454,0.832,458,2.002,500,3.4,517,2.634,519,2.196,520,2.25,535,1.871,545,1.776,557,1.789,568,2.08,619,3.478,652,3.708,720,1.254,761,2.147,777,2.279,796,2.124,857,2.637,889,1.437,1016,2.492,1032,2.637,1080,3.273,1081,2.342,1087,2.985,1094,4.176,1155,3.762,1156,4.37,1198,3.831,1485,2.451,1502,2.376,1527,2.412,1575,2.039,1722,3.519,1828,2.915,1839,1.916,1850,2.585,1874,2.102,2166,4.65,2180,4.484,2676,3.128,2815,2.585,2816,3.128,2842,3.012,2843,5.298,2891,1.614,3067,3.468,3176,2.695,3592,2.832]],["title/818",[74,1.36,133,2.843,535,2.271,1152,2.526]],["content/818",[18,0.743,74,2.178,111,2.719,112,2.373,133,3.061,134,1.423,279,1.101,313,2.909,377,2.776,397,2.244,400,3.697,453,3.153,482,2.421,488,2.641,515,3.061,521,2.306,535,3.639,568,2.719,646,2.216,665,4.767,720,1.64,895,2.905,915,2.244,1018,3.81,1025,2.23,1055,3.257,1081,4.555,1094,5.131,1098,2.776,1156,5.368,1184,2.616,1198,5.015,1386,2.871,1528,3.379,1709,3.106,1722,4.324,1795,3.81,2077,3.523,2102,2.979,2261,2.719,2750,4.848,2815,5.028,2819,4.279,2843,3.523,2846,4.533,2847,4.279,3627,4.92]],["title/819",[279,1.445,2261,3.569]],["content/819",[36,2.111,51,3.527,65,2.152,74,1.718,101,2.87,104,0.975,107,2.251,108,1.423,114,1.206,115,1.619,133,2.251,142,1.508,152,2.94,184,2.191,233,1.517,279,1.612,308,2.745,311,2.394,314,2,379,1.744,397,1.65,450,1.942,470,1.827,477,1.284,482,1.91,484,1.948,524,2.381,535,2.87,545,2.725,592,1.857,619,2.111,646,2.601,652,2.251,688,2.064,715,2.535,827,1.942,885,2.723,896,2.087,915,2.635,980,3.334,1022,2.485,1052,1.827,1116,1.65,1133,1.873,1152,2,1155,2.284,1234,3.147,1251,2.438,1527,2.319,1564,4.621,1593,2.653,1620,2.826,1647,1.732,1724,2.485,1839,2.94,1874,4.025,2096,2.395,2111,3.147,2166,3.192,2261,4.548,2815,3.966,2843,4.136,2891,3.529,3164,3.147,3441,3.147,3628,7.208,3629,3.618,3630,3.147,3631,3.334]],["title/820",[279,1.445,2261,3.569]],["content/820",[12,1.358,35,1.294,51,4.036,65,1.333,101,2.879,114,0.882,115,2.132,135,3.494,142,1.103,151,2.778,176,1.115,184,1.602,233,2.428,241,0.951,279,0.999,308,1.257,310,1.347,311,1.851,332,0.96,379,2.153,425,2.437,450,1.42,477,1.584,482,0.875,484,1.506,492,1.134,500,1.509,524,3.134,535,4.772,545,1.248,592,1.358,646,2.609,652,1.646,720,2.534,760,2.049,761,1.509,827,2.396,857,1.853,895,1.562,900,2.326,915,1.207,976,1.239,1022,1.816,1069,1.394,1085,1.99,1087,1.325,1104,1.722,1165,1.37,1182,2.3,1185,1.646,1190,1.37,1233,1.509,1564,2.116,1575,2.419,1586,2.3,1620,2.835,1623,2.3,1647,1.266,1684,2.049,1737,1.853,1828,2.049,1845,1.894,1859,2.198,1864,2.116,1874,3.8,2077,1.894,2102,1.602,2166,2.467,2229,2.049,2261,4.202,2663,4.148,2797,1.751,2815,5.663,2843,5.905,2848,2.437,2891,4.258,2914,1.722,3441,2.3,3630,2.3,3631,2.437,3632,2.3,3633,4.465,3634,2.645,3635,2.049]],["title/821",[505,3.338]],["content/821",[0,2.857,154,3.415,378,3.519,395,3.868,454,1.935,481,4.881,508,6.416,510,3.132,513,3.483,531,3.731,539,3.483,574,3.82,624,3.383,720,2.101,757,3.483,827,4.697,911,4.328,945,3.768,1069,3.321,1251,4.248,1551,3.817,1653,4.173,2418,4.328,2732,3.868,2796,4.039,2823,5.481,2887,3.678,3057,4.743,3117,5.238,3175,4.621,3636,5.481,3637,6.303,3638,5.481]],["title/822",[114,1.523,115,1.281,584,3.273,2261,2.526]],["content/822",[114,2.877,115,2.42,194,3.28,313,3.43,482,2.854,584,7.71,1015,4.82,2261,4.77,2836,7.954,2837,7.173,2838,7.954,2839,7.173,2840,7.954]],["title/823",[3639,6.513]],["content/823",[241,3.603,624,5.378,1189,7.347,1835,6.634,3639,8.018]],["title/827",[2732,3.963,3599,4.859]],["content/827",[0,1.842,49,1.12,88,3.241,101,2.02,115,1.14,143,1.623,154,2.202,176,1.713,194,1.544,279,1.963,311,1.685,395,2.494,454,0.898,484,2.961,499,3.498,502,4.435,505,2.596,507,2.224,531,4.296,535,2.02,545,2.987,552,2.691,568,2.246,573,3.738,581,1.807,588,2.052,594,2.604,907,2.646,915,1.854,1015,2.269,1038,2.123,1132,2.528,1190,2.104,1423,2.604,1475,2.646,1547,3.058,1551,2.461,1847,3.252,2015,2.91,2162,4.533,2667,2.791,2721,4.763,2823,3.534,2825,4.435,2826,3.745,2828,3.147,2829,3.147,2830,3.147,2858,5.448,2884,3.745,2885,6.461,2887,2.371,3640,3.745,3641,3.745,3642,4.064,3643,6.33,3644,2.4,3645,2.791,3646,3.745,3647,3.745,3648,3.377]],["title/828",[479,4.138,615,4.138]],["content/828",[479,5.895,505,3.772,545,4.341,615,5.895,715,6.446,1724,6.317,2660,5.136,2661,5.033,2732,5.644,3649,8.476]],["title/829",[531,2.754,2649,3.963]],["content/829",[0,3.739,99,3.84,241,2.967,279,1.846,346,6.209,531,3.518,539,4.56,605,5.063,720,2.75,945,4.933,1143,4.933,1403,4.814,1499,5.56,2026,6.39,2649,5.063,2793,5.208,2952,7.176]],["title/830",[505,2.648,1069,3.403]],["content/830",[18,1.161,279,1.719,436,4.125,458,4.087,482,2.541,505,3.152,538,2.921,545,4.718,614,5.088,1115,4.384,1403,4.484,1438,5.278,1499,5.179,2180,7.524,2261,4.247,2649,4.716,2662,5.783,2663,5.504,3650,7.081,3651,6.684]],["title/831",[101,3.209,545,3.047]],["content/831",[18,1.161,97,4.384,142,4.168,169,3.79,241,2.764,279,1.719,310,3.913,446,4.05,484,2.593,545,3.626,592,3.946,619,4.484,646,3.461,652,4.782,827,4.125,1052,3.881,1157,4.247,1587,5.783,2049,4.654,2261,4.247,2910,6.15]],["title/832",[142,1.905,460,1.505,592,2.346,827,2.453]],["content/832",[1,2.928,3,2.098,55,1.475,65,2.158,100,2.235,104,1.947,142,2.016,184,2.928,185,2.177,194,1.837,229,2.422,241,1.739,279,1.617,308,2.298,311,2.004,377,2.728,407,3.32,482,3.175,484,2.438,507,2.646,545,3.41,563,4.992,573,2.855,581,2.15,588,3.65,624,2.595,652,3.008,714,2.331,827,2.595,948,2.928,976,2.266,1239,3.869,1403,2.821,1582,5.064,1593,3.545,1635,2.7,1656,2.62,1872,3.462,2049,2.928,2162,3.462,2261,3.994,2419,4.018,2664,6.07,2944,3.745,2990,3.745,3639,3.869,3652,3.638,3653,4.835]],["title/833",[169,2.254,310,2.327,621,1.854,827,2.453]],["content/833",[65,2.659,75,4.973,169,4.392,185,4.943,241,3.203,310,4.534,615,5.707,2049,5.393,2419,7.401,2889,6.898,3654,7.401]],["title/834",[142,1.905,526,2.032,827,2.453,1052,2.308]],["content/834",[18,1.356,100,2.379,104,1.386,115,1.443,131,1.834,142,3.743,171,2.968,241,1.85,279,1.151,305,3.985,307,3.35,308,2.445,310,3.853,407,3.534,440,2.873,446,2.712,474,3.076,484,3.34,508,3.773,519,3.003,545,2.428,646,4.043,683,4.778,719,3.35,720,1.715,851,5.862,915,2.347,1249,3.773,1587,5.695,1589,3.685,1656,2.788,1674,3.685,1874,2.873,2102,3.116,2162,3.685,2261,2.844,2796,3.298,2815,3.534,2935,4.475,3651,4.475,3655,5.146,3656,5.146,3657,5.146,3658,5.146,3659,5.146]],["title/835",[436,2.873,486,2.639,1438,3.676]],["content/835",[69,2.561,142,3.204,194,2.921,436,5.367,444,5.504,504,5.418,505,3.152,816,4.433,915,3.506,1069,4.05,1115,4.384,1147,5.783,1438,7.632,2060,5.635,2162,5.504,2399,5.504,3660,7.685,3661,7.685]],["title/836",[0,2.927,1403,3.768]],["content/836",[436,5.284,1107,7.408,1438,8.009,1521,7.218,1554,7.624]],["title/837",[142,2.231,233,2.244,665,3.485]],["content/837",[142,5.039,169,4.069,279,1.846,436,4.428,505,3.383,1377,4.656,1438,5.666,1653,5.463,2180,6.209,2886,6.857,3342,6.857,3651,7.176,3662,10.465]],["title/838",[646,2.908,2180,4.859]],["content/838",[18,0.931,65,1.84,100,2.849,104,2.321,131,2.197,185,2.776,308,2.929,310,3.138,393,3.556,400,4.351,440,3.442,454,1.363,482,2.038,484,2.907,507,3.373,557,2.929,563,3.556,583,4.52,621,2.501,646,2.776,715,4.319,915,2.812,1069,3.248,1674,4.414,1874,6.005,1921,4.233,2180,8.092,2349,4.319,3663,5.361,3664,6.164,3665,6.164]],["title/839",[535,3.209,551,3.606]],["content/839",[18,1.059,99,3.264,154,3.8,194,2.665,279,1.569,454,1.55,482,2.318,484,2.366,486,3.458,521,3.286,524,2.891,531,2.99,562,3.764,563,4.045,565,4.192,566,4.726,574,3.061,607,4.816,888,3.332,1008,4,1025,3.178,1059,4.363,1670,4.192,1675,4.726,1678,5.277,1711,4.246,1731,4.914,1842,5.827,2738,5.277]],["title/840",[594,5.216]],["content/840",[8,0.725,18,1.128,99,3.476,104,1.361,154,2.738,233,2.118,279,1.671,332,1.833,375,2.687,414,3.345,421,3.238,486,2.492,505,2.072,524,2.083,531,3.184,551,4.96,567,3.19,583,3.705,594,4.786,599,4.395,607,3.47,641,2.492,888,3.549,889,2.852,891,4.814,907,3.29,917,3.021,948,3.06,1061,6.105,1173,3.619,1658,4.199,1677,4.199,1743,3.802,1831,4.043,2649,3.101,2664,2.984,2721,3.802,2722,6.206,3648,4.199,3666,3.913,3667,5.053,3668,5.053,3669,5.053,3670,5.053,3671,5.053]],["title/841",[104,1.74,332,2.343]],["content/841",[24,2.978,52,4.392,104,2.693,332,2.788,379,4.821,397,3.506,415,4.857,421,4.925,672,4.125,686,5.904,698,3.315,889,2.935,894,6.867,948,4.654,1629,7.081,2672,7.081]],["title/842",[18,0.808,99,2.491,891,2.9]],["content/842",[18,1.806,35,2.213,55,2.833,64,1.648,65,1.35,99,3.869,134,1.308,142,3.465,162,4.109,229,4.164,241,1.626,397,2.063,398,2.428,454,1,470,2.284,492,1.94,493,1.951,517,3.037,581,2.011,657,2.745,664,2.119,672,3.689,698,2.965,720,1.507,889,1.727,900,1.816,917,2.704,948,2.739,1143,2.704,1568,3.316,1656,3.724,1730,2.898,1737,3.169,2049,2.739,2399,3.239,2418,3.106,2649,2.775,2661,3.761,2662,3.403,2664,4.909,2945,3.316,2947,4.168,3322,3.759,3672,3.619,3673,3.934]],["title/843",[64,2.354,142,2.692]],["content/843",[18,1.086,49,1.983,55,2.921,64,3.489,69,2.397,100,3.325,104,1.937,131,2.564,142,4.485,454,1.59,664,3.37,889,2.746,900,2.887,1072,5.755,1521,5.274,1670,4.3,1730,6.134,2661,3.935,2945,5.274,3674,5.151,3675,5.57,3676,6.255]],["title/844",[65,1.928,142,2.692]],["content/844",[65,3.553,104,2.399,105,5.393,142,3.713,450,4.78,657,3.557,849,5.541,1116,4.063,1224,7.126,2945,6.53]],["title/845",[152,4.144]],["content/845",[18,0.81,24,1.278,28,1.053,35,1.614,47,4.264,48,2.664,49,3.086,51,3.817,61,5.466,69,1.787,114,2.257,115,1.503,150,1.311,152,1.679,162,1.972,229,1.652,241,1.186,242,3.733,243,2.114,477,1.171,505,2.777,517,1.458,557,2.548,581,2.384,585,2.082,586,1.823,595,3.613,655,1.535,657,1.317,664,3.655,672,1.771,849,2.052,858,2.082,889,1.26,898,2.933,900,1.324,912,1.903,917,1.972,1015,1.842,1052,2.707,1106,1.219,1116,1.505,1139,2.052,1224,2.64,1487,3.04,1521,3.931,1582,3.757,1656,1.787,1730,4.34,1856,2.223,1865,2.555,2661,1.805,2664,1.948,2945,4.966,3674,6.144,3675,4.152,3676,4.663,3677,3.299,3678,5.361,3679,3.299,3680,3.04]],["title/846",[145,3.689]],["content/846",[18,1.177,55,2.378,145,4.572,229,3.903,589,4.182,643,7.069,889,2.975,898,4.264,2049,4.718,2057,6.475,2082,4.848,2945,8.203,3672,6.235,3674,5.58,3681,9.296,3682,7.18]],["title/847",[114,2.152,115,1.811]],["content/847",[18,1.145,55,2.313,114,3.303,115,2.779,229,3.798,589,4.069,643,6.945,889,2.895,898,4.148,2049,4.591,2057,6.3,2082,4.717,2945,8.096,3672,6.066,3674,5.429,3681,9.132,3682,6.986]],["title/848",[18,0.975,99,3.006]],["content/848",[18,1.367,585,5.712,664,4.241,859,5.992,917,5.41,1061,5.631,1730,5.8,2661,4.952,2945,6.636,3674,6.481,3680,8.339]],["title/849",[486,3.185,888,3.069]],["content/849",[18,1.021,52,2.969,99,3.146,162,5.488,219,4.008,397,3.083,450,3.628,486,3.333,505,3.765,589,3.628,657,2.699,664,3.167,672,4.927,688,3.855,888,5.557,889,2.581,898,3.698,900,2.713,1377,3.814,1656,3.662,2418,4.641,2649,4.147,2664,3.991,3241,6.228]],["title/850",[888,3.069,900,2.593]],["content/850",[454,2.001,477,3.212,505,3.711,672,4.857,720,3.016,888,5.268,900,4.451,2661,4.952,3674,6.481]],["title/851",[505,2.648,888,3.069]],["content/851",[64,3.098,69,2.833,219,4.656,505,4.373,517,3.757,858,5.366,888,5.068,900,3.413,948,5.148,1254,4.904,2661,4.651,3674,6.088]],["title/852",[8,0.656,219,1.995,586,2.526,1377,2.579]],["content/852",[3,3.121,55,2.195,69,2.397,219,5.472,249,4.615,440,4.016,477,3.397,671,3.935,900,3.843,916,4.149,948,4.355,1061,4.475,1072,5.755,1521,5.274,3674,6.855,3675,5.57,3676,6.255]],["title/853",[18,0.808,219,2.337,900,2.149]],["content/853",[18,1.656,37,3.31,162,3.855,219,4.787,307,4.198,397,2.941,477,2.288,517,2.849,549,4.198,672,3.461,686,3.807,698,2.782,888,3.064,894,4.428,900,3.569,942,4.428,1116,2.941,1563,3.719,1730,5.696,2049,3.904,2649,3.956,2661,3.528,2664,5.249,3674,6.366,3675,6.884]],["title/854",[279,0.892,551,2.226,565,2.384,566,2.687,1731,2.794]],["content/854",[37,4.057,103,3.755,169,3.897,194,3.003,279,1.768,440,4.412,454,1.747,537,5.325,551,4.412,562,5.464,565,6.733,566,5.325,604,5.064,721,5.537,1675,5.325,3049,7.281,3613,7.281]],["title/855",[2744,4.643]],["content/855",[143,3.295,421,5.287,470,4.166,479,5.287,537,5.56,539,4.56,574,3.602,1008,4.706,1059,5.133,1635,4.607,1835,5.463,2716,6.39,2744,5.97,2944,6.39,2960,6.857,3683,8.251]],["title/856",[279,1.197,2736,3.925,2737,3.241]],["content/856",[64,3.319,142,4.319,154,3.619,279,2.489,400,3.372,454,1.476,479,4.28,484,2.253,500,3.809,508,4.897,509,4.897,545,3.151,589,3.584,900,2.681,976,3.129,1233,3.809,2802,7.052,2804,5.55,2808,4.897,2809,5.55,3176,4.782,3599,6.852,3645,4.586,3684,5.808,3685,6.154]],["title/857",[154,1.916,279,0.791,454,0.782,479,2.266,508,2.593,545,1.669]],["content/857",[]],["title/858",[509,3.351,976,2.142,1233,2.607,3599,3.439]],["content/858",[64,3.612,142,4.603,279,2.47,400,3.828,484,2.558,500,4.325,589,4.069,900,3.044,2802,7.675,2804,6.3,2808,5.559,2809,6.3,3176,5.429,3599,5.705,3645,5.206,3684,6.593,3685,6.986]],["title/863",[539,2.958,2733,2.426,2739,3.241]],["content/863",[18,0.873,34,2.156,48,1.975,101,2.874,185,2.604,279,1.842,313,2.298,479,3.706,482,1.912,500,3.299,505,2.371,524,3.396,572,4.24,579,3.415,1025,3.733,1033,4.052,1055,3.829,1198,2.994,1386,3.374,1545,3.263,1645,3.971,1678,4.351,1847,4.627,2020,3.65,2040,5.029,2224,4.052,2733,4.348,2737,3.502,2739,3.502,2797,3.829,2887,3.374,2890,2.359,2904,3.829,3158,3.706,3204,4.479,3206,5.029,3686,4.806,3687,3.706,3688,3.104,3689,5.783,3690,5.029]],["title/864",[500,3.053,1025,2.426,2739,3.241]],["content/864",[18,1.143,55,1.57,101,2.557,114,1.715,115,1.443,142,2.145,175,2.712,241,1.85,313,2.045,463,3.35,482,1.701,484,1.736,487,3.872,500,6.018,524,3.702,588,2.598,641,2.537,791,3.685,889,1.965,915,2.347,939,3.872,1025,2.332,1086,3.407,1087,2.578,1156,5.55,1250,3.773,1527,3.298,1874,2.873,1896,3.076,2020,3.248,2088,4.475,2292,3.202,2415,4.276,2739,5.436,2861,4.276,2887,3.003,3030,3.685,3153,3.606,3170,4.741,3176,6.429,3691,4.741,3692,5.146,3693,2.816,3694,4.475,3695,5.146,3696,5.146]],["title/865",[49,1.476,1069,2.821,2733,2.426]],["content/865",[18,0.759,48,2.54,65,2.221,108,1.199,185,3.349,194,1.158,256,1.758,279,1.664,309,1.539,313,2.547,454,0.674,458,1.621,482,2.459,505,2.061,521,1.428,524,3.392,567,1.924,572,2.235,586,1.684,614,2.018,652,1.896,720,2.479,773,1.578,931,1.924,969,1.984,982,2.533,1025,1.381,1029,1.822,1033,2.136,1042,2.36,1043,2.36,1069,1.606,1073,2.183,1084,2.235,1166,2.533,1177,2.58,1198,2.602,1201,2.018,1377,1.72,1475,1.984,1477,2.932,1540,1.758,1545,1.72,1616,2.36,1631,2.136,1656,1.651,1818,1.845,1847,2.439,1896,1.822,2020,1.924,2664,1.8,2667,2.093,2733,2.906,2737,3.882,2750,2.018,2887,3.741,2890,3.611,2891,2.75,2899,3.043,2904,3.327,2929,1.984,2938,2.183,2962,2.293,3005,2.36,3177,2.808,3190,2.439,3341,2.235,3450,2.808,3644,2.967,3645,2.093,3688,2.697,3693,2.749,3697,2.808,3698,4.403,3699,2.293,3700,3.048,3701,2.808,3702,2.533,3703,3.048,3704,3.048,3705,3.048,3706,3.048,3707,2.293,3708,3.048]],["title/866",[505,3.338]],["content/866",[0,2.857,154,3.415,378,3.519,395,3.868,454,1.935,481,4.881,508,6.416,510,3.132,513,3.483,531,3.731,539,3.483,574,3.82,624,3.383,720,2.101,757,3.483,827,4.697,911,4.328,945,3.768,1069,3.321,1251,4.248,1551,3.817,1653,4.173,2418,4.328,2733,2.857,2796,4.039,2879,5.481,2887,3.678,3057,4.743,3117,5.238,3175,4.621,3636,5.481,3638,5.481,3709,5.808]],["title/867",[3639,6.513]],["content/867",[241,3.603,624,5.378,1189,7.347,1835,6.634,3639,8.018]],["title/859",[1198,2.366,2890,1.864,2891,1.96,3688,2.453]],["content/859",[]],["title/860",[1198,4.214]],["content/860",[1,3.575,18,0.892,65,2.496,169,2.912,185,2.659,308,2.806,311,2.448,488,3.169,500,3.368,517,2.609,524,2.434,614,3.909,619,3.445,646,2.659,657,2.358,720,1.968,889,2.255,915,2.693,1052,4.221,1087,2.958,1198,5.464,1386,3.445,1631,4.137,1645,4.055,1776,3.199,2082,3.674,2260,3.575,2664,3.487,2733,2.676,2890,2.408,2891,2.532,3158,3.784,3292,5.441,3630,5.135,3654,4.907,3686,4.907,3687,5.357,3707,4.443]],["title/861",[2890,2.634,2891,2.77]],["content/861",[24,2.527,34,2.432,65,3.056,71,2.035,185,2.937,240,3.469,308,3.1,495,3.349,524,2.689,568,3.605,664,3.057,720,2.986,900,2.619,1048,3.721,1262,4.908,1563,3.763,2043,4.247,2733,2.956,2890,4.494,2891,3.843,3158,4.18,3644,3.852,3687,4.18,3690,5.673,3693,4.903,3710,3.763,3711,5.219]],["title/862",[3688,4.369]],["content/862",[65,2.81,115,1.966,524,3.88,720,2.337,1177,4.832,1540,4.045,2664,4.141,2733,3.178,2744,4,2797,4.643,2890,3.839,2891,3.007,2904,4.643,2914,4.566,3158,4.494,3197,5.277,3644,4.141,3688,5.051,3698,4.816,3702,5.827,3710,4.045,3712,7.012,3713,6.461,3714,6.461]],["title/875",[71,1.244,185,1.795,1875,2.414,2901,2.687,3454,3.468]],["content/875",[]],["title/876",[185,3.665]],["content/876",[18,1.143,24,1.994,141,3.003,169,2.537,185,5.136,229,2.578,241,1.85,251,3.534,279,1.151,569,3.985,581,2.288,582,2.445,586,2.844,720,2.992,757,2.844,867,3.076,957,3.076,976,2.411,1043,5.862,1113,3.468,1190,2.664,1198,2.664,2292,3.202,2733,2.332,2797,3.407,2890,4.303,2891,2.207,3030,3.685,3161,4.741,3263,4.276,3325,4.475,3693,2.816,3710,2.968,3715,4.475,3716,4.475,3717,3.773,3718,4.741,3719,4.741,3720,4.475,3721,7.569,3722,5.146,3723,5.146,3724,5.146]],["title/877",[71,1.67,1875,3.241,2901,3.607]],["content/877",[24,1.509,34,1.452,71,2.36,100,1.8,101,1.935,108,1.532,185,2.757,256,2.247,311,1.615,394,2.579,439,2.3,474,3.66,516,2.358,527,2.675,683,2.458,691,3.17,720,2.041,757,2.152,773,3.17,1026,2.931,1035,2.09,1063,2.423,1087,1.951,1136,2.496,1177,3.143,1516,3.237,1525,2.675,1527,2.496,1682,3.589,1875,2.358,1896,2.328,2077,2.789,2260,2.358,2316,2.222,2399,2.789,2629,4.126,2733,2.775,2748,3.387,2797,4.053,2814,3.116,2890,3.802,2891,2.626,2896,4.126,2899,2.358,2901,5.098,2903,3.116,2904,2.579,2941,3.237,3030,2.789,3190,6.053,3219,3.237,3281,2.729,3341,4.489,3342,3.237,3644,2.3,3688,4.602,3693,3.35,3698,2.675,3715,3.387,3716,3.387,3717,2.856,3725,3.895,3726,3.895,3727,3.016,3728,3.895,3729,3.116,3730,3.589]],["title/868",[8,0.656,313,1.816,2262,3.539,3063,3.657]],["content/868",[]],["title/869",[8,0.768,2262,4.145,3063,4.283]],["content/869",[101,2.266,114,2.305,115,1.939,175,2.403,311,2.867,313,3.319,378,3.861,415,2.215,470,2.303,482,1.508,486,2.249,488,2.447,510,2.266,524,1.88,574,1.991,584,3.265,936,3.789,973,3.531,1016,3.019,1073,3.265,1197,3.265,1198,2.361,1201,3.019,1386,4.035,1477,2.661,1621,3.966,1661,3.265,1720,3.531,1776,2.471,1777,3.073,1882,3.431,1883,3.966,2292,2.837,2539,3.531,2733,2.067,2772,3.966,2797,3.019,2890,1.86,2897,3.649,2922,3.531,2990,3.531,3002,3.789,3030,4.952,3063,3.649,3158,2.922,3175,3.343,3207,3.966,3342,3.789,3410,3.966,3687,2.922,3693,2.495,3694,3.966,3702,3.789,3715,3.966,3716,3.966,3731,3.966,3732,4.56,3733,3.431,3734,4.56,3735,4.56,3736,4.56,3737,4.202,3738,4.56,3739,4.202]],["title/870",[961,3,1059,2.481,2539,3.088,3220,2.855,3687,2.555]],["content/870",[0,1.55,8,0.792,24,2.139,34,1.275,65,1.648,111,1.89,114,1.14,115,0.959,154,1.853,184,2.071,185,1.54,311,2.288,313,3.473,331,1.835,454,0.756,484,1.154,486,1.686,492,1.467,495,2.834,510,1.699,524,2.276,546,3.115,574,1.493,584,2.449,720,1.14,729,3.868,731,4.047,760,2.648,867,2.044,889,1.306,961,5.994,1018,2.648,1020,2.573,1024,2.736,1028,2.127,1052,1.727,1059,4.318,1084,4.047,1098,1.93,1116,1.56,1189,2.507,1386,1.995,1512,2.573,1516,2.842,1661,2.449,1776,2.991,1795,2.648,1844,2.573,1863,2.449,1883,2.974,1957,2.974,2230,2.842,2292,2.127,2733,2.502,2737,2.071,2750,2.264,2772,2.974,2791,2.842,2887,1.995,2889,4.275,2890,2.831,2891,2.977,2922,4.275,3057,2.573,3220,4.97,3310,3.151,3417,6.395,3524,2.842,3632,2.974,3687,2.191,3693,3.02,3731,4.8,3740,4.8,3741,3.419,3742,3.419,3743,3.419,3744,3.419,3745,2.974,3746,3.419]],["title/871",[2733,2.927,3599,4.859]],["content/871",[0,1.855,49,1.129,74,1.218,88,3.256,101,2.034,143,1.635,154,2.218,176,1.726,279,1.424,311,1.697,395,3.906,454,1.407,484,2.635,499,3.518,502,2.869,505,3.203,507,2.24,510,2.034,513,3.518,531,4.069,535,2.034,552,2.71,568,2.262,573,3.759,574,1.787,581,1.82,586,2.262,588,2.067,594,2.623,757,2.262,907,2.665,915,1.867,1015,2.286,1038,2.138,1069,2.157,1198,2.12,1251,2.759,1475,2.665,1547,3.08,1551,2.479,1760,2.759,2015,2.932,2162,2.932,2667,2.811,2721,3.08,2733,1.855,2739,2.479,2825,2.869,2828,3.17,2829,3.17,2830,3.17,2858,4.461,2879,3.56,2885,5.29,2887,2.389,2890,1.67,2904,2.71,3057,3.08,3117,3.402,3636,3.56,3640,3.772,3641,3.772,3646,3.772,3647,3.772,3648,3.402,3688,2.197,3709,3.772,3747,4.094]],["title/872",[479,4.138,615,4.138]],["content/872",[479,5.895,505,3.772,615,5.895,715,6.446,1061,5.723,1724,6.317,2660,5.136,2661,5.033,2733,4.169,3649,8.476]],["title/873",[531,2.754,2649,3.963]],["content/873",[0,3.739,99,3.84,241,2.967,279,1.846,346,6.209,531,3.518,539,4.56,605,5.063,720,2.75,945,4.933,1143,4.933,1403,4.814,1499,5.56,2026,6.39,2649,5.063,2793,5.208,2952,7.176]],["title/874",[505,2.648,1069,3.403]],["content/874",[8,1.201,69,2.791,101,4.162,505,3.434,538,3.182,586,4.628,614,5.544,1198,4.336,1377,4.725,1833,6.301,2649,5.138,2739,5.071,2890,3.416,2891,3.591,3650,7.716,3688,4.495]],["title/878",[3688,4.369]],["content/878",[64,3.524,65,3.027,106,4.028,309,1.863,394,2.443,397,1.683,460,1.215,477,1.309,486,1.819,526,1.641,592,1.894,621,2.38,650,2.705,661,3.21,684,1.706,719,2.402,761,2.105,931,2.329,1015,2.06,1022,2.534,1035,4.874,1038,1.927,1098,3.31,1106,1.363,1136,4.679,1141,2.857,1155,2.329,1177,3.012,1398,2.776,1475,2.402,1750,2.952,1767,2.329,2166,2.039,2173,2.952,2205,2.952,2565,2.776,2649,2.264,2678,2.705,2803,3.4,2890,2.393,2891,1.582,2892,8.409,2901,2.486,3153,2.585,3281,7.372,3288,2.705,3688,3.919,3698,4.028,3748,2.952,3749,3.689,3750,3.689,3751,3.4,3752,3.689,3753,5.866,3754,3.066,3755,3.689,3756,3.689,3757,3.689,3758,3.689,3759,3.689,3760,3.689,3761,3.209]],["title/879",[169,3.185,3720,5.616]],["content/879",[]],["title/880",[8,0.768,1177,2.748,3644,3.161]],["content/880",[589,5.284,1177,5.054,1724,6.761,3644,5.813,3762,9.844,3763,9.844]],["title/881",[492,2.296,1038,2.796,1098,3.02]],["content/881",[108,2.596,256,3.807,309,3.333,311,2.736,312,4.297,477,2.342,619,3.851,641,3.254,720,2.2,931,4.166,1035,3.542,1038,3.447,1098,5.097,1106,2.438,1155,4.166,1177,4.637,1563,3.807,1720,5.111,1752,4.625,1896,3.945,2166,3.647,2890,2.692,2901,4.448,2903,5.281,3153,6.329,3288,4.839,3341,4.839,3688,3.542,3717,4.839,3748,5.281,3764,6.6]],["title/882",[1155,4.076,2166,3.569]],["content/882",[24,2.07,65,1.595,397,2.437,460,3.021,526,3.459,621,2.167,948,3.235,976,2.503,1106,1.974,1155,7.464,1568,3.917,1647,2.557,1764,7.64,2166,6.535,2205,7.341,2637,4.922,2638,4.02,2678,3.917,2906,4.922,3028,4.274,3281,6.429,3591,4.922,3644,3.154,3710,3.081,3765,5.342,3766,5.342,3767,5.342]],["title/883",[1098,3.02,1670,3.2,2821,3.925]],["content/883",[8,0.619,64,1.572,65,2.41,101,3.294,108,2.607,184,4.014,194,1.639,477,1.531,492,1.85,493,1.861,517,2.93,526,1.918,581,1.918,587,3.462,621,1.75,652,2.684,659,1.907,666,1.75,761,2.461,1098,6.26,1155,5.096,1177,3.403,1233,2.461,1485,4.316,1527,2.765,1568,3.163,1615,3.089,1656,2.338,1670,4.826,1711,2.612,2166,5.704,2638,3.246,2664,2.548,2678,4.861,2865,5.134,3226,3.975,3281,5.657,3288,3.163,3322,3.585,3635,3.341,3645,2.963,3652,3.246,3710,4.657,3768,3.752,3769,4.314,3770,4.314,3771,3.752]],["title/884",[1177,3.315,3635,5.002]],["content/884",[65,2.985,477,2.727,583,5.635,666,3.118,889,2.935,1098,4.337,1155,6.311,1177,5.133,1670,4.595,1691,4.782,2166,5.526,3102,7.081,3201,6.387,3635,5.952,3710,5.768,3772,7.081,3773,6.387]],["title/885",[3774,7.5]],["content/885",[1,5.148,54,5.628,141,4.961,421,5.448,564,6.584,912,4.904,1095,6.397,2649,5.216,2660,4.747,2890,3.467,2891,3.646,3688,4.563,3698,5.838,3761,7.393,3774,7.833]],["title/886",[141,3.123,2890,2.183,2891,2.296]],["content/886",[65,2.423,141,3.306,169,4.003,241,2.919,440,3.164,486,2.794,539,3.131,568,3.131,581,2.519,582,2.692,605,3.477,613,4.388,619,3.306,624,3.041,664,3.804,720,1.888,889,2.163,931,5.123,976,2.655,1069,2.986,1115,3.232,1572,4.927,1835,3.751,2292,3.525,2661,5.19,2890,4.471,2891,5.038,3645,5.574,3688,3.041,3775,5.666]],["title/887",[141,3.123,2891,2.296,3688,2.873]],["content/887",[34,0.647,52,0.762,54,2.05,55,0.53,64,0.633,65,2.664,100,0.802,104,1.746,141,1.013,150,1.23,154,0.941,169,2.881,175,0.915,184,1.875,194,1.177,240,1.646,241,2.529,253,1.899,255,1.149,256,1.001,257,1.17,397,0.792,440,2.842,458,0.923,463,1.13,482,1.024,485,0.825,505,1.27,524,3.421,526,0.772,531,0.74,538,0.66,568,0.959,581,1.377,605,1.9,616,1.51,624,2.249,639,0.653,653,2.016,664,1.451,720,0.579,721,1.216,859,1.149,867,2.505,889,1.6,906,1.51,915,0.792,931,1.954,942,1.192,969,2.729,1035,1.662,1098,2.872,1106,1.144,1115,3.333,1132,3.167,1155,1.954,1159,1.443,1177,4.07,1265,1.984,1398,4.397,1419,2.477,1540,1.001,1541,1.344,1545,0.98,1572,2.693,1573,1.17,1626,1.096,1719,1.6,1751,1.306,1818,1.875,1835,1.149,1896,1.851,2031,1.192,2095,1.443,2111,1.51,2149,1.51,2166,1.711,2292,1.926,2496,2.398,2629,1.17,2660,0.969,2661,2.293,2663,1.243,2667,1.192,2668,2.17,2733,0.787,2742,2.217,2783,1.51,2793,1.954,2814,1.389,2821,1.273,2839,2.573,2842,1.389,2843,1.243,2899,1.875,2901,1.17,2951,4.184,3175,2.27,3224,1.51,3281,1.216,3377,1.306,3518,1.6,3626,1.443,3644,3.451,3663,2.693,3672,1.389,3675,1.344,3688,5.637,3699,1.306,3710,4.056,3717,1.273,3748,2.477,3768,1.51,3776,1.736,3777,1.736,3778,1.6,3779,1.6,3780,1.6,3781,2.853,3782,3.645,3783,2.693,3784,2.573,3785,2.853,3786,2.853,3787,1.736,3788,2.693,3789,1.736,3790,1.6]],["title/888",[62,2.681,75,2.989,141,3.123]],["content/888",[62,5.446,64,3.195,65,3.246,141,5.116,495,4.501,720,2.922,1006,5.454,2811,7.624,2891,3.76,3377,6.597,3710,5.057]],["title/889",[65,1.364,75,2.552,141,2.667,3688,2.453]],["content/889",[0,3.739,141,4.814,169,4.069,652,5.133,720,2.75,867,4.933,1177,4.236,2144,6.05,3175,6.05,3263,6.857,3377,6.209,3688,4.428,3698,5.666,3720,7.176,3791,8.374,3792,7.603]],["title/890",[1101,3.569,3644,3.814]],["content/890",[0,1.366,62,1.51,65,2.63,99,1.403,100,3.781,108,2.503,184,3.016,194,2.418,241,1.084,253,2.257,400,1.522,440,1.683,484,1.017,517,1.332,524,1.243,583,2.211,587,3.508,588,1.522,666,2.581,720,1.005,773,3.295,859,1.996,864,4.143,885,3.747,889,2.43,1069,2.624,1087,1.51,1098,4.97,1101,1.666,1107,2.269,1136,1.932,1155,5.163,1177,4.785,1254,1.739,1403,1.759,1485,1.963,1670,1.802,1997,3.652,2166,4.52,2425,2.778,2661,3.481,2678,2.211,2681,4.788,2821,3.652,2845,2.505,2865,3.857,2901,2.032,2903,2.412,3288,3.652,3341,2.211,3635,2.335,3644,5.503,3645,4.37,3710,5.081,3717,2.211,3772,4.589,3773,4.139,3778,4.589,3793,3.015,3794,4.589,3795,3.015,3796,2.622]],["title/891",[154,2.476,194,1.737,233,1.916,3688,2.453]],["content/891",[24,0.855,37,1.133,62,1.106,65,2.759,71,0.689,169,1.089,194,1.454,233,3.363,241,0.794,255,1.462,309,1.115,331,1.185,332,0.801,394,1.462,397,1.007,400,1.931,463,1.437,477,1.357,486,1.089,492,0.947,521,1.034,524,3.81,557,1.049,568,1.22,569,1.71,582,1.049,587,0.947,592,1.133,657,0.882,666,0.896,720,1.275,859,1.462,864,1.437,867,1.32,889,1.932,898,1.208,915,1.007,1028,1.373,1069,1.163,1073,1.581,1078,1.92,1087,1.106,1098,1.246,1106,1.413,1155,5.359,1165,1.143,1167,3.326,1177,4.902,1201,1.462,1233,1.259,1262,1.661,1403,2.232,1485,1.437,1545,1.246,1670,2.287,1674,1.581,1684,1.71,1691,3.149,1697,1.835,1771,1.92,1804,1.547,1836,1.766,1882,1.661,2159,1.835,2166,4.692,2667,1.516,2678,1.619,2733,1.001,2744,1.259,2821,2.805,2865,1.71,2890,0.9,2896,2.578,2899,2.316,2901,3.411,2904,1.462,2907,1.71,2944,1.71,3153,2.68,3166,1.835,3179,3.326,3197,1.661,3201,1.835,3202,1.766,3219,1.835,3288,3.711,3309,1.92,3322,1.835,3377,1.661,3635,1.71,3644,2.259,3645,2.627,3652,1.661,3688,3.663,3698,3.475,3699,1.661,3710,4.897,3711,1.766,3717,1.619,3729,1.766,3754,5.016,3773,4.206,3788,3.326,3791,1.766,3794,3.524,3796,1.92,3797,2.034,3798,2.034,3799,2.208,3800,2.208,3801,3.524]],["title/896",[2890,2.634,2891,2.77]],["content/896",[]],["title/897",[664,2.142,900,1.835,2890,1.864,2891,1.96]],["content/897",[900,4.541,1054,5.457,2649,5.739,2661,5.117,2890,4.613,2891,4.851]],["title/898",[241,1.142,460,1.046,827,1.705,900,1.275,2793,2.005,2890,1.296,2891,1.362]],["content/898",[18,0.557,36,2.153,48,1.26,62,1.848,64,2.661,65,2.887,100,3.375,106,2.534,131,1.315,185,1.661,241,1.327,256,2.128,279,1.312,310,1.878,311,2.432,331,1.98,450,1.98,482,1.22,484,1.245,495,1.894,581,1.641,588,1.863,592,3.749,619,2.153,641,1.819,650,2.705,692,5.102,712,2.828,773,1.91,790,2.402,867,2.206,900,2.355,912,2.128,913,2.039,931,5.252,976,1.729,1038,3.064,1106,1.363,1139,3.65,1185,2.296,1254,2.128,1527,2.364,1540,2.128,1566,2.705,1575,1.999,1656,1.999,1776,1.999,1795,2.857,1997,2.705,2664,2.179,2733,1.672,2744,3.346,2796,3.759,2797,2.443,2889,2.857,2890,3.704,2891,4.147,2914,2.402,2928,2.705,2929,2.402,3142,3.4,3400,3.4,3666,2.857,3691,3.4,3791,2.952,3802,3.689,3803,2.486,3804,3.689,3805,3.209]],["title/899",[131,1.028,310,1.468,621,1.17,827,2.576,1139,1.794,1226,1.594,2891,1.237]],["content/899",[1,2.177,8,0.516,18,1.516,62,2.878,65,1.716,104,1.933,130,2.38,131,2.048,145,1.629,169,1.773,175,1.894,279,0.804,310,3.654,311,2.382,313,1.428,458,1.912,470,1.815,477,2.039,482,1.189,484,1.939,495,3.685,517,1.589,559,1.846,568,1.987,586,3.175,588,1.815,592,1.846,615,3.682,646,2.587,657,1.436,691,1.861,712,1.733,715,2.519,720,1.198,767,2.469,816,2.074,889,1.373,900,2.307,1139,5.101,1152,1.987,1257,2.574,1540,2.074,1575,1.948,1601,2.636,1643,2.237,1732,2.237,1863,2.574,1875,2.177,2031,2.469,2082,2.237,2102,2.177,2260,2.177,2496,2.784,2660,3.208,2661,3.144,2724,2.784,2790,2.784,2890,3.344,2891,4.304,2928,4.213,3140,2.877,3221,2.784,3592,2.705,3654,2.987,3806,3.312,3807,4.775,3808,3.312]],["title/900",[241,1.925,2891,2.296,3672,4.283]],["content/900",[154,3.8,169,4.641,241,2.522,256,4.045,485,3.332,505,2.876,915,3.199,969,4.566,1106,2.591,1115,4,1132,4.363,1398,7.082,1626,4.426,1896,4.192,2660,3.915,2733,3.178,2783,6.099,2842,5.611,2843,5.022,2890,2.86,2891,4.036,2951,5.022,3175,5.142,3699,5.277,3779,6.461,3780,6.461]],["title/901",[169,1.966,1115,2.274,2742,2.855,2793,2.517,2891,1.71]],["content/901",[24,1.249,34,1.202,65,1.571,71,1.006,169,1.589,176,1.359,185,1.451,194,1.225,229,1.614,241,1.892,255,2.134,257,2.172,279,0.721,313,1.281,398,2.824,416,1.781,440,2.937,492,1.382,515,2.005,521,1.51,524,2.748,541,2.496,559,1.655,562,1.73,586,1.781,665,2.098,720,2.221,858,2.034,860,2.803,867,3.145,931,3.321,1026,2.425,1106,1.944,1115,3.001,1136,4.271,1152,1.781,1165,1.669,1265,3.371,1398,2.425,1545,1.819,1548,2.134,1587,2.425,1591,2.363,1597,2.258,1625,2.803,1886,4.575,1896,1.927,1921,4.577,2095,2.678,2166,1.781,2399,2.308,2629,2.172,2668,3.686,2742,2.308,2744,1.838,2853,5.015,2890,2.146,2891,3.635,2896,2.172,2899,1.952,2901,3.545,2903,2.579,2907,4.074,2951,3.767,3190,4.209,3263,2.678,3281,2.258,3341,2.363,3675,2.496,3693,2.878,3717,2.363,3730,2.97,3781,4.847,3782,2.803,3784,4.372,3790,2.97,3791,6.155,3792,2.97,3803,3.545,3809,3.223,3810,3.223,3811,3.223,3812,3.223,3813,3.223,3814,2.97,3815,3.223]],["title/902",[169,1.966,859,2.64,1115,2.274,1132,2.481,2891,1.71]],["content/902",[18,0.678,34,1.673,65,2.04,69,1.495,104,2.228,141,2.618,169,2.213,185,3.725,240,2.386,253,2.033,393,2.588,440,3.814,482,1.483,524,2.816,587,2.93,605,2.753,624,2.408,653,2.921,720,2.277,889,1.713,969,2.921,1113,3.024,1115,2.559,1132,2.792,1177,2.303,1198,3.537,1398,3.376,1419,3.59,1527,2.875,1575,3.701,1673,3.902,2292,2.792,2399,3.213,2496,3.475,2663,3.213,2668,3.144,2744,2.559,2793,2.832,2839,3.729,2890,2.786,2891,3.966,2896,3.024,2951,4.892,3101,3.729,3626,3.729,3644,2.65,3663,3.902,3698,3.081,3713,4.134,3717,5.009,3782,3.902,3783,3.902,3784,3.729,3785,4.134,3786,4.134,3803,3.024,3816,4.487]],["title/903",[154,2.476,194,1.737,233,1.916,2891,1.96]],["content/903",[24,1.249,34,1.202,65,3.178,71,1.641,101,1.602,175,1.698,185,3.001,194,1.999,233,3.553,240,2.797,308,1.532,309,1.627,331,1.73,332,1.169,400,1.627,486,1.589,492,1.382,500,3.001,517,1.424,524,2.169,568,1.781,586,1.781,587,2.256,657,1.287,664,1.51,720,1.074,859,2.134,864,2.098,867,1.927,889,2.009,915,1.47,1073,2.308,1078,2.803,1106,1.191,1167,2.803,1198,1.669,1201,2.134,1262,2.425,1377,1.819,1403,1.881,1545,1.819,1575,2.851,1697,2.678,1836,2.579,2082,2.005,2166,1.781,2224,2.258,2301,2.258,2629,2.172,2733,1.461,2739,1.952,2744,1.838,2793,2.034,2821,2.363,2890,3.913,2891,4.439,2896,2.172,2899,1.952,2907,2.496,2928,3.857,2944,2.496,3158,2.065,3179,2.803,3235,2.97,3341,2.363,3377,2.425,3644,3.106,3693,2.878,3699,2.425,3710,3.845,3711,2.579,3773,2.678,3791,2.579,3797,2.97,3798,2.97,3801,2.97,3803,4.492,3817,3.223,3818,3.223]],["title/904",[185,3.665]],["content/904",[71,2.652,111,4.698,185,5.248,659,3.757,720,2.833,2750,5.628,2890,3.467,2901,5.729,3291,7.833,3710,6.152,3814,7.833,3819,7.833]],["title/905",[8,0.572,64,1.453,397,1.819,931,2.517,2811,3.468]],["content/905",[64,1.537,111,2.33,185,4.031,241,1.516,255,2.792,256,2.432,279,0.943,397,2.971,440,3.637,477,2.312,505,1.729,524,1.739,526,2.896,529,1.976,604,2.702,605,2.588,613,3.266,659,1.863,720,2.983,889,1.61,915,1.924,994,2.702,1038,3.402,1069,2.222,1098,3.675,1177,3.344,1190,2.183,1254,3.757,1377,2.379,1502,2.662,1510,2.746,1545,2.379,1563,2.432,1691,2.624,1896,2.521,2292,2.624,2821,3.092,2891,4.572,2896,2.842,2901,4.39,3087,3.266,3153,2.955,3281,4.564,3688,4.804,3699,3.173,3710,3.757,3751,3.885,3761,7.785,3768,3.667,3819,3.885,3820,4.217,3821,4.217,3822,4.217]],["title/906",[664,3.026,2890,2.634]],["content/906",[454,1.851,586,4.628,646,3.771,1477,4.886,1545,4.725,2059,6.301,2744,4.777,2750,5.544,2814,6.701,2890,4.309,2891,4.531,3005,6.486,3652,6.301,3823,8.374]],["title/907",[241,1.272,460,1.165,586,1.954,827,1.898,2793,2.232,2890,1.442]],["content/907",[18,1.371,34,0.95,36,1.487,48,0.871,62,2.167,64,2.055,65,3.085,71,0.795,97,1.454,100,4.194,106,1.75,108,1.003,131,0.909,169,1.257,176,1.074,185,1.948,194,1.644,229,1.277,233,1.068,240,1.355,241,0.917,279,0.57,308,1.211,309,1.287,311,1.794,440,1.423,474,1.524,482,0.843,484,0.86,486,1.257,492,1.093,495,1.309,516,1.543,517,1.126,523,1.609,556,1.633,557,1.211,559,1.309,581,1.133,586,3.116,587,1.093,588,1.287,592,1.309,619,1.487,664,2.642,712,1.229,714,1.229,720,0.85,773,2.24,790,1.66,867,1.524,889,0.973,931,1.609,1028,1.586,1037,4.366,1038,3.47,1052,1.287,1106,0.942,1165,1.32,1226,1.409,1254,1.47,1262,1.918,1540,2.496,1566,1.869,1631,1.786,1656,2.345,1724,1.75,1730,1.633,1732,1.586,1776,3.6,1997,3.172,2049,1.543,2141,1.974,2260,1.543,2301,1.786,2660,2.416,2661,1.395,2670,1.718,2681,3.256,2744,2.468,2796,3.613,2861,2.118,2890,3.517,2891,2.849,2914,1.66,2928,1.869,2929,1.66,2951,1.825,3039,2.217,3320,2.217,3352,2.118,3666,1.974,3693,1.395,3710,2.496,3711,2.04,3733,5.599,3771,2.217,3803,2.916,3805,2.217,3824,2.349,3825,2.349,3826,2.217]],["title/908",[131,1.028,310,1.468,621,1.17,827,2.576,1226,1.594,1540,1.663,2890,1.176]],["content/908",[1,2.326,18,1.555,62,3.034,65,1.808,104,2.02,130,2.543,131,2.159,145,1.741,169,1.894,175,2.024,279,0.859,310,3.817,311,2.511,313,1.526,458,2.043,460,1.265,470,1.94,477,1.363,482,1.27,484,2.043,495,3.109,559,1.972,568,2.123,586,2.123,588,1.94,592,1.972,615,3.881,646,2.727,657,1.534,664,1.8,691,1.989,712,1.852,715,2.692,720,1.28,767,2.638,816,2.216,889,1.467,1139,2.39,1152,2.123,1257,2.751,1540,4.325,1575,2.081,1601,2.816,1643,2.39,1732,2.39,1863,2.751,1875,2.326,2031,2.638,2102,2.326,2260,2.326,2496,2.975,2660,3.382,2661,3.314,2724,2.975,2790,2.975,2890,4.013,2891,2.597,2928,4.441,3140,3.074,3221,2.975,3592,2.89,3654,3.192,3806,3.539,3807,5.033,3808,3.539]],["title/909",[1377,3.644,2890,2.634]],["content/909",[65,2.659,108,3.503,592,4.572,646,4.011,889,3.401,1262,6.702,2821,6.53,2890,3.633,2891,3.82,3644,5.259,3645,6.116,3827,8.906]],["title/910",[241,1.272,460,1.165,827,1.898,1377,1.995,2793,2.232,2890,1.442]],["content/910",[18,1.164,34,1.01,37,1.391,65,3.213,71,1.421,100,4.481,131,0.966,169,2.246,176,1.142,194,1.731,229,1.357,233,1.91,240,1.441,241,1.638,253,1.228,308,1.287,311,1.123,377,1.529,440,1.513,448,2.168,450,1.454,454,0.599,470,1.368,484,0.914,492,1.162,521,2.135,523,1.71,524,2.43,557,1.287,559,1.391,587,1.954,588,1.368,592,1.391,646,2.051,712,1.306,720,1.965,721,1.898,744,1.6,773,2.359,859,1.794,867,3.524,889,1.034,911,1.86,915,1.236,1038,3.079,1106,1.001,1226,1.497,1282,2.356,1377,4.711,1545,1.529,1575,2.468,1597,1.898,1724,1.86,1875,1.64,1989,2.356,2020,1.71,2049,2.758,2278,2.098,2301,1.898,2399,1.94,2660,1.513,2661,1.482,2678,1.986,2796,1.736,2814,2.168,2866,2.496,2890,4.086,2891,2.528,2894,2.496,2928,3.34,2944,3.528,3172,2.356,3352,2.251,3500,2.496,3626,2.251,3645,4.745,3666,2.098,3710,5.375,3729,2.168,3803,1.826,3826,2.356,3828,4.197,3829,2.709,3830,2.709]],["title/911",[131,1.028,310,1.468,621,1.17,827,2.576,1226,1.594,1377,1.627,2890,1.176]],["content/911",[1,2.807,18,1.665,62,3.507,104,2.273,130,3.069,131,1.652,145,2.101,169,2.286,175,2.443,310,4.296,311,1.922,313,1.842,460,1.526,470,2.341,482,1.533,484,1.564,559,2.38,568,2.562,588,2.341,615,4.487,646,3.153,657,1.851,691,2.4,712,2.235,715,3.248,720,1.545,767,3.183,816,2.674,889,1.77,1152,2.562,1257,3.319,1377,5.305,1601,3.399,1643,2.884,1732,2.884,1863,3.319,1875,2.807,2102,2.807,2260,2.807,2660,3.909,2661,3.831,2724,3.59,2790,3.59,2890,4.117,3140,3.709,3221,3.59,3592,3.488,3807,3.852]],["title/892",[1198,4.214]],["content/892",[]],["title/893",[65,1.928,1198,3.344]],["content/893",[18,1.211,97,4.572,169,3.952,241,2.882,279,1.793,310,4.08,446,4.224,484,2.704,592,4.115,619,4.677,827,4.302,1052,4.047,1157,4.429,1198,5.32,1587,6.031,2049,4.853,2733,3.632,2910,6.413]],["title/894",[241,1.434,460,1.313,827,2.14,1198,2.064,2793,2.517]],["content/894",[0,0.737,18,1.388,24,0.63,34,0.606,36,1.703,48,0.997,62,0.814,64,1.448,65,2.743,77,1.116,84,1.041,97,0.927,100,3.127,106,1.116,131,0.579,169,0.801,175,0.856,176,0.685,181,1.139,185,2.516,194,1.109,229,0.814,233,0.681,241,0.584,279,0.653,308,1.387,309,0.821,311,1.21,332,0.59,378,0.907,416,1.613,440,1.63,450,0.872,454,0.359,460,0.535,474,0.972,482,0.965,484,0.548,486,0.801,492,1.252,495,0.834,505,0.666,517,0.718,525,1.498,556,1.041,557,0.772,559,0.834,581,1.298,582,0.772,587,2.396,588,0.821,592,0.834,613,1.259,619,0.948,688,0.927,691,0.842,712,0.784,714,0.784,720,1.324,757,0.898,773,2.057,790,1.058,858,1.026,867,1.745,889,0.621,931,1.842,1006,1.011,1026,1.223,1037,3.755,1038,3.248,1052,0.821,1085,1.223,1113,1.095,1133,0.842,1165,0.842,1177,0.834,1198,4.161,1226,0.898,1254,1.684,1265,1.041,1540,0.937,1566,2.14,1575,0.881,1631,1.139,1635,0.907,1647,1.397,1656,1.582,1664,1.095,1673,1.413,1693,1.351,1724,1.116,1728,1.498,1729,1.3,1730,1.041,1732,1.011,1776,4.977,1875,1.767,1997,2.14,2020,1.026,2031,1.116,2049,0.984,2166,0.898,2173,1.3,2260,3.766,2301,1.139,2660,2.218,2661,0.889,2664,1.724,2667,1.116,2670,1.095,2716,1.259,2744,0.927,2764,2.261,2796,2.546,2820,1.351,2861,1.351,2890,2.759,2891,2.901,2896,1.967,2907,3.077,2914,1.058,2928,3.555,2929,2.587,2935,1.413,2941,1.351,2951,1.164,3039,1.413,3153,1.139,3158,1.87,3313,1.259,3320,1.413,3352,2.426,3432,1.498,3666,1.259,3693,2.174,3729,1.3,3733,4.679,3771,1.413,3783,1.413,3803,3.267,3805,1.413,3824,1.498,3825,1.498,3826,1.413,3831,2.919,3832,3.973,3833,1.625,3834,1.625,3835,1.625,3836,1.625,3837,1.498,3838,1.625,3839,1.625]],["title/895",[131,1.132,310,1.617,621,1.289,827,2.791,1198,1.645,1226,1.756]],["content/895",[1,2.717,18,1.646,62,3.422,100,2.074,104,2.228,130,2.971,131,1.599,145,2.033,169,2.213,175,2.364,185,2.02,308,2.132,310,4.211,311,1.86,313,1.783,460,1.478,470,2.266,482,1.483,484,1.514,559,2.303,568,2.48,588,2.266,615,4.378,646,3.076,657,1.792,691,2.323,712,2.163,715,3.144,720,1.495,767,3.081,816,2.588,889,1.713,1152,2.48,1198,5.643,1257,3.213,1601,3.29,1631,3.144,1643,2.792,1732,2.792,1776,2.431,1863,3.213,1875,2.717,2102,2.717,2260,4.136,2660,3.814,2661,3.738,2724,3.475,2790,3.475,3140,3.59,3221,3.475,3592,3.376,3807,3.729]],["title/924",[579,3.814,2899,3.91]],["content/924",[48,2.281,55,2.038,279,1.494,482,2.208,529,3.129,538,2.538,574,2.916,579,3.944,720,2.226,1025,3.027,1026,5.025,1106,2.467,1257,4.782,1330,5.55,1475,4.348,1661,4.782,1721,4.586,1751,5.025,1845,4.782,2733,3.027,2737,5.514,2744,3.809,2890,2.724,2899,4.044,3053,6.154,3195,6.154,3204,5.172,3486,5.808,3707,5.025,3729,5.344,3745,5.808,3840,6.154]],["title/925",[720,1.784,2890,2.183,3710,3.087]],["content/925",[65,2.683,71,2.044,101,2.111,185,1.913,308,2.019,311,1.761,378,2.372,454,0.939,463,2.766,477,1.508,486,2.095,488,2.28,500,2.424,579,3.869,604,4.199,614,2.813,720,2.184,917,2.54,1048,2.424,1073,3.043,1087,2.128,1132,2.643,1386,2.479,1528,2.918,1547,3.197,1575,2.302,1675,2.863,1842,3.531,1896,2.54,2020,2.682,2224,2.977,2629,4.415,2733,1.926,2737,3.967,2744,2.424,2797,4.338,2887,2.479,2890,4.503,2891,2.81,2899,2.573,2995,3.197,3060,3.915,3158,2.723,3197,3.197,3313,3.291,3366,3.695,3693,2.325,3698,2.918,3699,3.197,3710,5.184,3739,3.915,3841,4.249,3842,4.249,3843,4.249,3844,4.249,3845,3.915,3846,3.915,3847,4.249,3848,4.249,3849,4.249]],["title/926",[3707,6.125]],["content/926",[48,1.533,65,2.04,76,2.921,114,1.495,115,1.915,154,2.431,219,1.959,279,1.004,309,2.266,378,2.505,454,0.992,482,1.483,488,2.408,492,1.924,500,4.718,521,2.103,524,2.816,531,1.913,538,1.705,546,2.532,574,1.959,604,2.875,614,2.971,720,1.495,945,2.682,952,2.505,1025,2.033,1026,3.376,1028,2.792,1029,2.682,1094,3.144,1477,2.618,1511,3.729,1526,3.59,1563,2.588,1575,3.701,1675,3.024,1776,3.701,2095,3.729,2096,2.971,2733,2.033,2737,4.136,2739,4.136,2744,2.559,2793,2.832,2890,1.83,2899,2.717,3158,4.378,3190,3.59,3313,3.475,3410,3.902,3693,2.455,3697,4.134,3707,5.14,3710,2.588,3727,3.475,3840,4.134,3846,4.134,3850,4.487,3851,4.487,3852,4.487,3853,4.487,3854,4.487]],["title/927",[574,3.553]],["content/927",[0,1.897,48,1.43,114,2.158,115,1.816,219,2.827,279,0.936,378,3.616,470,2.113,477,2.298,484,2.185,496,3.349,505,1.716,521,1.961,524,2.67,531,3.378,538,2.461,567,5,572,3.069,574,3.892,579,3.824,604,2.682,715,2.933,891,2.268,900,2.6,1025,1.897,1043,3.241,1048,2.387,1059,2.604,1093,2.821,1675,2.821,1896,2.502,2096,2.771,2224,4.538,2733,3.59,2737,4.796,2744,2.387,2750,2.771,2818,3.856,2887,2.442,2899,2.534,2995,5.96,3172,3.64,3230,3.856,3486,5.632,3514,3.856,3690,3.64,3693,2.29,3714,3.856,3727,6.135,3737,3.856,3745,3.64,3855,4.185,3856,4.185,3857,4.185,3858,4.185,3859,4.185]],["title/912",[918,7.079]],["content/912",[]],["title/913",[2733,3.689]],["content/913",[48,2.86,65,2.5,279,1.873,482,2.769,500,4.777,586,4.628,1025,3.795,1029,5.006,1198,4.336,1386,4.886,1475,5.452,2887,4.886,2890,3.416,2904,5.544,3687,5.366,3688,4.495]],["title/914",[1645,3.138,3158,2.929,3686,3.798,3687,2.929]],["content/914",[35,3.612,55,2.252,65,2.204,101,3.668,111,4.08,454,1.632,495,3.79,500,4.211,524,3.043,582,3.508,646,3.324,720,2.46,939,5.555,1025,3.345,1094,5.173,1502,4.659,1645,5.069,1776,4,2539,5.717,2890,3.011,2891,3.166,3220,5.286,3687,4.73,3693,4.039,3860,7.382]],["title/915",[1540,3.725,2890,2.634]],["content/915",[34,3.219,65,3.215,71,2.693,240,4.59,308,4.102,524,3.559,646,3.887,864,5.62,2890,3.521,2891,4.618,3644,5.097,3710,4.979]],["title/916",[720,1.784,2890,2.183,3710,3.087]],["content/916",[18,1.246,24,3.197,65,2.463,185,3.715,495,4.236,524,3.402,720,2.75,1177,4.236,2020,5.208,2043,5.372,2890,3.365,2891,3.539,2896,5.56,3325,7.176,3644,4.872,3693,4.515,3710,4.759]],["title/917",[1377,3.644,2890,2.634]],["content/917",[65,3.184,100,3.93,240,4.521,308,4.04,492,3.646,524,3.505,646,3.828,2890,3.467,2891,3.646,3645,5.838,3710,4.904,3803,5.729,3828,7.833,3861,8.501]],["title/918",[2891,3.491]],["content/918",[24,2.978,65,3.318,114,2.561,115,2.155,458,4.087,495,5.133,524,3.169,582,3.652,720,3.333,790,5.004,889,2.935,1527,4.925,2043,5.004,2890,4.078,3644,4.538,3693,4.205,3803,5.179]],["title/919",[1776,3.499,2260,3.91]],["content/919",[54,5.463,65,2.463,416,4.56,1052,4.166,1776,6.228,2260,4.996,2667,5.666,2764,6.39,2891,3.539,3693,5.726,3796,7.176,3803,5.56,3862,8.251,3863,8.251]],["title/920",[3733,6.125]],["content/920",[181,5.537,229,3.958,309,3.99,458,4.202,524,3.258,956,3.958,1037,6.12,1052,3.99,1138,4.724,1249,5.794,1732,4.916,1776,5.516,2890,3.223,2938,5.659,2962,5.946,2993,7.281,3693,4.324,3733,5.946,3803,5.325]],["title/921",[1198,4.214]],["content/921",[65,2.463,185,3.715,194,3.135,233,3.459,517,3.646,579,4.872,1052,4.166,1198,4.272,1575,4.471,1868,5.782,2082,5.133,2733,3.739,2890,3.365,2891,3.539,2962,6.209,3693,4.515,3733,6.209]],["title/922",[24,1.771,867,2.732,2166,2.526,2907,3.539]],["content/922",[24,3.151,65,2.428,100,3.759,101,4.041,111,4.494,416,4.494,587,3.487,624,4.364,867,6.199,1265,5.211,2166,5.73,2733,3.685,2890,3.316,2891,3.487,3309,7.072,3754,6.757]],["title/923",[2904,4.276,3688,3.466]],["content/923",[20,4.05,35,3.23,49,1.82,71,2.059,101,3.28,175,3.478,308,3.136,483,4.448,524,2.721,538,2.508,579,3.897,619,3.851,720,2.2,918,5.74,1073,4.726,1177,3.388,1551,3.996,1575,3.576,1875,3.996,2020,4.166,2629,4.448,2733,4.094,2745,5.484,2797,4.369,2890,2.692,2896,4.448,2899,3.996,3175,4.839,3197,4.966,3702,5.484,3754,5.484,3864,6.6,3865,6.6]],["title/928",[111,3.569,3377,4.859]],["content/928",[]],["title/929",[481,6.304]],["content/929",[18,0.865,48,1.955,74,1.703,101,2.844,175,3.016,279,1.28,313,2.274,482,1.892,500,3.265,515,3.561,579,3.38,657,2.286,1025,4.323,1029,3.422,1033,4.011,1087,2.867,1198,2.964,1386,3.34,1475,3.727,1645,3.931,1676,4.433,1896,3.422,2020,3.613,2629,3.857,2733,3.705,2737,4.951,2739,3.466,2750,3.79,2797,3.79,2816,4.757,2887,3.34,2890,2.335,2904,3.79,2929,3.727,2995,4.307,3158,3.668,3204,4.433,3206,4.978,3686,4.757,3687,3.668,3688,3.072,3701,5.274,3866,5.724]],["title/930",[1386,3.768,3687,4.138]],["content/930",[35,3.348,65,2.043,101,3.4,150,2.718,175,3.605,229,3.427,311,2.836,454,1.513,491,5.016,495,3.512,568,3.781,744,4.04,790,4.454,939,5.148,1014,4.899,1106,2.528,1386,3.992,1656,3.707,2020,4.318,2733,4.195,2890,4.279,2891,3.97,3158,4.384,3220,4.899,3687,4.384,3693,5.065]],["title/931",[2733,2.927,2899,3.91]],["content/931",[34,1.884,48,1.726,65,2.93,71,1.577,114,1.684,115,1.417,185,3.363,240,2.687,279,1.13,308,2.401,309,2.552,332,1.833,378,2.821,454,1.117,458,2.687,482,1.671,507,2.765,531,2.155,538,1.92,540,3.345,570,3.802,574,2.206,586,2.793,623,3.021,664,2.368,720,2.489,777,3.06,790,3.29,891,2.738,1025,2.29,1106,1.867,1198,2.616,1262,3.802,1818,3.06,2224,3.541,2629,3.405,2733,2.29,2890,3.623,2891,3.81,3693,4.086,3707,3.802,3710,5.124,3711,4.043,3719,4.656,3727,3.913,3803,3.405,3867,5.053,3868,5.053]],["title/932",[311,1.895,313,1.816,1720,3.539,3693,2.501]],["content/932",[65,2.175,256,4.203,311,4.002,331,3.91,415,3.539,720,2.428,1038,3.805,1052,3.679,1106,2.692,1661,5.217,1776,5.231,2068,6.055,2224,5.105,2260,4.412,2733,3.302,2737,4.412,2764,5.643,2891,3.125,2938,5.217,2962,5.482,3158,4.669,3341,5.342,3366,6.336,3693,3.986]],["title/933",[1177,2.748,2904,3.544,3688,2.873]],["content/933",[48,2.395,64,2.556,65,2.094,279,1.569,332,2.544,482,2.318,487,5.277,720,2.337,915,3.199,994,4.494,1035,3.764,1177,4.832,1510,4.566,1545,3.957,2664,4.141,2719,5.827,2797,4.643,2890,3.839,2891,3.007,2899,4.246,2904,6.231,2914,4.566,3087,5.431,3688,3.764,3698,4.816,3727,5.431]],["title/934",[961,3,1059,2.481,2539,3.088,3220,2.855,3687,2.555]],["content/934",[8,1.093,24,2.953,34,1.937,65,2.275,184,3.145,185,2.339,311,2.153,331,2.787,492,2.227,495,3.912,720,1.731,729,5.34,731,5.587,867,3.105,889,1.983,961,7.482,1028,3.231,1052,2.622,1059,5.616,1098,2.93,1116,2.369,1386,3.03,1776,4.129,1957,4.517,2733,2.354,2791,4.316,2889,5.902,2890,3.682,2891,3.871,2922,4.022,3220,6.464,3632,4.517,3687,3.328,3693,4.17,3731,4.517,3740,6.627]],["title/935",[493,2.786,773,3.344]],["content/935",[8,0.884,62,3.088,65,3.501,100,4.591,150,2.449,308,2.929,393,3.556,477,2.188,773,3.192,961,4.638,1028,3.835,1059,3.835,1198,3.192,1404,4.414,1503,9.743,1527,3.95,2201,4.154,2419,5.123,2890,2.514,2891,2.644,3220,6.17,3693,3.373,3707,4.638,3740,7.493,3869,6.164,3870,6.164]],["title/936",[1776,2.9,2260,3.241,3733,4.028]],["content/936",[84,4.794,311,4.072,562,4.015,961,5.629,1059,4.654,1277,5.485,1563,4.315,1647,3.58,1720,5.793,1776,5.323,2260,5.948,2938,5.357,2962,5.629,3080,6.892,3153,5.242,3158,4.794,3693,6.002,3718,6.892,3837,6.892]],["title/937",[1132,3.33,1189,3.925,3871,4.932]],["content/937",[34,2.134,48,1.955,49,1.578,169,2.822,279,1.829,313,2.274,454,1.265,463,3.727,482,1.892,524,2.36,538,2.175,572,4.197,579,4.828,589,3.072,624,3.072,982,4.757,1018,4.433,1025,3.705,1276,4.011,1386,3.34,1494,4.757,1875,3.466,1896,3.422,2733,3.705,2737,4.951,2764,4.433,2797,3.79,2887,3.34,2890,2.335,2899,3.466,2904,3.79,2995,4.307,3204,4.433,3638,4.978,3687,3.668,3688,3.072,3693,3.132,3727,4.433,3845,5.274,3872,5.724,3873,5.724,3874,5.724]],["title/999",[114,2.152,115,1.811]],["content/999",[]],["title/938",[114,1.523,115,1.281,2166,2.526,3688,2.453]],["content/938",[]],["title/939",[1177,4.179]],["content/939",[64,4.312,394,5.159,460,2.566,484,2.629,526,3.465,621,3.161,661,4.264,1017,7.18,1177,4,3281,8.291,3875,7.792,3876,7.18,3877,7.792,3878,7.792,3879,7.792]],["title/940",[3748,6.513]],["content/940",[8,1.766,460,2.053,526,2.771,621,2.529,659,3.837,661,3.41,1098,6.947,1568,4.57,1664,4.2,2166,3.445,2638,4.69,2886,5.18,3197,4.69,3288,4.57,3652,4.69,3748,4.987,3880,6.233,3881,6.233,3882,6.233,3883,6.233,3884,6.233,3885,6.233,3886,6.233,3887,5.743]],["title/941",[773,2.771,1177,2.748,1921,3.676]],["content/941",[82,3.333,103,3.212,115,1.895,233,3.848,460,2.226,493,2.916,517,2.987,588,3.413,589,3.628,652,5.712,719,4.401,773,4.753,1135,4.736,1193,3.124,1671,7.629,1921,7.159,2082,4.205,3644,5.421,3698,4.641,3888,6.759,3889,6.759,3890,6.759,3891,6.759,3892,6.759,3893,6.759]],["title/942",[102,4.144]],["content/942",[65,2.697,78,3.509,100,4.175,102,4.598,108,2.596,254,4.05,398,5.943,773,5.733,956,3.306,1098,5.097,1136,4.229,1721,4.532,2249,4.966,2827,8.558,3644,6.539,3894,6.6,3895,6.6,3896,6.6,3897,6.6]],["title/943",[773,4.214]],["content/943",[8,1.859,244,5.067,460,2.008,538,2.317,657,2.435,712,2.94,773,3.157,1177,3.13,1479,5.067,1921,5.872,2049,3.692,3898,6.097,3899,7.878,3900,6.097,3901,5.618,3902,6.097,3903,7.878,3904,8.55,3905,9.874,3906,6.097,3907,7.878,3908,6.097]],["title/944",[493,3.511]],["content/944",[8,1.808,64,3.315,102,2.213,460,2.196,526,3.607,589,2.334,684,2.01,695,2.744,757,2.403,773,2.251,956,2.178,960,3.271,969,2.831,1085,3.271,1098,4.577,1177,4.165,1485,2.831,1568,3.188,1921,2.986,2262,3.367,2650,3.367,3072,4.006,3281,3.047,3419,8.604,3644,4.79,3688,2.334,3876,4.006,3887,7.475,3899,4.006,3901,4.006,3903,4.006,3907,4.006,3909,4.348,3910,4.348,3911,6.668,3912,4.348,3913,6.668,3914,4.348,3915,4.348,3916,4.348,3917,4.348]],["title/945",[3918,8.139]],["content/945",[8,1.006,62,3.513,64,3.43,65,2.094,99,3.264,115,1.966,460,2.309,493,3.025,582,4.472,1071,4,1131,3.875,1136,4.494,1177,4.832,1921,6.463,2865,7.289,2898,6.461,3150,6.099,3688,3.764,3788,8.185,3919,7.012,3920,7.012,3921,7.012,3922,7.012]],["title/946",[279,1.197,484,1.806,2735,3.2]],["content/946",[12,3.273,101,3.168,143,2.546,219,2.783,279,1.973,309,3.219,313,2.533,460,2.099,482,2.108,484,2.151,486,3.143,487,4.797,504,3.454,505,3.616,519,3.72,524,3.636,568,3.523,574,2.783,657,2.546,888,3.029,1002,4.296,1010,3.86,1025,2.889,1082,5.544,1389,4.467,1548,4.22,2219,4.296,2670,4.296,2845,5.297,2938,4.565,3057,4.797,3923,6.374,3924,6.374,3925,6.374]],["title/947",[1069,4.289]],["content/947",[18,1.078,64,3.122,65,2.13,69,1.584,99,2.212,104,1.28,105,4.321,143,1.898,240,3.794,279,1.063,308,2.259,454,1.051,484,1.604,486,4.224,494,3.485,501,3.331,505,1.949,529,2.227,545,2.243,569,3.681,691,2.461,888,2.259,917,2.842,952,2.654,976,2.227,1002,3.203,1021,3,1069,4.514,1157,2.627,1198,2.461,1389,3.331,1776,2.576,2016,3.681,2166,2.627,2317,3.331,2737,2.878,2739,2.878,2853,3.577,2854,3.485,2890,1.939,2905,4.38,2950,4.38,2959,4.134,3097,3.95,3684,4.134,3688,2.551,3926,4.753,3927,4.753,3928,4.134,3929,4.134,3930,4.38,3931,4.753,3932,3.803,3933,4.134,3934,4.753,3935,4.753,3936,4.38]],["title/948",[540,4.276,907,4.205]],["content/948",[484,3.572,907,6.894]],["title/949",[3524,6.764]],["content/949",[36,1.461,103,1.19,108,0.985,112,0.811,133,2.651,143,2.222,154,1.356,176,1.796,279,0.56,313,1.693,321,1.719,332,0.908,393,1.444,421,1.604,441,4.451,454,1.23,484,0.845,488,1.344,492,2.386,499,2.355,501,1.754,502,1.754,504,1.356,507,3.044,510,1.244,517,1.106,524,2.294,528,1.939,529,1.997,531,2.8,540,1.657,546,1.413,552,6.8,567,1.58,572,1.835,574,3.214,588,1.264,594,1.604,600,1.536,614,1.657,620,1.536,767,1.719,791,1.793,885,1.884,889,0.956,900,1.005,907,1.63,917,1.497,945,1.497,952,1.398,953,2.08,981,1.657,1006,1.557,1015,1.398,1020,4.186,1021,3.511,1024,2.003,1069,1.319,1091,1.884,1139,1.557,1204,2.58,1212,2.307,1395,1.657,1423,1.604,1474,2.08,1498,1.939,1528,1.719,1545,2.404,1594,2.177,1635,1.398,1677,2.08,1790,2.177,1818,2.58,1830,4.079,1896,1.497,2015,1.793,2040,2.177,2082,1.557,2088,2.177,2099,2.08,2292,1.557,2403,2.003,2668,2.986,2756,2.307,2828,1.939,2829,1.939,2830,1.939,2880,2.08,2881,2.08,2887,4.296,2912,2.307,2914,4.275,2929,1.63,2940,2.307,3029,2.003,3030,1.793,3094,2.307,3233,2.307,3503,2.307,3524,4.623,3694,2.177,3937,5.563,3938,3.926,3939,2.503,3940,2.503,3941,2.503,3942,2.503,3943,2.503,3944,2.503,3945,2.503,3946,2.503,3947,2.503,3948,2.503,3949,2.503,3950,2.503,3951,2.177]],["title/950",[672,4.369]],["content/950",[8,1.586,35,1.653,36,4.017,67,1.594,71,1.054,119,2.579,253,2.477,279,0.756,313,2.172,332,1.226,393,1.949,453,2.165,454,1.749,484,2.322,505,1.385,519,1.971,521,1.583,552,2.237,570,2.542,582,1.605,659,1.493,672,4.662,688,3.118,720,1.822,757,1.867,778,2.938,802,2.938,889,1.29,890,1.886,900,2.764,911,2.32,950,3.113,953,2.807,994,2.165,1021,3.45,1204,3.31,1209,2.237,1226,1.867,1245,2.703,1505,5.508,1830,2.477,2082,2.102,2135,4.113,2173,2.703,2599,2.938,2853,4.113,2854,7.174,2939,4.542,2959,2.938,3137,2.938,3153,2.367,3276,3.113,3652,2.542,3932,4.374,3933,2.938,3952,3.378,3953,3.378,3954,3.378,3955,3.378,3956,3.378,3957,3.378,3958,3.378,3959,5.466,3960,3.378,3961,3.378,3962,3.378,3963,5.466,3964,3.378,3965,5.466]],["title/951",[313,2.566,531,2.754]],["content/951",[37,1.599,49,1.411,77,2.139,105,4.564,112,1.01,143,2.043,146,2.493,154,1.688,219,1.36,233,1.306,241,1.12,249,1.502,253,1.412,306,2.275,313,2.033,436,2.746,439,1.84,454,1.666,460,1.026,474,1.863,482,1.03,485,1.481,491,2.284,499,1.722,501,2.183,502,2.183,504,4.084,505,3.091,529,2.398,531,1.328,552,2.063,559,1.599,562,1.672,585,1.967,588,1.573,621,1.264,623,1.863,657,1.244,688,2.919,695,1.967,720,1.705,913,1.722,935,2.413,976,1.46,981,2.063,1002,3.448,1010,3.098,1015,1.74,1038,1.627,1054,1.818,1079,2.231,1080,2.709,1081,1.938,1133,1.613,1204,1.886,1211,2.284,1226,1.722,1376,2.231,1387,4.45,1389,3.585,1395,6.259,1563,1.797,1662,1.938,1859,2.589,2016,3.963,2638,2.344,2670,2.1,2725,2.871,2847,2.709,3030,2.231,3054,2.589,3166,2.589,3306,2.871,3337,2.871,3648,2.589,3673,2.709,3784,2.589,3928,6.555,3929,6.555,3930,4.715,3966,3.115,3967,3.115,3968,3.115,3969,3.115,3970,3.115,3971,3.115,3972,6.51,3973,3.115,3974,3.115]],["title/952",[112,2.093,306,2.872]],["content/952",[18,0.34,24,0.473,28,0.718,32,0.439,34,0.839,35,0.598,49,1.255,50,1.621,54,1.49,62,0.612,64,0.82,69,0.407,78,1.197,82,1.11,88,1.898,104,0.329,105,0.74,112,1.476,134,0.651,143,0.899,150,0.485,154,1.22,162,1.346,176,0.949,194,0.855,219,0.533,229,1.127,233,0.512,241,2.82,253,0.554,279,0.7,306,2.904,313,2.43,321,0.839,331,1.68,332,0.817,393,0.705,398,1.68,421,1.442,436,1.68,440,1.748,443,0.73,454,1.25,455,0.656,474,0.73,482,0.404,483,0.823,484,1.536,485,0.58,486,1.11,493,0.527,501,0.856,504,0.662,506,0.977,513,0.675,514,1.298,517,0.54,519,2.27,522,1.871,524,1.604,531,3.344,538,0.855,540,0.809,552,0.809,563,1.298,581,0.543,587,3.364,594,1.442,613,1.743,615,1.442,616,1.062,622,0.946,623,0.73,641,0.602,643,1.577,652,0.76,657,0.488,672,2.444,684,1.798,688,2.219,720,0.407,735,0.783,773,0.632,796,0.689,884,1.015,885,0.919,888,0.58,889,3.617,903,2.505,917,1.346,954,0.977,976,0.572,982,1.015,994,0.783,1002,2.109,1010,1.363,1015,0.682,1021,1.976,1054,0.713,1064,0.946,1079,0.875,1106,0.451,1119,0.795,1123,0.74,1127,1.015,1140,1.126,1162,0.977,1163,1.126,1173,3.26,1192,1.015,1196,1.743,1204,0.74,1226,0.675,1250,0.896,1254,0.705,1265,0.783,1270,2.074,1327,0.809,1330,1.015,1376,2.241,1389,3.19,1395,3.743,1423,1.442,1496,0.875,1498,0.946,1505,0.977,1534,1.015,1541,1.743,1558,0.875,1573,5.286,1602,1.694,1693,1.015,1721,1.546,1760,0.823,1776,2.108,1818,0.74,1896,0.73,2026,0.946,2049,0.74,2082,0.76,2085,1.015,2096,0.809,2166,1.73,2219,0.823,2249,0.919,2316,0.697,2399,2.241,2629,2.621,2647,1.015,2651,0.896,2662,0.919,2664,0.721,2728,1.126,2796,0.783,2850,0.977,2854,0.896,2865,0.946,2880,1.871,2938,0.875,2939,1.015,3215,1.062,3242,2.884,3244,1.126,3328,1.958,3427,1.015,3454,1.062,3521,0.946,3652,2.355,3673,1.062,3928,1.062,3929,1.062,3932,0.977,3933,1.062,3936,3.584,3975,1.222,3976,1.222,3977,1.222,3978,2.251,3979,1.222,3980,1.222,3981,1.222,3982,1.222,3983,1.222,3984,2.251,3985,1.222,3986,1.222,3987,2.251,3988,1.222,3989,1.222,3990,1.222,3991,3.13,3992,1.222,3993,1.222,3994,1.222,3995,1.222,3996,1.222]],["title/953",[154,2.9,279,1.197,482,1.77]],["content/953",[35,3.084,154,3.415,194,2.395,240,3.352,279,2.248,439,3.722,482,2.084,492,2.703,507,3.449,537,4.248,546,3.556,552,6.655,574,3.82,586,3.483,604,4.039,651,6.168,1028,3.921,1054,3.678,1204,3.817,1749,4.248,1818,3.817,1830,6.416,1831,5.043,1832,5.808,1896,3.768,2096,4.173,2886,5.238,3184,4.328,3997,5.481,3998,6.303]],["title/954",[2724,6.304]],["content/954",[]],["title/955",[3666,5.002,3999,6.458]],["content/955",[552,6.755,1830,7.481,4000,10.203,4001,10.203]],["title/956",[598,6.513]],["content/956",[531,2.781,552,6.776,557,4.258,594,6.559,600,6.761,603,6.742,607,4.479,650,4.783,651,4.003,891,4.855,907,4.247,1020,6.742,1475,4.247,1675,4.396,1831,8.19,2881,5.421,4002,6.523,4003,6.523,4004,6.523,4005,8.96,4006,6.523]],["title/957",[546,3.644,2096,4.276]],["content/957",[49,1.681,111,4.725,241,2.193,279,1.913,313,3.397,458,3.242,482,3.265,484,3.331,520,5.112,531,4.21,546,5.572,568,3.37,574,2.662,579,3.6,672,3.273,889,2.328,899,4.722,1024,4.879,1025,2.763,1087,3.054,1575,3.304,1865,4.722,2096,6.538,2938,4.366,3389,5.303,3938,5.618,4007,6.097]],["title/958",[1115,3.053,1233,3.053,1276,3.751]],["content/958",[18,1.099,36,2.846,49,1.345,103,2.318,176,3.066,194,1.853,219,2.129,233,3.049,241,2.616,310,2.483,400,2.463,446,2.57,454,1.078,484,3.65,485,2.318,493,3.753,520,2.916,524,2.011,587,3.731,641,3.587,691,4.504,744,2.88,892,3.034,904,3.576,912,2.813,941,3.67,956,3.644,1025,2.21,1087,2.443,1226,2.695,1586,4.242,2096,6.83,2767,6.703,2842,3.903,2938,3.493,3141,4.242,3321,4.494,4008,6.326,4009,4.877,4010,4.877,4011,4.494]],["title/959",[1115,3.053,1233,3.053,1653,3.544]],["content/959",[0,1.234,18,0.411,35,1.332,84,1.744,99,1.267,111,3.831,133,1.694,143,1.087,154,1.475,162,1.627,194,1.034,219,1.188,279,2.245,378,3.303,393,1.57,397,1.242,400,2.31,408,1.588,436,1.461,446,1.434,454,1.709,458,2.432,482,1.956,484,3.15,486,1.342,495,1.397,499,2.528,501,1.907,502,1.907,519,1.588,524,1.122,529,1.276,531,1.161,532,1.949,538,1.034,546,4.361,552,1.802,567,2.887,568,1.504,574,3.654,582,1.294,586,1.504,623,1.627,683,1.718,691,1.409,720,1.524,777,2.77,888,1.294,889,2.259,892,1.694,896,2.638,912,1.57,915,1.242,952,2.554,969,1.772,1054,1.588,1204,3.582,1482,1.718,1494,2.262,1575,1.475,1711,1.648,1819,1.869,1830,3.354,1837,2.178,1908,2.367,2020,2.887,2037,2.262,2085,3.801,2096,6.183,2292,1.694,2418,3.141,2668,1.907,2760,2.262,2828,2.108,2829,2.108,2830,2.108,2880,2.262,2881,2.262,2887,4.51,3413,2.508,3521,3.542,3997,3.978,4012,2.722,4013,2.508,4014,5.45,4015,2.722,4016,2.508,4017,2.722]],["title/960",[194,2.454,565,3.861]],["content/960",[18,1.092,20,4.435,48,1.652,49,1.993,52,3.174,54,4.785,62,2.422,69,1.611,99,2.25,104,1.947,135,2.482,150,1.921,162,2.891,219,4.192,241,1.739,310,3.68,398,2.595,400,2.442,446,2.548,482,1.599,484,3.638,524,2.98,565,4.321,586,2.672,587,3.712,641,3.564,671,3.955,691,4.972,698,3.118,931,3.052,956,3.62,1025,3.276,4008,4.205,4011,4.455,4018,9.603]],["title/961",[519,3.768,2085,5.367]],["content/961",[8,1.219,84,5.448,103,4.04,108,3.344,194,3.231,224,7.061,495,4.364,517,3.757,519,4.961,1137,5.729,1653,5.628,2953,7.833,3364,7.833,4013,7.833]],["title/962",[4019,8.139]],["content/962",[162,5.991,454,2.215,617,6.881,2418,6.881,2735,5.991]],["title/963",[1620,3.983]],["content/963",[8,1.491,1620,5.086,2669,7.137]],["title/964",[409,3.288,816,3.725]],["content/964",[8,1.77,119,3.625,162,5.784,2418,6.644,4020,9.675]],["title/965",[4021,8.139]],["content/965",[484,3.321,581,4.378,587,4.222,691,5.097,1620,4.818,4022,9.844]],["title/966",[1620,3.983]],["content/966",[8,1.491,1620,5.086,2669,7.137]],["title/967",[409,3.288,816,3.725]],["content/967",[8,1.519,409,5.391]],["title/968",[4023,8.139]],["content/968",[194,3.877,617,7.007,691,5.283,2735,6.1]],["title/969",[1620,3.983]],["content/969",[8,1.519,2669,7.271]],["title/970",[409,3.288,816,3.725]],["content/970",[8,1.873,104,2.07,119,4.164,219,3.355,248,4.782,249,4.821,404,5.952,691,5.177,4024,7.081,4025,5.952]],["title/971",[3438,7.5]],["content/971",[18,1.57,99,4.836,446,5.476]],["title/972",[1620,3.983]],["content/972",[6,3.164,8,1.695,18,1.449,32,2.079,48,1.975,49,1.594,50,2.994,55,2.513,61,3.263,88,3.433,112,2.67,114,2.745,115,2.309,119,2.166,134,1.672,147,5.029,242,2.768,243,3.706,253,2.621,406,2.874,454,1.278,486,2.852,664,2.71,672,3.104,888,2.748,889,2.208,1008,3.299,1366,5.029,1403,3.374,1867,3.502,3062,5.029,4026,5.328,4027,5.783]],["title/973",[409,3.288,816,3.725]],["content/973",[8,1.766,18,1.194,104,2.129,119,2.96,253,5.391,308,3.755,310,5.183,315,6.567,316,6.567,1359,6.567,1742,5.145,4028,6.872]],["title/974",[4029,8.139]],["content/974",[219,4.537,664,4.87,888,4.938]],["title/975",[1620,3.983]],["content/975",[8,1.77,119,3.625,219,4.224,249,5.565]],["title/976",[409,3.288,816,3.725]],["content/976",[8,1.774,18,1.211,104,2.159,119,3.003,253,5.42,308,3.809,310,5.23,315,6.661,316,6.661,1359,6.661,4028,6.97]],["title/977",[4030,8.139]],["content/977",[219,4.537,888,4.938,1377,5.864]],["title/978",[1620,3.983]],["content/978",[8,1.77,119,3.625,219,4.224,249,5.565]],["title/979",[409,3.288,816,3.725]],["content/979",[8,1.774,18,1.211,104,2.159,119,3.003,253,5.42,308,3.809,310,5.23,315,6.661,316,6.661,1359,6.661,4028,6.97]],["title/980",[4031,8.139]],["content/980",[219,4.298,563,5.679,617,6.761,888,4.678,903,7.877,2735,5.885]],["title/981",[1620,3.983]],["content/981",[8,1.519,2669,7.271]],["title/982",[409,3.288,816,3.725]],["content/982",[8,1.878,119,4.192,219,3.402,379,3.757,671,4.264,686,5.958,916,4.495,1012,6.475,4032,7.792,4033,7.792]],["title/983",[4034,8.139]],["content/983",[48,3.249,49,2.622,52,5.018,219,4.152,671,5.204,698,4.103,753,7.904]],["title/984",[1620,3.983]],["content/984",[8,1.677,74,2.011,119,3.439,219,4.008,241,2.43,249,3.259,253,3.063,454,1.494,659,2.987,664,3.167,671,5.704,698,3.96,913,3.735,916,5.295,948,5.559,1403,5.357,1540,3.899,2060,4.956,4025,5.235,4035,5.617]],["title/985",[409,3.288,816,3.725]],["content/985",[8,1.731,48,3.142,49,2.536,52,4.04,58,5.499,119,3.446,219,4.016,698,3.968]],["title/986",[4036,8.139]],["content/986",[52,5.123,104,2.652,219,4.298,671,5.387,698,4.247]],["title/987",[1620,3.983]],["content/987",[8,1.677,74,2.011,119,3.439,219,4.008,241,2.43,249,3.259,253,3.063,454,1.494,659,2.987,664,3.167,671,5.704,698,3.96,913,3.735,916,5.295,948,5.559,1403,5.357,1540,3.899,2060,4.956,4025,5.235,4035,5.617]],["title/988",[409,3.288,816,3.725]],["content/988",[8,1.77,104,3.109,119,3.625,671,5.294]],["title/989",[4037,8.139]],["content/989",[587,4.298,617,6.881,691,5.188,2664,5.917,2735,5.991]],["title/990",[1620,3.983]],["content/990",[8,1.519,2669,7.271]],["title/991",[409,3.288,816,3.725]],["content/991",[8,1.789,104,2.223,119,4.306,219,3.602,248,5.133,249,5.046,404,6.39,691,4.272,4024,7.603,4025,6.39]],["title/992",[4038,8.139]],["content/992",[18,1.57,446,5.476,523,6.56]],["title/993",[1620,3.983]],["content/993",[8,1.796,18,1.514,32,1.64,55,2.11,88,2.883,112,2.242,114,1.52,115,1.279,119,3.493,147,3.966,219,3.019,225,7.022,241,1.64,249,2.198,253,2.067,436,2.447,446,3.644,454,1.529,472,5.747,509,3.343,664,2.137,671,2.495,888,2.167,916,2.63,945,2.726,1008,2.601,1403,2.661,1540,2.63,1867,2.761,2654,4.202,3062,3.966,3932,3.649,3951,6.014,4025,3.531,4026,4.202,4035,3.789,4039,4.202,4040,4.202,4041,4.202]],["title/994",[409,3.288,816,3.725]],["content/994",[8,1.792,18,1.253,48,3.295,49,2.66,52,2.566,104,2.235,119,3.935,135,4.953,151,3.635,282,5.384,284,5.384,285,5.384,332,3.01,375,3.107,376,3.938,377,3.297,379,2.817,380,4.872,454,1.292,477,2.074,504,3.166,4042,5.843]],["title/995",[4043,8.139]],["content/995",[446,5.476,523,6.56,2669,7.137]],["title/996",[1620,3.983]],["content/996",[7,3.101,8,1.815,119,3.677,144,3.345,219,3.26,225,7.337,241,1.817,249,2.436,411,2.821,436,2.712,446,4.681,448,4.043,454,1.117,472,6.206,509,3.705,664,2.368,671,2.765,916,2.915,945,3.021,1403,2.949,1540,2.915,2669,7.527,3932,4.043,3951,6.495,4025,3.913,4035,4.199,4039,4.656,4040,4.656,4041,4.656,4044,5.053]],["title/997",[409,3.288,816,3.725]],["content/997",[8,1.888,119,3.337,446,4.693,2669,6.116,4045,10.978]],["title/998",[3871,7.5]],["content/998",[8,0.559,111,2.152,133,2.423,154,2.11,194,1.48,241,1.4,279,1.692,309,1.967,313,1.547,378,3.418,393,2.247,397,1.777,454,0.861,458,2.071,482,2.024,484,2.893,486,1.921,519,2.273,531,2.611,532,2.789,546,4.839,567,2.458,574,4.07,582,1.851,605,2.39,623,2.328,661,2.131,695,2.458,889,1.487,896,3.532,898,2.131,976,1.825,1076,2.247,1087,1.951,1204,3.707,1219,3.116,1226,2.152,1477,2.273,1482,2.458,1494,3.237,1498,3.016,1616,3.016,1643,2.423,1711,2.358,1830,4.489,1837,3.116,1865,3.016,2020,3.865,2096,4.053,2668,2.729,2710,2.729,2721,5.692,2722,3.237,2761,3.589,2825,2.729,2887,3.572,3997,5.325,4008,3.387,4014,6.97,4016,3.589,4046,3.895,4047,3.895,4048,3.895,4049,7.565,4050,3.895]],["title/1000",[539,3.569,1565,4.205]],["content/1000",[14,2.766,21,4.585,32,3.356,45,3.201,55,2.113,97,3.951,175,3.65,332,3.386,393,3.995,454,2.063,469,4.667,539,3.828,542,6.023,567,4.372,655,3.223,889,2.645,1079,4.96,1535,4.756,1565,6.873,1656,3.753,4051,6.926,4052,6.926,4053,6.926,4054,6.926,4055,6.926]]],"invertedIndex":[["",{"_index":8,"title":{"255":{},"256":{},"279":{},"289":{},"393":{},"414":{},"567":{},"568":{},"569":{},"570":{},"571":{},"572":{},"573":{},"574":{},"575":{},"576":{},"577":{},"578":{},"579":{},"580":{},"581":{},"582":{},"583":{},"584":{},"585":{},"586":{},"587":{},"588":{},"589":{},"590":{},"595":{},"596":{},"597":{},"598":{},"599":{},"600":{},"609":{},"634":{},"699":{},"705":{},"852":{},"868":{},"869":{},"880":{},"905":{}},"content":{"2":{},"3":{},"4":{},"7":{},"8":{},"9":{},"10":{},"12":{},"13":{},"16":{},"17":{},"19":{},"22":{},"23":{},"25":{},"26":{},"28":{},"29":{},"31":{},"32":{},"34":{},"35":{},"37":{},"38":{},"40":{},"41":{},"43":{},"44":{},"46":{},"47":{},"48":{},"49":{},"50":{},"52":{},"53":{},"54":{},"55":{},"56":{},"58":{},"59":{},"61":{},"62":{},"64":{},"65":{},"67":{},"68":{},"70":{},"71":{},"73":{},"74":{},"75":{},"76":{},"77":{},"79":{},"80":{},"82":{},"83":{},"85":{},"86":{},"88":{},"89":{},"91":{},"92":{},"95":{},"96":{},"98":{},"99":{},"101":{},"102":{},"105":{},"106":{},"108":{},"109":{},"111":{},"112":{},"114":{},"115":{},"117":{},"118":{},"120":{},"121":{},"122":{},"123":{},"124":{},"128":{},"129":{},"135":{},"136":{},"138":{},"139":{},"141":{},"142":{},"144":{},"145":{},"147":{},"148":{},"150":{},"151":{},"156":{},"162":{},"164":{},"166":{},"168":{},"172":{},"174":{},"177":{},"183":{},"185":{},"187":{},"189":{},"198":{},"199":{},"201":{},"202":{},"206":{},"208":{},"211":{},"212":{},"213":{},"214":{},"217":{},"218":{},"219":{},"220":{},"221":{},"224":{},"225":{},"227":{},"230":{},"239":{},"242":{},"254":{},"267":{},"268":{},"269":{},"271":{},"276":{},"291":{},"342":{},"343":{},"347":{},"350":{},"369":{},"370":{},"371":{},"372":{},"374":{},"380":{},"381":{},"382":{},"385":{},"386":{},"387":{},"388":{},"389":{},"390":{},"392":{},"393":{},"394":{},"397":{},"400":{},"401":{},"403":{},"404":{},"405":{},"406":{},"407":{},"409":{},"411":{},"413":{},"414":{},"415":{},"420":{},"421":{},"422":{},"424":{},"425":{},"427":{},"428":{},"430":{},"431":{},"432":{},"433":{},"434":{},"435":{},"436":{},"437":{},"438":{},"439":{},"441":{},"442":{},"443":{},"448":{},"453":{},"459":{},"462":{},"463":{},"464":{},"472":{},"473":{},"475":{},"476":{},"477":{},"478":{},"479":{},"481":{},"482":{},"483":{},"484":{},"485":{},"486":{},"487":{},"488":{},"489":{},"490":{},"491":{},"492":{},"493":{},"494":{},"496":{},"497":{},"498":{},"499":{},"500":{},"501":{},"502":{},"503":{},"505":{},"506":{},"507":{},"514":{},"515":{},"516":{},"517":{},"518":{},"519":{},"520":{},"522":{},"523":{},"524":{},"525":{},"526":{},"527":{},"529":{},"532":{},"533":{},"534":{},"535":{},"536":{},"537":{},"538":{},"545":{},"548":{},"549":{},"560":{},"563":{},"567":{},"568":{},"569":{},"570":{},"571":{},"572":{},"573":{},"574":{},"575":{},"576":{},"577":{},"578":{},"579":{},"580":{},"581":{},"582":{},"583":{},"584":{},"585":{},"586":{},"587":{},"588":{},"589":{},"590":{},"595":{},"596":{},"597":{},"598":{},"599":{},"600":{},"609":{},"634":{},"639":{},"668":{},"687":{},"690":{},"693":{},"697":{},"746":{},"748":{},"755":{},"756":{},"757":{},"758":{},"759":{},"779":{},"788":{},"789":{},"793":{},"796":{},"799":{},"808":{},"825":{},"826":{},"840":{},"870":{},"874":{},"883":{},"899":{},"934":{},"935":{},"940":{},"943":{},"944":{},"945":{},"950":{},"961":{},"963":{},"964":{},"966":{},"967":{},"969":{},"970":{},"972":{},"973":{},"975":{},"976":{},"978":{},"979":{},"981":{},"982":{},"984":{},"985":{},"987":{},"988":{},"990":{},"991":{},"993":{},"994":{},"996":{},"997":{},"998":{}}}],["0",{"_index":659,"title":{},"content":{"211":{},"212":{},"213":{},"214":{},"223":{},"228":{},"229":{},"232":{},"246":{},"268":{},"269":{},"270":{},"275":{},"282":{},"369":{},"370":{},"371":{},"372":{},"384":{},"390":{},"393":{},"397":{},"404":{},"405":{},"407":{},"413":{},"414":{},"420":{},"438":{},"440":{},"441":{},"442":{},"443":{},"463":{},"481":{},"482":{},"487":{},"493":{},"494":{},"505":{},"506":{},"535":{},"537":{},"538":{},"557":{},"560":{},"628":{},"738":{},"825":{},"883":{},"904":{},"905":{},"940":{},"950":{},"984":{},"987":{}}}],["0,1",{"_index":2489,"title":{},"content":{"487":{}}}],["0.01",{"_index":1779,"title":{},"content":{"346":{},"692":{},"693":{},"697":{}}}],["0.013",{"_index":3881,"title":{},"content":{"940":{}}}],["0.02",{"_index":1755,"title":{},"content":{"343":{}}}],["0.024",{"_index":3882,"title":{},"content":{"940":{}}}],["0.043",{"_index":3883,"title":{},"content":{"940":{}}}],["0.077",{"_index":3884,"title":{},"content":{"940":{}}}],["0.1",{"_index":3161,"title":{},"content":{"687":{},"876":{}}}],["0.139",{"_index":3885,"title":{},"content":{"940":{}}}],["0.2",{"_index":2238,"title":{},"content":{"424":{},"525":{}}}],["0.22",{"_index":3620,"title":{},"content":{"826":{}}}],["0.23",{"_index":3619,"title":{},"content":{"826":{}}}],["0.25",{"_index":3721,"title":{},"content":{"876":{}}}],["0.251",{"_index":3886,"title":{},"content":{"940":{}}}],["0.3",{"_index":3819,"title":{},"content":{"904":{},"905":{}}}],["0.35",{"_index":3723,"title":{},"content":{"876":{}}}],["0.42w",{"_index":3174,"title":{},"content":{"687":{}}}],["0.453",{"_index":3887,"title":{},"content":{"940":{},"944":{}}}],["0.5",{"_index":3724,"title":{},"content":{"876":{}}}],["0.8404452690166976",{"_index":3913,"title":{},"content":{"944":{}}}],["0.9",{"_index":2039,"title":{},"content":{"390":{}}}],["0/0",{"_index":3149,"title":{},"content":{"685":{}}}],["00",{"_index":872,"title":{},"content":{"217":{},"738":{}}}],["000",{"_index":3026,"title":{},"content":{"660":{}}}],["0000000000",{"_index":2277,"title":{},"content":{"433":{}}}],["000012345",{"_index":2267,"title":{},"content":{"430":{},"449":{},"451":{}}}],["00001ab",{"_index":2127,"title":{},"content":{"382":{}}}],["00001abc",{"_index":2063,"title":{},"content":{"395":{}}}],["00001ac8...4f",{"_index":3442,"title":{},"content":{"759":{}}}],["00001bc",{"_index":2128,"title":{},"content":{"382":{}}}],["00002223bbd4ec3d64ae597696c7d7ade1cee65c639d885450ad2d7b75592ac76afa",{"_index":2700,"title":{},"content":{"549":{}}}],["000023456",{"_index":2360,"title":{},"content":{"451":{}}}],["00003bafdfb7a8e66b59de5692b79088063853bbd69a7d555faec906e6215e57ff98",{"_index":2171,"title":{},"content":{"407":{}}}],["000056789",{"_index":2266,"title":{},"content":{"430":{},"431":{}}}],["00005da88a4adaf5b40c958a20db981bd168008e03efbb7fc9d35e11be182a0d3065",{"_index":3614,"title":{},"content":{"825":{}}}],["0000ab12",{"_index":2130,"title":{},"content":{"382":{}}}],["0000abcd...ef",{"_index":3440,"title":{},"content":{"759":{}}}],["0000ba28ce06631ff2ef4fe3dc89a34be13c0d252f8952bbfa3173b03dbef3c04afd",{"_index":2172,"title":{},"content":{"407":{}}}],["0000c13373c96538b468ccdab8f95fdc3744ebfa2cd36a81c3791b2a205705d9c3a2",{"_index":3436,"title":{},"content":{"757":{},"758":{}}}],["0000d574d171a484f8deac2d61fc3f7cc984beb52465d69b3b5f670090742cbf5cca",{"_index":2206,"title":{},"content":{"413":{}}}],["0000f1fd",{"_index":3437,"title":{},"content":{"758":{}}}],["000108a5c",{"_index":2273,"title":{},"content":{"432":{}}}],["000abcd",{"_index":2017,"title":{},"content":{"387":{}}}],["000abcd123",{"_index":2023,"title":{},"content":{"387":{}}}],["0014ac",{"_index":2291,"title":{},"content":{"437":{}}}],["00743b809adde7e1e3e9b5afb704813d06155958fbbb78cd052cc45a1b19f976b",{"_index":1570,"title":{},"content":{"314":{}}}],["00:00",{"_index":1765,"title":{},"content":{"342":{}}}],["00:00:00",{"_index":3388,"title":{},"content":{"739":{}}}],["00:00am",{"_index":3472,"title":{},"content":{"766":{}}}],["00abcd",{"_index":2281,"title":{},"content":{"434":{},"463":{}}}],["00bcde",{"_index":2393,"title":{},"content":{"463":{}}}],["00efab",{"_index":2284,"title":{},"content":{"435":{},"436":{},"437":{}}}],["01",{"_index":3073,"title":{},"content":{"670":{}}}],["01/08/2024",{"_index":3763,"title":{},"content":{"880":{}}}],["01309f1c765967ac7",{"_index":3074,"title":{},"content":{"670":{}}}],["01ab2cd",{"_index":3581,"title":{},"content":{"796":{}}}],["02",{"_index":726,"title":{},"content":{"212":{},"217":{},"557":{},"753":{}}}],["02/11/2021",{"_index":3385,"title":{},"content":{"739":{}}}],["02:00am",{"_index":3467,"title":{},"content":{"763":{},"764":{}}}],["03/11/2021",{"_index":3387,"title":{},"content":{"739":{}}}],["04",{"_index":727,"title":{},"content":{"212":{},"213":{},"218":{},"277":{}}}],["04xi",{"_index":725,"title":{},"content":{"212":{},"221":{},"225":{}}}],["05/17/2024",{"_index":3776,"title":{},"content":{"887":{}}}],["07/17/2024",{"_index":3777,"title":{},"content":{"887":{}}}],["08",{"_index":817,"title":{},"content":{"214":{},"219":{},"372":{}}}],["09",{"_index":1983,"title":{},"content":{"372":{}}}],["0ac1bfa9",{"_index":3582,"title":{},"content":{"796":{}}}],["0ac7fj",{"_index":3585,"title":{},"content":{"796":{}}}],["0d574d171a484f8deac2d61fc3f7cc984beb52465d69b3b5f670090742cbf5cc",{"_index":2241,"title":{},"content":{"425":{}}}],["0f",{"_index":3369,"title":{},"content":{"742":{}}}],["0fb27dac",{"_index":3578,"title":{},"content":{"796":{}}}],["0th",{"_index":1556,"title":{},"content":{"314":{}}}],["0x",{"_index":2019,"title":{},"content":{"387":{}}}],["0x00",{"_index":1220,"title":{},"content":{"267":{}}}],["0x0000",{"_index":694,"title":{},"content":{"212":{}}}],["0x00001234ab",{"_index":2182,"title":{},"content":{"409":{}}}],["0x00001ac8...4f",{"_index":3444,"title":{},"content":{"759":{}}}],["0x00002223bbd4ec3d64ae597696c7d7ade1cee65c639d885450ad2d7b75592ac76afa",{"_index":1976,"title":{},"content":{"372":{}}}],["0x0000238c3a9cb5bfb7a863d698b71dfff0c9c5c40cff21ebda2d83ebaedda1c6e10d",{"_index":1978,"title":{},"content":{"372":{}}}],["0x0000993f3be0ce40541e47735aa083854ecac7785b39435c90d8456c777b9e9d81f1",{"_index":1923,"title":{},"content":{"370":{}}}],["0x0000a3a066dd64fbd51ae384f2383684b3803bc72012bfeaa9cd1c93ab7c60f584dc",{"_index":1926,"title":{},"content":{"370":{}}}],["0x0000abcd...ef",{"_index":3445,"title":{},"content":{"759":{}}}],["0x000abcd",{"_index":2022,"title":{},"content":{"387":{}}}],["0x000abcd123",{"_index":2024,"title":{},"content":{"387":{}}}],["0x00abc",{"_index":2137,"title":{},"content":{"382":{}}}],["0x00abcd",{"_index":2299,"title":{},"content":{"438":{},"441":{}}}],["0x00abd",{"_index":2322,"title":{},"content":{"442":{}}}],["0x00bcde",{"_index":2311,"title":{},"content":{"441":{}}}],["0x00def",{"_index":2138,"title":{},"content":{"382":{}}}],["0x00defa",{"_index":2325,"title":{},"content":{"442":{},"443":{}}}],["0x00fedc",{"_index":2313,"title":{},"content":{"441":{}}}],["0x04",{"_index":1221,"title":{},"content":{"267":{}}}],["0x06",{"_index":1303,"title":{},"content":{"269":{}}}],["0x0b",{"_index":1304,"title":{},"content":{"269":{}}}],["0x1234",{"_index":2331,"title":{},"content":{"427":{},"428":{}}}],["0x14",{"_index":1311,"title":{},"content":{"269":{}}}],["0x1a",{"_index":1292,"title":{},"content":{"269":{}}}],["0x1b",{"_index":1309,"title":{},"content":{"269":{}}}],["0x24",{"_index":1299,"title":{},"content":{"269":{}}}],["0x33",{"_index":1310,"title":{},"content":{"269":{}}}],["0x374c7527733556",{"_index":2397,"title":{},"content":{"464":{}}}],["0x44",{"_index":1288,"title":{},"content":{"269":{}}}],["0x46",{"_index":1296,"title":{},"content":{"269":{}}}],["0x52",{"_index":1301,"title":{},"content":{"269":{}}}],["0x64",{"_index":1305,"title":{},"content":{"269":{}}}],["0x67",{"_index":1287,"title":{},"content":{"269":{}}}],["0x69",{"_index":1312,"title":{},"content":{"269":{}}}],["0x6e",{"_index":1302,"title":{},"content":{"269":{}}}],["0x71",{"_index":1285,"title":{},"content":{"269":{}}}],["0x82",{"_index":1414,"title":{},"content":{"284":{}}}],["0x83",{"_index":1284,"title":{},"content":{"269":{}}}],["0x84",{"_index":1289,"title":{},"content":{"269":{}}}],["0x8d",{"_index":1295,"title":{},"content":{"269":{}}}],["0x90",{"_index":1293,"title":{},"content":{"269":{}}}],["0x9000",{"_index":668,"title":{},"content":{"211":{}}}],["0x95",{"_index":1415,"title":{},"content":{"284":{}}}],["0x97",{"_index":1286,"title":{},"content":{"269":{}}}],["0xa1",{"_index":1307,"title":{},"content":{"269":{}}}],["0xa5",{"_index":1297,"title":{},"content":{"269":{}}}],["0xaa",{"_index":1313,"title":{},"content":{"269":{}}}],["0xb3",{"_index":1290,"title":{},"content":{"269":{}}}],["0xbaddecod",{"_index":794,"title":{},"content":{"213":{},"214":{}}}],["0xcc",{"_index":1294,"title":{},"content":{"269":{}}}],["0xd7",{"_index":1298,"title":{},"content":{"269":{}}}],["0xda",{"_index":1308,"title":{},"content":{"269":{}}}],["0xf2",{"_index":1306,"title":{},"content":{"269":{}}}],["0xf8",{"_index":1291,"title":{},"content":{"269":{}}}],["0xf9",{"_index":1455,"title":{},"content":{"296":{}}}],["0xfd",{"_index":1300,"title":{},"content":{"269":{}}}],["0xffff",{"_index":682,"title":{},"content":{"212":{}}}],["1",{"_index":460,"title":{"382":{},"804":{},"832":{},"894":{},"898":{},"907":{},"910":{}},"content":{"165":{},"214":{},"218":{},"219":{},"227":{},"228":{},"229":{},"232":{},"233":{},"268":{},"271":{},"314":{},"321":{},"350":{},"351":{},"368":{},"369":{},"370":{},"371":{},"372":{},"379":{},"381":{},"382":{},"384":{},"385":{},"389":{},"390":{},"393":{},"394":{},"395":{},"400":{},"404":{},"406":{},"408":{},"409":{},"410":{},"413":{},"414":{},"416":{},"434":{},"436":{},"441":{},"443":{},"445":{},"449":{},"472":{},"477":{},"478":{},"481":{},"486":{},"487":{},"490":{},"493":{},"494":{},"525":{},"532":{},"533":{},"534":{},"535":{},"536":{},"537":{},"538":{},"545":{},"548":{},"549":{},"560":{},"568":{},"569":{},"570":{},"571":{},"572":{},"573":{},"595":{},"596":{},"597":{},"598":{},"599":{},"600":{},"628":{},"631":{},"655":{},"656":{},"658":{},"687":{},"693":{},"697":{},"739":{},"747":{},"755":{},"756":{},"758":{},"759":{},"788":{},"796":{},"799":{},"826":{},"878":{},"882":{},"894":{},"895":{},"908":{},"911":{},"939":{},"940":{},"941":{},"943":{},"944":{},"945":{},"946":{},"951":{}}}],["1,2",{"_index":2033,"title":{},"content":{"389":{},"486":{}}}],["1,2,3",{"_index":2252,"title":{},"content":{"415":{},"477":{},"478":{},"489":{},"491":{}}}],["1,2,3,4",{"_index":2477,"title":{},"content":{"485":{}}}],["1,2,3,4,5",{"_index":2044,"title":{},"content":{"391":{}}}],["1..10",{"_index":2046,"title":{},"content":{"392":{}}}],["1..5",{"_index":2042,"title":{},"content":{"391":{}}}],["1.0",{"_index":2032,"title":{},"content":{"389":{},"390":{},"413":{},"425":{}}}],["1.0e2",{"_index":2011,"title":{},"content":{"386":{}}}],["1.1",{"_index":2038,"title":{},"content":{"390":{},"393":{}}}],["1.1.0",{"_index":2203,"title":{},"content":{"402":{}}}],["1.18",{"_index":3669,"title":{},"content":{"840":{}}}],["1.2",{"_index":2359,"title":{},"content":{"451":{}}}],["1.3",{"_index":2684,"title":{},"content":{"545":{}}}],["1/3",{"_index":3214,"title":{},"content":{"693":{}}}],["10",{"_index":1767,"title":{},"content":{"342":{},"409":{},"525":{},"568":{},"569":{},"570":{},"571":{},"572":{},"573":{},"638":{},"655":{},"687":{},"693":{},"745":{},"755":{},"878":{}}}],["100",{"_index":2012,"title":{},"content":{"386":{},"564":{},"638":{},"639":{},"659":{},"660":{}}}],["100.12345678",{"_index":2933,"title":{},"content":{"649":{}}}],["100.123456789123456789",{"_index":2932,"title":{},"content":{"649":{}}}],["1000",{"_index":3419,"title":{},"content":{"755":{},"757":{},"758":{},"944":{}}}],["10000",{"_index":1898,"title":{},"content":{"369":{},"414":{}}}],["100000",{"_index":3425,"title":{},"content":{"755":{}}}],["100000000",{"_index":2207,"title":{},"content":{"413":{},"756":{},"758":{},"759":{}}}],["100000000000",{"_index":3418,"title":{},"content":{"755":{},"757":{}}}],["1095",{"_index":3767,"title":{},"content":{"882":{}}}],["10:00:00",{"_index":3386,"title":{},"content":{"739":{}}}],["10_000",{"_index":2008,"title":{},"content":{"386":{}}}],["10_000.0",{"_index":2009,"title":{},"content":{"386":{}}}],["10min",{"_index":3240,"title":{},"content":{"705":{}}}],["11",{"_index":3280,"title":{"724":{}},"content":{"724":{}}}],["11.25",{"_index":3759,"title":{},"content":{"878":{}}}],["11100000",{"_index":1813,"title":{},"content":{"351":{}}}],["11:30pm",{"_index":3465,"title":{},"content":{"762":{}}}],["11_250_000",{"_index":3878,"title":{},"content":{"939":{}}}],["12",{"_index":2599,"title":{},"content":{"516":{},"535":{},"950":{}}}],["12.1",{"_index":2602,"title":{},"content":{"516":{}}}],["123",{"_index":2576,"title":{},"content":{"507":{}}}],["123456",{"_index":2566,"title":{},"content":{"505":{}}}],["128",{"_index":1317,"title":{},"content":{"269":{}}}],["12:00",{"_index":3890,"title":{},"content":{"941":{}}}],["12:03",{"_index":3888,"title":{},"content":{"941":{}}}],["12:57",{"_index":3889,"title":{},"content":{"941":{}}}],["13",{"_index":2605,"title":{},"content":{"517":{},"799":{}}}],["13.2",{"_index":2607,"title":{},"content":{"517":{}}}],["1391309040",{"_index":2248,"title":{},"content":{"425":{}}}],["13:00",{"_index":3891,"title":{},"content":{"941":{}}}],["14",{"_index":2711,"title":{},"content":{"553":{}}}],["14.26239",{"_index":2307,"title":{},"content":{"439":{}}}],["14.26239591",{"_index":2315,"title":{},"content":{"441":{}}}],["1405",{"_index":2869,"title":{"630":{}},"content":{}}],["15",{"_index":1984,"title":{},"content":{"372":{}}}],["15.5",{"_index":2332,"title":{},"content":{"427":{},"428":{}}}],["16",{"_index":770,"title":{},"content":{"213":{},"214":{},"225":{},"579":{},"580":{},"581":{},"582":{},"583":{},"584":{},"585":{}}}],["1622801400",{"_index":1754,"title":{},"content":{"343":{}}}],["1674564088",{"_index":2170,"title":{},"content":{"407":{}}}],["1676332800",{"_index":2632,"title":{},"content":{"534":{}}}],["1677493444",{"_index":2624,"title":{},"content":{"527":{}}}],["1677598185",{"_index":2168,"title":{},"content":{"407":{}}}],["1689857160",{"_index":1893,"title":{},"content":{"368":{}}}],["1693519200",{"_index":2643,"title":{},"content":{"537":{}}}],["1693605600",{"_index":2644,"title":{},"content":{"537":{}}}],["1694728800",{"_index":1974,"title":{},"content":{"372":{}}}],["16byte",{"_index":782,"title":{},"content":{"213":{},"214":{}}}],["18",{"_index":2930,"title":{"757":{}},"content":{"649":{},"753":{},"757":{},"758":{}}}],["180",{"_index":3765,"title":{},"content":{"882":{}}}],["181812.87",{"_index":2296,"title":{},"content":{"438":{}}}],["19",{"_index":3415,"title":{"758":{}},"content":{"753":{},"758":{}}}],["197",{"_index":3025,"title":{},"content":{"660":{}}}],["1:1",{"_index":2927,"title":{},"content":{"647":{}}}],["1\\ncondit",{"_index":2352,"title":{},"content":{"448":{}}}],["1e731fb84d0a094c6273fffed68147c381a273c83868cdeb9b81c7ec790c6d38",{"_index":732,"title":{},"content":{"212":{}}}],["1fb2ha",{"_index":3589,"title":{},"content":{"796":{}}}],["1mb",{"_index":3508,"title":{},"content":{"788":{}}}],["1s",{"_index":1164,"title":{},"content":{"251":{}}}],["1st",{"_index":960,"title":{},"content":{"224":{},"316":{},"395":{},"404":{},"747":{},"759":{},"944":{}}}],["2",{"_index":621,"title":{"805":{},"833":{},"895":{},"899":{},"908":{},"911":{}},"content":{"209":{},"211":{},"214":{},"228":{},"229":{},"232":{},"267":{},"321":{},"350":{},"364":{},"370":{},"371":{},"372":{},"382":{},"390":{},"394":{},"395":{},"396":{},"403":{},"406":{},"407":{},"408":{},"409":{},"410":{},"441":{},"443":{},"445":{},"472":{},"481":{},"486":{},"490":{},"497":{},"514":{},"556":{},"559":{},"579":{},"580":{},"581":{},"582":{},"583":{},"584":{},"585":{},"586":{},"587":{},"588":{},"615":{},"631":{},"645":{},"655":{},"656":{},"658":{},"678":{},"756":{},"758":{},"759":{},"760":{},"788":{},"826":{},"838":{},"878":{},"882":{},"883":{},"939":{},"940":{},"951":{}}}],["2.0",{"_index":2037,"title":{},"content":{"390":{},"425":{},"759":{},"959":{}}}],["2.1",{"_index":2554,"title":{},"content":{"525":{}}}],["2.5",{"_index":3756,"title":{},"content":{"878":{}}}],["2.58933391",{"_index":3618,"title":{},"content":{"826":{}}}],["2.o",{"_index":3105,"title":{},"content":{"679":{}}}],["20",{"_index":1440,"title":{"577":{},"643":{}},"content":{"291":{},"574":{},"575":{},"576":{},"577":{},"578":{},"579":{},"580":{},"581":{},"582":{},"583":{},"584":{},"585":{},"645":{}}}],["200",{"_index":1967,"title":{},"content":{"372":{},"472":{},"473":{},"788":{}}}],["2022",{"_index":2912,"title":{},"content":{"645":{},"949":{}}}],["2023",{"_index":1982,"title":{},"content":{"372":{}}}],["2024",{"_index":2913,"title":{},"content":{"645":{}}}],["2026",{"_index":3750,"title":{},"content":{"878":{}}}],["2048",{"_index":3964,"title":{},"content":{"950":{}}}],["21st",{"_index":1441,"title":{},"content":{"291":{}}}],["22.5",{"_index":3758,"title":{},"content":{"878":{}}}],["22_500_000",{"_index":3877,"title":{},"content":{"939":{}}}],["23",{"_index":2635,"title":{},"content":{"535":{}}}],["24",{"_index":2853,"title":{},"content":{"624":{},"639":{},"641":{},"655":{},"901":{},"947":{},"950":{}}}],["24h",{"_index":2902,"title":{"639":{}},"content":{}}],["25",{"_index":1985,"title":{},"content":{"372":{}}}],["25/07/2024",{"_index":3762,"title":{},"content":{"880":{}}}],["255",{"_index":3383,"title":{},"content":{"738":{}}}],["255121",{"_index":3580,"title":{},"content":{"796":{}}}],["256",{"_index":1127,"title":{},"content":{"246":{},"669":{},"738":{},"952":{}}}],["256kb",{"_index":2421,"title":{},"content":{"472":{}}}],["25°c",{"_index":1954,"title":{"372":{}},"content":{}}],["2^31",{"_index":459,"title":{},"content":{"165":{}}}],["2nd",{"_index":1608,"title":{},"content":{"316":{},"395":{}}}],["3",{"_index":526,"title":{"834":{}},"content":{"204":{},"211":{},"213":{},"214":{},"229":{},"232":{},"275":{},"320":{},"381":{},"390":{},"395":{},"403":{},"490":{},"522":{},"525":{},"557":{},"568":{},"569":{},"570":{},"571":{},"572":{},"573":{},"579":{},"580":{},"581":{},"582":{},"583":{},"584":{},"585":{},"595":{},"596":{},"597":{},"598":{},"599":{},"600":{},"610":{},"631":{},"635":{},"655":{},"656":{},"658":{},"747":{},"756":{},"796":{},"808":{},"826":{},"878":{},"882":{},"883":{},"887":{},"905":{},"939":{},"940":{},"944":{}}}],["3,2,2,1",{"_index":2508,"title":{},"content":{"492":{}}}],["3,4",{"_index":2476,"title":{},"content":{"485":{}}}],["3.24",{"_index":4000,"title":{},"content":{"955":{}}}],["3.5",{"_index":4001,"title":{},"content":{"955":{}}}],["3.53553390",{"_index":2550,"title":{},"content":{"524":{}}}],["3.6",{"_index":3160,"title":{},"content":{"687":{}}}],["30",{"_index":3591,"title":{},"content":{"796":{},"882":{}}}],["3000",{"_index":2926,"title":{"647":{}},"content":{"647":{}}}],["300000000",{"_index":3428,"title":{},"content":{"756":{}}}],["31",{"_index":2636,"title":{},"content":{"535":{}}}],["31536000",{"_index":3910,"title":{},"content":{"944":{}}}],["32",{"_index":735,"title":{},"content":{"212":{},"213":{},"214":{},"224":{},"225":{},"269":{},"314":{},"579":{},"580":{},"581":{},"582":{},"583":{},"584":{},"585":{},"952":{}}}],["32byte",{"_index":780,"title":{},"content":{"213":{},"214":{}}}],["32bytesinsid",{"_index":772,"title":{},"content":{"213":{},"214":{}}}],["33",{"_index":1569,"title":{},"content":{"314":{}}}],["34",{"_index":822,"title":{},"content":{"214":{}}}],["35040",{"_index":3921,"title":{},"content":{"945":{}}}],["3600",{"_index":3901,"title":{},"content":{"943":{},"944":{}}}],["365",{"_index":2906,"title":{},"content":{"639":{},"882":{}}}],["374c7527733556",{"_index":2387,"title":{},"content":{"462":{}}}],["3c21ef708bf11b4232",{"_index":2628,"title":{},"content":{"529":{}}}],["3mb",{"_index":3571,"title":{},"content":{"796":{}}}],["3rd",{"_index":690,"title":{},"content":{"212":{},"395":{}}}],["3s",{"_index":1161,"title":{},"content":{"251":{}}}],["4",{"_index":661,"title":{},"content":{"211":{},"213":{},"214":{},"218":{},"219":{},"227":{},"229":{},"232":{},"314":{},"382":{},"451":{},"482":{},"524":{},"557":{},"595":{},"596":{},"597":{},"598":{},"599":{},"600":{},"631":{},"655":{},"658":{},"724":{},"878":{},"939":{},"940":{},"998":{}}}],["4,5,6",{"_index":2254,"title":{},"content":{"415":{}}}],["4.05902597",{"_index":2326,"title":{},"content":{"442":{}}}],["4.md",{"_index":4048,"title":{},"content":{"998":{}}}],["4000",{"_index":1986,"title":{},"content":{"372":{}}}],["41.591",{"_index":1980,"title":{},"content":{"372":{}}}],["410",{"_index":3597,"title":{},"content":{"799":{}}}],["4317.35583398",{"_index":3917,"title":{},"content":{"944":{}}}],["4317.355833989885",{"_index":3914,"title":{},"content":{"944":{}}}],["45",{"_index":3757,"title":{},"content":{"878":{}}}],["456",{"_index":2578,"title":{},"content":{"507":{}}}],["45_000_000",{"_index":3876,"title":{},"content":{"939":{},"944":{}}}],["4756.5401",{"_index":2300,"title":{},"content":{"438":{}}}],["4:15:30",{"_index":4054,"title":{},"content":{"1000":{}}}],["4th",{"_index":697,"title":{},"content":{"212":{}}}],["5",{"_index":1664,"title":{},"content":{"321":{},"514":{},"568":{},"569":{},"570":{},"571":{},"572":{},"573":{},"655":{},"687":{},"894":{},"940":{}}}],["5/month",{"_index":3507,"title":{},"content":{"788":{}}}],["50/50",{"_index":1990,"title":{},"content":{"372":{}}}],["500",{"_index":3510,"title":{},"content":{"788":{}}}],["51",{"_index":3167,"title":{},"content":{"687":{}}}],["512",{"_index":3155,"title":{},"content":{"685":{}}}],["5136.986301369863",{"_index":3911,"title":{},"content":{"944":{}}}],["52e77c79bea0f84e2d9c40356932fb0dd31688c23d6b6e9ac99d2869dc407692",{"_index":730,"title":{},"content":{"212":{}}}],["539",{"_index":3912,"title":{},"content":{"944":{}}}],["59",{"_index":2634,"title":{},"content":{"535":{}}}],["592ac76afa",{"_index":2610,"title":{},"content":{"518":{}}}],["5s",{"_index":1801,"title":{},"content":{"350":{}}}],["5th",{"_index":699,"title":{},"content":{"212":{}}}],["6",{"_index":2638,"title":{},"content":{"535":{},"655":{},"755":{},"882":{},"883":{},"940":{},"951":{}}}],["6/20/2024",{"_index":4053,"title":{},"content":{"1000":{}}}],["64",{"_index":778,"title":{},"content":{"213":{},"214":{},"950":{}}}],["650",{"_index":681,"title":{},"content":{"212":{},"223":{},"685":{}}}],["66",{"_index":824,"title":{},"content":{"214":{},"687":{}}}],["68",{"_index":2712,"title":{},"content":{"555":{},"556":{},"557":{}}}],["68420",{"_index":3575,"title":{},"content":{"796":{}}}],["68656c6c6f",{"_index":2612,"title":{},"content":{"518":{}}}],["69.75757441",{"_index":2543,"title":{},"content":{"522":{}}}],["6th",{"_index":702,"title":{},"content":{"212":{}}}],["7",{"_index":1568,"title":{},"content":{"314":{},"567":{},"655":{},"842":{},"882":{},"883":{},"940":{},"944":{}}}],["730",{"_index":3766,"title":{},"content":{"882":{}}}],["7330d2b39ca35ea",{"_index":2378,"title":{},"content":{"459":{}}}],["754",{"_index":452,"title":{},"content":{"161":{}}}],["7th",{"_index":703,"title":{},"content":{"212":{}}}],["7z",{"_index":3601,"title":{},"content":{"808":{}}}],["8",{"_index":466,"title":{"649":{}},"content":{"186":{},"214":{},"351":{},"390":{},"420":{},"522":{},"523":{},"535":{},"537":{},"556":{},"649":{},"655":{},"693":{},"755":{},"756":{},"757":{},"758":{},"799":{}}}],["8.75",{"_index":3760,"title":{},"content":{"878":{}}}],["8.90800012",{"_index":2323,"title":{},"content":{"442":{}}}],["8_750_000",{"_index":3879,"title":{},"content":{"939":{}}}],["8am",{"_index":2215,"title":{},"content":{"420":{},"535":{}}}],["9",{"_index":2565,"title":{},"content":{"505":{},"506":{},"507":{},"537":{},"655":{},"687":{},"878":{}}}],["9.2795",{"_index":1981,"title":{},"content":{"372":{}}}],["90",{"_index":3028,"title":{},"content":{"660":{},"678":{},"687":{},"787":{},"882":{}}}],["901a365ff22b895",{"_index":2388,"title":{},"content":{"462":{}}}],["99.99999999",{"_index":3023,"title":{},"content":{"660":{}}}],["9f",{"_index":3370,"title":{},"content":{"742":{}}}],["_",{"_index":2006,"title":{},"content":{"386":{}}}],["_dnslink",{"_index":3549,"title":{},"content":{"801":{},"802":{}}}],["_dnslink.example.com",{"_index":3545,"title":{},"content":{"801":{}}}],["_preferencesbox.h",{"_index":2974,"title":{},"content":{"658":{}}}],["_preferencesbox.lock",{"_index":2975,"title":{},"content":{"658":{}}}],["_vaultbox.h",{"_index":2976,"title":{},"content":{"658":{}}}],["_vaultbox.lock",{"_index":2977,"title":{},"content":{"658":{}}}],["a0b1c2",{"_index":2581,"title":{},"content":{"507":{}}}],["a1",{"_index":3302,"title":{},"content":{"727":{},"728":{},"729":{}}}],["a3d7e45a0d9be5f",{"_index":2379,"title":{},"content":{"459":{}}}],["ab",{"_index":3869,"title":{},"content":{"935":{}}}],["abc",{"_index":2568,"title":{},"content":{"505":{}}}],["abc123f",{"_index":3576,"title":{},"content":{"796":{}}}],["abcdef0123456789",{"_index":3954,"title":{},"content":{"950":{}}}],["abdecoin_bal",{"_index":2320,"title":{},"content":{"442":{}}}],["abi",{"_index":2402,"title":{},"content":{"465":{}}}],["abi_decode/2",{"_index":2408,"title":{"467":{}},"content":{}}],["abi_encode/2",{"_index":2404,"title":{"466":{}},"content":{}}],["abil",{"_index":2714,"title":{},"content":{"559":{},"678":{},"690":{},"699":{},"701":{}}}],["abitrati",{"_index":2220,"title":{},"content":{"422":{}}}],["abouth",{"_index":2439,"title":{},"content":{"475":{}}}],["abov",{"_index":549,"title":{},"content":{"204":{},"213":{},"214":{},"224":{},"225":{},"268":{},"377":{},"393":{},"541":{},"542":{},"660":{},"757":{},"803":{},"853":{}}}],["abritrati",{"_index":2221,"title":{},"content":{"422":{}}}],["absenc",{"_index":2014,"title":{},"content":{"386":{}}}],["absolut",{"_index":3015,"title":{},"content":{"659":{}}}],["acc",{"_index":2080,"title":{},"content":{"397":{}}}],["accept",{"_index":556,"title":{},"content":{"204":{},"373":{},"406":{},"414":{},"448":{},"556":{},"655":{},"659":{},"757":{},"808":{},"809":{},"810":{},"811":{},"894":{},"907":{}}}],["access",{"_index":505,"title":{"234":{},"235":{},"587":{},"609":{},"634":{},"821":{},"830":{},"851":{},"866":{},"874":{}},"content":{"204":{},"220":{},"234":{},"235":{},"236":{},"237":{},"266":{},"281":{},"314":{},"343":{},"357":{},"359":{},"379":{},"393":{},"417":{},"560":{},"586":{},"587":{},"588":{},"609":{},"634":{},"638":{},"645":{},"659":{},"675":{},"681":{},"682":{},"683":{},"689":{},"696":{},"799":{},"805":{},"806":{},"811":{},"812":{},"827":{},"828":{},"830":{},"835":{},"837":{},"840":{},"845":{},"849":{},"850":{},"851":{},"863":{},"865":{},"871":{},"872":{},"874":{},"887":{},"894":{},"900":{},"905":{},"927":{},"946":{},"947":{},"950":{},"951":{}}}],["access//aeweb.archethic.net",{"_index":2743,"title":{},"content":{"589":{},"590":{}}}],["accommod",{"_index":3805,"title":{},"content":{"894":{},"898":{},"907":{}}}],["accompani",{"_index":3782,"title":{},"content":{"887":{},"901":{},"902":{}}}],["accord",{"_index":744,"title":{},"content":{"213":{},"214":{},"259":{},"299":{},"318":{},"331":{},"343":{},"373":{},"428":{},"466":{},"467":{},"658":{},"661":{},"682":{},"690":{},"692":{},"697":{},"701":{},"910":{},"930":{},"958":{}}}],["accordingli",{"_index":2428,"title":{},"content":{"472":{}}}],["account",{"_index":691,"title":{"218":{},"233":{},"237":{}},"content":{"212":{},"213":{},"218":{},"221":{},"223":{},"237":{},"255":{},"655":{},"656":{},"685":{},"779":{},"808":{},"809":{},"810":{},"811":{},"813":{},"877":{},"894":{},"895":{},"899":{},"908":{},"911":{},"947":{},"958":{},"959":{},"960":{},"965":{},"968":{},"970":{},"989":{},"991":{}}}],["accru",{"_index":3818,"title":{},"content":{"903":{}}}],["accumul",{"_index":1167,"title":{},"content":{"252":{},"891":{},"903":{}}}],["accur",{"_index":2337,"title":{},"content":{"427":{}}}],["achiev",{"_index":1022,"title":{},"content":{"254":{},"255":{},"316":{},"349":{},"678":{},"711":{},"731":{},"783":{},"819":{},"820":{},"878":{}}}],["acknowledg",{"_index":2864,"title":{},"content":{"627":{}}}],["acm",{"_index":3554,"title":{},"content":{"804":{}}}],["act",{"_index":478,"title":{},"content":{"198":{},"204":{},"472":{},"711":{},"796":{}}}],["action",{"_index":233,"title":{"378":{},"380":{},"533":{},"837":{},"891":{},"903":{}},"content":{"55":{},"180":{},"269":{},"282":{},"315":{},"342":{},"368":{},"369":{},"370":{},"371":{},"372":{},"373":{},"378":{},"379":{},"380":{},"381":{},"384":{},"397":{},"403":{},"408":{},"413":{},"414":{},"417":{},"419":{},"420":{},"423":{},"425":{},"427":{},"428":{},"532":{},"533":{},"534":{},"535":{},"536":{},"537":{},"538":{},"545":{},"548":{},"549":{},"560":{},"605":{},"622":{},"656":{},"658":{},"707":{},"794":{},"819":{},"820":{},"840":{},"891":{},"894":{},"903":{},"907":{},"910":{},"921":{},"941":{},"951":{},"952":{},"958":{}}}],["action'",{"_index":1864,"title":{},"content":{"374":{},"406":{},"408":{},"410":{},"820":{}}}],["actionrecipi",{"_index":155,"title":{},"content":{"40":{}}}],["activ",{"_index":2629,"title":{},"content":{"532":{},"631":{},"715":{},"877":{},"887":{},"901":{},"903":{},"923":{},"925":{},"929":{},"931":{},"952":{}}}],["actor",{"_index":3052,"title":{},"content":{"672":{},"678":{},"698":{},"699":{},"702":{},"727":{}}}],["actual",{"_index":2018,"title":{},"content":{"382":{},"387":{},"394":{},"399":{},"422":{},"480":{},"548":{},"702":{}}}],["ad",{"_index":586,"title":{"638":{},"852":{},"907":{}},"content":{"206":{},"212":{},"314":{},"315":{},"347":{},"386":{},"448":{},"736":{},"845":{},"865":{},"871":{},"874":{},"876":{},"899":{},"901":{},"903":{},"906":{},"907":{},"908":{},"913":{},"931":{},"953":{},"959":{},"960":{}}}],["adapt",{"_index":941,"title":{"667":{}},"content":{"223":{},"663":{},"670":{},"711":{},"728":{},"958":{}}}],["add",{"_index":664,"title":{"805":{},"897":{},"906":{}},"content":{"211":{},"238":{},"241":{},"246":{},"267":{},"322":{},"344":{},"347":{},"371":{},"375":{},"405":{},"425":{},"445":{},"449":{},"451":{},"453":{},"455":{},"532":{},"548":{},"670":{},"685":{},"696":{},"801":{},"802":{},"810":{},"814":{},"842":{},"843":{},"845":{},"848":{},"849":{},"861":{},"886":{},"887":{},"903":{},"907":{},"908":{},"931":{},"972":{},"974":{},"984":{},"987":{},"993":{},"996":{}}}],["add_ownership",{"_index":2244,"title":{},"content":{"425":{}}}],["add_ownership/1",{"_index":2363,"title":{"453":{}},"content":{"454":{}}}],["add_ownerships/1",{"_index":2371,"title":{"454":{}},"content":{}}],["add_recipi",{"_index":2247,"title":{},"content":{"425":{}}}],["add_recipient/1",{"_index":2372,"title":{"455":{}},"content":{}}],["add_recipients/1",{"_index":2374,"title":{"456":{}},"content":{"456":{}}}],["add_servic",{"_index":4029,"title":{"974":{}},"content":{}}],["add_token_transf",{"_index":2212,"title":{},"content":{"414":{},"425":{}}}],["add_token_transfer/1",{"_index":2357,"title":{"451":{}},"content":{"452":{}}}],["add_token_transfers/1",{"_index":2362,"title":{"452":{}},"content":{}}],["add_uco_transf",{"_index":2209,"title":{},"content":{"413":{},"425":{}}}],["add_uco_transfer/1",{"_index":2353,"title":{"449":{}},"content":{"450":{}}}],["add_uco_transfers/1",{"_index":2356,"title":{"450":{}},"content":{}}],["adddress",{"_index":2345,"title":{},"content":{"445":{}}}],["addit",{"_index":1540,"title":{"319":{},"908":{},"915":{}},"content":{"312":{},"622":{},"668":{},"672":{},"693":{},"697":{},"779":{},"786":{},"862":{},"865":{},"887":{},"894":{},"898":{},"899":{},"907":{},"908":{},"984":{},"987":{},"993":{},"996":{}}}],["addition",{"_index":3663,"title":{},"content":{"838":{},"887":{},"902":{}}}],["addr",{"_index":875,"title":{},"content":{"218":{}}}],["address",{"_index":104,"title":{"175":{},"213":{},"218":{},"233":{},"555":{},"605":{},"628":{},"656":{},"670":{},"825":{},"841":{}},"content":{"22":{},"23":{},"40":{},"41":{},"43":{},"44":{},"55":{},"61":{},"62":{},"64":{},"65":{},"70":{},"71":{},"73":{},"74":{},"76":{},"77":{},"79":{},"80":{},"82":{},"83":{},"88":{},"89":{},"91":{},"92":{},"98":{},"99":{},"101":{},"102":{},"105":{},"106":{},"117":{},"118":{},"119":{},"120":{},"121":{},"122":{},"123":{},"124":{},"135":{},"136":{},"137":{},"138":{},"139":{},"141":{},"142":{},"144":{},"145":{},"146":{},"173":{},"175":{},"198":{},"199":{},"201":{},"202":{},"209":{},"212":{},"213":{},"214":{},"218":{},"221":{},"223":{},"224":{},"233":{},"235":{},"236":{},"238":{},"241":{},"242":{},"243":{},"248":{},"258":{},"314":{},"315":{},"317":{},"320":{},"322":{},"354":{},"369":{},"370":{},"371":{},"375":{},"382":{},"387":{},"407":{},"409":{},"413":{},"414":{},"422":{},"425":{},"430":{},"431":{},"433":{},"434":{},"435":{},"436":{},"437":{},"438":{},"439":{},"441":{},"442":{},"443":{},"449":{},"451":{},"455":{},"529":{},"532":{},"546":{},"547":{},"555":{},"556":{},"557":{},"558":{},"564":{},"628":{},"630":{},"656":{},"662":{},"665":{},"670":{},"685":{},"708":{},"722":{},"732":{},"733":{},"739":{},"742":{},"743":{},"745":{},"759":{},"778":{},"779":{},"796":{},"797":{},"800":{},"801":{},"819":{},"825":{},"832":{},"834":{},"838":{},"840":{},"841":{},"843":{},"844":{},"887":{},"895":{},"899":{},"902":{},"908":{},"911":{},"947":{},"952":{},"960":{},"970":{},"973":{},"976":{},"979":{},"986":{},"988":{},"991":{},"994":{}}}],["address'",{"_index":1579,"title":{},"content":{"315":{}}}],["address_index",{"_index":707,"title":{},"content":{"212":{},"213":{},"214":{},"218":{},"219":{}}}],["address_len",{"_index":809,"title":{},"content":{"213":{},"214":{}}}],["addressit",{"_index":810,"title":{},"content":{"213":{}}}],["addresslength",{"_index":820,"title":{},"content":{"214":{}}}],["adher",{"_index":2772,"title":{},"content":{"593":{},"869":{},"870":{}}}],["adjust",{"_index":3771,"title":{},"content":{"883":{},"894":{},"907":{}}}],["admin",{"_index":1256,"title":{},"content":{"269":{}}}],["administr",{"_index":1393,"title":{},"content":{"282":{},"789":{},"801":{}}}],["adopt",{"_index":1844,"title":{},"content":{"373":{},"650":{},"686":{},"690":{},"696":{},"783":{},"870":{}}}],["adpu",{"_index":869,"title":{"215":{}},"content":{}}],["advanc",{"_index":3845,"title":{},"content":{"925":{},"937":{}}}],["advantag",{"_index":3117,"title":{},"content":{"680":{},"821":{},"866":{},"871":{}}}],["advis",{"_index":2961,"title":{},"content":{"658":{}}}],["ae",{"_index":902,"title":{},"content":{"225":{},"230":{},"235":{},"236":{},"680":{},"683":{}}}],["aebnb",{"_index":2813,"title":{},"content":{"608":{}}}],["aebridg",{"_index":2732,"title":{"575":{},"597":{},"606":{},"815":{},"827":{}},"content":{"574":{},"575":{},"576":{},"577":{},"578":{},"595":{},"596":{},"597":{},"598":{},"599":{},"600":{},"821":{},"828":{}}}],["aeeth",{"_index":2811,"title":{"905":{}},"content":{"608":{},"888":{}}}],["aeeth/uco",{"_index":3761,"title":{},"content":{"878":{},"885":{},"905":{}}}],["aehost",{"_index":2731,"title":{"574":{},"596":{},"601":{},"784":{}},"content":{"574":{},"575":{},"576":{},"577":{},"578":{},"595":{},"596":{},"597":{},"598":{},"599":{},"600":{}}}],["aeip",{"_index":2710,"title":{"757":{},"758":{}},"content":{"553":{},"557":{},"691":{},"753":{},"757":{},"758":{},"799":{},"998":{}}}],["aemat",{"_index":2812,"title":{},"content":{"608":{}}}],["aeronaut",{"_index":3036,"title":{},"content":{"660":{}}}],["aerospik",{"_index":1492,"title":{},"content":{"309":{}}}],["aes256",{"_index":921,"title":{},"content":{"221":{},"225":{},"671":{}}}],["aes256(mode=cbc",{"_index":988,"title":{},"content":{"225":{}}}],["aes256(mode=ctr",{"_index":979,"title":{},"content":{"225":{}}}],["aes\\_key",{"_index":989,"title":{},"content":{"225":{}}}],["aes_key",{"_index":924,"title":{},"content":{"221":{},"225":{}}}],["aes_key_iv_tag",{"_index":774,"title":{},"content":{"213":{},"214":{}}}],["aeswap",{"_index":2733,"title":{"576":{},"599":{},"632":{},"634":{},"863":{},"865":{},"871":{},"913":{},"931":{}},"content":{"574":{},"575":{},"576":{},"577":{},"578":{},"595":{},"596":{},"597":{},"598":{},"599":{},"600":{},"634":{},"860":{},"861":{},"862":{},"863":{},"865":{},"866":{},"869":{},"870":{},"871":{},"872":{},"876":{},"877":{},"887":{},"891":{},"893":{},"898":{},"900":{},"903":{},"921":{},"922":{},"923":{},"924":{},"925":{},"926":{},"927":{},"929":{},"930":{},"931":{},"932":{},"934":{},"937":{}}}],["aeswap'",{"_index":3727,"title":{},"content":{"877":{},"926":{},"927":{},"931":{},"933":{},"937":{}}}],["aewallet",{"_index":2735,"title":{"578":{},"600":{},"653":{},"946":{}},"content":{"574":{},"575":{},"576":{},"577":{},"578":{},"595":{},"596":{},"597":{},"598":{},"599":{},"600":{},"635":{},"962":{},"968":{},"980":{},"989":{}}}],["aeweb",{"_index":1838,"title":{"590":{},"605":{},"795":{},"800":{},"806":{},"813":{},"824":{},"825":{},"826":{}},"content":{"366":{},"589":{},"590":{},"604":{},"605":{},"774":{},"786":{},"789":{},"794":{},"795":{},"796":{},"797":{},"798":{},"803":{},"805":{},"806":{},"808":{},"813":{},"814":{},"824":{},"825":{},"826":{}}}],["aeweb'",{"_index":3530,"title":{},"content":{"794":{}}}],["aewebvers",{"_index":3572,"title":{},"content":{"796":{},"799":{}}}],["af28c3d5b3828ad3f8682f1b1d14a8507b829f65f7be6c50427a6019ccb6801c",{"_index":2240,"title":{},"content":{"425":{}}}],["affect",{"_index":3796,"title":{},"content":{"890":{},"891":{},"919":{}}}],["afterward",{"_index":2958,"title":{},"content":{"658":{}}}],["again",{"_index":1162,"title":{},"content":{"251":{},"321":{},"346":{},"797":{},"952":{}}}],["against",{"_index":2962,"title":{},"content":{"658":{},"678":{},"865":{},"920":{},"921":{},"932":{},"936":{}}}],["aggreg",{"_index":76,"title":{"252":{}},"content":{"16":{},"116":{},"248":{},"252":{},"319":{},"338":{},"342":{},"363":{},"553":{},"680":{},"750":{},"766":{},"926":{}}}],["ago",{"_index":3770,"title":{},"content":{"883":{}}}],["agpl",{"_index":3297,"title":{},"content":{"725":{}}}],["agre",{"_index":3607,"title":{},"content":{"809":{}}}],["agreement",{"_index":3038,"title":{},"content":{"660":{}}}],["agvsbg8gd29ybgq",{"_index":3584,"title":{},"content":{"796":{}}}],["aim",{"_index":911,"title":{},"content":{"220":{},"591":{},"650":{},"688":{},"702":{},"704":{},"724":{},"821":{},"866":{},"910":{},"950":{}}}],["aka",{"_index":887,"title":{},"content":{"220":{},"234":{},"314":{},"323":{},"586":{},"587":{},"588":{},"662":{},"740":{}}}],["al",{"_index":1111,"title":{},"content":{"241":{}}}],["alca",{"_index":550,"title":{},"content":{"204":{},"205":{},"206":{}}}],["alert",{"_index":3834,"title":{},"content":{"894":{}}}],["algo",{"_index":1012,"title":{},"content":{"233":{},"459":{},"462":{},"982":{}}}],["algorithm",{"_index":415,"title":{"328":{},"671":{}},"content":{"119":{},"163":{},"173":{},"175":{},"196":{},"225":{},"233":{},"264":{},"269":{},"304":{},"315":{},"323":{},"327":{},"328":{},"330":{},"342":{},"343":{},"363":{},"364":{},"459":{},"462":{},"464":{},"659":{},"660":{},"661":{},"662":{},"667":{},"668":{},"669":{},"670":{},"685":{},"690":{},"692":{},"706":{},"720":{},"739":{},"779":{},"841":{},"869":{},"932":{}}}],["alic",{"_index":2466,"title":{},"content":{"483":{},"515":{},"594":{},"605":{}}}],["align",{"_index":3807,"title":{},"content":{"895":{},"899":{},"908":{},"911":{}}}],["alloc",{"_index":106,"title":{},"content":{"22":{},"82":{},"91":{},"101":{},"122":{},"146":{},"259":{},"878":{},"894":{},"898":{},"907":{}}}],["allow",{"_index":889,"title":{},"content":{"234":{},"350":{},"377":{},"381":{},"472":{},"532":{},"547":{},"559":{},"586":{},"587":{},"588":{},"608":{},"619":{},"645":{},"646":{},"659":{},"666":{},"672":{},"675":{},"681":{},"682":{},"684":{},"687":{},"688":{},"690":{},"697":{},"701":{},"717":{},"724":{},"727":{},"728":{},"751":{},"755":{},"761":{},"778":{},"786":{},"794":{},"796":{},"798":{},"805":{},"808":{},"809":{},"810":{},"811":{},"815":{},"817":{},"840":{},"841":{},"842":{},"843":{},"845":{},"846":{},"847":{},"849":{},"860":{},"864":{},"870":{},"884":{},"886":{},"887":{},"890":{},"891":{},"894":{},"895":{},"899":{},"902":{},"903":{},"905":{},"907":{},"908":{},"909":{},"910":{},"911":{},"918":{},"934":{},"949":{},"950":{},"952":{},"957":{},"959":{},"972":{},"998":{},"1000":{}}}],["allow_mint",{"_index":3424,"title":{},"content":{"755":{}}}],["alogrithm",{"_index":3091,"title":{},"content":{"678":{}}}],["alon",{"_index":3083,"title":{},"content":{"677":{}}}],["along",{"_index":1201,"title":{},"content":{"264":{},"323":{},"334":{},"347":{},"358":{},"419":{},"670":{},"680":{},"690":{},"865":{},"869":{},"891":{},"903":{}}}],["alreadi",{"_index":650,"title":{},"content":{"211":{},"334":{},"371":{},"518":{},"808":{},"878":{},"898":{},"956":{}}}],["alter",{"_index":3831,"title":{},"content":{"894":{}}}],["although",{"_index":3961,"title":{},"content":{"950":{}}}],["alway",{"_index":2349,"title":{},"content":{"447":{},"461":{},"509":{},"527":{},"546":{},"560":{},"756":{},"765":{},"799":{},"838":{}}}],["amang",{"_index":1497,"title":{},"content":{"309":{}}}],["amazon",{"_index":3145,"title":{},"content":{"684":{}}}],["amd",{"_index":1463,"title":{},"content":{"299":{}}}],["amm",{"_index":3687,"title":{"870":{},"914":{},"930":{},"934":{}},"content":{"860":{},"861":{},"863":{},"869":{},"870":{},"913":{},"914":{},"929":{},"930":{},"934":{},"937":{}}}],["among",{"_index":1576,"title":{},"content":{"315":{}}}],["amort",{"_index":1794,"title":{},"content":{"350":{}}}],["amount",{"_index":100,"title":{},"content":{"22":{},"61":{},"70":{},"82":{},"91":{},"98":{},"101":{},"122":{},"146":{},"214":{},"239":{},"242":{},"346":{},"350":{},"369":{},"372":{},"382":{},"413":{},"414":{},"422":{},"425":{},"427":{},"428":{},"439":{},"449":{},"451":{},"556":{},"557":{},"638":{},"758":{},"759":{},"764":{},"796":{},"832":{},"834":{},"838":{},"843":{},"877":{},"887":{},"890":{},"894":{},"895":{},"898":{},"907":{},"910":{},"917":{},"922":{},"935":{},"942":{}}}],["amount_send",{"_index":1905,"title":{},"content":{"369":{},"414":{}}}],["an",{"_index":3487,"title":{},"content":{"783":{}}}],["analys",{"_index":3489,"title":{},"content":{"783":{}}}],["analysi",{"_index":3342,"title":{},"content":{"728":{},"837":{},"869":{},"877":{}}}],["analyt",{"_index":3786,"title":{},"content":{"887":{},"902":{}}}],["analyz",{"_index":1483,"title":{"629":{}},"content":{"309":{},"796":{}}}],["anchor",{"_index":1183,"title":{},"content":{"260":{}}}],["and/or",{"_index":3560,"title":{},"content":{"804":{}}}],["android",{"_index":2881,"title":{},"content":{"635":{},"949":{},"956":{},"959":{}}}],["announc",{"_index":3265,"title":{},"content":{"717":{},"778":{}}}],["annual",{"_index":2903,"title":{},"content":{"639":{},"877":{},"881":{},"890":{},"901":{}}}],["anoth",{"_index":2082,"title":{},"content":{"397":{},"403":{},"485":{},"678":{},"716":{},"758":{},"826":{},"846":{},"847":{},"860":{},"899":{},"903":{},"921":{},"941":{},"949":{},"950":{},"952":{}}}],["answer",{"_index":3024,"title":{},"content":{"660":{}}}],["anyon",{"_index":2746,"title":{},"content":{"591":{},"655":{},"675":{},"791":{}}}],["anyth",{"_index":947,"title":{},"content":{"223":{},"382":{},"389":{},"448":{},"477":{},"541":{},"542":{},"558":{}}}],["apdu",{"_index":638,"title":{"216":{}},"content":{"211":{},"214":{},"217":{},"218":{},"219":{}}}],["api",{"_index":623,"title":{"210":{},"569":{}},"content":{"264":{},"315":{},"398":{},"472":{},"568":{},"569":{},"570":{},"571":{},"572":{},"573":{},"759":{},"793":{},"797":{},"931":{},"951":{},"952":{},"959":{},"998":{}}}],["api.open",{"_index":1964,"title":{},"content":{"372":{}}}],["app",{"_index":540,"title":{"948":{}},"content":{"204":{},"205":{},"206":{},"210":{},"232":{},"655":{},"789":{},"791":{},"826":{},"931":{},"949":{},"952":{}}}],["appear",{"_index":407,"title":{},"content":{"119":{},"163":{},"173":{},"175":{},"196":{},"542":{},"655":{},"656":{},"808":{},"832":{},"834":{}}}],["append",{"_index":863,"title":{},"content":{"214":{},"267":{},"310":{},"311":{},"312":{},"314":{},"315":{},"486":{},"487":{}}}],["append/2",{"_index":2480,"title":{"486":{}},"content":{}}],["appendix",{"_index":2103,"title":{"382":{}},"content":{"379":{},"406":{},"408":{},"410":{},"434":{},"436":{}}}],["appli",{"_index":849,"title":{},"content":{"214":{},"315":{},"321":{},"322":{},"406":{},"522":{},"690":{},"693":{},"697":{},"698":{},"701":{},"702":{},"705":{},"767":{},"768":{},"844":{},"845":{}}}],["applic",{"_index":531,"title":{"210":{},"688":{},"829":{},"873":{},"951":{}},"content":{"204":{},"211":{},"235":{},"236":{},"255":{},"279":{},"312":{},"316":{},"320":{},"322":{},"355":{},"373":{},"377":{},"595":{},"596":{},"597":{},"598":{},"599":{},"600":{},"612":{},"613":{},"627":{},"629":{},"650":{},"655":{},"658":{},"682":{},"688":{},"698":{},"724":{},"783":{},"789":{},"793":{},"806":{},"809":{},"810":{},"811":{},"813":{},"821":{},"827":{},"829":{},"839":{},"840":{},"866":{},"871":{},"873":{},"887":{},"926":{},"927":{},"931":{},"949":{},"951":{},"952":{},"956":{},"957":{},"959":{},"998":{}}}],["application'",{"_index":3660,"title":{},"content":{"835":{}}}],["application(i",{"_index":958,"title":{},"content":{"224":{}}}],["appnam",{"_index":662,"title":{},"content":{"211":{}}}],["approach",{"_index":1528,"title":{"312":{}},"content":{"311":{},"314":{},"316":{},"349":{},"680":{},"713":{},"801":{},"818":{},"925":{},"949":{}}}],["appropri",{"_index":3641,"title":{},"content":{"827":{},"871":{}}}],["approv",{"_index":130,"title":{"340":{}},"content":{"25":{},"214":{},"269":{},"320":{},"340":{},"702":{},"767":{},"768":{},"895":{},"899":{},"908":{},"911":{}}}],["approx",{"_index":3399,"title":{},"content":{"747":{}}}],["approxim",{"_index":2625,"title":{},"content":{"527":{}}}],["appup",{"_index":1649,"title":{},"content":{"320":{}}}],["appvers",{"_index":654,"title":{},"content":{"211":{}}}],["appversion[0",{"_index":660,"title":{},"content":{"211":{}}}],["appwallet.h",{"_index":2966,"title":{},"content":{"658":{}}}],["appwallet.lock",{"_index":2967,"title":{},"content":{"658":{}}}],["apr",{"_index":2901,"title":{"639":{},"875":{},"877":{}},"content":{"877":{},"878":{},"881":{},"887":{},"890":{},"891":{},"901":{},"904":{},"905":{}}}],["arbitrageur",{"_index":3852,"title":{},"content":{"926":{}}}],["arbitrari",{"_index":1988,"title":{},"content":{"372":{}}}],["arch",{"_index":1708,"title":{"659":{}},"content":{"327":{},"331":{},"374":{},"650":{},"652":{},"659":{},"660":{},"687":{},"705":{},"727":{},"787":{}}}],["arch_address",{"_index":879,"title":{},"content":{"218":{},"221":{}}}],["archet",{"_index":3880,"title":{},"content":{"940":{}}}],["archeth",{"_index":279,"title":{"213":{},"218":{},"595":{},"596":{},"597":{},"599":{},"600":{},"603":{},"605":{},"608":{},"609":{},"611":{},"612":{},"621":{},"622":{},"625":{},"630":{},"634":{},"635":{},"638":{},"642":{},"645":{},"650":{},"655":{},"656":{},"658":{},"678":{},"680":{},"725":{},"784":{},"815":{},"819":{},"820":{},"854":{},"856":{},"857":{},"946":{},"953":{}},"content":{"73":{},"125":{},"130":{},"140":{},"143":{},"149":{},"163":{},"196":{},"204":{},"205":{},"206":{},"210":{},"213":{},"214":{},"218":{},"220":{},"221":{},"223":{},"225":{},"233":{},"234":{},"237":{},"245":{},"253":{},"254":{},"258":{},"279":{},"287":{},"291":{},"304":{},"308":{},"320":{},"321":{},"322":{},"341":{},"346":{},"347":{},"349":{},"351":{},"354":{},"361":{},"365":{},"366":{},"373":{},"374":{},"375":{},"376":{},"377":{},"387":{},"396":{},"419":{},"423":{},"428":{},"472":{},"546":{},"562":{},"566":{},"586":{},"587":{},"588":{},"591":{},"592":{},"595":{},"596":{},"597":{},"598":{},"599":{},"600":{},"605":{},"608":{},"611":{},"612":{},"614":{},"621":{},"622":{},"625":{},"627":{},"630":{},"636":{},"637":{},"638":{},"642":{},"645":{},"649":{},"650":{},"652":{},"655":{},"656":{},"658":{},"659":{},"660":{},"663":{},"665":{},"667":{},"670":{},"672":{},"674":{},"678":{},"679":{},"680":{},"684":{},"685":{},"686":{},"687":{},"689":{},"690":{},"691":{},"692":{},"697":{},"698":{},"701":{},"702":{},"704":{},"707":{},"711":{},"715":{},"717":{},"719":{},"720":{},"724":{},"730":{},"734":{},"737":{},"738":{},"740":{},"741":{},"742":{},"751":{},"752":{},"754":{},"759":{},"777":{},"782":{},"784":{},"787":{},"788":{},"789":{},"794":{},"795":{},"797":{},"801":{},"803":{},"806":{},"808":{},"809":{},"810":{},"811":{},"813":{},"815":{},"818":{},"819":{},"820":{},"824":{},"827":{},"829":{},"830":{},"831":{},"832":{},"834":{},"837":{},"839":{},"840":{},"854":{},"856":{},"858":{},"863":{},"865":{},"871":{},"873":{},"876":{},"893":{},"894":{},"898":{},"899":{},"901":{},"905":{},"907":{},"908":{},"913":{},"924":{},"926":{},"927":{},"929":{},"931":{},"933":{},"937":{},"946":{},"947":{},"949":{},"950":{},"952":{},"953":{},"957":{},"959":{},"998":{}}}],["archethic'",{"_index":535,"title":{"220":{},"234":{},"308":{},"587":{},"588":{},"598":{},"618":{},"619":{},"715":{},"818":{},"839":{}},"content":{"204":{},"205":{},"206":{},"223":{},"328":{},"586":{},"587":{},"588":{},"595":{},"596":{},"597":{},"598":{},"599":{},"600":{},"608":{},"618":{},"619":{},"621":{},"650":{},"674":{},"681":{},"753":{},"817":{},"818":{},"819":{},"820":{},"827":{},"871":{}}}],["archethic.net",{"_index":560,"title":{},"content":{"204":{}}}],["archethic.oraclechain",{"_index":1783,"title":{},"content":{"347":{}}}],["archethic.oraclechain.service.mynewservic",{"_index":1786,"title":{},"content":{"347":{}}}],["archethic.oraclechain.services.ucopric",{"_index":1784,"title":{},"content":{"347":{}}}],["archethic_derive_with_seed_key",{"_index":718,"title":{},"content":{"212":{}}}],["archethic_lib_dart",{"_index":3998,"title":{},"content":{"953":{}}}],["archethic_nod",{"_index":1660,"title":{},"content":{"321":{},"322":{}}}],["archethicindex",{"_index":1429,"title":{"287":{},"303":{}},"content":{"287":{},"290":{},"291":{},"299":{},"301":{},"303":{}}}],["archiv",{"_index":1887,"title":{},"content":{"377":{},"808":{},"809":{},"814":{}}}],["area",{"_index":2655,"title":{},"content":{"539":{},"701":{}}}],["areaes_key",{"_index":779,"title":{},"content":{"213":{},"214":{}}}],["aren't",{"_index":2081,"title":{},"content":{"397":{},"746":{}}}],["arg",{"_index":234,"title":{},"content":{"55":{},"180":{},"370":{},"445":{}}}],["arg1",{"_index":2093,"title":{},"content":{"399":{}}}],["arg2",{"_index":2090,"title":{},"content":{"399":{}}}],["argument",{"_index":5,"title":{"3":{},"8":{},"106":{},"115":{},"118":{},"121":{},"124":{},"129":{},"136":{},"139":{},"142":{},"145":{},"148":{},"151":{},"199":{},"202":{},"380":{}},"content":{"2":{},"7":{},"380":{},"397":{},"404":{},"405":{},"415":{},"416":{},"445":{},"458":{},"460":{},"461":{},"533":{},"549":{}}}],["arithemet",{"_index":1640,"title":{},"content":{"307":{}}}],["arithmet",{"_index":2036,"title":{"390":{}},"content":{"390":{}}}],["ariti",{"_index":2256,"title":{"416":{}},"content":{"416":{}}}],["around",{"_index":1750,"title":{},"content":{"341":{},"693":{},"759":{},"788":{},"878":{}}}],["arriv",{"_index":1158,"title":{},"content":{"251":{},"659":{},"661":{}}}],["arrow",{"_index":2947,"title":{},"content":{"656":{},"842":{}}}],["arsèn",{"_index":2617,"title":{},"content":{"519":{}}}],["articl",{"_index":3994,"title":{},"content":{"952":{}}}],["asc",{"_index":38,"title":{},"content":{"19":{},"489":{},"490":{}}}],["ascend",{"_index":41,"title":{},"content":{"20":{}}}],["ascii",{"_index":2028,"title":{"388":{}},"content":{}}],["ask",{"_index":1586,"title":{},"content":{"315":{},"820":{},"958":{}}}],["asn",{"_index":882,"title":{},"content":{"219":{},"267":{},"268":{},"269":{},"276":{},"752":{}}}],["asn1",{"_index":1216,"title":{},"content":{"267":{}}}],["asn_der_sign",{"_index":815,"title":{},"content":{"214":{}}}],["asn_sign",{"_index":854,"title":{},"content":{"214":{}}}],["asnsigns",{"_index":1230,"title":{"268":{}},"content":{}}],["aspect",{"_index":1811,"title":{},"content":{"351":{},"785":{}}}],["assert",{"_index":1104,"title":{},"content":{"237":{},"248":{},"323":{},"328":{},"329":{},"334":{},"336":{},"337":{},"338":{},"339":{},"345":{},"622":{},"804":{},"820":{}}}],["assess",{"_index":3730,"title":{},"content":{"877":{},"901":{}}}],["asset",{"_index":101,"title":{"831":{}},"content":{"22":{},"37":{},"40":{},"70":{},"82":{},"91":{},"98":{},"101":{},"122":{},"146":{},"204":{},"237":{},"336":{},"366":{},"563":{},"608":{},"618":{},"756":{},"815":{},"817":{},"819":{},"820":{},"827":{},"863":{},"864":{},"869":{},"871":{},"874":{},"877":{},"883":{},"903":{},"914":{},"922":{},"923":{},"925":{},"929":{},"930":{},"946":{}}}],["assets/app.css",{"_index":3586,"title":{},"content":{"796":{}}}],["assets/image.jpg",{"_index":3587,"title":{},"content":{"796":{}}}],["assign",{"_index":1347,"title":{},"content":{"271":{},"276":{},"277":{},"393":{}}}],["assist",{"_index":2888,"title":{},"content":{"637":{}}}],["associ",{"_index":1254,"title":{},"content":{"269":{},"378":{},"648":{},"672":{},"682":{},"685":{},"690":{},"703":{},"727":{},"732":{},"779":{},"805":{},"808":{},"809":{},"810":{},"811":{},"851":{},"890":{},"894":{},"898":{},"905":{},"907":{},"952":{}}}],["assum",{"_index":575,"title":{},"content":{"205":{},"406":{}}}],["assumpt",{"_index":3213,"title":{},"content":{"693":{}}}],["assur",{"_index":2870,"title":{},"content":{"630":{},"732":{}}}],["ast",{"_index":2338,"title":{},"content":{"427":{}}}],["async",{"_index":677,"title":{},"content":{"212":{}}}],["asynchron",{"_index":2991,"title":{},"content":{"651":{},"727":{},"749":{}}}],["at/2",{"_index":2458,"title":{"481":{}},"content":{}}],["ath",{"_index":2118,"title":{},"content":{"381":{}}}],["atom",{"_index":1722,"title":{"660":{}},"content":{"364":{},"373":{},"374":{},"472":{},"558":{},"608":{},"618":{},"619":{},"621":{},"650":{},"652":{},"659":{},"660":{},"662":{},"705":{},"727":{},"777":{},"815":{},"817":{},"818":{}}}],["attack",{"_index":2897,"title":{},"content":{"638":{},"660":{},"677":{},"724":{},"869":{}}}],["attempt",{"_index":2771,"title":{},"content":{"593":{}}}],["attest",{"_index":304,"title":{"746":{}},"content":{"76":{},"200":{},"248":{},"285":{},"708":{},"747":{},"750":{}}}],["attract",{"_index":3790,"title":{},"content":{"887":{},"901":{}}}],["attribut",{"_index":1245,"title":{"385":{}},"content":{"269":{},"384":{},"385":{},"950":{}}}],["audit",{"_index":584,"title":{"616":{},"822":{}},"content":{"206":{},"376":{},"616":{},"702":{},"822":{},"869":{},"870":{}}}],["auth",{"_index":3969,"title":{},"content":{"951":{}}}],["auth_key",{"_index":785,"title":{},"content":{"213":{},"214":{},"225":{}}}],["auth_se",{"_index":783,"title":{},"content":{"213":{},"214":{},"225":{}}}],["auth_tag",{"_index":769,"title":{},"content":{"213":{},"214":{},"225":{}}}],["authent",{"_index":1395,"title":{},"content":{"282":{},"672":{},"675":{},"683":{},"684":{},"717":{},"727":{},"728":{},"789":{},"814":{},"949":{},"951":{},"952":{}}}],["authenticateyk",{"_index":1392,"title":{"282":{}},"content":{}}],["authentif",{"_index":3975,"title":{},"content":{"952":{}}}],["author",{"_index":47,"title":{"358":{}},"content":{"9":{},"40":{},"43":{},"52":{},"58":{},"64":{},"134":{},"137":{},"220":{},"225":{},"230":{},"234":{},"235":{},"236":{},"260":{},"269":{},"334":{},"335":{},"354":{},"358":{},"374":{},"425":{},"453":{},"546":{},"559":{},"586":{},"587":{},"588":{},"661":{},"672":{},"674":{},"681":{},"683":{},"711":{},"727":{},"771":{},"779":{},"845":{}}}],["authorit",{"_index":3447,"title":{},"content":{"778":{}}}],["authorization/deleg",{"_index":149,"title":{},"content":{"40":{},"64":{},"137":{}}}],["authorizationd",{"_index":193,"title":{},"content":{"43":{}}}],["authorized_key",{"_index":2216,"title":{},"content":{"421":{},"422":{},"453":{}}}],["authorized_public_key",{"_index":2246,"title":{},"content":{"425":{},"559":{}}}],["authorizedkey",{"_index":46,"title":{"9":{}},"content":{"9":{},"52":{},"53":{},"168":{},"174":{}}}],["authorizedkey.encryptedsecretkey",{"_index":59,"title":{},"content":{"10":{}}}],["authorizedkey.publickey",{"_index":60,"title":{},"content":{"10":{}}}],["authorizedpublickey",{"_index":230,"title":{},"content":{"52":{}}}],["authpolici",{"_index":1280,"title":{},"content":{"269":{}}}],["authvalu",{"_index":1271,"title":{},"content":{"269":{}}}],["auto",{"_index":3244,"title":{},"content":{"706":{},"952":{}}}],["autolock",{"_index":3979,"title":{},"content":{"952":{}}}],["autom",{"_index":1645,"title":{"794":{},"914":{}},"content":{"320":{},"698":{},"702":{},"793":{},"794":{},"860":{},"863":{},"914":{},"929":{}}}],["automat",{"_index":1656,"title":{},"content":{"320":{},"370":{},"373":{},"404":{},"405":{},"406":{},"541":{},"546":{},"559":{},"579":{},"580":{},"581":{},"582":{},"583":{},"584":{},"585":{},"702":{},"832":{},"834":{},"842":{},"845":{},"849":{},"865":{},"883":{},"894":{},"898":{},"907":{},"930":{},"1000":{}}}],["autonom",{"_index":1846,"title":{"374":{}},"content":{"373":{},"374":{},"652":{},"698":{},"733":{}}}],["autor",{"_index":3679,"title":{},"content":{"845":{}}}],["avail",{"_index":194,"title":{"250":{},"357":{},"612":{},"635":{},"891":{},"903":{},"960":{}},"content":{"43":{},"238":{},"241":{},"246":{},"251":{},"252":{},"319":{},"335":{},"354":{},"356":{},"357":{},"361":{},"365":{},"366":{},"371":{},"372":{},"379":{},"397":{},"399":{},"402":{},"417":{},"530":{},"532":{},"533":{},"536":{},"545":{},"565":{},"603":{},"616":{},"627":{},"630":{},"635":{},"645":{},"659":{},"660":{},"661":{},"692":{},"713":{},"716":{},"718":{},"720":{},"733":{},"744":{},"745":{},"746":{},"747":{},"754":{},"757":{},"784":{},"787":{},"788":{},"812":{},"822":{},"824":{},"827":{},"832":{},"835":{},"839":{},"854":{},"865":{},"883":{},"887":{},"890":{},"891":{},"894":{},"901":{},"903":{},"907":{},"910":{},"921":{},"952":{},"953":{},"958":{},"959":{},"961":{},"968":{},"998":{}}}],["availability/lat",{"_index":3269,"title":{},"content":{"718":{}}}],["availabilityaddingtim",{"_index":79,"title":{},"content":{"16":{}}}],["averag",{"_index":1169,"title":{},"content":{"252":{},"305":{},"354":{},"356":{},"372":{}}}],["average(hourly_temperatur",{"_index":1995,"title":{},"content":{"372":{}}}],["average(x",{"_index":1971,"title":{},"content":{"372":{}}}],["average_temperatur",{"_index":1994,"title":{},"content":{"372":{}}}],["averageavail",{"_index":195,"title":{},"content":{"43":{}}}],["aviat",{"_index":3169,"title":{},"content":{"687":{}}}],["avoid",{"_index":892,"title":{},"content":{"234":{},"308":{},"311":{},"312":{},"314":{},"316":{},"342":{},"376":{},"536":{},"631":{},"674":{},"683":{},"711":{},"784":{},"814":{},"958":{},"959":{}}}],["avro",{"_index":1808,"title":{},"content":{"351":{}}}],["awar",{"_index":2941,"title":{},"content":{"656":{},"707":{},"877":{},"894":{}}}],["award",{"_index":3787,"title":{},"content":{"887":{}}}],["away",{"_index":3433,"title":{},"content":{"756":{}}}],["awc",{"_index":4014,"title":{},"content":{"959":{},"998":{}}}],["awri",{"_index":1068,"title":{},"content":{"255":{}}}],["b",{"_index":1503,"title":{},"content":{"309":{},"397":{},"481":{},"935":{}}}],["b298kjkfs98dj7xdnsq",{"_index":3583,"title":{},"content":{"796":{}}}],["back",{"_index":859,"title":{"902":{}},"content":{"214":{},"255":{},"350":{},"655":{},"789":{},"797":{},"848":{},"887":{},"890":{},"891":{},"903":{},"910":{}}}],["backbon",{"_index":3737,"title":{},"content":{"869":{},"927":{}}}],["backend",{"_index":555,"title":{},"content":{"204":{},"789":{}}}],["background",{"_index":2908,"title":{},"content":{"645":{}}}],["backpressur",{"_index":1562,"title":{},"content":{"314":{}}}],["backup",{"_index":1514,"title":{},"content":{"310":{},"312":{},"315":{}}}],["backward",{"_index":3062,"title":{},"content":{"667":{},"972":{},"993":{}}}],["bad",{"_index":3104,"title":{},"content":{"678":{}}}],["balanc",{"_index":62,"title":{"12":{},"105":{},"888":{}},"content":{"12":{},"14":{},"61":{},"63":{},"73":{},"74":{},"105":{},"107":{},"166":{},"177":{},"237":{},"238":{},"241":{},"364":{},"438":{},"441":{},"442":{},"443":{},"564":{},"672":{},"743":{},"888":{},"890":{},"891":{},"894":{},"895":{},"898":{},"899":{},"907":{},"908":{},"911":{},"935":{},"945":{},"952":{},"960":{}}}],["balance.address",{"_index":396,"title":{},"content":{"106":{}}}],["balance.token",{"_index":68,"title":{},"content":{"13":{}}}],["balance.uco",{"_index":70,"title":{},"content":{"13":{},"438":{}}}],["ban",{"_index":3090,"title":{},"content":{"678":{}}}],["bandwidth",{"_index":1806,"title":{},"content":{"351":{},"713":{},"719":{},"744":{},"745":{}}}],["banish",{"_index":3033,"title":{},"content":{"660":{},"678":{}}}],["bar",{"_index":2448,"title":{},"content":{"477":{},"478":{},"507":{}}}],["base",{"_index":492,"title":{"881":{}},"content":{"204":{},"205":{},"224":{},"246":{},"257":{},"261":{},"305":{},"331":{},"342":{},"354":{},"373":{},"374":{},"386":{},"420":{},"481":{},"493":{},"494":{},"593":{},"639":{},"645":{},"652":{},"659":{},"660":{},"661":{},"666":{},"670":{},"679":{},"680":{},"687":{},"690":{},"691":{},"692":{},"693":{},"697":{},"698":{},"717":{},"724":{},"733":{},"736":{},"737":{},"739":{},"763":{},"782":{},"783":{},"788":{},"820":{},"842":{},"870":{},"883":{},"891":{},"894":{},"901":{},"903":{},"907":{},"910":{},"917":{},"926":{},"934":{},"949":{},"953":{}}}],["base16",{"_index":410,"title":{},"content":{"119":{},"163":{},"173":{},"175":{},"196":{}}}],["base64",{"_index":3427,"title":{},"content":{"756":{},"758":{},"796":{},"952":{}}}],["basi",{"_index":3778,"title":{},"content":{"887":{},"890":{}}}],["basic",{"_index":496,"title":{"386":{}},"content":{"204":{},"593":{},"735":{},"927":{}}}],["baz(uint,address",{"_index":2407,"title":{},"content":{"466":{},"467":{}}}],["be",{"_index":908,"title":{},"content":{"236":{},"315":{},"316":{},"319":{},"461":{},"472":{},"558":{},"675":{},"683":{},"698":{},"736":{},"787":{},"788":{},"789":{},"808":{}}}],["beacon",{"_index":73,"title":{"718":{},"734":{},"741":{}},"content":{"16":{},"114":{},"116":{},"246":{},"247":{},"250":{},"251":{},"319":{},"363":{},"662":{},"695":{},"715":{},"732":{},"735":{},"736":{},"737":{},"739":{},"740":{},"741":{},"742":{},"743":{},"744":{},"745":{},"746":{},"747":{}}}],["beaconchain",{"_index":1120,"title":{"245":{}},"content":{"245":{},"246":{},"247":{},"248":{},"252":{},"315":{},"354":{},"705":{},"718":{},"721":{},"732":{},"734":{},"740":{}}}],["beaconchainsummari",{"_index":72,"title":{"16":{},"114":{}},"content":{"16":{},"18":{},"90":{},"114":{},"116":{},"166":{},"179":{},"189":{}}}],["beaconchainsummary.availabilityaddingtim",{"_index":89,"title":{},"content":{"17":{}}}],["beaconchainsummary.p2pavail",{"_index":90,"title":{},"content":{"17":{}}}],["beaconchainsummary.summarytim",{"_index":91,"title":{},"content":{"17":{}}}],["beaconchainsummary.timestamp",{"_index":399,"title":{},"content":{"115":{}}}],["beaconchainsummary.transactionsummari",{"_index":92,"title":{},"content":{"17":{}}}],["beaconchainsummary.transactionsummaries.limit",{"_index":93,"title":{},"content":{"17":{}}}],["beaconchainsummary.transactionsummaries.pagingoffset",{"_index":94,"title":{},"content":{"17":{}}}],["beaconchainsummary.vers",{"_index":95,"title":{},"content":{"17":{}}}],["beauti",{"_index":3513,"title":{},"content":{"789":{}}}],["becom",{"_index":899,"title":{},"content":{"235":{},"330":{},"730":{},"778":{},"796":{},"957":{}}}],["befor",{"_index":588,"title":{},"content":{"206":{},"226":{},"232":{},"248":{},"251":{},"314":{},"321":{},"334":{},"381":{},"402":{},"403":{},"407":{},"532":{},"533":{},"659":{},"670":{},"728":{},"747":{},"767":{},"804":{},"806":{},"827":{},"832":{},"864":{},"871":{},"890":{},"894":{},"895":{},"898":{},"899":{},"907":{},"908":{},"910":{},"911":{},"941":{},"949":{},"951":{}}}],["begin",{"_index":1724,"title":{},"content":{"331":{},"655":{},"702":{},"796":{},"819":{},"828":{},"872":{},"880":{},"894":{},"907":{},"910":{}}}],["beginn",{"_index":3703,"title":{},"content":{"865":{}}}],["behalf",{"_index":1855,"title":{},"content":{"374":{}}}],["behav",{"_index":2671,"title":{},"content":{"541":{},"705":{}}}],["behavior",{"_index":1197,"title":{"345":{}},"content":{"263":{},"264":{},"345":{},"346":{},"374":{},"385":{},"705":{},"869":{}}}],["behaviour",{"_index":1604,"title":{},"content":{"316":{},"547":{},"798":{}}}],["behind",{"_index":1449,"title":{},"content":{"293":{},"294":{},"438":{},"702":{},"740":{}}}],["believ",{"_index":3185,"title":{},"content":{"689":{}}}],["below",{"_index":1770,"title":{},"content":{"342":{},"549":{},"559":{},"735":{},"779":{}}}],["benchmark",{"_index":1484,"title":{},"content":{"309":{},"321":{}}}],["benefit",{"_index":3719,"title":{},"content":{"876":{},"931":{}}}],["best",{"_index":1084,"title":{},"content":{"255":{},"256":{},"349":{},"364":{},"692":{},"733":{},"865":{},"870":{}}}],["beta",{"_index":3604,"title":{},"content":{"808":{}}}],["better",{"_index":312,"title":{"610":{}},"content":{"76":{},"200":{},"255":{},"257":{},"307":{},"312":{},"343":{},"372":{},"376":{},"645":{},"735":{},"743":{},"881":{}}}],["between",{"_index":458,"title":{},"content":{"165":{},"204":{},"209":{},"233":{},"320":{},"329":{},"350":{},"382":{},"608":{},"610":{},"611":{},"624":{},"641":{},"652":{},"661":{},"737":{},"743":{},"803":{},"809":{},"817":{},"830":{},"865":{},"887":{},"899":{},"908":{},"918":{},"920":{},"931":{},"957":{},"959":{},"998":{}}}],["beyond",{"_index":3166,"title":{},"content":{"687":{},"693":{},"891":{},"951":{}}}],["bia",{"_index":2777,"title":{},"content":{"593":{}}}],["big",{"_index":829,"title":{},"content":{"214":{},"307":{},"542":{},"674":{},"796":{}}}],["bigger",{"_index":3259,"title":{},"content":{"714":{}}}],["biggest",{"_index":3228,"title":{},"content":{"698":{}}}],["billion",{"_index":2984,"title":{},"content":{"650":{},"651":{},"687":{}}}],["binari",{"_index":414,"title":{"351":{}},"content":{"119":{},"163":{},"173":{},"175":{},"196":{},"226":{},"314":{},"349":{},"351":{},"462":{},"745":{},"840":{}}}],["biometr",{"_index":2219,"title":{"728":{}},"content":{"421":{},"655":{},"666":{},"672":{},"675":{},"683":{},"689":{},"724":{},"728":{},"946":{},"952":{}}}],["bip32",{"_index":937,"title":{},"content":{"223":{},"224":{}}}],["bip32/bip44",{"_index":940,"title":{},"content":{"223":{}}}],["bip39",{"_index":3959,"title":{},"content":{"950":{}}}],["bip39_mnemon",{"_index":3965,"title":{},"content":{"950":{}}}],["bip43",{"_index":943,"title":{},"content":{"223":{}}}],["bip44",{"_index":739,"title":{},"content":{"213":{},"214":{},"218":{},"219":{},"685":{}}}],["bip44path",{"_index":797,"title":{},"content":{"213":{},"214":{}}}],["bip44pathlen",{"_index":801,"title":{},"content":{"213":{},"214":{}}}],["bit",{"_index":954,"title":{},"content":{"224":{},"315":{},"351":{},"705":{},"952":{}}}],["bitcask",{"_index":1524,"title":{},"content":{"311":{}}}],["bitcoin",{"_index":489,"title":{},"content":{"204":{},"685":{},"687":{}}}],["bitfield",{"_index":3405,"title":{},"content":{"750":{}}}],["bitstr",{"_index":1812,"title":{},"content":{"351":{}}}],["black",{"_index":2954,"title":{"658":{}},"content":{}}],["blake2b",{"_index":1000,"title":{},"content":{"229":{},"459":{},"685":{}}}],["blind",{"_index":1877,"title":{},"content":{"376":{}}}],["blob",{"_index":3570,"title":{},"content":{"796":{}}}],["block",{"_index":228,"title":{"378":{},"403":{}},"content":{"52":{},"311":{},"350":{},"378":{},"379":{},"380":{},"381":{},"384":{},"393":{},"397":{},"398":{},"403":{},"405":{},"406":{},"408":{},"410":{},"417":{},"420":{},"421":{},"422":{},"423":{},"424":{},"532":{},"533":{},"536":{},"625":{},"642":{},"651":{},"652":{},"672":{},"777":{}}}],["blockag",{"_index":3222,"title":{},"content":{"696":{}}}],["blockchain",{"_index":482,"title":{"603":{},"610":{},"611":{},"630":{},"655":{},"727":{},"953":{}},"content":{"204":{},"220":{},"223":{},"225":{},"234":{},"254":{},"255":{},"320":{},"349":{},"361":{},"365":{},"366":{},"373":{},"387":{},"417":{},"419":{},"468":{},"586":{},"587":{},"588":{},"608":{},"610":{},"611":{},"613":{},"616":{},"619":{},"621":{},"622":{},"645":{},"646":{},"648":{},"649":{},"650":{},"651":{},"652":{},"656":{},"659":{},"660":{},"672":{},"675":{},"678":{},"688":{},"690":{},"692":{},"698":{},"701":{},"702":{},"704":{},"707":{},"720":{},"727":{},"730":{},"734":{},"738":{},"741":{},"742":{},"782":{},"787":{},"788":{},"789":{},"793":{},"795":{},"797":{},"799":{},"803":{},"806":{},"808":{},"809":{},"810":{},"811":{},"812":{},"815":{},"818":{},"819":{},"820":{},"822":{},"824":{},"830":{},"832":{},"838":{},"839":{},"863":{},"864":{},"865":{},"869":{},"887":{},"894":{},"895":{},"898":{},"899":{},"902":{},"907":{},"908":{},"911":{},"913":{},"924":{},"926":{},"929":{},"931":{},"933":{},"937":{},"946":{},"951":{},"952":{},"953":{},"957":{},"959":{},"960":{},"998":{}}}],["blockchain'",{"_index":3230,"title":{},"content":{"698":{},"927":{}}}],["blockchain/ecosystem",{"_index":3109,"title":{"680":{}},"content":{}}],["bloom",{"_index":1618,"title":{},"content":{"317":{},"318":{}}}],["bnb",{"_index":2807,"title":{},"content":{"608":{},"645":{}}}],["bodi",{"_index":2415,"title":{},"content":{"471":{},"472":{},"473":{},"864":{}}}],["body'",{"_index":2420,"title":{},"content":{"472":{}}}],["bolo",{"_index":530,"title":{},"content":{"204":{},"206":{},"210":{}}}],["book",{"_index":3860,"title":{},"content":{"914":{}}}],["bool",{"_index":1366,"title":{"276":{},"280":{}},"content":{"972":{}}}],["boolean",{"_index":7,"title":{"155":{},"404":{}},"content":{"2":{},"3":{},"7":{},"8":{},"43":{},"44":{},"91":{},"92":{},"155":{},"386":{},"403":{},"404":{},"405":{},"408":{},"410":{},"996":{}}}],["boost",{"_index":3755,"title":{},"content":{"878":{}}}],["boot",{"_index":3079,"title":{},"content":{"677":{}}}],["bootstrap",{"_index":1118,"title":{"258":{},"260":{},"261":{},"707":{}},"content":{"244":{},"258":{},"260":{},"261":{},"319":{},"343":{},"355":{},"707":{},"708":{},"720":{}}}],["both",{"_index":652,"title":{},"content":{"211":{},"315":{},"621":{},"622":{},"651":{},"679":{},"689":{},"817":{},"819":{},"820":{},"831":{},"832":{},"865":{},"883":{},"889":{},"941":{},"952":{}}}],["bottleneckarcheth",{"_index":3007,"title":{},"content":{"652":{}}}],["bottom",{"_index":2657,"title":{},"content":{"539":{}}}],["boundari",{"_index":1574,"title":{},"content":{"314":{}}}],["bounti",{"_index":3743,"title":{},"content":{"870":{}}}],["box",{"_index":1080,"title":{},"content":{"255":{},"817":{},"951":{}}}],["bracket",{"_index":2073,"title":{},"content":{"395":{}}}],["branch",{"_index":1650,"title":{},"content":{"320":{},"322":{},"593":{},"651":{},"680":{}}}],["brand",{"_index":1787,"title":{},"content":{"349":{}}}],["brave",{"_index":2857,"title":{"625":{},"642":{}},"content":{"625":{},"642":{}}}],["break",{"_index":1999,"title":{},"content":{"385":{},"666":{}}}],["breakdown",{"_index":3720,"title":{"879":{}},"content":{"876":{},"889":{}}}],["bridg",{"_index":545,"title":{"597":{},"608":{},"609":{},"610":{},"611":{},"612":{},"616":{},"618":{},"620":{},"621":{},"622":{},"630":{},"631":{},"815":{},"831":{},"857":{}},"content":{"204":{},"595":{},"596":{},"597":{},"598":{},"599":{},"600":{},"608":{},"609":{},"611":{},"612":{},"618":{},"621":{},"622":{},"627":{},"630":{},"631":{},"645":{},"815":{},"817":{},"819":{},"820":{},"827":{},"828":{},"830":{},"831":{},"832":{},"834":{},"856":{},"947":{}}}],["bridge'",{"_index":3628,"title":{},"content":{"819":{}}}],["bring",{"_index":1544,"title":{},"content":{"312":{},"373":{}}}],["broad",{"_index":2762,"title":{},"content":{"593":{}}}],["broadcast",{"_index":3256,"title":{"714":{}},"content":{"714":{},"718":{},"746":{}}}],["broader",{"_index":2822,"title":{},"content":{"608":{}}}],["brought",{"_index":3128,"title":{},"content":{"674":{}}}],["brows",{"_index":2728,"title":{},"content":{"564":{},"952":{}}}],["browser",{"_index":2858,"title":{"625":{},"637":{},"642":{}},"content":{"637":{},"787":{},"795":{},"797":{},"803":{},"827":{},"871":{}}}],["browser'",{"_index":3661,"title":{},"content":{"835":{}}}],["browser’",{"_index":2860,"title":{},"content":{"625":{},"642":{}}}],["bsc",{"_index":2810,"title":{},"content":{"608":{},"610":{},"646":{},"648":{},"815":{}}}],["buck",{"_index":3506,"title":{},"content":{"788":{}}}],["buffer",{"_index":648,"title":{},"content":{"211":{},"213":{},"214":{},"269":{}}}],["bug",{"_index":3742,"title":{},"content":{"870":{}}}],["build",{"_index":891,"title":{"538":{},"724":{},"796":{},"842":{}},"content":{"234":{},"236":{},"244":{},"255":{},"322":{},"337":{},"366":{},"530":{},"544":{},"562":{},"563":{},"586":{},"587":{},"588":{},"592":{},"650":{},"662":{},"666":{},"681":{},"789":{},"795":{},"840":{},"927":{},"931":{},"956":{}}}],["built",{"_index":1475,"title":{},"content":{"308":{},"315":{},"341":{},"650":{},"806":{},"824":{},"827":{},"865":{},"871":{},"878":{},"913":{},"924":{},"929":{},"956":{}}}],["burn",{"_index":2278,"title":{},"content":{"433":{},"638":{},"645":{},"692":{},"764":{},"910":{}}}],["burnt",{"_index":3634,"title":{},"content":{"820":{}}}],["busi",{"_index":3520,"title":{},"content":{"789":{}}}],["button",{"_index":2661,"title":{},"content":{"540":{},"541":{},"545":{},"546":{},"548":{},"627":{},"656":{},"813":{},"828":{},"842":{},"843":{},"845":{},"848":{},"850":{},"851":{},"853":{},"872":{},"886":{},"887":{},"890":{},"894":{},"895":{},"897":{},"899":{},"907":{},"908":{},"910":{},"911":{}}}],["buy",{"_index":3935,"title":{},"content":{"947":{}}}],["buytoken",{"_index":1925,"title":{},"content":{"370":{}}}],["buytoken(recipient_address",{"_index":1899,"title":{},"content":{"369":{}}}],["byte",{"_index":455,"title":{"268":{},"276":{},"277":{}},"content":{"163":{},"196":{},"212":{},"213":{},"214":{},"217":{},"218":{},"219":{},"224":{},"225":{},"227":{},"228":{},"229":{},"232":{},"233":{},"268":{},"269":{},"276":{},"314":{},"315":{},"351":{},"668":{},"669":{},"670":{},"693":{},"738":{},"952":{}}}],["c",{"_index":533,"title":{"256":{}},"content":{"204":{},"254":{},"256":{},"306":{},"307":{},"481":{}}}],["c:\\users{user}\\appdata\\roaming{yourapporgan",{"_index":2980,"title":{},"content":{"658":{}}}],["ca",{"_index":1283,"title":{},"content":{"269":{}}}],["cach",{"_index":1147,"title":{},"content":{"248":{},"307":{},"315":{},"343":{},"355":{},"797":{},"835":{}}}],["cachemanager.h",{"_index":2968,"title":{},"content":{"658":{}}}],["cachemanager.lock",{"_index":2969,"title":{},"content":{"658":{}}}],["calcul",{"_index":773,"title":{"693":{},"935":{},"941":{},"943":{}},"content":{"213":{},"214":{},"270":{},"295":{},"297":{},"299":{},"300":{},"301":{},"302":{},"303":{},"377":{},"524":{},"639":{},"651":{},"692":{},"693":{},"783":{},"865":{},"877":{},"890":{},"894":{},"898":{},"907":{},"910":{},"935":{},"941":{},"942":{},"943":{},"944":{},"952":{}}}],["calculate(x",{"_index":2642,"title":{},"content":{"537":{}}}],["calculate_new_reward",{"_index":3898,"title":{},"content":{"943":{}}}],["calculate_reward",{"_index":3892,"title":{},"content":{"941":{}}}],["call",{"_index":103,"title":{},"content":{"22":{},"55":{},"180":{},"212":{},"225":{},"255":{},"270":{},"272":{},"276":{},"350":{},"355":{},"370":{},"373":{},"395":{},"397":{},"398":{},"405":{},"437":{},"440":{},"445":{},"450":{},"452":{},"454":{},"456":{},"472":{},"545":{},"548":{},"549":{},"645":{},"652":{},"659":{},"693":{},"704":{},"708":{},"714":{},"715":{},"730":{},"734":{},"748":{},"796":{},"854":{},"941":{},"949":{},"958":{},"961":{}}}],["call_function/3",{"_index":2342,"title":{"445":{}},"content":{}}],["callabl",{"_index":2076,"title":{},"content":{"397":{},"398":{}}}],["caller",{"_index":2104,"title":{},"content":{"380":{},"533":{}}}],["calul",{"_index":832,"title":{},"content":{"214":{}}}],["can't",{"_index":2856,"title":{"625":{},"642":{}},"content":{"803":{}}}],["canada.vancouver.rain",{"_index":2199,"title":{},"content":{"411":{}}}],["candid",{"_index":1089,"title":{"329":{}},"content":{"256":{},"328":{},"330":{},"371":{},"409":{}}}],["capabl",{"_index":1081,"title":{},"content":{"255":{},"314":{},"316":{},"321":{},"374":{},"545":{},"666":{},"687":{},"693":{},"724":{},"727":{},"740":{},"787":{},"789":{},"817":{},"818":{},"951":{}}}],["capac",{"_index":3164,"title":{},"content":{"687":{},"738":{},"819":{}}}],["capit",{"_index":3263,"title":{},"content":{"716":{},"876":{},"889":{},"901":{}}}],["captur",{"_index":2583,"title":{},"content":{"507":{}}}],["card",{"_index":1398,"title":{},"content":{"283":{},"724":{},"878":{},"887":{},"900":{},"901":{},"902":{}}}],["care",{"_index":1888,"title":{},"content":{"377":{},"380":{},"593":{}}}],["carri",{"_index":3112,"title":{},"content":{"680":{}}}],["carriag",{"_index":2339,"title":{},"content":{"427":{}}}],["case",{"_index":688,"title":{},"content":{"212":{},"255":{},"269":{},"312":{},"321":{},"380":{},"382":{},"385":{},"560":{},"651":{},"659":{},"672":{},"697":{},"722":{},"751":{},"779":{},"789":{},"819":{},"825":{},"849":{},"894":{},"950":{},"951":{},"952":{}}}],["cassandra",{"_index":1490,"title":{},"content":{"309":{}}}],["casual",{"_index":3706,"title":{},"content":{"865":{}}}],["categor",{"_index":3060,"title":{},"content":{"666":{},"925":{}}}],["categori",{"_index":2223,"title":{},"content":{"423":{},"760":{}}}],["caus",{"_index":2876,"title":{},"content":{"631":{}}}],["caution",{"_index":2162,"title":{},"content":{"406":{},"472":{},"655":{},"658":{},"827":{},"832":{},"834":{},"835":{},"871":{}}}],["cbc",{"_index":925,"title":{},"content":{"221":{},"225":{}}}],["cc",{"_index":3107,"title":{},"content":{"679":{}}}],["cd",{"_index":1658,"title":{"321":{}},"content":{"321":{},"563":{},"840":{}}}],["censorship",{"_index":3491,"title":{},"content":{"784":{},"787":{}}}],["central",{"_index":3176,"title":{},"content":{"688":{},"689":{},"787":{},"788":{},"789":{},"817":{},"856":{},"858":{},"864":{}}}],["cert.pem",{"_index":3565,"title":{},"content":{"805":{}}}],["certain",{"_index":77,"title":{},"content":{"16":{},"116":{},"310":{},"332":{},"350":{},"625":{},"642":{},"690":{},"701":{},"894":{},"951":{}}}],["certainti",{"_index":3022,"title":{},"content":{"660":{}}}],["certbot",{"_index":3553,"title":{},"content":{"804":{}}}],["certif",{"_index":1242,"title":{"804":{},"805":{},"810":{}},"content":{"269":{},"283":{},"291":{},"292":{},"296":{},"297":{},"298":{},"299":{},"334":{},"708":{},"727":{},"793":{},"803":{},"804":{},"805":{},"808":{},"810":{},"812":{}}}],["certifi",{"_index":3097,"title":{},"content":{"678":{},"679":{},"803":{},"947":{}}}],["certificates",{"_index":1454,"title":{"296":{},"299":{}},"content":{}}],["certonli",{"_index":3555,"title":{},"content":{"804":{}}}],["cex",{"_index":3684,"title":{},"content":{"856":{},"858":{},"947":{}}}],["chach",{"_index":1596,"title":{},"content":{"315":{}}}],["chain",{"_index":74,"title":{"314":{},"315":{},"316":{},"319":{},"344":{},"429":{},"619":{},"700":{},"717":{},"718":{},"741":{},"777":{},"805":{},"818":{}},"content":{"16":{},"64":{},"105":{},"114":{},"116":{},"120":{},"137":{},"141":{},"220":{},"223":{},"224":{},"235":{},"244":{},"251":{},"255":{},"259":{},"261":{},"314":{},"315":{},"316":{},"317":{},"319":{},"332":{},"338":{},"339":{},"340":{},"341":{},"343":{},"363":{},"364":{},"369":{},"370":{},"373":{},"374":{},"375":{},"377":{},"381":{},"382":{},"404":{},"406":{},"407":{},"409":{},"418":{},"421":{},"422":{},"429":{},"430":{},"431":{},"435":{},"436":{},"438":{},"439":{},"441":{},"442":{},"443":{},"448":{},"512":{},"546":{},"547":{},"560":{},"605":{},"608":{},"619":{},"621":{},"645":{},"651":{},"652":{},"659":{},"662":{},"665":{},"670":{},"672":{},"674":{},"675":{},"681":{},"683":{},"684":{},"685":{},"690":{},"692":{},"693":{},"695":{},"701":{},"704":{},"705":{},"715":{},"717":{},"727":{},"730":{},"732":{},"735":{},"736":{},"737":{},"739":{},"740":{},"741":{},"742":{},"743":{},"744":{},"745":{},"746":{},"747":{},"748":{},"754":{},"757":{},"765":{},"778":{},"779":{},"785":{},"787":{},"788":{},"789":{},"795":{},"797":{},"798":{},"801":{},"802":{},"805":{},"808":{},"809":{},"810":{},"811":{},"817":{},"818":{},"819":{},"826":{},"871":{},"929":{},"984":{},"987":{}}}],["chain'",{"_index":1151,"title":{},"content":{"250":{},"315":{},"317":{},"374":{}}}],["chain.get_balance(0x00abcd",{"_index":2294,"title":{},"content":{"438":{}}}],["chain.get_burn_address",{"_index":2276,"title":{},"content":{"433":{}}}],["chain.get_first_transaction_address(\"000012345",{"_index":2269,"title":{},"content":{"431":{}}}],["chain.get_first_transaction_address/1",{"_index":2691,"title":{},"content":{"547":{}}}],["chain.get_genesis_address",{"_index":2181,"title":{},"content":{"409":{}}}],["chain.get_genesis_address(\"000012345",{"_index":2265,"title":{},"content":{"430":{}}}],["chain.get_genesis_address(contract.address",{"_index":1919,"title":{},"content":{"369":{}}}],["chain.get_genesis_address(transaction.address",{"_index":1939,"title":{},"content":{"371":{}}}],["chain.get_genesis_address/1",{"_index":2690,"title":{"549":{}},"content":{"547":{}}}],["chain.get_genesis_public_key(\"00013b08d",{"_index":2272,"title":{},"content":{"432":{}}}],["chain.get_genesis_public_key/1",{"_index":2692,"title":{},"content":{"547":{}}}],["chain.get_last_address(0x00abcd",{"_index":2283,"title":{},"content":{"435":{}}}],["chain.get_last_transaction(0x00abcd",{"_index":2286,"title":{},"content":{"436":{}}}],["chain.get_last_transaction(0x00abcf",{"_index":2287,"title":{},"content":{"436":{}}}],["chain.get_previous_address(0x00abcd",{"_index":2289,"title":{},"content":{"437":{}}}],["chain.get_previous_address(transact",{"_index":2290,"title":{},"content":{"437":{}}}],["chain.get_token_balance(transaction_address",{"_index":2314,"title":{},"content":{"441":{}}}],["chain.get_tokens_balance(0x00abcd",{"_index":2319,"title":{},"content":{"442":{},"443":{}}}],["chain.get_transaction(0x00abcd",{"_index":2280,"title":{},"content":{"434":{}}}],["chain.get_uco_balance(0x00abcd",{"_index":2306,"title":{},"content":{"439":{}}}],["chainlength",{"_index":280,"title":{},"content":{"73":{}}}],["chainunspentoutput",{"_index":373,"title":{"120":{}},"content":{"103":{},"120":{},"172":{},"177":{},"183":{}}}],["chainunspentoutputs.address",{"_index":401,"title":{},"content":{"121":{}}}],["chainunspentoutputs.limit",{"_index":402,"title":{},"content":{"121":{}}}],["chainunspentoutputs.pagingoffset",{"_index":403,"title":{},"content":{"121":{}}}],["challeng",{"_index":3229,"title":{},"content":{"698":{},"804":{}}}],["chang",{"_index":956,"title":{},"content":{"224":{},"247":{},"261":{},"269":{},"307":{},"312":{},"320":{},"322":{},"337":{},"338":{},"339":{},"385":{},"406":{},"472":{},"542":{},"553":{},"593":{},"645":{},"656":{},"659":{},"678":{},"689":{},"702":{},"717":{},"720":{},"732":{},"740":{},"761":{},"765":{},"767":{},"778":{},"788":{},"826":{},"920":{},"942":{},"944":{},"958":{},"960":{}}}],["change/deposit/withdraw/relock",{"_index":3916,"title":{},"content":{"944":{}}}],["change/level",{"_index":3915,"title":{},"content":{"944":{}}}],["channel",{"_index":3364,"title":{},"content":{"731":{},"961":{}}}],["char",{"_index":802,"title":{},"content":{"213":{},"214":{},"950":{}}}],["charact",{"_index":467,"title":{"388":{}},"content":{"186":{},"388":{},"514":{},"555":{},"556":{},"557":{}}}],["charg",{"_index":1113,"title":{},"content":{"244":{},"250":{},"259":{},"342":{},"659":{},"732":{},"740":{},"744":{},"747":{},"876":{},"894":{},"902":{}}}],["chars[rng.nextint(chars.length",{"_index":3957,"title":{},"content":{"950":{}}}],["chart",{"_index":3936,"title":{},"content":{"947":{},"952":{}}}],["cheap",{"_index":3412,"title":{},"content":{"752":{},"788":{}}}],["check",{"_index":712,"title":{},"content":{"212":{},"214":{},"246":{},"268":{},"276":{},"277":{},"318":{},"322":{},"331":{},"334":{},"335":{},"339":{},"340":{},"345":{},"376":{},"384":{},"399":{},"403":{},"406":{},"408":{},"410":{},"414":{},"509":{},"532":{},"533":{},"536":{},"564":{},"631":{},"669":{},"702":{},"728":{},"744":{},"747":{},"794":{},"894":{},"895":{},"898":{},"899":{},"907":{},"908":{},"910":{},"911":{},"943":{}}}],["check/recheck",{"_index":3264,"title":{},"content":{"716":{}}}],["checkyk",{"_index":1385,"title":{"280":{}},"content":{}}],["child'",{"_index":2052,"title":{},"content":{"393":{}}}],["chip",{"_index":3085,"title":{},"content":{"677":{}}}],["choic",{"_index":1498,"title":{},"content":{"309":{},"400":{},"667":{},"949":{},"952":{},"998":{}}}],["choos",{"_index":2678,"title":{},"content":{"546":{},"551":{},"878":{},"882":{},"883":{},"890":{},"891":{},"910":{}}}],["chosen",{"_index":3652,"title":{},"content":{"832":{},"883":{},"891":{},"906":{},"940":{},"950":{},"952":{}}}],["chrome",{"_index":3640,"title":{},"content":{"827":{},"871":{}}}],["chunk",{"_index":3590,"title":{},"content":{"796":{}}}],["ci",{"_index":1667,"title":{"322":{}},"content":{"321":{},"322":{}}}],["ci/cd",{"_index":1657,"title":{},"content":{"320":{}}}],["ci_logfile.txt",{"_index":1688,"title":{},"content":{"322":{}}}],["cipher",{"_index":1261,"title":{},"content":{"269":{}}}],["ciphertext",{"_index":2396,"title":{},"content":{"464":{}}}],["circul",{"_index":2894,"title":{},"content":{"638":{},"910":{}}}],["cla",{"_index":870,"title":{},"content":{"217":{},"218":{},"219":{}}}],["claim",{"_index":3773,"title":{},"content":{"884":{},"890":{},"891":{},"903":{}}}],["clair",{"_index":2186,"title":{},"content":{"409":{}}}],["classic",{"_index":3257,"title":{},"content":{"714":{},"800":{}}}],["classifi",{"_index":3850,"title":{},"content":{"926":{}}}],["clean",{"_index":1522,"title":{},"content":{"310":{},"321":{}}}],["cleanup",{"_index":1520,"title":{},"content":{"310":{}}}],["clear",{"_index":2399,"title":{},"content":{"464":{},"753":{},"835":{},"842":{},"877":{},"901":{},"902":{},"910":{},"952":{}}}],["clearer",{"_index":3865,"title":{},"content":{"923":{}}}],["cleartext",{"_index":2400,"title":{},"content":{"464":{}}}],["cli",{"_index":551,"title":{"589":{},"598":{},"605":{},"824":{},"839":{},"854":{}},"content":{"204":{},"205":{},"589":{},"590":{},"595":{},"596":{},"597":{},"598":{},"599":{},"600":{},"605":{},"792":{},"793":{},"794":{},"796":{},"804":{},"805":{},"824":{},"840":{},"854":{}}}],["cli.git",{"_index":3670,"title":{},"content":{"840":{}}}],["cli@latest",{"_index":3668,"title":{},"content":{"840":{}}}],["click",{"_index":2660,"title":{},"content":{"540":{},"541":{},"545":{},"546":{},"548":{},"655":{},"656":{},"802":{},"808":{},"809":{},"810":{},"811":{},"812":{},"813":{},"828":{},"872":{},"885":{},"887":{},"894":{},"895":{},"899":{},"900":{},"907":{},"908":{},"910":{},"911":{}}}],["client",{"_index":896,"title":{"568":{},"749":{}},"content":{"232":{},"234":{},"236":{},"329":{},"350":{},"375":{},"568":{},"569":{},"570":{},"571":{},"572":{},"573":{},"662":{},"740":{},"749":{},"787":{},"797":{},"804":{},"819":{},"959":{},"998":{}}}],["client'",{"_index":420,"title":{},"content":{"126":{}}}],["clone",{"_index":599,"title":{},"content":{"207":{},"563":{},"840":{}}}],["close",{"_index":2068,"title":{},"content":{"395":{},"407":{},"448":{},"932":{}}}],["closer",{"_index":3260,"title":{},"content":{"715":{}}}],["closest",{"_index":1716,"title":{},"content":{"363":{},"652":{},"708":{},"722":{},"733":{}}}],["cloudfar",{"_index":3550,"title":{},"content":{"802":{}}}],["cloudflar",{"_index":2787,"title":{},"content":{"603":{}}}],["cn108780501",{"_index":3346,"title":{},"content":{"728":{}}}],["cn109074478",{"_index":3347,"title":{},"content":{"728":{}}}],["cname",{"_index":3543,"title":{},"content":{"801":{},"802":{}}}],["code",{"_index":143,"title":{"320":{},"339":{},"340":{},"426":{},"552":{},"700":{}},"content":{"31":{},"40":{},"111":{},"153":{},"154":{},"211":{},"255":{},"257":{},"281":{},"314":{},"315":{},"320":{},"321":{},"322":{},"371":{},"373":{},"374":{},"375":{},"376":{},"378":{},"381":{},"382":{},"384":{},"385":{},"398":{},"400":{},"403":{},"406":{},"407":{},"409":{},"418":{},"421":{},"422":{},"425":{},"426":{},"427":{},"428":{},"448":{},"472":{},"532":{},"539":{},"545":{},"546":{},"552":{},"594":{},"655":{},"656":{},"690":{},"698":{},"701":{},"702":{},"720":{},"725":{},"767":{},"776":{},"779":{},"799":{},"806":{},"817":{},"827":{},"855":{},"871":{},"946":{},"947":{},"949":{},"951":{},"952":{},"959":{}}}],["code.is_same?(cod",{"_index":2333,"title":{},"content":{"427":{}}}],["code.is_valid?(cod",{"_index":2341,"title":{},"content":{"428":{}}}],["code_approv",{"_index":3474,"title":{"768":{}},"content":{}}],["code_propos",{"_index":3473,"title":{"767":{}},"content":{"768":{}}}],["code_s",{"_index":843,"title":{},"content":{"214":{}}}],["codebas",{"_index":3536,"title":{},"content":{"794":{}}}],["coin",{"_index":689,"title":{"369":{}},"content":{"212":{},"645":{}}}],["coin_typ",{"_index":706,"title":{},"content":{"212":{}}}],["coingecko",{"_index":1774,"title":{},"content":{"346":{},"614":{},"636":{},"706":{}}}],["coinmarketcap",{"_index":2833,"title":{},"content":{"614":{},"636":{}}}],["cold",{"_index":518,"title":{},"content":{"204":{}}}],["collater",{"_index":3848,"title":{},"content":{"925":{}}}],["collect",{"_index":255,"title":{},"content":{"64":{},"137":{},"322":{},"394":{},"441":{},"697":{},"751":{},"756":{},"759":{},"887":{},"891":{},"901":{},"905":{}}}],["collet",{"_index":3429,"title":{},"content":{"756":{}}}],["colletion_symbol",{"_index":3430,"title":{},"content":{"756":{}}}],["colonel",{"_index":1929,"title":{},"content":{"371":{}}}],["column",{"_index":1532,"title":{},"content":{"312":{},"313":{},"314":{},"316":{}}}],["combin",{"_index":1018,"title":{},"content":{"254":{},"287":{},"322":{},"818":{},"870":{},"937":{}}}],["come",{"_index":394,"title":{},"content":{"105":{},"310":{},"315":{},"409":{},"665":{},"670":{},"678":{},"693":{},"708":{},"877":{},"878":{},"891":{},"939":{}}}],["command",{"_index":565,"title":{"215":{},"216":{},"824":{},"854":{},"960":{}},"content":{"205":{},"207":{},"217":{},"218":{},"322":{},"793":{},"794":{},"804":{},"805":{},"824":{},"825":{},"826":{},"839":{},"854":{},"960":{}}}],["comment",{"_index":2003,"title":{},"content":{"386":{}}}],["commerc",{"_index":1879,"title":{},"content":{"377":{}}}],["commiss",{"_index":3488,"title":{},"content":{"783":{}}}],["commit",{"_index":1691,"title":{"660":{}},"content":{"322":{},"339":{},"364":{},"374":{},"472":{},"650":{},"652":{},"659":{},"660":{},"662":{},"705":{},"727":{},"747":{},"884":{},"891":{},"905":{}}}],["commite",{"_index":1745,"title":{},"content":{"340":{}}}],["common",{"_index":1166,"title":{},"content":{"252":{},"350":{},"679":{},"865":{}}}],["commun",{"_index":546,"title":{"725":{},"957":{}},"content":{"204":{},"256":{},"307":{},"350":{},"546":{},"591":{},"662":{},"691":{},"704":{},"712":{},"714":{},"715":{},"716":{},"729":{},"731":{},"805":{},"870":{},"926":{},"949":{},"953":{},"957":{},"959":{},"998":{}}}],["compact",{"_index":1523,"title":{},"content":{"310":{},"311":{}}}],["compaction/merg",{"_index":1539,"title":{},"content":{"312":{}}}],["compani",{"_index":1955,"title":{},"content":{"372":{}}}],["companion",{"_index":544,"title":{},"content":{"204":{}}}],["compar",{"_index":791,"title":{},"content":{"213":{},"214":{},"346":{},"387":{},"389":{},"427":{},"809":{},"864":{},"949":{}}}],["comparaison",{"_index":2021,"title":{"389":{}},"content":{"387":{}}}],["compat",{"_index":2825,"title":{},"content":{"611":{},"612":{},"613":{},"645":{},"667":{},"671":{},"674":{},"827":{},"871":{},"998":{}}}],["compatibl",{"_index":4026,"title":{},"content":{"972":{},"993":{}}}],["compens",{"_index":3325,"title":{},"content":{"728":{},"876":{},"916":{}}}],["competitor",{"_index":3945,"title":{},"content":{"949":{}}}],["compil",{"_index":1677,"title":{},"content":{"322":{},"376":{},"840":{},"949":{}}}],["complet",{"_index":2102,"title":{},"content":{"401":{},"630":{},"684":{},"730":{},"732":{},"740":{},"749":{},"753":{},"779":{},"787":{},"789":{},"793":{},"818":{},"820":{},"834":{},"895":{},"899":{},"908":{},"911":{}}}],["completli",{"_index":1577,"title":{},"content":{"315":{},"373":{}}}],["complex",{"_index":1093,"title":{},"content":{"256":{},"486":{},"542":{},"666":{},"667":{},"678":{},"692":{},"693":{},"714":{},"752":{},"789":{},"927":{}}}],["complianc",{"_index":3142,"title":{"684":{}},"content":{"898":{}}}],["compliant",{"_index":3143,"title":{},"content":{"684":{}}}],["compon",{"_index":528,"title":{},"content":{"204":{},"256":{},"328":{},"341":{},"343":{},"949":{}}}],["compos",{"_index":2249,"title":{},"content":{"415":{},"542":{},"753":{},"796":{},"797":{},"942":{},"952":{}}}],["compound",{"_index":3725,"title":{},"content":{"877":{}}}],["comprehens",{"_index":3175,"title":{},"content":{"688":{},"821":{},"866":{},"869":{},"887":{},"889":{},"900":{},"923":{}}}],["compress",{"_index":3617,"title":{},"content":{"826":{}}}],["compris",{"_index":3966,"title":{},"content":{"951":{}}}],["compromis",{"_index":2158,"title":{},"content":{"406":{}}}],["comput",{"_index":951,"title":{},"content":{"223":{},"237":{},"248":{},"256":{},"306":{},"307":{},"312":{},"343":{},"373":{},"376":{},"662":{},"666":{},"670":{},"677":{},"693":{},"697":{},"698":{},"729":{},"733":{},"743":{},"744":{}}}],["concat/2",{"_index":2473,"title":{"485":{}},"content":{}}],["concaten",{"_index":1337,"title":{},"content":{"270":{},"485":{}}}],["concept",{"_index":1551,"title":{"617":{},"735":{},"742":{},"816":{}},"content":{"313":{},"314":{},"315":{},"659":{},"672":{},"678":{},"681":{},"684":{},"715":{},"735":{},"821":{},"827":{},"866":{},"871":{},"923":{}}}],["concern",{"_index":640,"title":{},"content":{"211":{},"269":{},"724":{}}}],["concis",{"_index":1078,"title":{},"content":{"255":{},"891":{},"903":{}}}],["conclus",{"_index":3871,"title":{"937":{},"998":{}},"content":{}}],["concord",{"_index":3017,"title":{},"content":{"659":{}}}],["concret",{"_index":2109,"title":{},"content":{"380":{}}}],["concurr",{"_index":1478,"title":{},"content":{"308":{},"350":{},"363":{},"730":{}}}],["concurrent/parallel",{"_index":1047,"title":{},"content":{"255":{}}}],["condit",{"_index":1647,"title":{"403":{},"406":{},"408":{},"410":{},"421":{}},"content":{"320":{},"369":{},"371":{},"373":{},"374":{},"384":{},"397":{},"403":{},"404":{},"406":{},"407":{},"408":{},"409":{},"410":{},"411":{},"413":{},"414":{},"419":{},"421":{},"422":{},"423":{},"424":{},"427":{},"428":{},"448":{},"532":{},"533":{},"536":{},"538":{},"545":{},"560":{},"727":{},"760":{},"779":{},"819":{},"820":{},"882":{},"894":{},"936":{}}}],["conduct",{"_index":3691,"title":{},"content":{"864":{},"898":{}}}],["confid",{"_index":3500,"title":{},"content":{"787":{},"910":{}}}],["confidenti",{"_index":3055,"title":{},"content":{"672":{},"727":{}}}],["config",{"_index":1782,"title":{},"content":{"347":{}}}],["config.ex",{"_index":1781,"title":{},"content":{"347":{}}}],["configur",{"_index":1730,"title":{"347":{}},"content":{"331":{},"347":{},"603":{},"604":{},"681":{},"728":{},"761":{},"842":{},"843":{},"845":{},"848":{},"853":{},"894":{},"907":{}}}],["confirm",{"_index":310,"title":{"833":{},"895":{},"899":{},"908":{},"911":{}},"content":{"76":{},"200":{},"246":{},"248":{},"251":{},"472":{},"655":{},"746":{},"747":{},"748":{},"750":{},"808":{},"811":{},"813":{},"820":{},"826":{},"831":{},"833":{},"834":{},"838":{},"893":{},"895":{},"898":{},"899":{},"908":{},"911":{},"958":{},"960":{},"973":{},"976":{},"979":{}}}],["conflict",{"_index":2875,"title":{},"content":{"631":{},"674":{}}}],["conform",{"_index":1744,"title":{},"content":{"339":{}}}],["congratul",{"_index":2683,"title":{},"content":{"546":{}}}],["connect",{"_index":563,"title":{"625":{},"642":{}},"content":{"205":{},"258":{},"260":{},"279":{},"350":{},"605":{},"625":{},"642":{},"652":{},"675":{},"716":{},"717":{},"727":{},"729":{},"813":{},"826":{},"832":{},"838":{},"839":{},"952":{},"980":{}}}],["connectivity/crypto",{"_index":1191,"title":{},"content":{"261":{}}}],["consensu",{"_index":1709,"title":{"659":{}},"content":{"327":{},"331":{},"374":{},"619":{},"650":{},"651":{},"652":{},"659":{},"660":{},"687":{},"705":{},"717":{},"727":{},"787":{},"818":{}}}],["consensusarcheth",{"_index":3000,"title":{},"content":{"652":{}}}],["consid",{"_index":516,"title":{},"content":{"204":{},"251":{},"252":{},"312":{},"358":{},"363":{},"375":{},"438":{},"442":{},"443":{},"690":{},"702":{},"716":{},"752":{},"778":{},"779":{},"805":{},"877":{},"907":{}}}],["consider",{"_index":3061,"title":{},"content":{"666":{},"731":{}}}],["consist",{"_index":2990,"title":{},"content":{"651":{},"659":{},"672":{},"702":{},"832":{},"869":{}}}],["consol",{"_index":2656,"title":{},"content":{"539":{},"545":{},"548":{},"549":{}}}],["consolid",{"_index":2832,"title":{},"content":{"614":{},"636":{}}}],["const",{"_index":3953,"title":{},"content":{"950":{}}}],["constant",{"_index":961,"title":{"870":{},"934":{}},"content":{"224":{},"870":{},"934":{},"935":{},"936":{}}}],["constantli",{"_index":3018,"title":{},"content":{"659":{}}}],["constitut",{"_index":3802,"title":{},"content":{"898":{}}}],["constrain",{"_index":3234,"title":{},"content":{"698":{}}}],["constraint",{"_index":1628,"title":{"305":{}},"content":{"304":{},"305":{},"374":{},"651":{},"661":{},"680":{},"703":{},"727":{}}}],["consult",{"_index":3049,"title":{},"content":{"672":{},"854":{}}}],["consum",{"_index":98,"title":{},"content":{"22":{},"697":{}}}],["consumedinput",{"_index":96,"title":{"22":{}},"content":{"22":{},"37":{},"38":{},"166":{},"177":{},"185":{},"187":{},"189":{}}}],["consumedinputs.amount",{"_index":120,"title":{},"content":{"23":{}}}],["consumedinputs.from",{"_index":121,"title":{},"content":{"23":{}}}],["consumedinputs.protocolvers",{"_index":122,"title":{},"content":{"23":{}}}],["consumedinputs.st",{"_index":123,"title":{},"content":{"23":{}}}],["consumedinputs.timestamp",{"_index":124,"title":{},"content":{"23":{}}}],["consumedinputs.tokenaddress",{"_index":125,"title":{},"content":{"23":{}}}],["consumedinputs.tokenid",{"_index":126,"title":{},"content":{"23":{}}}],["consumedinputs.typ",{"_index":127,"title":{},"content":{"23":{}}}],["consumpt",{"_index":2987,"title":{},"content":{"650":{},"672":{},"687":{},"724":{}}}],["contact",{"_index":1182,"title":{},"content":{"260":{},"630":{},"820":{}}}],["contacts.h",{"_index":2970,"title":{},"content":{"658":{}}}],["contacts.lock",{"_index":2971,"title":{},"content":{"658":{}}}],["contain",{"_index":150,"title":{},"content":{"40":{},"64":{},"137":{},"267":{},"269":{},"280":{},"283":{},"315":{},"320":{},"321":{},"322":{},"332":{},"342":{},"356":{},"382":{},"384":{},"404":{},"410":{},"421":{},"422":{},"426":{},"427":{},"428":{},"429":{},"430":{},"431":{},"435":{},"436":{},"438":{},"439":{},"441":{},"442":{},"443":{},"444":{},"457":{},"465":{},"468":{},"474":{},"480":{},"495":{},"504":{},"508":{},"513":{},"521":{},"526":{},"528":{},"536":{},"652":{},"656":{},"665":{},"677":{},"702":{},"744":{},"745":{},"747":{},"760":{},"761":{},"765":{},"767":{},"772":{},"775":{},"776":{},"779":{},"789":{},"796":{},"805":{},"808":{},"809":{},"812":{},"845":{},"887":{},"930":{},"935":{},"952":{},"960":{}}}],["content",{"_index":145,"title":{"157":{},"553":{},"797":{},"846":{}},"content":{"40":{},"41":{},"157":{},"214":{},"331":{},"334":{},"335":{},"336":{},"337":{},"338":{},"368":{},"381":{},"382":{},"404":{},"407":{},"411":{},"421":{},"422":{},"424":{},"425":{},"434":{},"436":{},"447":{},"541":{},"553":{},"593":{},"662":{},"701":{},"754":{},"757":{},"758":{},"765":{},"775":{},"779":{},"796":{},"797":{},"805":{},"808":{},"809":{},"810":{},"812":{},"814":{},"826":{},"846":{},"895":{},"899":{},"908":{},"911":{}}}],["content_s",{"_index":844,"title":{},"content":{"214":{}}}],["context",{"_index":20,"title":{"362":{},"618":{}},"content":{"4":{},"79":{},"211":{},"257":{},"272":{},"279":{},"323":{},"362":{},"400":{},"604":{},"662":{},"809":{},"810":{},"811":{},"923":{},"960":{}}}],["continu",{"_index":1882,"title":{},"content":{"377":{},"670":{},"702":{},"794":{},"826":{},"869":{},"891":{}}}],["contract",{"_index":115,"title":{"332":{},"367":{},"373":{},"378":{},"383":{},"384":{},"402":{},"403":{},"412":{},"415":{},"419":{},"444":{},"530":{},"531":{},"532":{},"533":{},"534":{},"535":{},"536":{},"538":{},"539":{},"545":{},"546":{},"547":{},"550":{},"560":{},"572":{},"618":{},"776":{},"817":{},"822":{},"847":{},"938":{},"999":{}},"content":{"22":{},"40":{},"55":{},"58":{},"101":{},"122":{},"134":{},"184":{},"315":{},"329":{},"331":{},"332":{},"368":{},"369":{},"370":{},"371":{},"372":{},"373":{},"374":{},"375":{},"376":{},"377":{},"379":{},"381":{},"382":{},"384":{},"387":{},"390":{},"395":{},"396":{},"397":{},"398":{},"399":{},"400":{},"404":{},"406":{},"408":{},"409":{},"410":{},"414":{},"415":{},"417":{},"418":{},"419":{},"422":{},"423":{},"425":{},"427":{},"428":{},"444":{},"445":{},"446":{},"447":{},"448":{},"455":{},"461":{},"472":{},"509":{},"527":{},"530":{},"532":{},"533":{},"534":{},"535":{},"536":{},"538":{},"539":{},"540":{},"541":{},"542":{},"544":{},"545":{},"546":{},"547":{},"548":{},"550":{},"552":{},"553":{},"558":{},"559":{},"560":{},"568":{},"569":{},"570":{},"571":{},"572":{},"573":{},"608":{},"613":{},"616":{},"618":{},"621":{},"622":{},"630":{},"645":{},"648":{},"693":{},"704":{},"705":{},"724":{},"727":{},"748":{},"752":{},"759":{},"776":{},"779":{},"789":{},"817":{},"819":{},"820":{},"822":{},"827":{},"834":{},"845":{},"847":{},"862":{},"864":{},"869":{},"870":{},"918":{},"926":{},"927":{},"931":{},"941":{},"945":{},"972":{},"993":{}}}],["contract'",{"_index":1856,"title":{},"content":{"369":{},"374":{},"379":{},"445":{},"508":{},"512":{},"527":{},"541":{},"546":{},"559":{},"560":{},"845":{}}}],["contract.add_ownership",{"_index":2366,"title":{},"content":{"453":{}}}],["contract.add_recipi",{"_index":1924,"title":{},"content":{"370":{}}}],["contract.add_recipient(\"000012345",{"_index":2373,"title":{},"content":{"455":{}}}],["contract.add_token_transf",{"_index":2358,"title":{},"content":{"451":{}}}],["contract.add_token_transfer(to",{"_index":1912,"title":{},"content":{"369":{}}}],["contract.add_token_transfer(token_address",{"_index":3443,"title":{},"content":{"759":{}}}],["contract.add_uco_transf",{"_index":1993,"title":{},"content":{"372":{},"427":{},"428":{}}}],["contract.add_uco_transfer(amount",{"_index":1927,"title":{},"content":{"370":{}}}],["contract.add_uco_transfer(to",{"_index":2354,"title":{},"content":{"449":{}}}],["contract.address",{"_index":1902,"title":{},"content":{"369":{},"414":{}}}],["contract.call_function(0x0000abcd",{"_index":2343,"title":{},"content":{"445":{}}}],["contract.cont",{"_index":2689,"title":{},"content":{"545":{}}}],["contract.set_code(\"@vers",{"_index":2351,"title":{},"content":{"448":{}}}],["contract.set_cont",{"_index":2653,"title":{},"content":{"538":{},"545":{}}}],["contract.set_content(\"averag",{"_index":1996,"title":{},"content":{"372":{}}}],["contract.set_content(\"hello",{"_index":1894,"title":{},"content":{"368":{},"447":{}}}],["contract.set_content(\"no",{"_index":1992,"title":{},"content":{"372":{}}}],["contract.set_content(chain.get_genesis_address(0x00002223bbd4ec3d64ae597696c7d7ade1cee65c639d885450ad2d7b75592ac76afa",{"_index":2701,"title":{},"content":{"549":{}}}],["contract.set_content(time.now",{"_index":2697,"title":{},"content":{"548":{}}}],["contract.set_type(\"transf",{"_index":1911,"title":{},"content":{"369":{},"370":{},"446":{}}}],["contract.uco_mov",{"_index":2140,"title":{},"content":{"382":{}}}],["contract.uco_transf",{"_index":2139,"title":{},"content":{"382":{}}}],["contract1",{"_index":1869,"title":{},"content":{"375":{}}}],["contract2",{"_index":1871,"title":{},"content":{"375":{}}}],["contract_address",{"_index":2344,"title":{},"content":{"445":{}}}],["contrast",{"_index":3334,"title":{},"content":{"728":{}}}],["contribut",{"_index":2744,"title":{"591":{},"592":{},"855":{}},"content":{"591":{},"592":{},"593":{},"678":{},"690":{},"691":{},"703":{},"855":{},"862":{},"891":{},"894":{},"898":{},"901":{},"902":{},"903":{},"906":{},"907":{},"924":{},"925":{},"926":{},"927":{}}}],["contributor",{"_index":2765,"title":{},"content":{"593":{},"698":{},"702":{}}}],["control",{"_index":2670,"title":{},"content":{"541":{},"542":{},"604":{},"672":{},"674":{},"689":{},"690":{},"782":{},"894":{},"907":{},"946":{},"951":{}}}],["conveni",{"_index":2007,"title":{},"content":{"386":{},"447":{}}}],["convent",{"_index":3627,"title":{},"content":{"818":{}}}],["convert",{"_index":413,"title":{},"content":{"119":{},"163":{},"173":{},"175":{},"196":{},"212":{},"213":{},"214":{},"267":{},"268":{},"269":{},"276":{},"316":{},"369":{},"387":{},"414":{},"427":{}}}],["coordin",{"_index":374,"title":{"744":{}},"content":{"108":{},"267":{},"659":{},"662":{},"672":{},"744":{},"779":{}}}],["coordinator'",{"_index":3461,"title":{},"content":{"779":{}}}],["copi",{"_index":653,"title":{},"content":{"211":{},"214":{},"275":{},"283":{},"292":{},"296":{},"321":{},"322":{},"417":{},"500":{},"503":{},"656":{},"887":{},"902":{}}}],["copy/past",{"_index":2868,"title":{},"content":{"629":{}}}],["core",{"_index":1014,"title":{"253":{},"570":{}},"content":{"568":{},"569":{},"570":{},"571":{},"572":{},"573":{},"930":{}}}],["cornerston",{"_index":3690,"title":{},"content":{"861":{},"863":{},"927":{}}}],["corpor",{"_index":3517,"title":{},"content":{"789":{}}}],["correct",{"_index":1142,"title":{},"content":{"248":{},"337":{},"409":{},"542":{},"593":{},"658":{},"702":{}}}],["correctli",{"_index":1692,"title":{},"content":{"322":{}}}],["correl",{"_index":3319,"title":{},"content":{"727":{}}}],["correspond",{"_index":721,"title":{},"content":{"212":{},"219":{},"271":{},"275":{},"655":{},"656":{},"779":{},"854":{},"887":{},"910":{}}}],["cosign",{"_index":3404,"title":{},"content":{"750":{}}}],["cost",{"_index":2929,"title":{"648":{}},"content":{"692":{},"693":{},"695":{},"696":{},"697":{},"783":{},"788":{},"865":{},"894":{},"898":{},"907":{},"929":{},"949":{}}}],["costli",{"_index":3501,"title":{"788":{}},"content":{}}],["council",{"_index":1654,"title":{},"content":{"320":{},"702":{}}}],["count",{"_index":1424,"title":{},"content":{"286":{},"371":{},"372":{},"560":{}}}],["counter",{"_index":2685,"title":{},"content":{"545":{},"560":{}}}],["counterparti",{"_index":3630,"title":{},"content":{"819":{},"820":{},"860":{}}}],["countri",{"_index":3065,"title":{},"content":{"667":{}}}],["coupl",{"_index":3146,"title":{},"content":{"684":{},"729":{},"788":{}}}],["cover",{"_index":1621,"title":{},"content":{"319":{},"542":{},"869":{}}}],["covert",{"_index":4009,"title":{},"content":{"958":{}}}],["cp",{"_index":1686,"title":{},"content":{"322":{}}}],["crash",{"_index":2270,"title":{},"content":{"431":{}}}],["creat",{"_index":900,"title":{"605":{},"655":{},"850":{},"853":{},"897":{},"898":{}},"content":{"223":{},"235":{},"246":{},"259":{},"260":{},"269":{},"313":{},"321":{},"322":{},"332":{},"336":{},"368":{},"374":{},"377":{},"382":{},"393":{},"395":{},"448":{},"461":{},"538":{},"545":{},"559":{},"591":{},"592":{},"594":{},"622":{},"638":{},"655":{},"656":{},"675":{},"682":{},"683":{},"684":{},"691":{},"697":{},"702":{},"729":{},"751":{},"752":{},"754":{},"756":{},"758":{},"759":{},"761":{},"770":{},"782":{},"789":{},"803":{},"820":{},"826":{},"842":{},"843":{},"845":{},"849":{},"850":{},"851":{},"852":{},"853":{},"856":{},"858":{},"861":{},"897":{},"898":{},"899":{},"927":{},"949":{},"950":{}}}],["create/import",{"_index":2855,"title":{},"content":{"624":{},"641":{}}}],["created/manipul",{"_index":110,"title":{},"content":{"22":{},"101":{},"122":{}}}],["creation",{"_index":1139,"title":{"754":{},"899":{}},"content":{"247":{},"251":{},"363":{},"638":{},"645":{},"672":{},"696":{},"697":{},"758":{},"808":{},"845":{},"898":{},"899":{},"908":{},"949":{}}}],["credenti",{"_index":3147,"title":{},"content":{"684":{}}}],["credit",{"_index":1907,"title":{},"content":{"369":{},"414":{}}}],["credo",{"_index":1694,"title":{},"content":{"322":{}}}],["criteria",{"_index":1727,"title":{},"content":{"331":{},"679":{},"733":{}}}],["critic",{"_index":3140,"title":{},"content":{"683":{},"895":{},"899":{},"908":{},"911":{}}}],["cron",{"_index":1853,"title":{},"content":{"374":{},"535":{}}}],["cross",{"_index":133,"title":{"619":{},"818":{}},"content":{"25":{},"375":{},"608":{},"619":{},"621":{},"662":{},"727":{},"731":{},"746":{},"779":{},"818":{},"819":{},"949":{},"959":{},"998":{}}}],["crossvalidationstamp",{"_index":129,"title":{"25":{}},"content":{"25":{},"73":{},"74":{},"168":{},"174":{}}}],["crossvalidationstamp.nodepublickey",{"_index":138,"title":{},"content":{"26":{}}}],["crossvalidationstamp.signatur",{"_index":139,"title":{},"content":{"26":{}}}],["crowdfund",{"_index":2210,"title":{"414":{}},"content":{}}],["crowdsal",{"_index":1897,"title":{},"content":{"369":{}}}],["crucial",{"_index":3729,"title":{},"content":{"877":{},"891":{},"894":{},"910":{},"924":{}}}],["crypto",{"_index":483,"title":{"457":{}},"content":{"204":{},"220":{},"260":{},"418":{},"457":{},"550":{},"680":{},"689":{},"783":{},"923":{},"952":{}}}],["crypto.decrypt_with_storage_nonce(ciphertext",{"_index":2398,"title":{},"content":{"464":{}}}],["crypto.hash(\"mi",{"_index":2377,"title":{},"content":{"459":{}}}],["crypto.hash(\"tintin",{"_index":2391,"title":{},"content":{"463":{}}}],["crypto.hash(secret",{"_index":2097,"title":{},"content":{"400":{},"409":{}}}],["crypto.hmac(\"mi",{"_index":2386,"title":{},"content":{"462":{}}}],["crypto.sign_with_recovery(signature_payload",{"_index":2392,"title":{},"content":{"463":{}}}],["cryptocurr",{"_index":487,"title":{},"content":{"204":{},"608":{},"779":{},"782":{},"864":{},"933":{},"946":{}}}],["cryptograph",{"_index":453,"title":{},"content":{"163":{},"196":{},"330":{},"374":{},"424":{},"667":{},"669":{},"677":{},"680":{},"727":{},"728":{},"779":{},"817":{},"818":{},"950":{}}}],["cryptographi",{"_index":895,"title":{"222":{},"262":{},"663":{}},"content":{"223":{},"225":{},"234":{},"262":{},"263":{},"267":{},"269":{},"352":{},"457":{},"622":{},"663":{},"665":{},"667":{},"680":{},"683":{},"717":{},"818":{},"820":{}}}],["css",{"_index":3568,"title":{},"content":{"796":{}}}],["ctr",{"_index":922,"title":{},"content":{"221":{},"225":{}}}],["culmin",{"_index":3722,"title":{},"content":{"876":{}}}],["cumul",{"_index":3815,"title":{},"content":{"901":{}}}],["curent",{"_index":1458,"title":{},"content":{"297":{}}}],["currenc",{"_index":3242,"title":{},"content":{"706":{},"952":{}}}],["current",{"_index":587,"title":{},"content":{"206":{},"212":{},"228":{},"229":{},"232":{},"246":{},"247":{},"271":{},"273":{},"274":{},"291":{},"297":{},"300":{},"302":{},"320":{},"342":{},"350":{},"371":{},"374":{},"379":{},"406":{},"408":{},"410":{},"417":{},"431":{},"444":{},"508":{},"527":{},"548":{},"605":{},"611":{},"645":{},"651":{},"656":{},"688":{},"693":{},"702":{},"712":{},"724":{},"737":{},"740":{},"743":{},"796":{},"808":{},"809":{},"810":{},"811":{},"883":{},"890":{},"891":{},"894":{},"902":{},"903":{},"907":{},"910":{},"922":{},"952":{},"958":{},"960":{},"965":{},"989":{}}}],["current_ath",{"_index":2119,"title":{},"content":{"381":{}}}],["currentkeyhandl",{"_index":1348,"title":{},"content":{"271":{}}}],["currentkeyindex",{"_index":1465,"title":{},"content":{"300":{}}}],["cursor",{"_index":1612,"title":{},"content":{"316":{}}}],["curv",{"_index":686,"title":{"228":{}},"content":{"212":{},"213":{},"224":{},"225":{},"227":{},"228":{},"232":{},"233":{},"234":{},"267":{},"277":{},"315":{},"668":{},"670":{},"680":{},"683":{},"685":{},"841":{},"853":{},"982":{}}}],["curve,fn",{"_index":748,"title":{},"content":{"213":{},"214":{}}}],["curve25519",{"_index":3078,"title":{},"content":{"671":{}}}],["curve_typ",{"_index":723,"title":{},"content":{"212":{},"213":{},"214":{},"228":{}}}],["curveid",{"_index":1324,"title":{},"content":{"269":{}}}],["curvetyp",{"_index":1223,"title":{},"content":{"267":{}}}],["custodi",{"_index":3923,"title":{},"content":{"946":{}}}],["custom",{"_index":949,"title":{"685":{}},"content":{"223":{},"308":{},"351":{},"377":{},"419":{},"670":{},"685":{},"751":{}}}],["customiz",{"_index":3148,"title":{},"content":{"685":{}}}],["customizationsupport",{"_index":3931,"title":{},"content":{"947":{}}}],["cx_curve_t",{"_index":713,"title":{},"content":{"212":{}}}],["cx_ecdh",{"_index":756,"title":{},"content":{"213":{},"214":{}}}],["cx_ecdh(&originprivatekey",{"_index":758,"title":{},"content":{"213":{},"214":{}}}],["cx_ecdh_x",{"_index":759,"title":{},"content":{"213":{},"214":{}}}],["cx_ecfp_init_private_key(curv",{"_index":734,"title":{},"content":{"212":{}}}],["cx_ecfp_private_key_t",{"_index":709,"title":{},"content":{"212":{}}}],["cx_ecfp_public_key_t",{"_index":711,"title":{},"content":{"212":{},"213":{}}}],["cx_hash_sha256",{"_index":850,"title":{},"content":{"214":{}}}],["cyber",{"_index":3286,"title":{},"content":{"724":{}}}],["cycl",{"_index":1187,"title":{},"content":{"260":{},"721":{},"722":{}}}],["cycle/epoch",{"_index":1740,"title":{},"content":{"338":{}}}],["d",{"_index":3676,"title":{},"content":{"843":{},"845":{},"852":{}}}],["d3e4f5",{"_index":2582,"title":{},"content":{"507":{}}}],["daili",{"_index":1202,"title":{},"content":{"264":{},"661":{},"737":{},"762":{},"763":{},"764":{},"766":{}}}],["dailli",{"_index":1181,"title":{},"content":{"259":{}}}],["damag",{"_index":3361,"title":{},"content":{"729":{}}}],["danger",{"_index":1208,"title":{},"content":{"266":{},"267":{},"269":{},"270":{},"272":{},"274":{},"276":{},"431":{}}}],["dao",{"_index":3227,"title":{},"content":{"698":{}}}],["dapp",{"_index":2096,"title":{"957":{}},"content":{"400":{},"613":{},"789":{},"819":{},"926":{},"927":{},"952":{},"953":{},"957":{},"958":{},"959":{},"998":{}}}],["dart",{"_index":1830,"title":{"361":{}},"content":{"361":{},"949":{},"950":{},"953":{},"955":{},"959":{},"998":{}}}],["dashboard",{"_index":3774,"title":{"885":{}},"content":{"885":{}}}],["data",{"_index":112,"title":{"40":{},"354":{},"719":{},"775":{},"952":{}},"content":{"22":{},"31":{},"36":{},"40":{},"46":{},"54":{},"57":{},"58":{},"73":{},"74":{},"134":{},"135":{},"152":{},"158":{},"177":{},"186":{},"187":{},"194":{},"195":{},"204":{},"211":{},"213":{},"214":{},"225":{},"230":{},"235":{},"237":{},"252":{},"255":{},"266":{},"269":{},"283":{},"291":{},"308":{},"310":{},"311":{},"312":{},"313":{},"315":{},"316":{},"319":{},"337":{},"338":{},"341":{},"342":{},"343":{},"345":{},"346":{},"349":{},"351":{},"355":{},"358":{},"363":{},"371":{},"372":{},"374":{},"375":{},"377":{},"394":{},"395":{},"400":{},"403":{},"410":{},"417":{},"424":{},"429":{},"446":{},"447":{},"461":{},"462":{},"464":{},"466":{},"467":{},"468":{},"475":{},"504":{},"505":{},"507":{},"536":{},"545":{},"619":{},"651":{},"659":{},"669":{},"704":{},"705":{},"708":{},"709":{},"712":{},"713":{},"714":{},"716":{},"719":{},"720":{},"727":{},"728":{},"732":{},"733":{},"739":{},"746":{},"759":{},"765":{},"779":{},"787":{},"788":{},"789":{},"796":{},"797":{},"799":{},"809":{},"818":{},"949":{},"951":{},"952":{},"972":{},"993":{}}}],["data.actionrecipi",{"_index":156,"title":{},"content":{"41":{}}}],["data.cod",{"_index":157,"title":{},"content":{"41":{}}}],["data.cont",{"_index":158,"title":{},"content":{"41":{}}}],["data.ledg",{"_index":159,"title":{},"content":{"41":{}}}],["data.ownership",{"_index":160,"title":{},"content":{"41":{}}}],["data.recipi",{"_index":161,"title":{},"content":{"41":{}}}],["data/ownership",{"_index":901,"title":{},"content":{"235":{}}}],["data=hashedpath",{"_index":966,"title":{},"content":{"224":{}}}],["databas",{"_index":1119,"title":{"308":{}},"content":{"244":{},"308":{},"309":{},"310":{},"312":{},"341":{},"373":{},"375":{},"377":{},"472":{},"658":{},"789":{},"952":{}}}],["databuff",{"_index":632,"title":{},"content":{"211":{},"212":{},"213":{},"214":{}}}],["datalength",{"_index":634,"title":{},"content":{"211":{},"212":{},"213":{},"214":{}}}],["datastructur",{"_index":1509,"title":{},"content":{"310":{}}}],["date",{"_index":78,"title":{"534":{}},"content":{"16":{},"22":{},"91":{},"101":{},"116":{},"122":{},"146":{},"159":{},"239":{},"242":{},"247":{},"258":{},"319":{},"343":{},"354":{},"356":{},"358":{},"373":{},"374":{},"526":{},"534":{},"547":{},"645":{},"721":{},"722":{},"739":{},"742":{},"804":{},"942":{},"952":{}}}],["datetim",{"_index":1852,"title":{"543":{}},"content":{"368":{},"372":{},"374":{},"425":{},"534":{},"537":{},"543":{}}}],["day",{"_index":1764,"title":{},"content":{"342":{},"420":{},"535":{},"718":{},"721":{},"739":{},"742":{},"743":{},"744":{},"745":{},"764":{},"766":{},"882":{}}}],["dbft",{"_index":3168,"title":{},"content":{"687":{}}}],["ddress",{"_index":1826,"title":{},"content":{"356":{}}}],["de",{"_index":3110,"title":{},"content":{"680":{}}}],["deactiv",{"_index":2877,"title":{},"content":{"631":{}}}],["deal",{"_index":1533,"title":{},"content":{"312":{},"351":{},"372":{},"395":{},"426":{},"444":{},"457":{},"465":{},"480":{},"526":{},"528":{},"560":{},"748":{}}}],["decemb",{"_index":2911,"title":{},"content":{"645":{}}}],["decentr",{"_index":1025,"title":{"673":{},"689":{},"699":{},"864":{}},"content":{"254":{},"373":{},"608":{},"613":{},"619":{},"645":{},"650":{},"655":{},"656":{},"659":{},"670":{},"674":{},"682":{},"684":{},"687":{},"688":{},"689":{},"690":{},"691":{},"698":{},"724":{},"727":{},"728":{},"730":{},"784":{},"787":{},"788":{},"794":{},"800":{},"808":{},"815":{},"818":{},"839":{},"863":{},"864":{},"865":{},"913":{},"914":{},"924":{},"926":{},"927":{},"929":{},"931":{},"937":{},"946":{},"957":{},"958":{},"960":{}}}],["decid",{"_index":3202,"title":{},"content":{"690":{},"701":{},"721":{},"794":{},"891":{}}}],["decim",{"_index":252,"title":{"649":{}},"content":{"64":{},"137":{},"390":{},"556":{},"649":{},"755":{},"756":{}}}],["decimals=8",{"_index":3434,"title":{},"content":{"757":{}}}],["decis",{"_index":1989,"title":{},"content":{"372":{},"691":{},"910":{}}}],["declar",{"_index":2048,"title":{},"content":{"393":{},"396":{},"397":{},"398":{},"808":{},"811":{}}}],["declin",{"_index":3657,"title":{},"content":{"834":{}}}],["decod",{"_index":1394,"title":{},"content":{"282":{},"283":{},"314":{},"334":{},"335":{},"339":{},"453":{},"462":{},"467":{}}}],["decreas",{"_index":3769,"title":{},"content":{"883":{}}}],["decrypt",{"_index":53,"title":{},"content":{"9":{},"52":{},"58":{},"134":{},"213":{},"214":{},"225":{},"236":{},"269":{},"464":{},"559":{},"680":{},"681":{},"683":{},"779":{}}}],["decrypt/load",{"_index":1186,"title":{},"content":{"260":{}}}],["decrypt_with_storage_nonce/1",{"_index":2395,"title":{"464":{}},"content":{}}],["decryptwallet(ecdhpointx",{"_index":763,"title":{},"content":{"213":{},"214":{}}}],["dedic",{"_index":564,"title":{},"content":{"205":{},"323":{},"603":{},"704":{},"797":{},"885":{}}}],["deduct",{"_index":3653,"title":{},"content":{"832":{}}}],["deeper",{"_index":3638,"title":{},"content":{"821":{},"866":{},"937":{}}}],["deeplink",{"_index":4013,"title":{},"content":{"959":{},"961":{}}}],["defacoin_bal",{"_index":2324,"title":{},"content":{"442":{}}}],["default",{"_index":948,"title":{"671":{}},"content":{"223":{},"381":{},"499":{},"509":{},"510":{},"557":{},"560":{},"671":{},"685":{},"832":{},"840":{},"841":{},"842":{},"851":{},"852":{},"882":{},"984":{},"987":{}}}],["defi",{"_index":2737,"title":{"595":{},"856":{}},"content":{"595":{},"596":{},"597":{},"598":{},"599":{},"600":{},"863":{},"865":{},"870":{},"924":{},"925":{},"926":{},"927":{},"929":{},"932":{},"937":{},"947":{}}}],["defin",{"_index":655,"title":{},"content":{"211":{},"212":{},"223":{},"232":{},"238":{},"241":{},"249":{},"258":{},"259":{},"263":{},"266":{},"269":{},"305":{},"314":{},"323":{},"327":{},"328":{},"330":{},"331":{},"345":{},"364":{},"369":{},"373":{},"374":{},"377":{},"384":{},"414":{},"419":{},"420":{},"421":{},"441":{},"533":{},"556":{},"557":{},"559":{},"659":{},"713":{},"714":{},"742":{},"745":{},"751":{},"754":{},"771":{},"773":{},"779":{},"803":{},"845":{},"1000":{}}}],["definit",{"_index":1780,"title":{},"content":{"347":{},"380":{},"557":{},"697":{},"753":{},"754":{},"756":{},"759":{}}}],["deflat",{"_index":3211,"title":{},"content":{"692":{}}}],["degre",{"_index":3692,"title":{},"content":{"864":{}}}],["delay",{"_index":2863,"title":{},"content":{"627":{}}}],["deleg",{"_index":1865,"title":{},"content":{"374":{},"680":{},"727":{},"845":{},"957":{},"998":{}}}],["delegationsauthor",{"_index":3456,"title":{},"content":{"779":{}}}],["delet",{"_index":1521,"title":{},"content":{"310":{},"472":{},"494":{},"658":{},"836":{},"843":{},"845":{},"852":{}}}],["delete/1",{"_index":2589,"title":{"512":{}},"content":{}}],["delete/2",{"_index":2537,"title":{"503":{}},"content":{}}],["delete_at/3",{"_index":2513,"title":{"494":{}},"content":{}}],["deliv",{"_index":3224,"title":{},"content":{"697":{},"787":{},"887":{}}}],["deliveri",{"_index":3307,"title":{"797":{}},"content":{"727":{},"787":{},"795":{}}}],["delv",{"_index":3785,"title":{},"content":{"887":{},"902":{}}}],["demand",{"_index":3481,"title":{},"content":{"782":{}}}],["demo",{"_index":612,"title":{"209":{}},"content":{"209":{}}}],["depend",{"_index":439,"title":{},"content":{"157":{},"212":{},"213":{},"315":{},"322":{},"323":{},"373":{},"375":{},"377":{},"379":{},"407":{},"553":{},"563":{},"648":{},"677":{},"693":{},"705":{},"709":{},"877":{},"951":{},"953":{}}}],["deploy",{"_index":1839,"title":{"546":{},"554":{},"555":{},"603":{},"794":{},"808":{},"826":{}},"content":{"366":{},"375":{},"530":{},"544":{},"546":{},"550":{},"559":{},"560":{},"605":{},"621":{},"690":{},"702":{},"786":{},"788":{},"789":{},"791":{},"792":{},"794":{},"805":{},"806":{},"808":{},"809":{},"810":{},"811":{},"812":{},"817":{},"819":{},"824":{},"826":{}}}],["deposit",{"_index":3644,"title":{"880":{},"890":{}},"content":{"827":{},"861":{},"862":{},"865":{},"877":{},"880":{},"882":{},"887":{},"890":{},"891":{},"902":{},"903":{},"909":{},"915":{},"916":{},"918":{},"941":{},"942":{},"944":{}}}],["deposit/claim/withdraw/relock",{"_index":3893,"title":{},"content":{"941":{}}}],["depositratioonitslevel",{"_index":3907,"title":{},"content":{"943":{},"944":{}}}],["deposittokensamount",{"_index":3908,"title":{},"content":{"943":{}}}],["deprec",{"_index":322,"title":{"529":{}},"content":{"79":{},"80":{},"402":{}}}],["deps.get",{"_index":2726,"title":{},"content":{"563":{}}}],["depth",{"_index":3713,"title":{},"content":{"862":{},"902":{}}}],["der",{"_index":883,"title":{},"content":{"219":{},"267":{},"268":{},"269":{},"276":{}}}],["deriv",{"_index":671,"title":{"223":{},"224":{}},"content":{"212":{},"213":{},"214":{},"220":{},"223":{},"224":{},"225":{},"227":{},"236":{},"277":{},"290":{},"315":{},"374":{},"670":{},"682":{},"685":{},"852":{},"960":{},"982":{},"983":{},"984":{},"986":{},"987":{},"988":{},"993":{},"996":{}}}],["derivationpath",{"_index":4032,"title":{},"content":{"982":{}}}],["derivearchethickeypair",{"_index":679,"title":{},"content":{"212":{},"213":{},"214":{}}}],["derivearchethickeypair(cx_curve_secp256k1",{"_index":680,"title":{},"content":{"212":{}}}],["derivearchethickeypair(cx_curve_t",{"_index":704,"title":{},"content":{"212":{}}}],["desc",{"_index":39,"title":{},"content":{"19":{}}}],["descend",{"_index":43,"title":{},"content":{"20":{}}}],["describ",{"_index":942,"title":{},"content":{"223":{},"255":{},"400":{},"550":{},"629":{},"681":{},"779":{},"795":{},"813":{},"853":{},"887":{}}}],["descript",{"_index":225,"title":{},"content":{"49":{},"95":{},"178":{},"182":{},"314":{},"320":{},"756":{},"758":{},"993":{},"996":{}}}],["deseri",{"_index":1146,"title":{},"content":{"248":{}}}],["design",{"_index":1545,"title":{"313":{}},"content":{"419":{},"594":{},"612":{},"613":{},"645":{},"674":{},"675":{},"677":{},"752":{},"782":{},"783":{},"786":{},"793":{},"863":{},"865":{},"887":{},"891":{},"901":{},"903":{},"905":{},"906":{},"910":{},"933":{},"949":{}}}],["desir",{"_index":2878,"title":{},"content":{"631":{}}}],["desktop",{"_index":502,"title":{},"content":{"204":{},"206":{},"232":{},"612":{},"658":{},"827":{},"871":{},"949":{},"951":{},"959":{}}}],["destin",{"_index":1872,"title":{},"content":{"372":{},"375":{},"414":{},"449":{},"451":{},"556":{},"557":{},"778":{},"832":{}}}],["destruct",{"_index":2893,"title":{},"content":{"638":{},"645":{},"692":{}}}],["detail",{"_index":169,"title":{"702":{},"833":{},"879":{},"901":{},"902":{}},"content":{"31":{},"248":{},"263":{},"264":{},"269":{},"406":{},"408":{},"410":{},"473":{},"551":{},"702":{},"774":{},"779":{},"831":{},"833":{},"837":{},"854":{},"860":{},"876":{},"886":{},"887":{},"889":{},"891":{},"893":{},"894":{},"895":{},"899":{},"900":{},"901":{},"902":{},"907":{},"908":{},"910":{},"911":{},"937":{}}}],["detect",{"_index":1725,"title":{},"content":{"331":{},"660":{},"711":{},"797":{}}}],["determin",{"_index":331,"title":{},"content":{"91":{},"146":{},"247":{},"251":{},"252":{},"258":{},"261":{},"332":{},"342":{},"352":{},"357":{},"358":{},"372":{},"614":{},"636":{},"662":{},"669":{},"672":{},"697":{},"716":{},"721":{},"722":{},"825":{},"870":{},"891":{},"898":{},"903":{},"932":{},"934":{},"952":{}}}],["determinist",{"_index":2385,"title":{},"content":{"461":{},"527":{},"652":{},"739":{}}}],["dev",{"_index":1199,"title":{},"content":{"263":{},"563":{}}}],["develop",{"_index":574,"title":{"253":{},"570":{},"629":{},"792":{},"927":{}},"content":{"205":{},"206":{},"255":{},"364":{},"373":{},"374":{},"400":{},"535":{},"547":{},"564":{},"568":{},"569":{},"570":{},"571":{},"572":{},"573":{},"595":{},"596":{},"597":{},"598":{},"599":{},"600":{},"604":{},"629":{},"645":{},"658":{},"680":{},"737":{},"752":{},"753":{},"783":{},"784":{},"786":{},"791":{},"792":{},"815":{},"821":{},"839":{},"855":{},"866":{},"869":{},"870":{},"871":{},"924":{},"926":{},"927":{},"931":{},"946":{},"949":{},"953":{},"957":{},"959":{},"998":{}}}],["developer'",{"_index":2369,"title":{},"content":{"453":{}}}],["deviat",{"_index":1778,"title":{},"content":{"346":{}}}],["devic",{"_index":504,"title":{"212":{},"612":{},"635":{},"666":{}},"content":{"204":{},"205":{},"206":{},"211":{},"212":{},"221":{},"230":{},"235":{},"236":{},"279":{},"280":{},"421":{},"658":{},"666":{},"672":{},"727":{},"728":{},"729":{},"779":{},"835":{},"946":{},"949":{},"951":{},"952":{},"994":{}}}],["device_origin",{"_index":724,"title":{},"content":{"212":{}}}],["dex",{"_index":2739,"title":{"599":{},"634":{},"635":{},"863":{},"864":{}},"content":{"595":{},"596":{},"597":{},"598":{},"599":{},"600":{},"863":{},"864":{},"871":{},"874":{},"903":{},"926":{},"929":{},"947":{}}}],["diagram",{"_index":2751,"title":{"594":{}},"content":{"591":{},"594":{}}}],["dialyz",{"_index":1698,"title":{},"content":{"322":{}}}],["dict",{"_index":2515,"title":{},"content":{"495":{}}}],["dictionari",{"_index":3963,"title":{},"content":{"950":{}}}],["didn't",{"_index":3245,"title":{},"content":{"706":{}}}],["diff",{"_index":1373,"title":{},"content":{"277":{},"320":{},"767":{},"768":{}}}],["differ",{"_index":309,"title":{},"content":{"76":{},"200":{},"223":{},"225":{},"309":{},"312":{},"315":{},"342":{},"351":{},"369":{},"370":{},"374":{},"379":{},"382":{},"397":{},"403":{},"422":{},"538":{},"539":{},"541":{},"547":{},"550":{},"645":{},"737":{},"809":{},"865":{},"878":{},"881":{},"891":{},"894":{},"903":{},"907":{},"920":{},"926":{},"931":{},"946":{},"998":{}}}],["differenti",{"_index":2070,"title":{},"content":{"395":{},"728":{}}}],["digest",{"_index":1580,"title":{},"content":{"315":{},"670":{}}}],["digit",{"_index":491,"title":{},"content":{"204":{},"613":{},"675":{},"684":{},"685":{},"727":{},"930":{},"951":{}}}],["digitalis",{"_index":3409,"title":{},"content":{"751":{}}}],["dimens",{"_index":1606,"title":{},"content":{"316":{}}}],["dimension",{"_index":1605,"title":{},"content":{"316":{}}}],["direct",{"_index":1,"title":{"580":{}},"content":{"2":{},"7":{},"156":{},"579":{},"580":{},"581":{},"582":{},"583":{},"584":{},"585":{},"814":{},"832":{},"860":{},"885":{},"895":{},"899":{},"908":{},"911":{}}}],["directli",{"_index":2292,"title":{},"content":{"437":{},"472":{},"560":{},"605":{},"622":{},"778":{},"787":{},"864":{},"869":{},"870":{},"876":{},"886":{},"887":{},"902":{},"905":{},"949":{},"959":{}}}],["directori",{"_index":1689,"title":{},"content":{"322":{},"604":{},"658":{}}}],["disabl",{"_index":2677,"title":{},"content":{"546":{},"799":{}}}],["disagr",{"_index":3035,"title":{},"content":{"660":{},"779":{}}}],["disappear",{"_index":3795,"title":{},"content":{"890":{}}}],["disast",{"_index":3014,"title":{},"content":{"659":{}}}],["disclaim",{"_index":2200,"title":{},"content":{"402":{},"472":{}}}],["disclos",{"_index":3448,"title":{},"content":{"778":{}}}],["disclosur",{"_index":893,"title":{},"content":{"234":{},"665":{},"670":{},"683":{},"711":{},"727":{},"728":{}}}],["discolur",{"_index":3058,"title":{"665":{}},"content":{}}],["disconnect",{"_index":3611,"title":{"813":{}},"content":{"813":{}}}],["discord",{"_index":2874,"title":{},"content":{"630":{},"637":{}}}],["discourag",{"_index":2427,"title":{},"content":{"472":{}}}],["discov",{"_index":3253,"title":{},"content":{"713":{},"794":{}}}],["discoveri",{"_index":1824,"title":{"356":{}},"content":{"358":{},"359":{},"652":{},"684":{},"712":{}}}],["discrep",{"_index":3853,"title":{},"content":{"926":{}}}],["discret",{"_index":2770,"title":{},"content":{"593":{}}}],["discuss",{"_index":2753,"title":{},"content":{"591":{}}}],["disk",{"_index":1496,"title":{},"content":{"309":{},"310":{},"312":{},"314":{},"315":{},"316":{},"317":{},"319":{},"952":{}}}],["dispatch",{"_index":3258,"title":{},"content":{"714":{}}}],["display",{"_index":440,"title":{},"content":{"157":{},"214":{},"280":{},"540":{},"546":{},"564":{},"655":{},"684":{},"734":{},"740":{},"787":{},"797":{},"834":{},"838":{},"852":{},"854":{},"886":{},"887":{},"890":{},"894":{},"901":{},"902":{},"905":{},"907":{},"910":{},"952":{}}}],["dispos",{"_index":1687,"title":{},"content":{"322":{}}}],["disrupt",{"_index":3032,"title":{},"content":{"660":{}}}],["dissemin",{"_index":3268,"title":{},"content":{"717":{}}}],["distilleri",{"_index":1700,"title":{},"content":{"322":{}}}],["distinct",{"_index":3238,"title":{},"content":{"702":{}}}],["distinguish",{"_index":1796,"title":{},"content":{"350":{},"789":{}}}],["distribut",{"_index":1035,"title":{"307":{},"325":{},"364":{}},"content":{"255":{},"259":{},"305":{},"307":{},"327":{},"354":{},"364":{},"651":{},"652":{},"660":{},"661":{},"692":{},"703":{},"712":{},"719":{},"731":{},"732":{},"733":{},"741":{},"743":{},"783":{},"785":{},"877":{},"878":{},"881":{},"887":{},"933":{}}}],["diverg",{"_index":3728,"title":{},"content":{"877":{}}}],["diversif",{"_index":3855,"title":{},"content":{"927":{}}}],["divid",{"_index":1095,"title":{},"content":{"246":{},"257":{},"525":{},"730":{},"742":{},"745":{},"885":{}}}],["dividend",{"_index":2558,"title":{},"content":{"525":{}}}],["divis",{"_index":2562,"title":{},"content":{"525":{}}}],["divisor",{"_index":2559,"title":{},"content":{"525":{}}}],["dn",{"_index":2785,"title":{},"content":{"603":{},"793":{},"800":{},"801":{},"802":{},"804":{}}}],["dnslink",{"_index":3529,"title":{"801":{}},"content":{"793":{},"800":{}}}],["dnslink=/archethic/0f1e3",{"_index":3547,"title":{},"content":{"801":{}}}],["do",{"_index":1584,"title":{},"content":{"315":{},"697":{}}}],["doc",{"_index":542,"title":{},"content":{"204":{},"592":{},"1000":{}}}],["docker",{"_index":1685,"title":{},"content":{"322":{}}}],["document",{"_index":539,"title":{"579":{},"863":{},"1000":{}},"content":{"204":{},"475":{},"476":{},"579":{},"580":{},"581":{},"582":{},"583":{},"584":{},"585":{},"591":{},"592":{},"594":{},"625":{},"642":{},"650":{},"684":{},"821":{},"829":{},"855":{},"866":{},"873":{},"886":{},"1000":{}}}],["docusauru",{"_index":2754,"title":{},"content":{"592":{}}}],["doe",{"_index":2438,"title":{},"content":{"475":{}}}],["doesdecrypt",{"_index":795,"title":{},"content":{"213":{},"214":{}}}],["doesn't",{"_index":793,"title":{},"content":{"213":{},"214":{},"363":{},"377":{},"448":{},"486":{},"546":{},"693":{},"755":{},"787":{},"788":{}}}],["doesn’t",{"_index":3186,"title":{},"content":{"689":{}}}],["dollar",{"_index":3792,"title":{},"content":{"889":{},"901":{}}}],["domain",{"_index":1096,"title":{"603":{},"800":{}},"content":{"257":{},"373":{},"793":{},"800":{},"801":{},"803":{},"804":{},"808":{},"810":{}}}],["don't",{"_index":1592,"title":{},"content":{"315":{},"375":{},"381":{},"387":{},"415":{},"537":{},"656":{},"665":{},"675":{},"695":{},"696":{}}}],["done",{"_index":585,"title":{},"content":{"206":{},"212":{},"269":{},"316":{},"331":{},"374":{},"382":{},"390":{},"546":{},"647":{},"655":{},"757":{},"801":{},"845":{},"848":{},"951":{}}}],["don’t",{"_index":2852,"title":{},"content":{"624":{},"641":{}}}],["dot",{"_index":3609,"title":{},"content":{"812":{}}}],["doubl",{"_index":447,"title":{},"content":{"161":{},"213":{},"214":{},"225":{},"386":{}}}],["down",{"_index":1072,"title":{},"content":{"255":{},"651":{},"655":{},"843":{},"852":{}}}],["download",{"_index":907,"title":{"948":{}},"content":{"236":{},"655":{},"658":{},"683":{},"791":{},"797":{},"798":{},"827":{},"840":{},"871":{},"948":{},"949":{},"956":{}}}],["dri",{"_index":2713,"title":{},"content":{"558":{}}}],["drive",{"_index":3859,"title":{},"content":{"927":{}}}],["drop",{"_index":1802,"title":{},"content":{"350":{}}}],["dropdown",{"_index":2946,"title":{},"content":{"656":{}}}],["due",{"_index":1249,"title":{},"content":{"269":{},"275":{},"342":{},"374":{},"678":{},"788":{},"834":{},"920":{}}}],["dump",{"_index":1517,"title":{},"content":{"310":{},"312":{},"314":{}}}],["duplic",{"_index":1723,"title":{},"content":{"364":{},"491":{}}}],["durabl",{"_index":3127,"title":{},"content":{"674":{}}}],["durat",{"_index":2865,"title":{},"content":{"627":{},"883":{},"890":{},"891":{},"945":{},"952":{}}}],["dure",{"_index":1165,"title":{"627":{}},"content":{"252":{},"260":{},"269":{},"315":{},"316":{},"324":{},"343":{},"355":{},"363":{},"372":{},"374":{},"377":{},"380":{},"604":{},"627":{},"638":{},"649":{},"672":{},"685":{},"692":{},"693":{},"697":{},"715":{},"716":{},"743":{},"745":{},"747":{},"756":{},"820":{},"891":{},"894":{},"901":{},"907":{}}}],["dynam",{"_index":1026,"title":{},"content":{"255":{},"395":{},"877":{},"894":{},"901":{},"924":{},"926":{}}}],["e",{"_index":1609,"title":{},"content":{"316":{},"377":{}}}],["e.g",{"_index":153,"title":{},"content":{"40":{},"815":{}}}],["e0",{"_index":871,"title":{},"content":{"217":{},"218":{},"219":{}}}],["e_{key",{"_index":929,"title":{},"content":{"221":{}}}],["e_{priv",{"_index":933,"title":{},"content":{"221":{}}}],["e_{pub",{"_index":932,"title":{},"content":{"221":{},"225":{}}}],["each",{"_index":1106,"title":{},"content":{"239":{},"242":{},"246":{},"247":{},"250":{},"269":{},"314":{},"315":{},"327":{},"342":{},"343":{},"350":{},"352":{},"364":{},"369":{},"371":{},"375":{},"377":{},"381":{},"413":{},"414":{},"415":{},"420":{},"422":{},"450":{},"452":{},"453":{},"454":{},"456":{},"490":{},"535":{},"592":{},"646":{},"652":{},"656":{},"659":{},"661":{},"665":{},"668":{},"670":{},"672":{},"683":{},"685":{},"687":{},"690":{},"692":{},"693":{},"697":{},"701":{},"705":{},"713":{},"717":{},"718":{},"721":{},"724":{},"731":{},"732":{},"733":{},"734":{},"737":{},"740":{},"743":{},"744":{},"745":{},"747":{},"777":{},"778":{},"787":{},"788":{},"794":{},"797":{},"812":{},"814":{},"845":{},"878":{},"881":{},"882":{},"887":{},"891":{},"898":{},"900":{},"901":{},"903":{},"907":{},"910":{},"924":{},"930":{},"931":{},"932":{},"952":{}}}],["earlier",{"_index":1748,"title":{},"content":{"340":{}}}],["earn",{"_index":3698,"title":{},"content":{"862":{},"865":{},"877":{},"878":{},"885":{},"889":{},"891":{},"902":{},"925":{},"933":{},"941":{}}}],["earth",{"_index":3171,"title":{},"content":{"687":{}}}],["eas",{"_index":3005,"title":{},"content":{"652":{},"696":{},"737":{},"785":{},"865":{},"906":{}}}],["easi",{"_index":2668,"title":{"786":{}},"content":{"541":{},"592":{},"674":{},"887":{},"901":{},"902":{},"949":{},"959":{},"998":{}}}],["easier",{"_index":1842,"title":{},"content":{"373":{},"376":{},"839":{},"925":{}}}],["easili",{"_index":969,"title":{},"content":{"224":{},"233":{},"263":{},"315":{},"371":{},"377":{},"675":{},"739":{},"865":{},"887":{},"900":{},"902":{},"944":{},"959":{}}}],["ecc",{"_index":1412,"title":{},"content":{"284":{},"293":{},"680":{}}}],["ecc_public_key",{"_index":1410,"title":{},"content":{"283":{},"294":{}}}],["eccpoints",{"_index":1469,"title":{"302":{},"303":{}},"content":{}}],["eccsigns",{"_index":1365,"title":{"276":{},"300":{},"301":{}},"content":{}}],["ecdh",{"_index":755,"title":{},"content":{"213":{},"214":{},"225":{},"277":{},"289":{},"302":{},"303":{}}}],["ecdh_point_x(e_{priv",{"_index":986,"title":{},"content":{"225":{}}}],["ecdh_point_x(e_{pub",{"_index":985,"title":{},"content":{"225":{}}}],["ecdh_secret",{"_index":984,"title":{},"content":{"225":{}}}],["ecdhcurrentkey(euphemeralkey",{"_index":1468,"title":{"302":{}},"content":{}}],["ecdhpastkey",{"_index":1471,"title":{"303":{}},"content":{}}],["ecdhpointx",{"_index":752,"title":{},"content":{"213":{},"214":{}}}],["ecdsa",{"_index":1321,"title":{},"content":{"269":{}}}],["eci",{"_index":971,"title":{},"content":{"225":{},"352":{}}}],["eciese(ellipt",{"_index":972,"title":{},"content":{"225":{}}}],["econom",{"_index":3484,"title":{"783":{}},"content":{}}],["economi",{"_index":3480,"title":{},"content":{"782":{},"783":{}}}],["ecosystem",{"_index":579,"title":{"686":{},"724":{},"924":{}},"content":{"205":{},"591":{},"608":{},"655":{},"679":{},"688":{},"690":{},"698":{},"699":{},"863":{},"921":{},"923":{},"924":{},"925":{},"927":{},"929":{},"937":{},"957":{}}}],["ecosystem'",{"_index":3745,"title":{},"content":{"870":{},"924":{},"927":{}}}],["ed25519",{"_index":995,"title":{},"content":{"228":{},"668":{},"670":{},"685":{}}}],["eddsa",{"_index":3077,"title":{},"content":{"671":{}}}],["edg",{"_index":2884,"title":{},"content":{"637":{},"827":{}}}],["edit",{"_index":3681,"title":{},"content":{"846":{},"847":{}}}],["editor",{"_index":2782,"title":{},"content":{"594":{}}}],["editori",{"_index":2776,"title":{},"content":{"593":{}}}],["educ",{"_index":3744,"title":{},"content":{"870":{}}}],["effect",{"_index":2667,"title":{},"content":{"540":{},"547":{},"678":{},"711":{},"827":{},"865":{},"871":{},"887":{},"891":{},"894":{},"919":{}}}],["effici",{"_index":1477,"title":{"788":{}},"content":{"307":{},"308":{},"309":{},"310":{},"311":{},"312":{},"313":{},"316":{},"317":{},"318":{},"351":{},"363":{},"652":{},"714":{},"752":{},"788":{},"865":{},"869":{},"906":{},"926":{},"998":{}}}],["effort",{"_index":1537,"title":{},"content":{"312":{}}}],["effortlessli",{"_index":3287,"title":{},"content":{"724":{}}}],["elaps",{"_index":2844,"title":{},"content":{"618":{}}}],["elect",{"_index":1144,"title":{"304":{},"661":{},"733":{}},"content":{"248":{},"264":{},"304":{},"323":{},"342":{},"652":{},"659":{},"660":{},"661":{},"662":{},"672":{},"687":{},"693":{},"722":{},"727":{},"733":{},"739":{},"760":{},"779":{}}}],["electr",{"_index":3359,"title":{},"content":{"729":{}}}],["electron",{"_index":3306,"title":{},"content":{"727":{},"951":{}}}],["element",{"_index":2316,"title":{},"content":{"441":{},"450":{},"452":{},"454":{},"456":{},"481":{},"483":{},"486":{},"487":{},"488":{},"491":{},"493":{},"494":{},"505":{},"506":{},"507":{},"679":{},"690":{},"703":{},"708":{},"711":{},"727":{},"877":{},"952":{}}}],["elig",{"_index":3664,"title":{},"content":{"838":{}}}],["elimin",{"_index":3098,"title":{},"content":{"678":{},"727":{}}}],["elixir",{"_index":1019,"title":{"255":{}},"content":{"254":{},"255":{},"386":{},"563":{},"701":{}}}],["ellipt",{"_index":894,"title":{},"content":{"225":{},"234":{},"267":{},"277":{},"668":{},"670":{},"680":{},"683":{},"685":{},"841":{},"853":{}}}],["emb",{"_index":1741,"title":{},"content":{"339":{},"684":{},"750":{},"803":{}}}],["embed",{"_index":1039,"title":{},"content":{"255":{},"341":{},"675":{},"683":{},"698":{}}}],["emiss",{"_index":3339,"title":{},"content":{"728":{}}}],["emit",{"_index":1192,"title":{},"content":{"261":{},"342":{},"737":{},"952":{}}}],["emphas",{"_index":3866,"title":{},"content":{"929":{}}}],["emploi",{"_index":3948,"title":{},"content":{"949":{}}}],["employ",{"_index":3632,"title":{},"content":{"820":{},"870":{},"934":{}}}],["empti",{"_index":2060,"title":{},"content":{"394":{},"395":{},"406":{},"484":{},"496":{},"835":{},"984":{},"987":{}}}],["empty?/1",{"_index":2470,"title":{"484":{}},"content":{}}],["emul",{"_index":4005,"title":{},"content":{"956":{}}}],["en",{"_index":3951,"title":{},"content":{"949":{},"993":{},"996":{}}}],["enabl",{"_index":568,"title":{},"content":{"205":{},"564":{},"608":{},"672":{},"674":{},"677":{},"729":{},"803":{},"808":{},"814":{},"817":{},"818":{},"827":{},"861":{},"871":{},"886":{},"887":{},"891":{},"895":{},"899":{},"903":{},"908":{},"911":{},"930":{},"946":{},"957":{},"959":{}}}],["enc($wk_{a",{"_index":771,"title":{},"content":{"213":{},"214":{}}}],["enc($wk{a",{"_index":787,"title":{},"content":{"213":{},"214":{}}}],["enc(w_{",{"_index":923,"title":{},"content":{"221":{},"225":{}}}],["enc(wk_{a",{"_index":926,"title":{},"content":{"221":{},"225":{}}}],["enclav",{"_index":3247,"title":{},"content":{"711":{}}}],["encod",{"_index":796,"title":{"226":{},"227":{},"228":{},"229":{}},"content":{"213":{},"214":{},"217":{},"218":{},"221":{},"225":{},"226":{},"228":{},"229":{},"232":{},"267":{},"314":{},"316":{},"332":{},"346":{},"453":{},"466":{},"670":{},"796":{},"817":{},"952":{}}}],["encode(o_{pub",{"_index":874,"title":{},"content":{"217":{},"221":{}}}],["encode(pub_key",{"_index":886,"title":{},"content":{"219":{},"221":{}}}],["encoded_data",{"_index":2410,"title":{},"content":{"467":{}}}],["encoded_secret1",{"_index":2367,"title":{},"content":{"453":{}}}],["encoded_secret_key",{"_index":2365,"title":{},"content":{"453":{}}}],["encoded_wallet",{"_index":806,"title":{},"content":{"213":{},"214":{}}}],["encodedwallet",{"_index":865,"title":{},"content":{"214":{}}}],["encoding/decod",{"_index":2401,"title":{},"content":{"465":{},"669":{}}}],["encount",{"_index":2702,"title":{},"content":{"550":{}}}],["encourag",{"_index":2719,"title":{},"content":{"562":{},"591":{},"593":{},"933":{}}}],["encrypt",{"_index":50,"title":{"225":{},"683":{}},"content":{"9":{},"58":{},"134":{},"213":{},"220":{},"221":{},"225":{},"226":{},"230":{},"234":{},"235":{},"236":{},"269":{},"352":{},"422":{},"464":{},"559":{},"586":{},"587":{},"588":{},"672":{},"674":{},"675":{},"680":{},"681":{},"683":{},"717":{},"779":{},"804":{},"805":{},"952":{},"972":{}}}],["encryptedsecretkey",{"_index":56,"title":{},"content":{"9":{}}}],["end",{"_index":666,"title":{"590":{},"683":{},"806":{}},"content":{"211":{},"234":{},"309":{},"310":{},"314":{},"316":{},"322":{},"351":{},"368":{},"369":{},"370":{},"371":{},"372":{},"380":{},"381":{},"389":{},"392":{},"393":{},"397":{},"398":{},"400":{},"401":{},"403":{},"407":{},"408":{},"409":{},"410":{},"411":{},"413":{},"414":{},"420":{},"425":{},"427":{},"428":{},"472":{},"473":{},"486":{},"501":{},"532":{},"533":{},"534":{},"535":{},"536":{},"537":{},"538":{},"545":{},"548":{},"549":{},"560":{},"589":{},"590":{},"627":{},"674":{},"675":{},"683":{},"710":{},"743":{},"744":{},"745":{},"746":{},"789":{},"804":{},"805":{},"812":{},"883":{},"884":{},"890":{},"891":{}}}],["end_dat",{"_index":1961,"title":{},"content":{"372":{}}}],["endianthen",{"_index":830,"title":{},"content":{"214":{}}}],["endord",{"_index":1252,"title":{},"content":{"269":{}}}],["endors",{"_index":1237,"title":{},"content":{"269":{}}}],["endpoint",{"_index":162,"title":{"28":{}},"content":{"28":{},"126":{},"127":{},"166":{},"187":{},"350":{},"605":{},"799":{},"805":{},"826":{},"842":{},"845":{},"849":{},"853":{},"952":{},"959":{},"960":{},"962":{},"964":{}}}],["endpoint.ip",{"_index":165,"title":{},"content":{"29":{}}}],["endpoint.port",{"_index":166,"title":{},"content":{"29":{}}}],["endpointurl",{"_index":4020,"title":{},"content":{"964":{}}}],["energi",{"_index":2986,"title":{},"content":{"650":{},"672":{},"687":{}}}],["enf",{"_index":1617,"title":{},"content":{"316":{}}}],["engag",{"_index":3699,"title":{},"content":{"865":{},"887":{},"891":{},"900":{},"903":{},"905":{},"925":{}}}],["engin",{"_index":1474,"title":{},"content":{"308":{},"309":{},"680":{},"949":{}}}],["english",{"_index":3932,"title":{},"content":{"947":{},"950":{},"952":{},"993":{},"996":{}}}],["enhanc",{"_index":2750,"title":{"691":{}},"content":{"591":{},"608":{},"619":{},"691":{},"727":{},"818":{},"865":{},"870":{},"904":{},"906":{},"927":{},"929":{}}}],["enjoy",{"_index":2940,"title":{},"content":{"655":{},"949":{}}}],["enlist",{"_index":3392,"title":{},"content":{"740":{}}}],["enough",{"_index":1652,"title":{},"content":{"320":{},"702":{},"706":{}}}],["enrol",{"_index":897,"title":{"235":{}},"content":{"356":{},"739":{}}}],["enrollmentd",{"_index":197,"title":{},"content":{"43":{}}}],["ensur",{"_index":311,"title":{"932":{}},"content":{"76":{},"200":{},"248":{},"255":{},"321":{},"346":{},"349":{},"363":{},"364":{},"374":{},"390":{},"406":{},"414":{},"604":{},"618":{},"622":{},"631":{},"638":{},"645":{},"651":{},"652":{},"659":{},"660":{},"661":{},"672":{},"674":{},"678":{},"692":{},"693":{},"702":{},"705":{},"707":{},"708":{},"720":{},"730":{},"731":{},"733":{},"741":{},"743":{},"746":{},"747":{},"783":{},"817":{},"819":{},"820":{},"827":{},"832":{},"860":{},"869":{},"870":{},"871":{},"877":{},"881":{},"894":{},"895":{},"898":{},"899":{},"907":{},"908":{},"910":{},"911":{},"925":{},"930":{},"932":{},"934":{},"936":{}}}],["enter",{"_index":2049,"title":{},"content":{"393":{},"564":{},"631":{},"658":{},"689":{},"814":{},"831":{},"832":{},"833":{},"842":{},"846":{},"847":{},"853":{},"893":{},"894":{},"907":{},"910":{},"943":{},"952":{}}}],["enthusiast",{"_index":3705,"title":{},"content":{"865":{}}}],["entir",{"_index":1071,"title":{},"content":{"255":{},"316":{},"329":{},"330":{},"338":{},"342":{},"359":{},"373":{},"438":{},"621":{},"652":{},"659":{},"692":{},"710":{},"711":{},"717":{},"718":{},"721":{},"725":{},"734":{},"737":{},"779":{},"797":{},"945":{}}}],["entiti",{"_index":3843,"title":{},"content":{"925":{}}}],["entitl",{"_index":3711,"title":{},"content":{"861":{},"891":{},"903":{},"907":{},"931":{}}}],["entri",{"_index":1107,"title":{},"content":{"239":{},"242":{},"310":{},"801":{},"802":{},"836":{},"890":{}}}],["entropi",{"_index":950,"title":{},"content":{"223":{},"950":{}}}],["entrust",{"_index":3122,"title":{},"content":{"674":{}}}],["enum",{"_index":21,"title":{"581":{}},"content":{"4":{},"19":{},"80":{},"142":{},"579":{},"580":{},"581":{},"582":{},"583":{},"584":{},"585":{},"1000":{}}}],["envelop",{"_index":1814,"title":{"352":{}},"content":{"352":{}}}],["environ",{"_index":1661,"title":{},"content":{"321":{},"342":{},"563":{},"724":{},"813":{},"869":{},"870":{},"924":{},"932":{}}}],["environmn",{"_index":3380,"title":{},"content":{"736":{}}}],["ephemer",{"_index":930,"title":{},"content":{"221":{},"225":{}}}],["ephpublickey",{"_index":750,"title":{},"content":{"213":{},"214":{}}}],["ephpublickeys",{"_index":751,"title":{},"content":{"213":{},"214":{}}}],["epoch",{"_index":1130,"title":{"737":{}},"content":{"246":{},"338":{},"527":{},"534":{},"548":{},"737":{}}}],["epoch/cycl",{"_index":1172,"title":{},"content":{"252":{}}}],["epoch/slot",{"_index":3271,"title":{},"content":{"718":{}}}],["equal",{"_index":792,"title":{},"content":{"213":{},"214":{},"291":{}}}],["equip",{"_index":3236,"title":{},"content":{"701":{}}}],["equit",{"_index":2900,"title":{},"content":{"638":{}}}],["equival",{"_index":2043,"title":{},"content":{"391":{},"450":{},"452":{},"454":{},"456":{},"458":{},"460":{},"461":{},"509":{},"608":{},"725":{},"861":{},"916":{},"918":{}}}],["era",{"_index":3188,"title":{},"content":{"689":{}}}],["erc",{"_index":2734,"title":{"577":{},"643":{}},"content":{"574":{},"575":{},"576":{},"577":{},"578":{},"645":{}}}],["erc20",{"_index":2802,"title":{"645":{}},"content":{"608":{},"627":{},"815":{},"856":{},"858":{}}}],["erlang",{"_index":1030,"title":{},"content":{"255":{},"307":{},"355":{}}}],["error",{"_index":19,"title":{"400":{},"630":{}},"content":{"4":{},"31":{},"79":{},"159":{},"201":{},"203":{},"387":{},"400":{},"539":{},"628":{},"630":{},"779":{}}}],["error.messag",{"_index":327,"title":{},"content":{"80":{}}}],["errorcontext",{"_index":17,"title":{"4":{}},"content":{"4":{},"79":{},"80":{}}}],["errorcontext.invalid_transact",{"_index":25,"title":{},"content":{"5":{}}}],["errorcontext.network_issu",{"_index":27,"title":{},"content":{"5":{}}}],["errordata",{"_index":170,"title":{"159":{}},"content":{"31":{},"32":{},"159":{}}}],["errordetail",{"_index":168,"title":{"31":{}},"content":{"31":{},"79":{},"80":{},"160":{},"166":{},"187":{}}}],["errordetails.cod",{"_index":172,"title":{},"content":{"32":{}}}],["errordetails.data",{"_index":173,"title":{},"content":{"32":{}}}],["errordetails.messag",{"_index":174,"title":{},"content":{"32":{}}}],["errorn",{"_index":1726,"title":{},"content":{"331":{}}}],["esc",{"_index":3682,"title":{},"content":{"846":{},"847":{}}}],["especi",{"_index":2761,"title":{},"content":{"593":{},"998":{}}}],["essenti",{"_index":2793,"title":{"894":{},"898":{},"901":{},"907":{},"910":{}},"content":{"604":{},"645":{},"690":{},"699":{},"703":{},"829":{},"873":{},"887":{},"902":{},"903":{},"926":{}}}],["establish",{"_index":1795,"title":{},"content":{"350":{},"619":{},"660":{},"818":{},"870":{},"898":{}}}],["estim",{"_index":2681,"title":{"614":{},"636":{}},"content":{"546":{},"639":{},"826":{},"890":{},"907":{}}}],["esys_createprimari",{"_index":1331,"title":{},"content":{"269":{}}}],["esys_ecdh_zgen",{"_index":1379,"title":{},"content":{"277":{}}}],["esys_initi",{"_index":1351,"title":{},"content":{"272":{}}}],["esys_sign",{"_index":1369,"title":{},"content":{"276":{}}}],["esys_tr_password",{"_index":1334,"title":{},"content":{"269":{}}}],["esys_tr_rh_endors",{"_index":1332,"title":{},"content":{"269":{}}}],["et",{"_index":1102,"title":{},"content":{"237":{},"305":{},"343":{},"355":{}}}],["etc",{"_index":1008,"title":{},"content":{"232":{},"248":{},"264":{},"309":{},"312":{},"351":{},"547":{},"591":{},"671":{},"674":{},"680":{},"683":{},"693":{},"695":{},"724":{},"751":{},"779":{},"787":{},"789":{},"800":{},"839":{},"855":{},"972":{},"993":{}}}],["etc/letsencrypt/live/example.com/cert.pem",{"_index":3556,"title":{},"content":{"804":{}}}],["etc/letsencrypt/live/example.com/privatekey.pem",{"_index":3557,"title":{},"content":{"804":{}}}],["eth",{"_index":2804,"title":{},"content":{"608":{},"613":{},"856":{},"858":{}}}],["ether",{"_index":2831,"title":{},"content":{"613":{}}}],["ethereum",{"_index":490,"title":{},"content":{"204":{},"465":{},"608":{},"610":{},"611":{},"613":{},"645":{},"646":{},"648":{},"649":{},"815":{}}}],["euphemer",{"_index":1375,"title":{},"content":{"277":{}}}],["euphemeralkey",{"_index":1372,"title":{"277":{},"303":{}},"content":{}}],["euphermerakley",{"_index":1435,"title":{"289":{}},"content":{}}],["eur",{"_index":358,"title":{},"content":{"95":{},"343":{}}}],["evalu",{"_index":2152,"title":{},"content":{"403":{}}}],["even",{"_index":1063,"title":{},"content":{"255":{},"321":{},"350":{},"387":{},"591":{},"593":{},"638":{},"659":{},"670":{},"672":{},"678":{},"682":{},"689":{},"698":{},"785":{},"787":{},"877":{}}}],["evenif",{"_index":1542,"title":{},"content":{"312":{}}}],["event",{"_index":1762,"title":{},"content":{"342":{},"373":{},"384":{},"675":{}}}],["everyth",{"_index":1543,"title":{},"content":{"312":{},"550":{},"754":{}}}],["evid",{"_index":3446,"title":{},"content":{"777":{}}}],["evm",{"_index":2261,"title":{"465":{},"613":{},"621":{},"622":{},"630":{},"631":{},"819":{},"820":{},"822":{}},"content":{"418":{},"465":{},"611":{},"613":{},"616":{},"619":{},"621":{},"622":{},"631":{},"649":{},"818":{},"819":{},"820":{},"822":{},"830":{},"831":{},"832":{},"834":{}}}],["evm.abi_decode(signatur",{"_index":2409,"title":{},"content":{"467":{}}}],["evm.abi_encode(signatur",{"_index":2405,"title":{},"content":{"466":{}}}],["evolut",{"_index":1707,"title":{},"content":{"327":{}}}],["evolv",{"_index":1011,"title":{},"content":{"233":{},"315":{},"667":{},"797":{}}}],["ew_{a",{"_index":878,"title":{},"content":{"218":{},"219":{},"221":{}}}],["ewk_{a",{"_index":877,"title":{},"content":{"218":{},"219":{},"221":{}}}],["ewka",{"_index":740,"title":{},"content":{"213":{}}}],["ex",{"_index":2406,"title":{},"content":{"466":{},"467":{},"608":{}}}],["exact",{"_index":3626,"title":{},"content":{"826":{},"887":{},"902":{},"910":{}}}],["exactli",{"_index":1282,"title":{},"content":{"269":{},"638":{},"910":{}}}],["examin",{"_index":3806,"title":{},"content":{"899":{},"908":{}}}],["exampl",{"_index":493,"title":{"346":{},"367":{},"407":{},"409":{},"411":{},"412":{},"548":{},"549":{},"935":{},"944":{}},"content":{"204":{},"307":{},"332":{},"342":{},"343":{},"351":{},"375":{},"377":{},"382":{},"393":{},"404":{},"405":{},"406":{},"416":{},"420":{},"421":{},"447":{},"448":{},"547":{},"549":{},"560":{},"592":{},"603":{},"605":{},"628":{},"645":{},"649":{},"670":{},"684":{},"685":{},"697":{},"702":{},"742":{},"747":{},"748":{},"755":{},"756":{},"757":{},"758":{},"759":{},"765":{},"788":{},"796":{},"825":{},"842":{},"883":{},"941":{},"945":{},"952":{},"958":{}}}],["example.com",{"_index":3542,"title":{},"content":{"801":{},"803":{},"804":{}}}],["exce",{"_index":1728,"title":{},"content":{"331":{},"894":{}}}],["excel",{"_index":3940,"title":{},"content":{"949":{}}}],["except",{"_index":1243,"title":{},"content":{"269":{},"535":{},"631":{},"671":{},"705":{}}}],["excess",{"_index":2993,"title":{},"content":{"651":{},"920":{}}}],["exchang",{"_index":500,"title":{"864":{}},"content":{"204":{},"255":{},"277":{},"608":{},"618":{},"645":{},"715":{},"724":{},"727":{},"815":{},"817":{},"820":{},"856":{},"858":{},"860":{},"863":{},"864":{},"903":{},"913":{},"914":{},"925":{},"926":{},"929":{}}}],["exclud",{"_index":2791,"title":{},"content":{"604":{},"808":{},"870":{},"934":{}}}],["exclus",{"_index":2826,"title":{},"content":{"612":{},"827":{}}}],["execut",{"_index":1052,"title":{"834":{}},"content":{"255":{},"319":{},"322":{},"373":{},"375":{},"376":{},"378":{},"381":{},"384":{},"406":{},"407":{},"472":{},"527":{},"532":{},"533":{},"545":{},"548":{},"558":{},"559":{},"613":{},"648":{},"693":{},"720":{},"819":{},"831":{},"845":{},"860":{},"870":{},"893":{},"894":{},"907":{},"919":{},"920":{},"921":{},"932":{},"934":{}}}],["executor",{"_index":2,"title":{},"content":{"2":{},"7":{}}}],["exhaust",{"_index":1531,"title":{},"content":{"311":{},"312":{},"314":{}}}],["exist",{"_index":1185,"title":{"712":{}},"content":{"260":{},"315":{},"318":{},"334":{},"340":{},"351":{},"393":{},"436":{},"510":{},"710":{},"722":{},"785":{},"788":{},"792":{},"820":{},"898":{}}}],["exit",{"_index":2057,"title":{},"content":{"393":{},"734":{},"846":{},"847":{}}}],["exlud",{"_index":1581,"title":{},"content":{"315":{}}}],["expand",{"_index":2156,"title":{},"content":{"405":{},"608":{}}}],["expect",{"_index":2031,"title":{},"content":{"389":{},"421":{},"541":{},"546":{},"548":{},"549":{},"656":{},"887":{},"894":{},"899":{},"908":{}}}],["expens",{"_index":3509,"title":{},"content":{"788":{}}}],["experi",{"_index":572,"title":{},"content":{"205":{},"566":{},"637":{},"863":{},"865":{},"927":{},"937":{},"949":{}}}],["experienc",{"_index":3704,"title":{},"content":{"865":{}}}],["experiment",{"_index":3849,"title":{},"content":{"925":{}}}],["expir",{"_index":2193,"title":{},"content":{"409":{},"709":{},"778":{}}}],["explain",{"_index":509,"title":{"858":{}},"content":{"204":{},"265":{},"278":{},"591":{},"856":{},"993":{},"996":{}}}],["explicit",{"_index":2250,"title":{},"content":{"415":{}}}],["explicitli",{"_index":3378,"title":{},"content":{"736":{}}}],["exploit",{"_index":3045,"title":{},"content":{"672":{},"674":{},"689":{}}}],["explor",{"_index":1132,"title":{"734":{},"902":{},"937":{}},"content":{"246":{},"354":{},"546":{},"637":{},"734":{},"735":{},"739":{},"740":{},"826":{},"827":{},"887":{},"900":{},"902":{},"925":{}}}],["expon",{"_index":2544,"title":{},"content":{"522":{}}}],["export",{"_index":1951,"title":{"398":{}},"content":{"371":{},"396":{},"397":{},"398":{},"445":{},"545":{}}}],["expos",{"_index":3389,"title":{},"content":{"739":{},"797":{},"957":{}}}],["exposur",{"_index":3321,"title":{},"content":{"727":{},"958":{}}}],["expr",{"_index":2035,"title":{},"content":{"389":{},"403":{},"404":{}}}],["express",{"_index":2144,"title":{"404":{}},"content":{"403":{},"404":{},"405":{},"419":{},"424":{},"504":{},"889":{}}}],["extend",{"_index":1771,"title":{},"content":{"344":{},"345":{},"891":{}}}],["extendedprivatekey",{"_index":967,"title":{},"content":{"224":{}}}],["extendedse",{"_index":964,"title":{},"content":{"224":{}}}],["extendedseed.slice(0",{"_index":968,"title":{},"content":{"224":{}}}],["extens",{"_index":2015,"title":{},"content":{"387":{},"591":{},"592":{},"752":{},"800":{},"808":{},"827":{},"871":{},"949":{}}}],["extern",{"_index":1213,"title":{},"content":{"266":{},"337":{},"341":{},"342":{},"373":{},"398":{},"593":{},"704":{},"705":{},"724":{},"727":{},"789":{}}}],["extract",{"_index":347,"title":{},"content":{"88":{},"224":{},"283":{},"316":{},"329":{},"424":{},"504":{},"505":{},"507":{}}}],["extract/2",{"_index":2563,"title":{"505":{}},"content":{}}],["f",{"_index":1128,"title":{},"content":{"246":{}}}],["f28c3d5b3828ad3f8682f1b1d14a8507b829f65f7be6c50427a6019ccb6801c",{"_index":2239,"title":{},"content":{"425":{}}}],["f9",{"_index":1446,"title":{},"content":{"292":{}}}],["fabric",{"_index":3096,"title":{},"content":{"678":{}}}],["face",{"_index":2016,"title":{},"content":{"387":{},"650":{},"674":{},"742":{},"947":{},"951":{}}}],["facial",{"_index":3970,"title":{},"content":{"951":{}}}],["facilit",{"_index":2020,"title":{},"content":{"387":{},"608":{},"645":{},"815":{},"863":{},"864":{},"865":{},"894":{},"910":{},"916":{},"923":{},"925":{},"929":{},"930":{},"959":{},"998":{}}}],["fact",{"_index":3100,"title":{},"content":{"678":{},"799":{}}}],["facto",{"_index":3111,"title":{},"content":{"680":{}}}],["factor",{"_index":3972,"title":{},"content":{"951":{}}}],["fail",{"_index":1717,"title":{},"content":{"363":{},"405":{},"558":{}}}],["failur",{"_index":1070,"title":{},"content":{"255":{},"321":{},"390":{}}}],["fair",{"_index":1720,"title":{"932":{}},"content":{"364":{},"692":{},"869":{},"881":{},"936":{}}}],["fallback",{"_index":1598,"title":{},"content":{"315":{}}}],["fals",{"_index":438,"title":{},"content":{"155":{},"386":{},"389":{},"405":{},"407":{},"408":{},"427":{},"428":{},"476":{},"479":{},"483":{},"484":{},"506":{},"515":{}}}],["famili",{"_index":1501,"title":{},"content":{"309":{},"329":{},"666":{},"672":{}}}],["familiar",{"_index":3647,"title":{},"content":{"827":{},"871":{}}}],["faq",{"_index":3639,"title":{"823":{},"867":{}},"content":{"823":{},"832":{},"867":{}}}],["far",{"_index":3518,"title":{},"content":{"789":{},"887":{}}}],["fare",{"_index":3216,"title":{},"content":{"693":{}}}],["farm",{"_index":3688,"title":{"859":{},"862":{},"878":{},"887":{},"889":{},"891":{},"923":{},"933":{},"938":{}},"content":{"862":{},"863":{},"865":{},"871":{},"874":{},"877":{},"878":{},"881":{},"885":{},"886":{},"887":{},"889":{},"891":{},"905":{},"913":{},"929":{},"933":{},"937":{},"944":{},"945":{},"947":{}}}],["farm'",{"_index":3788,"title":{},"content":{"887":{},"891":{},"945":{}}}],["fashion",{"_index":3395,"title":{},"content":{"740":{}}}],["fast",{"_index":1023,"title":{},"content":{"237":{},"254":{},"255":{},"306":{},"311":{},"315":{},"330":{},"355":{},"357":{},"358":{},"687":{},"752":{}}}],["faster",{"_index":1103,"title":{},"content":{"237":{},"248":{},"305":{},"343":{},"363":{},"377":{}}}],["faucet",{"_index":2680,"title":{},"content":{"546":{},"564":{},"566":{},"825":{}}}],["fault",{"_index":1036,"title":{},"content":{"255":{},"659":{},"713":{}}}],["favor",{"_index":3835,"title":{},"content":{"894":{}}}],["favorit",{"_index":3183,"title":{},"content":{"689":{}}}],["feasibl",{"_index":3804,"title":{},"content":{"898":{}}}],["featur",{"_index":1069,"title":{"830":{},"865":{},"874":{},"947":{}},"content":{"255":{},"315":{},"349":{},"373":{},"375":{},"419":{},"545":{},"625":{},"642":{},"690":{},"701":{},"703":{},"730":{},"751":{},"794":{},"820":{},"821":{},"835":{},"838":{},"865":{},"866":{},"871":{},"886":{},"890":{},"891":{},"905":{},"947":{},"949":{}}}],["featuresaccess",{"_index":3934,"title":{},"content":{"947":{}}}],["featuresdecentr",{"_index":3926,"title":{},"content":{"947":{}}}],["fee",{"_index":185,"title":{"383":{},"692":{},"875":{},"876":{},"904":{}},"content":{"37":{},"88":{},"343":{},"417":{},"546":{},"605":{},"610":{},"639":{},"648":{},"650":{},"687":{},"692":{},"693":{},"695":{},"696":{},"697":{},"706":{},"779":{},"788":{},"808":{},"809":{},"810":{},"811":{},"826":{},"832":{},"833":{},"838":{},"860":{},"861":{},"863":{},"865":{},"870":{},"876":{},"877":{},"894":{},"895":{},"898":{},"901":{},"902":{},"903":{},"904":{},"905":{},"907":{},"916":{},"921":{},"925":{},"931":{},"934":{}}}],["feed",{"_index":3241,"title":{},"content":{"706":{},"849":{}}}],["feedback",{"_index":2768,"title":{},"content":{"593":{}}}],["fetch",{"_index":1184,"title":{},"content":{"260":{},"283":{},"286":{},"290":{},"292":{},"293":{},"294":{},"295":{},"297":{},"298":{},"299":{},"338":{},"341":{},"342":{},"345":{},"346":{},"355":{},"358":{},"362":{},"363":{},"372":{},"429":{},"472":{},"563":{},"706":{},"716":{},"739":{},"765":{},"789":{},"797":{},"818":{}}}],["fetch_id_from_address/1",{"_index":2626,"title":{"529":{}},"content":{}}],["fetchkey",{"_index":1405,"title":{},"content":{"283":{}}}],["fetchkey(keyindex",{"_index":1397,"title":{"283":{}},"content":{}}],["few",{"_index":307,"title":{},"content":{"76":{},"200":{},"238":{},"241":{},"245":{},"259":{},"438":{},"547":{},"593":{},"655":{},"759":{},"786":{},"834":{},"853":{}}}],["ff",{"_index":3382,"title":{},"content":{"738":{}}}],["fiat",{"_index":3977,"title":{},"content":{"952":{}}}],["fibonacci",{"_index":3482,"title":{"783":{}},"content":{}}],["fido2",{"_index":3130,"title":{},"content":{"674":{}}}],["field",{"_index":3,"title":{"10":{},"13":{},"17":{},"23":{},"26":{},"29":{},"32":{},"35":{},"38":{},"41":{},"44":{},"47":{},"50":{},"53":{},"56":{},"59":{},"62":{},"65":{},"68":{},"71":{},"74":{},"77":{},"80":{},"83":{},"86":{},"89":{},"92":{},"96":{},"99":{},"102":{},"109":{},"112":{}},"content":{"2":{},"7":{},"80":{},"228":{},"229":{},"232":{},"318":{},"320":{},"381":{},"404":{},"406":{},"421":{},"422":{},"424":{},"490":{},"532":{},"552":{},"553":{},"556":{},"557":{},"559":{},"684":{},"702":{},"758":{},"776":{},"832":{},"852":{}}}],["figur",{"_index":525,"title":{},"content":{"204":{},"894":{}}}],["file",{"_index":626,"title":{"604":{},"605":{}},"content":{"211":{},"212":{},"213":{},"214":{},"255":{},"265":{},"278":{},"310":{},"312":{},"314":{},"315":{},"316":{},"317":{},"318":{},"320":{},"322":{},"604":{},"605":{},"658":{},"789":{},"793":{},"796":{},"797":{},"808":{},"812":{},"824":{},"826":{}}}],["filesystem",{"_index":1530,"title":{},"content":{"311":{},"322":{}}}],["fill",{"_index":1593,"title":{},"content":{"315":{},"316":{},"355":{},"380":{},"548":{},"802":{},"819":{},"832":{}}}],["filter",{"_index":1554,"title":{},"content":{"313":{},"316":{},"317":{},"318":{},"661":{},"836":{}}}],["final",{"_index":1226,"title":{"895":{},"899":{},"908":{},"911":{}},"content":{"267":{},"269":{},"271":{},"275":{},"276":{},"291":{},"292":{},"302":{},"321":{},"322":{},"651":{},"683":{},"702":{},"722":{},"724":{},"894":{},"907":{},"910":{},"950":{},"951":{},"952":{},"958":{},"998":{}}}],["financ",{"_index":3204,"title":{},"content":{"690":{},"703":{},"863":{},"924":{},"929":{},"937":{}}}],["financi",{"_index":3454,"title":{"875":{}},"content":{"779":{},"952":{}}}],["find",{"_index":393,"title":{},"content":{"105":{},"117":{},"123":{},"135":{},"138":{},"141":{},"147":{},"213":{},"214":{},"315":{},"342":{},"603":{},"672":{},"674":{},"838":{},"902":{},"935":{},"949":{},"950":{},"952":{},"959":{},"998":{},"1000":{}}}],["fine",{"_index":1629,"title":{},"content":{"304":{},"841":{}}}],["finger",{"_index":3329,"title":{},"content":{"728":{}}}],["fingerprint",{"_index":3337,"title":{},"content":{"728":{},"951":{}}}],["finish",{"_index":3373,"title":{},"content":{"745":{}}}],["finit",{"_index":1756,"title":{},"content":{"342":{}}}],["fire",{"_index":1704,"title":{},"content":{"324":{}}}],["firm",{"_index":3741,"title":{},"content":{"870":{}}}],["firmwar",{"_index":593,"title":{},"content":{"206":{}}}],["first",{"_index":684,"title":{"260":{},"638":{},"808":{}},"content":{"212":{},"213":{},"214":{},"224":{},"235":{},"258":{},"259":{},"260":{},"267":{},"268":{},"274":{},"282":{},"295":{},"301":{},"315":{},"321":{},"354":{},"356":{},"357":{},"358":{},"359":{},"363":{},"385":{},"424":{},"431":{},"630":{},"649":{},"655":{},"678":{},"682":{},"685":{},"697":{},"708":{},"717":{},"735":{},"738":{},"739":{},"745":{},"787":{},"798":{},"809":{},"810":{},"811":{},"878":{},"944":{},"952":{}}}],["first'",{"_index":1555,"title":{},"content":{"314":{}}}],["first_cod",{"_index":2335,"title":{},"content":{"427":{}}}],["firstli",{"_index":1239,"title":{},"content":{"269":{},"545":{},"655":{},"656":{},"832":{}}}],["firstnam",{"_index":2437,"title":{},"content":{"475":{}}}],["firstpublickey",{"_index":198,"title":{},"content":{"43":{}}}],["fit",{"_index":1486,"title":{},"content":{"309":{},"796":{}}}],["fix",{"_index":687,"title":{},"content":{"212":{},"375":{},"593":{}}}],["flag",{"_index":637,"title":{},"content":{"211":{},"269":{}}}],["flags)*flag",{"_index":674,"title":{},"content":{"212":{}}}],["flags)first",{"_index":742,"title":{},"content":{"213":{},"214":{}}}],["flaw",{"_index":3942,"title":{},"content":{"949":{}}}],["flexibl",{"_index":2821,"title":{"883":{}},"content":{"608":{},"887":{},"890":{},"891":{},"903":{},"905":{},"909":{}}}],["fli",{"_index":909,"title":{},"content":{"236":{},"682":{}}}],["float",{"_index":196,"title":{"161":{}},"content":{"43":{},"44":{},"95":{},"96":{},"161":{},"214":{},"307":{},"346":{},"372":{},"386":{},"390":{},"438":{},"442":{},"443":{},"447":{},"556":{},"557":{}}}],["flow",{"_index":1179,"title":{},"content":{"258":{},"267":{}}}],["fluctuat",{"_index":3824,"title":{},"content":{"894":{},"907":{}}}],["flush",{"_index":1343,"title":{},"content":{"271":{},"274":{},"275":{},"310":{}}}],["flutter",{"_index":552,"title":{},"content":{"204":{},"361":{},"806":{},"827":{},"871":{},"949":{},"950":{},"951":{},"952":{},"953":{},"955":{},"956":{},"959":{}}}],["flutter'",{"_index":3939,"title":{},"content":{"949":{}}}],["fluttersecurestorag",{"_index":3996,"title":{},"content":{"952":{}}}],["fn",{"_index":762,"title":{},"content":{"213":{},"214":{}}}],["focu",{"_index":1494,"title":{},"content":{"309":{},"937":{},"959":{},"998":{}}}],["fold",{"_index":1827,"title":{},"content":{"358":{}}}],["folder",{"_index":603,"title":{},"content":{"207":{},"321":{},"793":{},"796":{},"809":{},"826":{},"956":{}}}],["folder/fil",{"_index":3616,"title":{},"content":{"826":{}}}],["follow",{"_index":976,"title":{"858":{}},"content":{"225":{},"228":{},"229":{},"232":{},"233":{},"267":{},"269":{},"315":{},"317":{},"320":{},"334":{},"335":{},"339":{},"340":{},"384":{},"400":{},"420":{},"422":{},"530":{},"546":{},"551":{},"622":{},"631":{},"639":{},"652":{},"655":{},"658":{},"662":{},"697":{},"702":{},"745":{},"795":{},"799":{},"806":{},"812":{},"820":{},"832":{},"856":{},"876":{},"882":{},"886":{},"898":{},"947":{},"951":{},"952":{},"998":{}}}],["foo",{"_index":2455,"title":{},"content":{"478":{}}}],["foo\\\":\\\"bar",{"_index":2449,"title":{},"content":{"477":{}}}],["forc",{"_index":2760,"title":{},"content":{"593":{},"690":{},"701":{},"959":{}}}],["foreach",{"_index":3537,"title":{},"content":{"794":{}}}],["forfeit",{"_index":3318,"title":{},"content":{"727":{}}}],["forgeri",{"_index":3099,"title":{},"content":{"678":{}}}],["forget",{"_index":910,"title":{},"content":{"236":{},"624":{},"641":{}}}],["fork",{"_index":2763,"title":{},"content":{"593":{},"725":{}}}],["form",{"_index":470,"title":{"547":{},"550":{}},"content":{"186":{},"220":{},"234":{},"268":{},"403":{},"540":{},"542":{},"547":{},"549":{},"550":{},"586":{},"587":{},"588":{},"608":{},"656":{},"659":{},"701":{},"702":{},"730":{},"743":{},"744":{},"745":{},"777":{},"802":{},"808":{},"819":{},"842":{},"855":{},"869":{},"895":{},"899":{},"908":{},"910":{},"911":{},"927":{}}}],["form.therefor",{"_index":2998,"title":{},"content":{"652":{}}}],["formal",{"_index":3021,"title":{},"content":{"660":{}}}],["format",{"_index":411,"title":{"231":{},"232":{},"233":{}},"content":{"119":{},"163":{},"173":{},"175":{},"196":{},"212":{},"214":{},"225":{},"226":{},"233":{},"267":{},"268":{},"269":{},"276":{},"277":{},"314":{},"322":{},"336":{},"339":{},"386":{},"535":{},"592":{},"996":{}}}],["formula",{"_index":3220,"title":{"870":{},"934":{}},"content":{"693":{},"697":{},"870":{},"914":{},"930":{},"934":{},"935":{}}}],["fortuna",{"_index":3995,"title":{},"content":{"952":{}}}],["forward",{"_index":1601,"title":{},"content":{"315":{},"375":{},"406":{},"662":{},"895":{},"899":{},"908":{},"911":{}}}],["found",{"_index":536,"title":{},"content":{"204":{},"253":{},"330":{},"637":{},"779":{},"800":{},"804":{}}}],["foundat",{"_index":2745,"title":{},"content":{"591":{},"677":{},"690":{},"923":{}}}],["foundation/aeip/blob/main/aeip",{"_index":4047,"title":{},"content":{"998":{}}}],["foundation/aeweb",{"_index":2741,"title":{},"content":{"589":{},"590":{},"806":{},"824":{}}}],["foundation/archeth",{"_index":2722,"title":{},"content":{"563":{},"592":{},"840":{},"998":{}}}],["foundation/bridg",{"_index":3643,"title":{},"content":{"827":{}}}],["foundation/dex",{"_index":3747,"title":{},"content":{"871":{}}}],["foundation/libj",{"_index":4050,"title":{},"content":{"998":{}}}],["four",{"_index":2361,"title":{},"content":{"451":{},"690":{}}}],["fr",{"_index":4039,"title":{},"content":{"993":{},"996":{}}}],["fr3049085",{"_index":3358,"title":{},"content":{"729":{}}}],["fr3049086",{"_index":3330,"title":{},"content":{"728":{}}}],["fr3049087",{"_index":3324,"title":{},"content":{"727":{}}}],["fr3049088",{"_index":3316,"title":{},"content":{"727":{}}}],["fr3049089",{"_index":3301,"title":{},"content":{"727":{}}}],["fr3049090",{"_index":3345,"title":{},"content":{"728":{}}}],["fr3049091",{"_index":3353,"title":{},"content":{"728":{}}}],["fr3049092",{"_index":3355,"title":{},"content":{"728":{}}}],["fr3049093",{"_index":3350,"title":{},"content":{"728":{}}}],["fr3049101",{"_index":3311,"title":{},"content":{"727":{}}}],["fr3049121",{"_index":3362,"title":{},"content":{"729":{}}}],["fr3098972",{"_index":3312,"title":{},"content":{"727":{}}}],["fraction",{"_index":449,"title":{},"content":{"161":{},"165":{}}}],["fragment",{"_index":4,"title":{},"content":{"2":{},"7":{}}}],["fragment_spread",{"_index":9,"title":{},"content":{"2":{},"7":{}}}],["framework",{"_index":3524,"title":{"949":{}},"content":{"789":{},"870":{},"949":{}}}],["françai",{"_index":4041,"title":{},"content":{"993":{},"996":{}}}],["fraud",{"_index":3170,"title":{},"content":{"687":{},"864":{}}}],["fred",{"_index":2467,"title":{},"content":{"483":{},"515":{}}}],["free",{"_index":146,"title":{},"content":{"40":{},"186":{},"566":{},"608":{},"951":{}}}],["freedom",{"_index":3119,"title":{},"content":{"680":{},"689":{}}}],["french",{"_index":3933,"title":{},"content":{"947":{},"950":{},"952":{}}}],["frequenc",{"_index":1168,"title":{},"content":{"252":{}}}],["frequent",{"_index":3532,"title":{},"content":{"794":{}}}],["fresh",{"_index":1769,"title":{},"content":{"342":{},"651":{}}}],["fresher",{"_index":3272,"title":{},"content":{"718":{}}}],["friendli",{"_index":3172,"title":{},"content":{"687":{},"910":{},"927":{}}}],["friendlier",{"_index":2002,"title":{},"content":{"386":{}}}],["from_number/1",{"_index":2603,"title":{"517":{}},"content":{}}],["front",{"_index":2742,"title":{"590":{},"806":{},"901":{}},"content":{"589":{},"590":{},"670":{},"789":{},"887":{},"901":{}}}],["frontend",{"_index":3514,"title":{},"content":{"789":{},"927":{}}}],["fsm",{"_index":1706,"title":{"327":{}},"content":{"327":{}}}],["fucntion",{"_index":1425,"title":{},"content":{"286":{},"302":{}}}],["fuell",{"_index":3478,"title":{},"content":{"782":{}}}],["full",{"_index":2839,"title":{},"content":{"616":{},"822":{},"887":{},"902":{}}}],["full_nam",{"_index":2116,"title":{},"content":{"380":{}}}],["fullfil",{"_index":1546,"title":{},"content":{"313":{}}}],["fulli",{"_index":2845,"title":{},"content":{"619":{},"785":{},"890":{},"946":{}}}],["fun",{"_index":1915,"title":{},"content":{"369":{},"371":{},"372":{},"396":{},"397":{},"398":{},"545":{}}}],["funcion",{"_index":818,"title":{},"content":{"214":{}}}],["function",{"_index":538,"title":{"396":{},"397":{},"398":{},"417":{},"423":{},"545":{}},"content":{"204":{},"211":{},"212":{},"213":{},"214":{},"238":{},"241":{},"245":{},"255":{},"267":{},"269":{},"272":{},"276":{},"277":{},"323":{},"345":{},"346":{},"371":{},"380":{},"386":{},"395":{},"396":{},"397":{},"398":{},"399":{},"405":{},"415":{},"416":{},"417":{},"423":{},"426":{},"427":{},"429":{},"444":{},"445":{},"457":{},"465":{},"466":{},"467":{},"468":{},"472":{},"474":{},"480":{},"495":{},"504":{},"507":{},"508":{},"513":{},"521":{},"526":{},"528":{},"540":{},"545":{},"547":{},"549":{},"560":{},"608":{},"645":{},"651":{},"658":{},"677":{},"686":{},"698":{},"702":{},"779":{},"808":{},"830":{},"874":{},"887":{},"923":{},"924":{},"926":{},"927":{},"931":{},"937":{},"943":{},"952":{},"959":{}}}],["function'",{"_index":2255,"title":{"416":{}},"content":{}}],["function_nam",{"_index":2346,"title":{},"content":{"445":{}}}],["fund",{"_index":1874,"title":{"564":{},"566":{},"605":{}},"content":{"372":{},"375":{},"532":{},"546":{},"564":{},"605":{},"618":{},"621":{},"622":{},"630":{},"655":{},"656":{},"808":{},"809":{},"810":{},"811":{},"817":{},"819":{},"820":{},"826":{},"834":{},"838":{},"864":{}}}],["fundament",{"_index":3235,"title":{},"content":{"698":{},"903":{}}}],["fungibl",{"_index":2317,"title":{"755":{},"756":{},"757":{}},"content":{"441":{},"697":{},"755":{},"756":{},"757":{},"758":{},"947":{}}}],["fungible_token_address",{"_index":2310,"title":{},"content":{"441":{}}}],["further",{"_index":1189,"title":{"750":{},"937":{}},"content":{"261":{},"678":{},"747":{},"823":{},"867":{},"870":{}}}],["futur",{"_index":2188,"title":{},"content":{"409":{},"546":{},"548":{},"553":{},"638":{},"655":{},"675":{}}}],["g_amount",{"_index":831,"title":{},"content":{"214":{}}}],["g_bip44_path",{"_index":800,"title":{},"content":{"213":{},"214":{}}}],["g_io_apdu_buff",{"_index":649,"title":{},"content":{"211":{},"214":{}}}],["g_state",{"_index":1384,"title":{},"content":{"279":{}}}],["g_tx.recieveraddr",{"_index":828,"title":{},"content":{"214":{}}}],["g_wallet.encodedwallet",{"_index":765,"title":{},"content":{"213":{},"214":{}}}],["g_wallet.walletlen",{"_index":766,"title":{},"content":{"213":{},"214":{}}}],["gain",{"_index":3801,"title":{},"content":{"891":{},"903":{}}}],["gandi",{"_index":2786,"title":{},"content":{"603":{},"802":{}}}],["gateway",{"_index":3541,"title":{},"content":{"801":{}}}],["gather",{"_index":1175,"title":{},"content":{"258":{},"321":{},"346":{},"662":{},"702":{},"704":{},"716":{},"744":{}}}],["gener",{"_index":332,"title":{"381":{},"602":{},"607":{},"633":{},"644":{},"654":{},"682":{},"825":{},"841":{}},"content":{"91":{},"146":{},"163":{},"196":{},"204":{},"205":{},"206":{},"211":{},"212":{},"213":{},"214":{},"223":{},"236":{},"247":{},"252":{},"267":{},"268":{},"269":{},"270":{},"271":{},"274":{},"275":{},"277":{},"284":{},"286":{},"287":{},"289":{},"291":{},"293":{},"361":{},"365":{},"366":{},"373":{},"374":{},"381":{},"406":{},"421":{},"423":{},"574":{},"575":{},"576":{},"577":{},"578":{},"579":{},"580":{},"581":{},"582":{},"583":{},"584":{},"585":{},"593":{},"639":{},"650":{},"652":{},"666":{},"668":{},"670":{},"672":{},"682":{},"683":{},"685":{},"690":{},"705":{},"708":{},"709":{},"739":{},"743":{},"744":{},"779":{},"789":{},"796":{},"820":{},"825":{},"840":{},"841":{},"891":{},"894":{},"903":{},"931":{},"933":{},"949":{},"950":{},"952":{},"994":{},"1000":{}}}],["generatearchethicaddress(uint8_t",{"_index":804,"title":{},"content":{"213":{},"214":{}}}],["generatecertificate(ykindex",{"_index":1417,"title":{"285":{}},"content":{}}],["generateencryptedseedsc",{"_index":4027,"title":{},"content":{"972":{}}}],["generatekey",{"_index":856,"title":{},"content":{"214":{}}}],["generatekey(ykindex",{"_index":1411,"title":{"284":{}},"content":{}}],["generatekeyfromwallet(address_index",{"_index":812,"title":{},"content":{"213":{}}}],["generatekeypair(extendedprivatekey",{"_index":970,"title":{},"content":{"224":{}}}],["generatepublickey(0",{"_index":1336,"title":{},"content":{"270":{}}}],["generatepublickey(int",{"_index":1235,"title":{"269":{}},"content":{}}],["generatese",{"_index":3952,"title":{},"content":{"950":{}}}],["generationtx_vers",{"_index":841,"title":{},"content":{"214":{}}}],["generos",{"_index":3789,"title":{},"content":{"887":{}}}],["genesi",{"_index":248,"title":{},"content":{"64":{},"117":{},"120":{},"137":{},"259":{},"314":{},"315":{},"317":{},"371":{},"382":{},"409":{},"430":{},"432":{},"546":{},"547":{},"970":{},"991":{}}}],["genesisaddress",{"_index":404,"title":{"117":{}},"content":{"117":{},"176":{},"177":{},"970":{},"991":{}}}],["genesisaddress.address",{"_index":405,"title":{},"content":{"118":{}}}],["genrat",{"_index":1266,"title":{},"content":{"269":{}}}],["genserv",{"_index":1799,"title":{},"content":{"350":{}}}],["geo",{"_index":1825,"title":{},"content":{"356":{},"727":{}}}],["geograph",{"_index":1632,"title":{},"content":{"305":{},"354":{},"661":{},"733":{},"787":{}}}],["geoip",{"_index":1820,"title":{},"content":{"354":{}}}],["geoloc",{"_index":3299,"title":{},"content":{"727":{}}}],["geopatch",{"_index":199,"title":{},"content":{"43":{},"354":{}}}],["get",{"_index":617,"title":{},"content":{"209":{},"211":{},"212":{},"213":{},"214":{},"279":{},"303":{},"962":{},"968":{},"980":{},"989":{}}}],["get/1",{"_index":2585,"title":{"509":{}},"content":{}}],["get/2",{"_index":2521,"title":{"498":{},"510":{}},"content":{"509":{}}}],["get/3",{"_index":2525,"title":{"499":{}},"content":{}}],["get_account",{"_index":4023,"title":{"968":{}},"content":{}}],["get_balance/1",{"_index":2293,"title":{"438":{}},"content":{}}],["get_burn_address/0",{"_index":2275,"title":{"433":{}},"content":{}}],["get_current_account",{"_index":4037,"title":{"989":{}},"content":{}}],["get_current_count",{"_index":2086,"title":{},"content":{"398":{}}}],["get_endpoint",{"_index":4019,"title":{"962":{}},"content":{}}],["get_first_transaction_address/1",{"_index":2268,"title":{"431":{}},"content":{}}],["get_genesis_address/1",{"_index":2264,"title":{"430":{}},"content":{}}],["get_genesis_public_key/1",{"_index":2271,"title":{"432":{}},"content":{}}],["get_hourly_temperatures(lat",{"_index":1959,"title":{},"content":{"372":{}}}],["get_last_address/1",{"_index":2282,"title":{"435":{}},"content":{}}],["get_last_transaction/1",{"_index":2285,"title":{"436":{}},"content":{}}],["get_previous_address/1",{"_index":2288,"title":{"437":{}},"content":{}}],["get_services_from_keychain",{"_index":4031,"title":{"980":{}},"content":{}}],["get_token_balance/2",{"_index":2304,"title":{"440":{}},"content":{"438":{},"442":{},"443":{}}}],["get_token_balance/3",{"_index":2308,"title":{"441":{}},"content":{"440":{}}}],["get_tokens_balance/1",{"_index":2318,"title":{"442":{}},"content":{}}],["get_tokens_balance/2",{"_index":2305,"title":{"443":{}},"content":{"438":{}}}],["get_transaction/1",{"_index":2279,"title":{"434":{}},"content":{}}],["get_transfered_amount",{"_index":1904,"title":{},"content":{"369":{}}}],["get_uco_balance/1",{"_index":2303,"title":{"439":{}},"content":{"438":{}}}],["get_vot",{"_index":1952,"title":{},"content":{"371":{}}}],["getaddress.c",{"_index":736,"title":{},"content":{"213":{}}}],["getappvers",{"_index":608,"title":{},"content":{"208":{}}}],["getarchaddress",{"_index":610,"title":{},"content":{"208":{}}}],["getarchethicindex",{"_index":1437,"title":{"290":{}},"content":{}}],["getbip44path(address_index",{"_index":799,"title":{},"content":{"213":{},"214":{}}}],["getcurrentcertificate(certificates",{"_index":1457,"title":{"297":{}},"content":{}}],["getcurrentkey(publickeys",{"_index":1448,"title":{"293":{}},"content":{}}],["getecdhpoint",{"_index":1470,"title":{},"content":{"302":{}}}],["getecdhpoint(int",{"_index":1371,"title":{"277":{}},"content":{}}],["getecdhpoint(ykindex",{"_index":1434,"title":{"289":{}},"content":{}}],["getkeyindex",{"_index":1352,"title":{"273":{}},"content":{}}],["getnextcertificate(certificates",{"_index":1459,"title":{"298":{}},"content":{}}],["getnextkey",{"_index":1450,"title":{"294":{}},"content":{}}],["getoriginpublickey(cx_ecfp_public_key_t",{"_index":678,"title":{},"content":{"212":{}}}],["getpastcertificate(archethicindex",{"_index":1460,"title":{"299":{}},"content":{}}],["getpastkey(archethicindex",{"_index":1451,"title":{"295":{}},"content":{}}],["getpublickey",{"_index":609,"title":{},"content":{"208":{}}}],["getpublickey(int",{"_index":1356,"title":{"275":{}},"content":{}}],["getpublickey.c",{"_index":669,"title":{},"content":{"212":{}}}],["getrootcertif",{"_index":1453,"title":{"296":{}},"content":{}}],["getrootkey",{"_index":1445,"title":{"292":{}},"content":{}}],["gettransactionhash(uint8_t",{"_index":834,"title":{},"content":{"214":{}}}],["getversion.c",{"_index":627,"title":{},"content":{"211":{}}}],["getykindex",{"_index":1421,"title":{"286":{}},"content":{}}],["git",{"_index":1743,"title":{},"content":{"339":{},"563":{},"593":{},"604":{},"690":{},"701":{},"840":{}}}],["github",{"_index":537,"title":{},"content":{"204":{},"207":{},"361":{},"365":{},"366":{},"637":{},"754":{},"757":{},"794":{},"854":{},"855":{},"953":{}}}],["github'",{"_index":3534,"title":{},"content":{"794":{}}}],["github.com/archeth",{"_index":3667,"title":{},"content":{"840":{}}}],["gitignor",{"_index":2789,"title":{"604":{}},"content":{"604":{},"808":{}}}],["give",{"_index":858,"title":{},"content":{"214":{},"224":{},"237":{},"315":{},"546":{},"551":{},"559":{},"560":{},"655":{},"736":{},"760":{},"804":{},"845":{},"851":{},"894":{},"901":{}}}],["giveaway",{"_index":3918,"title":{"945":{}},"content":{}}],["given",{"_index":52,"title":{},"content":{"9":{},"204":{},"224":{},"238":{},"240":{},"241":{},"243":{},"251":{},"275":{},"276":{},"277":{},"305":{},"307":{},"315":{},"316":{},"323":{},"329":{},"330":{},"342":{},"356":{},"364":{},"371":{},"377":{},"404":{},"413":{},"424":{},"445":{},"463":{},"466":{},"467":{},"503":{},"510":{},"549":{},"564":{},"651":{},"652":{},"662":{},"665":{},"680":{},"693":{},"697":{},"739":{},"740":{},"742":{},"743":{},"745":{},"746":{},"748":{},"779":{},"841":{},"849":{},"887":{},"960":{},"983":{},"985":{},"986":{},"994":{}}}],["global",{"_index":1123,"title":{"266":{},"379":{},"422":{}},"content":{"245":{},"266":{},"312":{},"354":{},"379":{},"406":{},"408":{},"410":{},"422":{},"686":{},"687":{},"690":{},"702":{},"741":{},"742":{},"952":{}}}],["globalproperti",{"_index":3431,"title":{},"content":{"756":{}}}],["globe",{"_index":3499,"title":{},"content":{"787":{}}}],["glossari",{"_index":918,"title":{"221":{},"912":{}},"content":{"923":{}}}],["gmp",{"_index":1639,"title":{},"content":{"307":{},"563":{}}}],["go",{"_index":1061,"title":{"365":{}},"content":{"255":{},"365":{},"540":{},"545":{},"564":{},"566":{},"646":{},"693":{},"702":{},"809":{},"810":{},"811":{},"840":{},"848":{},"852":{},"872":{}}}],["goal",{"_index":1676,"title":{},"content":{"322":{},"381":{},"387":{},"550":{},"796":{},"929":{}}}],["goe",{"_index":1117,"title":{},"content":{"244":{},"318":{},"720":{}}}],["golden",{"_index":3483,"title":{"783":{}},"content":{}}],["good",{"_index":1866,"title":{},"content":{"374":{},"560":{},"754":{},"797":{}}}],["goods/suppli",{"_index":3308,"title":{},"content":{"727":{}}}],["googl",{"_index":3937,"title":{},"content":{"949":{}}}],["google'",{"_index":3943,"title":{},"content":{"949":{}}}],["gossip",{"_index":3250,"title":{"713":{}},"content":{"713":{},"717":{}}}],["gossip'",{"_index":3251,"title":{},"content":{"713":{}}}],["goto",{"_index":4003,"title":{},"content":{"956":{}}}],["govern",{"_index":1086,"title":{"690":{},"698":{}},"content":{"255":{},"320":{},"339":{},"340":{},"690":{},"698":{},"699":{},"701":{},"702":{},"724":{},"864":{}}}],["gradual",{"_index":3226,"title":{},"content":{"697":{},"883":{}}}],["grain",{"_index":1630,"title":{},"content":{"304":{}}}],["grammar",{"_index":2775,"title":{},"content":{"593":{}}}],["grant",{"_index":3650,"title":{},"content":{"830":{},"874":{}}}],["granular",{"_index":2633,"title":{},"content":{"535":{}}}],["graph",{"_index":3986,"title":{},"content":{"952":{}}}],["graphic",{"_index":3526,"title":{"791":{}},"content":{}}],["graphql",{"_index":469,"title":{"567":{}},"content":{"186":{},"472":{},"567":{},"579":{},"580":{},"581":{},"582":{},"583":{},"584":{},"585":{},"1000":{}}}],["grate",{"_index":2747,"title":{},"content":{"591":{}}}],["great",{"_index":2781,"title":{},"content":{"594":{},"794":{}}}],["greater",{"_index":2173,"title":{},"content":{"407":{},"608":{},"878":{},"894":{},"950":{}}}],["greatli",{"_index":4017,"title":{},"content":{"959":{}}}],["green",{"_index":3810,"title":{},"content":{"901":{}}}],["greet",{"_index":3649,"title":{},"content":{"828":{},"872":{}}}],["ground",{"_index":2759,"title":{},"content":{"593":{},"711":{}}}],["group",{"_index":1721,"title":{},"content":{"364":{},"382":{},"507":{},"672":{},"690":{},"699":{},"715":{},"796":{},"924":{},"942":{},"952":{}}}],["growth",{"_index":3486,"title":{},"content":{"783":{},"924":{},"927":{}}}],["guarante",{"_index":973,"title":{},"content":{"225":{},"255":{},"374":{},"651":{},"724":{},"869":{}}}],["guard",{"_index":1861,"title":{},"content":{"374":{}}}],["gui",{"_index":553,"title":{},"content":{"204":{},"205":{},"206":{},"214":{}}}],["guid",{"_index":508,"title":{"857":{}},"content":{"204":{},"205":{},"206":{},"821":{},"834":{},"856":{},"866":{}}}],["guidelin",{"_index":2758,"title":{"593":{}},"content":{}}],["guides](/participate/dex/guid",{"_index":3873,"title":{},"content":{"937":{}}}],["gzip",{"_index":3577,"title":{},"content":{"796":{}}}],["hack",{"_index":3695,"title":{},"content":{"864":{}}}],["hacken",{"_index":2836,"title":{},"content":{"616":{},"822":{}}}],["halt",{"_index":3656,"title":{},"content":{"834":{}}}],["hand",{"_index":2026,"title":{},"content":{"387":{},"540":{},"546":{},"829":{},"873":{},"952":{}}}],["handi",{"_index":3531,"title":{},"content":{"794":{}}}],["handl",{"_index":1344,"title":{},"content":{"271":{},"272":{},"274":{},"275":{},"276":{},"277":{},"350":{},"687":{},"787":{}}}],["handlegetaddress(uint8_t",{"_index":741,"title":{},"content":{"213":{}}}],["handlegetpublickey(uint8_t",{"_index":673,"title":{},"content":{"212":{}}}],["handlegetversion(uint8_t",{"_index":628,"title":{},"content":{"211":{}}}],["handlesignhash(uint8_t",{"_index":819,"title":{},"content":{"214":{}}}],["happen",{"_index":1666,"title":{"627":{}},"content":{"321":{},"363":{},"472":{}}}],["hard",{"_index":3067,"title":{},"content":{"667":{},"817":{}}}],["hardwar",{"_index":498,"title":{"676":{},"677":{},"678":{},"679":{},"729":{}},"content":{"204":{},"212":{},"232":{},"256":{},"263":{},"279":{},"334":{},"666":{},"668":{},"671":{},"675":{},"677":{},"678":{},"679":{},"711":{}}}],["hardware(devic",{"_index":670,"title":{},"content":{"212":{}}}],["harmon",{"_index":2917,"title":{},"content":{"645":{}}}],["hash",{"_index":379,"title":{"163":{},"229":{},"311":{},"618":{},"669":{},"817":{}},"content":{"108":{},"163":{},"196":{},"213":{},"214":{},"224":{},"227":{},"229":{},"233":{},"269":{},"270":{},"276":{},"311":{},"315":{},"387":{},"424":{},"459":{},"462":{},"463":{},"608":{},"618":{},"621":{},"661":{},"665":{},"669":{},"670":{},"680":{},"685":{},"778":{},"779":{},"796":{},"817":{},"819":{},"820":{},"841":{},"982":{},"994":{}}}],["hash(contract.cod",{"_index":2227,"title":{},"content":{"424":{}}}],["hash(data",{"_index":2226,"title":{},"content":{"424":{}}}],["hash(encode(pub_key",{"_index":1013,"title":{},"content":{"233":{}}}],["hash/1",{"_index":2375,"title":{"458":{}},"content":{}}],["hash/2",{"_index":2376,"title":{"459":{}},"content":{"458":{}}}],["hash_typ",{"_index":805,"title":{},"content":{"213":{},"214":{},"218":{},"219":{},"229":{}}}],["hashalg",{"_index":1322,"title":{},"content":{"269":{}}}],["hashalgo",{"_index":4033,"title":{},"content":{"982":{}}}],["hashedpath",{"_index":962,"title":{},"content":{"224":{}}}],["hashfunct",{"_index":3573,"title":{},"content":{"796":{}}}],["hashrat",{"_index":3046,"title":{},"content":{"672":{}}}],["hashtosign",{"_index":1364,"title":{"276":{},"301":{}},"content":{"288":{},"300":{}}}],["hasn't",{"_index":1747,"title":{},"content":{"340":{}}}],["have",{"_index":1219,"title":{},"content":{"267":{},"631":{},"682":{},"728":{},"998":{}}}],["haystack",{"_index":2468,"title":{},"content":{"483":{},"515":{}}}],["he/sh",{"_index":1945,"title":{},"content":{"371":{}}}],["header",{"_index":346,"title":{},"content":{"88":{},"267":{},"470":{},"472":{},"473":{},"829":{},"873":{}}}],["health",{"_index":3309,"title":{},"content":{"727":{},"891":{},"922":{}}}],["heart",{"_index":3340,"title":{},"content":{"728":{}}}],["heartbeat",{"_index":1154,"title":{"251":{}},"content":{}}],["heavi",{"_index":1538,"title":{},"content":{"312":{}}}],["held",{"_index":2111,"title":{},"content":{"380":{},"819":{},"887":{}}}],["hellmen",{"_index":1374,"title":{},"content":{"277":{}}}],["hello",{"_index":1891,"title":{"368":{}},"content":{"368":{},"386":{},"388":{},"397":{},"421":{},"425":{},"538":{},"541":{},"594":{}}}],["help",{"_index":562,"title":{"629":{}},"content":{"205":{},"233":{},"245":{},"255":{},"315":{},"317":{},"349":{},"350":{},"351":{},"361":{},"365":{},"366":{},"400":{},"594":{},"629":{},"630":{},"645":{},"669":{},"672":{},"684":{},"689":{},"753":{},"792":{},"796":{},"839":{},"854":{},"901":{},"936":{},"951":{}}}],["helper",{"_index":1140,"title":{},"content":{"247":{},"952":{}}}],["henc",{"_index":743,"title":{},"content":{"213":{},"214":{},"234":{},"269":{},"377":{},"380":{},"674":{},"697":{},"787":{},"796":{}}}],["here",{"_index":1015,"title":{},"content":{"253":{},"263":{},"264":{},"315":{},"316":{},"376":{},"382":{},"393":{},"402":{},"404":{},"447":{},"530":{},"541":{},"550":{},"616":{},"658":{},"689":{},"799":{},"822":{},"827":{},"845":{},"871":{},"878":{},"949":{},"951":{},"952":{}}}],["here'",{"_index":2059,"title":{},"content":{"382":{},"393":{},"560":{},"605":{},"757":{},"758":{},"906":{}}}],["here’",{"_index":3798,"title":{},"content":{"891":{},"903":{}}}],["heritag",{"_index":3294,"title":{},"content":{"725":{}}}],["heurist",{"_index":1627,"title":{"305":{},"747":{}},"content":{"304":{},"650":{},"652":{},"659":{},"687":{},"692":{},"720":{},"727":{},"779":{}}}],["hex",{"_index":57,"title":{"167":{}},"content":{"9":{},"10":{},"25":{},"26":{},"52":{},"53":{},"55":{},"56":{},"73":{},"74":{},"108":{},"109":{},"167":{},"228":{},"229":{},"232":{},"246":{},"282":{},"422":{},"438":{},"442":{},"443":{},"518":{}}}],["hexadecim",{"_index":144,"title":{"387":{}},"content":{"40":{},"157":{},"167":{},"246":{},"387":{},"388":{},"462":{},"518":{},"555":{},"556":{},"557":{},"996":{}}}],["hid",{"_index":676,"title":{},"content":{"212":{}}}],["hidden",{"_index":2708,"title":{},"content":{"552":{}}}],["hide",{"_index":3981,"title":{},"content":{"952":{}}}],["hierarch",{"_index":934,"title":{},"content":{"223":{}}}],["hierarchi",{"_index":1238,"title":{},"content":{"269":{}}}],["hierarchy6",{"_index":1333,"title":{},"content":{"269":{}}}],["hierarchy:tpma_object_restrict",{"_index":1275,"title":{},"content":{"269":{}}}],["high",{"_index":1055,"title":{},"content":{"237":{},"255":{},"323":{},"652":{},"659":{},"713":{},"717":{},"731":{},"784":{},"787":{},"788":{},"818":{},"863":{}}}],["higher",{"_index":3153,"title":{},"content":{"685":{},"711":{},"864":{},"878":{},"881":{},"891":{},"894":{},"905":{},"936":{},"950":{}}}],["highest",{"_index":3002,"title":{},"content":{"652":{},"698":{},"787":{},"869":{}}}],["highli",{"_index":3700,"title":{},"content":{"865":{}}}],["highlight",{"_index":3675,"title":{},"content":{"843":{},"845":{},"852":{},"853":{},"887":{},"901":{}}}],["hint",{"_index":2705,"title":{},"content":{"551":{},"760":{}}}],["his/her",{"_index":3125,"title":{},"content":{"674":{}}}],["histori",{"_index":1438,"title":{"835":{}},"content":{"290":{},"356":{},"593":{},"629":{},"630":{},"670":{},"830":{},"835":{},"836":{},"837":{}}}],["hive",{"_index":3991,"title":{},"content":{"952":{}}}],["hmac",{"_index":788,"title":{},"content":{"213":{},"214":{},"224":{},"462":{}}}],["hmac(authkey",{"_index":786,"title":{},"content":{"213":{},"214":{}}}],["hmac/1",{"_index":2382,"title":{"460":{}},"content":{}}],["hmac/2",{"_index":2383,"title":{"461":{}},"content":{"460":{}}}],["hmac/3",{"_index":2384,"title":{"462":{}},"content":{"461":{}}}],["hmac256(key",{"_index":991,"title":{},"content":{"225":{}}}],["hold",{"_index":1527,"title":{},"content":{"307":{},"311":{},"343":{},"372":{},"377":{},"645":{},"817":{},"819":{},"864":{},"877":{},"883":{},"898":{},"902":{},"918":{},"935":{}}}],["holder",{"_index":3768,"title":{},"content":{"883":{},"887":{},"905":{}}}],["holm",{"_index":2620,"title":{},"content":{"520":{}}}],["home",{"_index":3612,"title":{},"content":{"813":{}}}],["home/{user}/.local/share/{yourappnam",{"_index":2979,"title":{},"content":{"658":{}}}],["hood",{"_index":3535,"title":{},"content":{"794":{}}}],["hopefulli",{"_index":2682,"title":{},"content":{"546":{}}}],["host",{"_index":148,"title":{"605":{},"774":{},"802":{}},"content":{"40":{},"366":{},"446":{},"546":{},"605":{},"690":{},"701":{},"729":{},"779":{},"784":{},"785":{},"787":{},"788":{},"789":{},"794":{},"795":{},"796":{},"797":{},"801":{},"802":{},"803":{},"809":{}}}],["hot",{"_index":1082,"title":{},"content":{"255":{},"701":{},"946":{}}}],["hour",{"_index":1921,"title":{"941":{}},"content":{"370":{},"535":{},"615":{},"639":{},"838":{},"901":{},"941":{},"943":{},"944":{},"945":{}}}],["hourli",{"_index":3793,"title":{},"content":{"890":{}}}],["hourly_temperatur",{"_index":1987,"title":{},"content":{"372":{}}}],["hrt",{"_index":1203,"title":{"679":{},"680":{}},"content":{"265":{},"278":{},"680":{}}}],["hsm",{"_index":3076,"title":{},"content":{"671":{}}}],["htlc",{"_index":2815,"title":{"618":{},"817":{}},"content":{"608":{},"618":{},"621":{},"622":{},"817":{},"818":{},"819":{},"820":{},"834":{}}}],["html",{"_index":3452,"title":{},"content":{"779":{},"789":{},"796":{}}}],["http",{"_index":1819,"title":{"468":{}},"content":{"354":{},"356":{},"418":{},"468":{},"472":{},"473":{},"793":{},"797":{},"799":{},"959":{}}}],["http.fetch/1",{"_index":2695,"title":{},"content":{"547":{}}}],["http.fetch_many/1",{"_index":2696,"title":{},"content":{"547":{}}}],["http.request(\"https://arch",{"_index":1963,"title":{},"content":{"372":{}}}],["http.request(\"https://fakerapi.it/api/v1/addresses?_quantity=1&_seed=watermelon",{"_index":2416,"title":{},"content":{"472":{}}}],["http.request_mani",{"_index":2429,"title":{},"content":{"473":{}}}],["http://127.0.0.1:4000",{"_index":3615,"title":{},"content":{"826":{}}}],["http://localhost:4000/explorer/transaction/{type_your_address_in_hexadecim",{"_index":2730,"title":{},"content":{"564":{}}}],["http://localhost:4000/faucet",{"_index":2729,"title":{},"content":{"564":{}}}],["https://aeweb.archethic.net",{"_index":3598,"title":{},"content":{"806":{}}}],["https://bridge.archethic.net",{"_index":2823,"title":{},"content":{"609":{},"821":{},"827":{}}}],["https://bridge.testnet.archethic.net",{"_index":3637,"title":{},"content":{"821":{}}}],["https://dex.archethic.net",{"_index":2879,"title":{},"content":{"634":{},"866":{},"871":{}}}],["https://dex.testnet.archethic.net",{"_index":3709,"title":{},"content":{"866":{},"871":{}}}],["https://fakerapi.it/api/v1/users?_quantity=1&_gender=female&_seed=tomato",{"_index":2431,"title":{},"content":{"473":{}}}],["https://fakerapi.it/api/v1/users?_quantity=1&_gender=male&_seed=cucumb",{"_index":2430,"title":{},"content":{"473":{}}}],["https://github.com/archeth",{"_index":2721,"title":{},"content":{"563":{},"806":{},"824":{},"827":{},"840":{},"871":{},"998":{}}}],["https://mainnet.archethic.net",{"_index":3567,"title":{},"content":{"805":{},"826":{}}}],["https://mainnet.archethic.net/aeweb/0c19fd13......../image.jpg",{"_index":3593,"title":{},"content":{"797":{}}}],["https://migrat",{"_index":2924,"title":{},"content":{"646":{}}}],["https://mobiskill.fr/blog/conseil",{"_index":3947,"title":{},"content":{"949":{}}}],["https://playground.archethic.net",{"_index":2648,"title":{},"content":{"530":{}}}],["https://testnet.archethic.net",{"_index":2679,"title":{},"content":{"546":{},"565":{},"605":{},"826":{}}}],["https://testnet.archethic.net/api/web_hosting/00007d9167",{"_index":3625,"title":{},"content":{"826":{}}}],["https://testnet.archethic.net/explorer/transaction/000013c531",{"_index":3622,"title":{},"content":{"826":{}}}],["https://testnet.archethic.net/explorer/transaction/0000a78a35",{"_index":3623,"title":{},"content":{"826":{}}}],["https://testnet.archethic.net/explorer/transaction/0000f1126",{"_index":3624,"title":{},"content":{"826":{}}}],["https://www.archethic.net/wallet.html",{"_index":2882,"title":{},"content":{"635":{},"658":{}}}],["https://www.educative.io/answers/paramet",{"_index":2112,"title":{},"content":{"380":{}}}],["huge",{"_index":3233,"title":{},"content":{"698":{},"949":{}}}],["human",{"_index":471,"title":{},"content":{"186":{},"376":{},"690":{},"699":{}}}],["humanitarian",{"_index":3293,"title":{"725":{}},"content":{}}],["hundr",{"_index":3398,"title":{},"content":{"746":{}}}],["hybrid",{"_index":3114,"title":{},"content":{"680":{},"715":{},"801":{}}}],["hypergeometr",{"_index":1637,"title":{},"content":{"307":{},"660":{}}}],["hypergeomtr",{"_index":1636,"title":{"307":{}},"content":{}}],["i.",{"_index":873,"title":{},"content":{"217":{},"218":{},"219":{},"354":{},"668":{},"669":{},"672":{},"779":{}}}],["i/o",{"_index":1480,"title":{"430":{},"431":{},"432":{},"434":{},"435":{},"436":{},"438":{},"439":{},"440":{},"441":{},"442":{},"443":{},"445":{},"469":{},"470":{},"471":{},"472":{},"473":{},"529":{}},"content":{"308":{},"310":{},"312":{},"314":{},"397":{},"398":{},"417":{},"732":{}}}],["ico",{"_index":1895,"title":{"369":{},"370":{},"414":{}},"content":{"369":{},"370":{}}}],["ico_contract",{"_index":1922,"title":{},"content":{"370":{}}}],["icon",{"_index":2951,"title":{},"content":{"656":{},"808":{},"812":{},"887":{},"894":{},"900":{},"901":{},"902":{},"907":{}}}],["id",{"_index":105,"title":{},"content":{"22":{},"61":{},"64":{},"82":{},"91":{},"101":{},"122":{},"137":{},"146":{},"232":{},"283":{},"350":{},"352":{},"529":{},"759":{},"844":{},"947":{},"951":{},"952":{}}}],["idea",{"_index":2716,"title":{},"content":{"560":{},"639":{},"675":{},"702":{},"855":{},"894":{}}}],["ideal",{"_index":3479,"title":{},"content":{"782":{}}}],["idempot",{"_index":2422,"title":{},"content":{"472":{}}}],["ident",{"_index":1867,"title":{"673":{},"674":{},"689":{},"699":{}},"content":{"374":{},"472":{},"672":{},"674":{},"675":{},"678":{},"682":{},"684":{},"685":{},"689":{},"690":{},"724":{},"727":{},"972":{},"993":{}}}],["identi",{"_index":3132,"title":{},"content":{"675":{}}}],["identif",{"_index":257,"title":{"721":{}},"content":{"64":{},"137":{},"163":{},"196":{},"220":{},"232":{},"315":{},"724":{},"727":{},"887":{},"901":{}}}],["identifi",{"_index":913,"title":{},"content":{"220":{},"239":{},"242":{},"246":{},"283":{},"314":{},"315":{},"316":{},"318":{},"342":{},"400":{},"409":{},"438":{},"442":{},"443":{},"669":{},"674":{},"675":{},"678":{},"690":{},"697":{},"699":{},"727":{},"898":{},"951":{},"984":{},"987":{}}}],["identitifi",{"_index":3144,"title":{},"content":{"684":{}}}],["idl",{"_index":1758,"title":{},"content":{"342":{}}}],["ie",{"_index":1487,"title":{},"content":{"309":{},"845":{}}}],["ieee",{"_index":451,"title":{},"content":{"161":{}}}],["iex",{"_index":2727,"title":{},"content":{"563":{}}}],["ignor",{"_index":3232,"title":{},"content":{"698":{}}}],["ii",{"_index":2658,"title":{"540":{}},"content":{}}],["imag",{"_index":1659,"title":{"605":{}},"content":{"321":{},"322":{},"592":{},"605":{},"756":{},"758":{},"779":{},"789":{},"796":{}}}],["image.jpg",{"_index":3588,"title":{},"content":{"796":{}}}],["imagin",{"_index":3072,"title":{},"content":{"670":{},"944":{}}}],["immedi",{"_index":3201,"title":{},"content":{"690":{},"701":{},"884":{},"891":{}}}],["immediately(sync",{"_index":645,"title":{},"content":{"211":{}}}],["immun",{"_index":3081,"title":{},"content":{"677":{}}}],["immut",{"_index":1508,"title":{},"content":{"310":{},"311":{},"312":{},"698":{}}}],["impact",{"_index":2260,"title":{"649":{},"919":{},"936":{}},"content":{"417":{},"680":{},"687":{},"690":{},"701":{},"860":{},"877":{},"894":{},"895":{},"899":{},"907":{},"908":{},"911":{},"919":{},"932":{},"936":{}}}],["impact.info",{"_index":3833,"title":{},"content":{"894":{}}}],["imper",{"_index":2000,"title":{},"content":{"386":{}}}],["imperman",{"_index":3715,"title":{},"content":{"869":{},"876":{},"877":{}}}],["implement",{"_index":952,"title":{"265":{},"278":{},"679":{}},"content":{"224":{},"263":{},"264":{},"265":{},"278":{},"309":{},"315":{},"323":{},"331":{},"346":{},"350":{},"375":{},"677":{},"678":{},"679":{},"687":{},"724":{},"740":{},"753":{},"926":{},"947":{},"949":{},"959":{}}}],["implementationtpm",{"_index":1200,"title":{},"content":{"263":{}}}],["impli",{"_index":3016,"title":{},"content":{"659":{}}}],["import",{"_index":527,"title":{},"content":{"204":{},"270":{},"315":{},"319":{},"351":{},"655":{},"678":{},"693":{},"751":{},"785":{},"877":{}}}],["impos",{"_index":2707,"title":{},"content":{"551":{},"688":{}}}],["imposs",{"_index":2069,"title":{},"content":{"395":{},"448":{}}}],["improv",{"_index":1862,"title":{"750":{}},"content":{"374":{},"591":{},"629":{},"688":{},"691":{}}}],["in",{"_index":737,"title":{},"content":{"213":{},"214":{},"217":{},"218":{},"219":{}}}],["in?/2",{"_index":2464,"title":{"483":{},"515":{}},"content":{}}],["inact",{"_index":3985,"title":{},"content":{"952":{}}}],["inadvertedli",{"_index":2106,"title":{},"content":{"380":{}}}],["incent",{"_index":3203,"title":{"703":{}},"content":{"690":{}}}],["incentiv",{"_index":3197,"title":{},"content":{"690":{},"783":{},"862":{},"891":{},"923":{},"925":{},"940":{}}}],["includ",{"_index":0,"title":{"7":{},"836":{}},"content":{"7":{},"8":{},"12":{},"22":{},"25":{},"37":{},"40":{},"58":{},"61":{},"64":{},"82":{},"91":{},"101":{},"107":{},"108":{},"122":{},"134":{},"137":{},"146":{},"156":{},"204":{},"213":{},"267":{},"354":{},"363":{},"411":{},"608":{},"614":{},"625":{},"636":{},"642":{},"645":{},"668":{},"680":{},"708":{},"747":{},"808":{},"810":{},"821":{},"827":{},"829":{},"866":{},"870":{},"871":{},"873":{},"889":{},"890":{},"894":{},"927":{},"959":{}}}],["include.if",{"_index":11,"title":{},"content":{"8":{}}}],["inclus",{"_index":3196,"title":{},"content":{"690":{},"699":{}}}],["incom",{"_index":1772,"title":{},"content":{"345":{},"384":{},"414":{},"420":{},"421":{},"422":{},"532":{},"533":{},"652":{},"714":{},"716":{}}}],["inconsist",{"_index":3043,"title":{},"content":{"662":{},"779":{}}}],["incorpor",{"_index":2818,"title":{},"content":{"608":{},"927":{}}}],["increas",{"_index":864,"title":{},"content":{"214":{},"225":{},"268":{},"638":{},"678":{},"687":{},"692":{},"693":{},"697":{},"784":{},"890":{},"891":{},"903":{},"915":{}}}],["increasingli",{"_index":4007,"title":{},"content":{"957":{}}}],["increment",{"_index":1342,"title":{"276":{}},"content":{"271":{},"291":{},"317":{},"371":{},"545":{},"560":{}}}],["incrementindex",{"_index":1439,"title":{"291":{}},"content":{}}],["incur",{"_index":3867,"title":{},"content":{"931":{}}}],["inde",{"_index":3215,"title":{},"content":{"693":{},"803":{},"952":{}}}],["indeped",{"_index":3237,"title":{},"content":{"702":{}}}],["independ",{"_index":1792,"title":{},"content":{"350":{},"659":{}}}],["index",{"_index":698,"title":{"240":{},"243":{},"315":{}},"content":{"212":{},"213":{},"214":{},"223":{},"224":{},"239":{},"240":{},"242":{},"243":{},"244":{},"263":{},"268":{},"269":{},"270":{},"271":{},"272":{},"273":{},"274":{},"275":{},"276":{},"277":{},"279":{},"283":{},"285":{},"287":{},"291":{},"293":{},"294":{},"297":{},"300":{},"302":{},"311":{},"312":{},"315":{},"316":{},"317":{},"318":{},"319":{},"356":{},"407":{},"441":{},"451":{},"481":{},"493":{},"494":{},"557":{},"692":{},"825":{},"841":{},"842":{},"853":{},"960":{},"983":{},"984":{},"985":{},"986":{},"987":{}}}],["index.html",{"_index":3574,"title":{},"content":{"796":{}}}],["index/summari",{"_index":1600,"title":{},"content":{"315":{}}}],["index0",{"_index":2512,"title":{},"content":{"493":{},"494":{}}}],["index1",{"_index":2511,"title":{},"content":{"493":{},"494":{}}}],["index_yk",{"_index":1427,"title":{},"content":{"286":{},"290":{}}}],["indic",{"_index":1265,"title":{},"content":{"269":{},"330":{},"357":{},"416":{},"630":{},"668":{},"685":{},"687":{},"750":{},"801":{},"887":{},"894":{},"901":{},"922":{},"952":{}}}],["individu",{"_index":3313,"title":{},"content":{"727":{},"728":{},"782":{},"894":{},"925":{},"926":{}}}],["industri",{"_index":1044,"title":{},"content":{"255":{},"674":{},"684":{},"698":{}}}],["infinit",{"_index":3138,"title":{},"content":{"682":{}}}],["info",{"_index":581,"title":{},"content":{"206":{},"211":{},"212":{},"213":{},"214":{},"225":{},"251":{},"267":{},"269":{},"273":{},"277":{},"314":{},"330":{},"342":{},"343":{},"361":{},"366":{},"371":{},"374":{},"375":{},"381":{},"390":{},"394":{},"397":{},"398":{},"405":{},"424":{},"453":{},"455":{},"509":{},"512":{},"556":{},"670":{},"672":{},"693":{},"697":{},"756":{},"788":{},"804":{},"805":{},"808":{},"827":{},"832":{},"842":{},"845":{},"871":{},"876":{},"883":{},"886":{},"887":{},"894":{},"898":{},"907":{},"952":{},"965":{}}}],["inform",{"_index":241,"title":{"639":{},"812":{},"894":{},"898":{},"900":{},"907":{},"910":{}},"content":{"58":{},"134":{},"234":{},"255":{},"258":{},"260":{},"261":{},"267":{},"310":{},"315":{},"316":{},"318":{},"319":{},"342":{},"343":{},"345":{},"347":{},"354":{},"355":{},"356":{},"358":{},"475":{},"476":{},"593":{},"603":{},"614":{},"622":{},"629":{},"636":{},"637":{},"645":{},"650":{},"655":{},"662":{},"668":{},"669":{},"670":{},"683":{},"685":{},"691":{},"693":{},"701":{},"705":{},"709":{},"716":{},"717":{},"719":{},"744":{},"745":{},"761":{},"765":{},"808":{},"809":{},"812":{},"820":{},"823":{},"829":{},"831":{},"832":{},"833":{},"834":{},"842":{},"845":{},"864":{},"867":{},"873":{},"876":{},"886":{},"887":{},"890":{},"891":{},"893":{},"894":{},"898":{},"900":{},"901":{},"905":{},"907":{},"910":{},"951":{},"952":{},"957":{},"958":{},"960":{},"984":{},"987":{},"993":{},"996":{},"998":{}}}],["infrar",{"_index":3335,"title":{},"content":{"728":{}}}],["infrastructur",{"_index":3477,"title":{},"content":{"782":{}}}],["ingest",{"_index":1040,"title":{},"content":{"255":{}}}],["inher",{"_index":3080,"title":{},"content":{"677":{},"936":{}}}],["inherit",{"_index":1860,"title":{"406":{}},"content":{"374":{},"384":{},"403":{},"404":{},"406":{},"407":{},"413":{},"414":{},"421":{},"422":{},"448":{}}}],["initi",{"_index":592,"title":{"369":{},"832":{}},"content":{"206":{},"255":{},"258":{},"259":{},"260":{},"270":{},"272":{},"274":{},"279":{},"322":{},"324":{},"417":{},"545":{},"560":{},"630":{},"638":{},"645":{},"680":{},"727":{},"808":{},"819":{},"820":{},"831":{},"878":{},"891":{},"893":{},"894":{},"898":{},"899":{},"907":{},"908":{},"909":{},"910":{}}}],["initializetpm(int",{"_index":1350,"title":{"272":{}},"content":{}}],["initializeyk",{"_index":1383,"title":{"279":{}},"content":{}}],["initiziali",{"_index":1180,"title":{"259":{}},"content":{}}],["inject",{"_index":3094,"title":{},"content":{"678":{},"949":{}}}],["inline_frag",{"_index":10,"title":{},"content":{"2":{},"7":{}}}],["inmemori",{"_index":1513,"title":{},"content":{"310":{},"341":{}}}],["inner",{"_index":1218,"title":{},"content":{"267":{}}}],["innov",{"_index":2995,"title":{"652":{}},"content":{"689":{},"785":{},"925":{},"927":{},"929":{},"937":{}}}],["inpublicec",{"_index":1328,"title":{},"content":{"269":{}}}],["inpublicec.i",{"_index":1340,"title":{},"content":{"270":{}}}],["inpublicec.x",{"_index":1339,"title":{},"content":{"270":{}}}],["inpublicecc",{"_index":1241,"title":{},"content":{"269":{}}}],["input",{"_index":97,"title":{},"content":{"22":{},"73":{},"91":{},"144":{},"146":{},"211":{},"238":{},"241":{},"269":{},"283":{},"285":{},"287":{},"374":{},"377":{},"414":{},"547":{},"549":{},"564":{},"731":{},"831":{},"893":{},"894":{},"907":{},"1000":{}}}],["input/outputs:transact",{"_index":3365,"title":{},"content":{"732":{}}}],["insecur",{"_index":3497,"title":{},"content":{"787":{}}}],["insert",{"_index":1623,"title":{},"content":{"319":{},"594":{},"820":{}}}],["insid",{"_index":1049,"title":{},"content":{"255":{},"341":{},"355":{},"417":{},"670":{},"704":{}}}],["insight",{"_index":2095,"title":{},"content":{"400":{},"887":{},"901":{},"926":{}}}],["inspir",{"_index":936,"title":{},"content":{"223":{},"224":{},"713":{},"869":{}}}],["instal",{"_index":594,"title":{"207":{},"563":{},"840":{}},"content":{"206":{},"207":{},"563":{},"655":{},"698":{},"824":{},"827":{},"840":{},"871":{},"949":{},"952":{},"956":{}}}],["instanc",{"_index":905,"title":{},"content":{"235":{},"256":{},"315":{},"562":{},"563":{},"737":{},"745":{},"788":{},"789":{},"794":{}}}],["instantli",{"_index":3292,"title":{},"content":{"724":{},"860":{}}}],["instead",{"_index":1502,"title":{},"content":{"309":{},"372":{},"376":{},"382":{},"472":{},"486":{},"560":{},"622":{},"628":{},"685":{},"789":{},"801":{},"814":{},"817":{},"905":{},"914":{}}}],["instruct",{"_index":598,"title":{"207":{},"956":{}},"content":{"376":{},"427":{},"824":{}}}],["insuffici",{"_index":3658,"title":{},"content":{"834":{}}}],["insur",{"_index":1953,"title":{"372":{}},"content":{"372":{}}}],["insurance_company_wallet",{"_index":1975,"title":{},"content":{"372":{}}}],["insure",{"_index":1956,"title":{},"content":{"372":{}}}],["insuree_wallet",{"_index":1977,"title":{},"content":{"372":{}}}],["int",{"_index":67,"title":{"165":{},"268":{},"275":{},"276":{}},"content":{"12":{},"13":{},"16":{},"17":{},"22":{},"23":{},"28":{},"29":{},"31":{},"32":{},"37":{},"38":{},"43":{},"44":{},"61":{},"62":{},"64":{},"65":{},"70":{},"71":{},"73":{},"74":{},"76":{},"77":{},"82":{},"83":{},"88":{},"89":{},"91":{},"92":{},"98":{},"99":{},"101":{},"102":{},"108":{},"109":{},"165":{},"211":{},"212":{},"213":{},"214":{},"950":{}}}],["integ",{"_index":462,"title":{},"content":{"169":{},"171":{},"211":{},"268":{},"386":{},"400":{},"447":{},"451":{},"472":{},"473":{},"523":{}}}],["integr",{"_index":378,"title":{"306":{},"802":{}},"content":{"108":{},"225":{},"343":{},"608":{},"651":{},"674":{},"690":{},"699":{},"702":{},"727":{},"728":{},"737":{},"779":{},"793":{},"821":{},"866":{},"869":{},"894":{},"925":{},"926":{},"927":{},"931":{},"959":{},"998":{}}}],["intend",{"_index":692,"title":{},"content":{"212":{},"779":{},"898":{}}}],["intens",{"_index":1090,"title":{},"content":{"256":{}}}],["intent",{"_index":3221,"title":{},"content":{"695":{},"811":{},"895":{},"899":{},"908":{},"911":{}}}],["intepret",{"_index":1876,"title":{},"content":{"376":{}}}],["interact",{"_index":154,"title":{"857":{},"891":{},"903":{},"953":{}},"content":{"40":{},"204":{},"256":{},"375":{},"377":{},"400":{},"613":{},"684":{},"821":{},"827":{},"839":{},"840":{},"856":{},"866":{},"870":{},"871":{},"887":{},"900":{},"926":{},"949":{},"951":{},"952":{},"953":{},"959":{},"998":{}}}],["interest",{"_index":1525,"title":{},"content":{"311":{},"313":{},"361":{},"438":{},"439":{},"441":{},"442":{},"443":{},"674":{},"691":{},"877":{}}}],["interfac",{"_index":567,"title":{"791":{},"824":{}},"content":{"205":{},"281":{},"387":{},"552":{},"724":{},"791":{},"793":{},"840":{},"865":{},"927":{},"949":{},"959":{},"998":{},"1000":{}}}],["interim",{"_index":3799,"title":{},"content":{"891":{}}}],["intermediari",{"_index":2816,"title":{},"content":{"608":{},"618":{},"817":{},"929":{}}}],["intern",{"_index":1749,"title":{"397":{}},"content":{"341":{},"373":{},"375":{},"377":{},"396":{},"397":{},"398":{},"417":{},"472":{},"724":{},"953":{}}}],["internet",{"_index":2885,"title":{},"content":{"637":{},"724":{},"827":{},"871":{}}}],["interoper",{"_index":1399,"title":{},"content":{"283":{},"608":{},"674":{},"681":{},"689":{}}}],["interpol",{"_index":2005,"title":{},"content":{"386":{}}}],["interpret",{"_index":1731,"title":{"376":{},"854":{}},"content":{"332":{},"336":{},"373":{},"376":{},"385":{},"756":{},"779":{},"839":{}}}],["interrog",{"_index":3006,"title":{},"content":{"652":{},"713":{}}}],["interrupt",{"_index":3662,"title":{},"content":{"837":{}}}],["interv",{"_index":1138,"title":{"535":{},"541":{}},"content":{"247":{},"342":{},"370":{},"374":{},"413":{},"420":{},"535":{},"537":{},"538":{},"541":{},"543":{},"548":{},"549":{},"736":{},"737":{},"743":{},"745":{},"920":{}}}],["intervent",{"_index":4010,"title":{},"content":{"958":{}}}],["intrins",{"_index":3338,"title":{},"content":{"728":{}}}],["introduc",{"_index":1845,"title":{},"content":{"373":{},"387":{},"400":{},"545":{},"622":{},"715":{},"799":{},"820":{},"924":{}}}],["introduct",{"_index":481,"title":{"204":{},"650":{},"701":{},"929":{}},"content":{"821":{},"866":{}}}],["intuit",{"_index":3780,"title":{},"content":{"887":{},"900":{}}}],["invalid",{"_index":26,"title":{},"content":{"5":{},"119":{},"163":{},"173":{},"175":{},"196":{},"330":{},"400":{},"409":{},"558":{}}}],["invalid_transact",{"_index":22,"title":{},"content":{"4":{}}}],["invent",{"_index":3296,"title":{},"content":{"725":{}}}],["inventori",{"_index":3289,"title":{},"content":{"724":{}}}],["invest",{"_index":3791,"title":{},"content":{"889":{},"891":{},"898":{},"901":{},"903":{}}}],["investig",{"_index":3034,"title":{},"content":{"660":{}}}],["investor",{"_index":3816,"title":{},"content":{"902":{}}}],["invit",{"_index":2934,"title":{},"content":{"655":{},"656":{}}}],["invoc",{"_index":2110,"title":{},"content":{"380":{}}}],["involv",{"_index":619,"title":{},"content":{"209":{},"310":{},"621":{},"622":{},"638":{},"662":{},"678":{},"680":{},"691":{},"727":{},"740":{},"817":{},"819":{},"831":{},"860":{},"881":{},"886":{},"893":{},"894":{},"898":{},"907":{},"923":{}}}],["invovl",{"_index":1529,"title":{},"content":{"311":{},"364":{}}}],["io",{"_index":2880,"title":{},"content":{"635":{},"949":{},"952":{},"959":{}}}],["io_asynch_repli",{"_index":675,"title":{},"content":{"212":{}}}],["io_exchange_with_code(sw_ok",{"_index":663,"title":{},"content":{"211":{}}}],["ip",{"_index":163,"title":{},"content":{"28":{},"43":{},"126":{},"258":{},"334":{},"354":{},"356":{},"708":{},"800":{}}}],["ip/port/key",{"_index":3267,"title":{},"content":{"717":{}}}],["irrefut",{"_index":1884,"title":{},"content":{"377":{}}}],["is_same?/2",{"_index":2330,"title":{"427":{}},"content":{}}],["is_valid?/1",{"_index":2340,"title":{"428":{},"479":{}},"content":{}}],["ishexa",{"_index":4044,"title":{},"content":{"996":{}}}],["isn't",{"_index":2631,"title":{},"content":{"534":{}}}],["isol",{"_index":1053,"title":{},"content":{"249":{},"255":{}}}],["issu",{"_index":1635,"title":{"626":{}},"content":{"306":{},"375":{},"376":{},"377":{},"390":{},"419":{},"591":{},"593":{},"630":{},"631":{},"637":{},"638":{},"650":{},"652":{},"658":{},"671":{},"674":{},"689":{},"731":{},"742":{},"794":{},"832":{},"855":{},"894":{},"949":{}}}],["issuer",{"_index":3460,"title":{},"content":{"779":{}}}],["it'",{"_index":1131,"title":{},"content":{"246":{},"277":{},"311":{},"341":{},"342":{},"382":{},"387":{},"400":{},"409":{},"411":{},"541":{},"555":{},"560":{},"591":{},"604":{},"667":{},"682":{},"685":{},"697":{},"698":{},"705":{},"713":{},"757":{},"778":{},"788":{},"794":{},"945":{}}}],["item",{"_index":2503,"title":{},"content":{"490":{},"567":{},"568":{},"569":{},"570":{},"571":{},"572":{},"573":{},"579":{},"580":{},"581":{},"582":{},"583":{},"584":{},"585":{},"586":{},"587":{},"588":{},"595":{},"596":{},"597":{},"598":{},"599":{},"600":{},"697":{}}}],["iter",{"_index":2532,"title":{},"content":{"501":{}}}],["itself",{"_index":904,"title":{},"content":{"235":{},"312":{},"674":{},"683":{},"690":{},"698":{},"701":{},"958":{}}}],["iv",{"_index":781,"title":{},"content":{"213":{},"214":{},"225":{}}}],["i’m",{"_index":2849,"title":{"624":{},"641":{}},"content":{}}],["jailbroken",{"_index":2963,"title":{},"content":{"658":{}}}],["javascript",{"_index":1837,"title":{"366":{}},"content":{"366":{},"796":{},"959":{},"998":{}}}],["jerri",{"_index":2054,"title":{},"content":{"393":{}}}],["job",{"_index":2370,"title":{},"content":{"453":{},"662":{}}}],["joe",{"_index":2494,"title":{},"content":{"488":{}}}],["john",{"_index":2034,"title":{},"content":{"389":{},"475":{},"594":{}}}],["join",{"_index":1174,"title":{"708":{}},"content":{"258":{},"259":{},"260":{},"334":{},"488":{},"685":{},"708":{},"711":{},"739":{},"761":{},"779":{}}}],["join/2",{"_index":2490,"title":{"488":{}},"content":{}}],["joins/rejoin",{"_index":3266,"title":{},"content":{"717":{}}}],["js",{"_index":3997,"title":{},"content":{"953":{},"959":{},"998":{}}}],["json",{"_index":408,"title":{"474":{}},"content":{"119":{},"163":{},"173":{},"175":{},"196":{},"372":{},"398":{},"411":{},"418":{},"447":{},"474":{},"475":{},"476":{},"477":{},"478":{},"479":{},"541":{},"684":{},"754":{},"757":{},"959":{}}}],["json.hourly.temperature_2m",{"_index":1970,"title":{},"content":{"372":{}}}],["json.is_valid?(\"\\\"str",{"_index":2457,"title":{},"content":{"479":{}}}],["json.is_valid?(\"str",{"_index":2456,"title":{},"content":{"479":{}}}],["json.is_valid?(response.bodi",{"_index":1968,"title":{},"content":{"372":{}}}],["json.parse(\"1",{"_index":2451,"title":{},"content":{"478":{}}}],["json.parse(\"[1,2,3",{"_index":2453,"title":{},"content":{"478":{}}}],["json.parse(\"\\\"str",{"_index":2452,"title":{},"content":{"478":{}}}],["json.parse(\"{\\\"foo\\\":\\\"bar",{"_index":2454,"title":{},"content":{"478":{}}}],["json.parse(response.bodi",{"_index":1969,"title":{},"content":{"372":{}}}],["json.path_extract",{"_index":2436,"title":{},"content":{"475":{}}}],["json.path_extract(next.cont",{"_index":2179,"title":{},"content":{"407":{}}}],["json.path_extract(previous.cont",{"_index":2177,"title":{},"content":{"407":{}}}],["json.path_extract(transaction.cont",{"_index":2122,"title":{},"content":{"381":{}}}],["json.path_match?(\"$.uco.usd",{"_index":2194,"title":{},"content":{"411":{}}}],["json.path_match?(\"{\\\"1622541930\\\":{\\\"uco\\\":{\\\"eur\\\":0.176922,\\\"usd\\\":0.21642",{"_index":2441,"title":{},"content":{"476":{}}}],["json.path_match?(next.cont",{"_index":2175,"title":{},"content":{"407":{}}}],["json.path_match?(transaction.cont",{"_index":2198,"title":{},"content":{"411":{}}}],["json.to_string(\"str",{"_index":2445,"title":{},"content":{"477":{}}}],["json.to_string(1",{"_index":2444,"title":{},"content":{"477":{}}}],["json.to_string([1,2,3",{"_index":2446,"title":{},"content":{"477":{}}}],["json.to_string([count",{"_index":2688,"title":{},"content":{"545":{}}}],["json.to_string(foo",{"_index":2447,"title":{},"content":{"477":{}}}],["json_extract(\"$.uco.usd",{"_index":2237,"title":{},"content":{"424":{}}}],["json_extract(data",{"_index":2236,"title":{},"content":{"424":{}}}],["json_match",{"_index":2233,"title":{},"content":{"424":{}}}],["json_match?(\"$.uco.usd",{"_index":2235,"title":{},"content":{"424":{}}}],["json_path",{"_index":2174,"title":{},"content":{"407":{}}}],["jsonpath",{"_index":2234,"title":{},"content":{"424":{},"475":{},"476":{}}}],["jsonrpc",{"_index":3439,"title":{},"content":{"759":{}}}],["k",{"_index":3740,"title":{},"content":{"870":{},"934":{},"935":{}}}],["kdf",{"_index":1326,"title":{},"content":{"269":{}}}],["keccak",{"_index":999,"title":{},"content":{"229":{}}}],["keccak256",{"_index":2381,"title":{},"content":{"459":{},"463":{}}}],["keep",{"_index":1423,"title":{},"content":{"286":{},"287":{},"310":{},"312":{},"315":{},"371":{},"390":{},"670":{},"675":{},"715":{},"741":{},"798":{},"827":{},"949":{},"952":{}}}],["kept",{"_index":3450,"title":{},"content":{"778":{},"865":{}}}],["key",{"_index":49,"title":{"212":{},"217":{},"224":{},"232":{},"329":{},"359":{},"617":{},"665":{},"668":{},"682":{},"816":{},"865":{}},"content":{"9":{},"25":{},"40":{},"52":{},"58":{},"64":{},"108":{},"133":{},"134":{},"137":{},"173":{},"204":{},"209":{},"212":{},"213":{},"214":{},"217":{},"219":{},"220":{},"221":{},"223":{},"224":{},"225":{},"230":{},"232":{},"235":{},"236":{},"246":{},"263":{},"267":{},"269":{},"270":{},"271":{},"272":{},"273":{},"274":{},"275":{},"276":{},"277":{},"279":{},"282":{},"283":{},"284":{},"285":{},"286":{},"288":{},"290":{},"291":{},"292":{},"293":{},"294":{},"295":{},"297":{},"298":{},"300":{},"301":{},"302":{},"303":{},"310":{},"311":{},"312":{},"314":{},"315":{},"316":{},"317":{},"319":{},"320":{},"328":{},"329":{},"330":{},"332":{},"334":{},"352":{},"354":{},"356":{},"357":{},"358":{},"359":{},"374":{},"387":{},"395":{},"400":{},"404":{},"407":{},"422":{},"425":{},"432":{},"438":{},"442":{},"443":{},"453":{},"461":{},"462":{},"482":{},"495":{},"497":{},"498":{},"499":{},"500":{},"501":{},"503":{},"510":{},"511":{},"512":{},"546":{},"559":{},"560":{},"661":{},"665":{},"666":{},"668":{},"669":{},"670":{},"672":{},"675":{},"677":{},"678":{},"680":{},"682":{},"683":{},"684":{},"685":{},"687":{},"689":{},"690":{},"708":{},"711":{},"717":{},"727":{},"728":{},"732":{},"744":{},"745":{},"778":{},"779":{},"804":{},"805":{},"808":{},"810":{},"827":{},"843":{},"845":{},"871":{},"923":{},"937":{},"951":{},"952":{},"957":{},"958":{},"960":{},"972":{},"983":{},"985":{},"994":{}}}],["key(enc(aes_key",{"_index":974,"title":{},"content":{"225":{}}}],["key.pem",{"_index":3566,"title":{},"content":{"805":{}}}],["key/valu",{"_index":1567,"title":{},"content":{"314":{}}}],["key1",{"_index":2061,"title":{},"content":{"395":{},"498":{},"499":{},"500":{},"501":{},"503":{}}}],["key2",{"_index":2062,"title":{},"content":{"395":{},"497":{},"498":{},"499":{},"500":{},"501":{},"502":{},"503":{}}}],["key3",{"_index":2523,"title":{},"content":{"498":{},"499":{},"500":{}}}],["key_certificates[ykindex",{"_index":1407,"title":{},"content":{"283":{}}}],["key_slots[ykindex",{"_index":1416,"title":{},"content":{"284":{},"288":{},"289":{}}}],["keybits.a",{"_index":1316,"title":{},"content":{"269":{}}}],["keyboard",{"_index":3673,"title":{},"content":{"842":{},"951":{},"952":{}}}],["keychain",{"_index":888,"title":{"236":{},"681":{},"696":{},"770":{},"849":{},"850":{},"851":{}},"content":{"220":{},"223":{},"225":{},"234":{},"235":{},"236":{},"586":{},"587":{},"588":{},"605":{},"655":{},"656":{},"670":{},"675":{},"681":{},"683":{},"684":{},"685":{},"696":{},"771":{},"793":{},"808":{},"826":{},"839":{},"840":{},"849":{},"850":{},"851":{},"853":{},"946":{},"947":{},"952":{},"959":{},"972":{},"974":{},"977":{},"980":{},"993":{}}}],["keychain'",{"_index":903,"title":{},"content":{"224":{},"235":{},"683":{},"952":{},"980":{}}}],["keychain/wallet",{"_index":3139,"title":{},"content":{"683":{}}}],["keychain_access",{"_index":3476,"title":{"771":{}},"content":{}}],["keychain_derive_address",{"_index":4036,"title":{"986":{}},"content":{}}],["keychain_derive_keypair",{"_index":4034,"title":{"983":{}},"content":{}}],["keyindex",{"_index":1236,"title":{"269":{},"272":{},"274":{},"275":{},"276":{},"277":{}},"content":{"274":{},"275":{},"276":{}}}],["keyindex+1",{"_index":1354,"title":{},"content":{"274":{}}}],["keypair",{"_index":753,"title":{},"content":{"213":{},"214":{},"678":{},"983":{}}}],["keys/1",{"_index":2530,"title":{"501":{}},"content":{}}],["keys:secret",{"_index":2368,"title":{},"content":{"453":{}}}],["keys:to",{"_index":2355,"title":{},"content":{"449":{},"451":{}}}],["keystor",{"_index":1196,"title":{"263":{},"264":{}},"content":{"262":{},"263":{},"264":{},"952":{}}}],["keytoasn",{"_index":1215,"title":{"267":{}},"content":{"267":{}}}],["keytyp",{"_index":1222,"title":{},"content":{"267":{}}}],["keyvalu",{"_index":1518,"title":{},"content":{"310":{}}}],["keyword",{"_index":2075,"title":{"401":{}},"content":{"380":{},"396":{},"397":{},"400":{},"403":{}}}],["kind",{"_index":1137,"title":{},"content":{"247":{},"312":{},"315":{},"319":{},"351":{},"374":{},"670":{},"672":{},"715":{},"746":{},"779":{},"961":{}}}],["knigg",{"_index":1696,"title":{},"content":{"322":{}}}],["know",{"_index":1573,"title":{},"content":{"314":{},"315":{},"652":{},"665":{},"670":{},"710":{},"717":{},"741":{},"786":{},"797":{},"887":{},"952":{}}}],["knowledg",{"_index":578,"title":{},"content":{"205":{},"591":{},"674":{},"689":{},"713":{},"714":{},"727":{}}}],["known",{"_index":1032,"title":{},"content":{"255":{},"269":{},"329":{},"352":{},"461":{},"666":{},"672":{},"717":{},"733":{},"817":{}}}],["kyc",{"_index":3925,"title":{},"content":{"946":{}}}],["lack",{"_index":3494,"title":{},"content":{"785":{}}}],["landscap",{"_index":3840,"title":{},"content":{"924":{},"926":{}}}],["languag",{"_index":1021,"title":{"384":{},"419":{}},"content":{"254":{},"255":{},"256":{},"386":{},"395":{},"396":{},"399":{},"419":{},"428":{},"593":{},"947":{},"949":{},"950":{},"952":{}}}],["larg",{"_index":3862,"title":{},"content":{"919":{}}}],["larger",{"_index":3837,"title":{},"content":{"894":{},"936":{}}}],["last",{"_index":398,"title":{},"content":{"114":{},"123":{},"150":{},"224":{},"258":{},"305":{},"307":{},"310":{},"312":{},"315":{},"317":{},"319":{},"354":{},"356":{},"359":{},"375":{},"615":{},"639":{},"661":{},"702":{},"721":{},"722":{},"743":{},"744":{},"778":{},"842":{},"901":{},"942":{},"952":{},"960":{}}}],["last_calculation_timestamp",{"_index":3894,"title":{},"content":{"942":{}}}],["lastli",{"_index":3839,"title":{},"content":{"894":{}}}],["lastnam",{"_index":2115,"title":{},"content":{"380":{},"475":{},"533":{}}}],["lastpublickey",{"_index":200,"title":{},"content":{"43":{}}}],["lasttransact",{"_index":301,"title":{"123":{}},"content":{"75":{},"123":{},"177":{}}}],["lasttransaction.address",{"_index":418,"title":{},"content":{"124":{}}}],["lat",{"_index":1979,"title":{},"content":{"372":{}}}],["latenc",{"_index":1034,"title":{},"content":{"255":{},"315":{},"343":{},"349":{},"351":{},"354":{},"680":{},"713":{},"744":{},"745":{}}}],["later",{"_index":1589,"title":{},"content":{"315":{},"594":{},"624":{},"641":{},"728":{},"747":{},"755":{},"779":{},"834":{}}}],["latest",{"_index":395,"title":{},"content":{"105":{},"206":{},"315":{},"339":{},"382":{},"435":{},"436":{},"631":{},"645":{},"659":{},"740":{},"798":{},"799":{},"809":{},"821":{},"827":{},"866":{},"871":{}}}],["latter",{"_index":3495,"title":{},"content":{"787":{}}}],["launch",{"_index":1173,"title":{},"content":{"258":{},"320":{},"373":{},"645":{},"655":{},"702":{},"724":{},"840":{},"952":{}}}],["law",{"_index":3019,"title":{},"content":{"660":{},"698":{}}}],["layer",{"_index":1548,"title":{},"content":{"313":{},"349":{},"351":{},"354":{},"652":{},"678":{},"704":{},"711":{},"718":{},"727":{},"752":{},"901":{},"946":{}}}],["layer.thu",{"_index":3004,"title":{},"content":{"652":{}}}],["layout",{"_index":2774,"title":{},"content":{"593":{}}}],["lc",{"_index":738,"title":{},"content":{"213":{},"217":{},"218":{},"219":{}}}],["lead",{"_index":3832,"title":{},"content":{"894":{}}}],["leader",{"_index":2838,"title":{},"content":{"616":{},"822":{}}}],["leak",{"_index":1212,"title":{},"content":{"266":{},"949":{}}}],["learn",{"_index":2756,"title":{},"content":{"592":{},"949":{}}}],["led",{"_index":1560,"title":{},"content":{"314":{}}}],["ledger",{"_index":63,"title":{"34":{},"210":{},"239":{},"242":{},"586":{}},"content":{"12":{},"34":{},"37":{},"40":{},"41":{},"61":{},"67":{},"69":{},"82":{},"85":{},"87":{},"107":{},"108":{},"204":{},"205":{},"206":{},"211":{},"212":{},"213":{},"232":{},"564":{},"586":{},"587":{},"588":{},"675":{},"752":{},"759":{},"779":{}}}],["ledger.token",{"_index":179,"title":{},"content":{"35":{}}}],["ledger.uco",{"_index":180,"title":{},"content":{"35":{}}}],["ledger_cli",{"_index":606,"title":{},"content":{"207":{},"208":{}}}],["ledgeroper",{"_index":128,"title":{"37":{}},"content":{"24":{},"37":{},"84":{},"104":{},"108":{},"109":{},"166":{}}}],["ledgeroperations.consumedinput",{"_index":188,"title":{},"content":{"38":{}}}],["ledgeroperations.fe",{"_index":189,"title":{},"content":{"38":{}}}],["ledgeroperations.transactionmov",{"_index":190,"title":{},"content":{"38":{}}}],["ledgeroperations.unspentoutput",{"_index":191,"title":{},"content":{"38":{}}}],["left",{"_index":2662,"title":{},"content":{"540":{},"545":{},"546":{},"593":{},"830":{},"842":{},"952":{}}}],["legaci",{"_index":2149,"title":{"402":{}},"content":{"403":{},"887":{}}}],["len(ewk{aes}+ew{a",{"_index":876,"title":{},"content":{"218":{}}}],["len(txhash+ewk{aes}+ew_{a",{"_index":881,"title":{},"content":{"219":{}}}],["lend",{"_index":3864,"title":{},"content":{"923":{}}}],["length",{"_index":642,"title":{},"content":{"211":{},"212":{},"213":{},"214":{},"227":{},"285":{},"314":{},"473":{},"669":{}}}],["less",{"_index":1566,"title":{"675":{}},"content":{"314":{},"472":{},"675":{},"687":{},"894":{},"898":{},"907":{}}}],["let",{"_index":1572,"title":{},"content":{"314":{},"886":{},"887":{}}}],["let'",{"_index":2650,"title":{},"content":{"538":{},"541":{},"545":{},"549":{},"804":{},"944":{}}}],["level",{"_index":1098,"title":{"306":{},"881":{},"883":{}},"content":{"237":{},"306":{},"323":{},"552":{},"652":{},"670":{},"717":{},"748":{},"818":{},"870":{},"878":{},"881":{},"883":{},"884":{},"887":{},"890":{},"891":{},"905":{},"934":{},"940":{},"942":{},"944":{}}}],["leveldb",{"_index":1488,"title":{},"content":{"309":{}}}],["levelratio",{"_index":3903,"title":{},"content":{"943":{},"944":{}}}],["leverag",{"_index":1029,"title":{},"content":{"255":{},"264":{},"306":{},"315":{},"319":{},"350":{},"373":{},"594":{},"663":{},"693":{},"717":{},"734":{},"789":{},"794":{},"796":{},"797":{},"865":{},"913":{},"926":{},"929":{}}}],["lib",{"_index":4049,"title":{},"content":{"998":{}}}],["libj",{"_index":4016,"title":{},"content":{"959":{},"998":{}}}],["librari",{"_index":1204,"title":{"399":{},"415":{}},"content":{"265":{},"278":{},"390":{},"394":{},"395":{},"397":{},"398":{},"399":{},"415":{},"680":{},"949":{},"950":{},"951":{},"952":{},"953":{},"959":{},"998":{}}}],["licens",{"_index":3298,"title":{},"content":{"725":{}}}],["life",{"_index":1841,"title":{},"content":{"373":{}}}],["lifecycl",{"_index":1210,"title":{},"content":{"266":{},"796":{}}}],["lifelong",{"_index":3326,"title":{},"content":{"728":{}}}],["light",{"_index":3333,"title":{},"content":{"728":{}}}],["lightweight",{"_index":1050,"title":{},"content":{"255":{}}}],["like",{"_index":2936,"title":{},"content":{"655":{}}}],["limit",{"_index":84,"title":{},"content":{"16":{},"73":{},"120":{},"144":{},"275":{},"537":{},"652":{},"719":{},"727":{},"796":{},"808":{},"894":{},"936":{},"959":{},"961":{}}}],["limitless",{"_index":2982,"title":{"687":{}},"content":{"650":{},"687":{}}}],["line",{"_index":566,"title":{"824":{},"854":{}},"content":{"205":{},"347":{},"385":{},"386":{},"427":{},"793":{},"794":{},"812":{},"839":{},"854":{}}}],["linear",{"_index":2985,"title":{},"content":{"650":{},"687":{},"731":{}}}],["linearli",{"_index":3920,"title":{},"content":{"945":{}}}],["link",{"_index":605,"title":{"605":{}},"content":{"207":{},"394":{},"480":{},"542":{},"546":{},"592":{},"637":{},"746":{},"756":{},"803":{},"829":{},"873":{},"886":{},"887":{},"902":{},"905":{},"998":{}}}],["linkag",{"_index":3458,"title":{},"content":{"779":{}}}],["linter",{"_index":1683,"title":{},"content":{"322":{}}}],["linux",{"_index":2829,"title":{},"content":{"612":{},"658":{},"827":{},"871":{},"949":{},"959":{}}}],["liquid",{"_index":2890,"title":{"638":{},"859":{},"861":{},"886":{},"896":{},"897":{},"898":{},"906":{},"907":{},"908":{},"909":{},"910":{},"911":{},"915":{},"916":{},"917":{},"925":{}},"content":{"638":{},"860":{},"861":{},"862":{},"863":{},"865":{},"869":{},"870":{},"871":{},"874":{},"876":{},"877":{},"878":{},"881":{},"885":{},"886":{},"891":{},"894":{},"897":{},"898":{},"899":{},"900":{},"901":{},"902":{},"903":{},"904":{},"906":{},"907":{},"908":{},"909":{},"910":{},"911":{},"913":{},"914":{},"915":{},"916":{},"917":{},"918":{},"920":{},"921":{},"922":{},"923":{},"924":{},"925":{},"926":{},"929":{},"930":{},"931":{},"933":{},"934":{},"935":{},"937":{},"947":{}}}],["lisibl",{"_index":4040,"title":{},"content":{"993":{},"996":{}}}],["list",{"_index":69,"title":{"394":{},"418":{},"480":{},"726":{}},"content":{"13":{},"17":{},"38":{},"40":{},"41":{},"53":{},"64":{},"65":{},"68":{},"74":{},"86":{},"89":{},"126":{},"128":{},"131":{},"137":{},"144":{},"153":{},"159":{},"220":{},"235":{},"238":{},"241":{},"280":{},"304":{},"315":{},"316":{},"328":{},"329":{},"330":{},"341":{},"351":{},"354":{},"358":{},"371":{},"372":{},"382":{},"394":{},"395":{},"397":{},"399":{},"409":{},"418":{},"421":{},"422":{},"438":{},"443":{},"445":{},"450":{},"451":{},"452":{},"454":{},"456":{},"473":{},"480":{},"481":{},"482":{},"483":{},"484":{},"485":{},"486":{},"487":{},"488":{},"489":{},"490":{},"491":{},"492":{},"493":{},"494":{},"501":{},"502":{},"505":{},"506":{},"507":{},"532":{},"545":{},"556":{},"557":{},"558":{},"559":{},"656":{},"661":{},"662":{},"672":{},"683":{},"684":{},"697":{},"706":{},"708":{},"710":{},"717":{},"721":{},"722":{},"733":{},"745":{},"747":{},"758":{},"778":{},"779":{},"808":{},"835":{},"843":{},"845":{},"851":{},"852":{},"874":{},"902":{},"947":{},"952":{},"960":{}}}],["list'",{"_index":2497,"title":{},"content":{"488":{}}}],["list.append",{"_index":2481,"title":{},"content":{"486":{}}}],["list.append([1",{"_index":2482,"title":{},"content":{"486":{}}}],["list.at",{"_index":2460,"title":{},"content":{"481":{}}}],["list.at([\"a",{"_index":2459,"title":{},"content":{"481":{}}}],["list.concat",{"_index":2474,"title":{},"content":{"485":{}}}],["list.concat([1,2",{"_index":2475,"title":{},"content":{"485":{}}}],["list.concat(sold_item",{"_index":2253,"title":{},"content":{"415":{}}}],["list.delete_at([\"index0",{"_index":2514,"title":{},"content":{"494":{}}}],["list.empti",{"_index":2471,"title":{},"content":{"484":{}}}],["list.empty?([\"appl",{"_index":2472,"title":{},"content":{"484":{}}}],["list.in?([\"bob",{"_index":2465,"title":{},"content":{"483":{}}}],["list.in?([\"miss",{"_index":1933,"title":{},"content":{"371":{}}}],["list.in?([\"pet",{"_index":2184,"title":{},"content":{"409":{}}}],["list.in?(voters_genesis_address",{"_index":1940,"title":{},"content":{"371":{}}}],["list.join",{"_index":2491,"title":{},"content":{"488":{}}}],["list.join([\"mik",{"_index":2492,"title":{},"content":{"488":{}}}],["list.prepend",{"_index":2487,"title":{},"content":{"487":{}}}],["list.prepend([1",{"_index":2488,"title":{},"content":{"487":{}}}],["list.prepend(vot",{"_index":1947,"title":{},"content":{"371":{}}}],["list.reverse([1,2,2,3",{"_index":2507,"title":{},"content":{"492":{}}}],["list.set_at([\"index0",{"_index":2510,"title":{},"content":{"493":{}}}],["list.siz",{"_index":2462,"title":{},"content":{"482":{}}}],["list.size([1,2,3,4",{"_index":2463,"title":{},"content":{"482":{}}}],["list.sort([1,3,2",{"_index":2499,"title":{},"content":{"489":{}}}],["list.sort_by([[a",{"_index":2501,"title":{},"content":{"490":{}}}],["list.uniq([1,2,1,2,3",{"_index":2505,"title":{},"content":{"491":{}}}],["list1",{"_index":2478,"title":{},"content":{"485":{}}}],["list2",{"_index":2479,"title":{},"content":{"485":{}}}],["listen",{"_index":4011,"title":{},"content":{"958":{},"960":{}}}],["live",{"_index":1817,"title":{},"content":{"352":{},"778":{}}}],["load",{"_index":595,"title":{"244":{},"248":{}},"content":{"206":{},"237":{},"244":{},"248":{},"316":{},"319":{},"343":{},"355":{},"693":{},"845":{}}}],["local",{"_index":436,"title":{"562":{},"835":{}},"content":{"147":{},"251":{},"354":{},"535":{},"562":{},"568":{},"569":{},"570":{},"571":{},"572":{},"573":{},"625":{},"629":{},"630":{},"642":{},"658":{},"716":{},"797":{},"809":{},"830":{},"835":{},"836":{},"837":{},"951":{},"952":{},"959":{},"993":{},"996":{}}}],["locat",{"_index":1578,"title":{},"content":{"315":{},"683":{}}}],["lock",{"_index":2166,"title":{"618":{},"817":{},"882":{},"922":{},"938":{}},"content":{"406":{},"608":{},"618":{},"621":{},"817":{},"819":{},"820":{},"878":{},"881":{},"882":{},"883":{},"884":{},"887":{},"890":{},"891":{},"894":{},"901":{},"903":{},"922":{},"940":{},"947":{},"952":{}}}],["lock(x",{"_index":2645,"title":{},"content":{"537":{}}}],["lock_tim",{"_index":2187,"title":{},"content":{"409":{}}}],["log",{"_index":1499,"title":{"310":{},"311":{}},"content":{"309":{},"310":{},"311":{},"313":{},"315":{},"321":{},"322":{},"829":{},"830":{},"873":{}}}],["log10(numb",{"_index":3225,"title":{},"content":{"697":{}}}],["logarithm",{"_index":3212,"title":{},"content":{"693":{},"697":{}}}],["logic",{"_index":1224,"title":{},"content":{"267":{},"350":{},"789":{},"844":{},"845":{}}}],["login",{"_index":3282,"title":{},"content":{"724":{}}}],["logo",{"_index":3781,"title":{},"content":{"887":{},"901":{}}}],["long",{"_index":994,"title":{"615":{}},"content":{"228":{},"229":{},"232":{},"315":{},"372":{},"690":{},"705":{},"711":{},"788":{},"799":{},"905":{},"933":{},"950":{},"952":{}}}],["longer",{"_index":3288,"title":{},"content":{"724":{},"811":{},"878":{},"881":{},"883":{},"890":{},"891":{},"940":{}}}],["look",{"_index":1836,"title":{},"content":{"361":{},"366":{},"592":{},"891":{},"903":{}}}],["lookup",{"_index":1610,"title":{"330":{},"357":{},"359":{}},"content":{"305":{},"307":{},"316":{},"328":{},"358":{}}}],["loop",{"_index":2045,"title":{"392":{}},"content":{"501":{}}}],["lose",{"_index":2867,"title":{},"content":{"628":{},"630":{}}}],["loss",{"_index":3716,"title":{},"content":{"869":{},"876":{},"877":{}}}],["lost",{"_index":1890,"title":{},"content":{"377":{}}}],["lot",{"_index":1536,"title":{},"content":{"312":{},"672":{},"789":{}}}],["low",{"_index":1033,"title":{"306":{}},"content":{"255":{},"306":{},"349":{},"650":{},"715":{},"794":{},"863":{},"865":{},"929":{}}}],["lower",{"_index":3838,"title":{},"content":{"894":{}}}],["lowercas",{"_index":2622,"title":{},"content":{"520":{}}}],["lowest",{"_index":2824,"title":{},"content":{"610":{},"675":{}}}],["loyalti",{"_index":3455,"title":{},"content":{"779":{}}}],["lp",{"_index":3710,"title":{"916":{},"925":{}},"content":{"861":{},"862":{},"876":{},"882":{},"883":{},"884":{},"887":{},"888":{},"890":{},"891":{},"903":{},"904":{},"905":{},"907":{},"910":{},"915":{},"916":{},"917":{},"925":{},"926":{},"931":{}}}],["lp_tokens_deposit",{"_index":3896,"title":{},"content":{"942":{}}}],["lp_tokens_deposited_by_level",{"_index":3897,"title":{},"content":{"942":{}}}],["lsm",{"_index":1507,"title":{},"content":{"310":{},"312":{}}}],["lupin",{"_index":2616,"title":{},"content":{"519":{}}}],["m/650'/0/0",{"_index":955,"title":{},"content":{"224":{},"685":{}}}],["m/650'/0/1",{"_index":959,"title":{},"content":{"224":{}}}],["m/650'/account/index",{"_index":944,"title":{},"content":{"223":{}}}],["m/650'/amazon/0",{"_index":3151,"title":{},"content":{"685":{}}}],["m/650'/johndoeuco@!/0",{"_index":3152,"title":{},"content":{"685":{}}}],["machin",{"_index":1757,"title":{},"content":{"342":{},"465":{},"611":{},"613":{},"788":{}}}],["maco",{"_index":2828,"title":{},"content":{"612":{},"658":{},"827":{},"871":{},"949":{},"959":{}}}],["made",{"_index":885,"title":{},"content":{"219":{},"645":{},"682":{},"819":{},"890":{},"949":{},"952":{}}}],["main",{"_index":917,"title":{},"content":{"220":{},"223":{},"311":{},"314":{},"328":{},"341":{},"342":{},"381":{},"593":{},"684":{},"748":{},"808":{},"840":{},"842":{},"845":{},"848":{},"925":{},"947":{},"949":{},"952":{}}}],["mainli",{"_index":1834,"title":{},"content":{"361":{},"557":{},"674":{}}}],["mainnet",{"_index":1760,"title":{"624":{},"628":{},"641":{}},"content":{"342":{},"546":{},"624":{},"628":{},"641":{},"645":{},"737":{},"871":{},"952":{}}}],["mainnet.archethic.net",{"_index":3544,"title":{},"content":{"801":{},"802":{},"803":{}}}],["maintain",{"_index":1028,"title":{},"content":{"246":{},"255":{},"262":{},"263":{},"266":{},"327":{},"343":{},"591":{},"652":{},"718":{},"870":{},"891":{},"907":{},"926":{},"934":{},"935":{},"953":{}}}],["mainten",{"_index":3503,"title":{},"content":{"788":{},"949":{}}}],["major",{"_index":2803,"title":{},"content":{"608":{},"878":{}}}],["make",{"_index":521,"title":{},"content":{"204":{},"206":{},"245":{},"307":{},"315":{},"316":{},"317":{},"318":{},"341":{},"363":{},"373":{},"374":{},"376":{},"377":{},"386":{},"536":{},"592":{},"619":{},"631":{},"638":{},"645":{},"660":{},"675":{},"677":{},"678":{},"681":{},"684":{},"686":{},"692":{},"693":{},"728":{},"752":{},"756":{},"787":{},"791":{},"800":{},"811":{},"818":{},"826":{},"839":{},"865":{},"891":{},"901":{},"910":{},"926":{},"927":{},"950":{}}}],["makefil",{"_index":656,"title":{},"content":{"211":{}}}],["maker",{"_index":3686,"title":{"914":{}},"content":{"860":{},"863":{},"929":{}}}],["malciou",{"_index":3088,"title":{},"content":{"678":{}}}],["malici",{"_index":3029,"title":{},"content":{"660":{},"678":{},"687":{},"787":{},"949":{}}}],["malwar",{"_index":3082,"title":{},"content":{"677":{}}}],["manag",{"_index":486,"title":{"626":{},"835":{},"849":{}},"content":{"204":{},"245":{},"247":{},"249":{},"282":{},"310":{},"312":{},"324":{},"659":{},"660":{},"689":{},"695":{},"696":{},"724":{},"727":{},"789":{},"796":{},"806":{},"814":{},"839":{},"840":{},"849":{},"869":{},"870":{},"878":{},"886":{},"891":{},"894":{},"903":{},"907":{},"925":{},"946":{},"947":{},"952":{},"959":{},"972":{},"998":{}}}],["mandatori",{"_index":1401,"title":{},"content":{"283":{},"382":{},"808":{}}}],["mani",{"_index":523,"title":{"647":{}},"content":{"204":{},"315":{},"350":{},"415":{},"442":{},"443":{},"527":{},"689":{},"737":{},"753":{},"779":{},"907":{},"910":{},"992":{},"995":{}}}],["manipul",{"_index":1277,"title":{},"content":{"269":{},"394":{},"395":{},"474":{},"495":{},"513":{},"638":{},"936":{}}}],["manner",{"_index":2842,"title":{},"content":{"618":{},"817":{},"887":{},"900":{},"958":{}}}],["manual",{"_index":2160,"title":{},"content":{"406":{},"658":{},"804":{}}}],["map",{"_index":445,"title":{"382":{},"395":{},"495":{}},"content":{"159":{},"345":{},"346":{},"379":{},"382":{},"395":{},"400":{},"404":{},"406":{},"408":{},"410":{},"418":{},"422":{},"437":{},"438":{},"442":{},"443":{},"449":{},"451":{},"453":{},"472":{},"473":{},"489":{},"490":{},"495":{},"496":{},"497":{},"498":{},"499":{},"500":{},"501":{},"502":{},"503":{},"560":{}}}],["map.delete([key1",{"_index":2538,"title":{},"content":{"503":{}}}],["map.get([key1",{"_index":2522,"title":{},"content":{"498":{},"499":{},"500":{}}}],["map.get(bal",{"_index":2321,"title":{},"content":{"442":{},"443":{}}}],["map.get(balance.token",{"_index":2298,"title":{},"content":{"438":{}}}],["map.get(contract.address",{"_index":2183,"title":{},"content":{"409":{}}}],["map.get(map",{"_index":2066,"title":{},"content":{"395":{}}}],["map.get(transaction.uco_mov",{"_index":1901,"title":{},"content":{"369":{}}}],["map.get(transaction.uco_transf",{"_index":1918,"title":{},"content":{"369":{}}}],["map.key",{"_index":2524,"title":{},"content":{"498":{}}}],["map.keys(key1",{"_index":2531,"title":{},"content":{"501":{}}}],["map.keys(map",{"_index":2533,"title":{},"content":{"501":{}}}],["map.new",{"_index":2072,"title":{},"content":{"395":{},"453":{},"470":{},"472":{},"473":{},"496":{}}}],["map.properti",{"_index":2064,"title":{},"content":{"395":{}}}],["map.set([key1",{"_index":2527,"title":{},"content":{"500":{}}}],["map.set(authorized_key",{"_index":2364,"title":{},"content":{"453":{}}}],["map.siz",{"_index":2154,"title":{},"content":{"404":{},"405":{},"407":{}}}],["map.size(key1",{"_index":2519,"title":{},"content":{"497":{}}}],["map.size(transaction.uco_transf",{"_index":2157,"title":{},"content":{"405":{}}}],["map.values(key1",{"_index":2536,"title":{},"content":{"502":{}}}],["map[\"properti",{"_index":2065,"title":{},"content":{"395":{}}}],["map[key",{"_index":2534,"title":{},"content":{"501":{}}}],["marathon",{"_index":3193,"title":{},"content":{"690":{}}}],["markdown",{"_index":2755,"title":{},"content":{"592":{},"593":{},"594":{}}}],["market",{"_index":3158,"title":{"914":{}},"content":{"687":{},"860":{},"861":{},"862":{},"863":{},"869":{},"894":{},"903":{},"925":{},"926":{},"929":{},"930":{},"932":{},"936":{}}}],["mask",{"_index":3980,"title":{},"content":{"952":{}}}],["mass",{"_index":1843,"title":{},"content":{"373":{},"650":{}}}],["master",{"_index":701,"title":{},"content":{"212":{},"220":{},"224":{},"724":{}}}],["masterse",{"_index":700,"title":{},"content":{"212":{}}}],["masterseedlen",{"_index":708,"title":{},"content":{"212":{}}}],["match",{"_index":376,"title":{},"content":{"108":{},"255":{},"275":{},"338":{},"374":{},"424":{},"506":{},"724":{},"779":{},"786":{},"805":{},"994":{}}}],["match?/2",{"_index":2569,"title":{"506":{}},"content":{}}],["materi",{"_index":1005,"title":{},"content":{"232":{},"651":{},"684":{}}}],["math",{"_index":2262,"title":{"521":{},"868":{},"869":{}},"content":{"418":{},"521":{},"944":{}}}],["math.pow(1.7",{"_index":2542,"title":{},"content":{"522":{}}}],["math.pow(2",{"_index":2541,"title":{},"content":{"522":{}}}],["math.rem",{"_index":2556,"title":{},"content":{"525":{}}}],["math.rem(10",{"_index":2555,"title":{},"content":{"525":{}}}],["math.rem(10.2",{"_index":2557,"title":{},"content":{"525":{}}}],["math.rem(2.1",{"_index":2553,"title":{},"content":{"525":{}}}],["math.sqrt(12.5",{"_index":2549,"title":{},"content":{"524":{}}}],["math.sqrt(16",{"_index":2548,"title":{},"content":{"524":{}}}],["math.trunc(8.32",{"_index":2546,"title":{},"content":{"523":{}}}],["mathemat",{"_index":2539,"title":{"870":{},"934":{}},"content":{"521":{},"724":{},"869":{},"914":{}}}],["matic",{"_index":2806,"title":{},"content":{"608":{}}}],["matter",{"_index":2483,"title":{},"content":{"486":{},"689":{},"799":{}}}],["max",{"_index":1359,"title":{},"content":{"275":{},"973":{},"976":{},"979":{}}}],["maxconfirm",{"_index":315,"title":{},"content":{"76":{},"973":{},"976":{},"979":{}}}],["maximum",{"_index":1997,"title":{},"content":{"384":{},"556":{},"659":{},"796":{},"890":{},"894":{},"898":{},"907":{}}}],["mb",{"_index":3605,"title":{},"content":{"808":{}}}],["mean",{"_index":1662,"title":{"639":{}},"content":{"321":{},"375":{},"389":{},"406":{},"416":{},"417":{},"558":{},"645":{},"647":{},"655":{},"713":{},"739":{},"742":{},"798":{},"812":{},"951":{}}}],["meant",{"_index":3223,"title":{},"content":{"696":{}}}],["measur",{"_index":1516,"title":{},"content":{"310":{},"728":{},"870":{},"877":{}}}],["mechan",{"_index":1563,"title":{},"content":{"314":{},"315":{},"341":{},"638":{},"652":{},"665":{},"670":{},"680":{},"692":{},"705":{},"720":{},"729":{},"741":{},"746":{},"779":{},"800":{},"853":{},"861":{},"881":{},"905":{},"926":{},"936":{},"951":{}}}],["media",{"_index":2872,"title":{},"content":{"630":{},"637":{}}}],["medium",{"_index":3993,"title":{},"content":{"952":{}}}],["meet",{"_index":2426,"title":{},"content":{"472":{},"546":{}}}],["member",{"_index":30,"title":{"6":{},"11":{},"15":{},"21":{},"24":{},"27":{},"33":{},"36":{},"39":{},"42":{},"51":{},"54":{},"57":{},"63":{},"69":{},"72":{},"84":{},"87":{},"90":{},"94":{},"97":{},"100":{},"104":{},"110":{},"156":{},"158":{},"160":{},"162":{},"164":{},"166":{},"168":{},"170":{},"172":{},"174":{},"177":{},"179":{},"181":{},"183":{},"185":{},"187":{},"189":{},"191":{},"193":{},"197":{}},"content":{"320":{},"340":{},"702":{},"727":{}}}],["memori",{"_index":1100,"title":{"343":{}},"content":{"237":{},"238":{},"241":{},"244":{},"311":{},"312":{},"315":{},"316":{},"317":{},"319":{},"343":{},"355":{}}}],["memtableload",{"_index":1823,"title":{},"content":{"355":{}}}],["mention",{"_index":548,"title":{},"content":{"204":{},"224":{},"315":{},"374":{},"757":{},"779":{}}}],["menu",{"_index":2649,"title":{"829":{},"873":{}},"content":{"530":{},"808":{},"809":{},"810":{},"811":{},"829":{},"830":{},"840":{},"842":{},"849":{},"853":{},"873":{},"874":{},"878":{},"885":{},"897":{}}}],["merchant",{"_index":1880,"title":{},"content":{"377":{},"689":{}}}],["merg",{"_index":1506,"title":{"310":{}},"content":{"310":{},"311":{},"593":{}}}],["mermaid",{"_index":2778,"title":{},"content":{"594":{}}}],["mermaidsequencediagram",{"_index":2780,"title":{},"content":{"594":{}}}],["mesh",{"_index":3357,"title":{},"content":{"729":{}}}],["messag",{"_index":171,"title":{"349":{},"352":{}},"content":{"31":{},"255":{},"321":{},"327":{},"349":{},"350":{},"351":{},"352":{},"371":{},"400":{},"403":{},"409":{},"546":{},"630":{},"652":{},"684":{},"716":{},"719":{},"727":{},"746":{},"834":{}}}],["messageenvelop",{"_index":1815,"title":{},"content":{"352":{}}}],["messengerdiscussion.h",{"_index":2972,"title":{},"content":{"658":{}}}],["messengerdiscussion.lock",{"_index":2973,"title":{},"content":{"658":{}}}],["metadata",{"_index":247,"title":{},"content":{"64":{},"137":{},"315":{},"667":{},"668":{},"796":{}}}],["meteo.com/v1/archive?latitude=#{lat}&longitude=#{long}&start_date=#{start_date}&end_date=#{end_date}&hourly=temperature_2m",{"_index":1965,"title":{},"content":{"372":{}}}],["method",{"_index":519,"title":{"961":{}},"content":{"204":{},"469":{},"472":{},"473":{},"608":{},"651":{},"675":{},"683":{},"685":{},"712":{},"727":{},"728":{},"759":{},"817":{},"834":{},"946":{},"950":{},"952":{},"959":{},"961":{},"998":{}}}],["methodolog",{"_index":3739,"title":{},"content":{"869":{},"925":{}}}],["metric",{"_index":1673,"title":{},"content":{"321":{},"894":{},"902":{}}}],["migrat",{"_index":1873,"title":{"577":{},"643":{},"645":{},"646":{},"648":{}},"content":{"375":{},"574":{},"575":{},"576":{},"577":{},"578":{},"645":{},"646":{},"647":{},"648":{},"649":{},"724":{}}}],["mike",{"_index":2495,"title":{},"content":{"488":{}}}],["mileston",{"_index":3749,"title":{},"content":{"878":{}}}],["million",{"_index":2892,"title":{},"content":{"638":{},"687":{},"878":{}}}],["min",{"_index":3371,"title":{},"content":{"745":{}}}],["mind",{"_index":2040,"title":{},"content":{"390":{},"863":{},"949":{}}}],["mine",{"_index":1701,"title":{"323":{}},"content":{"323":{},"354":{},"672":{},"697":{},"706":{},"716":{},"778":{}}}],["miner",{"_index":1848,"title":{},"content":{"373":{},"376":{},"546":{},"678":{},"680":{},"687":{},"756":{}}}],["miner'",{"_index":3231,"title":{},"content":{"698":{}}}],["minim",{"_index":3207,"title":{},"content":{"692":{},"727":{},"869":{}}}],["minimum",{"_index":1631,"title":{},"content":{"305":{},"535":{},"693":{},"697":{},"746":{},"860":{},"865":{},"894":{},"895":{},"907":{}}}],["mint",{"_index":107,"title":{},"content":{"22":{},"82":{},"91":{},"101":{},"122":{},"146":{},"336":{},"621":{},"638":{},"645":{},"697":{},"752":{},"755":{},"757":{},"758":{},"764":{},"819":{}}}],["mint_reward",{"_index":3470,"title":{"764":{}},"content":{}}],["minting'",{"_index":3416,"title":{},"content":{"753":{}}}],["minu",{"_index":3665,"title":{},"content":{"838":{}}}],["minut",{"_index":1763,"title":{},"content":{"342":{},"534":{},"535":{},"737":{},"765":{}}}],["mismanag",{"_index":3696,"title":{},"content":{"864":{}}}],["mismatch",{"_index":3396,"title":{},"content":{"746":{}}}],["miss",{"_index":1195,"title":{},"content":{"261":{},"371":{},"559":{},"593":{},"645":{},"710":{},"720":{},"721":{}}}],["mission",{"_index":3822,"title":{},"content":{"905":{}}}],["misus",{"_index":3974,"title":{},"content":{"951":{}}}],["misusag",{"_index":1858,"title":{},"content":{"374":{}}}],["mitig",{"_index":3694,"title":{},"content":{"864":{},"869":{},"949":{}}}],["mix",{"_index":2725,"title":{},"content":{"563":{},"951":{}}}],["mnemon",{"_index":2959,"title":{},"content":{"658":{},"947":{},"950":{}}}],["mnft",{"_index":3426,"title":{},"content":{"756":{},"758":{}}}],["mobil",{"_index":501,"title":{"612":{},"635":{}},"content":{"204":{},"206":{},"232":{},"947":{},"949":{},"951":{},"952":{},"959":{}}}],["mock",{"_index":2666,"title":{"547":{}},"content":{"540":{},"542":{},"547":{},"548":{},"549":{},"554":{},"555":{},"559":{}}}],["mode",{"_index":643,"title":{},"content":{"211":{},"212":{},"263":{},"558":{},"564":{},"658":{},"714":{},"846":{},"847":{},"952":{}}}],["mode.sym",{"_index":1318,"title":{},"content":{"269":{}}}],["model",{"_index":1386,"title":{"930":{}},"content":{"280":{},"342":{},"373":{},"374":{},"619":{},"670":{},"698":{},"731":{},"752":{},"778":{},"818":{},"860":{},"863":{},"869":{},"870":{},"913":{},"925":{},"929":{},"930":{},"934":{},"937":{}}}],["modern",{"_index":1790,"title":{},"content":{"349":{},"803":{},"949":{}}}],["modif",{"_index":2591,"title":{},"content":{"512":{},"560":{},"593":{},"809":{}}}],["modifi",{"_index":1244,"title":{"375":{}},"content":{"269":{},"373":{},"546":{},"593":{},"625":{},"642":{},"645":{},"690":{}}}],["modul",{"_index":1124,"title":{"418":{},"426":{},"429":{},"444":{},"457":{},"465":{},"468":{},"474":{},"480":{},"495":{},"504":{},"508":{},"513":{},"521":{},"526":{},"528":{}},"content":{"245":{},"342":{},"355":{},"381":{},"394":{},"395":{},"397":{},"398":{},"415":{},"426":{},"429":{},"444":{},"447":{},"457":{},"465":{},"468":{},"474":{},"480":{},"495":{},"504":{},"508":{},"513":{},"521":{},"526":{},"528":{},"560":{},"677":{},"679":{},"701":{},"727":{}}}],["module.funct",{"_index":2092,"title":{},"content":{"399":{}}}],["module.function(arg1",{"_index":2089,"title":{},"content":{"399":{}}}],["modulo",{"_index":2561,"title":{},"content":{"525":{}}}],["moment",{"_index":2827,"title":{},"content":{"612":{},"624":{},"641":{},"942":{}}}],["monitor",{"_index":1153,"title":{},"content":{"250":{},"718":{}}}],["monopoli",{"_index":3182,"title":{},"content":{"689":{}}}],["month",{"_index":2205,"title":{},"content":{"413":{},"535":{},"788":{},"878":{},"882":{}}}],["more",{"_index":582,"title":{"649":{}},"content":{"206":{},"223":{},"248":{},"255":{},"263":{},"264":{},"309":{},"312":{},"320":{},"344":{},"397":{},"403":{},"414":{},"427":{},"473":{},"475":{},"476":{},"542":{},"638":{},"660":{},"666":{},"670":{},"678":{},"689":{},"692":{},"693":{},"711":{},"724":{},"727":{},"747":{},"752":{},"779":{},"788":{},"789":{},"876":{},"886":{},"891":{},"894":{},"914":{},"918":{},"945":{},"950":{},"959":{},"998":{}}}],["moreov",{"_index":2817,"title":{},"content":{"608":{},"748":{}}}],["morpholog",{"_index":3327,"title":{},"content":{"728":{}}}],["mostli",{"_index":244,"title":{},"content":{"58":{},"134":{},"395":{},"943":{}}}],["motiv",{"_index":2988,"title":{"651":{},"785":{}},"content":{"786":{}}}],["move",{"_index":767,"title":{},"content":{"213":{},"214":{},"268":{},"315":{},"688":{},"759":{},"895":{},"899":{},"908":{},"911":{},"949":{}}}],["movement",{"_index":181,"title":{},"content":{"37":{},"82":{},"382":{},"559":{},"662":{},"732":{},"745":{},"779":{},"894":{},"920":{}}}],["movementsaddress",{"_index":349,"title":{},"content":{"88":{}}}],["msb",{"_index":1232,"title":{},"content":{"268":{}}}],["msg",{"_index":1797,"title":{},"content":{"350":{}}}],["msgpack",{"_index":1810,"title":{},"content":{"351":{}}}],["much",{"_index":1479,"title":{"648":{}},"content":{"308":{},"389":{},"943":{}}}],["muco",{"_index":3468,"title":{},"content":{"763":{},"764":{}}}],["multi",{"_index":3134,"title":{},"content":{"681":{},"715":{},"727":{}}}],["multicast",{"_index":1788,"title":{},"content":{"349":{},"354":{},"652":{},"707":{},"715":{},"727":{}}}],["multichain",{"_index":914,"title":{},"content":{"220":{}}}],["multidimension",{"_index":3277,"title":{},"content":{"720":{}}}],["multimedia",{"_index":1041,"title":{},"content":{"255":{}}}],["multipl",{"_index":1157,"title":{"537":{}},"content":{"251":{},"252":{},"309":{},"310":{},"321":{},"322":{},"327":{},"350":{},"363":{},"372":{},"532":{},"537":{},"547":{},"631":{},"666":{},"670":{},"693":{},"697":{},"702":{},"720":{},"727":{},"745":{},"797":{},"831":{},"893":{},"947":{}}}],["multiplex",{"_index":1791,"title":{"350":{}},"content":{"349":{},"350":{},"352":{}}}],["multireferenti",{"_index":3343,"title":{},"content":{"728":{}}}],["multise",{"_index":2851,"title":{},"content":{"624":{},"641":{}}}],["multitud",{"_index":3126,"title":{},"content":{"674":{}}}],["mustard",{"_index":1930,"title":{},"content":{"371":{}}}],["mustard_vot",{"_index":1943,"title":{},"content":{"371":{}}}],["mutabl",{"_index":2047,"title":{},"content":{"393":{},"404":{},"727":{}}}],["mutat",{"_index":1535,"title":{},"content":{"312":{},"415":{},"417":{},"446":{},"447":{},"448":{},"449":{},"451":{},"453":{},"455":{},"1000":{}}}],["my_websit",{"_index":3564,"title":{},"content":{"805":{}}}],["myamazingcontract",{"_index":2136,"title":{},"content":{"382":{}}}],["myimageaeweb",{"_index":2801,"title":{},"content":{"605":{}}}],["mynewservic",{"_index":1785,"title":{},"content":{"347":{}}}],["myseedphras",{"_index":2800,"title":{},"content":{"605":{},"825":{},"826":{}}}],["n",{"_index":993,"title":{},"content":{"227":{},"232":{},"233":{},"384":{},"393":{}}}],["name",{"_index":249,"title":{"380":{},"533":{},"603":{},"634":{},"800":{}},"content":{"64":{},"137":{},"180":{},"227":{},"314":{},"316":{},"322":{},"380":{},"386":{},"389":{},"392":{},"393":{},"397":{},"403":{},"445":{},"533":{},"537":{},"645":{},"650":{},"655":{},"661":{},"755":{},"756":{},"758":{},"793":{},"800":{},"801":{},"808":{},"852":{},"951":{},"970":{},"975":{},"978":{},"984":{},"987":{},"991":{},"993":{},"996":{}}}],["name}#{new_lin",{"_index":2056,"title":{},"content":{"393":{}}}],["nano",{"_index":511,"title":{},"content":{"204":{},"206":{}}}],["narr",{"_index":3187,"title":{},"content":{"689":{}}}],["nativ",{"_index":2914,"title":{"752":{}},"content":{"645":{},"714":{},"751":{},"752":{},"782":{},"793":{},"820":{},"862":{},"894":{},"898":{},"907":{},"933":{},"949":{}}}],["natur",{"_index":3502,"title":{},"content":{"788":{}}}],["navig",{"_index":3672,"title":{"900":{}},"content":{"842":{},"846":{},"847":{},"887":{}}}],["nb",{"_index":992,"title":{},"content":{"227":{},"319":{},"321":{},"693":{}}}],["nbconfirm",{"_index":316,"title":{},"content":{"76":{},"973":{},"976":{},"979":{}}}],["near",{"_index":2709,"title":{},"content":{"553":{},"675":{}}}],["nearbi",{"_index":3356,"title":{},"content":{"729":{}}}],["nearest",{"_index":419,"title":{},"content":{"126":{},"713":{}}}],["nearestendpoint",{"_index":167,"title":{"126":{}},"content":{"30":{},"126":{}}}],["necessari",{"_index":2796,"title":{},"content":{"605":{},"631":{},"645":{},"778":{},"779":{},"805":{},"808":{},"821":{},"834":{},"866":{},"894":{},"898":{},"907":{},"910":{},"952":{}}}],["necessit",{"_index":3808,"title":{},"content":{"899":{},"908":{}}}],["need",{"_index":657,"title":{},"content":{"211":{},"212":{},"245":{},"247":{},"251":{},"255":{},"256":{},"309":{},"310":{},"311":{},"312":{},"313":{},"315":{},"319":{},"320":{},"332":{},"343":{},"347":{},"375":{},"376":{},"381":{},"388":{},"410":{},"420":{},"421":{},"438":{},"442":{},"443":{},"527":{},"534":{},"535":{},"540":{},"548":{},"625":{},"642":{},"645":{},"648":{},"666":{},"670":{},"674":{},"687":{},"689":{},"720":{},"722":{},"724":{},"735":{},"752":{},"767":{},"778":{},"782":{},"786":{},"788":{},"794":{},"800":{},"801":{},"802":{},"805":{},"826":{},"842":{},"844":{},"845":{},"849":{},"860":{},"891":{},"895":{},"899":{},"903":{},"908":{},"911":{},"929":{},"943":{},"946":{},"951":{},"952":{}}}],["needl",{"_index":2469,"title":{},"content":{"483":{},"515":{}}}],["neg",{"_index":461,"title":{},"content":{"169":{}}}],["neighbor",{"_index":3252,"title":{},"content":{"713":{},"714":{}}}],["nest",{"_index":1553,"title":{"748":{}},"content":{"313":{},"395":{}}}],["network",{"_index":28,"title":{"259":{},"624":{},"641":{},"687":{},"695":{},"717":{},"744":{},"761":{},"762":{},"763":{},"764":{},"765":{},"766":{},"767":{},"768":{},"769":{}},"content":{"5":{},"28":{},"43":{},"73":{},"105":{},"114":{},"117":{},"120":{},"123":{},"125":{},"127":{},"128":{},"130":{},"131":{},"132":{},"133":{},"135":{},"138":{},"140":{},"141":{},"143":{},"144":{},"147":{},"149":{},"150":{},"163":{},"196":{},"236":{},"245":{},"254":{},"255":{},"258":{},"259":{},"315":{},"319":{},"322":{},"324":{},"329":{},"334":{},"336":{},"339":{},"351":{},"352":{},"354":{},"355":{},"356":{},"546":{},"562":{},"566":{},"608":{},"613":{},"624":{},"641":{},"650":{},"651":{},"652":{},"659":{},"660":{},"663":{},"667":{},"671":{},"672":{},"674":{},"678":{},"690":{},"692":{},"693":{},"695":{},"697":{},"701":{},"702":{},"703":{},"704":{},"707":{},"708":{},"709":{},"710":{},"711":{},"712":{},"713":{},"714":{},"715":{},"717":{},"718":{},"719":{},"721":{},"724":{},"725":{},"727":{},"728":{},"729":{},"730":{},"731":{},"733":{},"737":{},"741":{},"744":{},"745":{},"746":{},"760":{},"761":{},"777":{},"784":{},"787":{},"788":{},"805":{},"826":{},"845":{},"952":{}}}],["network_issu",{"_index":23,"title":{},"content":{"4":{}}}],["networkarcheth",{"_index":2999,"title":{},"content":{"652":{}}}],["networkfe",{"_index":3459,"title":{},"content":{"779":{}}}],["networkpatch",{"_index":201,"title":{},"content":{"43":{},"354":{}}}],["networktransact",{"_index":302,"title":{"128":{}},"content":{"75":{},"128":{},"172":{},"193":{}}}],["networktransactions.pag",{"_index":423,"title":{},"content":{"129":{}}}],["networktransactions.typ",{"_index":424,"title":{},"content":{"129":{}}}],["never",{"_index":1534,"title":{},"content":{"312":{},"728":{},"755":{},"952":{}}}],["nevertheless",{"_index":1549,"title":{},"content":{"313":{},"732":{}}}],["new",{"_index":477,"title":{"724":{}},"content":{"194":{},"235":{},"238":{},"241":{},"244":{},"246":{},"260":{},"270":{},"271":{},"277":{},"291":{},"310":{},"313":{},"314":{},"315":{},"321":{},"332":{},"335":{},"336":{},"337":{},"339":{},"342":{},"345":{},"347":{},"349":{},"368":{},"373":{},"374":{},"375":{},"377":{},"381":{},"387":{},"393":{},"402":{},"414":{},"419":{},"425":{},"448":{},"485":{},"486":{},"487":{},"512":{},"560":{},"621":{},"645":{},"650":{},"659":{},"662":{},"670":{},"672":{},"675":{},"680":{},"681":{},"690":{},"696":{},"697":{},"701":{},"702":{},"703":{},"705":{},"709":{},"711":{},"715":{},"717":{},"722":{},"724":{},"730":{},"731":{},"732":{},"737":{},"740":{},"743":{},"751":{},"754":{},"784":{},"798":{},"800":{},"804":{},"808":{},"809":{},"819":{},"820":{},"845":{},"850":{},"852":{},"853":{},"878":{},"881":{},"883":{},"884":{},"891":{},"899":{},"905":{},"908":{},"925":{},"927":{},"935":{},"994":{}}}],["new/0",{"_index":2516,"title":{"496":{}},"content":{}}],["new_count",{"_index":2717,"title":{},"content":{"560":{}}}],["new_index",{"_index":2178,"title":{},"content":{"407":{}}}],["new_lin",{"_index":2055,"title":{},"content":{"393":{}}}],["new_pric",{"_index":2121,"title":{},"content":{"381":{}}}],["newarcheth",{"_index":1444,"title":{},"content":{"291":{}}}],["newer",{"_index":3120,"title":{},"content":{"680":{}}}],["newli",{"_index":2795,"title":{"605":{}},"content":{}}],["newykindex",{"_index":1442,"title":{},"content":{"291":{}}}],["next",{"_index":714,"title":{"261":{},"381":{}},"content":{"212":{},"214":{},"247":{},"252":{},"258":{},"260":{},"271":{},"274":{},"275":{},"277":{},"321":{},"322":{},"373":{},"374":{},"377":{},"406":{},"414":{},"417":{},"422":{},"446":{},"447":{},"448":{},"449":{},"451":{},"453":{},"455":{},"544":{},"546":{},"650":{},"652":{},"665":{},"670":{},"702":{},"722":{},"739":{},"740":{},"778":{},"797":{},"832":{},"894":{},"907":{}}}],["next.cod",{"_index":2165,"title":{},"content":{"406":{}}}],["next.timestamp",{"_index":2167,"title":{},"content":{"407":{}}}],["nextkey",{"_index":1349,"title":{},"content":{"271":{},"272":{},"274":{},"275":{}}}],["nextkeyhandl",{"_index":1345,"title":{},"content":{"271":{}}}],["nextkeyindex",{"_index":1346,"title":{},"content":{"271":{}}}],["nfc",{"_index":3968,"title":{},"content":{"951":{}}}],["nft",{"_index":494,"title":{"605":{}},"content":{"204":{},"451":{},"557":{},"756":{},"758":{},"759":{},"947":{}}}],["nft1",{"_index":2327,"title":{},"content":{"443":{}}}],["nft2",{"_index":2328,"title":{},"content":{"443":{}}}],["nibbl",{"_index":3384,"title":{},"content":{"738":{}}}],["nice",{"_index":2757,"title":{},"content":{"592":{}}}],["nicer",{"_index":3539,"title":{},"content":{"800":{}}}],["nil",{"_index":1903,"title":{},"content":{"369":{},"386":{},"434":{},"436":{},"471":{},"472":{},"473":{},"481":{},"498":{},"509":{}}}],["nist",{"_index":3068,"title":{},"content":{"668":{},"685":{}}}],["nistp256",{"_index":996,"title":{},"content":{"228":{}}}],["node",{"_index":134,"title":{"43":{},"131":{},"260":{},"263":{},"264":{},"334":{},"335":{},"353":{},"358":{},"359":{},"364":{},"744":{},"761":{}},"content":{"25":{},"43":{},"45":{},"58":{},"126":{},"131":{},"132":{},"134":{},"156":{},"162":{},"166":{},"174":{},"177":{},"187":{},"189":{},"198":{},"204":{},"232":{},"237":{},"244":{},"246":{},"247":{},"248":{},"250":{},"251":{},"252":{},"253":{},"254":{},"255":{},"258":{},"259":{},"260":{},"261":{},"262":{},"263":{},"264":{},"304":{},"305":{},"307":{},"315":{},"319":{},"321":{},"322":{},"323":{},"324":{},"327":{},"329":{},"332":{},"334":{},"335":{},"336":{},"337":{},"338":{},"341":{},"342":{},"345":{},"350":{},"352":{},"354":{},"355":{},"356":{},"357":{},"358":{},"359":{},"362":{},"363":{},"364":{},"374":{},"417":{},"461":{},"472":{},"527":{},"546":{},"559":{},"619":{},"651":{},"652":{},"659":{},"660":{},"661":{},"662":{},"672":{},"674":{},"678":{},"680":{},"690":{},"692":{},"693":{},"695":{},"697":{},"701":{},"702":{},"705":{},"706":{},"707":{},"708":{},"709":{},"710":{},"711":{},"713":{},"714":{},"715":{},"716":{},"717":{},"718":{},"720":{},"722":{},"731":{},"732":{},"733":{},"737":{},"739":{},"740":{},"743":{},"744":{},"745":{},"746":{},"747":{},"748":{},"749":{},"750":{},"760":{},"761":{},"762":{},"763":{},"767":{},"768":{},"779":{},"782":{},"783":{},"797":{},"798":{},"799":{},"801":{},"805":{},"818":{},"842":{},"952":{},"972":{}}}],["node'",{"_index":136,"title":{},"content":{"25":{},"28":{},"127":{},"678":{},"745":{},"779":{}}}],["node.author",{"_index":205,"title":{},"content":{"44":{}}}],["node.authorizationd",{"_index":204,"title":{},"content":{"44":{}}}],["node.avail",{"_index":206,"title":{},"content":{"44":{}}}],["node.averageavail",{"_index":207,"title":{},"content":{"44":{}}}],["node.enrollmentd",{"_index":208,"title":{},"content":{"44":{}}}],["node.firstpublickey",{"_index":209,"title":{},"content":{"44":{}}}],["node.geopatch",{"_index":210,"title":{},"content":{"44":{}}}],["node.git",{"_index":2723,"title":{},"content":{"563":{}}}],["node.ip",{"_index":211,"title":{},"content":{"44":{}}}],["node.lastpublickey",{"_index":212,"title":{},"content":{"44":{}}}],["node.networkpatch",{"_index":213,"title":{},"content":{"44":{}}}],["node.originpublickey",{"_index":214,"title":{},"content":{"44":{}}}],["node.port",{"_index":215,"title":{},"content":{"44":{}}}],["node.rewardaddress",{"_index":216,"title":{},"content":{"44":{}}}],["node_reward",{"_index":3466,"title":{"763":{}},"content":{}}],["node_shared_secret",{"_index":3464,"title":{"762":{}},"content":{}}],["nodej",{"_index":596,"title":{},"content":{"206":{},"563":{},"824":{}}}],["nodeproof",{"_index":3457,"title":{},"content":{"779":{}}}],["nodepublickey",{"_index":137,"title":{},"content":{"25":{}}}],["nomin",{"_index":3868,"title":{},"content":{"931":{}}}],["non",{"_index":12,"title":{"665":{},"756":{}},"content":{"3":{},"8":{},"40":{},"106":{},"118":{},"121":{},"124":{},"129":{},"136":{},"139":{},"142":{},"145":{},"165":{},"169":{},"199":{},"202":{},"205":{},"350":{},"441":{},"550":{},"559":{},"593":{},"622":{},"665":{},"670":{},"683":{},"690":{},"697":{},"756":{},"758":{},"779":{},"820":{},"946":{}}}],["non_fungible_token_address",{"_index":2312,"title":{},"content":{"441":{}}}],["nonc",{"_index":243,"title":{},"content":{"58":{},"133":{},"134":{},"259":{},"260":{},"264":{},"319":{},"332":{},"546":{},"559":{},"651":{},"661":{},"733":{},"845":{},"972":{}}}],["none",{"_index":1358,"title":{},"content":{"275":{}}}],["nonneginteg",{"_index":87,"title":{"169":{}},"content":{"16":{},"17":{},"73":{},"74":{},"144":{},"145":{},"169":{}}}],["normal",{"_index":2895,"title":{},"content":{"638":{}}}],["nosql",{"_index":1495,"title":{},"content":{"309":{}}}],["notat",{"_index":2518,"title":{},"content":{"496":{},"498":{}}}],["note",{"_index":683,"title":{},"content":{"212":{},"342":{},"381":{},"395":{},"507":{},"535":{},"558":{},"630":{},"658":{},"693":{},"754":{},"765":{},"779":{},"834":{},"877":{},"959":{}}}],["noth",{"_index":3150,"title":{},"content":{"685":{},"732":{},"945":{}}}],["notic",{"_index":3558,"title":{},"content":{"804":{}}}],["notif",{"_index":1602,"title":{"739":{},"749":{}},"content":{"315":{},"740":{},"747":{},"749":{},"952":{}}}],["notifi",{"_index":476,"title":{},"content":{"194":{},"198":{},"201":{},"246":{},"315":{},"472":{},"662":{},"705":{},"740":{},"747":{},"748":{},"749":{}}}],["nouc",{"_index":3677,"title":{},"content":{"845":{}}}],["nounc",{"_index":3678,"title":{},"content":{"845":{}}}],["now",{"_index":761,"title":{},"content":{"213":{},"214":{},"224":{},"264":{},"319":{},"540":{},"542":{},"544":{},"545":{},"546":{},"558":{},"645":{},"655":{},"670":{},"674":{},"680":{},"689":{},"739":{},"759":{},"789":{},"817":{},"820":{},"878":{},"883":{}}}],["now/0",{"_index":2623,"title":{"527":{}},"content":{}}],["nowaday",{"_index":3406,"title":{},"content":{"751":{},"785":{}}}],["npm",{"_index":602,"title":{},"content":{"207":{},"563":{}}}],["nuclear",{"_index":3037,"title":{},"content":{"660":{}}}],["null",{"_index":13,"title":{},"content":{"3":{},"8":{},"106":{},"118":{},"121":{},"124":{},"129":{},"136":{},"139":{},"142":{},"145":{},"159":{},"199":{},"202":{},"211":{},"212":{},"213":{},"272":{}}}],["number",{"_index":253,"title":{},"content":{"64":{},"137":{},"159":{},"169":{},"171":{},"223":{},"224":{},"305":{},"307":{},"315":{},"317":{},"323":{},"330":{},"364":{},"369":{},"371":{},"395":{},"414":{},"416":{},"427":{},"449":{},"451":{},"482":{},"497":{},"514":{},"516":{},"517":{},"522":{},"523":{},"524":{},"525":{},"682":{},"687":{},"693":{},"697":{},"719":{},"727":{},"748":{},"887":{},"890":{},"902":{},"910":{},"950":{},"951":{},"952":{},"972":{},"973":{},"976":{},"979":{},"984":{},"987":{},"993":{}}}],["number_of_tokens(amount_send",{"_index":1910,"title":{},"content":{"369":{}}}],["number_of_tokens(uco_amount",{"_index":1916,"title":{},"content":{"369":{}}}],["number_of_uco_s",{"_index":1906,"title":{},"content":{"369":{}}}],["numberofsecondsremainingutilendofyear",{"_index":3902,"title":{},"content":{"943":{}}}],["numer",{"_index":457,"title":{},"content":{"165":{}}}],["o",{"_index":3156,"title":{},"content":{"685":{}}}],["o(1",{"_index":2485,"title":{},"content":{"486":{}}}],["o(n",{"_index":2486,"title":{},"content":{"486":{}}}],["o_{key",{"_index":693,"title":{},"content":{"212":{}}}],["o_{priv",{"_index":927,"title":{},"content":{"221":{},"225":{}}}],["o_{pub",{"_index":928,"title":{},"content":{"221":{},"225":{}}}],["object",{"_index":32,"title":{"582":{}},"content":{"6":{},"11":{},"13":{},"15":{},"17":{},"24":{},"27":{},"33":{},"35":{},"36":{},"38":{},"39":{},"41":{},"42":{},"47":{},"50":{},"51":{},"53":{},"54":{},"57":{},"63":{},"65":{},"68":{},"69":{},"72":{},"74":{},"80":{},"84":{},"86":{},"87":{},"90":{},"94":{},"97":{},"100":{},"104":{},"107":{},"109":{},"110":{},"116":{},"122":{},"125":{},"127":{},"130":{},"132":{},"134":{},"137":{},"140":{},"143":{},"146":{},"149":{},"152":{},"154":{},"156":{},"158":{},"160":{},"162":{},"164":{},"166":{},"168":{},"174":{},"177":{},"179":{},"181":{},"183":{},"185":{},"187":{},"189":{},"191":{},"195":{},"197":{},"200":{},"203":{},"269":{},"276":{},"283":{},"285":{},"290":{},"291":{},"297":{},"299":{},"321":{},"579":{},"580":{},"581":{},"582":{},"583":{},"584":{},"585":{},"593":{},"727":{},"783":{},"952":{},"972":{},"993":{},"1000":{}}}],["objectattribut",{"_index":1272,"title":{},"content":{"269":{}}}],["observ",{"_index":3967,"title":{},"content":{"951":{}}}],["obtain",{"_index":1684,"title":{},"content":{"322":{},"656":{},"660":{},"728":{},"820":{},"891":{}}}],["occas",{"_index":3278,"title":{},"content":{"720":{}}}],["occur",{"_index":2861,"title":{"627":{}},"content":{"864":{},"894":{},"907":{}}}],["offer",{"_index":1896,"title":{"369":{}},"content":{"670":{},"691":{},"724":{},"739":{},"864":{},"865":{},"877":{},"881":{},"887":{},"900":{},"901":{},"905":{},"925":{},"927":{},"929":{},"937":{},"949":{},"952":{},"953":{}}}],["offic",{"_index":3519,"title":{},"content":{"789":{}}}],["offici",{"_index":541,"title":{},"content":{"204":{},"361":{},"365":{},"366":{},"658":{},"901":{}}}],["offlin",{"_index":506,"title":{},"content":{"204":{},"251":{},"363":{},"720":{},"952":{}}}],["offset",{"_index":1462,"title":{},"content":{"299":{},"301":{},"303":{},"315":{},"316":{}}}],["oin",{"_index":3295,"title":{},"content":{"725":{}}}],["old",{"_index":2150,"title":{},"content":{"403":{},"656":{}}}],["omit",{"_index":2074,"title":{},"content":{"395":{}}}],["ommit",{"_index":2163,"title":{},"content":{"406":{}}}],["omp",{"_index":1641,"title":{},"content":{"307":{}}}],["on",{"_index":517,"title":{},"content":{"204":{},"246":{},"248":{},"269":{},"277":{},"284":{},"315":{},"316":{},"320":{},"372":{},"375":{},"384":{},"387":{},"397":{},"403":{},"407":{},"424":{},"455":{},"546":{},"548":{},"631":{},"652":{},"665":{},"674":{},"685":{},"689":{},"690":{},"698":{},"703":{},"727":{},"728":{},"735":{},"737":{},"772":{},"775":{},"786":{},"796":{},"812":{},"817":{},"826":{},"842":{},"845":{},"851":{},"853":{},"860":{},"883":{},"890":{},"894":{},"899":{},"903":{},"907":{},"921":{},"941":{},"949":{},"952":{},"961":{}}}],["onc",{"_index":557,"title":{},"content":{"204":{},"206":{},"214":{},"224":{},"236":{},"260":{},"261":{},"291":{},"315":{},"323":{},"330":{},"368":{},"371":{},"472":{},"546":{},"655":{},"656":{},"662":{},"678":{},"683":{},"684":{},"708":{},"710":{},"722":{},"725":{},"740":{},"749":{},"768":{},"778":{},"788":{},"789":{},"797":{},"808":{},"809":{},"810":{},"811":{},"817":{},"824":{},"838":{},"845":{},"891":{},"894":{},"907":{},"910":{},"956":{}}}],["onchain",{"_index":618,"title":{},"content":{"209":{},"214":{},"220":{},"221":{},"225":{},"232":{},"234":{},"586":{},"587":{},"588":{}}}],["one'",{"_index":3123,"title":{},"content":{"674":{}}}],["ongo",{"_index":3659,"title":{},"content":{"834":{}}}],["onlin",{"_index":2647,"title":{},"content":{"530":{},"684":{},"812":{},"952":{}}}],["open",{"_index":1818,"title":{"658":{},"691":{}},"content":{"354":{},"540":{},"545":{},"546":{},"591":{},"631":{},"645":{},"688":{},"691":{},"725":{},"782":{},"865":{},"887":{},"931":{},"949":{},"952":{},"953":{}}}],["oper",{"_index":175,"title":{},"content":{"34":{},"37":{},"108":{},"212":{},"269":{},"307":{},"310":{},"373":{},"377":{},"612":{},"645":{},"659":{},"677":{},"680":{},"707":{},"727":{},"728":{},"779":{},"801":{},"864":{},"869":{},"887":{},"894":{},"895":{},"899":{},"903":{},"908":{},"911":{},"923":{},"929":{},"930":{},"1000":{}}}],["operationsuco",{"_index":3453,"title":{},"content":{"779":{}}}],["opportun",{"_index":3206,"title":{},"content":{"691":{},"863":{},"929":{}}}],["opposit",{"_index":3363,"title":{},"content":{"730":{}}}],["opt",{"_index":2100,"title":{},"content":{"400":{}}}],["optim",{"_index":1547,"title":{},"content":{"313":{},"351":{},"652":{},"727":{},"827":{},"871":{},"925":{}}}],["option",{"_index":1403,"title":{"605":{},"836":{}},"content":{"283":{},"395":{},"399":{},"403":{},"451":{},"548":{},"557":{},"808":{},"829":{},"830":{},"832":{},"873":{},"890":{},"891":{},"903":{},"972":{},"984":{},"987":{},"993":{},"996":{}}}],["optionali",{"_index":2153,"title":{},"content":{"403":{}}}],["oracl",{"_index":218,"title":{"337":{},"344":{},"410":{},"536":{},"544":{},"765":{}},"content":{"46":{},"150":{},"152":{},"194":{},"195":{},"338":{},"342":{},"343":{},"345":{},"374":{},"379":{},"381":{},"384":{},"403":{},"410":{},"411":{},"424":{},"536":{},"544":{},"614":{},"636":{},"692":{},"695":{},"705":{},"765":{},"766":{}}}],["oracle_summari",{"_index":3471,"title":{"766":{}},"content":{}}],["oraclechain",{"_index":1735,"title":{"341":{},"342":{},"343":{},"704":{}},"content":{"337":{},"341":{},"342":{},"343":{},"344":{},"373":{},"374":{},"704":{},"705":{},"706":{}}}],["oracledata",{"_index":217,"title":{"46":{},"150":{}},"content":{"46":{},"48":{},"51":{},"150":{},"152":{},"189":{},"194":{},"195":{}}}],["oracledata.servic",{"_index":221,"title":{},"content":{"47":{}}}],["oracledata.timestamp",{"_index":222,"title":{},"content":{"47":{},"151":{}}}],["oracleservic",{"_index":220,"title":{"49":{}},"content":{"46":{},"47":{},"49":{},"97":{}}}],["oracleservices.uco",{"_index":227,"title":{},"content":{"50":{}}}],["oraclesummari",{"_index":1739,"title":{"338":{}},"content":{}}],["oracleupd",{"_index":223,"title":{"194":{}},"content":{"48":{},"194":{}}}],["order",{"_index":35,"title":{},"content":{"19":{},"20":{},"141":{},"204":{},"213":{},"214":{},"224":{},"225":{},"236":{},"238":{},"241":{},"313":{},"314":{},"315":{},"317":{},"358":{},"359":{},"374":{},"377":{},"473":{},"486":{},"489":{},"490":{},"605":{},"655":{},"666":{},"667":{},"670":{},"683":{},"754":{},"758":{},"820":{},"842":{},"845":{},"914":{},"923":{},"930":{},"950":{},"952":{},"953":{},"959":{}}}],["ordinari",{"_index":3540,"title":{},"content":{"801":{}}}],["organ",{"_index":3051,"title":{},"content":{"667":{},"672":{},"690":{},"698":{},"727":{}}}],["origin",{"_index":377,"title":{"212":{},"217":{},"329":{},"666":{},"769":{}},"content":{"108":{},"209":{},"212":{},"217":{},"221":{},"230":{},"232":{},"328":{},"329":{},"330":{},"334":{},"660":{},"666":{},"668":{},"672":{},"779":{},"818":{},"832":{},"910":{},"994":{}}}],["origin_famili",{"_index":2218,"title":{},"content":{"421":{}}}],["origin_typ",{"_index":1007,"title":{},"content":{"232":{}}}],["originprivatekey",{"_index":754,"title":{},"content":{"213":{},"214":{}}}],["originpublickey",{"_index":202,"title":{},"content":{"43":{}}}],["originsignatur",{"_index":282,"title":{},"content":{"73":{},"994":{}}}],["os_perso_derive_node_with_se",{"_index":716,"title":{},"content":{"212":{}}}],["other",{"_index":1624,"title":{},"content":{"319":{},"672":{},"674":{},"760":{}}}],["otherwis",{"_index":444,"title":{},"content":{"157":{},"251":{},"268":{},"276":{},"311":{},"318":{},"427":{},"428":{},"835":{}}}],["otp",{"_index":3929,"title":{},"content":{"947":{},"951":{},"952":{}}}],["ought",{"_index":2766,"title":{},"content":{"593":{}}}],["ourselv",{"_index":3121,"title":{},"content":{"674":{}}}],["out",{"_index":1079,"title":{"790":{}},"content":{"255":{},"464":{},"680":{},"731":{},"787":{},"951":{},"952":{},"1000":{}}}],["outcom",{"_index":3830,"title":{},"content":{"910":{}}}],["outdat",{"_index":1699,"title":{},"content":{"322":{},"645":{}}}],["outer",{"_index":1217,"title":{},"content":{"267":{}}}],["outgo",{"_index":1998,"title":{},"content":{"384":{},"713":{},"716":{}}}],["outperform",{"_index":3157,"title":{},"content":{"687":{},"734":{}}}],["output",{"_index":183,"title":{},"content":{"37":{},"101":{},"120":{},"122":{},"211":{},"363":{},"364":{},"512":{},"541":{},"542":{},"548":{},"549":{},"560":{},"564":{},"594":{},"662":{},"697":{},"745":{},"778":{},"779":{}}}],["output'",{"_index":3218,"title":{},"content":{"693":{}}}],["outsid",{"_index":2077,"title":{},"content":{"397":{},"398":{},"417":{},"468":{},"619":{},"778":{},"818":{},"820":{},"877":{}}}],["over",{"_index":1136,"title":{},"content":{"247":{},"310":{},"639":{},"680":{},"702":{},"716":{},"739":{},"740":{},"750":{},"877":{},"878":{},"890":{},"901":{},"942":{},"945":{}}}],["overal",{"_index":3219,"title":{},"content":{"693":{},"750":{},"877":{},"891":{}}}],["overcom",{"_index":2983,"title":{},"content":{"650":{},"734":{}}}],["overhead",{"_index":983,"title":{},"content":{"225":{},"350":{},"734":{}}}],["overlap",{"_index":3217,"title":{},"content":{"693":{},"732":{}}}],["overload",{"_index":3397,"title":{},"content":{"746":{}}}],["overriden",{"_index":2161,"title":{},"content":{"406":{}}}],["overview",{"_index":3377,"title":{"928":{}},"content":{"735":{},"887":{},"888":{},"889":{},"891":{},"903":{}}}],["overwritten",{"_index":866,"title":{},"content":{"214":{}}}],["ovh",{"_index":2788,"title":{},"content":{"603":{},"802":{}}}],["own",{"_index":3181,"title":{},"content":{"689":{}}}],["owner",{"_index":1857,"title":{},"content":{"374":{},"698":{},"727":{},"826":{}}}],["ownership",{"_index":61,"title":{"52":{},"559":{}},"content":{"11":{},"40":{},"41":{},"52":{},"64":{},"65":{},"137":{},"168":{},"230":{},"332":{},"381":{},"425":{},"453":{},"546":{},"559":{},"689":{},"751":{},"757":{},"775":{},"779":{},"804":{},"845":{},"972":{}}}],["ownership.authorizedpublickey",{"_index":231,"title":{},"content":{"53":{}}}],["ownership.secret",{"_index":232,"title":{},"content":{"53":{}}}],["ownership_length",{"_index":845,"title":{},"content":{"214":{}}}],["p1",{"_index":629,"title":{},"content":{"211":{},"212":{},"213":{},"214":{},"217":{},"218":{},"219":{}}}],["p2",{"_index":631,"title":{},"content":{"211":{},"212":{},"213":{},"214":{},"217":{},"218":{},"219":{}}}],["p2p",{"_index":1045,"title":{"250":{},"348":{},"355":{},"711":{}},"content":{"246":{},"251":{},"252":{},"255":{},"260":{},"319":{},"327":{},"349":{},"352":{},"354":{},"355":{},"356":{},"363":{},"651":{},"652":{},"661":{},"707":{},"711":{},"712":{},"717":{},"718":{},"727":{},"733":{},"745":{},"779":{},"785":{},"787":{},"815":{}}}],["p2pavail",{"_index":80,"title":{"178":{}},"content":{"16":{},"17":{},"178":{}}}],["packag",{"_index":1831,"title":{},"content":{"361":{},"796":{},"840":{},"953":{},"956":{}}}],["pad",{"_index":3983,"title":{},"content":{"952":{}}}],["page",{"_index":421,"title":{},"content":{"128":{},"147":{},"399":{},"592":{},"655":{},"779":{},"789":{},"796":{},"802":{},"840":{},"841":{},"855":{},"885":{},"949":{},"952":{}}}],["pagin",{"_index":3390,"title":{},"content":{"739":{}}}],["pagingaddress",{"_index":428,"title":{},"content":{"141":{}}}],["pagingoffset",{"_index":86,"title":{},"content":{"16":{},"73":{},"120":{},"144":{}}}],["pair",{"_index":931,"title":{"905":{}},"content":{"221":{},"314":{},"316":{},"346":{},"678":{},"865":{},"878":{},"881":{},"886":{},"887":{},"894":{},"898":{},"901":{},"907":{},"960":{}}}],["panel",{"_index":2659,"title":{},"content":{"540":{},"541":{},"545":{},"546":{},"547":{},"550":{}}}],["paradigm",{"_index":938,"title":{},"content":{"223":{},"730":{}}}],["parallel",{"_index":1642,"title":{},"content":{"307":{}}}],["param",{"_index":685,"title":{},"content":{"212":{},"759":{}}}],["paramet",{"_index":639,"title":{},"content":{"211":{},"269":{},"270":{},"271":{},"274":{},"380":{},"420":{},"424":{},"427":{},"428":{},"430":{},"431":{},"432":{},"434":{},"435":{},"436":{},"437":{},"438":{},"439":{},"441":{},"442":{},"443":{},"445":{},"446":{},"447":{},"448":{},"449":{},"451":{},"453":{},"455":{},"459":{},"462":{},"463":{},"464":{},"466":{},"467":{},"472":{},"473":{},"475":{},"476":{},"477":{},"478":{},"479":{},"481":{},"482":{},"483":{},"484":{},"485":{},"486":{},"487":{},"488":{},"489":{},"490":{},"491":{},"492":{},"493":{},"494":{},"497":{},"498":{},"499":{},"500":{},"501":{},"502":{},"503":{},"505":{},"506":{},"507":{},"510":{},"511":{},"512":{},"514":{},"515":{},"516":{},"517":{},"518":{},"519":{},"520":{},"522":{},"523":{},"524":{},"525":{},"529":{},"686":{},"797":{},"826":{},"887":{}}}],["parameters.eccdetail",{"_index":1314,"title":{},"content":{"269":{}}}],["params:coin_typ",{"_index":813,"title":{},"content":{"213":{}}}],["parent",{"_index":1268,"title":{},"content":{"269":{},"393":{}}}],["parent'",{"_index":2051,"title":{},"content":{"393":{}}}],["parenthesi",{"_index":2091,"title":{},"content":{"399":{}}}],["pariti",{"_index":3631,"title":{},"content":{"819":{},"820":{}}}],["pars",{"_index":412,"title":{},"content":{"119":{},"163":{},"173":{},"175":{},"196":{},"332":{},"345":{},"346":{},"534":{},"797":{}}}],["parse/1",{"_index":2450,"title":{"478":{}},"content":{}}],["part",{"_index":777,"title":{},"content":{"213":{},"214":{},"255":{},"270":{},"277":{},"321":{},"322":{},"407":{},"532":{},"547":{},"660":{},"678":{},"698":{},"702":{},"728":{},"794":{},"817":{},"931":{},"959":{}}}],["parti",{"_index":622,"title":{},"content":{"209":{},"255":{},"674":{},"683":{},"684":{},"952":{}}}],["particip",{"_index":2899,"title":{"924":{},"931":{}},"content":{"638":{},"702":{},"711":{},"717":{},"865":{},"877":{},"887":{},"891":{},"901":{},"903":{},"923":{},"924":{},"925":{},"926":{},"927":{},"933":{},"937":{}}}],["particular",{"_index":3101,"title":{"694":{}},"content":{"678":{},"727":{},"902":{}}}],["partit",{"_index":1607,"title":{},"content":{"316":{}}}],["pass",{"_index":1327,"title":{},"content":{"269":{},"270":{},"274":{},"322":{},"380":{},"405":{},"407":{},"409":{},"411":{},"702":{},"768":{},"796":{},"952":{}}}],["passiv",{"_index":3842,"title":{},"content":{"925":{}}}],["passphras",{"_index":2799,"title":{},"content":{"605":{},"675":{}}}],["password",{"_index":1002,"title":{"675":{}},"content":{"230":{},"269":{},"631":{},"655":{},"675":{},"684":{},"724":{},"946":{},"947":{},"951":{},"952":{}}}],["patch",{"_index":1633,"title":{},"content":{"305":{},"339":{},"356":{},"472":{}}}],["patent",{"_index":3279,"title":{"723":{},"724":{},"726":{}},"content":{"724":{},"725":{}}}],["path",{"_index":916,"title":{"223":{},"317":{},"318":{}},"content":{"220":{},"223":{},"224":{},"227":{},"317":{},"318":{},"475":{},"476":{},"605":{},"682":{},"685":{},"797":{},"805":{},"826":{},"852":{},"982":{},"984":{},"987":{},"993":{},"996":{}}}],["path_extract/2",{"_index":2435,"title":{"475":{}},"content":{}}],["path_match?/2",{"_index":2440,"title":{"476":{}},"content":{}}],["pathsuffix",{"_index":4035,"title":{},"content":{"984":{},"987":{},"993":{},"996":{}}}],["pattern",{"_index":2229,"title":{},"content":{"424":{},"505":{},"506":{},"507":{},"622":{},"820":{}}}],["pay",{"_index":2798,"title":{},"content":{"605":{},"648":{},"788":{},"826":{}}}],["payload",{"_index":2669,"title":{},"content":{"541":{},"542":{},"550":{},"963":{},"966":{},"969":{},"981":{},"990":{},"995":{},"996":{},"997":{}}}],["payment",{"_index":3290,"title":{},"content":{"724":{}}}],["peer",{"_index":1156,"title":{},"content":{"251":{},"350":{},"608":{},"618":{},"652":{},"817":{},"818":{},"864":{}}}],["pend",{"_index":1646,"title":{"331":{},"780":{}},"content":{"320":{},"327":{},"362":{},"749":{},"779":{}}}],["peopl",{"_index":2720,"title":{},"content":{"562":{},"667":{},"688":{},"782":{}}}],["per",{"_index":719,"title":{},"content":{"212":{},"384":{},"472":{},"537":{},"540":{},"625":{},"638":{},"642":{},"687":{},"693":{},"826":{},"834":{},"878":{},"941":{}}}],["percentag",{"_index":3717,"title":{},"content":{"876":{},"877":{},"881":{},"887":{},"890":{},"891":{},"901":{},"902":{}}}],["perform",{"_index":176,"title":{},"content":{"34":{},"37":{},"67":{},"85":{},"108":{},"209":{},"212":{},"213":{},"214":{},"225":{},"236":{},"248":{},"250":{},"251":{},"256":{},"258":{},"273":{},"277":{},"306":{},"313":{},"315":{},"317":{},"318":{},"331":{},"334":{},"335":{},"339":{},"340":{},"345":{},"358":{},"363":{},"373":{},"417":{},"424":{},"462":{},"472":{},"473":{},"605":{},"639":{},"669":{},"672":{},"680":{},"697":{},"702":{},"707":{},"713":{},"722":{},"728":{},"733":{},"752":{},"779":{},"782":{},"804":{},"805":{},"820":{},"827":{},"871":{},"894":{},"901":{},"907":{},"910":{},"949":{},"952":{},"958":{}}}],["performecdh",{"_index":746,"title":{},"content":{"213":{},"214":{}}}],["performecdh(uint8_t",{"_index":749,"title":{},"content":{"213":{},"214":{}}}],["performecdsa",{"_index":852,"title":{},"content":{"214":{}}}],["performecdsa(uint8_t",{"_index":853,"title":{},"content":{"214":{}}}],["period",{"_index":1155,"title":{"882":{}},"content":{"251":{},"335":{},"338":{},"618":{},"713":{},"817":{},"819":{},"878":{},"881":{},"882":{},"883":{},"884":{},"887":{},"890":{},"891":{}}}],["peripheri",{"_index":3360,"title":{},"content":{"729":{}}}],["perman",{"_index":3317,"title":{},"content":{"727":{},"799":{},"808":{}}}],["permissionless",{"_index":3246,"title":{},"content":{"711":{}}}],["permit",{"_index":2779,"title":{},"content":{"594":{},"733":{},"779":{}}}],["persist",{"_index":1558,"title":{},"content":{"314":{},"319":{},"512":{},"560":{},"658":{},"721":{},"722":{},"740":{},"952":{}}}],["person",{"_index":1591,"title":{},"content":{"315":{},"674":{},"681":{},"690":{},"693":{},"699":{},"797":{},"901":{}}}],["perspect",{"_index":906,"title":{},"content":{"236":{},"312":{},"887":{}}}],["pertain",{"_index":3775,"title":{},"content":{"886":{}}}],["phase",{"_index":1141,"title":{},"content":{"248":{},"321":{},"662":{},"702":{},"715":{},"878":{}}}],["photograph",{"_index":3332,"title":{},"content":{"728":{}}}],["photographi",{"_index":3354,"title":{},"content":{"728":{}}}],["phrase",{"_index":2939,"title":{},"content":{"655":{},"658":{},"950":{},"952":{}}}],["physic",{"_index":503,"title":{},"content":{"204":{},"651":{}}}],["pick",{"_index":1614,"title":{},"content":{"316":{},"716":{}}}],["pictur",{"_index":3726,"title":{},"content":{"877":{}}}],["piec",{"_index":3829,"title":{},"content":{"910":{}}}],["pillar",{"_index":3198,"title":{},"content":{"690":{}}}],["pin",{"_index":1389,"title":{},"content":{"281":{},"300":{},"301":{},"302":{},"303":{},"655":{},"946":{},"947":{},"951":{},"952":{}}}],["pioneer",{"_index":3847,"title":{},"content":{"925":{}}}],["piv",{"_index":1391,"title":{},"content":{"281":{},"283":{},"679":{}}}],["pivot",{"_index":3841,"title":{},"content":{"925":{}}}],["place",{"_index":1512,"title":{"649":{}},"content":{"310":{},"380":{},"550":{},"649":{},"692":{},"870":{}}}],["placehold",{"_index":2108,"title":{},"content":{"380":{}}}],["placement",{"_index":3108,"title":{"680":{}},"content":{}}],["plain",{"_index":442,"title":{},"content":{"157":{},"592":{}}}],["plan",{"_index":3753,"title":{},"content":{"878":{}}}],["plane",{"_index":3533,"title":{},"content":{"794":{}}}],["platform",{"_index":2887,"title":{},"content":{"637":{},"655":{},"658":{},"679":{},"688":{},"724":{},"821":{},"827":{},"863":{},"864":{},"865":{},"866":{},"870":{},"871":{},"913":{},"925":{},"927":{},"929":{},"937":{},"949":{},"959":{},"998":{}}}],["platform'",{"_index":3702,"title":{},"content":{"862":{},"865":{},"869":{},"923":{}}}],["platform’",{"_index":3738,"title":{},"content":{"869":{}}}],["play",{"_index":3053,"title":{},"content":{"672":{},"924":{}}}],["playbook",{"_index":1672,"title":{},"content":{"321":{}}}],["player",{"_index":3872,"title":{},"content":{"937":{}}}],["playground",{"_index":2646,"title":{"530":{},"538":{},"545":{},"546":{},"547":{},"550":{}},"content":{"530":{},"545":{},"548":{},"552":{},"559":{}}}],["pleas",{"_index":1835,"title":{},"content":{"361":{},"366":{},"546":{},"593":{},"637":{},"658":{},"691":{},"765":{},"823":{},"855":{},"867":{},"886":{},"887":{}}}],["plugin",{"_index":3941,"title":{},"content":{"949":{}}}],["pm",{"_index":4055,"title":{},"content":{"1000":{}}}],["po",{"_index":2809,"title":{},"content":{"608":{},"610":{},"856":{},"858":{}}}],["point",{"_index":1233,"title":{"858":{},"958":{},"959":{}},"content":{"268":{},"271":{},"274":{},"277":{},"284":{},"285":{},"288":{},"289":{},"291":{},"297":{},"298":{},"301":{},"302":{},"303":{},"390":{},"801":{},"802":{},"820":{},"856":{},"883":{},"891":{}}}],["pointer",{"_index":768,"title":{},"content":{"213":{},"214":{},"796":{}}}],["pointx",{"_index":747,"title":{},"content":{"213":{},"214":{}}}],["pol",{"_index":2805,"title":{},"content":{"608":{}}}],["polici",{"_index":1258,"title":{},"content":{"269":{},"655":{}}}],["poll",{"_index":1736,"title":{},"content":{"337":{},"342":{},"651":{},"705":{}}}],["pollut",{"_index":3283,"title":{},"content":{"724":{}}}],["polygon",{"_index":2808,"title":{},"content":{"608":{},"610":{},"645":{},"646":{},"648":{},"815":{},"856":{},"858":{}}}],["polymorph",{"_index":3163,"title":{},"content":{"687":{}}}],["pool",{"_index":2891,"title":{"638":{},"639":{},"859":{},"861":{},"886":{},"887":{},"896":{},"897":{},"898":{},"899":{},"900":{},"901":{},"902":{},"903":{},"918":{}},"content":{"638":{},"721":{},"732":{},"817":{},"819":{},"820":{},"860":{},"861":{},"862":{},"865":{},"870":{},"874":{},"876":{},"877":{},"878":{},"885":{},"886":{},"888":{},"894":{},"897":{},"898":{},"899":{},"900":{},"901":{},"902":{},"903":{},"905":{},"906":{},"907":{},"908":{},"909":{},"910":{},"914":{},"915":{},"916":{},"917":{},"919":{},"921":{},"922":{},"925":{},"930":{},"931":{},"932":{},"933":{},"934":{},"935":{}}}],["pool'",{"_index":3803,"title":{},"content":{"894":{},"898":{},"901":{},"902":{},"903":{},"907":{},"910":{},"917":{},"918":{},"919":{},"920":{},"931":{}}}],["pool’",{"_index":3813,"title":{},"content":{"901":{}}}],["popul",{"_index":1355,"title":{},"content":{"274":{},"355":{}}}],["popular",{"_index":3938,"title":{},"content":{"949":{},"957":{}}}],["popup",{"_index":2935,"title":{},"content":{"655":{},"834":{},"894":{}}}],["port",{"_index":164,"title":{},"content":{"28":{},"43":{},"258":{},"307":{},"334":{},"354":{},"356":{},"708":{}}}],["portal",{"_index":3515,"title":{},"content":{"789":{}}}],["portfolio",{"_index":3823,"title":{},"content":{"906":{}}}],["portion",{"_index":1262,"title":{},"content":{"269":{},"861":{},"891":{},"903":{},"907":{},"909":{},"931":{}}}],["pos_int",{"_index":2302,"title":{},"content":{"438":{},"442":{},"443":{}}}],["pose",{"_index":3178,"title":{},"content":{"689":{}}}],["posinteg",{"_index":85,"title":{"171":{}},"content":{"16":{},"17":{},"73":{},"74":{},"120":{},"121":{},"128":{},"129":{},"144":{},"145":{},"147":{},"148":{},"171":{}}}],["posist",{"_index":1461,"title":{},"content":{"299":{}}}],["posit",{"_index":463,"title":{},"content":{"171":{},"295":{},"299":{},"301":{},"315":{},"316":{},"318":{},"708":{},"728":{},"864":{},"887":{},"891":{},"925":{},"937":{}}}],["possibl",{"_index":37,"title":{},"content":{"19":{},"245":{},"308":{},"315":{},"349":{},"369":{},"387":{},"395":{},"403":{},"437":{},"447":{},"593":{},"624":{},"641":{},"645":{},"651":{},"660":{},"670":{},"675":{},"678":{},"680":{},"682":{},"683":{},"684":{},"690":{},"728":{},"756":{},"758":{},"796":{},"826":{},"853":{},"854":{},"891":{},"910":{},"951":{}}}],["post",{"_index":2419,"title":{},"content":{"472":{},"832":{},"833":{},"935":{}}}],["postur",{"_index":3746,"title":{},"content":{"870":{}}}],["potenti",{"_index":2896,"title":{},"content":{"638":{},"639":{},"666":{},"877":{},"891":{},"894":{},"901":{},"902":{},"903":{},"905":{},"916":{},"923":{}}}],["pow",{"_index":2994,"title":{},"content":{"651":{},"687":{}}}],["pow/2",{"_index":2540,"title":{"522":{}},"content":{}}],["power",{"_index":1678,"title":{},"content":{"322":{},"522":{},"698":{},"730":{},"809":{},"839":{},"863":{}}}],["practic",{"_index":3417,"title":{},"content":{"754":{},"870":{}}}],["pratic",{"_index":3075,"title":{},"content":{"670":{}}}],["pre",{"_index":3666,"title":{"955":{}},"content":{"840":{},"894":{},"898":{},"907":{},"910":{}}}],["precis",{"_index":448,"title":{},"content":{"161":{},"390":{},"441":{},"910":{},"996":{}}}],["preconfigur",{"_index":3273,"title":{},"content":{"708":{}}}],["predetermin",{"_index":2834,"title":{"615":{}},"content":{}}],["predict",{"_index":1526,"title":{},"content":{"311":{},"315":{},"659":{},"727":{},"926":{}}}],["preemptiv",{"_index":3089,"title":{},"content":{"678":{}}}],["prefer",{"_index":522,"title":{},"content":{"204":{},"593":{},"804":{},"952":{}}}],["prefix",{"_index":2027,"title":{},"content":{"387":{},"388":{}}}],["preliminari",{"_index":3040,"title":{},"content":{"662":{}}}],["prepar",{"_index":2703,"title":{},"content":{"550":{}}}],["prepend",{"_index":1004,"title":{},"content":{"232":{},"268":{},"314":{},"668":{},"670":{}}}],["prepend/2",{"_index":2484,"title":{"487":{}},"content":{"486":{}}}],["prerequisit",{"_index":580,"title":{"206":{}},"content":{"690":{},"699":{}}}],["present",{"_index":1597,"title":{},"content":{"315":{},"318":{},"357":{},"358":{},"420":{},"593":{},"715":{},"809":{},"901":{},"910":{}}}],["preserv",{"_index":2434,"title":{},"content":{"473":{}}}],["preset",{"_index":2125,"title":{},"content":{"381":{}}}],["press",{"_index":3674,"title":{},"content":{"843":{},"845":{},"846":{},"847":{},"848":{},"850":{},"851":{},"852":{},"853":{}}}],["pretti",{"_index":2030,"title":{},"content":{"389":{},"541":{}}}],["prevail",{"_index":2773,"title":{},"content":{"593":{}}}],["prevent",{"_index":1211,"title":{},"content":{"266":{},"604":{},"638":{},"675":{},"683":{},"685":{},"732":{},"951":{}}}],["previou",{"_index":380,"title":{},"content":{"108":{},"214":{},"247":{},"251":{},"271":{},"272":{},"273":{},"274":{},"275":{},"276":{},"277":{},"293":{},"314":{},"315":{},"320":{},"331":{},"363":{},"364":{},"381":{},"406":{},"407":{},"409":{},"414":{},"422":{},"437":{},"550":{},"560":{},"665":{},"666":{},"670":{},"709":{},"764":{},"766":{},"779":{},"799":{},"812":{},"994":{}}}],["previous",{"_index":1452,"title":{},"content":{"295":{}}}],["previous.cod",{"_index":2164,"title":{},"content":{"406":{}}}],["previous_index",{"_index":2176,"title":{},"content":{"407":{}}}],["previous_public_key",{"_index":2217,"title":{},"content":{"421":{},"422":{},"437":{}}}],["previousaddress",{"_index":283,"title":{},"content":{"73":{}}}],["previouspublickey",{"_index":284,"title":{},"content":{"73":{},"994":{}}}],["previoussignatur",{"_index":285,"title":{},"content":{"73":{},"994":{}}}],["price",{"_index":1776,"title":{"614":{},"636":{},"919":{},"936":{}},"content":{"346":{},"377":{},"411":{},"614":{},"636":{},"692":{},"693":{},"706":{},"765":{},"860":{},"869":{},"870":{},"894":{},"895":{},"898":{},"907":{},"914":{},"919":{},"920":{},"926":{},"932":{},"934":{},"936":{},"947":{},"952":{}}}],["primari",{"_index":1330,"title":{},"content":{"269":{},"270":{},"924":{},"952":{}}}],["primarili",{"_index":1099,"title":{},"content":{"237":{}}}],["principl",{"_index":1097,"title":{"778":{}},"content":{"257":{},"315":{},"678":{},"782":{}}}],["prior",{"_index":577,"title":{},"content":{"205":{},"331":{}}}],["prioriti",{"_index":3976,"title":{},"content":{"952":{}}}],["privaci",{"_index":1250,"title":{},"content":{"269":{},"352":{},"655":{},"717":{},"724":{},"727":{},"864":{},"952":{}}}],["privat",{"_index":520,"title":{},"content":{"204":{},"212":{},"219":{},"221":{},"224":{},"236":{},"269":{},"277":{},"374":{},"666":{},"675":{},"711":{},"727":{},"779":{},"805":{},"808":{},"810":{},"817":{},"957":{},"958":{}}}],["privateket",{"_index":862,"title":{},"content":{"214":{}}}],["privatekey",{"_index":710,"title":{},"content":{"212":{},"213":{},"214":{}}}],["probabl",{"_index":2672,"title":{},"content":{"541":{},"841":{}}}],["problem",{"_index":29,"title":{"627":{},"629":{}},"content":{"5":{},"315":{}}}],["proce",{"_index":3592,"title":{},"content":{"797":{},"809":{},"817":{},"895":{},"899":{},"908":{},"911":{}}}],["proceed",{"_index":3646,"title":{},"content":{"827":{},"871":{}}}],["process",{"_index":646,"title":{"621":{},"622":{},"716":{},"739":{},"838":{}},"content":{"211":{},"244":{},"246":{},"249":{},"255":{},"256":{},"307":{},"320":{},"322":{},"323":{},"324":{},"327":{},"331":{},"342":{},"377":{},"604":{},"619":{},"621":{},"630":{},"638":{},"645":{},"652":{},"655":{},"677":{},"691":{},"702":{},"708":{},"727":{},"730":{},"731":{},"795":{},"818":{},"819":{},"820":{},"831":{},"834":{},"838":{},"860":{},"895":{},"899":{},"906":{},"908":{},"909":{},"910":{},"911":{},"914":{},"915":{},"917":{}}}],["processor",{"_index":3084,"title":{},"content":{"677":{}}}],["produc",{"_index":1003,"title":{},"content":{"232":{},"321":{},"322":{},"527":{},"661":{},"672":{},"685":{},"718":{}}}],["product",{"_index":1059,"title":{"870":{},"934":{}},"content":{"255":{},"366":{},"595":{},"596":{},"597":{},"598":{},"599":{},"600":{},"839":{},"855":{},"870":{},"927":{},"934":{},"935":{},"936":{}}}],["profession",{"_index":3844,"title":{},"content":{"925":{}}}],["profil",{"_index":2948,"title":{},"content":{"656":{}}}],["profit",{"_index":3190,"title":{},"content":{"690":{},"865":{},"877":{},"901":{},"926":{}}}],["progess",{"_index":3064,"title":{},"content":{"667":{}}}],["program",{"_index":1020,"title":{},"content":{"254":{},"255":{},"306":{},"307":{},"870":{},"949":{},"956":{}}}],["programm",{"_index":3210,"title":{},"content":{"692":{}}}],["progress",{"_index":2910,"title":{},"content":{"645":{},"693":{},"703":{},"831":{},"893":{}}}],["prohibit",{"_index":3047,"title":{},"content":{"672":{},"727":{}}}],["project",{"_index":604,"title":{"725":{}},"content":{"207":{},"211":{},"322":{},"591":{},"645":{},"690":{},"691":{},"791":{},"854":{},"905":{},"925":{},"926":{},"927":{},"953":{}}}],["project'",{"_index":2916,"title":{},"content":{"645":{}}}],["prometheu",{"_index":1665,"title":{},"content":{"321":{}}}],["promin",{"_index":3783,"title":{},"content":{"887":{},"894":{},"902":{}}}],["promot",{"_index":1074,"title":{},"content":{"255":{},"690":{}}}],["prompt",{"_index":851,"title":{},"content":{"214":{},"808":{},"809":{},"810":{},"811":{},"834":{}}}],["proof",{"_index":151,"title":{"328":{},"672":{},"699":{}},"content":{"40":{},"64":{},"108":{},"137":{},"328":{},"330":{},"661":{},"666":{},"672":{},"690":{},"751":{},"779":{},"820":{},"994":{}}}],["proofofintegr",{"_index":381,"title":{},"content":{"108":{}}}],["proofofwork",{"_index":383,"title":{},"content":{"108":{}}}],["prop",{"_index":1681,"title":{},"content":{"322":{}}}],["prop1",{"_index":2145,"title":{},"content":{"403":{}}}],["prop2",{"_index":2146,"title":{},"content":{"403":{}}}],["prop3",{"_index":2147,"title":{},"content":{"403":{}}}],["prop4",{"_index":2148,"title":{},"content":{"403":{}}}],["prop_{proposal_address",{"_index":1690,"title":{},"content":{"322":{}}}],["propag",{"_index":3249,"title":{"719":{}},"content":{"712":{},"713":{}}}],["proper",{"_index":1148,"title":{},"content":{"249":{},"658":{},"702":{}}}],["properti",{"_index":254,"title":{},"content":{"64":{},"137":{},"190":{},"354":{},"375":{},"395":{},"405":{},"659":{},"685":{},"693":{},"697":{},"713":{},"715":{},"719":{},"755":{},"756":{},"758":{},"942":{}}}],["property_nam",{"_index":3422,"title":{},"content":{"755":{}}}],["property_valu",{"_index":3423,"title":{},"content":{"755":{}}}],["proport",{"_index":3861,"title":{},"content":{"917":{}}}],["proportion",{"_index":3718,"title":{},"content":{"876":{},"936":{}}}],["propos",{"_index":1643,"title":{"320":{},"339":{}},"content":{"320":{},"321":{},"322":{},"335":{},"337":{},"339":{},"340":{},"591":{},"691":{},"702":{},"895":{},"899":{},"908":{},"911":{},"998":{}}}],["protect",{"_index":2938,"title":{},"content":{"655":{},"865":{},"920":{},"932":{},"936":{},"946":{},"952":{},"957":{},"958":{}}}],["protobuf",{"_index":1807,"title":{},"content":{"351":{}}}],["protocol",{"_index":111,"title":{"351":{},"928":{}},"content":{"22":{},"108":{},"111":{},"153":{},"154":{},"349":{},"351":{},"352":{},"354":{},"472":{},"690":{},"691":{},"708":{},"715":{},"727":{},"788":{},"818":{},"870":{},"904":{},"905":{},"914":{},"922":{},"957":{},"959":{},"998":{}}}],["protocolvers",{"_index":116,"title":{},"content":{"22":{},"108":{}}}],["prove",{"_index":1595,"title":{},"content":{"315":{},"757":{},"779":{},"804":{},"826":{}}}],["proven",{"_index":1883,"title":{},"content":{"377":{},"869":{},"870":{}}}],["provid",{"_index":720,"title":{"802":{},"916":{},"925":{}},"content":{"212":{},"224":{},"237":{},"238":{},"240":{},"241":{},"243":{},"245":{},"247":{},"255":{},"264":{},"304":{},"307":{},"309":{},"310":{},"312":{},"315":{},"316":{},"331":{},"341":{},"343":{},"344":{},"345":{},"357":{},"363":{},"375":{},"376":{},"380":{},"400":{},"414":{},"560":{},"608":{},"638":{},"639":{},"650":{},"652":{},"656":{},"666":{},"667":{},"670":{},"674":{},"681":{},"687":{},"689":{},"690":{},"698":{},"717":{},"718":{},"746":{},"747":{},"762":{},"765":{},"785":{},"787":{},"789":{},"801":{},"808":{},"809":{},"810":{},"811":{},"817":{},"818":{},"820":{},"821":{},"829":{},"834":{},"842":{},"850":{},"860":{},"861":{},"862":{},"865":{},"866":{},"870":{},"873":{},"876":{},"877":{},"881":{},"886":{},"887":{},"888":{},"889":{},"890":{},"891":{},"894":{},"895":{},"899":{},"901":{},"902":{},"903":{},"904":{},"905":{},"907":{},"908":{},"910":{},"911":{},"914":{},"916":{},"918":{},"923":{},"924":{},"925":{},"926":{},"931":{},"932":{},"933":{},"934":{},"950":{},"951":{},"952":{},"959":{}}}],["provis",{"_index":2797,"title":{},"content":{"605":{},"820":{},"862":{},"863":{},"869":{},"876":{},"877":{},"898":{},"923":{},"925":{},"929":{},"933":{},"937":{}}}],["pseudo",{"_index":3044,"title":{},"content":{"672":{}}}],["pub",{"_index":4004,"title":{},"content":{"956":{}}}],["pub.dev",{"_index":1832,"title":{},"content":{"361":{},"953":{}}}],["public",{"_index":48,"title":{"212":{},"217":{},"232":{},"329":{},"565":{},"665":{},"668":{}},"content":{"9":{},"25":{},"40":{},"52":{},"58":{},"64":{},"108":{},"133":{},"134":{},"137":{},"173":{},"205":{},"206":{},"209":{},"212":{},"214":{},"217":{},"219":{},"220":{},"221":{},"224":{},"225":{},"230":{},"232":{},"235":{},"246":{},"263":{},"267":{},"269":{},"271":{},"274":{},"275":{},"277":{},"283":{},"292":{},"314":{},"315":{},"317":{},"320":{},"328":{},"329":{},"330":{},"332":{},"334":{},"352":{},"354":{},"356":{},"357":{},"358":{},"359":{},"371":{},"387":{},"417":{},"422":{},"425":{},"432":{},"545":{},"546":{},"559":{},"565":{},"661":{},"665":{},"668":{},"669":{},"670":{},"672":{},"678":{},"682":{},"684":{},"690":{},"717":{},"727":{},"732":{},"744":{},"745":{},"778":{},"779":{},"782":{},"808":{},"809":{},"810":{},"817":{},"845":{},"863":{},"865":{},"894":{},"898":{},"907":{},"913":{},"924":{},"926":{},"927":{},"929":{},"931":{},"933":{},"937":{},"960":{},"972":{},"983":{},"985":{},"994":{}}}],["public_key",{"_index":2274,"title":{},"content":{"432":{},"453":{}}}],["publicarea",{"_index":1247,"title":{},"content":{"269":{}}}],["publicationstatu",{"_index":3596,"title":{},"content":{"799":{}}}],["publickey",{"_index":58,"title":{"173":{}},"content":{"9":{},"10":{},"25":{},"26":{},"43":{},"44":{},"58":{},"59":{},"73":{},"74":{},"108":{},"109":{},"173":{},"212":{},"213":{},"214":{},"224":{},"267":{},"985":{}}}],["publickeys",{"_index":1357,"title":{"275":{},"294":{},"295":{}},"content":{}}],["publish",{"_index":558,"title":{},"content":{"204":{},"260":{},"361":{},"710":{},"808":{},"809":{},"810":{}}}],["pull",{"_index":2752,"title":{},"content":{"591":{},"593":{},"739":{},"794":{}}}],["purchas",{"_index":3854,"title":{},"content":{"926":{}}}],["pure",{"_index":3118,"title":{},"content":{"680":{}}}],["purpos",{"_index":945,"title":{"604":{}},"content":{"223":{},"315":{},"343":{},"357":{},"403":{},"406":{},"408":{},"410":{},"680":{},"690":{},"703":{},"821":{},"829":{},"866":{},"873":{},"926":{},"949":{},"993":{},"996":{}}}],["push",{"_index":1854,"title":{},"content":{"374":{},"593":{},"716":{},"794":{}}}],["put",{"_index":1611,"title":{},"content":{"316":{},"472":{},"655":{},"692":{}}}],["qr",{"_index":2950,"title":{},"content":{"656":{},"947":{}}}],["qualif",{"_index":1821,"title":{},"content":{"354":{}}}],["qualifi",{"_index":3010,"title":{},"content":{"652":{},"718":{}}}],["qualiti",{"_index":3689,"title":{},"content":{"863":{}}}],["quantiti",{"_index":2889,"title":{"638":{}},"content":{"638":{},"833":{},"870":{},"898":{},"934":{}}}],["quantum",{"_index":3056,"title":{"664":{}},"content":{"663":{},"666":{},"778":{}}}],["queri",{"_index":45,"title":{"583":{}},"content":{"14":{},"18":{},"21":{},"30":{},"45":{},"48":{},"60":{},"66":{},"75":{},"93":{},"103":{},"105":{},"113":{},"114":{},"117":{},"120":{},"123":{},"128":{},"133":{},"135":{},"138":{},"141":{},"144":{},"147":{},"150":{},"170":{},"172":{},"176":{},"177":{},"183":{},"189":{},"193":{},"238":{},"241":{},"355":{},"363":{},"364":{},"371":{},"377":{},"579":{},"580":{},"581":{},"582":{},"583":{},"584":{},"585":{},"660":{},"1000":{}}}],["question",{"_index":3683,"title":{},"content":{"855":{}}}],["queue",{"_index":1803,"title":{},"content":{"350":{}}}],["quick",{"_index":3784,"title":{},"content":{"887":{},"901":{},"902":{},"951":{}}}],["quicker",{"_index":1761,"title":{},"content":{"342":{}}}],["quickli",{"_index":1159,"title":{},"content":{"251":{},"315":{},"343":{},"887":{}}}],["quit",{"_index":3496,"title":{},"content":{"787":{}}}],["quorum",{"_index":3199,"title":{},"content":{"690":{},"701":{}}}],["quot",{"_index":2004,"title":{},"content":{"386":{},"387":{}}}],["r",{"_index":1228,"title":{"268":{}},"content":{"268":{},"463":{},"473":{}}}],["r.bodi",{"_index":2433,"title":{},"content":{"473":{}}}],["r.statu",{"_index":2432,"title":{},"content":{"473":{}}}],["race",{"_index":3194,"title":{},"content":{"690":{}}}],["rain",{"_index":2197,"title":{},"content":{"411":{}}}],["rais",{"_index":2425,"title":{},"content":{"472":{},"890":{}}}],["ran",{"_index":1710,"title":{},"content":{"327":{}}}],["random",{"_index":1505,"title":{},"content":{"309":{},"547":{},"672":{},"950":{},"952":{}}}],["random.secur",{"_index":3956,"title":{},"content":{"950":{}}}],["randomli",{"_index":3137,"title":{},"content":{"682":{},"713":{},"950":{}}}],["rang",{"_index":1043,"title":{"391":{}},"content":{"255":{},"718":{},"865":{},"876":{},"927":{}}}],["rar",{"_index":3602,"title":{},"content":{"808":{}}}],["rare",{"_index":3209,"title":{},"content":{"692":{},"788":{}}}],["rate",{"_index":3341,"title":{},"content":{"728":{},"865":{},"877":{},"881":{},"890":{},"901":{},"903":{},"932":{}}}],["ratio",{"_index":2928,"title":{},"content":{"647":{},"894":{},"898":{},"899":{},"903":{},"907":{},"908":{},"910":{}}}],["rational",{"_index":1481,"title":{"309":{}},"content":{}}],["raw",{"_index":733,"title":{},"content":{"212":{},"221":{},"267":{},"268":{},"270":{},"382":{},"559":{}}}],["rawprivatekey",{"_index":717,"title":{},"content":{"212":{}}}],["re",{"_index":1378,"title":{},"content":{"277":{}}}],["reach",{"_index":1615,"title":{},"content":{"316":{},"351":{},"354":{},"425":{},"472":{},"662":{},"687":{},"708":{},"883":{}}}],["react",{"_index":2099,"title":{},"content":{"400":{},"538":{},"539":{},"949":{}}}],["read",{"_index":890,"title":{"318":{}},"content":{"234":{},"292":{},"296":{},"308":{},"309":{},"311":{},"314":{},"315":{},"316":{},"317":{},"318":{},"377":{},"447":{},"508":{},"510":{},"551":{},"560":{},"586":{},"587":{},"588":{},"655":{},"774":{},"787":{},"806":{},"950":{}}}],["read/writ",{"_index":2050,"title":{},"content":{"393":{}}}],["readabl",{"_index":472,"title":{},"content":{"186":{},"374":{},"993":{},"996":{}}}],["reader",{"_index":576,"title":{"316":{}},"content":{"205":{},"318":{}}}],["readi",{"_index":2676,"title":{},"content":{"546":{},"686":{},"710":{},"817":{}}}],["readm",{"_index":3613,"title":{},"content":{"824":{},"854":{}}}],["real",{"_index":1752,"title":{},"content":{"343":{},"373":{},"652":{},"690":{},"692":{},"701":{},"702":{},"724":{},"740":{},"881":{}}}],["realiti",{"_index":1849,"title":{},"content":{"373":{},"731":{},"778":{}}}],["realiz",{"_index":3179,"title":{},"content":{"689":{},"891":{},"903":{}}}],["realli",{"_index":1092,"title":{},"content":{"256":{},"310":{},"311":{},"315":{},"319":{},"351":{},"357":{},"670":{},"794":{}}}],["realtim",{"_index":3391,"title":{"740":{}},"content":{}}],["rearrang",{"_index":3870,"title":{},"content":{"935":{}}}],["reason",{"_index":321,"title":{},"content":{"79":{},"80":{},"376":{},"395":{},"546":{},"645":{},"670":{},"675":{},"778":{},"949":{},"952":{}}}],["rebind",{"_index":2105,"title":{},"content":{"380":{}}}],["rebuild",{"_index":3008,"title":{},"content":{"652":{}}}],["recalcul",{"_index":3764,"title":{},"content":{"881":{}}}],["receiv",{"_index":308,"title":{"647":{}},"content":{"76":{},"200":{},"205":{},"236":{},"315":{},"322":{},"363":{},"369":{},"372":{},"374":{},"420":{},"472":{},"613":{},"647":{},"656":{},"662":{},"705":{},"706":{},"716":{},"747":{},"758":{},"798":{},"819":{},"820":{},"832":{},"834":{},"838":{},"860":{},"861":{},"894":{},"895":{},"903":{},"907":{},"910":{},"915":{},"917":{},"923":{},"925":{},"931":{},"935":{},"947":{},"973":{},"976":{},"979":{}}}],["receive/send",{"_index":3475,"title":{},"content":{"770":{}}}],["receiveaddr",{"_index":837,"title":{},"content":{"214":{}}}],["receiveaddrlen",{"_index":838,"title":{},"content":{"214":{}}}],["recent",{"_index":2905,"title":{},"content":{"639":{},"947":{}}}],["recept",{"_index":3988,"title":{},"content":{"952":{}}}],["recertif",{"_index":3315,"title":{},"content":{"727":{}}}],["recieveraddr",{"_index":847,"title":{},"content":{"214":{}}}],["recieveraddress",{"_index":825,"title":{},"content":{"214":{}}}],["recipi",{"_index":152,"title":{"55":{},"558":{},"758":{},"845":{}},"content":{"40":{},"41":{},"55":{},"82":{},"168":{},"180":{},"181":{},"187":{},"214":{},"239":{},"240":{},"242":{},"243":{},"244":{},"315":{},"352":{},"422":{},"455":{},"532":{},"621":{},"662":{},"693":{},"697":{},"732":{},"748":{},"753":{},"758":{},"772":{},"779":{},"817":{},"819":{},"845":{}}}],["recipient'",{"_index":3441,"title":{},"content":{"759":{},"819":{},"820":{}}}],["recipient.act",{"_index":236,"title":{},"content":{"56":{}}}],["recipient.address",{"_index":237,"title":{},"content":{"56":{}}}],["recipient.arg",{"_index":238,"title":{},"content":{"56":{}}}],["recipient/send",{"_index":1109,"title":{},"content":{"239":{}}}],["recipient/sender/token",{"_index":1112,"title":{},"content":{"242":{}}}],["recipient_address",{"_index":1913,"title":{},"content":{"369":{},"422":{}}}],["recipientarg",{"_index":235,"title":{"180":{}},"content":{"55":{},"56":{},"180":{}}}],["reclaim",{"_index":3827,"title":{},"content":{"909":{}}}],["recogn",{"_index":2837,"title":{"631":{}},"content":{"616":{},"631":{},"822":{}}}],["recognit",{"_index":3971,"title":{},"content":{"951":{}}}],["recommand",{"_index":3552,"title":{},"content":{"804":{}}}],["recommend",{"_index":3642,"title":{},"content":{"827":{}}}],["record",{"_index":3328,"title":{},"content":{"728":{},"802":{},"952":{}}}],["recoveri",{"_index":4018,"title":{},"content":{"960":{}}}],["recur",{"_index":1920,"title":{"370":{}},"content":{}}],["recurr",{"_index":2204,"title":{"413":{}},"content":{}}],["red",{"_index":3610,"title":{},"content":{"812":{},"813":{}}}],["redeem",{"_index":3828,"title":{},"content":{"910":{},"917":{}}}],["redefin",{"_index":3485,"title":{},"content":{"783":{}}}],["redesign",{"_index":3248,"title":{},"content":{"711":{}}}],["redi",{"_index":1493,"title":{},"content":{"309":{}}}],["redirect",{"_index":1713,"title":{"603":{}},"content":{"327":{},"801":{},"803":{}}}],["reduc",{"_index":981,"title":{},"content":{"225":{},"312":{},"350":{},"351":{},"387":{},"652":{},"693":{},"719":{},"724":{},"750":{},"777":{},"949":{},"951":{}}}],["redund",{"_index":1519,"title":{},"content":{"310":{}}}],["ref",{"_index":3300,"title":{},"content":{"727":{},"728":{},"729":{}}}],["refer",{"_index":624,"title":{},"content":{"210":{},"263":{},"265":{},"276":{},"277":{},"278":{},"375":{},"656":{},"727":{},"741":{},"796":{},"797":{},"798":{},"799":{},"801":{},"805":{},"808":{},"809":{},"810":{},"811":{},"821":{},"823":{},"832":{},"866":{},"867":{},"886":{},"887":{},"902":{},"922":{},"937":{}}}],["referenc",{"_index":3136,"title":{},"content":{"682":{},"743":{},"757":{}}}],["refin",{"_index":3367,"title":{},"content":{"733":{}}}],["reflect",{"_index":2915,"title":{},"content":{"645":{}}}],["refresh",{"_index":4022,"title":{},"content":{"965":{}}}],["refresh_current_account",{"_index":4021,"title":{"965":{}},"content":{}}],["refund",{"_index":2180,"title":{"838":{}},"content":{"408":{},"627":{},"817":{},"830":{},"837":{},"838":{}}}],["refus",{"_index":2862,"title":{"627":{}},"content":{"659":{}}}],["regard",{"_index":1737,"title":{},"content":{"337":{},"342":{},"358":{},"603":{},"670":{},"692":{},"788":{},"812":{},"820":{},"842":{}}}],["regardless",{"_index":2989,"title":{},"content":{"651":{}}}],["regener",{"_index":1362,"title":{},"content":{"275":{}}}],["regex",{"_index":2263,"title":{"504":{}},"content":{"418":{},"504":{},"505":{},"507":{}}}],["regex.extract(\"123456abc",{"_index":2564,"title":{},"content":{"505":{}}}],["regex.extract(\"voodoo",{"_index":2567,"title":{},"content":{"505":{}}}],["regex.match?(\"123456",{"_index":2570,"title":{},"content":{"506":{}}}],["regex.match?(\"123456abc",{"_index":2571,"title":{},"content":{"506":{}}}],["regex.scan(\"a0b1c2,123\\nd3e4f5,456\\n",{"_index":2579,"title":{},"content":{"507":{}}}],["regex.scan(\"foo",{"_index":2573,"title":{},"content":{"507":{}}}],["regex.scan(\"toto,123\\ntutu,456\\n",{"_index":2574,"title":{},"content":{"507":{}}}],["regex_extract(data",{"_index":2232,"title":{},"content":{"424":{}}}],["regex_match?(\"hello",{"_index":2231,"title":{},"content":{"424":{}}}],["regex_match?(data",{"_index":2228,"title":{},"content":{"424":{}}}],["regist",{"_index":425,"title":{},"content":{"131":{},"820":{}}}],["registr",{"_index":3314,"title":{},"content":{"727":{}}}],["registri",{"_index":1712,"title":{},"content":{"327":{}}}],["regular",{"_index":2230,"title":{},"content":{"424":{},"504":{},"693":{},"870":{}}}],["reimport",{"_index":2957,"title":{},"content":{"658":{}}}],["reinforc",{"_index":3821,"title":{},"content":{"905":{}}}],["reinstal",{"_index":2965,"title":{},"content":{"658":{}}}],["reintegr",{"_index":3451,"title":{},"content":{"778":{}}}],["reject",{"_index":417,"title":{},"content":{"119":{},"163":{},"173":{},"175":{},"196":{},"403":{}}}],["rejoin",{"_index":3093,"title":{},"content":{"678":{},"709":{}}}],["rel",{"_index":3432,"title":{},"content":{"756":{},"894":{}}}],["relat",{"_index":54,"title":{},"content":{"9":{},"342":{},"660":{},"670":{},"682":{},"727":{},"728":{},"797":{},"885":{},"887":{},"919":{},"952":{},"960":{}}}],["relationship",{"_index":3858,"title":{},"content":{"927":{}}}],["relay",{"_index":1718,"title":{},"content":{"363":{},"698":{}}}],["releas",{"_index":583,"title":{},"content":{"206":{},"321":{},"322":{},"794":{},"838":{},"840":{},"884":{},"890":{}}}],["relev",{"_index":2101,"title":{},"content":{"400":{},"637":{},"690":{},"699":{}}}],["reli",{"_index":1094,"title":{},"content":{"256":{},"375":{},"377":{},"423":{},"472":{},"724":{},"817":{},"818":{},"914":{},"926":{}}}],["reliabl",{"_index":1024,"title":{},"content":{"254":{},"728":{},"870":{},"949":{},"957":{}}}],["reload",{"_index":1083,"title":{},"content":{"255":{},"701":{}}}],["relock",{"_index":3794,"title":{},"content":{"890":{},"891":{}}}],["rem/2",{"_index":2552,"title":{"525":{}},"content":{}}],["remain",{"_index":184,"title":{},"content":{"37":{},"101":{},"122":{},"593":{},"638":{},"645":{},"683":{},"716":{},"779":{},"796":{},"799":{},"819":{},"820":{},"832":{},"870":{},"883":{},"887":{},"890":{},"934":{}}}],["remaind",{"_index":2560,"title":{},"content":{"525":{}}}],["rememb",{"_index":3990,"title":{},"content":{"952":{}}}],["remind",{"_index":2937,"title":{},"content":{"655":{},"670":{},"721":{}}}],["remot",{"_index":554,"title":{},"content":{"204":{},"350":{}}}],["remov",{"_index":1377,"title":{"638":{},"852":{},"909":{},"910":{},"911":{},"917":{}},"content":{"277":{},"503":{},"512":{},"624":{},"638":{},"641":{},"724":{},"725":{},"727":{},"752":{},"837":{},"849":{},"865":{},"874":{},"903":{},"905":{},"910":{},"911":{},"977":{}}}],["remove_servic",{"_index":4030,"title":{"977":{}},"content":{}}],["render",{"_index":441,"title":{},"content":{"157":{},"592":{},"797":{},"803":{},"949":{}}}],["renew",{"_index":1733,"title":{},"content":{"335":{},"661":{},"672":{},"727":{}}}],["rent",{"_index":3504,"title":{},"content":{"788":{}}}],["repair",{"_index":1171,"title":{"720":{}},"content":{"252":{},"260":{},"261":{},"710":{},"715":{},"720":{},"721":{},"727":{}}}],["repaireveri",{"_index":3003,"title":{},"content":{"652":{}}}],["replac",{"_index":328,"title":{},"content":{"80":{},"205":{},"224":{},"493":{},"688":{},"724":{}}}],["repli",{"_index":3559,"title":{},"content":{"804":{}}}],["replic",{"_index":314,"title":{"746":{},"748":{}},"content":{"76":{},"200":{},"244":{},"246":{},"248":{},"315":{},"363":{},"652":{},"662":{},"687":{},"693":{},"716":{},"717":{},"719":{},"722":{},"727":{},"732":{},"737":{},"739":{},"740":{},"747":{},"748":{},"750":{},"760":{},"819":{}}}],["replica",{"_index":1114,"title":{},"content":{"244":{},"693":{},"748":{},"788":{}}}],["replicast",{"_index":1634,"title":{},"content":{"305":{}}}],["repo",{"_index":4002,"title":{},"content":{"956":{}}}],["report",{"_index":2840,"title":{},"content":{"616":{},"822":{}}}],["repositori",{"_index":543,"title":{},"content":{"204":{},"207":{},"210":{},"253":{},"563":{},"592":{},"604":{},"691":{},"824":{}}}],["repository//github.com/archeth",{"_index":2740,"title":{},"content":{"589":{},"590":{}}}],["repres",{"_index":34,"title":{},"content":{"9":{},"12":{},"16":{},"19":{},"22":{},"25":{},"28":{},"34":{},"37":{},"40":{},"43":{},"46":{},"52":{},"55":{},"58":{},"61":{},"64":{},"67":{},"70":{},"73":{},"76":{},"79":{},"82":{},"85":{},"88":{},"91":{},"98":{},"101":{},"107":{},"108":{},"111":{},"116":{},"119":{},"122":{},"125":{},"127":{},"130":{},"132":{},"134":{},"137":{},"140":{},"143":{},"146":{},"149":{},"152":{},"154":{},"155":{},"157":{},"161":{},"163":{},"165":{},"167":{},"169":{},"171":{},"173":{},"175":{},"180":{},"184":{},"186":{},"188":{},"190":{},"192":{},"195":{},"196":{},"200":{},"203":{},"342":{},"343":{},"422":{},"478":{},"554":{},"670":{},"861":{},"863":{},"870":{},"877":{},"887":{},"894":{},"901":{},"902":{},"903":{},"907":{},"910":{},"915":{},"931":{},"934":{},"937":{},"952":{}}}],["represent",{"_index":1001,"title":{"230":{}},"content":{"388":{},"477":{},"516":{},"517":{},"518":{},"541":{},"678":{},"684":{}}}],["reproduc",{"_index":1588,"title":{},"content":{"315":{},"661":{},"670":{},"728":{},"733":{},"739":{},"779":{}}}],["repudi",{"_index":2848,"title":{},"content":{"622":{},"820":{}}}],["reput",{"_index":3310,"title":{},"content":{"727":{},"870":{}}}],["request",{"_index":1620,"title":{"963":{},"966":{},"969":{},"972":{},"975":{},"978":{},"981":{},"984":{},"987":{},"990":{},"993":{},"996":{}},"content":{"318":{},"346":{},"363":{},"371":{},"468":{},"472":{},"473":{},"591":{},"593":{},"622":{},"652":{},"660":{},"708":{},"710":{},"721":{},"722":{},"724":{},"733":{},"740":{},"794":{},"797":{},"798":{},"803":{},"804":{},"819":{},"820":{},"963":{},"965":{},"966":{}}}],["request/1",{"_index":2411,"title":{"469":{}},"content":{}}],["request/1,2,3,4",{"_index":2423,"title":{},"content":{"472":{}}}],["request/2",{"_index":2412,"title":{"470":{}},"content":{"469":{}}}],["request/3",{"_index":2413,"title":{"471":{}},"content":{"470":{}}}],["request/4",{"_index":2414,"title":{"472":{}},"content":{"471":{},"473":{}}}],["request_many/1",{"_index":2424,"title":{"473":{}},"content":{"472":{}}}],["requir",{"_index":641,"title":{"605":{}},"content":{"211":{},"213":{},"214":{},"255":{},"261":{},"267":{},"281":{},"282":{},"309":{},"311":{},"312":{},"313":{},"314":{},"377":{},"472":{},"507":{},"536":{},"541":{},"542":{},"556":{},"557":{},"559":{},"655":{},"658":{},"672":{},"693":{},"707":{},"711":{},"779":{},"804":{},"808":{},"826":{},"840":{},"864":{},"881":{},"898":{},"952":{},"958":{},"960":{}}}],["requisit",{"_index":3999,"title":{"955":{}},"content":{}}],["research",{"_index":3063,"title":{"868":{},"869":{}},"content":{"667":{},"724":{},"869":{}}}],["resend",{"_index":1870,"title":{},"content":{"375":{}}}],["reserv",{"_index":790,"title":{"401":{}},"content":{"213":{},"214":{},"225":{},"380":{},"690":{},"703":{},"808":{},"894":{},"898":{},"907":{},"918":{},"930":{},"931":{}}}],["reset",{"_index":3322,"title":{},"content":{"727":{},"842":{},"883":{},"891":{}}}],["resid",{"_index":534,"title":{},"content":{"204":{}}}],["resili",{"_index":3103,"title":{},"content":{"678":{},"724":{},"784":{}}}],["resist",{"_index":3027,"title":{},"content":{"660":{},"778":{}}}],["resolut",{"_index":1585,"title":{},"content":{"315":{},"778":{}}}],["resolv",{"_index":1583,"title":{},"content":{"315":{},"382":{},"419":{},"630":{},"631":{},"658":{},"674":{},"779":{},"794":{},"800":{}}}],["resourc",{"_index":1065,"title":{},"content":{"255":{},"591":{},"650":{},"690":{},"693":{},"697":{}}}],["respect",{"_index":1404,"title":{},"content":{"283":{},"336":{},"374":{},"406":{},"621":{},"662":{},"747":{},"760":{},"935":{}}}],["respond",{"_index":644,"title":{},"content":{"211":{},"251":{},"363":{}}}],["respond(async",{"_index":647,"title":{},"content":{"211":{}}}],["respons",{"_index":409,"title":{"964":{},"967":{},"970":{},"973":{},"976":{},"979":{},"982":{},"985":{},"988":{},"991":{},"994":{},"997":{}},"content":{"119":{},"163":{},"173":{},"175":{},"196":{},"212":{},"214":{},"217":{},"218":{},"219":{},"246":{},"250":{},"257":{},"321":{},"354":{},"364":{},"372":{},"472":{},"473":{},"659":{},"662":{},"736":{},"797":{},"967":{}}}],["response.bodi",{"_index":2417,"title":{},"content":{"472":{}}}],["response.statu",{"_index":1966,"title":{},"content":{"372":{},"472":{}}}],["rest",{"_index":789,"title":{},"content":{"213":{},"214":{},"385":{},"630":{}}}],["restart",{"_index":1067,"title":{},"content":{"255":{}}}],["restor",{"_index":3276,"title":{},"content":{"720":{},"950":{}}}],["restrict",{"_index":1248,"title":{},"content":{"269":{},"374":{}}}],["result",{"_index":36,"title":{},"content":{"19":{},"213":{},"214":{},"224":{},"255":{},"384":{},"406":{},"445":{},"472":{},"512":{},"522":{},"542":{},"560":{},"610":{},"693":{},"819":{},"894":{},"898":{},"907":{},"949":{},"950":{},"958":{}}}],["result.touppercas",{"_index":3958,"title":{},"content":{"950":{}}}],["resum",{"_index":3651,"title":{},"content":{"830":{},"834":{},"837":{}}}],["resuppli",{"_index":3414,"title":{"757":{}},"content":{"753":{},"755":{},"757":{},"758":{}}}],["resync",{"_index":1194,"title":{},"content":{"261":{}}}],["retain",{"_index":2931,"title":{},"content":{"649":{},"674":{}}}],["retriev",{"_index":400,"title":{"236":{},"362":{},"363":{},"656":{}},"content":{"120":{},"236":{},"237":{},"240":{},"243":{},"316":{},"318":{},"319":{},"342":{},"363":{},"364":{},"395":{},"438":{},"442":{},"443":{},"546":{},"547":{},"560":{},"605":{},"619":{},"683":{},"796":{},"797":{},"818":{},"838":{},"856":{},"858":{},"890":{},"891":{},"903":{},"958":{},"959":{},"960":{}}}],["return",{"_index":71,"title":{"14":{},"18":{},"30":{},"45":{},"48":{},"60":{},"66":{},"75":{},"78":{},"81":{},"93":{},"103":{},"113":{},"176":{},"875":{},"877":{}},"content":{"159":{},"211":{},"212":{},"213":{},"214":{},"269":{},"273":{},"275":{},"276":{},"277":{},"280":{},"282":{},"285":{},"286":{},"291":{},"292":{},"293":{},"294":{},"295":{},"296":{},"298":{},"299":{},"302":{},"303":{},"345":{},"403":{},"404":{},"405":{},"408":{},"410":{},"427":{},"428":{},"430":{},"431":{},"432":{},"433":{},"434":{},"435":{},"436":{},"437":{},"438":{},"439":{},"441":{},"442":{},"443":{},"445":{},"459":{},"462":{},"463":{},"464":{},"472":{},"473":{},"475":{},"476":{},"477":{},"478":{},"479":{},"481":{},"482":{},"483":{},"484":{},"485":{},"486":{},"487":{},"488":{},"489":{},"490":{},"491":{},"492":{},"493":{},"494":{},"496":{},"497":{},"498":{},"499":{},"500":{},"501":{},"502":{},"503":{},"505":{},"506":{},"507":{},"510":{},"514":{},"515":{},"516":{},"517":{},"518":{},"519":{},"520":{},"522":{},"523":{},"524":{},"525":{},"527":{},"529":{},"545":{},"639":{},"656":{},"702":{},"749":{},"813":{},"861":{},"877":{},"891":{},"901":{},"903":{},"904":{},"907":{},"910":{},"915":{},"923":{},"925":{},"931":{},"950":{}}}],["reveal",{"_index":2843,"title":{},"content":{"618":{},"622":{},"728":{},"817":{},"818":{},"819":{},"820":{},"887":{},"900":{}}}],["revers",{"_index":1828,"title":{},"content":{"359":{},"492":{},"618":{},"622":{},"817":{},"820":{}}}],["reverse/1",{"_index":2506,"title":{"492":{}},"content":{}}],["review",{"_index":3654,"title":{},"content":{"833":{},"860":{},"899":{},"908":{}}}],["revis",{"_index":3752,"title":{},"content":{"878":{}}}],["revoc",{"_index":3305,"title":{},"content":{"727":{}}}],["revok",{"_index":3323,"title":{},"content":{"727":{}}}],["reward",{"_index":1177,"title":{"880":{},"884":{},"933":{},"939":{},"941":{}},"content":{"258":{},"354":{},"356":{},"692":{},"702":{},"706":{},"708":{},"763":{},"862":{},"865":{},"877":{},"878":{},"880":{},"881":{},"883":{},"884":{},"887":{},"889":{},"890":{},"891":{},"894":{},"902":{},"905":{},"916":{},"923":{},"933":{},"939":{},"943":{},"944":{},"945":{}}}],["reward_amount",{"_index":3895,"title":{},"content":{"942":{}}}],["rewardaddress",{"_index":203,"title":{},"content":{"43":{}}}],["rewardsremainingattheendofyear",{"_index":3900,"title":{},"content":{"943":{}}}],["rewardstoallocateforthishour",{"_index":3899,"title":{},"content":{"943":{},"944":{}}}],["rich",{"_index":3809,"title":{},"content":{"901":{}}}],["right",{"_index":1143,"title":{},"content":{"248":{},"264":{},"315":{},"327":{},"385":{},"541":{},"656":{},"661":{},"672":{},"674":{},"683":{},"689":{},"690":{},"701":{},"739":{},"743":{},"756":{},"829":{},"842":{},"873":{}}}],["rigor",{"_index":3736,"title":{},"content":{"869":{}}}],["rise",{"_index":3492,"title":{},"content":{"785":{}}}],["risk",{"_index":3030,"title":{},"content":{"660":{},"687":{},"725":{},"864":{},"869":{},"876":{},"877":{},"949":{},"951":{}}}],["rng",{"_index":3955,"title":{},"content":{"950":{}}}],["roadmap",{"_index":3528,"title":{"793":{},"814":{}},"content":{}}],["robert",{"_index":2493,"title":{},"content":{"488":{}}}],["robot",{"_index":1840,"title":{},"content":{"373":{}}}],["robust",{"_index":3701,"title":{},"content":{"865":{},"929":{}}}],["rocksdb",{"_index":1489,"title":{},"content":{"309":{}}}],["role",{"_index":1257,"title":{},"content":{"269":{},"690":{},"702":{},"779":{},"895":{},"899":{},"908":{},"911":{},"924":{}}}],["root",{"_index":514,"title":{"676":{},"677":{},"678":{},"679":{}},"content":{"204":{},"207":{},"269":{},"270":{},"272":{},"275":{},"276":{},"277":{},"292":{},"334":{},"524":{},"552":{},"677":{},"678":{},"679":{},"680":{},"682":{},"711":{},"952":{}}}],["rootkey",{"_index":1338,"title":{},"content":{"270":{},"296":{}}}],["rotat",{"_index":1626,"title":{"661":{},"733":{}},"content":{"304":{},"650":{},"652":{},"659":{},"661":{},"662":{},"722":{},"727":{},"731":{},"733":{},"740":{},"779":{},"887":{},"900":{}}}],["round",{"_index":1671,"title":{},"content":{"321":{},"534":{},"638":{},"941":{}}}],["row",{"_index":1603,"title":{},"content":{"316":{},"809":{},"810":{},"811":{}}}],["royalti",{"_index":3411,"title":{},"content":{"751":{}}}],["rpc",{"_index":2085,"title":{"961":{}},"content":{"398":{},"952":{},"959":{}}}],["rsa_root_key",{"_index":1447,"title":{},"content":{"292":{}}}],["rule",{"_index":1850,"title":{"405":{}},"content":{"373":{},"406":{},"473":{},"551":{},"593":{},"697":{},"698":{},"808":{},"809":{},"817":{}}}],["run",{"_index":600,"title":{},"content":{"207":{},"255":{},"321":{},"322":{},"324":{},"342":{},"527":{},"536":{},"564":{},"761":{},"762":{},"782":{},"783":{},"794":{},"805":{},"826":{},"949":{},"956":{}}}],["s",{"_index":512,"title":{"268":{}},"content":{"204":{},"206":{},"241":{},"268":{},"463":{},"563":{}}}],["s1",{"_index":3401,"title":{},"content":{"748":{}}}],["s2",{"_index":3402,"title":{},"content":{"748":{}}}],["s3",{"_index":3403,"title":{},"content":{"748":{}}}],["safe",{"_index":3057,"title":{"664":{}},"content":{"663":{},"821":{},"866":{},"870":{},"871":{},"946":{}}}],["safest",{"_index":3165,"title":{},"content":{"687":{}}}],["safeti",{"_index":1515,"title":{},"content":{"310":{},"376":{},"687":{}}}],["same",{"_index":1116,"title":{},"content":{"244":{},"269":{},"334":{},"358":{},"364":{},"375":{},"377":{},"382":{},"387":{},"397":{},"405":{},"406":{},"409":{},"427":{},"438":{},"440":{},"442":{},"443":{},"461":{},"489":{},"490":{},"491":{},"492":{},"493":{},"494":{},"527":{},"532":{},"610":{},"628":{},"631":{},"645":{},"660":{},"678":{},"728":{},"732":{},"742":{},"757":{},"764":{},"765":{},"786":{},"788":{},"797":{},"798":{},"802":{},"819":{},"826":{},"844":{},"845":{},"853":{},"870":{},"934":{}}}],["sampl",{"_index":1150,"title":{"250":{}},"content":{"251":{},"252":{},"718":{},"745":{}}}],["satisfi",{"_index":3606,"title":{},"content":{"809":{}}}],["saturday",{"_index":2640,"title":{},"content":{"535":{}}}],["save",{"_index":1419,"title":{},"content":{"285":{},"290":{},"291":{},"887":{},"902":{}}}],["saveindex(ykindex",{"_index":1428,"title":{"287":{}},"content":{}}],["saw",{"_index":2673,"title":{},"content":{"541":{}}}],["sc",{"_index":2202,"title":{},"content":{"402":{},"532":{},"533":{}}}],["scalabl",{"_index":1027,"title":{},"content":{"255":{},"351":{},"650":{},"652":{},"659":{},"670":{},"680":{},"687":{},"730":{},"731":{},"741":{},"742":{},"743":{}}}],["scalar",{"_index":14,"title":{"584":{}},"content":{"3":{},"8":{},"10":{},"13":{},"17":{},"23":{},"26":{},"29":{},"32":{},"38":{},"41":{},"44":{},"47":{},"53":{},"56":{},"59":{},"62":{},"65":{},"71":{},"74":{},"77":{},"80":{},"83":{},"89":{},"92":{},"96":{},"99":{},"102":{},"106":{},"109":{},"112":{},"115":{},"118":{},"119":{},"121":{},"124":{},"129":{},"136":{},"139":{},"142":{},"145":{},"148":{},"151":{},"155":{},"157":{},"159":{},"161":{},"163":{},"165":{},"167":{},"169":{},"171":{},"173":{},"175":{},"178":{},"180":{},"182":{},"184":{},"186":{},"188":{},"190":{},"192":{},"196":{},"199":{},"202":{},"579":{},"580":{},"581":{},"582":{},"583":{},"584":{},"585":{},"1000":{}}}],["scale",{"_index":1541,"title":{},"content":{"312":{},"638":{},"714":{},"782":{},"887":{},"952":{}}}],["scan",{"_index":1714,"title":{},"content":{"330":{}}}],["scan/2",{"_index":2572,"title":{"507":{}},"content":{}}],["scarlett",{"_index":1928,"title":{},"content":{"371":{}}}],["scarlett_vot",{"_index":1941,"title":{},"content":{"371":{}}}],["scenario",{"_index":1085,"title":{},"content":{"255":{},"532":{},"533":{},"536":{},"820":{},"894":{},"944":{}}}],["scene",{"_index":3393,"title":{},"content":{"740":{}}}],["schedul",{"_index":1135,"title":{"247":{},"342":{}},"content":{"247":{},"341":{},"342":{},"343":{},"344":{},"347":{},"374":{},"941":{}}}],["schema",{"_index":1565,"title":{"579":{},"1000":{}},"content":{"314":{},"342":{},"579":{},"580":{},"581":{},"582":{},"583":{},"584":{},"585":{},"754":{},"757":{},"1000":{}}}],["schemaless",{"_index":1571,"title":{},"content":{"314":{}}}],["scheme",{"_index":935,"title":{},"content":{"223":{},"224":{},"225":{},"269":{},"730":{},"951":{}}}],["scientif",{"_index":2010,"title":{},"content":{"386":{}}}],["scope",{"_index":1622,"title":{"393":{}},"content":{"319":{},"393":{}}}],["scratch",{"_index":1476,"title":{},"content":{"308":{},"313":{}}}],["screen",{"_index":615,"title":{"658":{},"828":{},"872":{}},"content":{"209":{},"655":{},"656":{},"813":{},"828":{},"833":{},"872":{},"895":{},"899":{},"908":{},"911":{},"952":{}}}],["screenshot",{"_index":2699,"title":{},"content":{"549":{}}}],["script",{"_index":1680,"title":{},"content":{"322":{},"789":{}}}],["scripts/main.j",{"_index":3579,"title":{},"content":{"796":{}}}],["scripts/proposal_ci_job.sh",{"_index":1679,"title":{},"content":{"322":{}}}],["scylladb",{"_index":1491,"title":{},"content":{"309":{}}}],["sdk",{"_index":651,"title":{"360":{},"361":{},"365":{},"366":{},"571":{}},"content":{"211":{},"361":{},"365":{},"366":{},"559":{},"568":{},"569":{},"570":{},"571":{},"572":{},"573":{},"953":{},"956":{}}}],["se",{"_index":3106,"title":{},"content":{"679":{}}}],["seal",{"_index":3381,"title":{},"content":{"737":{}}}],["seamless",{"_index":1847,"title":{},"content":{"373":{},"608":{},"827":{},"863":{},"865":{}}}],["seamlessli",{"_index":3817,"title":{},"content":{"903":{}}}],["search",{"_index":3376,"title":{},"content":{"734":{}}}],["sec",{"_index":3159,"title":{},"content":{"687":{}}}],["second",{"_index":474,"title":{},"content":{"188":{},"212":{},"267":{},"321":{},"458":{},"460":{},"472":{},"527":{},"534":{},"535":{},"548":{},"655":{},"678":{},"687":{},"834":{},"877":{},"894":{},"907":{},"951":{},"952":{}}}],["second_cod",{"_index":2336,"title":{},"content":{"427":{}}}],["secp256k1",{"_index":997,"title":{},"content":{"228":{},"668":{},"670":{}}}],["secret",{"_index":51,"title":{"264":{},"335":{}},"content":{"9":{},"40":{},"52":{},"58":{},"64":{},"134":{},"137":{},"213":{},"214":{},"230":{},"235":{},"259":{},"264":{},"277":{},"332":{},"335":{},"355":{},"400":{},"409":{},"421":{},"422":{},"425":{},"453":{},"461":{},"559":{},"618":{},"621":{},"622":{},"655":{},"661":{},"695":{},"733":{},"762":{},"779":{},"810":{},"817":{},"819":{},"820":{},"845":{}}}],["secret'",{"_index":3633,"title":{},"content":{"820":{}}}],["secret_key",{"_index":2245,"title":{},"content":{"425":{},"462":{}}}],["section",{"_index":141,"title":{"886":{},"887":{},"888":{},"889":{}},"content":{"40":{},"235":{},"265":{},"278":{},"320":{},"416":{},"564":{},"603":{},"779":{},"808":{},"813":{},"876":{},"885":{},"886":{},"887":{},"888":{},"889":{},"902":{}}}],["section\"how",{"_index":2943,"title":{},"content":{"656":{}}}],["secur",{"_index":313,"title":{"787":{},"868":{},"932":{},"951":{}},"content":{"76":{},"200":{},"204":{},"206":{},"225":{},"234":{},"352":{},"374":{},"376":{},"414":{},"419":{},"546":{},"608":{},"616":{},"618":{},"619":{},"621":{},"622":{},"638":{},"645":{},"646":{},"650":{},"652":{},"655":{},"658":{},"659":{},"672":{},"674":{},"675":{},"677":{},"678":{},"679":{},"680":{},"683":{},"685":{},"687":{},"689":{},"702":{},"708":{},"711":{},"717":{},"720":{},"727":{},"747":{},"778":{},"784":{},"787":{},"803":{},"815":{},"817":{},"818":{},"822":{},"863":{},"864":{},"865":{},"869":{},"870":{},"895":{},"899":{},"901":{},"908":{},"911":{},"929":{},"937":{},"946":{},"949":{},"950":{},"951":{},"952":{},"957":{},"998":{}}}],["securitysecur",{"_index":3927,"title":{},"content":{"947":{}}}],["see",{"_index":1133,"title":{"812":{}},"content":{"246":{},"334":{},"337":{},"339":{},"340":{},"379":{},"399":{},"406":{},"408":{},"410":{},"434":{},"436":{},"473":{},"475":{},"476":{},"539":{},"540":{},"541":{},"545":{},"546":{},"548":{},"549":{},"553":{},"594":{},"666":{},"711":{},"732":{},"736":{},"779":{},"819":{},"826":{},"894":{},"951":{}}}],["seed",{"_index":672,"title":{"950":{}},"content":{"212":{},"220":{},"224":{},"227":{},"236":{},"258":{},"260":{},"319":{},"461":{},"546":{},"559":{},"605":{},"624":{},"641":{},"682":{},"708":{},"805":{},"825":{},"826":{},"841":{},"842":{},"845":{},"849":{},"850":{},"853":{},"950":{},"952":{},"957":{},"972":{}}}],["seek",{"_index":1511,"title":{},"content":{"310":{},"314":{},"316":{},"926":{}}}],["seem",{"_index":1088,"title":{},"content":{"256":{}}}],["select",{"_index":2664,"title":{},"content":{"540":{},"542":{},"655":{},"656":{},"809":{},"810":{},"832":{},"840":{},"842":{},"845":{},"849":{},"853":{},"860":{},"862":{},"865":{},"883":{},"894":{},"898":{},"933":{},"952":{},"989":{}}}],["selector",{"_index":2665,"title":{},"content":{"540":{},"542":{},"551":{}}}],["self",{"_index":1170,"title":{"720":{}},"content":{"252":{},"260":{},"261":{},"314":{},"652":{},"689":{},"710":{},"715":{},"720":{},"721":{},"727":{},"782":{},"783":{}}}],["selfrepair",{"_index":3274,"title":{},"content":{"708":{}}}],["semant",{"_index":2071,"title":{},"content":{"395":{}}}],["send",{"_index":99,"title":{"605":{},"842":{},"848":{}},"content":{"22":{},"91":{},"101":{},"122":{},"146":{},"205":{},"271":{},"351":{},"352":{},"369":{},"372":{},"375":{},"377":{},"413":{},"414":{},"447":{},"532":{},"564":{},"605":{},"613":{},"662":{},"693":{},"697":{},"713":{},"716":{},"732":{},"743":{},"759":{},"763":{},"797":{},"798":{},"799":{},"826":{},"829":{},"839":{},"840":{},"842":{},"849":{},"873":{},"890":{},"945":{},"947":{},"959":{},"960":{},"971":{}}}],["send/sign",{"_index":3989,"title":{},"content":{"952":{}}}],["send_transact",{"_index":3438,"title":{"971":{}},"content":{"759":{}}}],["sender",{"_index":1110,"title":{},"content":{"239":{},"240":{},"242":{},"243":{},"352":{},"778":{}}}],["senderaddr",{"_index":835,"title":{},"content":{"214":{}}}],["senderaddrlen",{"_index":836,"title":{},"content":{"214":{}}}],["sendtxn",{"_index":611,"title":{},"content":{"208":{}}}],["sens",{"_index":3205,"title":{},"content":{"691":{}}}],["sensit",{"_index":1270,"title":{},"content":{"269":{},"952":{}}}],["sent",{"_index":1742,"title":{"628":{}},"content":{"339":{},"340":{},"350":{},"354":{},"369":{},"380":{},"409":{},"719":{},"740":{},"761":{},"765":{},"799":{},"973":{}}}],["sentenc",{"_index":3962,"title":{},"content":{"950":{}}}],["separ",{"_index":2496,"title":{},"content":{"488":{},"538":{},"887":{},"899":{},"902":{},"908":{}}}],["sequenc",{"_index":468,"title":{},"content":{"186":{},"268":{},"541":{},"710":{}}}],["sequence_no",{"_index":808,"title":{},"content":{"213":{},"214":{}}}],["sequenti",{"_index":1613,"title":{},"content":{"316":{}}}],["seri",{"_index":3960,"title":{},"content":{"950":{}}}],["serial",{"_index":1559,"title":{},"content":{"314":{},"345":{},"350":{},"351":{},"377":{},"447":{}}}],["seriou",{"_index":3708,"title":{},"content":{"865":{}}}],["serv",{"_index":2790,"title":{},"content":{"604":{},"799":{},"895":{},"899":{},"908":{},"911":{}}}],["server",{"_index":3521,"title":{},"content":{"789":{},"797":{},"800":{},"805":{},"952":{},"959":{}}}],["servic",{"_index":219,"title":{"344":{},"706":{},"852":{},"853":{}},"content":{"46":{},"220":{},"224":{},"227":{},"337":{},"341":{},"342":{},"343":{},"344":{},"345":{},"346":{},"347":{},"350":{},"472":{},"530":{},"603":{},"605":{},"648":{},"656":{},"675":{},"681":{},"682":{},"683":{},"685":{},"706":{},"724":{},"727":{},"849":{},"851":{},"852":{},"853":{},"926":{},"927":{},"946":{},"951":{},"952":{},"958":{},"959":{},"960":{},"970":{},"974":{},"975":{},"977":{},"978":{},"980":{},"982":{},"983":{},"984":{},"985":{},"986":{},"987":{},"991":{},"993":{},"996":{}}}],["servicenam",{"_index":4025,"title":{},"content":{"970":{},"984":{},"987":{},"991":{},"993":{},"996":{}}}],["session",{"_index":1259,"title":{},"content":{"269":{},"814":{}}}],["set",{"_index":229,"title":{},"content":{"52":{},"212":{},"213":{},"214":{},"246":{},"270":{},"272":{},"274":{},"276":{},"381":{},"425":{},"493":{},"500":{},"541":{},"548":{},"625":{},"642":{},"652":{},"659":{},"672":{},"702":{},"731":{},"754":{},"783":{},"808":{},"832":{},"842":{},"845":{},"846":{},"847":{},"876":{},"894":{},"901":{},"907":{},"910":{},"920":{},"930":{},"952":{}}}],["set/2",{"_index":2587,"title":{"511":{}},"content":{}}],["set/3",{"_index":2526,"title":{"500":{}},"content":{}}],["set_at/3",{"_index":2509,"title":{"493":{}},"content":{}}],["set_cod",{"_index":2243,"title":{},"content":{"425":{}}}],["set_code/1",{"_index":2350,"title":{"448":{}},"content":{}}],["set_cont",{"_index":2242,"title":{},"content":{"425":{}}}],["set_content/1",{"_index":2348,"title":{"447":{}},"content":{}}],["set_typ",{"_index":2208,"title":{},"content":{"413":{},"414":{},"425":{}}}],["set_type/1",{"_index":2347,"title":{"446":{}},"content":{}}],["setkeyindex",{"_index":1368,"title":{},"content":{"276":{}}}],["setkeyindex(int",{"_index":1353,"title":{"274":{}},"content":{}}],["setrootkey",{"_index":1335,"title":{"270":{}},"content":{}}],["setup",{"_index":2724,"title":{"954":{}},"content":{"563":{},"895":{},"899":{},"908":{},"911":{}}}],["seven",{"_index":1400,"title":{},"content":{"283":{}}}],["sever",{"_index":912,"title":{},"content":{"220":{},"263":{},"309":{},"317":{},"323":{},"331":{},"350":{},"364":{},"631":{},"645":{},"666":{},"675":{},"681":{},"698":{},"715":{},"728":{},"732":{},"779":{},"845":{},"885":{},"898":{},"958":{},"959":{}}}],["sha",{"_index":3069,"title":{},"content":{"669":{},"796":{}}}],["sha2",{"_index":998,"title":{},"content":{"229":{}}}],["sha2/sha3",{"_index":3113,"title":{},"content":{"680":{}}}],["sha256",{"_index":784,"title":{},"content":{"213":{},"214":{},"224":{},"229":{},"458":{},"459":{},"460":{},"462":{},"685":{}}}],["sha256(auth_se",{"_index":990,"title":{},"content":{"225":{}}}],["sha256(replacederivationpath(derivationpath",{"_index":963,"title":{},"content":{"224":{}}}],["sha256(sha256(wk_{a",{"_index":978,"title":{},"content":{"225":{}}}],["sha256hash",{"_index":351,"title":{"182":{}},"content":{"88":{},"89":{},"120":{},"121":{},"182":{}}}],["sha3",{"_index":3154,"title":{},"content":{"685":{}}}],["sha3_256",{"_index":821,"title":{},"content":{"214":{},"229":{},"459":{},"462":{}}}],["sha3_512",{"_index":823,"title":{},"content":{"214":{},"229":{},"459":{},"462":{}}}],["sha512",{"_index":775,"title":{},"content":{"213":{},"214":{},"229":{},"459":{},"462":{}}}],["sha512(key=masterse",{"_index":965,"title":{},"content":{"224":{}}}],["sha512(sha512(ecdh\\_secret",{"_index":987,"title":{},"content":{"225":{}}}],["sha512(sha512(ecdh_secret",{"_index":776,"title":{},"content":{"213":{},"214":{}}}],["shard",{"_index":1121,"title":{"730":{}},"content":{"245":{},"246":{},"315":{},"375":{},"652":{},"718":{},"719":{},"720":{},"730":{},"731":{},"733":{},"734":{},"736":{},"740":{},"741":{},"742":{},"746":{},"747":{},"748":{},"797":{}}}],["share",{"_index":240,"title":{"264":{},"335":{},"638":{}},"content":{"58":{},"134":{},"259":{},"264":{},"277":{},"329":{},"332":{},"335":{},"350":{},"355":{},"624":{},"638":{},"641":{},"655":{},"661":{},"695":{},"762":{},"861":{},"887":{},"902":{},"903":{},"907":{},"910":{},"915":{},"917":{},"931":{},"947":{},"953":{}}}],["sharedprefer",{"_index":3992,"title":{},"content":{"952":{}}}],["sharedsecret",{"_index":239,"title":{"58":{},"133":{}},"content":{"58":{},"60":{},"133":{},"134":{},"174":{}}}],["sharedsecrets.storagenoncepublickey",{"_index":246,"title":{},"content":{"59":{}}}],["sherlock",{"_index":2621,"title":{},"content":{"520":{}}}],["shield",{"_index":2859,"title":{},"content":{"625":{},"642":{},"812":{}}}],["ship",{"_index":1473,"title":{},"content":{"308":{},"310":{}}}],["short",{"_index":1077,"title":{},"content":{"255":{},"357":{}}}],["shorter",{"_index":3270,"title":{},"content":{"718":{}}}],["shorthand",{"_index":2517,"title":{},"content":{"496":{},"498":{}}}],["shortnam",{"_index":4024,"title":{},"content":{"970":{},"991":{}}}],["show",{"_index":613,"title":{},"content":{"209":{},"656":{},"886":{},"894":{},"905":{},"952":{}}}],["showcas",{"_index":3516,"title":{},"content":{"789":{}}}],["shown",{"_index":616,"title":{},"content":{"209":{},"887":{},"952":{}}}],["shuffl",{"_index":3984,"title":{},"content":{"952":{}}}],["side",{"_index":2663,"title":{},"content":{"540":{},"546":{},"547":{},"789":{},"797":{},"820":{},"830":{},"887":{},"902":{}}}],["sidebar",{"_index":4051,"title":{},"content":{"1000":{}}}],["sign",{"_index":446,"title":{"214":{}},"content":{"161":{},"165":{},"204":{},"214":{},"269":{},"276":{},"288":{},"300":{},"301":{},"320":{},"340":{},"463":{},"662":{},"728":{},"750":{},"808":{},"809":{},"810":{},"811":{},"831":{},"834":{},"893":{},"958":{},"959":{},"960":{},"971":{},"992":{},"993":{},"995":{},"996":{},"997":{}}}],["sign/encrypt",{"_index":3561,"title":{},"content":{"805":{}}}],["sign_encrypt",{"_index":1278,"title":{},"content":{"269":{}}}],["sign_len",{"_index":855,"title":{},"content":{"214":{}}}],["sign_payload",{"_index":4043,"title":{"995":{}},"content":{}}],["sign_transact",{"_index":4038,"title":{"992":{}},"content":{}}],["sign_with_recovery/1",{"_index":2389,"title":{"463":{}},"content":{}}],["signatur",{"_index":135,"title":{"219":{}},"content":{"25":{},"108":{},"209":{},"211":{},"212":{},"213":{},"214":{},"219":{},"248":{},"268":{},"273":{},"276":{},"328":{},"329":{},"330":{},"331":{},"374":{},"397":{},"463":{},"466":{},"467":{},"622":{},"666":{},"671":{},"672":{},"680":{},"727":{},"747":{},"750":{},"779":{},"814":{},"820":{},"960":{},"994":{}}}],["signature_payload",{"_index":2390,"title":{},"content":{"463":{}}}],["signcurrentkey(hashtosign",{"_index":1464,"title":{"300":{}},"content":{}}],["signecdsa",{"_index":1370,"title":{},"content":{"276":{},"300":{}}}],["signecdsa(hashtosign",{"_index":1431,"title":{"288":{}},"content":{}}],["signecdsa(int",{"_index":1363,"title":{"276":{}},"content":{}}],["signedpayload",{"_index":4045,"title":{},"content":{"997":{}}}],["signedtx",{"_index":4042,"title":{},"content":{"994":{}}}],["signhash.c",{"_index":814,"title":{},"content":{"214":{}}}],["signifi",{"_index":860,"title":{},"content":{"214":{},"269":{},"901":{}}}],["signific",{"_index":2764,"title":{},"content":{"593":{},"645":{},"894":{},"919":{},"932":{},"937":{}}}],["significantli",{"_index":2820,"title":{},"content":{"608":{},"638":{},"678":{},"894":{}}}],["signpastkey(archethicindex",{"_index":1466,"title":{"301":{}},"content":{}}],["signtoasn",{"_index":1231,"title":{},"content":{"268":{}}}],["signtoasn(byt",{"_index":1227,"title":{"268":{}},"content":{}}],["signup",{"_index":3924,"title":{},"content":{"946":{}}}],["similar",{"_index":857,"title":{},"content":{"214":{},"316":{},"469":{},"470":{},"471":{},"543":{},"544":{},"622":{},"817":{},"820":{}}}],["similarli",{"_index":1234,"title":{},"content":{"268":{},"651":{},"819":{}}}],["simpl",{"_index":695,"title":{},"content":{"212":{},"314":{},"319":{},"330":{},"368":{},"645":{},"693":{},"752":{},"789":{},"794":{},"798":{},"801":{},"815":{},"944":{},"951":{},"998":{}}}],["simpli",{"_index":2923,"title":{},"content":{"646":{},"808":{},"813":{}}}],["simplifi",{"_index":953,"title":{},"content":{"224":{},"419":{},"949":{},"950":{}}}],["simul",{"_index":1638,"title":{},"content":{"307":{},"342":{},"547":{},"548":{},"693":{},"737":{}}}],["singl",{"_index":620,"title":{},"content":{"209":{},"257":{},"310":{},"324":{},"372":{},"651":{},"693":{},"698":{},"746":{},"747":{},"750":{},"756":{},"788":{},"789":{},"796":{},"797":{},"826":{},"949":{}}}],["site",{"_index":3184,"title":{"808":{},"809":{},"811":{}},"content":{"689":{},"789":{},"806":{},"808":{},"809":{},"810":{},"811":{},"953":{}}}],["site'",{"_index":3608,"title":{"812":{}},"content":{"814":{}}}],["situat",{"_index":1991,"title":{},"content":{"372":{},"788":{}}}],["size",{"_index":416,"title":{"268":{}},"content":{"119":{},"163":{},"173":{},"175":{},"196":{},"224":{},"227":{},"267":{},"268":{},"269":{},"314":{},"315":{},"316":{},"331":{},"351":{},"414":{},"416":{},"472":{},"692":{},"693":{},"750":{},"796":{},"894":{},"901":{},"919":{},"922":{}}}],["size/1",{"_index":2258,"title":{"482":{},"497":{},"514":{}},"content":{"416":{}}}],["sizeof(ecdhpointx",{"_index":764,"title":{},"content":{"213":{},"214":{}}}],["sizer",{"_index":1229,"title":{"268":{}},"content":{}}],["skip",{"_index":15,"title":{"2":{}},"content":{"2":{},"3":{},"156":{}}}],["skip.if",{"_index":16,"title":{},"content":{"3":{}}}],["sla",{"_index":1738,"title":{},"content":{"337":{}}}],["slash",{"_index":2257,"title":{},"content":{"416":{}}}],["slippag",{"_index":3733,"title":{"920":{},"936":{}},"content":{"869":{},"894":{},"907":{},"920":{},"921":{}}}],["slot",{"_index":1129,"title":{"736":{},"745":{}},"content":{"246":{},"247":{},"248":{},"251":{},"252":{},"284":{},"285":{},"289":{},"291":{},"292":{},"295":{},"296":{},"299":{},"301":{},"736":{},"737":{},"739":{},"740":{},"743":{},"745":{}}}],["slotposiot",{"_index":1472,"title":{},"content":{"303":{}}}],["slotposit",{"_index":1467,"title":{},"content":{"301":{},"303":{}}}],["slotvalid",{"_index":1145,"title":{},"content":{"248":{}}}],["slow",{"_index":2992,"title":{},"content":{"651":{}}}],["small",{"_index":2651,"title":{"638":{}},"content":{"538":{},"545":{},"593":{},"638":{},"660":{},"714":{},"952":{}}}],["smallest",{"_index":2748,"title":{},"content":{"591":{},"796":{},"877":{}}}],["smart",{"_index":114,"title":{"332":{},"367":{},"373":{},"378":{},"383":{},"384":{},"402":{},"403":{},"412":{},"415":{},"419":{},"530":{},"531":{},"538":{},"545":{},"546":{},"547":{},"550":{},"560":{},"572":{},"822":{},"847":{},"938":{},"999":{}},"content":{"22":{},"40":{},"55":{},"58":{},"101":{},"122":{},"134":{},"184":{},"315":{},"329":{},"331":{},"332":{},"369":{},"372":{},"373":{},"374":{},"375":{},"376":{},"377":{},"381":{},"382":{},"384":{},"387":{},"395":{},"396":{},"397":{},"398":{},"399":{},"406":{},"415":{},"419":{},"422":{},"423":{},"427":{},"428":{},"445":{},"447":{},"455":{},"472":{},"512":{},"527":{},"530":{},"533":{},"538":{},"539":{},"540":{},"544":{},"545":{},"546":{},"547":{},"548":{},"552":{},"553":{},"558":{},"560":{},"568":{},"569":{},"570":{},"571":{},"572":{},"573":{},"613":{},"616":{},"621":{},"645":{},"648":{},"693":{},"704":{},"705":{},"724":{},"727":{},"748":{},"752":{},"759":{},"779":{},"789":{},"819":{},"820":{},"822":{},"845":{},"847":{},"864":{},"869":{},"870":{},"918":{},"926":{},"927":{},"931":{},"972":{},"993":{}}}],["smartphon",{"_index":3050,"title":{},"content":{"672":{},"683":{}}}],["smoothli",{"_index":2920,"title":{},"content":{"645":{}}}],["snapshot",{"_index":1886,"title":{},"content":{"377":{},"718":{},"901":{}}}],["sobelow",{"_index":1695,"title":{},"content":{"322":{}}}],["soc",{"_index":3086,"title":{},"content":{"677":{}}}],["social",{"_index":2871,"title":{},"content":{"630":{},"637":{},"713":{}}}],["sofia",{"_index":2185,"title":{},"content":{"409":{}}}],["soft",{"_index":3394,"title":{},"content":{"740":{}}}],["softwar",{"_index":497,"title":{},"content":{"204":{},"232":{},"255":{},"263":{},"264":{},"341":{},"666":{},"668":{},"672":{},"678":{},"680":{},"779":{}}}],["sold_item",{"_index":2251,"title":{},"content":{"415":{}}}],["sole",{"_index":3124,"title":{},"content":{"674":{}}}],["solicit",{"_index":2767,"title":{},"content":{"593":{},"958":{}}}],["solid",{"_index":3191,"title":{},"content":{"690":{}}}],["solut",{"_index":1482,"title":{"712":{},"747":{}},"content":{"309":{},"315":{},"351":{},"650":{},"689":{},"784":{},"785":{},"786":{},"787":{},"788":{},"789":{},"800":{},"959":{},"998":{}}}],["solv",{"_index":2996,"title":{},"content":{"652":{}}}],["someon",{"_index":2898,"title":{},"content":{"638":{},"945":{}}}],["someth",{"_index":2214,"title":{},"content":{"420":{},"472":{},"473":{},"535":{},"536":{},"685":{},"693":{}}}],["sometim",{"_index":1590,"title":{},"content":{"306":{},"315":{},"730":{}}}],["somewher",{"_index":1889,"title":{},"content":{"377":{}}}],["soon",{"_index":569,"title":{},"content":{"205":{},"206":{},"693":{},"876":{},"891":{},"947":{}}}],["sort",{"_index":2502,"title":{},"content":{"490":{},"661":{}}}],["sort/1",{"_index":2498,"title":{"489":{}},"content":{}}],["sort_by/2",{"_index":2500,"title":{"490":{}},"content":{}}],["sortord",{"_index":33,"title":{"19":{}},"content":{"19":{},"141":{},"142":{}}}],["sortorder.asc",{"_index":40,"title":{},"content":{"20":{}}}],["sortorder.desc",{"_index":42,"title":{},"content":{"20":{}}}],["sound",{"_index":3066,"title":{},"content":{"667":{}}}],["sourc",{"_index":507,"title":{},"content":{"204":{},"211":{},"212":{},"213":{},"214":{},"322":{},"342":{},"372":{},"376":{},"377":{},"380":{},"591":{},"614":{},"636":{},"658":{},"677":{},"691":{},"705":{},"725":{},"782":{},"806":{},"827":{},"832":{},"838":{},"871":{},"931":{},"949":{},"953":{}}}],["sovereign",{"_index":3180,"title":{},"content":{"689":{}}}],["spa",{"_index":3523,"title":{},"content":{"789":{}}}],["space",{"_index":982,"title":{},"content":{"225":{},"865":{},"937":{},"952":{}}}],["spawn",{"_index":1663,"title":{},"content":{"321":{},"324":{},"327":{}}}],["speak",{"_index":3135,"title":{},"content":{"682":{}}}],["special",{"_index":2259,"title":{},"content":{"417":{},"645":{},"680":{}}}],["specif",{"_index":397,"title":{"220":{},"534":{},"535":{},"588":{},"620":{},"905":{}},"content":{"114":{},"150":{},"204":{},"212":{},"223":{},"233":{},"312":{},"314":{},"315":{},"384":{},"388":{},"400":{},"402":{},"406":{},"409":{},"438":{},"442":{},"443":{},"533":{},"534":{},"535":{},"541":{},"586":{},"587":{},"588":{},"604":{},"608":{},"690":{},"692":{},"701":{},"753":{},"817":{},"818":{},"819":{},"841":{},"842":{},"849":{},"853":{},"878":{},"882":{},"887":{},"891":{},"905":{},"959":{},"998":{}}}],["specifi",{"_index":450,"title":{},"content":{"161":{},"163":{},"196":{},"224":{},"329":{},"368":{},"369":{},"382":{},"385":{},"406":{},"420":{},"421":{},"451":{},"533":{},"534":{},"535":{},"546":{},"549":{},"618":{},"758":{},"778":{},"808":{},"817":{},"819":{},"820":{},"844":{},"849":{},"894":{},"898":{},"910":{}}}],["specificatonfn",{"_index":798,"title":{},"content":{"213":{},"214":{}}}],["spectrometri",{"_index":3344,"title":{},"content":{"728":{}}}],["specul",{"_index":3851,"title":{},"content":{"926":{}}}],["speed",{"_index":2738,"title":{},"content":{"595":{},"596":{},"597":{},"598":{},"599":{},"600":{},"839":{}}}],["spend",{"_index":1105,"title":{},"content":{"238":{},"241":{}}}],["spent",{"_index":330,"title":{},"content":{"91":{},"146":{},"238":{},"239":{},"241":{},"242":{}}}],["split",{"_index":1126,"title":{},"content":{"246":{},"364":{},"372":{},"730":{},"746":{},"748":{},"787":{}}}],["spot",{"_index":2674,"title":{},"content":{"541":{}}}],["sqrt/1",{"_index":2547,"title":{"524":{}},"content":{}}],["squar",{"_index":2551,"title":{},"content":{"524":{}}}],["squential",{"_index":1225,"title":{},"content":{"267":{}}}],["ssl",{"_index":3551,"title":{"803":{},"810":{}},"content":{"803":{},"805":{},"810":{},"812":{}}}],["stabil",{"_index":3714,"title":{},"content":{"862":{},"927":{}}}],["stabl",{"_index":3366,"title":{},"content":{"733":{},"925":{},"932":{}}}],["stack",{"_index":1017,"title":{"254":{}},"content":{"939":{}}}],["stake",{"_index":3754,"title":{},"content":{"878":{},"891":{},"922":{},"923":{}}}],["stamp",{"_index":132,"title":{},"content":{"25":{},"108":{},"662":{},"672":{},"779":{}}}],["stamp'",{"_index":3463,"title":{},"content":{"779":{}}}],["stamp.nod",{"_index":3462,"title":{},"content":{"779":{}}}],["stand",{"_index":2841,"title":{},"content":{"618":{},"677":{}}}],["standalon",{"_index":1703,"title":{"324":{}},"content":{}}],["standard",{"_index":1777,"title":{"684":{},"753":{}},"content":{"346":{},"546":{},"645":{},"660":{},"674":{},"675":{},"684":{},"687":{},"753":{},"869":{}}}],["star",{"_index":3812,"title":{},"content":{"901":{}}}],["start",{"_index":589,"title":{"658":{}},"content":{"206":{},"213":{},"246":{},"260":{},"315":{},"321":{},"331":{},"386":{},"395":{},"487":{},"509":{},"563":{},"655":{},"662":{},"702":{},"708":{},"710":{},"730":{},"742":{},"744":{},"846":{},"847":{},"849":{},"856":{},"858":{},"880":{},"937":{},"941":{},"944":{}}}],["start_dat",{"_index":1960,"title":{},"content":{"372":{}}}],["startup",{"_index":2956,"title":{},"content":{"658":{}}}],["stat",{"_index":1599,"title":{},"content":{"315":{},"317":{}}}],["state",{"_index":102,"title":{"184":{},"508":{},"560":{},"942":{}},"content":{"22":{},"23":{},"101":{},"102":{},"122":{},"184":{},"255":{},"258":{},"327":{},"342":{},"373":{},"375":{},"377":{},"382":{},"417":{},"418":{},"447":{},"472":{},"508":{},"509":{},"510":{},"511":{},"512":{},"553":{},"560":{},"629":{},"720":{},"731":{},"742":{},"778":{},"942":{},"944":{}}}],["state.delete(key",{"_index":2590,"title":{},"content":{"512":{}}}],["state.get(\"ath",{"_index":2120,"title":{},"content":{"381":{}}}],["state.get(\"colonel",{"_index":1944,"title":{},"content":{"371":{}}}],["state.get(\"count",{"_index":2087,"title":{},"content":{"398":{},"560":{}}}],["state.get(\"lock_tim",{"_index":2192,"title":{},"content":{"409":{}}}],["state.get(\"miss",{"_index":1942,"title":{},"content":{"371":{}}}],["state.get(\"secret_hash",{"_index":2098,"title":{},"content":{"400":{},"409":{}}}],["state.get(\"voters_genesis_address",{"_index":1937,"title":{},"content":{"371":{}}}],["state.get(key",{"_index":2586,"title":{},"content":{"510":{}}}],["state.get/2",{"_index":2715,"title":{},"content":{"560":{}}}],["state.set(\"ath",{"_index":2124,"title":{},"content":{"381":{}}}],["state.set(\"colonel",{"_index":1949,"title":{},"content":{"371":{}}}],["state.set(\"count",{"_index":2718,"title":{},"content":{"560":{}}}],["state.set(\"miss",{"_index":1948,"title":{},"content":{"371":{}}}],["state.set(\"voters_genesis_address",{"_index":1950,"title":{},"content":{"371":{}}}],["state.set(key",{"_index":2588,"title":{},"content":{"511":{}}}],["stateless",{"_index":1878,"title":{"377":{}},"content":{"778":{}}}],["statement",{"_index":2225,"title":{"425":{}},"content":{"423":{}}}],["static",{"_index":1209,"title":{"808":{},"809":{},"811":{},"812":{}},"content":{"266":{},"270":{},"693":{},"789":{},"791":{},"806":{},"808":{},"811":{},"950":{}}}],["statist",{"_index":1625,"title":{},"content":{"319":{},"745":{},"901":{}}}],["statu",{"_index":665,"title":{"744":{},"837":{}},"content":{"211":{},"377":{},"472":{},"473":{},"619":{},"645":{},"744":{},"747":{},"749":{},"799":{},"818":{},"901":{}}}],["stay",{"_index":1957,"title":{},"content":{"372":{},"870":{},"934":{}}}],["stem",{"_index":3116,"title":{},"content":{"680":{}}}],["step",{"_index":827,"title":{"832":{},"833":{},"834":{},"894":{},"895":{},"898":{},"899":{},"907":{},"908":{},"910":{},"911":{}},"content":{"214":{},"321":{},"322":{},"376":{},"544":{},"546":{},"622":{},"631":{},"658":{},"678":{},"697":{},"786":{},"819":{},"820":{},"821":{},"831":{},"832":{},"866":{},"893":{}}}],["still",{"_index":2201,"title":{},"content":{"402":{},"605":{},"656":{},"661":{},"672":{},"680":{},"683":{},"785":{},"789":{},"801":{},"804":{},"935":{}}}],["stock",{"_index":1881,"title":{},"content":{"377":{}}}],["stop",{"_index":2151,"title":{},"content":{"403":{}}}],["storag",{"_index":242,"title":{"314":{},"319":{},"732":{}},"content":{"58":{},"133":{},"134":{},"204":{},"244":{},"260":{},"264":{},"304":{},"305":{},"308":{},"309":{},"312":{},"313":{},"315":{},"316":{},"319":{},"332":{},"355":{},"363":{},"364":{},"472":{},"546":{},"559":{},"652":{},"662":{},"687":{},"693":{},"697":{},"721":{},"722":{},"730":{},"732":{},"733":{},"739":{},"741":{},"743":{},"744":{},"746":{},"747":{},"845":{},"972":{}}}],["storagenoncepublickey",{"_index":245,"title":{},"content":{"58":{}}}],["store",{"_index":306,"title":{"952":{}},"content":{"76":{},"147":{},"194":{},"198":{},"200":{},"204":{},"212":{},"213":{},"214":{},"220":{},"225":{},"234":{},"235":{},"244":{},"263":{},"264":{},"270":{},"271":{},"274":{},"277":{},"283":{},"291":{},"295":{},"305":{},"312":{},"355":{},"377":{},"510":{},"511":{},"553":{},"586":{},"587":{},"588":{},"613":{},"652":{},"655":{},"659":{},"674":{},"681":{},"682":{},"693":{},"701":{},"722":{},"728":{},"739":{},"742":{},"747":{},"748":{},"778":{},"787":{},"797":{},"810":{},"951":{},"952":{}}}],["storesit",{"_index":811,"title":{},"content":{"213":{}}}],["str",{"_index":2380,"title":{},"content":{"459":{},"477":{},"478":{},"514":{},"516":{},"518":{},"519":{},"520":{}}}],["str1",{"_index":2595,"title":{},"content":{"515":{}}}],["str2",{"_index":2596,"title":{},"content":{"515":{}}}],["straighforward",{"_index":1557,"title":{},"content":{"314":{}}}],["straightforward",{"_index":2814,"title":{},"content":{"608":{},"877":{},"887":{},"906":{},"910":{}}}],["strategi",{"_index":1073,"title":{},"content":{"255":{},"312":{},"314":{},"865":{},"869":{},"891":{},"903":{},"923":{},"925":{}}}],["stream",{"_index":1561,"title":{"350":{}},"content":{"314":{},"349":{},"350":{},"352":{}}}],["strengthen",{"_index":2846,"title":{},"content":{"619":{},"818":{}}}],["strict",{"_index":3031,"title":{},"content":{"660":{}}}],["string",{"_index":119,"title":{"186":{},"388":{},"513":{}},"content":{"22":{},"23":{},"28":{},"29":{},"31":{},"32":{},"40":{},"41":{},"43":{},"44":{},"55":{},"56":{},"64":{},"65":{},"73":{},"74":{},"79":{},"80":{},"82":{},"83":{},"88":{},"89":{},"91":{},"92":{},"101":{},"102":{},"111":{},"112":{},"119":{},"159":{},"163":{},"173":{},"175":{},"186":{},"196":{},"372":{},"382":{},"386":{},"388":{},"395":{},"400":{},"411":{},"418":{},"422":{},"426":{},"427":{},"428":{},"447":{},"472":{},"473":{},"474":{},"475":{},"476":{},"478":{},"479":{},"488":{},"504":{},"513":{},"514":{},"516":{},"518":{},"519":{},"520":{},"535":{},"560":{},"950":{},"964":{},"970":{},"972":{},"973":{},"975":{},"976":{},"978":{},"979":{},"982":{},"984":{},"985":{},"987":{},"988":{},"991":{},"993":{},"994":{},"996":{},"997":{}}}],["string.from_number(13",{"_index":2604,"title":{},"content":{"517":{}}}],["string.from_number(13.2",{"_index":2606,"title":{},"content":{"517":{}}}],["string.from_number(count",{"_index":2687,"title":{},"content":{"545":{}}}],["string.in?(\"bob,alice,julia",{"_index":2594,"title":{},"content":{"515":{}}}],["string.siz",{"_index":2593,"title":{},"content":{"514":{}}}],["string.size(\"hello",{"_index":2592,"title":{},"content":{"514":{}}}],["string.to_hex(\"592ac76afa",{"_index":2609,"title":{},"content":{"518":{}}}],["string.to_hex(\"hello",{"_index":2611,"title":{},"content":{"518":{}}}],["string.to_lowercase(\"#{firstnam",{"_index":2117,"title":{},"content":{"380":{}}}],["string.to_lowercase(\"sherlock",{"_index":2619,"title":{},"content":{"520":{}}}],["string.to_numb",{"_index":2600,"title":{},"content":{"516":{}}}],["string.to_number(\"12",{"_index":2598,"title":{},"content":{"516":{}}}],["string.to_number(\"12.1",{"_index":2601,"title":{},"content":{"516":{}}}],["string.to_number(contract.cont",{"_index":2686,"title":{},"content":{"545":{}}}],["string.to_uppercase(\"arsèn",{"_index":2615,"title":{},"content":{"519":{}}}],["string_bip_44",{"_index":803,"title":{},"content":{"213":{},"214":{}}}],["strong",{"_index":2847,"title":{},"content":{"619":{},"818":{},"951":{}}}],["struct",{"_index":1816,"title":{},"content":{"352":{}}}],["structu",{"_index":1500,"title":{},"content":{"309":{}}}],["structur",{"_index":113,"title":{"257":{},"310":{},"311":{},"354":{},"779":{}},"content":{"22":{},"212":{},"213":{},"252":{},"267":{},"269":{},"270":{},"277":{},"310":{},"311":{},"312":{},"313":{},"315":{},"316":{},"354":{},"394":{},"395":{},"427":{},"447":{},"752":{},"779":{},"812":{},"826":{}}}],["style",{"_index":1075,"title":{},"content":{"255":{},"593":{},"702":{}}}],["stylesheet",{"_index":3512,"title":{},"content":{"789":{}}}],["sub",{"_index":1246,"title":{},"content":{"269":{},"316":{}}}],["subdomain",{"_index":3548,"title":{},"content":{"801":{}}}],["subexpress",{"_index":2584,"title":{},"content":{"507":{}}}],["subject",{"_index":1868,"title":{},"content":{"375":{},"421":{},"593":{},"672":{},"713":{},"731":{},"733":{},"785":{},"787":{},"921":{}}}],["submit",{"_index":1732,"title":{},"content":{"334":{},"335":{},"336":{},"338":{},"342":{},"542":{},"629":{},"637":{},"705":{},"749":{},"894":{},"895":{},"899":{},"907":{},"908":{},"911":{},"920":{}}}],["subnet",{"_index":1669,"title":{},"content":{"321":{}}}],["subpart",{"_index":2704,"title":{},"content":{"550":{}}}],["subscrib",{"_index":475,"title":{},"content":{"194":{},"198":{},"201":{},"472":{},"740":{},"749":{}}}],["subscript",{"_index":224,"title":{"585":{}},"content":{"48":{},"78":{},"81":{},"177":{},"579":{},"580":{},"581":{},"582":{},"583":{},"584":{},"585":{},"961":{}}}],["subsequ",{"_index":980,"title":{},"content":{"225":{},"819":{}}}],["subset",{"_index":1125,"title":{"246":{},"738":{}},"content":{"246":{},"247":{},"250":{},"251":{},"315":{},"317":{},"318":{},"442":{},"443":{},"732":{},"734":{},"737":{},"738":{},"740":{},"742":{},"743":{},"744":{},"745":{}}}],["substanti",{"_index":3800,"title":{},"content":{"891":{}}}],["substructur",{"_index":1281,"title":{},"content":{"269":{}}}],["subtract",{"_index":658,"title":{},"content":{"211":{},"638":{}}}],["succeed",{"_index":3239,"title":{},"content":{"702":{}}}],["success",{"_index":816,"title":{"964":{},"967":{},"970":{},"973":{},"976":{},"979":{},"982":{},"985":{},"988":{},"991":{},"994":{},"997":{}},"content":{"214":{},"260":{},"279":{},"546":{},"690":{},"702":{},"835":{},"895":{},"899":{},"908":{},"911":{}}}],["successfulli",{"_index":305,"title":{},"content":{"76":{},"200":{},"255":{},"625":{},"642":{},"834":{}}}],["successor",{"_index":1648,"title":{},"content":{"320":{}}}],["such",{"_index":488,"title":{},"content":{"204":{},"269":{},"346":{},"354":{},"472":{},"593":{},"608":{},"637":{},"645":{},"651":{},"674":{},"677":{},"684":{},"695":{},"711":{},"718":{},"733":{},"744":{},"759":{},"782":{},"785":{},"788":{},"789":{},"800":{},"818":{},"860":{},"869":{},"925":{},"926":{},"949":{}}}],["suffer",{"_index":1504,"title":{},"content":{"309":{}}}],["suffici",{"_index":3400,"title":{},"content":{"747":{},"898":{}}}],["sugar",{"_index":2155,"title":{},"content":{"405":{}}}],["suggest",{"_index":2067,"title":{},"content":{"395":{},"404":{},"486":{},"593":{},"691":{},"801":{}}}],["suit",{"_index":1697,"title":{},"content":{"322":{},"789":{},"891":{},"903":{}}}],["suitabl",{"_index":2143,"title":{},"content":{"403":{}}}],["sum",{"_index":1972,"title":{},"content":{"372":{},"782":{}}}],["sum(a",{"_index":2078,"title":{},"content":{"397":{}}}],["sum(list",{"_index":2079,"title":{},"content":{"397":{}}}],["summar",{"_index":348,"title":{},"content":{"88":{},"338":{},"739":{}}}],["summari",{"_index":75,"title":{"888":{},"889":{}},"content":{"16":{},"88":{},"114":{},"116":{},"246":{},"247":{},"248":{},"252":{},"315":{},"317":{},"318":{},"338":{},"342":{},"343":{},"645":{},"718":{},"721":{},"737":{},"739":{},"743":{},"744":{},"745":{},"746":{},"833":{}}}],["summarytim",{"_index":81,"title":{},"content":{"16":{}}}],["sumofallweightedtoken",{"_index":3906,"title":{},"content":{"943":{}}}],["sunday",{"_index":2639,"title":{},"content":{"535":{}}}],["super",{"_index":3162,"title":{},"content":{"687":{}}}],["supervis",{"_index":1122,"title":{},"content":{"245":{},"249":{},"349":{},"354":{},"652":{},"707":{},"715":{},"727":{}}}],["supervisor",{"_index":1066,"title":{"249":{}},"content":{"255":{}}}],["suppli",{"_index":251,"title":{},"content":{"64":{},"137":{},"213":{},"214":{},"645":{},"755":{},"756":{},"757":{},"758":{},"782":{},"876":{}}}],["supplier",{"_index":3291,"title":{},"content":{"724":{},"904":{}}}],["support",{"_index":529,"title":{"611":{},"637":{}},"content":{"204":{},"206":{},"213":{},"214":{},"220":{},"225":{},"228":{},"229":{},"234":{},"246":{},"264":{},"308":{},"310":{},"312":{},"313":{},"315":{},"345":{},"351":{},"352":{},"355":{},"545":{},"594":{},"611":{},"630":{},"650":{},"659":{},"660":{},"670":{},"680":{},"690":{},"697":{},"704":{},"706":{},"711":{},"730":{},"748":{},"750":{},"752":{},"803":{},"905":{},"924":{},"947":{},"949":{},"951":{},"959":{}}}],["suppos",{"_index":3919,"title":{},"content":{"945":{}}}],["sure",{"_index":590,"title":{},"content":{"206":{},"315":{},"332":{},"363":{},"364":{},"536":{},"631":{}}}],["sustain",{"_index":3087,"title":{},"content":{"678":{},"690":{},"782":{},"783":{},"905":{},"933":{}}}],["susten",{"_index":3490,"title":{},"content":{"783":{}}}],["sw_ok",{"_index":667,"title":{},"content":{"211":{},"214":{}}}],["swap",{"_index":1198,"title":{"859":{},"860":{},"892":{},"893":{},"894":{},"895":{},"921":{}},"content":{"263":{},"264":{},"608":{},"618":{},"619":{},"621":{},"639":{},"817":{},"818":{},"860":{},"863":{},"865":{},"869":{},"871":{},"874":{},"876":{},"893":{},"894":{},"895":{},"902":{},"903":{},"913":{},"921":{},"929":{},"931":{},"935":{},"947":{}}}],["swap'",{"_index":3629,"title":{},"content":{"819":{}}}],["switch",{"_index":2850,"title":{"624":{},"641":{}},"content":{"624":{},"641":{},"952":{}}}],["symbiot",{"_index":3857,"title":{},"content":{"927":{}}}],["symbol",{"_index":250,"title":{},"content":{"64":{},"137":{},"755":{},"756":{},"758":{}}}],["symmetr",{"_index":975,"title":{},"content":{"225":{},"269":{}}}],["sync",{"_index":1188,"title":{},"content":{"260":{},"319":{},"710":{},"720":{},"721":{},"722":{},"809":{}}}],["sync/r",{"_index":3275,"title":{},"content":{"720":{}}}],["synchron",{"_index":1178,"title":{"710":{},"722":{}},"content":{"258":{},"375":{},"604":{},"707":{},"710":{},"731":{},"741":{},"745":{}}}],["synchronizationnod",{"_index":3374,"title":{},"content":{"745":{}}}],["synergi",{"_index":3732,"title":{},"content":{"869":{}}}],["synopsi",{"_index":561,"title":{"205":{}},"content":{}}],["syntax",{"_index":2013,"title":{},"content":{"386":{},"387":{},"394":{},"395":{},"398":{},"399":{},"403":{},"592":{}}}],["system",{"_index":1038,"title":{"371":{},"881":{}},"content":{"245":{},"255":{},"314":{},"355":{},"371":{},"612":{},"652":{},"672":{},"677":{},"688":{},"689":{},"727":{},"729":{},"730":{},"741":{},"787":{},"788":{},"793":{},"800":{},"801":{},"827":{},"871":{},"878":{},"881":{},"894":{},"898":{},"905":{},"907":{},"910":{},"932":{},"951":{}}}],["t.t.,([0",{"_index":2577,"title":{},"content":{"507":{}}}],["tab",{"_index":2945,"title":{},"content":{"656":{},"842":{},"843":{},"844":{},"845":{},"846":{},"847":{},"848":{}}}],["tabl",{"_index":1101,"title":{"311":{},"343":{},"355":{},"356":{},"357":{},"358":{},"359":{},"890":{}},"content":{"237":{},"238":{},"240":{},"241":{},"243":{},"244":{},"305":{},"311":{},"315":{},"343":{},"355":{},"356":{},"357":{},"358":{},"359":{},"809":{},"810":{},"811":{},"890":{}}}],["tag",{"_index":2083,"title":{"417":{}},"content":{"397":{},"398":{},"417":{}}}],["take",{"_index":757,"title":{},"content":{"213":{},"214":{},"224":{},"255":{},"269":{},"275":{},"277":{},"283":{},"284":{},"285":{},"287":{},"310":{},"363":{},"400":{},"549":{},"691":{},"693":{},"728":{},"797":{},"821":{},"866":{},"871":{},"876":{},"877":{},"894":{},"944":{},"950":{}}}],["taken",{"_index":760,"title":{},"content":{"213":{},"593":{},"731":{},"779":{},"820":{},"870":{}}}],["talk",{"_index":3525,"title":{},"content":{"789":{}}}],["target",{"_index":1582,"title":{"789":{}},"content":{"315":{},"316":{},"320":{},"321":{},"322":{},"363":{},"779":{},"832":{},"845":{}}}],["task",{"_index":1091,"title":{},"content":{"256":{},"258":{},"261":{},"324":{},"666":{},"804":{},"949":{}}}],["tcp",{"_index":1798,"title":{},"content":{"350":{},"354":{}}}],["team",{"_index":2886,"title":{},"content":{"637":{},"837":{},"940":{},"953":{}}}],["tech",{"_index":571,"title":{},"content":{"205":{}}}],["tech/pourquoi",{"_index":3949,"title":{},"content":{"949":{}}}],["technic",{"_index":1653,"title":{"959":{}},"content":{"320":{},"340":{},"682":{},"686":{},"690":{},"691":{},"698":{},"702":{},"821":{},"837":{},"866":{},"961":{}}}],["techniqu",{"_index":2819,"title":{},"content":{"608":{},"672":{},"818":{}}}],["technolog",{"_index":1016,"title":{"254":{}},"content":{"255":{},"373":{},"608":{},"650":{},"652":{},"674":{},"679":{},"724":{},"725":{},"727":{},"817":{},"869":{}}}],["telegram",{"_index":2873,"title":{},"content":{"630":{},"637":{}}}],["telemetri",{"_index":1715,"title":{},"content":{"330":{}}}],["tell",{"_index":2866,"title":{},"content":{"627":{},"910":{}}}],["temp",{"_index":1361,"title":{},"content":{"275":{}}}],["temperatur",{"_index":1958,"title":{},"content":{"372":{}}}],["templat",{"_index":1240,"title":{},"content":{"269":{}}}],["temporari",{"_index":3059,"title":{},"content":{"666":{}}}],["term",{"_index":1510,"title":{},"content":{"310":{},"312":{},"314":{},"315":{},"355":{},"559":{},"690":{},"693":{},"702":{},"727":{},"733":{},"741":{},"905":{},"933":{}}}],["termin",{"_index":607,"title":{},"content":{"208":{},"595":{},"596":{},"597":{},"598":{},"599":{},"600":{},"792":{},"839":{},"840":{},"956":{}}}],["terminolog",{"_index":946,"title":{},"content":{"223":{}}}],["test",{"_index":510,"title":{"208":{},"540":{},"541":{},"542":{},"543":{},"544":{}},"content":{"204":{},"206":{},"263":{},"320":{},"321":{},"322":{},"393":{},"530":{},"538":{},"540":{},"541":{},"542":{},"543":{},"544":{},"545":{},"546":{},"547":{},"548":{},"554":{},"555":{},"562":{},"690":{},"701":{},"702":{},"728":{},"791":{},"792":{},"821":{},"866":{},"869":{},"870":{},"871":{},"949":{}}}],["testcoin_bal",{"_index":2297,"title":{},"content":{"438":{}}}],["testnet",{"_index":513,"title":{"561":{},"573":{},"624":{},"641":{}},"content":{"204":{},"205":{},"263":{},"321":{},"342":{},"564":{},"565":{},"568":{},"569":{},"570":{},"571":{},"572":{},"573":{},"605":{},"624":{},"641":{},"702":{},"737":{},"821":{},"825":{},"866":{},"871":{},"952":{}}}],["testnet/mainnet",{"_index":3379,"title":{},"content":{"736":{}}}],["text",{"_index":443,"title":{},"content":{"157":{},"186":{},"393":{},"459":{},"462":{},"464":{},"505":{},"506":{},"507":{},"513":{},"516":{},"517":{},"518":{},"539":{},"552":{},"553":{},"592":{},"656":{},"779":{},"952":{}}}],["textual",{"_index":464,"title":{},"content":{"186":{}}}],["thank",{"_index":1616,"title":{},"content":{"316":{},"637":{},"660":{},"730":{},"865":{},"998":{}}}],["that'",{"_index":2675,"title":{},"content":{"544":{},"546":{}}}],["the:transact",{"_index":3243,"title":{},"content":{"706":{}}}],["theft",{"_index":3048,"title":{},"content":{"672":{}}}],["theme",{"_index":3978,"title":{},"content":{"952":{}}}],["themselv",{"_index":3133,"title":{},"content":{"675":{},"698":{}}}],["therebi",{"_index":3697,"title":{},"content":{"865":{},"926":{}}}],["therefor",{"_index":1711,"title":{},"content":{"327":{},"591":{},"595":{},"596":{},"597":{},"598":{},"599":{},"600":{},"605":{},"660":{},"665":{},"677":{},"718":{},"721":{},"740":{},"839":{},"883":{},"959":{},"998":{}}}],["thier",{"_index":745,"title":{},"content":{"213":{},"214":{}}}],["thing",{"_index":1060,"title":{},"content":{"255":{},"332":{},"382":{},"390":{},"628":{},"798":{},"803":{}}}],["think",{"_index":1046,"title":{},"content":{"255":{},"788":{}}}],["third",{"_index":1064,"title":{},"content":{"255":{},"461":{},"674":{},"690":{},"703":{},"952":{}}}],["those",{"_index":1048,"title":{},"content":{"244":{},"247":{},"249":{},"252":{},"255":{},"256":{},"310":{},"312":{},"313":{},"316":{},"319":{},"349":{},"363":{},"364":{},"545":{},"690":{},"698":{},"721":{},"739":{},"745":{},"779":{},"861":{},"925":{},"927":{}}}],["thread",{"_index":1051,"title":{},"content":{"255":{}}}],["threat",{"_index":3177,"title":{},"content":{"689":{},"865":{}}}],["three",{"_index":1751,"title":{},"content":{"341":{},"342":{},"451":{},"659":{},"812":{},"887":{},"924":{}}}],["threshhold",{"_index":1655,"title":{},"content":{"320":{}}}],["threshold",{"_index":1729,"title":{},"content":{"331":{},"346":{},"372":{},"768":{},"894":{}}}],["thrift",{"_index":1809,"title":{},"content":{"351":{}}}],["through",{"_index":915,"title":{},"content":{"220":{},"224":{},"262":{},"263":{},"285":{},"288":{},"302":{},"329":{},"335":{},"338":{},"350":{},"351":{},"363":{},"377":{},"398":{},"594":{},"622":{},"663":{},"690":{},"697":{},"704":{},"705":{},"713":{},"714":{},"716":{},"717":{},"719":{},"724":{},"727":{},"728":{},"739":{},"753":{},"789":{},"818":{},"819":{},"820":{},"827":{},"834":{},"835":{},"838":{},"860":{},"864":{},"871":{},"887":{},"891":{},"900":{},"903":{},"905":{},"910":{},"933":{},"959":{}}}],["throughput",{"_index":3013,"title":{},"content":{"659":{}}}],["throw",{"_index":1934,"title":{},"content":{"371":{},"400":{},"403":{},"409":{},"717":{}}}],["thu",{"_index":570,"title":{},"content":{"205":{},"382":{},"638":{},"678":{},"682":{},"931":{},"950":{}}}],["ti",{"_index":3102,"title":{},"content":{"678":{},"884":{}}}],["tick",{"_index":1759,"title":{},"content":{"342":{}}}],["tier",{"_index":3820,"title":{},"content":{"905":{}}}],["time",{"_index":108,"title":{"261":{},"526":{},"534":{},"615":{},"618":{},"808":{},"817":{}},"content":{"22":{},"91":{},"101":{},"114":{},"122":{},"146":{},"150":{},"209":{},"247":{},"310":{},"311":{},"314":{},"315":{},"330":{},"369":{},"377":{},"381":{},"393":{},"407":{},"409":{},"418":{},"420":{},"438":{},"442":{},"443":{},"472":{},"526":{},"527":{},"534":{},"547":{},"548":{},"554":{},"593":{},"608":{},"618":{},"631":{},"645":{},"678":{},"687":{},"689":{},"690":{},"697":{},"701":{},"708":{},"709":{},"714":{},"716":{},"718":{},"727":{},"736":{},"737":{},"739":{},"740":{},"743":{},"745":{},"747":{},"757":{},"797":{},"817":{},"819":{},"865":{},"877":{},"881":{},"883":{},"890":{},"907":{},"909":{},"942":{},"949":{},"961":{}}}],["time(timeout",{"_index":1800,"title":{},"content":{"350":{}}}],["time.now",{"_index":2169,"title":{},"content":{"407":{},"409":{},"527":{}}}],["time.now/0",{"_index":2693,"title":{"548":{}},"content":{"547":{},"548":{}}}],["timefram",{"_index":1719,"title":{},"content":{"363":{},"887":{}}}],["timelock",{"_index":2835,"title":{},"content":{"615":{}}}],["timeout",{"_index":1163,"title":{},"content":{"251":{},"952":{}}}],["timer",{"_index":1134,"title":{"247":{}},"content":{"247":{},"737":{}}}],["timespan",{"_index":1160,"title":{},"content":{"251":{}}}],["timestamp",{"_index":82,"title":{"188":{},"554":{},"743":{}},"content":{"16":{},"17":{},"22":{},"23":{},"43":{},"44":{},"46":{},"47":{},"88":{},"89":{},"91":{},"92":{},"101":{},"102":{},"108":{},"109":{},"114":{},"115":{},"122":{},"141":{},"142":{},"146":{},"150":{},"151":{},"188":{},"315":{},"320":{},"343":{},"368":{},"374":{},"382":{},"407":{},"743":{},"745":{},"779":{},"941":{},"952":{}}}],["tini",{"_index":3001,"title":{},"content":{"652":{}}}],["tip",{"_index":573,"title":{},"content":{"205":{},"210":{},"212":{},"265":{},"268":{},"271":{},"275":{},"278":{},"395":{},"399":{},"447":{},"448":{},"486":{},"498":{},"501":{},"532":{},"656":{},"806":{},"827":{},"832":{},"871":{}}}],["tmp",{"_index":1668,"title":{},"content":{"321":{},"322":{}}}],["to_hex/1",{"_index":2608,"title":{"518":{}},"content":{}}],["to_lowercase/1",{"_index":2618,"title":{"520":{}},"content":{}}],["to_number/1",{"_index":2597,"title":{"516":{}},"content":{}}],["to_string/1",{"_index":2443,"title":{"477":{}},"content":{}}],["to_uppercase/1",{"_index":2614,"title":{"519":{}},"content":{}}],["toc",{"_index":625,"title":{},"content":{"210":{}}}],["today",{"_index":3522,"title":{},"content":{"789":{}}}],["todo",{"_index":1962,"title":{},"content":{"372":{},"383":{},"414":{},"559":{},"769":{}}}],["togeth",{"_index":3856,"title":{},"content":{"927":{}}}],["token",{"_index":65,"title":{"64":{},"135":{},"241":{},"336":{},"528":{},"557":{},"577":{},"628":{},"643":{},"645":{},"646":{},"697":{},"751":{},"757":{},"773":{},"782":{},"783":{},"844":{},"889":{},"893":{}},"content":{"12":{},"22":{},"34":{},"54":{},"61":{},"64":{},"66":{},"82":{},"91":{},"101":{},"107":{},"122":{},"135":{},"137":{},"146":{},"166":{},"177":{},"187":{},"191":{},"212":{},"241":{},"242":{},"243":{},"259":{},"336":{},"346":{},"369":{},"370":{},"382":{},"414":{},"418":{},"422":{},"425":{},"438":{},"441":{},"442":{},"443":{},"451":{},"528":{},"529":{},"557":{},"574":{},"575":{},"576":{},"577":{},"578":{},"608":{},"613":{},"621":{},"628":{},"645":{},"646":{},"656":{},"690":{},"692":{},"697":{},"703":{},"706":{},"751":{},"752":{},"753":{},"754":{},"755":{},"756":{},"757":{},"758":{},"759":{},"770":{},"773":{},"779":{},"783":{},"815":{},"819":{},"820":{},"832":{},"833":{},"838":{},"842":{},"844":{},"860":{},"861":{},"862":{},"865":{},"870":{},"878":{},"882":{},"883":{},"884":{},"886":{},"887":{},"888":{},"890":{},"891":{},"894":{},"898":{},"899":{},"901":{},"902":{},"903":{},"907":{},"908":{},"909":{},"910":{},"913":{},"914":{},"915":{},"916":{},"917":{},"918":{},"919":{},"921":{},"922":{},"925":{},"926":{},"930":{},"931":{},"932":{},"933":{},"934":{},"935":{},"942":{},"945":{},"947":{}}}],["token'",{"_index":426,"title":{},"content":{"135":{},"190":{},"529":{},"557":{},"645":{},"754":{}}}],["token.address",{"_index":427,"title":{},"content":{"136":{}}}],["token.collect",{"_index":259,"title":{},"content":{"65":{}}}],["token.decim",{"_index":260,"title":{},"content":{"65":{}}}],["token.fetch_id_from_address(\"000012345",{"_index":2627,"title":{},"content":{"529":{}}}],["token.fetch_id_from_address/1",{"_index":2694,"title":{},"content":{"547":{}}}],["token.genesi",{"_index":261,"title":{},"content":{"65":{}}}],["token.id",{"_index":262,"title":{},"content":{"65":{}}}],["token.nam",{"_index":263,"title":{},"content":{"65":{}}}],["token.ownership",{"_index":264,"title":{},"content":{"65":{}}}],["token.properti",{"_index":265,"title":{},"content":{"65":{}}}],["token.suppli",{"_index":266,"title":{},"content":{"65":{}}}],["token.symbol",{"_index":267,"title":{},"content":{"65":{}}}],["token.typ",{"_index":268,"title":{},"content":{"65":{}}}],["token_address",{"_index":1914,"title":{},"content":{"369":{},"382":{},"414":{},"422":{},"425":{},"438":{},"441":{},"442":{},"443":{},"451":{},"557":{}}}],["token_id",{"_index":2131,"title":{},"content":{"382":{},"422":{},"438":{},"440":{},"441":{},"442":{},"443":{},"451":{},"557":{}}}],["token_mov",{"_index":2129,"title":{},"content":{"382":{}}}],["token_nam",{"_index":3421,"title":{},"content":{"755":{}}}],["token_refer",{"_index":3435,"title":{},"content":{"757":{},"758":{}}}],["token_symbol",{"_index":3420,"title":{},"content":{"755":{}}}],["token_to_credit",{"_index":1909,"title":{},"content":{"369":{},"414":{}}}],["token_to_transf",{"_index":2222,"title":{},"content":{"422":{}}}],["token_transf",{"_index":2133,"title":{},"content":{"382":{},"407":{},"414":{},"421":{},"422":{},"451":{},"772":{}}}],["tokenaddress",{"_index":117,"title":{},"content":{"22":{},"70":{},"82":{},"91":{},"101":{},"759":{}}}],["tokenbal",{"_index":66,"title":{"61":{}},"content":{"12":{},"13":{},"61":{},"166":{},"177":{}}}],["tokenbalance.address",{"_index":269,"title":{},"content":{"62":{}}}],["tokenbalance.amount",{"_index":270,"title":{},"content":{"62":{}}}],["tokenbalance.tokenid",{"_index":271,"title":{},"content":{"62":{}}}],["tokenid",{"_index":118,"title":{},"content":{"22":{},"61":{},"70":{},"82":{},"91":{},"101":{},"759":{}}}],["tokenledg",{"_index":177,"title":{"67":{}},"content":{"34":{},"35":{},"67":{},"72":{}}}],["tokenledger.transf",{"_index":273,"title":{},"content":{"68":{}}}],["tokenom",{"_index":3875,"title":{},"content":{"939":{}}}],["tokenproperti",{"_index":258,"title":{"190":{}},"content":{"64":{},"65":{},"190":{}}}],["tokens_identifi",{"_index":2329,"title":{},"content":{"443":{}}}],["tokensamountatthislevel",{"_index":3904,"title":{},"content":{"943":{}}}],["tokentransf",{"_index":272,"title":{"70":{}},"content":{"67":{},"68":{},"70":{},"166":{},"177":{}}}],["tokentransfer.amount",{"_index":274,"title":{},"content":{"71":{}}}],["tokentransfer.to",{"_index":275,"title":{},"content":{"71":{}}}],["tokentransfer.tokenaddress",{"_index":276,"title":{},"content":{"71":{}}}],["tokentransfer.tokenid",{"_index":277,"title":{},"content":{"71":{}}}],["toler",{"_index":1037,"title":{},"content":{"255":{},"659":{},"713":{},"894":{},"907":{},"920":{}}}],["tom",{"_index":2053,"title":{},"content":{"393":{}}}],["tom\\njerry\\n",{"_index":2058,"title":{},"content":{"393":{}}}],["took",{"_index":1550,"title":{},"content":{"313":{}}}],["tool",{"_index":1675,"title":{},"content":{"322":{},"645":{},"646":{},"789":{},"794":{},"824":{},"839":{},"854":{},"925":{},"926":{},"927":{},"956":{}}}],["top",{"_index":1833,"title":{},"content":{"361":{},"365":{},"366":{},"562":{},"650":{},"656":{},"874":{}}}],["torrent",{"_index":3498,"title":{},"content":{"787":{}}}],["total",{"_index":867,"title":{"922":{}},"content":{"214":{},"238":{},"241":{},"645":{},"660":{},"826":{},"870":{},"876":{},"887":{},"889":{},"891":{},"894":{},"898":{},"901":{},"903":{},"907":{},"910":{},"922":{},"934":{}}}],["total_token_transf",{"_index":848,"title":{},"content":{"214":{}}}],["total_uco_transf",{"_index":846,"title":{},"content":{"214":{}}}],["toto,([0",{"_index":2575,"title":{},"content":{"507":{}}}],["touch",{"_index":3930,"title":{},"content":{"947":{},"951":{}}}],["toward",{"_index":3408,"title":{},"content":{"751":{}}}],["tp",{"_index":1056,"title":{},"content":{"255":{},"319":{},"687":{},"711":{},"731":{}}}],["tpm",{"_index":1009,"title":{"265":{}},"content":{"232":{},"256":{},"265":{},"267":{},"268":{},"269":{},"272":{},"275":{},"679":{},"680":{}}}],["tpm.c",{"_index":1206,"title":{},"content":{"265":{}}}],["tpm.h",{"_index":1207,"title":{},"content":{"265":{}}}],["tpm/yubikey",{"_index":3115,"title":{},"content":{"680":{}}}],["tpm2_alg_a",{"_index":1315,"title":{},"content":{"269":{}}}],["tpm2_alg_cfb",{"_index":1319,"title":{},"content":{"269":{}}}],["tpm2_alg_nul",{"_index":1320,"title":{},"content":{"269":{}}}],["tpm2_alg_sha256",{"_index":1323,"title":{},"content":{"269":{}}}],["tpm2_ecc_nist_p256",{"_index":1325,"title":{},"content":{"269":{}}}],["tpm2b_hash",{"_index":1367,"title":{},"content":{"276":{}}}],["tpma_object_adminwithpolici",{"_index":1255,"title":{},"content":{"269":{}}}],["tpma_object_decrypt",{"_index":1273,"title":{},"content":{"269":{}}}],["tpma_object_decrypt:th",{"_index":1263,"title":{},"content":{"269":{}}}],["tpma_object_fixedpar",{"_index":1274,"title":{},"content":{"269":{}}}],["tpma_object_fixedparent:ind",{"_index":1267,"title":{},"content":{"269":{}}}],["tpma_object_fixedtpm",{"_index":1264,"title":{},"content":{"269":{}}}],["tpma_object_restrict",{"_index":1279,"title":{},"content":{"269":{}}}],["tpma_object_sensitivedataorigin",{"_index":1269,"title":{},"content":{"269":{}}}],["tpma_object_sign_encrypt",{"_index":1260,"title":{},"content":{"269":{}}}],["tpma_object_userwithauth",{"_index":1253,"title":{},"content":{"269":{}}}],["tracer/mark",{"_index":3368,"title":{},"content":{"742":{}}}],["track",{"_index":1587,"title":{"743":{}},"content":{"315":{},"371":{},"831":{},"834":{},"893":{},"901":{}}}],["trade",{"_index":3693,"title":{"932":{}},"content":{"861":{},"864":{},"865":{},"869":{},"870":{},"876":{},"877":{},"894":{},"901":{},"903":{},"907":{},"914":{},"916":{},"918":{},"919":{},"920":{},"921":{},"925":{},"926":{},"927":{},"930":{},"931":{},"932":{},"934":{},"935":{},"936":{},"937":{}}}],["trade'",{"_index":3863,"title":{},"content":{"919":{}}}],["trader",{"_index":3707,"title":{"926":{}},"content":{"860":{},"865":{},"924":{},"926":{},"931":{},"935":{}}}],["tradit",{"_index":939,"title":{},"content":{"223":{},"689":{},"730":{},"787":{},"864":{},"914":{},"930":{}}}],["traffic",{"_index":3255,"title":{},"content":{"713":{},"719":{}}}],["transact",{"_index":18,"title":{"73":{},"138":{},"147":{},"214":{},"230":{},"248":{},"331":{},"333":{},"334":{},"335":{},"336":{},"337":{},"338":{},"339":{},"340":{},"362":{},"381":{},"382":{},"408":{},"446":{},"447":{},"448":{},"449":{},"450":{},"451":{},"452":{},"453":{},"454":{},"455":{},"456":{},"532":{},"533":{},"536":{},"542":{},"550":{},"627":{},"670":{},"692":{},"716":{},"717":{},"739":{},"740":{},"743":{},"760":{},"777":{},"779":{},"780":{},"781":{},"796":{},"842":{},"848":{},"853":{}},"content":{"4":{},"5":{},"15":{},"22":{},"27":{},"37":{},"40":{},"42":{},"73":{},"75":{},"76":{},"82":{},"88":{},"91":{},"94":{},"101":{},"105":{},"108":{},"110":{},"111":{},"117":{},"122":{},"123":{},"125":{},"128":{},"130":{},"138":{},"140":{},"141":{},"143":{},"144":{},"146":{},"147":{},"149":{},"153":{},"154":{},"157":{},"166":{},"168":{},"172":{},"174":{},"177":{},"187":{},"192":{},"198":{},"200":{},"201":{},"204":{},"209":{},"214":{},"220":{},"223":{},"230":{},"234":{},"235":{},"236":{},"244":{},"246":{},"248":{},"251":{},"252":{},"259":{},"260":{},"261":{},"263":{},"264":{},"305":{},"312":{},"314":{},"315":{},"316":{},"317":{},"318":{},"319":{},"323":{},"324":{},"327":{},"329":{},"330":{},"331":{},"332":{},"334":{},"335":{},"336":{},"337":{},"338":{},"339":{},"340":{},"341":{},"342":{},"343":{},"345":{},"361":{},"362":{},"363":{},"364":{},"365":{},"366":{},"368":{},"369":{},"371":{},"373":{},"374":{},"375":{},"377":{},"379":{},"380":{},"381":{},"382":{},"384":{},"398":{},"403":{},"404":{},"405":{},"406":{},"407":{},"408":{},"409":{},"410":{},"414":{},"417":{},"420":{},"421":{},"422":{},"423":{},"424":{},"425":{},"427":{},"428":{},"429":{},"430":{},"431":{},"434":{},"435":{},"436":{},"437":{},"438":{},"439":{},"441":{},"442":{},"443":{},"446":{},"447":{},"448":{},"449":{},"451":{},"453":{},"455":{},"472":{},"512":{},"527":{},"532":{},"533":{},"536":{},"537":{},"538":{},"541":{},"542":{},"544":{},"545":{},"546":{},"550":{},"551":{},"554":{},"558":{},"560":{},"586":{},"587":{},"588":{},"605":{},"608":{},"619":{},"621":{},"629":{},"648":{},"650":{},"651":{},"652":{},"656":{},"659":{},"661":{},"662":{},"665":{},"666":{},"670":{},"672":{},"674":{},"681":{},"683":{},"685":{},"687":{},"690":{},"692":{},"693":{},"695":{},"696":{},"697":{},"701":{},"702":{},"704":{},"705":{},"707":{},"708":{},"709":{},"710":{},"711":{},"715":{},"716":{},"717":{},"720":{},"721":{},"722":{},"727":{},"729":{},"730":{},"731":{},"732":{},"733":{},"734":{},"736":{},"737":{},"738":{},"739":{},"740":{},"741":{},"743":{},"744":{},"745":{},"746":{},"747":{},"748":{},"749":{},"750":{},"751":{},"752":{},"754":{},"756":{},"757":{},"758":{},"759":{},"760":{},"761":{},"762":{},"763":{},"764":{},"765":{},"766":{},"767":{},"768":{},"770":{},"771":{},"772":{},"773":{},"774":{},"775":{},"776":{},"777":{},"778":{},"779":{},"783":{},"786":{},"788":{},"795":{},"796":{},"797":{},"798":{},"799":{},"802":{},"803":{},"805":{},"808":{},"809":{},"810":{},"811":{},"812":{},"814":{},"818":{},"826":{},"830":{},"831":{},"834":{},"838":{},"839":{},"840":{},"842":{},"843":{},"845":{},"846":{},"847":{},"848":{},"849":{},"853":{},"860":{},"863":{},"864":{},"865":{},"876":{},"893":{},"894":{},"895":{},"898":{},"899":{},"902":{},"907":{},"908":{},"910":{},"911":{},"916":{},"929":{},"947":{},"952":{},"958":{},"959":{},"960":{},"971":{},"972":{},"973":{},"976":{},"979":{},"992":{},"993":{},"994":{}}}],["transactio'",{"_index":1734,"title":{},"content":{"335":{}}}],["transaction'",{"_index":406,"title":{"694":{}},"content":{"119":{},"175":{},"224":{},"235":{},"236":{},"248":{},"315":{},"317":{},"334":{},"343":{},"382":{},"404":{},"405":{},"411":{},"424":{},"437":{},"447":{},"551":{},"553":{},"555":{},"662":{},"670":{},"692":{},"693":{},"695":{},"697":{},"722":{},"732":{},"742":{},"745":{},"752":{},"754":{},"757":{},"758":{},"760":{},"779":{},"796":{},"972":{}}}],["transaction(",{"_index":3603,"title":{},"content":{"808":{},"809":{}}}],["transaction(aka",{"_index":3449,"title":{},"content":{"778":{}}}],["transaction(nod",{"_index":1822,"title":{},"content":{"355":{}}}],["transaction.address",{"_index":286,"title":{},"content":{"74":{},"139":{},"371":{},"387":{},"414":{}}}],["transaction.bal",{"_index":287,"title":{},"content":{"74":{}}}],["transaction.chainlength",{"_index":288,"title":{},"content":{"74":{}}}],["transaction.cod",{"_index":2334,"title":{},"content":{"427":{}}}],["transaction.cont",{"_index":2641,"title":{},"content":{"536":{}}}],["transaction.crossvalidationstamp",{"_index":289,"title":{},"content":{"74":{}}}],["transaction.data",{"_index":290,"title":{},"content":{"74":{}}}],["transaction.input",{"_index":291,"title":{},"content":{"74":{}}}],["transaction.inputs.limit",{"_index":292,"title":{},"content":{"74":{}}}],["transaction.inputs.pagingoffset",{"_index":293,"title":{},"content":{"74":{}}}],["transaction.originsignatur",{"_index":294,"title":{},"content":{"74":{}}}],["transaction.previousaddress",{"_index":295,"title":{},"content":{"74":{}}}],["transaction.previouspublickey",{"_index":296,"title":{},"content":{"74":{}}}],["transaction.previoussignatur",{"_index":297,"title":{},"content":{"74":{}}}],["transaction.typ",{"_index":298,"title":{},"content":{"74":{}}}],["transaction.uco_transfers[contract.address",{"_index":2211,"title":{},"content":{"414":{}}}],["transaction.validationstamp",{"_index":299,"title":{},"content":{"74":{}}}],["transaction.vers",{"_index":300,"title":{},"content":{"74":{}}}],["transaction:previ",{"_index":3041,"title":{},"content":{"662":{}}}],["transaction_address",{"_index":2309,"title":{},"content":{"441":{}}}],["transactionaddress",{"_index":4028,"title":{},"content":{"973":{},"976":{},"979":{}}}],["transactionattest",{"_index":303,"title":{"76":{}},"content":{"76":{},"166":{},"177":{},"198":{},"200":{}}}],["transactionattestation.address",{"_index":317,"title":{},"content":{"77":{}}}],["transactionattestation.maxconfirm",{"_index":318,"title":{},"content":{"77":{}}}],["transactionattestation.nbconfirm",{"_index":319,"title":{},"content":{"77":{}}}],["transactionchain",{"_index":44,"title":{"141":{}},"content":{"21":{},"75":{},"141":{},"177":{},"189":{},"373":{},"375":{},"650":{},"663":{},"665":{}}}],["transactionchain.address",{"_index":429,"title":{},"content":{"142":{}}}],["transactionchain.from",{"_index":430,"title":{},"content":{"142":{}}}],["transactionchain.ord",{"_index":431,"title":{},"content":{"142":{}}}],["transactionchain.pagingaddress",{"_index":432,"title":{},"content":{"142":{}}}],["transactionchainsinstead",{"_index":2997,"title":{},"content":{"652":{}}}],["transactionconfirm",{"_index":320,"title":{"198":{}},"content":{"78":{},"177":{},"198":{}}}],["transactionconfirmed.address",{"_index":480,"title":{},"content":{"199":{}}}],["transactiondata",{"_index":140,"title":{},"content":{"40":{}}}],["transactionerror",{"_index":31,"title":{"79":{},"201":{}},"content":{"6":{},"33":{},"79":{},"81":{},"177":{},"187":{},"201":{},"203":{}}}],["transactionerror.address",{"_index":323,"title":{},"content":{"80":{},"202":{}}}],["transactionerror.context",{"_index":324,"title":{},"content":{"80":{}}}],["transactionerror.error",{"_index":325,"title":{},"content":{"80":{}}}],["transactionerror.reason",{"_index":326,"title":{},"content":{"80":{}}}],["transactionhashfunct",{"_index":833,"title":{},"content":{"214":{}}}],["transactioninput",{"_index":281,"title":{"91":{},"144":{}},"content":{"73":{},"74":{},"91":{},"93":{},"144":{},"146":{},"156":{},"166":{},"170":{},"172":{},"177":{},"187":{},"189":{}}}],["transactioninput.amount",{"_index":333,"title":{},"content":{"92":{}}}],["transactioninput.from",{"_index":334,"title":{},"content":{"92":{}}}],["transactioninput.sp",{"_index":335,"title":{},"content":{"92":{}}}],["transactioninput.timestamp",{"_index":336,"title":{},"content":{"92":{}}}],["transactioninput.tokenaddress",{"_index":337,"title":{},"content":{"92":{}}}],["transactioninput.tokenid",{"_index":338,"title":{},"content":{"92":{}}}],["transactioninput.typ",{"_index":339,"title":{},"content":{"92":{}}}],["transactioninputs.address",{"_index":433,"title":{},"content":{"145":{}}}],["transactioninputs.limit",{"_index":434,"title":{},"content":{"145":{}}}],["transactioninputs.pagingoffset",{"_index":435,"title":{},"content":{"145":{}}}],["transactionmov",{"_index":186,"title":{"82":{}},"content":{"37":{},"38":{},"82":{},"166":{},"177":{},"187":{}}}],["transactionmovement.amount",{"_index":341,"title":{},"content":{"83":{}}}],["transactionmovement.to",{"_index":342,"title":{},"content":{"83":{}}}],["transactionmovement.tokenaddress",{"_index":343,"title":{},"content":{"83":{}}}],["transactionmovement.tokenid",{"_index":344,"title":{},"content":{"83":{}}}],["transactionmovement.typ",{"_index":345,"title":{},"content":{"83":{}}}],["transactions.pag",{"_index":437,"title":{},"content":{"148":{}}}],["transactions.th",{"_index":3009,"title":{},"content":{"652":{}}}],["transactionsaddress",{"_index":3372,"title":{},"content":{"745":{}}}],["transactionsummari",{"_index":83,"title":{"88":{}},"content":{"16":{},"17":{},"88":{},"164":{},"166":{},"177":{},"183":{},"187":{},"189":{}}}],["transactionsummary.address",{"_index":352,"title":{},"content":{"89":{}}}],["transactionsummary.fe",{"_index":353,"title":{},"content":{"89":{}}}],["transactionsummary.movementsaddress",{"_index":354,"title":{},"content":{"89":{}}}],["transactionsummary.timestamp",{"_index":355,"title":{},"content":{"89":{}}}],["transactionsummary.typ",{"_index":356,"title":{},"content":{"89":{}}}],["transactionsummary.validationstampchecksum",{"_index":357,"title":{},"content":{"89":{}}}],["transactiontyp",{"_index":422,"title":{"192":{}},"content":{"128":{},"129":{},"192":{}}}],["transfer",{"_index":142,"title":{"413":{},"556":{},"557":{},"627":{},"759":{},"772":{},"832":{},"834":{},"837":{},"843":{},"844":{}},"content":{"37":{},"40":{},"67":{},"70":{},"82":{},"85":{},"98":{},"209":{},"369":{},"370":{},"382":{},"404":{},"407":{},"413":{},"414":{},"417":{},"422":{},"425":{},"446":{},"546":{},"556":{},"557":{},"564":{},"604":{},"608":{},"621":{},"622":{},"693":{},"697":{},"725":{},"748":{},"749":{},"752":{},"756":{},"759":{},"779":{},"808":{},"809":{},"810":{},"811":{},"817":{},"819":{},"820":{},"826":{},"831":{},"832":{},"834":{},"835":{},"837":{},"842":{},"843":{},"844":{},"856":{},"858":{},"864":{}}}],["transfered_amount",{"_index":1900,"title":{},"content":{"369":{}}}],["transform",{"_index":3407,"title":{},"content":{"751":{},"786":{}}}],["transient",{"_index":1360,"title":{},"content":{"275":{}}}],["transit",{"_index":2919,"title":{},"content":{"645":{}}}],["transmiss",{"_index":1789,"title":{},"content":{"349":{}}}],["transmit",{"_index":3042,"title":{},"content":{"662":{},"743":{}}}],["transpar",{"_index":1863,"title":{},"content":{"374":{},"376":{},"698":{},"796":{},"870":{},"895":{},"899":{},"908":{},"911":{}}}],["transport",{"_index":1176,"title":{},"content":{"258":{},"350":{},"351":{},"356":{}}}],["travers",{"_index":1829,"title":{},"content":{"359":{}}}],["tree",{"_index":1149,"title":{},"content":{"249":{},"309":{},"363":{},"393":{},"662":{}}}],["trend",{"_index":3410,"title":{},"content":{"751":{},"869":{},"926":{}}}],["tri",{"_index":2698,"title":{"790":{}},"content":{"549":{},"638":{},"792":{}}}],["trigger",{"_index":1193,"title":{"408":{},"410":{},"531":{},"532":{},"533":{},"534":{},"535":{},"536":{},"537":{},"540":{},"541":{},"542":{},"543":{},"544":{}},"content":{"261":{},"307":{},"342":{},"368":{},"372":{},"373":{},"374":{},"378":{},"379":{},"380":{},"384":{},"408":{},"409":{},"410":{},"419":{},"420":{},"455":{},"532":{},"533":{},"534":{},"535":{},"536":{},"537":{},"538":{},"540":{},"541":{},"542":{},"543":{},"544":{},"546":{},"547":{},"548":{},"550":{},"558":{},"941":{}}}],["trigger'",{"_index":1851,"title":{},"content":{"373":{}}}],["trigger_bi",{"_index":2113,"title":{},"content":{"380":{}}}],["triggered_bi",{"_index":1892,"title":{},"content":{"368":{},"369":{},"370":{},"371":{},"372":{},"381":{},"403":{},"408":{},"409":{},"410":{},"411":{},"413":{},"414":{},"420":{},"425":{},"427":{},"428":{},"532":{},"533":{},"534":{},"535":{},"536":{},"537":{},"538":{},"545":{},"548":{},"549":{},"560":{}}}],["triggers/act",{"_index":2213,"title":{"420":{}},"content":{}}],["trivial",{"_index":2769,"title":{},"content":{"593":{}}}],["troubleshoot",{"_index":2952,"title":{"657":{}},"content":{"829":{},"873":{}}}],["true",{"_index":6,"title":{},"content":{"2":{},"3":{},"7":{},"8":{},"155":{},"280":{},"291":{},"355":{},"371":{},"386":{},"388":{},"389":{},"404":{},"405":{},"408":{},"409":{},"410":{},"427":{},"428":{},"476":{},"479":{},"483":{},"484":{},"506":{},"515":{},"755":{},"797":{},"972":{}}}],["truli",{"_index":2981,"title":{},"content":{"650":{}}}],["trunc/1",{"_index":2545,"title":{"523":{}},"content":{}}],["truncat",{"_index":2041,"title":{},"content":{"390":{},"523":{}}}],["trust",{"_index":515,"title":{"676":{},"677":{},"678":{},"679":{}},"content":{"204":{},"334":{},"672":{},"677":{},"678":{},"679":{},"680":{},"688":{},"711":{},"785":{},"818":{},"901":{},"929":{}}}],["truth",{"_index":1058,"title":{},"content":{"255":{},"377":{}}}],["tui",{"_index":3671,"title":{},"content":{"840":{}}}],["tupl",{"_index":1108,"title":{},"content":{"239":{},"242":{},"466":{},"467":{}}}],["turn",{"_index":3779,"title":{},"content":{"887":{},"900":{}}}],["tutori",{"_index":3599,"title":{"807":{},"827":{},"858":{},"871":{}},"content":{"806":{},"856":{},"858":{}}}],["tutoriel",{"_index":2736,"title":{"595":{},"856":{}},"content":{"595":{},"596":{},"597":{},"598":{},"599":{},"600":{}}}],["tvl",{"_index":2907,"title":{"922":{}},"content":{"639":{},"891":{},"894":{},"901":{},"903":{}}}],["twenti",{"_index":1402,"title":{},"content":{"283":{}}}],["twice",{"_index":1946,"title":{},"content":{"371":{}}}],["twist",{"_index":2001,"title":{},"content":{"386":{}}}],["two",{"_index":495,"title":{},"content":{"204":{},"247":{},"316":{},"328":{},"349":{},"423":{},"427":{},"438":{},"449":{},"453":{},"538":{},"540":{},"542":{},"670":{},"678":{},"679":{},"712":{},"738":{},"801":{},"803":{},"861":{},"870":{},"888":{},"894":{},"898":{},"899":{},"907":{},"908":{},"914":{},"916":{},"918":{},"930":{},"934":{},"959":{},"961":{}}}],["tx",{"_index":2654,"title":{},"content":{"538":{},"993":{}}}],["tx_hash",{"_index":880,"title":{},"content":{"219":{}}}],["tx_type",{"_index":842,"title":{},"content":{"214":{}}}],["txhash",{"_index":839,"title":{},"content":{"214":{}}}],["txhashlen",{"_index":840,"title":{},"content":{"214":{}}}],["txnhash",{"_index":861,"title":{},"content":{"214":{}}}],["txt",{"_index":3546,"title":{},"content":{"801":{},"802":{}}}],["ty",{"_index":3092,"title":{},"content":{"678":{}}}],["type",{"_index":55,"title":{"107":{},"116":{},"119":{},"122":{},"125":{},"127":{},"130":{},"132":{},"134":{},"137":{},"140":{},"143":{},"146":{},"149":{},"152":{},"154":{},"195":{},"200":{},"203":{},"228":{},"229":{},"333":{},"386":{},"551":{},"694":{},"760":{}},"content":{"9":{},"12":{},"16":{},"22":{},"25":{},"28":{},"31":{},"34":{},"37":{},"40":{},"43":{},"46":{},"49":{},"52":{},"55":{},"58":{},"61":{},"64":{},"67":{},"70":{},"73":{},"76":{},"79":{},"82":{},"85":{},"88":{},"91":{},"95":{},"98":{},"101":{},"108":{},"111":{},"119":{},"122":{},"128":{},"137":{},"146":{},"155":{},"157":{},"159":{},"161":{},"163":{},"165":{},"167":{},"169":{},"171":{},"173":{},"175":{},"186":{},"188":{},"192":{},"196":{},"204":{},"212":{},"213":{},"227":{},"232":{},"233":{},"267":{},"315":{},"317":{},"331":{},"334":{},"336":{},"381":{},"382":{},"393":{},"396":{},"400":{},"403":{},"404":{},"407":{},"413":{},"414":{},"420":{},"421":{},"422":{},"425":{},"446":{},"495":{},"537":{},"544":{},"551":{},"553":{},"618":{},"670":{},"695":{},"697":{},"754":{},"755":{},"756":{},"757":{},"758":{},"759":{},"760":{},"779":{},"801":{},"802":{},"832":{},"842":{},"843":{},"846":{},"847":{},"852":{},"864":{},"887":{},"914":{},"924":{},"972":{},"993":{},"1000":{}}}],["typic",{"_index":3712,"title":{},"content":{"862":{}}}],["typo",{"_index":2749,"title":{},"content":{"591":{},"593":{}}}],["uco",{"_index":64,"title":{"238":{},"556":{},"577":{},"610":{},"614":{},"636":{},"643":{},"645":{},"647":{},"649":{},"782":{},"843":{},"905":{}},"content":{"12":{},"22":{},"34":{},"49":{},"67":{},"85":{},"101":{},"107":{},"122":{},"204":{},"205":{},"209":{},"212":{},"223":{},"238":{},"259":{},"343":{},"346":{},"347":{},"369":{},"370":{},"381":{},"382":{},"404":{},"407":{},"409":{},"411":{},"414":{},"422":{},"425":{},"438":{},"439":{},"449":{},"451":{},"556":{},"564":{},"566":{},"574":{},"575":{},"576":{},"577":{},"578":{},"608":{},"614":{},"636":{},"645":{},"647":{},"649":{},"692":{},"693":{},"697":{},"706":{},"752":{},"764":{},"765":{},"770":{},"779":{},"782":{},"788":{},"815":{},"826":{},"842":{},"843":{},"851":{},"856":{},"858":{},"878":{},"883":{},"887":{},"888":{},"894":{},"898":{},"905":{},"907":{},"933":{},"939":{},"944":{},"945":{},"947":{},"952":{}}}],["uco'",{"_index":3208,"title":{},"content":{"692":{},"693":{}}}],["uco.archethic.net",{"_index":2925,"title":{},"content":{"646":{}}}],["uco.aud",{"_index":2442,"title":{},"content":{"476":{}}}],["uco.usd",{"_index":2123,"title":{},"content":{"381":{},"476":{}}}],["uco/token",{"_index":340,"title":{},"content":{"82":{}}}],["uco/token/cal",{"_index":329,"title":{},"content":{"91":{},"146":{}}}],["uco_amount",{"_index":1917,"title":{},"content":{"369":{}}}],["uco_bal",{"_index":2295,"title":{},"content":{"438":{}}}],["uco_mov",{"_index":2126,"title":{},"content":{"382":{}}}],["uco_transf",{"_index":2132,"title":{},"content":{"382":{},"404":{},"405":{},"407":{},"409":{},"413":{},"414":{},"421":{},"422":{},"434":{},"436":{},"449":{},"772":{}}}],["ucodata",{"_index":226,"title":{"95":{}},"content":{"49":{},"50":{},"95":{},"162":{}}}],["ucodata.eur",{"_index":360,"title":{},"content":{"96":{}}}],["ucodata.usd",{"_index":361,"title":{},"content":{"96":{}}}],["ucoledg",{"_index":178,"title":{"85":{}},"content":{"34":{},"35":{},"85":{},"100":{}}}],["ucoledger.transf",{"_index":363,"title":{},"content":{"86":{}}}],["ucotransf",{"_index":362,"title":{"98":{}},"content":{"85":{},"86":{},"98":{},"166":{},"177":{}}}],["ucotransfer.amount",{"_index":364,"title":{},"content":{"99":{}}}],["ucotransfer.to",{"_index":365,"title":{},"content":{"99":{}}}],["ui",{"_index":1594,"title":{},"content":{"315":{},"320":{},"949":{}}}],["uint16_t",{"_index":633,"title":{},"content":{"211":{},"212":{},"213":{},"214":{}}}],["uint32_t",{"_index":705,"title":{},"content":{"212":{},"213":{},"214":{}}}],["uint8_t",{"_index":630,"title":{},"content":{"211":{},"212":{},"213":{},"214":{}}}],["ultrason",{"_index":3351,"title":{},"content":{"728":{}}}],["ultrasound",{"_index":3331,"title":{},"content":{"728":{}}}],["unambigu",{"_index":1885,"title":{},"content":{"377":{}}}],["unauthor",{"_index":3141,"title":{},"content":{"683":{},"727":{},"958":{}}}],["unavoid",{"_index":1057,"title":{},"content":{"255":{}}}],["uncompress",{"_index":728,"title":{},"content":{"212":{},"267":{},"268":{},"277":{}}}],["uncompromis",{"_index":3012,"title":{},"content":{"659":{}}}],["under",{"_index":1251,"title":{},"content":{"269":{},"323":{},"331":{},"362":{},"630":{},"679":{},"690":{},"794":{},"819":{},"821":{},"866":{},"871":{}}}],["underli",{"_index":1793,"title":{},"content":{"350":{}}}],["understand",{"_index":1875,"title":{"875":{},"877":{}},"content":{"376":{},"382":{},"655":{},"735":{},"753":{},"756":{},"797":{},"806":{},"877":{},"894":{},"895":{},"899":{},"908":{},"910":{},"911":{},"923":{},"937":{}}}],["unfalsifi",{"_index":3285,"title":{},"content":{"724":{}}}],["unhid",{"_index":3982,"title":{},"content":{"952":{}}}],["unicast",{"_index":3261,"title":{},"content":{"715":{}}}],["unifi",{"_index":3413,"title":{},"content":{"753":{},"959":{}}}],["uniformli",{"_index":2918,"title":{},"content":{"645":{}}}],["uninstal",{"_index":2964,"title":{},"content":{"658":{}}}],["union",{"_index":4052,"title":{},"content":{"1000":{}}}],["uniq/1",{"_index":2504,"title":{"491":{}},"content":{}}],["uniqu",{"_index":256,"title":{},"content":{"64":{},"137":{},"239":{},"242":{},"269":{},"270":{},"314":{},"400":{},"608":{},"678":{},"686":{},"690":{},"697":{},"699":{},"727":{},"865":{},"877":{},"881":{},"887":{},"898":{},"900":{},"905":{},"932":{}}}],["unique.ecc",{"_index":1329,"title":{},"content":{"269":{}}}],["uniri",{"_index":1205,"title":{},"content":{"265":{},"278":{},"680":{}}}],["uniswap",{"_index":3731,"title":{},"content":{"869":{},"870":{},"934":{}}}],["unit",{"_index":1682,"title":{},"content":{"322":{},"877":{}}}],["unitari",{"_index":278,"title":{},"content":{"73":{},"125":{},"130":{},"140":{},"143":{},"149":{},"727":{}}}],["univers",{"_index":2909,"title":{},"content":{"645":{},"651":{},"652":{},"724":{}}}],["unix",{"_index":473,"title":{},"content":{"188":{},"368":{},"534":{}}}],["unknown",{"_index":1935,"title":{},"content":{"371":{}}}],["unless",{"_index":2159,"title":{},"content":{"406":{},"415":{},"651":{},"891":{}}}],["unlik",{"_index":2088,"title":{},"content":{"398":{},"864":{},"949":{}}}],["unlimit",{"_index":1805,"title":{"688":{}},"content":{"351":{},"711":{},"730":{},"751":{}}}],["unlock",{"_index":3635,"title":{"884":{}},"content":{"820":{},"883":{},"884":{},"890":{},"891":{}}}],["unmatch",{"_index":3944,"title":{},"content":{"949":{}}}],["unnecessari",{"_index":3254,"title":{},"content":{"713":{}}}],["unpredict",{"_index":3020,"title":{},"content":{"660":{},"661":{},"672":{}}}],["unpubl",{"_index":3594,"title":{"799":{}},"content":{}}],["unpublish",{"_index":3595,"title":{"811":{}},"content":{"799":{},"811":{}}}],["unsign",{"_index":636,"title":{},"content":{"211":{},"212":{},"213":{},"214":{}}}],["unspent",{"_index":182,"title":{},"content":{"37":{},"101":{},"120":{},"122":{},"238":{},"241":{},"363":{},"364":{},"512":{},"560":{},"564":{},"662":{},"697":{},"778":{},"779":{}}}],["unspentoutput",{"_index":187,"title":{"101":{}},"content":{"37":{},"38":{},"101":{},"120":{},"122":{},"166":{},"177":{},"185":{},"187":{},"189":{}}}],["unspentoutput.amount",{"_index":366,"title":{},"content":{"102":{}}}],["unspentoutput.from",{"_index":367,"title":{},"content":{"102":{}}}],["unspentoutput.st",{"_index":368,"title":{},"content":{"102":{}}}],["unspentoutput.timestamp",{"_index":369,"title":{},"content":{"102":{}}}],["unspentoutput.tokenaddress",{"_index":370,"title":{},"content":{"102":{}}}],["unspentoutput.tokenid",{"_index":371,"title":{},"content":{"102":{}}}],["unspentoutput.typ",{"_index":372,"title":{},"content":{"102":{}}}],["unsupport",{"_index":2883,"title":{},"content":{"637":{}}}],["until",{"_index":1485,"title":{},"content":{"309":{},"593":{},"618":{},"661":{},"665":{},"739":{},"778":{},"795":{},"797":{},"817":{},"883":{},"890":{},"891":{},"944":{}}}],["up",{"_index":1670,"title":{"883":{}},"content":{"321":{},"351":{},"355":{},"595":{},"596":{},"597":{},"598":{},"599":{},"600":{},"645":{},"682":{},"687":{},"746":{},"839":{},"843":{},"883":{},"884":{},"890":{},"891":{}}}],["updat",{"_index":1190,"title":{"709":{},"798":{},"809":{},"810":{}},"content":{"261":{},"267":{},"271":{},"310":{},"312":{},"340":{},"373":{},"375":{},"377":{},"393":{},"541":{},"545":{},"631":{},"645":{},"672":{},"690":{},"696":{},"701":{},"703":{},"705":{},"778":{},"798":{},"809":{},"810":{},"811":{},"820":{},"826":{},"827":{},"876":{},"905":{}}}],["update_contract",{"_index":2084,"title":{},"content":{"397":{}}}],["updatehandlesindex",{"_index":1341,"title":{"271":{}},"content":{}}],["upgrad",{"_index":1644,"title":{},"content":{"320":{},"321":{},"322":{},"339":{},"537":{},"674":{},"702":{},"796":{}}}],["upload",{"_index":2792,"title":{},"content":{"604":{},"814":{},"826":{}}}],["upon",{"_index":715,"title":{},"content":{"212":{},"819":{},"828":{},"838":{},"872":{},"895":{},"899":{},"908":{},"911":{},"927":{}}}],["uppercas",{"_index":2613,"title":{},"content":{"518":{},"519":{}}}],["uptim",{"_index":3469,"title":{},"content":{"763":{}}}],["upto",{"_index":826,"title":{},"content":{"214":{}}}],["url",{"_index":2418,"title":{},"content":{"472":{},"473":{},"798":{},"800":{},"821":{},"842":{},"849":{},"866":{},"959":{},"962":{},"964":{}}}],["us",{"_index":454,"title":{"554":{},"555":{},"605":{},"624":{},"641":{},"857":{}},"content":{"163":{},"186":{},"196":{},"204":{},"207":{},"208":{},"212":{},"220":{},"221":{},"223":{},"224":{},"225":{},"233":{},"234":{},"237":{},"251":{},"252":{},"254":{},"255":{},"256":{},"260":{},"263":{},"264":{},"269":{},"273":{},"276":{},"277":{},"280":{},"281":{},"283":{},"284":{},"285":{},"286":{},"288":{},"289":{},"291":{},"299":{},"300":{},"301":{},"303":{},"305":{},"307":{},"309":{},"310":{},"311":{},"312":{},"314":{},"315":{},"320":{},"330":{},"343":{},"346":{},"349":{},"351":{},"352":{},"354":{},"355":{},"361":{},"366":{},"374":{},"377":{},"380":{},"381":{},"382":{},"384":{},"385":{},"386":{},"387":{},"388":{},"395":{},"397":{},"398":{},"399":{},"400":{},"403":{},"404":{},"409":{},"410":{},"422":{},"423":{},"438":{},"442":{},"443":{},"447":{},"451":{},"455":{},"459":{},"462":{},"472":{},"486":{},"490":{},"501":{},"509":{},"530":{},"532":{},"533":{},"536":{},"540":{},"541":{},"545":{},"546":{},"547":{},"548":{},"551":{},"553":{},"554":{},"555":{},"557":{},"559":{},"560":{},"593":{},"594":{},"595":{},"596":{},"597":{},"598":{},"599":{},"600":{},"604":{},"605":{},"610":{},"612":{},"614":{},"618":{},"621":{},"622":{},"631":{},"636":{},"645":{},"650":{},"652":{},"655":{},"658":{},"659":{},"665":{},"668":{},"669":{},"670":{},"671":{},"672":{},"675":{},"677":{},"678":{},"679":{},"680":{},"683":{},"685":{},"687":{},"689":{},"690":{},"692":{},"701":{},"702":{},"704":{},"705":{},"706":{},"707":{},"713":{},"715":{},"717":{},"719":{},"720":{},"722":{},"727":{},"728":{},"730":{},"731":{},"734":{},"740":{},"741":{},"742":{},"751":{},"760":{},"768":{},"770":{},"778":{},"779":{},"785":{},"792":{},"794":{},"795":{},"801":{},"804":{},"805":{},"806":{},"808":{},"809":{},"810":{},"811":{},"817":{},"821":{},"824":{},"825":{},"826":{},"827":{},"838":{},"839":{},"842":{},"843":{},"850":{},"854":{},"856":{},"865":{},"866":{},"870":{},"871":{},"894":{},"906":{},"910":{},"914":{},"925":{},"926":{},"930":{},"931":{},"937":{},"947":{},"949":{},"950":{},"951":{},"952":{},"958":{},"959":{},"962":{},"972":{},"984":{},"987":{},"993":{},"994":{},"996":{},"998":{},"1000":{}}}],["us2019044735",{"_index":3303,"title":{},"content":{"727":{}}}],["us2019089539",{"_index":3348,"title":{},"content":{"728":{}}}],["usag",{"_index":1276,"title":{"958":{}},"content":{"269":{},"374":{},"507":{},"650":{},"663":{},"680":{},"684":{},"794":{},"937":{}}}],["usage/usage_overview",{"_index":3874,"title":{},"content":{"937":{}}}],["usb",{"_index":3054,"title":{},"content":{"672":{},"675":{},"683":{},"951":{}}}],["usd",{"_index":359,"title":{},"content":{"95":{},"411":{}}}],["usd/eur",{"_index":1775,"title":{},"content":{"346":{},"706":{}}}],["useless",{"_index":1768,"title":{},"content":{"342":{}}}],["user",{"_index":524,"title":{"648":{}},"content":{"204":{},"205":{},"209":{},"212":{},"214":{},"220":{},"269":{},"320":{},"369":{},"374":{},"387":{},"400":{},"472":{},"545":{},"552":{},"621":{},"638":{},"645":{},"672":{},"698":{},"724":{},"727":{},"734":{},"751":{},"753":{},"783":{},"789":{},"791":{},"793":{},"796":{},"798":{},"819":{},"820":{},"839":{},"840":{},"860":{},"861":{},"862":{},"863":{},"864":{},"865":{},"869":{},"870":{},"887":{},"890":{},"891":{},"901":{},"902":{},"903":{},"905":{},"910":{},"914":{},"915":{},"916":{},"917":{},"918":{},"920":{},"923":{},"926":{},"927":{},"937":{},"946":{},"949":{},"952":{},"958":{},"959":{},"960":{}}}],["user'",{"_index":1859,"title":{},"content":{"374":{},"814":{},"820":{},"951":{}}}],["user/blockchain",{"_index":547,"title":{},"content":{"204":{}}}],["users/{user}/library/containers/{yourappname}/data/docu",{"_index":2978,"title":{},"content":{"658":{}}}],["user’",{"_index":4008,"title":{},"content":{"958":{},"960":{},"998":{}}}],["usual",{"_index":2135,"title":{},"content":{"382":{},"437":{},"447":{},"552":{},"685":{},"789":{},"950":{}}}],["utc",{"_index":1766,"title":{},"content":{"342":{},"535":{}}}],["utf",{"_index":465,"title":{},"content":{"186":{}}}],["util",{"_index":2224,"title":{"424":{}},"content":{"423":{},"605":{},"608":{},"863":{},"903":{},"925":{},"927":{},"931":{},"932":{}}}],["utilis",{"_index":3950,"title":{},"content":{"949":{}}}],["utxo",{"_index":109,"title":{},"content":{"22":{},"101":{},"122":{},"237":{},"238":{},"239":{},"240":{},"241":{},"242":{},"243":{},"244":{},"373":{},"374":{},"375":{},"377":{},"382":{},"512":{},"560":{},"697":{},"731":{},"752":{},"756":{},"778":{}}}],["v",{"_index":2394,"title":{},"content":{"463":{}}}],["v1",{"_index":2921,"title":{"646":{},"647":{}},"content":{"647":{},"748":{}}}],["v1.5.0",{"_index":2094,"title":{},"content":{"400":{}}}],["v14.0",{"_index":597,"title":{},"content":{"206":{}}}],["v2",{"_index":2922,"title":{"646":{},"647":{}},"content":{"647":{},"869":{},"870":{},"934":{}}}],["valid",{"_index":131,"title":{"324":{},"325":{},"331":{},"554":{},"716":{},"731":{},"781":{},"895":{},"899":{},"908":{},"911":{}},"content":{"25":{},"76":{},"108":{},"200":{},"246":{},"248":{},"261":{},"264":{},"304":{},"305":{},"315":{},"320":{},"321":{},"322":{},"323":{},"324":{},"327":{},"328":{},"331":{},"332":{},"339":{},"345":{},"362":{},"363":{},"364":{},"373":{},"374":{},"377":{},"382":{},"402":{},"403":{},"405":{},"428":{},"472":{},"479":{},"527":{},"554":{},"558":{},"652":{},"659":{},"660":{},"661":{},"662":{},"672":{},"687":{},"692":{},"693":{},"697":{},"702":{},"705":{},"710":{},"711":{},"716":{},"717":{},"727":{},"730":{},"731":{},"732":{},"733":{},"741":{},"743":{},"745":{},"747":{},"748":{},"749":{},"750":{},"756":{},"777":{},"778":{},"779":{},"787":{},"794":{},"797":{},"804":{},"805":{},"826":{},"834":{},"838":{},"843":{},"894":{},"895":{},"898":{},"899":{},"907":{},"908":{},"910":{},"911":{}}}],["valid_secret",{"_index":2190,"title":{},"content":{"409":{}}}],["valid_tim",{"_index":2191,"title":{},"content":{"409":{}}}],["validat",{"_index":1773,"title":{},"content":{"345":{}}}],["validation/repl",{"_index":3262,"title":{},"content":{"715":{}}}],["validationstamp",{"_index":192,"title":{"108":{}},"content":{"39":{},"73":{},"74":{},"108":{},"164":{},"166":{},"168":{},"174":{},"189":{},"197":{}}}],["validationstamp.ledgeroper",{"_index":384,"title":{},"content":{"109":{}}}],["validationstamp.proofofintegr",{"_index":385,"title":{},"content":{"109":{}}}],["validationstamp.proofofwork",{"_index":386,"title":{},"content":{"109":{}}}],["validationstamp.protocolvers",{"_index":387,"title":{},"content":{"109":{}}}],["validationstamp.signatur",{"_index":388,"title":{},"content":{"109":{}}}],["validationstamp.timestamp",{"_index":389,"title":{},"content":{"109":{}}}],["validationstampchecksum",{"_index":350,"title":{},"content":{"88":{}}}],["validit",{"_index":3070,"title":{},"content":{"669":{}}}],["valu",{"_index":24,"title":{"5":{},"20":{},"922":{}},"content":{"19":{},"114":{},"150":{},"161":{},"165":{},"212":{},"268":{},"269":{},"271":{},"274":{},"305":{},"307":{},"311":{},"312":{},"314":{},"316":{},"319":{},"342":{},"380":{},"381":{},"386":{},"387":{},"389":{},"393":{},"395":{},"403":{},"404":{},"405":{},"406":{},"417":{},"424":{},"438":{},"442":{},"443":{},"445":{},"453":{},"476":{},"478":{},"490":{},"493":{},"495":{},"497":{},"498":{},"499":{},"500":{},"501":{},"502":{},"503":{},"510":{},"511":{},"527":{},"547":{},"549":{},"554":{},"555":{},"560":{},"638":{},"692":{},"727":{},"756":{},"801":{},"841":{},"845":{},"861":{},"870":{},"876":{},"877":{},"882":{},"891":{},"894":{},"901":{},"903":{},"916":{},"918":{},"922":{},"934":{},"952":{}}}],["valuat",{"_index":3734,"title":{},"content":{"869":{}}}],["value2",{"_index":2520,"title":{},"content":{"497":{},"498":{},"499":{},"500":{},"501":{},"502":{},"503":{}}}],["value3",{"_index":2529,"title":{},"content":{"500":{}}}],["values/1",{"_index":2535,"title":{"502":{}},"content":{}}],["valuex",{"_index":2528,"title":{},"content":{"500":{}}}],["vancouver'",{"_index":2195,"title":{},"content":{"411":{}}}],["vari",{"_index":3655,"title":{},"content":{"834":{}}}],["variabl",{"_index":957,"title":{"266":{},"379":{},"393":{},"422":{}},"content":{"224":{},"266":{},"279":{},"342":{},"379":{},"380":{},"393":{},"406":{},"408":{},"410":{},"422":{},"498":{},"532":{},"533":{},"536":{},"876":{}}}],["variat",{"_index":3825,"title":{},"content":{"894":{},"907":{}}}],["varieti",{"_index":3797,"title":{},"content":{"891":{},"903":{}}}],["variou",{"_index":614,"title":{},"content":{"209":{},"608":{},"611":{},"614":{},"636":{},"702":{},"830":{},"860":{},"865":{},"874":{},"925":{},"926":{},"949":{}}}],["vector",{"_index":3735,"title":{},"content":{"869":{}}}],["venou",{"_index":3336,"title":{},"content":{"728":{}}}],["veri",{"_index":1804,"title":{},"content":{"351":{},"395":{},"410":{},"417":{},"542":{},"553":{},"638":{},"652":{},"678":{},"891":{}}}],["verif",{"_index":1152,"title":{"332":{},"333":{},"334":{},"335":{},"336":{},"337":{},"338":{},"339":{},"340":{},"619":{},"818":{}},"content":{"250":{},"331":{},"374":{},"376":{},"608":{},"619":{},"621":{},"672":{},"680":{},"728":{},"819":{},"895":{},"899":{},"901":{},"908":{},"911":{}}}],["verifi",{"_index":559,"title":{},"content":{"204":{},"281":{},"300":{},"301":{},"302":{},"303":{},"328":{},"330":{},"332":{},"345":{},"346":{},"373":{},"376":{},"377":{},"424":{},"619":{},"621":{},"631":{},"655":{},"658":{},"661":{},"662":{},"684":{},"702":{},"708":{},"803":{},"894":{},"895":{},"899":{},"901":{},"907":{},"908":{},"910":{},"911":{},"951":{}}}],["verifypinyk",{"_index":1388,"title":{"281":{}},"content":{"300":{}}}],["version",{"_index":88,"title":{"111":{},"153":{},"211":{},"385":{}},"content":{"16":{},"22":{},"73":{},"108":{},"111":{},"113":{},"153":{},"154":{},"187":{},"206":{},"211":{},"227":{},"233":{},"314":{},"320":{},"321":{},"368":{},"369":{},"370":{},"371":{},"372":{},"384":{},"385":{},"402":{},"427":{},"428":{},"532":{},"533":{},"534":{},"535":{},"536":{},"537":{},"538":{},"545":{},"548":{},"549":{},"560":{},"604":{},"631":{},"635":{},"645":{},"655":{},"658":{},"667":{},"668":{},"669":{},"690":{},"701":{},"702":{},"759":{},"799":{},"801":{},"808":{},"809":{},"810":{},"811":{},"812":{},"827":{},"871":{},"952":{},"972":{},"993":{}}}],["version.cod",{"_index":390,"title":{},"content":{"112":{}}}],["version.protocol",{"_index":391,"title":{},"content":{"112":{}}}],["version.transact",{"_index":392,"title":{},"content":{"112":{}}}],["versionedhash",{"_index":382,"title":{"196":{}},"content":{"108":{},"109":{},"196":{}}}],["veto",{"_index":3200,"title":{},"content":{"690":{},"701":{}}}],["via",{"_index":1054,"title":{},"content":{"255":{},"398":{},"468":{},"472":{},"504":{},"505":{},"507":{},"546":{},"548":{},"549":{},"630":{},"637":{},"656":{},"701":{},"759":{},"808":{},"826":{},"897":{},"951":{},"952":{},"953":{},"959":{}}}],["vibrant",{"_index":3195,"title":{},"content":{"690":{},"924":{}}}],["vibrat",{"_index":3987,"title":{},"content":{"952":{}}}],["video",{"_index":3569,"title":{},"content":{"796":{}}}],["view",{"_index":1115,"title":{"355":{},"901":{},"902":{},"958":{},"959":{}},"content":{"244":{},"245":{},"310":{},"312":{},"319":{},"352":{},"355":{},"363":{},"377":{},"546":{},"716":{},"812":{},"830":{},"835":{},"886":{},"887":{},"900":{},"901":{},"902":{}}}],["view:avail",{"_index":3375,"title":{},"content":{"745":{}}}],["virtual",{"_index":2403,"title":{},"content":{"465":{},"611":{},"613":{},"788":{},"949":{}}}],["visibl",{"_index":2949,"title":{},"content":{"656":{},"728":{}}}],["vision",{"_index":3011,"title":{},"content":{"652":{},"690":{},"718":{}}}],["visit",{"_index":2960,"title":{},"content":{"658":{},"791":{},"797":{},"855":{}}}],["visual",{"_index":2783,"title":{},"content":{"594":{},"887":{},"900":{}}}],["visualis",{"_index":1651,"title":{},"content":{"320":{}}}],["vital",{"_index":3352,"title":{},"content":{"728":{},"894":{},"907":{},"910":{}}}],["vm",{"_index":1031,"title":{},"content":{"255":{}}}],["void",{"_index":1214,"title":{"267":{},"268":{},"269":{}},"content":{}}],["volatil",{"_index":635,"title":{},"content":{"211":{},"212":{},"213":{},"214":{}}}],["volum",{"_index":3814,"title":{},"content":{"901":{},"904":{}}}],["vote",{"_index":1746,"title":{"371":{}},"content":{"340":{},"371":{},"690":{},"691":{},"701":{},"727":{}}}],["vote(candid",{"_index":1932,"title":{},"content":{"371":{},"409":{}}}],["vote(firstnam",{"_index":2114,"title":{},"content":{"380":{}}}],["vote_for_class_president(firstnam",{"_index":2630,"title":{},"content":{"533":{}}}],["voter",{"_index":1931,"title":{},"content":{"371":{},"672":{}}}],["voter_genesis_address",{"_index":1938,"title":{},"content":{"371":{}}}],["voters_genesis_address",{"_index":1936,"title":{},"content":{"371":{}}}],["vp",{"_index":3505,"title":{},"content":{"788":{}}}],["vs",{"_index":2107,"title":{},"content":{"380":{},"789":{}}}],["vscode",{"_index":4006,"title":{},"content":{"956":{}}}],["w+),(\\\\d",{"_index":2580,"title":{},"content":{"507":{}}}],["w3c",{"_index":3129,"title":{},"content":{"674":{},"684":{}}}],["w_{e",{"_index":919,"title":{},"content":{"221":{},"225":{}}}],["w_{key",{"_index":696,"title":{},"content":{"212":{}}}],["wafer",{"_index":3095,"title":{},"content":{"678":{}}}],["wait",{"_index":1674,"title":{},"content":{"321":{},"342":{},"627":{},"655":{},"747":{},"826":{},"834":{},"838":{},"891":{}}}],["wallet",{"_index":484,"title":{"220":{},"227":{},"234":{},"586":{},"587":{},"588":{},"600":{},"613":{},"623":{},"624":{},"625":{},"631":{},"640":{},"641":{},"642":{},"655":{},"656":{},"658":{},"946":{}},"content":{"204":{},"205":{},"206":{},"209":{},"213":{},"214":{},"220":{},"221":{},"225":{},"226":{},"230":{},"232":{},"234":{},"235":{},"236":{},"259":{},"361":{},"546":{},"586":{},"587":{},"588":{},"595":{},"596":{},"597":{},"598":{},"599":{},"600":{},"605":{},"613":{},"621":{},"624":{},"625":{},"627":{},"631":{},"641":{},"642":{},"655":{},"656":{},"658":{},"670":{},"675":{},"681":{},"682":{},"683":{},"685":{},"696":{},"759":{},"770":{},"808":{},"809":{},"810":{},"811":{},"813":{},"814":{},"819":{},"820":{},"826":{},"827":{},"831":{},"832":{},"834":{},"838":{},"839":{},"856":{},"858":{},"864":{},"870":{},"871":{},"890":{},"893":{},"894":{},"895":{},"898":{},"899":{},"907":{},"908":{},"910":{},"911":{},"927":{},"939":{},"946":{},"947":{},"948":{},"949":{},"950":{},"952":{},"957":{},"958":{},"959":{},"960":{},"965":{},"998":{}}}],["wallet'",{"_index":2794,"title":{"605":{}},"content":{"605":{},"658":{}}}],["wallet_iv",{"_index":977,"title":{},"content":{"225":{}}}],["wallet_len",{"_index":807,"title":{},"content":{"213":{},"214":{}}}],["walletlen",{"_index":868,"title":{},"content":{"214":{}}}],["walletprivatekey",{"_index":722,"title":{},"content":{"212":{}}}],["wallet’",{"_index":4015,"title":{},"content":{"959":{}}}],["want",{"_index":898,"title":{},"content":{"235":{},"255":{},"309":{},"315":{},"316":{},"351":{},"375":{},"382":{},"540":{},"546":{},"631":{},"655":{},"670":{},"675":{},"685":{},"693":{},"746":{},"748":{},"787":{},"808":{},"813":{},"826":{},"845":{},"846":{},"847":{},"849":{},"891":{},"998":{}}}],["warn",{"_index":1693,"title":{},"content":{"322":{},"803":{},"894":{},"952":{}}}],["wast",{"_index":3922,"title":{},"content":{"945":{}}}],["way",{"_index":485,"title":{"715":{}},"content":{"204":{},"220":{},"223":{},"314":{},"315":{},"320":{},"328":{},"329":{},"343":{},"344":{},"346":{},"350":{},"364":{},"374":{},"380":{},"395":{},"403":{},"624":{},"641":{},"645":{},"652":{},"659":{},"665":{},"670":{},"674":{},"675":{},"678":{},"685":{},"692":{},"702":{},"710":{},"717":{},"727":{},"741":{},"759":{},"782":{},"789":{},"794":{},"815":{},"887":{},"900":{},"951":{},"952":{},"958":{}}}],["we'll",{"_index":2652,"title":{},"content":{"538":{},"542":{},"550":{}}}],["weaken",{"_index":3284,"title":{},"content":{"724":{}}}],["weather",{"_index":2196,"title":{},"content":{"411":{}}}],["web",{"_index":499,"title":{"596":{},"637":{},"784":{}},"content":{"204":{},"255":{},"354":{},"366":{},"563":{},"595":{},"596":{},"597":{},"598":{},"599":{},"600":{},"785":{},"787":{},"789":{},"793":{},"794":{},"795":{},"797":{},"806":{},"827":{},"871":{},"949":{},"951":{},"959":{}}}],["web3",{"_index":3493,"title":{},"content":{"785":{},"788":{}}}],["webapp",{"_index":3511,"title":{},"content":{"789":{}}}],["webauthn",{"_index":3131,"title":{},"content":{"674":{},"684":{}}}],["webhost",{"_index":3527,"title":{},"content":{"791":{}}}],["webpag",{"_index":3562,"title":{},"content":{"805":{}}}],["websit",{"_index":2784,"title":{"603":{},"798":{},"799":{}},"content":{"604":{},"605":{},"637":{},"655":{},"658":{},"684":{},"784":{},"786":{},"787":{},"788":{},"789":{},"791":{},"792":{},"793":{},"794":{},"795":{},"796":{},"797":{},"798":{},"799":{},"800":{},"801":{},"802":{},"803":{},"805":{},"808":{},"812":{},"824":{},"826":{}}}],["website'",{"_index":3538,"title":{},"content":{"800":{}}}],["websocket",{"_index":4012,"title":{},"content":{"959":{}}}],["week",{"_index":2637,"title":{},"content":{"535":{},"882":{}}}],["weight",{"_index":3748,"title":{"940":{}},"content":{"878":{},"881":{},"887":{},"940":{}}}],["weightofthislevel",{"_index":3905,"title":{},"content":{"943":{}}}],["welcom",{"_index":479,"title":{"828":{},"857":{},"872":{}},"content":{"198":{},"591":{},"662":{},"747":{},"748":{},"749":{},"797":{},"828":{},"855":{},"856":{},"863":{},"872":{}}}],["well",{"_index":1006,"title":{},"content":{"232":{},"279":{},"315":{},"317":{},"319":{},"330":{},"395":{},"399":{},"683":{},"689":{},"697":{},"741":{},"744":{},"800":{},"888":{},"894":{},"949":{}}}],["weth",{"_index":3685,"title":{},"content":{"856":{},"858":{}}}],["we’v",{"_index":3751,"title":{},"content":{"878":{},"905":{}}}],["what'",{"_index":2706,"title":{},"content":{"551":{}}}],["wheel",{"_index":3320,"title":{},"content":{"727":{},"894":{},"907":{}}}],["whenev",{"_index":2025,"title":{},"content":{"387":{}}}],["wherea",{"_index":2134,"title":{},"content":{"382":{}}}],["whether",{"_index":1376,"title":{},"content":{"277":{},"479":{},"483":{},"484":{},"506":{},"515":{},"808":{},"951":{},"952":{}}}],["whichev",{"_index":2142,"title":{},"content":{"403":{}}}],["white",{"_index":2955,"title":{"658":{}},"content":{}}],["whole",{"_index":456,"title":{},"content":{"165":{}}}],["whose",{"_index":884,"title":{},"content":{"219":{},"690":{},"698":{},"952":{}}}],["wide",{"_index":1042,"title":{},"content":{"255":{},"312":{},"313":{},"316":{},"789":{},"865":{}}}],["wider",{"_index":3846,"title":{},"content":{"925":{},"926":{}}}],["widget",{"_index":3946,"title":{},"content":{"949":{}}}],["will",{"_index":3039,"title":{},"content":{"662":{},"894":{},"907":{}}}],["win",{"_index":3192,"title":{},"content":{"690":{}}}],["window",{"_index":2830,"title":{},"content":{"612":{},"658":{},"827":{},"871":{},"949":{},"959":{}}}],["wise",{"_index":4046,"title":{},"content":{"998":{}}}],["wish",{"_index":2944,"title":{},"content":{"656":{},"832":{},"855":{},"891":{},"903":{},"910":{}}}],["withdraw",{"_index":3645,"title":{},"content":{"827":{},"856":{},"858":{},"865":{},"883":{},"886":{},"890":{},"891":{},"909":{},"910":{},"917":{}}}],["withdraw(secret",{"_index":2189,"title":{},"content":{"409":{}}}],["withdrawn",{"_index":3772,"title":{},"content":{"884":{},"890":{}}}],["within",{"_index":1575,"title":{},"content":{"314":{},"315":{},"352":{},"377":{},"400":{},"414":{},"527":{},"608":{},"655":{},"677":{},"679":{},"702":{},"732":{},"737":{},"817":{},"820":{},"894":{},"898":{},"899":{},"902":{},"903":{},"908":{},"910":{},"921":{},"923":{},"925":{},"926":{},"957":{},"959":{}}}],["without",{"_index":1087,"title":{},"content":{"255":{},"315":{},"322":{},"359":{},"364":{},"373":{},"407":{},"491":{},"503":{},"509":{},"532":{},"542":{},"618":{},"652":{},"662":{},"674":{},"680":{},"682":{},"684":{},"687":{},"689":{},"727":{},"728":{},"729":{},"786":{},"803":{},"817":{},"820":{},"860":{},"864":{},"877":{},"890":{},"891":{},"925":{},"929":{},"957":{},"958":{},"998":{}}}],["wk_{ae",{"_index":920,"title":{},"content":{"221":{},"225":{}}}],["wo2017162930",{"_index":3349,"title":{},"content":{"728":{}}}],["wo2017162931",{"_index":3304,"title":{},"content":{"727":{}}}],["won't",{"_index":2953,"title":{"658":{}},"content":{"961":{}}}],["wonder",{"_index":3071,"title":{},"content":{"670":{},"689":{}}}],["word",{"_index":2854,"title":{},"content":{"624":{},"641":{},"655":{},"667":{},"683":{},"947":{},"950":{},"952":{}}}],["worflow",{"_index":1705,"title":{"326":{}},"content":{}}],["work",{"_index":375,"title":{"328":{},"619":{},"621":{},"672":{},"705":{},"795":{}},"content":{"108":{},"255":{},"315":{},"328":{},"330":{},"389":{},"394":{},"395":{},"399":{},"404":{},"656":{},"666":{},"672":{},"690":{},"692":{},"693":{},"697":{},"703":{},"774":{},"779":{},"786":{},"800":{},"806":{},"840":{},"994":{}}}],["workflow",{"_index":1702,"title":{"324":{},"662":{}},"content":{"323":{},"327":{},"331":{},"662":{}}}],["world",{"_index":1753,"title":{"368":{}},"content":{"343":{},"368":{},"397":{},"689":{},"702":{},"751":{}}}],["worldwid",{"_index":3173,"title":{},"content":{"687":{}}}],["worri",{"_index":2942,"title":{},"content":{"656":{},"803":{}}}],["worst",{"_index":3836,"title":{},"content":{"894":{}}}],["worth",{"_index":1908,"title":{},"content":{"369":{},"414":{},"959":{}}}],["wrap",{"_index":1564,"title":{},"content":{"307":{},"314":{},"352":{},"819":{},"820":{}}}],["write",{"_index":1076,"title":{"317":{},"539":{}},"content":{"255":{},"308":{},"309":{},"310":{},"311":{},"314":{},"315":{},"316":{},"317":{},"387":{},"472":{},"508":{},"511":{},"530":{},"539":{},"558":{},"560":{},"655":{},"659":{},"826":{},"998":{}}}],["writes/read",{"_index":1552,"title":{},"content":{"313":{}}}],["written",{"_index":532,"title":{},"content":{"204":{},"314":{},"317":{},"415":{},"546":{},"592":{},"705":{},"959":{},"998":{}}}],["wrong",{"_index":1062,"title":{"628":{}},"content":{"255":{}}}],["x",{"_index":729,"title":{},"content":{"212":{},"267":{},"269":{},"270":{},"277":{},"372":{},"388":{},"747":{},"870":{},"934":{}}}],["x509",{"_index":1408,"title":{},"content":{"283":{}}}],["x509_get0_pubkey_bitstr",{"_index":1409,"title":{},"content":{"283":{}}}],["x68\\x65\\x6c\\x6c\\x6f",{"_index":2029,"title":{},"content":{"388":{}}}],["xs",{"_index":1973,"title":{},"content":{"372":{}}}],["xxx",{"_index":3563,"title":{},"content":{"805":{}}}],["y",{"_index":731,"title":{},"content":{"212":{},"267":{},"269":{},"270":{},"277":{},"537":{},"870":{},"934":{}}}],["yarn",{"_index":601,"title":{},"content":{"207":{}}}],["ye",{"_index":1619,"title":{},"content":{"318":{},"616":{},"635":{},"826":{}}}],["year",{"_index":3281,"title":{},"content":{"724":{},"877":{},"878":{},"882":{},"883":{},"887":{},"901":{},"905":{},"939":{},"944":{}}}],["year=1",{"_index":3909,"title":{},"content":{"944":{}}}],["yellow",{"_index":3811,"title":{},"content":{"901":{}}}],["yes/no",{"_index":3621,"title":{},"content":{"826":{}}}],["yield",{"_index":2904,"title":{"923":{},"933":{}},"content":{"639":{},"862":{},"863":{},"865":{},"871":{},"877":{},"891":{},"913":{},"929":{},"933":{},"937":{}}}],["yk",{"_index":1443,"title":{},"content":{"291":{}}}],["ykcertif",{"_index":1456,"title":{},"content":{"296":{}}}],["ykindex",{"_index":1406,"title":{"288":{}},"content":{"283":{},"284":{},"285":{},"287":{},"288":{},"289":{},"291":{},"294":{},"298":{}}}],["ykpiv_algo_eccp256",{"_index":1433,"title":{},"content":{"288":{}}}],["ykpiv_attest",{"_index":1418,"title":{},"content":{"285":{}}}],["ykpiv_authent",{"_index":1396,"title":{},"content":{"282":{}}}],["ykpiv_decipher_data",{"_index":1436,"title":{},"content":{"289":{}}}],["ykpiv_fetch_object",{"_index":1426,"title":{},"content":{"286":{}}}],["ykpiv_obj_histori",{"_index":1430,"title":{},"content":{"287":{}}}],["ykpiv_obj_key_histori",{"_index":1422,"title":{},"content":{"286":{},"290":{}}}],["ykpiv_save_object",{"_index":1420,"title":{},"content":{"285":{}}}],["ykpiv_sign_data",{"_index":1432,"title":{},"content":{"288":{}}}],["ykpiv_util_generate_key",{"_index":1413,"title":{},"content":{"284":{}}}],["ykpiv_verifi",{"_index":1390,"title":{},"content":{"281":{}}}],["you'd",{"_index":3636,"title":{},"content":{"821":{},"866":{},"871":{}}}],["you'll",{"_index":2141,"title":{},"content":{"382":{},"540":{},"546":{},"625":{},"642":{},"907":{}}}],["you'r",{"_index":2301,"title":{},"content":{"438":{},"439":{},"441":{},"442":{},"443":{},"805":{},"894":{},"903":{},"907":{},"910":{}}}],["you'v",{"_index":3826,"title":{},"content":{"894":{},"907":{},"910":{}}}],["your",{"_index":3189,"title":{},"content":{"689":{}}}],["yourself",{"_index":3648,"title":{},"content":{"827":{},"840":{},"871":{},"951":{}}}],["you’r",{"_index":3680,"title":{},"content":{"845":{},"848":{}}}],["you’v",{"_index":591,"title":{},"content":{"206":{}}}],["yubicloud",{"_index":3928,"title":{},"content":{"947":{},"951":{},"952":{}}}],["yubico",{"_index":1387,"title":{},"content":{"280":{},"679":{},"951":{}}}],["yubico’",{"_index":3973,"title":{},"content":{"951":{}}}],["yubikey",{"_index":1010,"title":{"278":{}},"content":{"232":{},"263":{},"278":{},"279":{},"280":{},"283":{},"286":{},"291":{},"300":{},"301":{},"302":{},"303":{},"655":{},"679":{},"680":{},"946":{},"951":{},"952":{}}}],["yubikey.c",{"_index":1381,"title":{},"content":{"278":{}}}],["yubikey.h",{"_index":1382,"title":{},"content":{"278":{}}}],["zero",{"_index":2461,"title":{},"content":{"481":{}}}],["zip",{"_index":3600,"title":{},"content":{"808":{}}}],["zone",{"_index":147,"title":{},"content":{"40":{},"972":{},"993":{}}}],["zpoint",{"_index":1380,"title":{},"content":{"277":{}}}]],"pipeline":["stemmer"]}} \ No newline at end of file