diff --git a/articleRedirects.js b/articleRedirects.js index 63e098568e3..813d2965e9d 100644 --- a/articleRedirects.js +++ b/articleRedirects.js @@ -414,35 +414,35 @@ exports.articleRedirects = [ }, { from: '/shimmer/learn/smart-contracts/smart-contracts-chains', - to: '/learn/smart-contracts/core_concepts/isc-architecture', + to: '/learn/smart-contracts/isc-architecture', }, { from: '/shimmer/learn/smart-contracts/smart-contracts-community-tutorials', - to: '/smart-contracts/overview', + to: '/learn/smart-contracts/introduction', }, { from: '/shimmer/learn/smart-contracts/smart-contracts-consensus', - to: '/learn/smart-contracts/core_concepts/smart-contracts', + to: '/learn/smart-contracts/introduction', }, { from: '/shimmer/learn/smart-contracts/smart-contracts-dapps', - to: '/smart-contracts/overview', + to: '/learn/smart-contracts/introduction', }, { from: '/shimmer/learn/smart-contracts/smart-contracts-introduction', - to: '/smart-contracts/overview', + to: '/learn/smart-contracts/introduction', }, { from: '/shimmer/learn/smart-contracts/smart-contracts-tangle', - to: '/smart-contracts/overview', + to: '/learn/smart-contracts/introduction', }, { from: '/shimmer/learn/smart-contracts/smart-contracts-validators', - to: '/smart-contracts/overview', + to: '/learn/smart-contracts/introduction', }, { from: '/shimmer/learn/smart-contracts/smart-contracts-VM-and-languages', - to: '/smart-contracts/overview', + to: '/learn/smart-contracts/introduction', }, { from: '/shimmer/learn/tangle', @@ -460,25 +460,37 @@ exports.articleRedirects = [ from: '/shimmer/search', to: '/search', }, + { + from: '/smart-contracts', + to: '/learn/smart-contracts/introduction', + }, + { + from: '/shimmer/smart-contracts', + to: '/learn/smart-contracts/introduction', + }, + { + from: '/next/smart-contracts', + to: '/learn/smart-contracts/introduction', + }, { from: '/shimmer/smart-contracts/configuration', to: '/wasp/configuration', }, { from: '/shimmer/smart-contracts/contribute', - to: '/smart-contracts/contribute', + to: '/learn/smart-contracts/introduction', }, { from: '/shimmer/smart-contracts/guide/example_projects/fair_roulette', - to: '/smart-contracts/guide/wasm_vm/example_projects/fair_roulette', + to: '/wasp-wasm/tutorials/fair_roulette', }, { from: '/shimmer/smart-contracts/metrics', to: '/wasp/metrics', }, { - from: '/shimmer/smart-contracts/overview', - to: '/smart-contracts/overview', + from: '/shimmer/learn/smart-contracts/introduction', + to: '/learn/smart-contracts/introduction', }, { from: '/shimmer/use/wallets/firefly/faq-and-troubleshooting', diff --git a/contentPlugins.js b/contentPlugins.js index e5ad96041db..acd9f4adcdf 100644 --- a/contentPlugins.js +++ b/contentPlugins.js @@ -13,10 +13,10 @@ module.exports = async () => { routeBasePath: 'build', }, { - id: 'iota-sdk-1-0-0', - path: path.resolve(__dirname, 'docs/build/iota-sdk/1.0.0/docs'), + id: 'iota-sdk-1-0', + path: path.resolve(__dirname, 'docs/build/iota-sdk/1.0/docs'), routeBasePath: 'iota-sdk', - sidebarPath: require.resolve('./docs/build/iota-sdk/1.0.0/sidebars.js'), + sidebarPath: require.resolve('./docs/build/iota-sdk/1.0/sidebars.js'), //overriding default exclude array to include the python api's classes with _ at the beginning //but still exclude any _admonitions exclude: [ @@ -26,19 +26,40 @@ module.exports = async () => { ], }, { - id: 'smart-contract-0-7-0', - path: path.resolve(__dirname, 'docs/build/wasp/0.7.0/docs'), - routeBasePath: 'smart-contracts', - sidebarPath: path.resolve(__dirname, 'docs/build/wasp/0.7.0/sidebars.js'), + id: 'wasp-cli-0-7', + path: path.resolve(__dirname, 'docs/build/wasp-cli/0.7/docs'), + routeBasePath: 'wasp-cli', + sidebarPath: path.resolve( + __dirname, + 'docs/build/wasp-cli/0.7/sidebars.js', + ), + }, + { + id: 'wasp-evm-0-7', + path: path.resolve(__dirname, 'docs/build/wasp-evm/0.7/docs'), + routeBasePath: 'wasp-evm', + sidebarPath: path.resolve( + __dirname, + 'docs/build/wasp-evm/0.7/sidebars.js', + ), + }, + { + id: 'wasp-wasm-0-7', + path: path.resolve(__dirname, 'docs/build/wasp-wasm/0.7/docs'), + routeBasePath: 'wasp-wasm', + sidebarPath: path.resolve( + __dirname, + 'docs/build/wasp-wasm/0.7/sidebars.js', + ), }, { id: 'identity-rs-0-5', - path: path.resolve(__dirname, 'docs/build/identity.rs/v0.5.0/docs'), + path: path.resolve(__dirname, 'docs/build/identity.rs/0.5/docs'), routeBasePath: 'identity.rs', bannerPath: path.resolve(__dirname, 'banners/identity-deprecated.mdx'), sidebarPath: path.resolve( __dirname, - 'docs/build/identity.rs/v0.5.0/sidebars.js', + 'docs/build/identity.rs/0.5/sidebars.js', ), versions: { current: { @@ -50,7 +71,7 @@ module.exports = async () => { }, { id: 'identity-rs-0-6', - path: path.resolve(__dirname, 'docs/build/identity.rs/v0.6.0/docs'), + path: path.resolve(__dirname, 'docs/build/identity.rs/0.6/docs'), routeBasePath: 'identity.rs', bannerPath: path.resolve( __dirname, @@ -58,7 +79,7 @@ module.exports = async () => { ), sidebarPath: path.resolve( __dirname, - 'docs/build/identity.rs/v0.6.0/sidebars.js', + 'docs/build/identity.rs/0.6/sidebars.js', ), versions: { current: { @@ -100,23 +121,23 @@ module.exports = async () => { }, }, { - id: 'iota-rs-1-4-0', - path: path.resolve(__dirname, 'docs/build/iota.rs/1.4.0/docs'), + id: 'iota-rs-1-4', + path: path.resolve(__dirname, 'docs/build/iota.rs/1.4/docs'), routeBasePath: 'iota.rs', sidebarPath: path.resolve( __dirname, - 'docs/build/iota.rs/1.4.0/sidebars.js', + 'docs/build/iota.rs/1.4/sidebars.js', ), versions: { current: { - label: '1.4.0', + label: '1.4', badge: true, }, }, }, { - id: 'iota-rs-2-0-1-rc-7', - path: path.resolve(__dirname, 'docs/build/iota.rs/2.0.1-rc.7/docs'), + id: 'iota-rs-2-0-rc-7', + path: path.resolve(__dirname, 'docs/build/iota.rs/2.0-rc.7/docs'), routeBasePath: 'iota.rs', bannerPath: path.resolve( __dirname, @@ -124,19 +145,19 @@ module.exports = async () => { ), sidebarPath: path.resolve( __dirname, - 'docs/build/iota.rs/2.0.1-rc.7/sidebars.js', + 'docs/build/iota.rs/2.0-rc.7/sidebars.js', ), versions: { current: { - label: '2.0.1-rc.7', - path: '2.0.1-rc.7', + label: '2.0-rc.7', + path: '2.0-rc.7', badge: true, }, }, }, { id: 'iotajs', - path: path.resolve(__dirname, 'docs/build/iota.js/2.0.0-rc.1/docs'), + path: path.resolve(__dirname, 'docs/build/iota.js/2.0-rc.1/docs'), routeBasePath: 'iota.js', bannerPath: path.resolve( __dirname, @@ -144,27 +165,27 @@ module.exports = async () => { ), sidebarPath: path.resolve( __dirname, - 'docs/build/iota.js/2.0.0-rc.1/sidebars.js', + 'docs/build/iota.js/2.0-rc.1/sidebars.js', ), }, { - id: 'wallet-rs-0-1-0', - path: path.resolve(__dirname, 'docs/build/wallet.rs/0.1.0/docs'), + id: 'wallet-rs-0-1', + path: path.resolve(__dirname, 'docs/build/wallet.rs/0.1/docs'), routeBasePath: 'wallet.rs', sidebarPath: path.resolve( __dirname, - 'docs/build/wallet.rs/0.1.0/sidebars.js', + 'docs/build/wallet.rs/0.1/sidebars.js', ), versions: { current: { - label: '0.1.0', + label: '0.1', badge: true, }, }, }, { - id: 'wallet-rs-1-0-0-rc-6', - path: path.resolve(__dirname, 'docs/build/wallet.rs/1.0.0-rc.6/docs'), + id: 'wallet-rs-1-0-rc-6', + path: path.resolve(__dirname, 'docs/build/wallet.rs/1.0-rc.6/docs'), routeBasePath: 'wallet.rs', bannerPath: path.resolve( __dirname, @@ -172,35 +193,35 @@ module.exports = async () => { ), sidebarPath: path.resolve( __dirname, - 'docs/build/wallet.rs/1.0.0-rc.6/sidebars.js', + 'docs/build/wallet.rs/1.0-rc.6/sidebars.js', ), versions: { current: { - label: '1.0.0-rc.6', - path: '1.0.0-rc.6', + label: '1.0-rc.6', + path: '1.0-rc.6', badge: true, }, }, }, { id: 'stronghold-rs', - path: path.resolve(__dirname, 'docs/build/stronghold.rs/1.1.0/docs'), + path: path.resolve(__dirname, 'docs/build/stronghold.rs/1.1/docs'), routeBasePath: 'stronghold.rs', sidebarPath: path.resolve( __dirname, - 'docs/build/stronghold.rs/1.1.0/sidebars.js', + 'docs/build/stronghold.rs/1.1/sidebars.js', ), }, { id: 'apis', - path: path.resolve(__dirname, 'docs/build/apis'), + path: path.resolve(__dirname, 'docs/build/apis/docs'), routeBasePath: 'apis', - sidebarPath: path.resolve(__dirname, 'docs/build/apis/sidebars.ts'), + sidebarPath: path.resolve(__dirname, 'docs/build/apis/sidebars.js'), docItemComponent: '@theme/ApiItem', }, { id: 'iota-streams', - path: path.resolve(__dirname, 'docs/build/streams/0.2.0/docs'), + path: path.resolve(__dirname, 'docs/build/streams/0.2/docs'), routeBasePath: 'streams', bannerPath: path.resolve( __dirname, @@ -208,7 +229,7 @@ module.exports = async () => { ), sidebarPath: path.resolve( __dirname, - 'docs/build/streams/0.2.0/sidebars.js', + 'docs/build/streams/0.2/sidebars.js', ), }, { @@ -250,11 +271,11 @@ module.exports = async () => { }, { id: 'cli-wallet', - path: path.resolve(__dirname, 'docs/build/cli-wallet/1.0.0/docs'), + path: path.resolve(__dirname, 'docs/build/cli-wallet/1.0/docs'), routeBasePath: 'cli-wallet', sidebarPath: path.resolve( __dirname, - 'docs/build/cli-wallet/1.0.0/sidebars.js', + 'docs/build/cli-wallet/1.0/sidebars.js', ), }, { @@ -280,83 +301,83 @@ module.exports = async () => { routeBasePath: 'maintain', }, { - id: 'hornet-1-2-4', - path: path.resolve(__dirname, 'docs/maintain/hornet/1.2.4/docs'), + id: 'hornet-1-2', + path: path.resolve(__dirname, 'docs/maintain/hornet/1.2/docs'), routeBasePath: 'hornet', sidebarPath: path.resolve( __dirname, - 'docs/maintain/hornet/1.2.4/sidebars.js', + 'docs/maintain/hornet/1.2/sidebars.js', ), versions: { current: { - label: '1.2.4', + label: '1.2', badge: true, }, }, }, { - id: 'hornet-2-0-0-rc-6', - path: path.resolve(__dirname, 'docs/maintain/hornet/2.0.0-rc.6/docs'), + id: 'hornet-2-0-rc-6', + path: path.resolve(__dirname, 'docs/maintain/hornet/2.0-rc.6/docs'), routeBasePath: 'hornet', sidebarPath: path.resolve( __dirname, - 'docs/maintain/hornet/2.0.0-rc.6/sidebars.js', + 'docs/maintain/hornet/2.0-rc.6/sidebars.js', ), versions: { current: { - label: '2.0.0-rc.6', - path: '2.0.0-rc.6', + label: '2.0-rc.6', + path: '2.0-rc.6', badge: true, }, }, }, { - id: 'wasp-0-7-0', - path: path.resolve(__dirname, 'docs/maintain/wasp/0.7.0/docs'), + id: 'wasp-0-7', + path: path.resolve(__dirname, 'docs/maintain/wasp/0.7/docs'), routeBasePath: 'wasp', sidebarPath: path.resolve( __dirname, - 'docs/maintain/wasp/0.7.0/sidebars.js', + 'docs/maintain/wasp/0.7/sidebars.js', ), }, { id: 'chronicle-rs', - path: path.resolve(__dirname, 'docs/maintain/chronicle/0.3.0/docs'), + path: path.resolve(__dirname, 'docs/maintain/chronicle/0.3/docs'), routeBasePath: 'chronicle', sidebarPath: path.resolve( __dirname, - 'docs/maintain/chronicle/0.3.0/sidebars.js', + 'docs/maintain/chronicle/0.3/sidebars.js', ), versions: { current: { - label: '0.3.0', + label: '0.3', badge: true, }, }, }, { id: 'inx-chronicle', - path: path.resolve(__dirname, 'docs/maintain/chronicle/1.0.0-rc.1/docs'), + path: path.resolve(__dirname, 'docs/maintain/chronicle/1.0-rc.1/docs'), routeBasePath: 'chronicle', sidebarPath: path.resolve( __dirname, - 'docs/maintain/chronicle/1.0.0-rc.1/sidebars.js', + 'docs/maintain/chronicle/1.0-rc.1/sidebars.js', ), versions: { current: { - label: '1.0.0-rc.1', - path: '1.0.0-rc.1', + label: '1.0-rc.1', + path: '1.0-rc.1', badge: true, }, }, }, { id: 'goshimmer', - path: path.resolve(__dirname, 'docs/maintain/goshimmer/0.9.8/docs'), + path: path.resolve(__dirname, 'docs/maintain/goshimmer/0.9/docs'), routeBasePath: 'goshimmer', sidebarPath: path.resolve( __dirname, - 'docs/maintain/goshimmer/0.9.8/sidebars.js', + 'docs/maintain/goshimmer/0.9/sidebars.js', ), }, ]; diff --git a/docs/build/.gitignore b/docs/build/.gitignore deleted file mode 100644 index d1f1fb7dc96..00000000000 --- a/docs/build/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -apis/* -!apis/welcome.md -!apis/sidebars.ts \ No newline at end of file diff --git a/docs/build/apis/.gitignore b/docs/build/apis/.gitignore new file mode 100644 index 00000000000..aa5e17ea485 --- /dev/null +++ b/docs/build/apis/.gitignore @@ -0,0 +1,2 @@ +docs/* +!docs/welcome.md \ No newline at end of file diff --git a/docs/build/apis/welcome.md b/docs/build/apis/docs/welcome.md similarity index 100% rename from docs/build/apis/welcome.md rename to docs/build/apis/docs/welcome.md diff --git a/docs/build/apis/sidebars.ts b/docs/build/apis/sidebars.js similarity index 75% rename from docs/build/apis/sidebars.ts rename to docs/build/apis/sidebars.js index 08306218d3c..651dc4af93a 100644 --- a/docs/build/apis/sidebars.ts +++ b/docs/build/apis/sidebars.js @@ -17,13 +17,13 @@ module.exports = { type: 'category', label: 'V1', collapsed: true, - items: require('./core/v1/sidebar'), + items: require('./docs/core/v1/sidebar'), }, { type: 'category', label: 'V2', collapsed: true, - items: require('./core/v2/sidebar'), + items: require('./docs/core/v2/sidebar'), }, ], }, @@ -31,31 +31,31 @@ module.exports = { type: 'category', label: 'Wasp', collapsed: true, - items: require('./wasp/sidebar'), + items: require('./docs/wasp/sidebar'), }, { type: 'category', label: 'Explorer', collapsed: true, - items: require('./explorer/sidebar'), + items: require('./docs/explorer/sidebar'), }, { type: 'category', label: 'Indexer', collapsed: true, - items: require('./indexer/sidebar'), + items: require('./docs/indexer/sidebar'), }, { type: 'category', label: 'IRC Metadata', collapsed: true, - items: require('./irc-metadata/sidebar'), + items: require('./docs/irc-metadata/sidebar'), }, { type: 'category', label: 'PoI', collapsed: true, - items: require('./poi/sidebar'), + items: require('./docs/poi/sidebar'), }, ], }; diff --git a/docs/build/cli-wallet/1.0.0/docs/00_welcome.md b/docs/build/cli-wallet/1.0/docs/00_welcome.md similarity index 100% rename from docs/build/cli-wallet/1.0.0/docs/00_welcome.md rename to docs/build/cli-wallet/1.0/docs/00_welcome.md diff --git a/docs/build/cli-wallet/1.0.0/docs/01_installation.md b/docs/build/cli-wallet/1.0/docs/01_installation.md similarity index 100% rename from docs/build/cli-wallet/1.0.0/docs/01_installation.md rename to docs/build/cli-wallet/1.0/docs/01_installation.md diff --git a/docs/build/cli-wallet/1.0.0/docs/02_wallet.md b/docs/build/cli-wallet/1.0/docs/02_wallet.md similarity index 100% rename from docs/build/cli-wallet/1.0.0/docs/02_wallet.md rename to docs/build/cli-wallet/1.0/docs/02_wallet.md diff --git a/docs/build/cli-wallet/1.0.0/docs/03_account.md b/docs/build/cli-wallet/1.0/docs/03_account.md similarity index 100% rename from docs/build/cli-wallet/1.0.0/docs/03_account.md rename to docs/build/cli-wallet/1.0/docs/03_account.md diff --git a/docs/build/cli-wallet/1.0.0/docs/04_step_by_step.md b/docs/build/cli-wallet/1.0/docs/04_step_by_step.md similarity index 100% rename from docs/build/cli-wallet/1.0.0/docs/04_step_by_step.md rename to docs/build/cli-wallet/1.0/docs/04_step_by_step.md diff --git a/docs/build/cli-wallet/1.0.0/sidebars.js b/docs/build/cli-wallet/1.0/sidebars.js similarity index 100% rename from docs/build/cli-wallet/1.0.0/sidebars.js rename to docs/build/cli-wallet/1.0/sidebars.js diff --git a/docs/build/cli-wallet/1.0.0/static/img/cli-wallet.gif b/docs/build/cli-wallet/1.0/static/img/cli-wallet.gif similarity index 100% rename from docs/build/cli-wallet/1.0.0/static/img/cli-wallet.gif rename to docs/build/cli-wallet/1.0/static/img/cli-wallet.gif diff --git a/docs/build/getting-started/networks-endpoints.md b/docs/build/getting-started/networks-endpoints.md index 45cb75c45dd..c12e3cacdde 100644 --- a/docs/build/getting-started/networks-endpoints.md +++ b/docs/build/getting-started/networks-endpoints.md @@ -128,6 +128,7 @@ layer 1. RPC URL Chain ID Faucet + Explorer Testnet Tokens (no value) @@ -137,6 +138,7 @@ layer 1. 1072 https://evm-faucet.testnet.shimmer.network + https://explorer.evm.testnet.shimmer.network diff --git a/docs/build/getting-started/sidebars.ts b/docs/build/getting-started/sidebars.ts index a98467f2e81..2035ffb786e 100644 --- a/docs/build/getting-started/sidebars.ts +++ b/docs/build/getting-started/sidebars.ts @@ -23,12 +23,12 @@ module.exports = { { type: 'link', label: 'WASP CLI', - href: '/wasp/wasp-cli', + href: '/wasp-cli/how-tos/wasp-cli', }, { label: 'Schema Tool', type: 'link', - href: '/smart-contracts/guide/wasm_vm/schema', + href: '/wasp-wasm/how-tos/schema-tool/introduction', }, { label: 'Explorer', diff --git a/docs/build/getting-started/welcome.md b/docs/build/getting-started/welcome.md index 87442e4f2d9..174d0b759c0 100644 --- a/docs/build/getting-started/welcome.md +++ b/docs/build/getting-started/welcome.md @@ -46,9 +46,9 @@ any object in a GDPR-compliant, cost-efficient, and privacy-enabling manner. ### Smart Contracts -The [IOTA Smart Contracts (ISC)](/smart-contracts/overview) bring scalable, flexible, and cost-effective smart +The [IOTA Smart Contracts (ISC)](/learn/smart-contracts/introduction) bring scalable, flexible, and cost-effective smart contract functionality to the IOTA ecosystem. By anchoring multiple chains to the IOTA Tangle, ISC enables higher throughput and lower fees than traditional single-chain solutions. Users have the freedom to create custom chains with control over gas fees and privacy settings, and the platform is virtual machine-agnostic, supporting both -[Rust/Wasm](/smart-contracts/guide/wasm_vm/intro) and [Solidity/EVM](/smart-contracts/guide/evm/introduction) +[Rust/Wasm](/wasp-wasm/introduction) and [Solidity/EVM](/wasp-evm/introduction) smart contracts. diff --git a/docs/build/identity.rs/v0.5.0/docs/concepts/advanced/did_messages.mdx b/docs/build/identity.rs/0.5/docs/concepts/advanced/did_messages.mdx similarity index 100% rename from docs/build/identity.rs/v0.5.0/docs/concepts/advanced/did_messages.mdx rename to docs/build/identity.rs/0.5/docs/concepts/advanced/did_messages.mdx diff --git a/docs/build/identity.rs/v0.5.0/docs/concepts/advanced/overview.mdx b/docs/build/identity.rs/0.5/docs/concepts/advanced/overview.mdx similarity index 100% rename from docs/build/identity.rs/v0.5.0/docs/concepts/advanced/overview.mdx rename to docs/build/identity.rs/0.5/docs/concepts/advanced/overview.mdx diff --git a/docs/build/identity.rs/v0.5.0/docs/concepts/advanced/storage_interface.mdx b/docs/build/identity.rs/0.5/docs/concepts/advanced/storage_interface.mdx similarity index 100% rename from docs/build/identity.rs/v0.5.0/docs/concepts/advanced/storage_interface.mdx rename to docs/build/identity.rs/0.5/docs/concepts/advanced/storage_interface.mdx diff --git a/docs/build/identity.rs/v0.5.0/docs/concepts/decentralized_identifiers/create.mdx b/docs/build/identity.rs/0.5/docs/concepts/decentralized_identifiers/create.mdx similarity index 100% rename from docs/build/identity.rs/v0.5.0/docs/concepts/decentralized_identifiers/create.mdx rename to docs/build/identity.rs/0.5/docs/concepts/decentralized_identifiers/create.mdx diff --git a/docs/build/identity.rs/v0.5.0/docs/concepts/decentralized_identifiers/overview.mdx b/docs/build/identity.rs/0.5/docs/concepts/decentralized_identifiers/overview.mdx similarity index 100% rename from docs/build/identity.rs/v0.5.0/docs/concepts/decentralized_identifiers/overview.mdx rename to docs/build/identity.rs/0.5/docs/concepts/decentralized_identifiers/overview.mdx diff --git a/docs/build/identity.rs/v0.5.0/docs/concepts/decentralized_identifiers/private_tangle.mdx b/docs/build/identity.rs/0.5/docs/concepts/decentralized_identifiers/private_tangle.mdx similarity index 100% rename from docs/build/identity.rs/v0.5.0/docs/concepts/decentralized_identifiers/private_tangle.mdx rename to docs/build/identity.rs/0.5/docs/concepts/decentralized_identifiers/private_tangle.mdx diff --git a/docs/build/identity.rs/v0.5.0/docs/concepts/decentralized_identifiers/resolve.mdx b/docs/build/identity.rs/0.5/docs/concepts/decentralized_identifiers/resolve.mdx similarity index 100% rename from docs/build/identity.rs/v0.5.0/docs/concepts/decentralized_identifiers/resolve.mdx rename to docs/build/identity.rs/0.5/docs/concepts/decentralized_identifiers/resolve.mdx diff --git a/docs/build/identity.rs/v0.5.0/docs/concepts/decentralized_identifiers/secure.mdx b/docs/build/identity.rs/0.5/docs/concepts/decentralized_identifiers/secure.mdx similarity index 100% rename from docs/build/identity.rs/v0.5.0/docs/concepts/decentralized_identifiers/secure.mdx rename to docs/build/identity.rs/0.5/docs/concepts/decentralized_identifiers/secure.mdx diff --git a/docs/build/identity.rs/v0.5.0/docs/concepts/decentralized_identifiers/update.mdx b/docs/build/identity.rs/0.5/docs/concepts/decentralized_identifiers/update.mdx similarity index 100% rename from docs/build/identity.rs/v0.5.0/docs/concepts/decentralized_identifiers/update.mdx rename to docs/build/identity.rs/0.5/docs/concepts/decentralized_identifiers/update.mdx diff --git a/docs/build/identity.rs/v0.5.0/docs/concepts/verifiable_credentials/create.mdx b/docs/build/identity.rs/0.5/docs/concepts/verifiable_credentials/create.mdx similarity index 100% rename from docs/build/identity.rs/v0.5.0/docs/concepts/verifiable_credentials/create.mdx rename to docs/build/identity.rs/0.5/docs/concepts/verifiable_credentials/create.mdx diff --git a/docs/build/identity.rs/v0.5.0/docs/concepts/verifiable_credentials/overview.mdx b/docs/build/identity.rs/0.5/docs/concepts/verifiable_credentials/overview.mdx similarity index 100% rename from docs/build/identity.rs/v0.5.0/docs/concepts/verifiable_credentials/overview.mdx rename to docs/build/identity.rs/0.5/docs/concepts/verifiable_credentials/overview.mdx diff --git a/docs/build/identity.rs/v0.5.0/docs/concepts/verifiable_credentials/revoke.mdx b/docs/build/identity.rs/0.5/docs/concepts/verifiable_credentials/revoke.mdx similarity index 100% rename from docs/build/identity.rs/v0.5.0/docs/concepts/verifiable_credentials/revoke.mdx rename to docs/build/identity.rs/0.5/docs/concepts/verifiable_credentials/revoke.mdx diff --git a/docs/build/identity.rs/v0.5.0/docs/concepts/verifiable_credentials/verifiable_presentations.mdx b/docs/build/identity.rs/0.5/docs/concepts/verifiable_credentials/verifiable_presentations.mdx similarity index 100% rename from docs/build/identity.rs/v0.5.0/docs/concepts/verifiable_credentials/verifiable_presentations.mdx rename to docs/build/identity.rs/0.5/docs/concepts/verifiable_credentials/verifiable_presentations.mdx diff --git a/docs/build/identity.rs/v0.5.0/docs/contact.mdx b/docs/build/identity.rs/0.5/docs/contact.mdx similarity index 100% rename from docs/build/identity.rs/v0.5.0/docs/contact.mdx rename to docs/build/identity.rs/0.5/docs/contact.mdx diff --git a/docs/build/identity.rs/v0.5.0/docs/contribute.mdx b/docs/build/identity.rs/0.5/docs/contribute.mdx similarity index 100% rename from docs/build/identity.rs/v0.5.0/docs/contribute.mdx rename to docs/build/identity.rs/0.5/docs/contribute.mdx diff --git a/docs/build/identity.rs/v0.5.0/docs/decentralized_identity.mdx b/docs/build/identity.rs/0.5/docs/decentralized_identity.mdx similarity index 100% rename from docs/build/identity.rs/v0.5.0/docs/decentralized_identity.mdx rename to docs/build/identity.rs/0.5/docs/decentralized_identity.mdx diff --git a/docs/build/identity.rs/v0.5.0/docs/faq.mdx b/docs/build/identity.rs/0.5/docs/faq.mdx similarity index 100% rename from docs/build/identity.rs/v0.5.0/docs/faq.mdx rename to docs/build/identity.rs/0.5/docs/faq.mdx diff --git a/docs/build/identity.rs/v0.5.0/docs/getting_started/create_and_publish.mdx b/docs/build/identity.rs/0.5/docs/getting_started/create_and_publish.mdx similarity index 100% rename from docs/build/identity.rs/v0.5.0/docs/getting_started/create_and_publish.mdx rename to docs/build/identity.rs/0.5/docs/getting_started/create_and_publish.mdx diff --git a/docs/build/identity.rs/v0.5.0/docs/getting_started/install.mdx b/docs/build/identity.rs/0.5/docs/getting_started/install.mdx similarity index 100% rename from docs/build/identity.rs/v0.5.0/docs/getting_started/install.mdx rename to docs/build/identity.rs/0.5/docs/getting_started/install.mdx diff --git a/docs/build/identity.rs/v0.5.0/docs/getting_started/overview.mdx b/docs/build/identity.rs/0.5/docs/getting_started/overview.mdx similarity index 100% rename from docs/build/identity.rs/v0.5.0/docs/getting_started/overview.mdx rename to docs/build/identity.rs/0.5/docs/getting_started/overview.mdx diff --git a/docs/build/identity.rs/v0.5.0/docs/glossary.mdx b/docs/build/identity.rs/0.5/docs/glossary.mdx similarity index 100% rename from docs/build/identity.rs/v0.5.0/docs/glossary.mdx rename to docs/build/identity.rs/0.5/docs/glossary.mdx diff --git a/docs/build/identity.rs/v0.5.0/docs/introduction.mdx b/docs/build/identity.rs/0.5/docs/introduction.mdx similarity index 100% rename from docs/build/identity.rs/v0.5.0/docs/introduction.mdx rename to docs/build/identity.rs/0.5/docs/introduction.mdx diff --git a/docs/build/identity.rs/v0.5.0/docs/libraries/overview.mdx b/docs/build/identity.rs/0.5/docs/libraries/overview.mdx similarity index 100% rename from docs/build/identity.rs/v0.5.0/docs/libraries/overview.mdx rename to docs/build/identity.rs/0.5/docs/libraries/overview.mdx diff --git a/docs/build/identity.rs/v0.5.0/docs/libraries/rust/api_reference.mdx b/docs/build/identity.rs/0.5/docs/libraries/rust/api_reference.mdx similarity index 100% rename from docs/build/identity.rs/v0.5.0/docs/libraries/rust/api_reference.mdx rename to docs/build/identity.rs/0.5/docs/libraries/rust/api_reference.mdx diff --git a/docs/build/identity.rs/v0.5.0/docs/libraries/rust/getting_started.mdx b/docs/build/identity.rs/0.5/docs/libraries/rust/getting_started.mdx similarity index 100% rename from docs/build/identity.rs/v0.5.0/docs/libraries/rust/getting_started.mdx rename to docs/build/identity.rs/0.5/docs/libraries/rust/getting_started.mdx diff --git a/docs/build/identity.rs/v0.5.0/docs/libraries/wasm/api_reference.mdx b/docs/build/identity.rs/0.5/docs/libraries/wasm/api_reference.mdx similarity index 100% rename from docs/build/identity.rs/v0.5.0/docs/libraries/wasm/api_reference.mdx rename to docs/build/identity.rs/0.5/docs/libraries/wasm/api_reference.mdx diff --git a/docs/build/identity.rs/v0.5.0/docs/libraries/wasm/getting_started.mdx b/docs/build/identity.rs/0.5/docs/libraries/wasm/getting_started.mdx similarity index 100% rename from docs/build/identity.rs/v0.5.0/docs/libraries/wasm/getting_started.mdx rename to docs/build/identity.rs/0.5/docs/libraries/wasm/getting_started.mdx diff --git a/docs/build/identity.rs/v0.5.0/docs/specs/did/iota_did_method_spec.mdx b/docs/build/identity.rs/0.5/docs/specs/did/iota_did_method_spec.mdx similarity index 100% rename from docs/build/identity.rs/v0.5.0/docs/specs/did/iota_did_method_spec.mdx rename to docs/build/identity.rs/0.5/docs/specs/did/iota_did_method_spec.mdx diff --git a/docs/build/identity.rs/v0.5.0/docs/specs/did/overview.mdx b/docs/build/identity.rs/0.5/docs/specs/did/overview.mdx similarity index 100% rename from docs/build/identity.rs/v0.5.0/docs/specs/did/overview.mdx rename to docs/build/identity.rs/0.5/docs/specs/did/overview.mdx diff --git a/docs/build/identity.rs/v0.5.0/docs/specs/didcomm/CHANGELOG.mdx b/docs/build/identity.rs/0.5/docs/specs/didcomm/CHANGELOG.mdx similarity index 100% rename from docs/build/identity.rs/v0.5.0/docs/specs/didcomm/CHANGELOG.mdx rename to docs/build/identity.rs/0.5/docs/specs/didcomm/CHANGELOG.mdx diff --git a/docs/build/identity.rs/v0.5.0/docs/specs/didcomm/overview.mdx b/docs/build/identity.rs/0.5/docs/specs/didcomm/overview.mdx similarity index 100% rename from docs/build/identity.rs/v0.5.0/docs/specs/didcomm/overview.mdx rename to docs/build/identity.rs/0.5/docs/specs/didcomm/overview.mdx diff --git a/docs/build/identity.rs/v0.5.0/docs/specs/didcomm/protocols/authentication.mdx b/docs/build/identity.rs/0.5/docs/specs/didcomm/protocols/authentication.mdx similarity index 100% rename from docs/build/identity.rs/v0.5.0/docs/specs/didcomm/protocols/authentication.mdx rename to docs/build/identity.rs/0.5/docs/specs/didcomm/protocols/authentication.mdx diff --git a/docs/build/identity.rs/v0.5.0/docs/specs/didcomm/protocols/connection.mdx b/docs/build/identity.rs/0.5/docs/specs/didcomm/protocols/connection.mdx similarity index 100% rename from docs/build/identity.rs/v0.5.0/docs/specs/didcomm/protocols/connection.mdx rename to docs/build/identity.rs/0.5/docs/specs/didcomm/protocols/connection.mdx diff --git a/docs/build/identity.rs/v0.5.0/docs/specs/didcomm/protocols/issuance.mdx b/docs/build/identity.rs/0.5/docs/specs/didcomm/protocols/issuance.mdx similarity index 100% rename from docs/build/identity.rs/v0.5.0/docs/specs/didcomm/protocols/issuance.mdx rename to docs/build/identity.rs/0.5/docs/specs/didcomm/protocols/issuance.mdx diff --git a/docs/build/identity.rs/v0.5.0/docs/specs/didcomm/protocols/post.mdx b/docs/build/identity.rs/0.5/docs/specs/didcomm/protocols/post.mdx similarity index 100% rename from docs/build/identity.rs/v0.5.0/docs/specs/didcomm/protocols/post.mdx rename to docs/build/identity.rs/0.5/docs/specs/didcomm/protocols/post.mdx diff --git a/docs/build/identity.rs/v0.5.0/docs/specs/didcomm/protocols/presentation.mdx b/docs/build/identity.rs/0.5/docs/specs/didcomm/protocols/presentation.mdx similarity index 100% rename from docs/build/identity.rs/v0.5.0/docs/specs/didcomm/protocols/presentation.mdx rename to docs/build/identity.rs/0.5/docs/specs/didcomm/protocols/presentation.mdx diff --git a/docs/build/identity.rs/v0.5.0/docs/specs/didcomm/protocols/revocation-options.mdx b/docs/build/identity.rs/0.5/docs/specs/didcomm/protocols/revocation-options.mdx similarity index 100% rename from docs/build/identity.rs/v0.5.0/docs/specs/didcomm/protocols/revocation-options.mdx rename to docs/build/identity.rs/0.5/docs/specs/didcomm/protocols/revocation-options.mdx diff --git a/docs/build/identity.rs/v0.5.0/docs/specs/didcomm/protocols/revocation.mdx b/docs/build/identity.rs/0.5/docs/specs/didcomm/protocols/revocation.mdx similarity index 100% rename from docs/build/identity.rs/v0.5.0/docs/specs/didcomm/protocols/revocation.mdx rename to docs/build/identity.rs/0.5/docs/specs/didcomm/protocols/revocation.mdx diff --git a/docs/build/identity.rs/v0.5.0/docs/specs/didcomm/protocols/signing.mdx b/docs/build/identity.rs/0.5/docs/specs/didcomm/protocols/signing.mdx similarity index 100% rename from docs/build/identity.rs/v0.5.0/docs/specs/didcomm/protocols/signing.mdx rename to docs/build/identity.rs/0.5/docs/specs/didcomm/protocols/signing.mdx diff --git a/docs/build/identity.rs/v0.5.0/docs/specs/didcomm/protocols/termination.mdx b/docs/build/identity.rs/0.5/docs/specs/didcomm/protocols/termination.mdx similarity index 100% rename from docs/build/identity.rs/v0.5.0/docs/specs/didcomm/protocols/termination.mdx rename to docs/build/identity.rs/0.5/docs/specs/didcomm/protocols/termination.mdx diff --git a/docs/build/identity.rs/v0.5.0/docs/specs/didcomm/resources/credential-info.mdx b/docs/build/identity.rs/0.5/docs/specs/didcomm/resources/credential-info.mdx similarity index 100% rename from docs/build/identity.rs/v0.5.0/docs/specs/didcomm/resources/credential-info.mdx rename to docs/build/identity.rs/0.5/docs/specs/didcomm/resources/credential-info.mdx diff --git a/docs/build/identity.rs/v0.5.0/docs/specs/didcomm/resources/problem-reports.mdx b/docs/build/identity.rs/0.5/docs/specs/didcomm/resources/problem-reports.mdx similarity index 100% rename from docs/build/identity.rs/v0.5.0/docs/specs/didcomm/resources/problem-reports.mdx rename to docs/build/identity.rs/0.5/docs/specs/didcomm/resources/problem-reports.mdx diff --git a/docs/build/identity.rs/v0.5.0/docs/specs/overview.mdx b/docs/build/identity.rs/0.5/docs/specs/overview.mdx similarity index 100% rename from docs/build/identity.rs/v0.5.0/docs/specs/overview.mdx rename to docs/build/identity.rs/0.5/docs/specs/overview.mdx diff --git a/docs/build/identity.rs/v0.5.0/docs/tutorials/overview.mdx b/docs/build/identity.rs/0.5/docs/tutorials/overview.mdx similarity index 100% rename from docs/build/identity.rs/v0.5.0/docs/tutorials/overview.mdx rename to docs/build/identity.rs/0.5/docs/tutorials/overview.mdx diff --git a/docs/build/identity.rs/v0.5.0/docs/tutorials/validate_university_degree.mdx b/docs/build/identity.rs/0.5/docs/tutorials/validate_university_degree.mdx similarity index 100% rename from docs/build/identity.rs/v0.5.0/docs/tutorials/validate_university_degree.mdx rename to docs/build/identity.rs/0.5/docs/tutorials/validate_university_degree.mdx diff --git a/docs/build/identity.rs/v0.5.0/docs/workflow.mdx b/docs/build/identity.rs/0.5/docs/workflow.mdx similarity index 100% rename from docs/build/identity.rs/v0.5.0/docs/workflow.mdx rename to docs/build/identity.rs/0.5/docs/workflow.mdx diff --git a/docs/build/identity.rs/v0.5.0/sidebars.js b/docs/build/identity.rs/0.5/sidebars.js similarity index 100% rename from docs/build/identity.rs/v0.5.0/sidebars.js rename to docs/build/identity.rs/0.5/sidebars.js diff --git a/docs/build/identity.rs/v0.5.0/static/.nojekyll b/docs/build/identity.rs/0.5/static/.nojekyll similarity index 100% rename from docs/build/identity.rs/v0.5.0/static/.nojekyll rename to docs/build/identity.rs/0.5/static/.nojekyll diff --git a/docs/build/identity.rs/v0.5.0/static/img/Banner/banner_decentralized_identity.svg b/docs/build/identity.rs/0.5/static/img/Banner/banner_decentralized_identity.svg similarity index 100% rename from docs/build/identity.rs/v0.5.0/static/img/Banner/banner_decentralized_identity.svg rename to docs/build/identity.rs/0.5/static/img/Banner/banner_decentralized_identity.svg diff --git a/docs/build/identity.rs/v0.5.0/static/img/Banner/banner_identity.svg b/docs/build/identity.rs/0.5/static/img/Banner/banner_identity.svg similarity index 100% rename from docs/build/identity.rs/v0.5.0/static/img/Banner/banner_identity.svg rename to docs/build/identity.rs/0.5/static/img/Banner/banner_identity.svg diff --git a/docs/build/identity.rs/v0.5.0/static/img/Banner/banner_identity_getting_started.svg b/docs/build/identity.rs/0.5/static/img/Banner/banner_identity_getting_started.svg similarity index 100% rename from docs/build/identity.rs/v0.5.0/static/img/Banner/banner_identity_getting_started.svg rename to docs/build/identity.rs/0.5/static/img/Banner/banner_identity_getting_started.svg diff --git a/docs/build/identity.rs/v0.5.0/static/img/Identity_icon.png b/docs/build/identity.rs/0.5/static/img/Identity_icon.png similarity index 100% rename from docs/build/identity.rs/v0.5.0/static/img/Identity_icon.png rename to docs/build/identity.rs/0.5/static/img/Identity_icon.png diff --git a/docs/build/identity.rs/v0.5.0/static/img/blockchain-bottleneck.gif b/docs/build/identity.rs/0.5/static/img/blockchain-bottleneck.gif similarity index 100% rename from docs/build/identity.rs/v0.5.0/static/img/blockchain-bottleneck.gif rename to docs/build/identity.rs/0.5/static/img/blockchain-bottleneck.gif diff --git a/docs/build/identity.rs/v0.5.0/static/img/didcomm/authentication.drawio.svg b/docs/build/identity.rs/0.5/static/img/didcomm/authentication.drawio.svg similarity index 100% rename from docs/build/identity.rs/v0.5.0/static/img/didcomm/authentication.drawio.svg rename to docs/build/identity.rs/0.5/static/img/didcomm/authentication.drawio.svg diff --git a/docs/build/identity.rs/v0.5.0/static/img/didcomm/connection.drawio.svg b/docs/build/identity.rs/0.5/static/img/didcomm/connection.drawio.svg similarity index 100% rename from docs/build/identity.rs/v0.5.0/static/img/didcomm/connection.drawio.svg rename to docs/build/identity.rs/0.5/static/img/didcomm/connection.drawio.svg diff --git a/docs/build/identity.rs/v0.5.0/static/img/didcomm/issuance.drawio.svg b/docs/build/identity.rs/0.5/static/img/didcomm/issuance.drawio.svg similarity index 100% rename from docs/build/identity.rs/v0.5.0/static/img/didcomm/issuance.drawio.svg rename to docs/build/identity.rs/0.5/static/img/didcomm/issuance.drawio.svg diff --git a/docs/build/identity.rs/v0.5.0/static/img/didcomm/post.drawio.svg b/docs/build/identity.rs/0.5/static/img/didcomm/post.drawio.svg similarity index 100% rename from docs/build/identity.rs/v0.5.0/static/img/didcomm/post.drawio.svg rename to docs/build/identity.rs/0.5/static/img/didcomm/post.drawio.svg diff --git a/docs/build/identity.rs/v0.5.0/static/img/didcomm/presentation.drawio.svg b/docs/build/identity.rs/0.5/static/img/didcomm/presentation.drawio.svg similarity index 100% rename from docs/build/identity.rs/v0.5.0/static/img/didcomm/presentation.drawio.svg rename to docs/build/identity.rs/0.5/static/img/didcomm/presentation.drawio.svg diff --git a/docs/build/identity.rs/v0.5.0/static/img/didcomm/revocation-options.drawio.svg b/docs/build/identity.rs/0.5/static/img/didcomm/revocation-options.drawio.svg similarity index 100% rename from docs/build/identity.rs/v0.5.0/static/img/didcomm/revocation-options.drawio.svg rename to docs/build/identity.rs/0.5/static/img/didcomm/revocation-options.drawio.svg diff --git a/docs/build/identity.rs/v0.5.0/static/img/didcomm/revocation.drawio.svg b/docs/build/identity.rs/0.5/static/img/didcomm/revocation.drawio.svg similarity index 100% rename from docs/build/identity.rs/v0.5.0/static/img/didcomm/revocation.drawio.svg rename to docs/build/identity.rs/0.5/static/img/didcomm/revocation.drawio.svg diff --git a/docs/build/identity.rs/v0.5.0/static/img/didcomm/signing.drawio.svg b/docs/build/identity.rs/0.5/static/img/didcomm/signing.drawio.svg similarity index 100% rename from docs/build/identity.rs/v0.5.0/static/img/didcomm/signing.drawio.svg rename to docs/build/identity.rs/0.5/static/img/didcomm/signing.drawio.svg diff --git a/docs/build/identity.rs/v0.5.0/static/img/didcomm/termination.drawio.svg b/docs/build/identity.rs/0.5/static/img/didcomm/termination.drawio.svg similarity index 100% rename from docs/build/identity.rs/v0.5.0/static/img/didcomm/termination.drawio.svg rename to docs/build/identity.rs/0.5/static/img/didcomm/termination.drawio.svg diff --git a/docs/build/identity.rs/v0.5.0/static/img/identity_tutorial_chart.png b/docs/build/identity.rs/0.5/static/img/identity_tutorial_chart.png similarity index 100% rename from docs/build/identity.rs/v0.5.0/static/img/identity_tutorial_chart.png rename to docs/build/identity.rs/0.5/static/img/identity_tutorial_chart.png diff --git a/docs/build/identity.rs/v0.5.0/static/img/tangle-bottleneck.gif b/docs/build/identity.rs/0.5/static/img/tangle-bottleneck.gif similarity index 100% rename from docs/build/identity.rs/v0.5.0/static/img/tangle-bottleneck.gif rename to docs/build/identity.rs/0.5/static/img/tangle-bottleneck.gif diff --git a/docs/build/identity.rs/v0.6.0/docs/concepts/advanced/did_messages.mdx b/docs/build/identity.rs/0.6/docs/concepts/advanced/did_messages.mdx similarity index 100% rename from docs/build/identity.rs/v0.6.0/docs/concepts/advanced/did_messages.mdx rename to docs/build/identity.rs/0.6/docs/concepts/advanced/did_messages.mdx diff --git a/docs/build/identity.rs/v0.6.0/docs/concepts/advanced/overview.mdx b/docs/build/identity.rs/0.6/docs/concepts/advanced/overview.mdx similarity index 100% rename from docs/build/identity.rs/v0.6.0/docs/concepts/advanced/overview.mdx rename to docs/build/identity.rs/0.6/docs/concepts/advanced/overview.mdx diff --git a/docs/build/identity.rs/v0.6.0/docs/concepts/advanced/storage_interface.mdx b/docs/build/identity.rs/0.6/docs/concepts/advanced/storage_interface.mdx similarity index 100% rename from docs/build/identity.rs/v0.6.0/docs/concepts/advanced/storage_interface.mdx rename to docs/build/identity.rs/0.6/docs/concepts/advanced/storage_interface.mdx diff --git a/docs/build/identity.rs/v0.6.0/docs/concepts/decentralized_identifiers/create.mdx b/docs/build/identity.rs/0.6/docs/concepts/decentralized_identifiers/create.mdx similarity index 100% rename from docs/build/identity.rs/v0.6.0/docs/concepts/decentralized_identifiers/create.mdx rename to docs/build/identity.rs/0.6/docs/concepts/decentralized_identifiers/create.mdx diff --git a/docs/build/identity.rs/v0.6.0/docs/concepts/decentralized_identifiers/overview.mdx b/docs/build/identity.rs/0.6/docs/concepts/decentralized_identifiers/overview.mdx similarity index 100% rename from docs/build/identity.rs/v0.6.0/docs/concepts/decentralized_identifiers/overview.mdx rename to docs/build/identity.rs/0.6/docs/concepts/decentralized_identifiers/overview.mdx diff --git a/docs/build/identity.rs/v0.6.0/docs/concepts/decentralized_identifiers/private_tangle.mdx b/docs/build/identity.rs/0.6/docs/concepts/decentralized_identifiers/private_tangle.mdx similarity index 100% rename from docs/build/identity.rs/v0.6.0/docs/concepts/decentralized_identifiers/private_tangle.mdx rename to docs/build/identity.rs/0.6/docs/concepts/decentralized_identifiers/private_tangle.mdx diff --git a/docs/build/identity.rs/v0.6.0/docs/concepts/decentralized_identifiers/resolve.mdx b/docs/build/identity.rs/0.6/docs/concepts/decentralized_identifiers/resolve.mdx similarity index 100% rename from docs/build/identity.rs/v0.6.0/docs/concepts/decentralized_identifiers/resolve.mdx rename to docs/build/identity.rs/0.6/docs/concepts/decentralized_identifiers/resolve.mdx diff --git a/docs/build/identity.rs/v0.6.0/docs/concepts/decentralized_identifiers/update.mdx b/docs/build/identity.rs/0.6/docs/concepts/decentralized_identifiers/update.mdx similarity index 100% rename from docs/build/identity.rs/v0.6.0/docs/concepts/decentralized_identifiers/update.mdx rename to docs/build/identity.rs/0.6/docs/concepts/decentralized_identifiers/update.mdx diff --git a/docs/build/identity.rs/v0.6.0/docs/concepts/verifiable_credentials/create.mdx b/docs/build/identity.rs/0.6/docs/concepts/verifiable_credentials/create.mdx similarity index 100% rename from docs/build/identity.rs/v0.6.0/docs/concepts/verifiable_credentials/create.mdx rename to docs/build/identity.rs/0.6/docs/concepts/verifiable_credentials/create.mdx diff --git a/docs/build/identity.rs/v0.6.0/docs/concepts/verifiable_credentials/overview.mdx b/docs/build/identity.rs/0.6/docs/concepts/verifiable_credentials/overview.mdx similarity index 100% rename from docs/build/identity.rs/v0.6.0/docs/concepts/verifiable_credentials/overview.mdx rename to docs/build/identity.rs/0.6/docs/concepts/verifiable_credentials/overview.mdx diff --git a/docs/build/identity.rs/v0.6.0/docs/concepts/verifiable_credentials/revocation.mdx b/docs/build/identity.rs/0.6/docs/concepts/verifiable_credentials/revocation.mdx similarity index 100% rename from docs/build/identity.rs/v0.6.0/docs/concepts/verifiable_credentials/revocation.mdx rename to docs/build/identity.rs/0.6/docs/concepts/verifiable_credentials/revocation.mdx diff --git a/docs/build/identity.rs/v0.6.0/docs/concepts/verifiable_credentials/verifiable_presentations.mdx b/docs/build/identity.rs/0.6/docs/concepts/verifiable_credentials/verifiable_presentations.mdx similarity index 100% rename from docs/build/identity.rs/v0.6.0/docs/concepts/verifiable_credentials/verifiable_presentations.mdx rename to docs/build/identity.rs/0.6/docs/concepts/verifiable_credentials/verifiable_presentations.mdx diff --git a/docs/build/identity.rs/v0.6.0/docs/contact.mdx b/docs/build/identity.rs/0.6/docs/contact.mdx similarity index 100% rename from docs/build/identity.rs/v0.6.0/docs/contact.mdx rename to docs/build/identity.rs/0.6/docs/contact.mdx diff --git a/docs/build/identity.rs/v0.6.0/docs/contribute.mdx b/docs/build/identity.rs/0.6/docs/contribute.mdx similarity index 100% rename from docs/build/identity.rs/v0.6.0/docs/contribute.mdx rename to docs/build/identity.rs/0.6/docs/contribute.mdx diff --git a/docs/build/identity.rs/v0.6.0/docs/decentralized_identity.mdx b/docs/build/identity.rs/0.6/docs/decentralized_identity.mdx similarity index 100% rename from docs/build/identity.rs/v0.6.0/docs/decentralized_identity.mdx rename to docs/build/identity.rs/0.6/docs/decentralized_identity.mdx diff --git a/docs/build/identity.rs/v0.6.0/docs/faq.mdx b/docs/build/identity.rs/0.6/docs/faq.mdx similarity index 100% rename from docs/build/identity.rs/v0.6.0/docs/faq.mdx rename to docs/build/identity.rs/0.6/docs/faq.mdx diff --git a/docs/build/identity.rs/v0.6.0/docs/getting_started/create_and_publish.mdx b/docs/build/identity.rs/0.6/docs/getting_started/create_and_publish.mdx similarity index 100% rename from docs/build/identity.rs/v0.6.0/docs/getting_started/create_and_publish.mdx rename to docs/build/identity.rs/0.6/docs/getting_started/create_and_publish.mdx diff --git a/docs/build/identity.rs/v0.6.0/docs/getting_started/install.mdx b/docs/build/identity.rs/0.6/docs/getting_started/install.mdx similarity index 100% rename from docs/build/identity.rs/v0.6.0/docs/getting_started/install.mdx rename to docs/build/identity.rs/0.6/docs/getting_started/install.mdx diff --git a/docs/build/identity.rs/v0.6.0/docs/getting_started/overview.mdx b/docs/build/identity.rs/0.6/docs/getting_started/overview.mdx similarity index 100% rename from docs/build/identity.rs/v0.6.0/docs/getting_started/overview.mdx rename to docs/build/identity.rs/0.6/docs/getting_started/overview.mdx diff --git a/docs/build/identity.rs/v0.6.0/docs/glossary.mdx b/docs/build/identity.rs/0.6/docs/glossary.mdx similarity index 100% rename from docs/build/identity.rs/v0.6.0/docs/glossary.mdx rename to docs/build/identity.rs/0.6/docs/glossary.mdx diff --git a/docs/build/identity.rs/v0.6.0/docs/introduction.mdx b/docs/build/identity.rs/0.6/docs/introduction.mdx similarity index 100% rename from docs/build/identity.rs/v0.6.0/docs/introduction.mdx rename to docs/build/identity.rs/0.6/docs/introduction.mdx diff --git a/docs/build/identity.rs/v0.6.0/docs/libraries/overview.mdx b/docs/build/identity.rs/0.6/docs/libraries/overview.mdx similarity index 100% rename from docs/build/identity.rs/v0.6.0/docs/libraries/overview.mdx rename to docs/build/identity.rs/0.6/docs/libraries/overview.mdx diff --git a/docs/build/identity.rs/v0.6.0/docs/libraries/rust/getting_started.mdx b/docs/build/identity.rs/0.6/docs/libraries/rust/getting_started.mdx similarity index 100% rename from docs/build/identity.rs/v0.6.0/docs/libraries/rust/getting_started.mdx rename to docs/build/identity.rs/0.6/docs/libraries/rust/getting_started.mdx diff --git a/docs/build/identity.rs/v0.6.0/docs/libraries/wasm/api_reference.mdx b/docs/build/identity.rs/0.6/docs/libraries/wasm/api_reference.mdx similarity index 100% rename from docs/build/identity.rs/v0.6.0/docs/libraries/wasm/api_reference.mdx rename to docs/build/identity.rs/0.6/docs/libraries/wasm/api_reference.mdx diff --git a/docs/build/identity.rs/v0.6.0/docs/libraries/wasm/getting_started.mdx b/docs/build/identity.rs/0.6/docs/libraries/wasm/getting_started.mdx similarity index 100% rename from docs/build/identity.rs/v0.6.0/docs/libraries/wasm/getting_started.mdx rename to docs/build/identity.rs/0.6/docs/libraries/wasm/getting_started.mdx diff --git a/docs/build/identity.rs/v0.6.0/docs/specs/did/iota_did_method_spec.mdx b/docs/build/identity.rs/0.6/docs/specs/did/iota_did_method_spec.mdx similarity index 100% rename from docs/build/identity.rs/v0.6.0/docs/specs/did/iota_did_method_spec.mdx rename to docs/build/identity.rs/0.6/docs/specs/did/iota_did_method_spec.mdx diff --git a/docs/build/identity.rs/v0.6.0/docs/specs/did/overview.mdx b/docs/build/identity.rs/0.6/docs/specs/did/overview.mdx similarity index 100% rename from docs/build/identity.rs/v0.6.0/docs/specs/did/overview.mdx rename to docs/build/identity.rs/0.6/docs/specs/did/overview.mdx diff --git a/docs/build/identity.rs/v0.6.0/docs/specs/didcomm/CHANGELOG.md b/docs/build/identity.rs/0.6/docs/specs/didcomm/CHANGELOG.md similarity index 100% rename from docs/build/identity.rs/v0.6.0/docs/specs/didcomm/CHANGELOG.md rename to docs/build/identity.rs/0.6/docs/specs/didcomm/CHANGELOG.md diff --git a/docs/build/identity.rs/v0.6.0/docs/specs/didcomm/overview.mdx b/docs/build/identity.rs/0.6/docs/specs/didcomm/overview.mdx similarity index 100% rename from docs/build/identity.rs/v0.6.0/docs/specs/didcomm/overview.mdx rename to docs/build/identity.rs/0.6/docs/specs/didcomm/overview.mdx diff --git a/docs/build/identity.rs/v0.6.0/docs/specs/didcomm/protocols/authentication.mdx b/docs/build/identity.rs/0.6/docs/specs/didcomm/protocols/authentication.mdx similarity index 100% rename from docs/build/identity.rs/v0.6.0/docs/specs/didcomm/protocols/authentication.mdx rename to docs/build/identity.rs/0.6/docs/specs/didcomm/protocols/authentication.mdx diff --git a/docs/build/identity.rs/v0.6.0/docs/specs/didcomm/protocols/connection.mdx b/docs/build/identity.rs/0.6/docs/specs/didcomm/protocols/connection.mdx similarity index 100% rename from docs/build/identity.rs/v0.6.0/docs/specs/didcomm/protocols/connection.mdx rename to docs/build/identity.rs/0.6/docs/specs/didcomm/protocols/connection.mdx diff --git a/docs/build/identity.rs/v0.6.0/docs/specs/didcomm/protocols/issuance.mdx b/docs/build/identity.rs/0.6/docs/specs/didcomm/protocols/issuance.mdx similarity index 100% rename from docs/build/identity.rs/v0.6.0/docs/specs/didcomm/protocols/issuance.mdx rename to docs/build/identity.rs/0.6/docs/specs/didcomm/protocols/issuance.mdx diff --git a/docs/build/identity.rs/v0.6.0/docs/specs/didcomm/protocols/post.mdx b/docs/build/identity.rs/0.6/docs/specs/didcomm/protocols/post.mdx similarity index 100% rename from docs/build/identity.rs/v0.6.0/docs/specs/didcomm/protocols/post.mdx rename to docs/build/identity.rs/0.6/docs/specs/didcomm/protocols/post.mdx diff --git a/docs/build/identity.rs/v0.6.0/docs/specs/didcomm/protocols/presentation.mdx b/docs/build/identity.rs/0.6/docs/specs/didcomm/protocols/presentation.mdx similarity index 100% rename from docs/build/identity.rs/v0.6.0/docs/specs/didcomm/protocols/presentation.mdx rename to docs/build/identity.rs/0.6/docs/specs/didcomm/protocols/presentation.mdx diff --git a/docs/build/identity.rs/v0.6.0/docs/specs/didcomm/protocols/revocation-options.mdx b/docs/build/identity.rs/0.6/docs/specs/didcomm/protocols/revocation-options.mdx similarity index 100% rename from docs/build/identity.rs/v0.6.0/docs/specs/didcomm/protocols/revocation-options.mdx rename to docs/build/identity.rs/0.6/docs/specs/didcomm/protocols/revocation-options.mdx diff --git a/docs/build/identity.rs/v0.6.0/docs/specs/didcomm/protocols/revocation.mdx b/docs/build/identity.rs/0.6/docs/specs/didcomm/protocols/revocation.mdx similarity index 100% rename from docs/build/identity.rs/v0.6.0/docs/specs/didcomm/protocols/revocation.mdx rename to docs/build/identity.rs/0.6/docs/specs/didcomm/protocols/revocation.mdx diff --git a/docs/build/identity.rs/v0.6.0/docs/specs/didcomm/protocols/signing.mdx b/docs/build/identity.rs/0.6/docs/specs/didcomm/protocols/signing.mdx similarity index 100% rename from docs/build/identity.rs/v0.6.0/docs/specs/didcomm/protocols/signing.mdx rename to docs/build/identity.rs/0.6/docs/specs/didcomm/protocols/signing.mdx diff --git a/docs/build/identity.rs/v0.6.0/docs/specs/didcomm/protocols/termination.mdx b/docs/build/identity.rs/0.6/docs/specs/didcomm/protocols/termination.mdx similarity index 100% rename from docs/build/identity.rs/v0.6.0/docs/specs/didcomm/protocols/termination.mdx rename to docs/build/identity.rs/0.6/docs/specs/didcomm/protocols/termination.mdx diff --git a/docs/build/identity.rs/v0.6.0/docs/specs/didcomm/resources/credential-info.mdx b/docs/build/identity.rs/0.6/docs/specs/didcomm/resources/credential-info.mdx similarity index 100% rename from docs/build/identity.rs/v0.6.0/docs/specs/didcomm/resources/credential-info.mdx rename to docs/build/identity.rs/0.6/docs/specs/didcomm/resources/credential-info.mdx diff --git a/docs/build/identity.rs/v0.6.0/docs/specs/didcomm/resources/problem-reports.mdx b/docs/build/identity.rs/0.6/docs/specs/didcomm/resources/problem-reports.mdx similarity index 100% rename from docs/build/identity.rs/v0.6.0/docs/specs/didcomm/resources/problem-reports.mdx rename to docs/build/identity.rs/0.6/docs/specs/didcomm/resources/problem-reports.mdx diff --git a/docs/build/identity.rs/v0.6.0/docs/specs/overview.mdx b/docs/build/identity.rs/0.6/docs/specs/overview.mdx similarity index 100% rename from docs/build/identity.rs/v0.6.0/docs/specs/overview.mdx rename to docs/build/identity.rs/0.6/docs/specs/overview.mdx diff --git a/docs/build/identity.rs/v0.6.0/docs/specs/revocation_bitmap_2022.mdx b/docs/build/identity.rs/0.6/docs/specs/revocation_bitmap_2022.mdx similarity index 100% rename from docs/build/identity.rs/v0.6.0/docs/specs/revocation_bitmap_2022.mdx rename to docs/build/identity.rs/0.6/docs/specs/revocation_bitmap_2022.mdx diff --git a/docs/build/identity.rs/v0.6.0/docs/tutorials/migrate-stronghold.mdx b/docs/build/identity.rs/0.6/docs/tutorials/migrate-stronghold.mdx similarity index 100% rename from docs/build/identity.rs/v0.6.0/docs/tutorials/migrate-stronghold.mdx rename to docs/build/identity.rs/0.6/docs/tutorials/migrate-stronghold.mdx diff --git a/docs/build/identity.rs/v0.6.0/docs/tutorials/overview.mdx b/docs/build/identity.rs/0.6/docs/tutorials/overview.mdx similarity index 100% rename from docs/build/identity.rs/v0.6.0/docs/tutorials/overview.mdx rename to docs/build/identity.rs/0.6/docs/tutorials/overview.mdx diff --git a/docs/build/identity.rs/v0.6.0/docs/tutorials/validate_university_degree.mdx b/docs/build/identity.rs/0.6/docs/tutorials/validate_university_degree.mdx similarity index 100% rename from docs/build/identity.rs/v0.6.0/docs/tutorials/validate_university_degree.mdx rename to docs/build/identity.rs/0.6/docs/tutorials/validate_university_degree.mdx diff --git a/docs/build/identity.rs/v0.6.0/docs/workflow.mdx b/docs/build/identity.rs/0.6/docs/workflow.mdx similarity index 100% rename from docs/build/identity.rs/v0.6.0/docs/workflow.mdx rename to docs/build/identity.rs/0.6/docs/workflow.mdx diff --git a/docs/build/identity.rs/v0.6.0/sidebars.js b/docs/build/identity.rs/0.6/sidebars.js similarity index 100% rename from docs/build/identity.rs/v0.6.0/sidebars.js rename to docs/build/identity.rs/0.6/sidebars.js diff --git a/docs/build/identity.rs/v0.6.0/static/.nojekyll b/docs/build/identity.rs/0.6/static/.nojekyll similarity index 100% rename from docs/build/identity.rs/v0.6.0/static/.nojekyll rename to docs/build/identity.rs/0.6/static/.nojekyll diff --git a/docs/build/identity.rs/v0.6.0/static/img/Banner/banner_decentralized_identity.svg b/docs/build/identity.rs/0.6/static/img/Banner/banner_decentralized_identity.svg similarity index 100% rename from docs/build/identity.rs/v0.6.0/static/img/Banner/banner_decentralized_identity.svg rename to docs/build/identity.rs/0.6/static/img/Banner/banner_decentralized_identity.svg diff --git a/docs/build/identity.rs/v0.6.0/static/img/Banner/banner_identity.svg b/docs/build/identity.rs/0.6/static/img/Banner/banner_identity.svg similarity index 100% rename from docs/build/identity.rs/v0.6.0/static/img/Banner/banner_identity.svg rename to docs/build/identity.rs/0.6/static/img/Banner/banner_identity.svg diff --git a/docs/build/identity.rs/v0.6.0/static/img/Banner/banner_identity_getting_started.svg b/docs/build/identity.rs/0.6/static/img/Banner/banner_identity_getting_started.svg similarity index 100% rename from docs/build/identity.rs/v0.6.0/static/img/Banner/banner_identity_getting_started.svg rename to docs/build/identity.rs/0.6/static/img/Banner/banner_identity_getting_started.svg diff --git a/docs/build/identity.rs/v0.6.0/static/img/Identity_icon.png b/docs/build/identity.rs/0.6/static/img/Identity_icon.png similarity index 100% rename from docs/build/identity.rs/v0.6.0/static/img/Identity_icon.png rename to docs/build/identity.rs/0.6/static/img/Identity_icon.png diff --git a/docs/build/identity.rs/v0.6.0/static/img/blockchain-bottleneck.gif b/docs/build/identity.rs/0.6/static/img/blockchain-bottleneck.gif similarity index 100% rename from docs/build/identity.rs/v0.6.0/static/img/blockchain-bottleneck.gif rename to docs/build/identity.rs/0.6/static/img/blockchain-bottleneck.gif diff --git a/docs/build/identity.rs/v0.6.0/static/img/didcomm/authentication.drawio.svg b/docs/build/identity.rs/0.6/static/img/didcomm/authentication.drawio.svg similarity index 100% rename from docs/build/identity.rs/v0.6.0/static/img/didcomm/authentication.drawio.svg rename to docs/build/identity.rs/0.6/static/img/didcomm/authentication.drawio.svg diff --git a/docs/build/identity.rs/v0.6.0/static/img/didcomm/connection.drawio.svg b/docs/build/identity.rs/0.6/static/img/didcomm/connection.drawio.svg similarity index 100% rename from docs/build/identity.rs/v0.6.0/static/img/didcomm/connection.drawio.svg rename to docs/build/identity.rs/0.6/static/img/didcomm/connection.drawio.svg diff --git a/docs/build/identity.rs/v0.6.0/static/img/didcomm/issuance.drawio.svg b/docs/build/identity.rs/0.6/static/img/didcomm/issuance.drawio.svg similarity index 100% rename from docs/build/identity.rs/v0.6.0/static/img/didcomm/issuance.drawio.svg rename to docs/build/identity.rs/0.6/static/img/didcomm/issuance.drawio.svg diff --git a/docs/build/identity.rs/v0.6.0/static/img/didcomm/post.drawio.svg b/docs/build/identity.rs/0.6/static/img/didcomm/post.drawio.svg similarity index 100% rename from docs/build/identity.rs/v0.6.0/static/img/didcomm/post.drawio.svg rename to docs/build/identity.rs/0.6/static/img/didcomm/post.drawio.svg diff --git a/docs/build/identity.rs/v0.6.0/static/img/didcomm/presentation.drawio.svg b/docs/build/identity.rs/0.6/static/img/didcomm/presentation.drawio.svg similarity index 100% rename from docs/build/identity.rs/v0.6.0/static/img/didcomm/presentation.drawio.svg rename to docs/build/identity.rs/0.6/static/img/didcomm/presentation.drawio.svg diff --git a/docs/build/identity.rs/v0.6.0/static/img/didcomm/revocation-options.drawio.svg b/docs/build/identity.rs/0.6/static/img/didcomm/revocation-options.drawio.svg similarity index 100% rename from docs/build/identity.rs/v0.6.0/static/img/didcomm/revocation-options.drawio.svg rename to docs/build/identity.rs/0.6/static/img/didcomm/revocation-options.drawio.svg diff --git a/docs/build/identity.rs/v0.6.0/static/img/didcomm/revocation.drawio.svg b/docs/build/identity.rs/0.6/static/img/didcomm/revocation.drawio.svg similarity index 100% rename from docs/build/identity.rs/v0.6.0/static/img/didcomm/revocation.drawio.svg rename to docs/build/identity.rs/0.6/static/img/didcomm/revocation.drawio.svg diff --git a/docs/build/identity.rs/v0.6.0/static/img/didcomm/signing.drawio.svg b/docs/build/identity.rs/0.6/static/img/didcomm/signing.drawio.svg similarity index 100% rename from docs/build/identity.rs/v0.6.0/static/img/didcomm/signing.drawio.svg rename to docs/build/identity.rs/0.6/static/img/didcomm/signing.drawio.svg diff --git a/docs/build/identity.rs/v0.6.0/static/img/didcomm/termination.drawio.svg b/docs/build/identity.rs/0.6/static/img/didcomm/termination.drawio.svg similarity index 100% rename from docs/build/identity.rs/v0.6.0/static/img/didcomm/termination.drawio.svg rename to docs/build/identity.rs/0.6/static/img/didcomm/termination.drawio.svg diff --git a/docs/build/identity.rs/v0.6.0/static/img/sequence-diagram.png b/docs/build/identity.rs/0.6/static/img/sequence-diagram.png similarity index 100% rename from docs/build/identity.rs/v0.6.0/static/img/sequence-diagram.png rename to docs/build/identity.rs/0.6/static/img/sequence-diagram.png diff --git a/docs/build/identity.rs/v0.6.0/static/img/tangle-bottleneck.gif b/docs/build/identity.rs/0.6/static/img/tangle-bottleneck.gif similarity index 100% rename from docs/build/identity.rs/v0.6.0/static/img/tangle-bottleneck.gif rename to docs/build/identity.rs/0.6/static/img/tangle-bottleneck.gif diff --git a/docs/build/identity.rs/0.7-alpha/docs/concepts/decentralized_identifiers/create.mdx b/docs/build/identity.rs/0.7-alpha/docs/concepts/decentralized_identifiers/create.mdx index fb8bbd20a33..0b80eccfc69 100644 --- a/docs/build/identity.rs/0.7-alpha/docs/concepts/decentralized_identifiers/create.mdx +++ b/docs/build/identity.rs/0.7-alpha/docs/concepts/decentralized_identifiers/create.mdx @@ -55,6 +55,6 @@ Once the transaction is confirmed, the `Alias ID` would be assigned and the DID ## Running a private network -In order to run the examples, a private network (sometimes also called a private Tangle) needs to run locally. You can refer to [Hornet wiki](/hornet/2.0.0-rc.6/how_tos/private_tangle) for instructions on how to run a private network. +In order to run the examples, a private network (sometimes also called a private Tangle) needs to run locally. You can refer to [Hornet wiki](/hornet/2.0-rc.6/how_tos/private_tangle) for instructions on how to run a private network. If your local private network uses different ports than Hornet, modify the API and faucet endpoints in the examples to match your local setup. diff --git a/docs/build/identity.rs/0.7-alpha/docs/libraries/wasm/getting_started.mdx b/docs/build/identity.rs/0.7-alpha/docs/libraries/wasm/getting_started.mdx index 4420b4a1823..53974bc0c30 100644 --- a/docs/build/identity.rs/0.7-alpha/docs/libraries/wasm/getting_started.mdx +++ b/docs/build/identity.rs/0.7-alpha/docs/libraries/wasm/getting_started.mdx @@ -64,7 +64,7 @@ The minimum supported version for node is: `v16` ## NodeJS Usage The following code creates a new IOTA DID Document suitable for publishing to a locally running private network. -See the [instructions](/hornet/2.0.0-rc.6/how_tos/private_tangle) on running your own private network. +See the [instructions](/hornet/2.0-rc.6/how_tos/private_tangle) on running your own private network. #1` means that the state of the chain has changed from block index diff --git a/docs/build/wasp/0.7.0/docs/guide/solo/invoking-sc.md b/docs/build/wasp-wasm/0.7/docs/how-tos/solo/invoking-sc.md similarity index 100% rename from docs/build/wasp/0.7.0/docs/guide/solo/invoking-sc.md rename to docs/build/wasp-wasm/0.7/docs/how-tos/solo/invoking-sc.md diff --git a/docs/build/wasp/0.7.0/docs/guide/wasm_vm/test.mdx b/docs/build/wasp-wasm/0.7/docs/how-tos/solo/test.mdx similarity index 82% rename from docs/build/wasp/0.7.0/docs/guide/wasm_vm/test.mdx rename to docs/build/wasp-wasm/0.7/docs/how-tos/solo/test.mdx index dcf0be3c86b..cd1ec4d6288 100644 --- a/docs/build/wasp/0.7.0/docs/guide/wasm_vm/test.mdx +++ b/docs/build/wasp-wasm/0.7/docs/how-tos/solo/test.mdx @@ -9,7 +9,6 @@ keywords: - Go description: Testing of smart contracts happens in the Solo testing environment. This enables synchronous, deterministic testing of smart contract functionality without the overhead of having to start nodes, set up a committee, and send transactions over the Tangle. - image: /img/logo/WASP_logo_dark.png --- @@ -27,7 +26,7 @@ combination with Solo to deploy chains and smart contracts and simulate transact Solo directly interacts with the ISC code, and therfore uses all the ISC-specific data types directly. Our Wasm smart contracts cannot access these types directly, because they run in a separate, sandboxed environment. Therefore, WasmLib implements its -[own versions](types.mdx) of these data types, and the VM layer acts as a data type +[own versions](../../reference/data-types/types.mdx) of these data types, and the VM layer acts as a data type translator between both systems. The impact of this type transformation used to be that to be able to write tests in the @@ -36,17 +35,17 @@ conversion functions, and exactly how to properly pass such data in and out of s contract function calls. This burdened the user with an unnecessary increased learning curve and countless unnecessary type conversions. -With the introduction of the [Schema Tool](usage.mdx), we were able to remove this +With the introduction of the [Schema Tool](../schema-tool/usage.mdx), we were able to remove this impedance mismatch and allow the users to test smart contract functionality in terms of the WasmLib data types and functions that they are already familiar with. To that end, we -introduced `SoloContext`, a new [Call Context](context.mdx) that specifically works with +introduced `SoloContext`, a new [Call Context](../../explanations/context.mdx) that specifically works with the Solo testing environment. We aimed to simplify the testing of smart contracts as much as possible, keeping the full Solo interface hidden as much as possible, but still available when necessary. The only concession we still have to make is to the language used. Because Solo only works in the Go language environment, we have to use the Go language version of the interface -code that the [Schema Tool](usage.mdx) generates when testing our smart contracts. Because +code that the [Schema Tool](../schema-tool/usage.mdx) generates when testing our smart contracts. Because WasmLib programming for Go, Rust, and TypeScript are practically identical, we feel that this is not unsurmountable. The WasmLib interfaces only differ slightly if language idiosyncrasies force differences in syntax or naming conventions. This hurdle used to be a @@ -74,7 +73,7 @@ func TestDeploy(t *testing.T) { The first line will automatically create a new chain, and upload and deploy the provided example `dividend` contract to this chain. It returns a `SoloContext` for further use. The second line verifies the existence of the deployed contract on the chain associated with -that [Call Context](context.mdx). +that [Call Context](../../explanations/context.mdx). Here is another part of the `dividend` test code, where you can see how we wrap repetitive calls to smart contract functions that are used in multiple tests: @@ -109,15 +108,15 @@ func dividendGetFactor(ctx *wasmsolo.SoloContext, member *wasmsolo.SoloAgent) ui As you can see, we pass the `SoloContext` and the parameters to the wrapper functions, -then use the `SoloContext` to create a [Function Descriptor](funcdesc.mdx) for the wrapped -function, pass any parameters through the its [Params](params.mdx) proxy, and then either -[`post()`](post.mdx) the function request or [`call()`](call.mdx) the function. Any -results returned are extracted through the descriptor's [Results](results.mdx) proxy, and +then use the `SoloContext` to create a [Function Descriptor](../schema-tool/funcdesc.mdx) for the wrapped +function, pass any parameters through the its [Params](../schema-tool/params.mdx) proxy, and then either +[`post()`](../schema-tool/post.mdx) the function request or [`call()`](../schema-tool/call.mdx) the function. Any +results returned are extracted through the descriptor's [Results](../schema-tool/results.mdx) proxy, and returned by the wrapper function. There is hardly any difference in the way the function interface is used within Wasm code -or within Solo test code. The [Call Context](context.mdx) knows how to properly -[`call()`](call.mdx) or [`post()`](post.mdx) the function call through the function +or within Solo test code. The [Call Context](../../explanations/context.mdx) knows how to properly +[`call()`](../schema-tool/call.mdx) or [`post()`](../schema-tool/post.mdx) the function call through the function descriptor. This makes for seamless testing of smart contracts. In the [next section](examples.mdx) we will go deeper into how the helper member functions diff --git a/docs/build/wasp/0.7.0/docs/guide/solo/the-l1-ledger.md b/docs/build/wasp-wasm/0.7/docs/how-tos/solo/the-l1-ledger.md similarity index 100% rename from docs/build/wasp/0.7.0/docs/guide/solo/the-l1-ledger.md rename to docs/build/wasp-wasm/0.7/docs/how-tos/solo/the-l1-ledger.md diff --git a/docs/build/wasp/0.7.0/docs/guide/solo/the-l2-ledger.md b/docs/build/wasp-wasm/0.7/docs/how-tos/solo/the-l2-ledger.md similarity index 95% rename from docs/build/wasp/0.7.0/docs/guide/solo/the-l2-ledger.md rename to docs/build/wasp-wasm/0.7/docs/how-tos/solo/the-l2-ledger.md index fdfccdd3882..358439bf95a 100644 --- a/docs/build/wasp/0.7.0/docs/guide/solo/the-l2-ledger.md +++ b/docs/build/wasp-wasm/0.7/docs/how-tos/solo/the-l2-ledger.md @@ -100,10 +100,10 @@ func TestTutorialAccounts(t *testing.T) { The example above creates a chain and a wallet with `utxodb.FundsFromFaucetAmount` base tokens on L1. Then, it sends 1 million tokens to the corresponding on-chain account by posting a -[`deposit`](/learn/smart-contracts/core_concepts/core_contracts/accounts#deposit) request to the -[`accounts` core contract](/learn/smart-contracts/core_concepts/core_contracts/accounts) on the chain. +[`deposit`](/wasp-wasm/reference/core-contracts/accounts#deposit) request to the +[`accounts` core contract](/wasp-wasm/reference/core-contracts/accounts) on the chain. -Finally, it sends a [`withdraw`](/learn/smart-contracts/core_concepts/core_contracts/accounts#withdraw) request to the `accounts` core +Finally, it sends a [`withdraw`](/wasp-wasm/reference/core-contracts/accounts#withdraw) request to the `accounts` core contract to get the tokens back to L1. Both requests are affected by the gas fees and the storage deposit. diff --git a/docs/build/wasp/0.7.0/docs/guide/wasm_vm/timelock.mdx b/docs/build/wasp-wasm/0.7/docs/how-tos/solo/timelock.mdx similarity index 98% rename from docs/build/wasp/0.7.0/docs/guide/wasm_vm/timelock.mdx rename to docs/build/wasp-wasm/0.7/docs/how-tos/solo/timelock.mdx index a6e9833f73e..4fb028f5711 100644 --- a/docs/build/wasp/0.7.0/docs/guide/wasm_vm/timelock.mdx +++ b/docs/build/wasp-wasm/0.7/docs/how-tos/solo/timelock.mdx @@ -10,7 +10,6 @@ keywords: - delay description: You can post a time-locked request by using the Delay() method. You can mint NFTs by using the MintNFT() method. - image: /img/logo/WASP_logo_dark.png --- @@ -125,7 +124,7 @@ this will happen in a separate goroutine in the background, so we explicitly wai request counters to catch up with the one request that is pending. The `WaitForPendingRequests()` method can also be used whenever a smart contract function -is known to [`post()`](post.mdx) a request to itself. Such requests are not immediately +is known to [`post()`](../schema-tool/post.mdx) a request to itself. Such requests are not immediately executed, but added to the backlog, so you need to wait for these pending requests to actually be processed. The advantage of having to explicitly wait for those requests is that you can inspect the in-between state, which means that you can test even a function diff --git a/docs/build/wasp/0.7.0/docs/guide/solo/view-sc.md b/docs/build/wasp-wasm/0.7/docs/how-tos/solo/view-sc.md similarity index 95% rename from docs/build/wasp/0.7.0/docs/guide/solo/view-sc.md rename to docs/build/wasp-wasm/0.7/docs/how-tos/solo/view-sc.md index 5f0503305c0..8147df7f92f 100644 --- a/docs/build/wasp/0.7.0/docs/guide/solo/view-sc.md +++ b/docs/build/wasp-wasm/0.7/docs/how-tos/solo/view-sc.md @@ -33,7 +33,7 @@ view entry point will result in an exception, returning all attached tokens to t Views are used to retrieve information about the smart contract's state, for example, to display on a website. Certain Solo methods such as `chain.GetInfo`, `chain.GetGasFeePolicy`, and `chain.L2Assets` call views of -the [core smart contracts](/learn/smart-contracts/core_concepts/core_contracts/overview) behind the scenes to retrieve the information +the [core smart contracts](/wasp-wasm/reference/core-contracts/overview) behind the scenes to retrieve the information about the chain or a specific smart contract. ## Decoding Results Returned by _PostRequestSync_ and _CallView_ diff --git a/docs/build/wasp/0.7.0/docs/guide/solo/what-is-solo.md b/docs/build/wasp-wasm/0.7/docs/how-tos/solo/what-is-solo.md similarity index 98% rename from docs/build/wasp/0.7.0/docs/guide/solo/what-is-solo.md rename to docs/build/wasp-wasm/0.7/docs/how-tos/solo/what-is-solo.md index ac6868c0604..006bf22ff6f 100644 --- a/docs/build/wasp/0.7.0/docs/guide/solo/what-is-solo.md +++ b/docs/build/wasp-wasm/0.7/docs/how-tos/solo/what-is-solo.md @@ -11,7 +11,6 @@ keywords: - validate smart contracts - install - how-to - --- # Testing Smart Contracts with Solo @@ -65,7 +64,7 @@ You will need a smart contract to test along with Solo. You can find example implementations of Wasm smart contracts, including source code and tests, in the Wasp repository’s [contracts/wasm folder](https://github.com/iotaledger/wasp/tree/develop/contracts/wasm). -For information on creating Wasm smart contracts, refer to the [Wasm VM chapter](../wasm_vm/intro.mdx). +For information on creating Wasm smart contracts, refer to the [Wasm VM chapter](../../introduction.mdx). The following sections will present some Solo usage examples. You can find the example code in the [Wasp repository](https://github.com/iotaledger/wasp/tree/develop/documentation/tutorial-examples). diff --git a/docs/build/wasp-wasm/0.7/docs/how-tos/view-account-balances.mdx b/docs/build/wasp-wasm/0.7/docs/how-tos/view-account-balances.mdx new file mode 100644 index 00000000000..09771af0901 --- /dev/null +++ b/docs/build/wasp-wasm/0.7/docs/how-tos/view-account-balances.mdx @@ -0,0 +1,170 @@ +--- +description: The Accounts contract provides the balance, totalAssets and accounts views. +image: /img/logo/WASP_logo_dark.png +keywords: + - smart contracts + - view + - account + - balances + - Rust + - Solo + - how to +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# View Account Balances + +The Accounts contract provides the following views: + +## `balance` + +Get the account balance of a specific account. + +### Parameters + +- `ParamAgentID`: account's AgentID. + +### Returns + +A map of `token ID -> amount` (the base token is identified by an empty token ID). + +### Examples + + + + +```go +balances := chain.L2Assets(agentID) +``` + + + + +```go +b := coreaccounts.ScFuncs.Balance(ctx) +b.Params.AgentID().SetValue(agentID) +b.Func.Call() +require.NoError(t, ctx.Err) +balances := b.Results.Balances() +``` + + + + +```rust +let b = coreaccounts::ScFuncs::balance(ctx); +b.params.agent_id().set_value(&agentID); +b.func.call(); +let balances = b.results.balances(); +``` + + + + +```go +b := coreaccounts.ScFuncs.Balance(ctx) +b.Params.AgentID().SetValue(agentID) +b.Func.Call() +balances := b.Results.Balances() +``` + + + + +--- + +## `totalAssets` + +Get the total funds controlled by the chain. + +### Returns + +- A map of [token_color] -> [amount] . + + + + +```go +balances := chain.L2TotalAssets() +``` + + + + +```go +b := coreaccounts.ScFuncs.TotalAssets(ctx) +b.Func.Call() +require.NoError(t, ctx.Err) +balances := b.Results.Balances() +``` + + + + +```rust +let b = coreaccounts::ScFuncs::total_assets(ctx); +b.func.call(); +let balances = b.results.balances(); +``` + + + + +```go +b := coreaccounts.ScFuncs.TotalAssets(ctx) +b.Func.Call() +balances := b.Results.Balances() +``` + + + + +--- + +## `accounts` + +Get a list of all accounts that exist on the chain. + +### Returns + +A list of accounts (Agent IDs). + + + + +```go +accounts := chain.L2Accounts() +``` + + + + +```go +a := coreaccounts.ScFuncs.Accounts(ctx) +a.Func.Call() +require.NoError(t, ctx.Err) +accounts := a.Results.AllAccounts() +``` + + + + +```rust +let a = coreaccounts::ScFuncs::accounts(ctx); +a.func.call(); +let accounts = a.results.all_accounts(); +``` + + + + +```go +a := coreaccounts.ScFuncs.Accounts(ctx) +a.Func.Call() +accounts := a.Results.AllAccounts() +``` + + + diff --git a/docs/build/wasp-wasm/0.7/docs/how-tos/withdraw-from-a-chain.mdx b/docs/build/wasp-wasm/0.7/docs/how-tos/withdraw-from-a-chain.mdx new file mode 100644 index 00000000000..c348e414ebe --- /dev/null +++ b/docs/build/wasp-wasm/0.7/docs/how-tos/withdraw-from-a-chain.mdx @@ -0,0 +1,60 @@ +--- +description: The `withdraw` endpoint sends L2 funds owned by the caller to their L1 address. +image: /img/logo/WASP_logo_dark.png +keywords: + - smart contracts + - withdraw + - transfer + - chain + - Rust + - Solo + - how to +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# How to Withdraw From a Chain + +The `withdraw` endpoint sends L2 funds owned by the caller to their L1 address. + + + + +```go +// withdraw from chain to wallet +req := solo.NewCallParams(accounts.Contract.Name, accounts.FuncWithdraw.Name) +_, err := chain.PostRequestSync(req.WithMaxAffordableGasBudget(), wallet) +require.NoError(t, err) +``` + + + + +```go +// withdraw from chain to wallet +w := coreaccounts.ScFuncs.Withdraw(ctx.Sign(wallet)) +w.Func.Post() +require.NoError(t, ctx.Err) +``` + + + + +```rust +// withdraw from chain to wallet +let w = coreaccounts::ScFuncs::withdraw(ctx.sign(wallet)); +w.func.post(); +``` + + + + +```go +// withdraw from chain to wallet +w := coreaccounts.ScFuncs.Withdraw(ctx.sign(wallet)) +w.Func.Post() +``` + + + diff --git a/docs/build/wasp-wasm/0.7/docs/introduction.mdx b/docs/build/wasp-wasm/0.7/docs/introduction.mdx new file mode 100644 index 00000000000..825a6d38daf --- /dev/null +++ b/docs/build/wasp-wasm/0.7/docs/introduction.mdx @@ -0,0 +1,71 @@ +--- +description: "Get to know IOTA Smart Contracts' flexible programming with Wasm VM, supporting a secure and dynamic smart contract development environment." +keywords: + - IOTA Smart Contracts + - Wasm VM + - Smart contract development + - WasmLib + - Supported languages +image: /img/wasm_vm/IscHost.png +--- + +# Introduction to the Wasm VM for ISC + +:::warning +The Wasm VM is in experimental state, showcasing ISC's "VM plugin" architecture. + +Experiment but avoid using it for production applications; opt for [EVM](/wasp-evm/introduction). +::: + +:::caution + +Smart Contracts are currently only compatible with the [Stardust protocol](/learn/protocols/stardust/introduction) and +therefore only compatible with the [Shimmer](/build/networks-endpoints/#shimmer) and +[Public Testnet networks](/build/networks-endpoints/#public-testnet). + +::: + +IOTA Smart Contracts (ISC) provide a sandboxed environment through an API, facilitating secure and deterministic interactions with ISC functions. This API supports any Virtual Machine (VM) aiming to build a system for smart contract code execution on ISC. + +![Wasp node ISC Host](/img/wasm_vm/IscHost.png) + +We offer a VM example utilizing [WebAssembly (Wasm)](https://webassembly.org/) as a compilation target, facilitated by the open-source [Wasmtime runtime](https://wasmtime.dev/). This setup encourages dynamic smart contract operations compiled to Wasm code, promoting security and adaptability with different programming languages. + +![Wasm VM](/img/wasm_vm/WasmVM.png) + +The Wasm VM operates with self-contained `WasmLib` libraries linked to individual Wasm codes, optimizing the ISC sandbox functionality and smart contract state storage access. + +## Supported Functionalities + +The ISC sandbox environment offers: + +- Smart contract metadata and state data access +- Request data retrieval for function calls +- Token management within the contract +- Utility functions from the host +- Smooth initiation of other smart contract functions +- Logging facility + +## Supported Languages + +The WasmLib started with [Rust](https://www.rust-lang.org/) support, expanding to include [Go](https://golang.org/) and [TypeScript](https://www.typescriptlang.org/) with the help of respective Wasm code generators: + +| Language | Wasm code generator | +| ---------- | -------------------------------------------------- | +| Go | [TinyGo](https://tinygo.org/) | +| Rust | [wasm-pack](https://rustwasm.github.io/wasm-pack/) | +| TypeScript | [AssemblyScript](https://www.assemblyscript.org/) | + +These generators maintain a common subset of their host language, aiming for a unified coding style to simplify the initiation into smart contract creation, welcoming developers with a C-style language background to quickly adapt. + +## Video Tutorial + + diff --git a/docs/build/wasp-wasm/0.7/docs/reference/core-contracts/accounts.md b/docs/build/wasp-wasm/0.7/docs/reference/core-contracts/accounts.md new file mode 100644 index 00000000000..8c4976745b6 --- /dev/null +++ b/docs/build/wasp-wasm/0.7/docs/reference/core-contracts/accounts.md @@ -0,0 +1,352 @@ +--- +description: 'The `accounts` contract keeps the ledger of on-chain accounts.' +image: /img/logo/WASP_logo_dark.png +keywords: + - core contracts + - accounts + - deposit + - withdraw + - assets + - balance + - reference +--- + +# The `accounts` Contract + +The `accounts` contract is one of the [core contracts](overview.md) on each IOTA Smart Contracts +chain. + +This contract keeps a consistent ledger of on-chain accounts in its state, +i.e. [the L2 ledger](../../explanations/how-accounts-work.md). + +--- + +## Entry Points + +The `accounts` contract provides functions to deposit and withdraw tokens, information about the assets deposited on the +chain, and the functionality to create and use foundries. + +### `deposit()` + +A no-op that has the side effect of crediting any transferred tokens to the sender's account. + +:::note Gas Fees + +As with every call, the gas fee is debited from the L2 account right after executing the request. + +::: + +### `withdraw()` + +Moves tokens from the caller's on-chain account to the caller's L1 address. The number of +tokens to be withdrawn must be specified via the allowance of the request. + +:::note Contract Account + +Because contracts does not have a corresponding L1 address it does not make sense to +have them call this function. It will fail with an error. + +::: + +:::note Storage Deposit + +A call to withdraw means that a L1 output will be created. Because of this, the withdrawn +amount must be able to cover the L1 storage deposit. Otherwise, it will fail. + +::: + +### `transferAllowanceTo(a AgentID)` + +Transfers the specified allowance from the sender's L2 account to the given L2 account on +the chain. + +#### Parameters + +- `a` (`AgentID`): The target L2 account. + +### `transferAccountToChain(g GasReserve)` + +Transfers the specified allowance from the sender SC's L2 account on +the target chain to the sender SC's L2 account on the origin chain. + +#### Parameters + +- `g` (`uint64`): Optional gas amount to reserve in the allowance for + the internal call to transferAllowanceTo(). Default 100 (MinGasFee). + +:::note Important Detailed Information + +[Read carefully before using this function.](xfer.md) + +::: + +### `foundryCreateNew(t TokenScheme) s SerialNumber` + +Creates a new foundry with the specified token scheme, and assigns the foundry to the sender. + +You can call this end point from the CLI using `wasp-cli chain create-foundry -h` + +#### Parameters + +- `t` ([`iotago::TokenScheme`](https://github.com/iotaledger/iota.go/blob/develop/token_scheme.go)): The token scheme + for the new foundry. + +The storage deposit for the new foundry must be provided via allowance (only the minimum required will be used). + +#### Returns + +- `s` (`uint32`): The serial number of the newly created foundry + +### `foundryModifySupply(s SerialNumber, d SupplyDeltaAbs, y DestroyTokens)` + +Mints or destroys tokens for the given foundry, which must be controlled by the caller. + +#### Parameters + +- `s` (`uint32`): The serial number of the foundry. +- `d` (positive `big.Int`): Amount to mint or destroy. +- `y` (optional `bool` - default: `false`): Whether to destroy tokens (`true`) or not (`false`). + +When minting new tokens, the storage deposit for the new output must be provided via an allowance. + +When destroying tokens, the tokens to be destroyed must be provided via an allowance. + +### `foundryDestroy(s SerialNumber)` + +Destroys a given foundry output on L1, reimbursing the storage deposit to the caller. The foundry must be owned by the +caller. + +:::warning + +This operation cannot be reverted. + +::: + +#### Parameters + +- `s` (`uint32`): The serial number of the foundry. + +### `mintNFT(I ImmutableData, a AgentID, C CollectionID, w WithdrawOnMint)` + +Mints an NFT with ImmutableData `I` that will be owned by the AgentID `a`. +It's possible to mint as part of a collection `C` (the caller must be the owner of the collection NFT to mint new NFTs as part of said collection). +The mint can be done directly to any L1 address (it is not necessary for the target to have an account on the chain) + +#### Parameters + +- `I` (`[]byte`): ImmutableData for the NFT. +- `a` (`AgentID`): AgentID that will be the owner of the NFT. +- `C` (optional `NFTID` - default empty): collectionID (NFTID) for the NFT. +- `w` (optional `bool` - default `false`): whether to withdrawal the NFT in the minting step (can only be `true` when the targetAgentID is a L1 address). + +#### Returns + +- `D` (`MintID`): the internal ID of the NFT at the time of minting that can be used by users/contracts to obtain the resulting NFTID on the next block + +--- + +## Views + +### `balance(a AgentID)` + +Returns the fungible tokens owned by the given Agent ID on the chain. + +#### Parameters + +- `a` (`AgentID`): The account Agent ID. + +#### Returns + +A map of [`TokenID`](#tokenid) => `big.Int`. An empty token ID (a string of zero length) represents the L1 base token. + +### `balanceBaseToken(a AgentID)` + +Returns the amount of base tokens owned by any AgentID `a` on the chain. + +#### Parameters + +- `a` (`AgentID`): The account Agent ID. + +#### Returns + +- `B` (`uint64`): The amount of base tokens in the account. + +### `balanceNativeToken(a AgentID, N TokenID)` + +Returns the amount of native tokens with Token ID `N` owned by any AgentID `a` on the chain. + +#### Parameters + +- `a` (`AgentID`): The account Agent ID. +- `N` ([`TokenID`](#tokenid)): The Token ID. + +#### Returns + +- `B` (`big.Int`): The amount of native tokens in the account. + +### `totalAssets()` + +Returns the sum of all fungible tokens controlled by the chain. + +#### Returns + +A map of [`TokenID`](#tokenid) => `big.Int`. An empty token ID (a string of zero length) represents the L1 base token. + +### `accounts()` + +Returns a list of all agent IDs that own assets on the chain. + +#### Returns + +A map of `AgentiD` => `0x01`. + +### `getNativeTokenIDRegistry()` + +Returns a list of all native tokenIDs that are owned by the chain. + +#### Returns + +A map of [`TokenID`](#tokenid) => `0x01` + +### `foundryOutput(s FoundrySerialNumber)` + +#### Parameters + +- `s` ([`FoundrySerialNumber`](#foundryserialnumber)): The Foundry serial number. + +#### Returns + +- `b`: [`iotago::FoundryOutput`](https://github.com/iotaledger/iota.go/blob/develop/output_foundry.go) + +### `accountNFTs(a AgentID)` + +Returns the NFT IDs for all NFTs owned by the given account. + +#### Parameters + +- `a` (`AgentID`): The account Agent ID + +#### Returns + +- `i` ([`Array`](https://github.com/iotaledger/wasp/blob/develop/packages/kv/collections/array.go) + of [`iotago::NFTID`](https://github.com/iotaledger/iota.go/blob/develop/output_nft.go)): + The NFT IDs owned by the account + +### `accountNFTAmount(a AgentID)` + +Returns the number of NFTs owned by the given account. + +#### Parameters + +- `a` (`AgentID`): The account Agent ID + +#### Returns + +- `A` (`uint32`) Amount of NFTs owned by the account + +### `accountNFTsInCollection(a AgentID)` + +Returns the NFT IDs for all NFTs in the given collection that are owned by the given account. + +#### Parameters + +- `a` (`AgentID`): The account Agent ID +- `C` (`NFTID`): The NFT ID of the collection + +#### Returns + +- `i` ([`Array`](https://github.com/iotaledger/wasp/blob/develop/packages/kv/collections/array.go) + of [`iotago::NFTID`](https://github.com/iotaledger/iota.go/blob/develop/output_nft.go)): + The NFT IDs in the collection owned by the account + +### `accountNFTAmountInCollection(a AgentID)` + +Returns the number of NFTs in the given collection that are owned by the given account. + +#### Parameters + +- `a` (`AgentID`): The account Agent ID +- `C` (`NFTID`): The NFT ID of the collection + +#### Returns + +- `A` (`uint32`) Amount of NFTs in the collection owned by the account + +### `accountFoundries(a AgentID)` + +Returns all foundries owned by the given account. + +#### Parameters + +- `a` (`AgentID`): The account Agent ID + +#### Returns + +A map of [`FoundrySerialNumber`](#foundryserialnumber) => `0x01` + +### `nftData(z NFTID)` + +Returns the data for a given NFT with ID `z` that is on the chain. + +#### Returns + +- `e`: [`NFTData`](#nftdata) + +### `NFTIDbyMintID(D MintID)` + +Returns the NFTID `z` for a given MintID `D`. + +#### Parameters + +- `D` (`MintID`): MintID producted at the time the NFT was minted + +#### Returns + +- `z` (`NFTID`): The ID of the NFT + +### `getAccountNonce(a AgentID)` + +Returns the current account nonce for a give AgentID `a`. +The account nonce is used to issue off-ledger requests. + +#### Parameters + +- `a` (`AgentID`): The account Agent ID. + +#### Returns + +- `n` (`uint64`): The account nonce. + +## Schemas + +### `FoundrySerialNumber` + +``` +FoundrySerialNumber = uint32 +``` + +### `TokenID` + +``` +TokenID = [38]byte +``` + +### `NFTID` + +``` +NFTID = [32]byte +``` + +### `MintID` + +``` +MintID = [6]byte +``` + +### `NFTData` + +`NFTData` is encoded as the concatenation of: + +- The issuer ([`iotago::Address`](https://github.com/iotaledger/iota.go/blob/develop/address.go)). +- The NFT metadata: the length (`uint16`) followed by the data bytes. +- The NFT owner (`AgentID`). diff --git a/docs/build/wasp-wasm/0.7/docs/reference/core-contracts/blob.md b/docs/build/wasp-wasm/0.7/docs/reference/core-contracts/blob.md new file mode 100644 index 00000000000..2c3e84e3bfa --- /dev/null +++ b/docs/build/wasp-wasm/0.7/docs/reference/core-contracts/blob.md @@ -0,0 +1,108 @@ +--- +description: The `blobs` contract maintains a registry of _blobs_ (a collection of arbitrary binary data) referenced from smart contracts via their hashes. +image: /img/logo/WASP_logo_dark.png +keywords: + - core contracts + - bloc + - binary data + - store + - get + - entry points + - views + - reference +--- + +# The `blob` Contract + +The `blob` contract is one of the [core contracts](overview.md) on each IOTA Smart Contracts chain. + +The objective of the `blob` contract is to maintain an on-chain registry of _blobs_. +A blob is a collection of named chunks of binary data. + +``` +: +: +... +: +``` + +Both names and chunks are arbitrarily long byte slices. + +Blobs can be used to store arbitrary data like, for example, a collection of Wasm binaries needed to deploy a smart contract. + +Each blob in the registry is referenced by its hash. The hash is deterministically calculated from the concatenation of all pieces: + +``` +blobHash = hash( fieldName1 || binaryChunk1 || fieldName2 || binaryChunk2 || ... || fieldNameN || binaryChunkN) +``` + +Usually, field names are short strings, but their interpretation is use-case specific. + +Two predefined field names are interpreted by the VM while deploying smart contracts from binary: + +- _fieldname_ = `"v"` is interpreted as the _VM type_. +- _fieldname_ = `"p"` is interpreted as the _smart contract program binary_. + +If the field `"v"` is equal to the string `"wasmtime"`, the binary chunk of `"p"` is interpreted as WebAssembly binary, executable by the Wasmtime interpreter. + +The blob describing a smart contract may contain extra fields (ignored by the VM), for example: + +``` +"v" : VM type +"p" : smart contract program binary +"d" : data schema for data exchange between smart contract and outside sources and consumers +"s" : program sources in .zip format +``` + +--- + +## Entry Points + +### `storeBlob()` + +Stores a new blob in the registry. + +#### Parameters + +The key/value pairs of the received parameters are interpreted as the field/chunk pairs of the blob. + +#### Returns + +- `hash` (`[32]byte`): The hash of the stored blob. + +--- + +## Views + +### `getBlobInfo(hash BlobHash)` + +Returns the size of each chunk of the blob. + +#### Parameters + +- `hash` (`[32]byte`): The hash of the blob. + +#### Returns + +``` +: (uint32) +... +: (uint32) +``` + +### `getBlobField(hash BlobHash, field BlobField)` + +Returns the chunk associated with the given blob field name. + +#### Parameters + +- `hash` (`[32]byte`): The hash of the blob. +- `field` (`[]byte`): The field name. + +#### Returns + +- `bytes` (`[]byte`): The chunk associated with the given field name. + +### `listBlobs()` + +Returns a list of pairs `blob hash`: `total size of chunks` (`uint32`) for all blobs in the registry. diff --git a/docs/build/wasp-wasm/0.7/docs/reference/core-contracts/blocklog.md b/docs/build/wasp-wasm/0.7/docs/reference/core-contracts/blocklog.md new file mode 100644 index 00000000000..af6f4a9552e --- /dev/null +++ b/docs/build/wasp-wasm/0.7/docs/reference/core-contracts/blocklog.md @@ -0,0 +1,202 @@ +--- +description: The `blocklog` contract keeps track of the blocks of requests processed by the chain. +image: /img/logo/WASP_logo_dark.png +keywords: + - core contracts + - blocklog + - views + - information + - request status + - receipts + - events + - reference +--- + +# The `blocklog` Contract + +The `blocklog` contract is one of the [core contracts](overview.md) on each IOTA Smart Contracts chain. + +The `blocklog` contract keeps track of the blocks of requests processed by the chain, providing views to get request +status, receipts, block, and event details. + +To avoid having a monotonically increasing state size, only the latest `N` +blocks (and their events and receipts) are stored. This parameter can be configured +when [deploying the chain](/wasp-cli/how-tos/setting-up-a-chain/). + +--- + +## Entry Points + +### `retryUnprocessable(u requestID)` + +Tries to retry a given request that was marked as "unprocessable". + +:::note +"Unprocessable" requests are on-ledger requests that do not include enough base tokens to cover the deposit fees (example if an user tries to deposit many native tokens in a single output but only includes the minimum possible amount of base tokens). Such requests will be collected into an "unprocessable list" and users are able to deposit more funds onto their on-chain account and retry them afterwards. +::: + +#### Parameters + +- `u` ([`isc::RequestID`](https://github.com/iotaledger/wasp/blob/develop/packages/isc/request.go)): The requestID to be retried. (sender of the retry request must match the sender of the "unprocessable" request) + +--- + +## Views + +### `getBlockInfo(n uint32)` + +Returns information about the block with index `n`. + +#### Parameters + +- `n`: (optional `uint32`) The block index. Default: the latest block. + +#### Returns + +- `n` (`uint32`):The block index. +- `i` ([`BlockInfo`](#blockinfo)):The information about the block. + +### `getRequestIDsForBlock(n uint32)` + +Returns a list with all request IDs in the block with block index `n`. + +#### Parameters + +- `n` (optional `uint32`):The block index. The default value is the latest block. + +#### Returns + +- `n` (`uint32`):The block index. +- `u`: ([`Array`](https://github.com/iotaledger/wasp/blob/develop/packages/kv/collections/array.go) + of [`RequestID`](#requestid)) + +### `getRequestReceipt(u RequestID)` + +Returns the receipt for the request with the given ID. + +#### Parameters + +- `u` ([`RequestID`](#requestid)):The request ID. + +#### Returns + +- `n` (`uint32`):The block index. +- `r` (`uint16`):The request index within the block. +- `d` ([`RequestReceipt`](#requestreceipt)):The request receipt. + +### `getRequestReceiptsForBlock(n uint32)` + +Returns all the receipts in the block with index `n`. + +#### Parameters + +- `n` (optional `uint32`):The block index. Defaults to the latest block. + +#### Returns + +- `n` (`uint32`):The block index. +- `d`: ([`Array`](https://github.com/iotaledger/wasp/blob/develop/packages/kv/collections/array.go) + of [`RequestReceipt`](#requestreceipt)) + +### `isRequestProcessed(u RequestID)` + +Returns whether the request with ID `u` has been processed. + +#### Parameters + +- `u` ([`RequestID`](#requestid)):The request ID. + +#### Returns + +- `p` (`bool`):Whether the request was processed or not. + +### `getEventsForRequest(u RequestID)` + +Returns the list of events triggered during the execution of the request with ID `u`. + +### Parameters + +- `u` ([`RequestID`](#requestid)):The request ID. + +#### Returns + +- `e`: ([`Array`](https://github.com/iotaledger/wasp/blob/develop/packages/kv/collections/array.go) of `[]byte`). + +### `getEventsForBlock(n blockIndex)` + +Returns the list of events triggered during the execution of all requests in the block with index `n`. + +#### Parameters + +- `n` (optional `uint32`):The block index. Defaults to the latest block. + +#### Returns + +- `e`: ([`Array`](https://github.com/iotaledger/wasp/blob/develop/packages/kv/collections/array.go) of `[]byte`). + +### `getEventsForContract(h Hname)` + +Returns a list of events triggered by the smart contract with hname `h`. + +#### Parameters + +- `h` (`hname`):The smart contract’s hname. +- `f` (optional `uint32` - default: `0`):"From" block index. +- `t` (optional `uint32` - default: `MaxUint32`):"To" block index. + +#### Returns + +- `e`: ([`Array`](https://github.com/iotaledger/wasp/blob/develop/packages/kv/collections/array.go) of `[]byte`) + +### `hasUnprocessable(u requestID)` + +Asserts whether or not a given requestID (`u`) is present in the "unprocessable list" + +#### Parameters + +- `u` ([`isc::RequestID`](https://github.com/iotaledger/wasp/blob/develop/packages/isc/request.go)): The requestID to be checked + +#### Returns + +- `x` ([`bool`]) Whether or not the request exists in the "unprocessable list" + +--- + +## Schemas + +### `RequestID` + +A `RequestID` is encoded as the concatenation of: + +- Transaction ID (`[32]byte`). +- Transaction output index (`uint16`). + +### `BlockInfo` + +`BlockInfo` is encoded as the concatenation of: + +- The block timestamp (`uint64` UNIX nanoseconds). +- Amount of requests in the block (`uint16`). +- Amount of successful requests (`uint16`). +- Amount of off-ledger requests (`uint16`). +- Anchor transaction ID ([`iotago::TransactionID`](https://github.com/iotaledger/iota.go/blob/develop/transaction.go)). +- Anchor transaction sub-essence hash (`[32]byte`). +- Previous L1 commitment (except for block index 0). + - Trie root (`[20]byte`). + - Block hash (`[20]byte`). +- Total base tokens in L2 accounts (`uint64`). +- Total storage deposit (`uint64`). +- Gas burned (`uint64`). +- Gas fee charged (`uint64`). + +### `RequestReceipt` + +`RequestReceipt` is encoded as the concatenation of: + +- Gas budget (`uint64`). +- Gas burned (`uint64`). +- Gas fee charged (`uint64`). +- The request ([`isc::Request`](https://github.com/iotaledger/wasp/blob/develop/packages/isc/request.go)). +- Whether the request produced an error (`bool`). +- If the request produced an error, the + [`UnresolvedVMError`](./errors.md#unresolvedvmerror). diff --git a/docs/build/wasp-wasm/0.7/docs/reference/core-contracts/errors.md b/docs/build/wasp-wasm/0.7/docs/reference/core-contracts/errors.md new file mode 100644 index 00000000000..d3d3db383a8 --- /dev/null +++ b/docs/build/wasp-wasm/0.7/docs/reference/core-contracts/errors.md @@ -0,0 +1,77 @@ +--- +description: 'The errors contract keeps a map of error codes to error message templates. These error codes are used in +request receipts.' +image: /img/logo/WASP_logo_dark.png +keywords: + +- smart contracts +- core +- root +- initialization +- entry points +- fees +- ownership +- views +- reference +--- + +# The `errors` Contract + +The `errors` contract is one of the [core contracts](overview.md) on each IOTA Smart Contracts +chain. + +The `errors` contract keeps a map of error codes to error message templates. +This allows contracts to store lengthy error strings only once and then reuse them by just providing the error code (and +optional extra values) when producing an error, thus saving storage and gas. + +--- + +## Entry Points + +### `registerError(m ErrorMessageFormat) c ErrorCode` + +Registers an error message template. + +#### Parameters + +- `m` (`string`): The error message template, which supports standard [go verbs](https://pkg.go.dev/fmt#hdr-Printing) + for variable printing. + +#### Returns + +- `c` (`ErrorCode`): The error code of the registered template + +--- + +## Views + +### `getErrorMessageFormat(c ErrorCode) m ErrorMessageFormat` + +Returns the message template stored for a given error code. + +#### Parameters + +- `c` (`ErrorCode`): The error code of the registered template. + +#### Returns + +- `m` (`string`): The error message template. + +--- + +## Schemas + +### `ErrorCode` + +`ErrorCode` is encoded as the concatenation of: + +- The contract hname(`hname`). +- The error ID, calculated as the hash of the error template(`uint16`). + +### `UnresolvedVMError` + +`UnresolvedVMError` is encoded as the concatenation of: + +- The error code ([`ErrorCode`](#errorcode)). +- CRC32 checksum of the formatted string (`uint32`). +- The JSON-encoded list of parameters for the template (`string` prefixed with `uint16` size). diff --git a/docs/build/wasp-wasm/0.7/docs/reference/core-contracts/evm.md b/docs/build/wasp-wasm/0.7/docs/reference/core-contracts/evm.md new file mode 100644 index 00000000000..9c9cb0ea038 --- /dev/null +++ b/docs/build/wasp-wasm/0.7/docs/reference/core-contracts/evm.md @@ -0,0 +1,170 @@ +--- +description: 'The evm core contract provides the necessary infrastructure to accept Ethereum transactions and execute +EVM code.' +image: /img/logo/WASP_logo_dark.png +keywords: + +- smart contracts +- core +- root +- initialization +- entry points +- fees +- ownership +- views +- reference +--- + +# The `evm` Contract + +The `evm` contract is one of the [core contracts](overview.md) on each IOTA Smart Contracts chain. + +The `evm` core contract provides the necessary infrastructure to accept Ethereum transactions and execute EVM code. +It also includes the implementation of the [ISC Magic contract](/wasp-evm/how-tos/magic-contract/magic). + +:::note + +For more information about how ISC supports EVM contracts, refer to the [EVM](/wasp-evm/introduction/) section. + +::: + +--- + +## Entry Points + +Most entry points of the `evm` core contract are meant to be accessed through the JSON-RPC service provided +automatically by the Wasp node so that the end users can use standard EVM tools like [MetaMask](https://metamask.io/). +We only list the entry points not exposed through the JSON-RPC interface in this document. + +### `init()` + +Called automatically when the ISC is deployed. + +Some parameters of the `evm` contract can be specified by passing them to the +[`root` contract `init` entry point](root.md#init): + +- `evmg` (optional [`GenesisAlloc`](#genesisalloc)): The genesis allocation. The balance of all accounts must be 0. +- `evmbk` (optional `int32` - default: keep all): Amount of EVM blocks to keep in the state. +- `evmchid` (optional `uint16` - default: 1074): EVM chain iD + + :::caution + + Re-using an existing Chain ID is not recommended and can be a security risk. For serious usage, register a unique + Chain ID on [Chainlist](https://chainlist.org/) and use that instead of the default. **It is not possible to change + the EVM chain ID after deployment.** + + ::: + +- `evmw` (optional [`GasRatio`](#gasratio) - default: `1:1`): The ISC to EVM gas ratio. + +### `registerERC20NativeToken` + +Registers an ERC20 contract to act as a proxy for the native tokens, at address +`0x107402xxxxxxxx00000000000000000000000000`, where `xxxxxxxx` is the +little-endian encoding of the foundry serial number. + +Only the foundry owner can call this endpoint. + +#### Parameters + +- `fs` (`uint32`): The foundry serial number +- `n` (`string`): The token name +- `t` (`string`): The ticker symbol +- `d` (`uint8`): The token decimals + +You can call this endpoint with the `wasp-cli register-erc20-native-token` command. See +`wasp-cli chain register-erc20-native-token -h` for instructions on how to use the command. + +### `registerERC20NativeTokenOnRemoteChain` + +Registers an ERC20 contract to act as a proxy for the native tokens **on another +chain**. + +The foundry must be controlled by this chain. Only the foundry owner can call +this endpoint. + +This endpoint is intended to be used in case the foundry is controlled by chain +A, and the owner of the foundry wishes to register the ERC20 contract on chain +B. In that case, the owner must call this endpoint on chain A with `target = +chain B`. The request to chain B is then sent as an on-ledger request. +After a few minutes, call +[`getERC20ExternalNativeTokensAddress`](#geterc20externalnativetokensaddress) +on chain B to find out the address of the ERC20 contract. + +#### Parameters + +- `fs` (`uint32`): The foundry serial number +- `n` (`string`): The token name +- `t` (`string`): The ticker symbol +- `d` (`uint8`): The token decimals +- `A` (`uint8`): The target chain address, where the ERC20 contract will be + registered. + +You can call this endpoint with the `wasp-cli register-erc20-native-token-on-remote-chain` command. See +`wasp-cli chain register-erc20-native-token-on-remote-chain -h` for instructions on how to use the command. + +### `registerERC20ExternalNativeToken` + +Registers an ERC20 contract to act as a proxy for the native tokens. + +Only an alias address can call this endpoint. + +If the foundry is controlled by another ISC chain, the foundry owner can call +[`registerERC20NativeTokenOnRemoteChain`](#registererc20nativetokenonchain) +on that chain, which will automatically call this endpoint on the chain set as +target. + +#### Parameters + +- `fs` (`uint32`): The foundry serial number +- `n` (`string`): The token name +- `t` (`string`): The ticker symbol +- `d` (`uint8`): The token decimals +- `T` (`TokenScheme`): The native token scheme + +### `registerERC721NFTCollection` + +Registers an ERC721 contract to act as a proxy for an NFT collection, at address +`0x107404xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx`, where `xxx...` is the first 17 +bytes of the collection ID. + +The call will fail if the address is taken by another collection with the same prefix. + +#### Parameters + +- `C` (`NTFID`): The collection ID + +--- + +## Views + +### `getERC20ExternalNativeTokensAddress` + +Returns the address of an ERC20 contract registered with +[`registerERC20NativeTokenOnRemoteChain`](#registererc20nativetokenonchain). + +Only the foundry owner can call this endpoint. + +#### Parameters + +- `N` (`NativeTokenID`): The native token ID + +--- + +## Schemas + +### `GenesisAlloc` + +`GenesisAlloc` is encoded as the concatenation of: + +- Amount of accounts `n` (`uint32`). +- `n` times: + - Ethereum address (`[]byte` prefixed with `uint32` size). + - Account code (`[]byte` prefixed with `uint32` size). + - Amount of storage key/value pairs `m`(`uint32`). + - `m` times: + - Key (`[]byte` prefixed with `uint32` size). + - Value(`[]byte` prefixed with `uint32` size). + - Account balance (must be 0)(`[]byte` prefixed with `uint32` size). + - Account nonce (`uint64`). + - Account private key (may be used for tests)(`uint64`). diff --git a/docs/build/wasp-wasm/0.7/docs/reference/core-contracts/governance.md b/docs/build/wasp-wasm/0.7/docs/reference/core-contracts/governance.md new file mode 100644 index 00000000000..dd8faaa0ab6 --- /dev/null +++ b/docs/build/wasp-wasm/0.7/docs/reference/core-contracts/governance.md @@ -0,0 +1,355 @@ +--- +description: 'The `governance` contract defines the set of identities that constitute the state controller, access nodes, +who is the chain owner, and the fees for request execution.' +image: /img/logo/WASP_logo_dark.png +keywords: + +- core contracts +- governance +- state controller +- identities +- chain owner +- rotate +- remove +- claim +- add +- chain info +- fee info +- reference +--- + +# The `governance` Contract + +The `governance` contract is one of the [core contracts](overview.md) on each IOTA Smart Contracts +chain. + +The `governance` contract provides the following functionalities: + +- It defines the identity set that constitutes the state controller (the entity that owns the state output via the chain + Alias Address). It is possible to add/remove addresses from the state controller (thus rotating the committee of + validators). +- It defines the chain owner (the L1 entity that owns the chain - initially whoever deployed it). The chain owner can + collect special fees and customize some chain-specific parameters. +- It defines the entities allowed to have an access node. +- It defines the fee policy for the chain (gas price, what token is used to pay for gas, and the validator fee share). + +--- + +## Fee Policy + +The Fee Policy looks like the following: + +```go +{ + GasPerToken Ratio32 // how many gas units are paid for each token + EVMGasRatio Ratio32 // the ratio at which EVM gas is converted to ISC gas + ValidatorFeeShare uint8 // percentage of the fees that are credited to the validators (0 - 100) +} +``` + +--- + +## Entry Points + +### `rotateStateController(S StateControllerAddress)` + +Called when the committee is about to be rotated to the new address `S`. + +If it succeeds, the next state transition will become a governance transition, thus updating the state controller in the +chain's Alias Output. If it fails, nothing happens. + +It can only be invoked by the chain owner. + +#### Parameters + +- `S` ([`iotago::Address`](https://github.com/iotaledger/iota.go/blob/develop/address.go)): The address of the next + state controller. Must be an + [allowed](#addallowedstatecontrolleraddresss-statecontrolleraddress) state controller address. + +### `addAllowedStateControllerAddress(S StateControllerAddress)` + +Adds the address `S` to the list of identities that constitute the state controller. + +It can only be invoked by the chain owner. + +#### Parameters + +- `S` ([`iotago::Address`](https://github.com/iotaledger/iota.go/blob/develop/address.go)): The address to add to the + set of allowed state controllers. + +### `removeAllowedStateControllerAddress(S StateControllerAddress)` + +Removes the address `S` from the list of identities that constitute the state controller. + +It can only be invoked by the chain owner. + +#### Parameters + +- `S` ([`iotago::Address`](https://github.com/iotaledger/iota.go/blob/develop/address.go)): The address to remove from + the set of allowed state controllers. + +### `delegateChainOwnership(o AgentID)` + +Sets the Agent ID `o` as the new owner for the chain. This change will only be effective +once [`claimChainOwnership`](#claimchainownership) is called by `o`. + +It can only be invoked by the chain owner. + +#### Parameters + +- `o` (`AgentID`): The Agent ID of the next chain owner. + +### `claimChainOwnership()` + +Claims the ownership of the chain if the caller matches the identity set +in [`delegateChainOwnership`](#delegatechainownershipo-agentid). + +### `setFeePolicy(g FeePolicy)` + +Sets the fee policy for the chain. + +#### Parameters + +- `g`: ([`FeePolicy`](#feepolicy)). + +It can only be invoked by the chain owner. + +### `setGasLimits(l GasLimits)` + +Sets the gas limits for the chain. + +#### Parameters + +- `l`: ([`GasLimits`](#gaslimits)). + +It can only be invoked by the chain owner. + +### `setEVMGasRatio(e Ratio32)` + +Sets the EVM gas ratio for the chain. + +#### Parameters + +- `e` ([`Ratio32`](#ratio32)): The EVM gas ratio. + +It can only be invoked by the chain owner. + +### `addCandidateNode(ip PubKey, ic Certificate, ia API, i ForCommittee)` + +Adds a node to the list of candidates. + +#### Parameters + +- `ip` (`[]byte`): The public key of the node to be added. +- `ic` (`[]byte`): The certificate is a signed binary containing both the node public key and their L1 address. +- `ia` (`string`): The API base URL for the node. +- `i` (optional `bool` - default: `false`): Whether the candidate node is being added to be part of the committee or + just an access node. + +It can only be invoked by the access node owner (verified via the Certificate field). + +### `revokeAccessNode(ip PubKey, ic Certificate, ia API, i ForCommittee)` + +Removes a node from the list of candidates. + +#### Parameters + +- `ip` (`[]byte`): The public key of the node to be removed. +- `ic` (`[]byte`): The certificate of the node to be removed. + +It can only be invoked by the access node owner (verified via the Certificate field). + +### `changeAccessNodes(n actions)` + +Iterates through the given map of actions and applies them. + +#### Parameters + +- `n` ([`Map`](https://github.com/iotaledger/wasp/blob/develop/packages/kv/collections/map.go) of `public key` => `byte`): + The list of actions to perform. Each byte value can be one of the following: + - `0`: Remove the access node from the access nodes list. + - `1`: Accept a candidate node and add it to the list of access nodes. + - `2`: Drop an access node from the access node and candidate lists. + +It can only be invoked by the chain owner. + +### `startMaintenance()` + +Starts the chain maintenance mode, meaning no further requests will be processed except +calls to the governance contract. + +It can only be invoked by the chain owner. + +### `stopMaintenance()` + +Stops the maintenance mode. + +It can only be invoked by the chain owner. + +### `setCustomMetadata(x bytes)` + +Changes optional extra metadata that is appended to the L1 AliasOutput. + +#### Parameters + +- `x` (`bytes`): the optional metadata + +### `setPayoutAgentID` + +`setPayoutAgentID` sets the payout AgentID. The default AgentID is the chain owner. Transaction fee will be taken to ensure the common account has minimum storage deposit which is in base token. The rest of transaction fee will be transferred to payout AgentID. + +#### Parameters + +- `s` (`AgentID`): the payout AgentID + +### `setMinCommonAccountBalance` + +`setMinCommonAccountBalance` sets the minimum balanced to be held in the common account. + +#### Parameters + +- `ms` (`AgentID`): the minimum common account balance + +--- + +## Views + +### `getAllowedStateControllerAddresses()` + +Returns the list of allowed state controllers. + +#### Returns + +- `a` ([`Array`](https://github.com/iotaledger/wasp/blob/develop/packages/kv/collections/array.go) + of [`iotago::Address`](https://github.com/iotaledger/iota.go/blob/develop/address.go)): The list of allowed state + controllers. + +### `getChainOwner()` + +Returns the AgentID of the chain owner. + +#### Returns + +- `o` (`AgentID`): The chain owner. + +### `getChainInfo()` + +Returns information about the chain. + +#### Returns: + +- `c` (`ChainID`): The chain ID +- `o` (`AgentID`): The chain owner +- `g` ([`FeePolicy`](#feepolicy)): The gas fee policy +- `l` ([`GasLimits`](#gaslimits)): The gas limits +- `x` (`bytes`): The custom metadata + +### `getFeePolicy()` + +Returns the gas fee policy. + +#### Returns + +- `g` ([`FeePolicy`](#feepolicy)): The gas fee policy. + +### `getEVMGasRatio` + +Returns the ISC : EVM gas ratio. + +#### Returns + +- `e` ([`Ratio32`](#ratio32)): The ISC : EVM gas ratio. + +### `getGasLimits()` + +Returns the gas limits. + +#### Returns + +- `l` ([`GasLimits`](#gaslimits)): The gas limits. + +### `getChainNodes()` + +Returns the current access nodes and candidates. + +#### Returns + +- `ac` ([`Map`](https://github.com/iotaledger/wasp/blob/develop/packages/kv/collections/map.go) + of public key => `0x01`): The access nodes. +- `an` ([`Map`](https://github.com/iotaledger/wasp/blob/develop/packages/kv/collections/map.go) + of public key => [`AccessNodeInfo`](#accessnodeinfo)): The candidate nodes. + +### `getMaintenanceStatus()` + +Returns whether the chain is undergoing maintenance. + +#### Returns + +- `m` (`bool`): `true` if the chain is in maintenance mode + +### `getCustomMetadata()` + +Returns the extra metadata that is added to the chain AliasOutput. + +#### Returns + +- `x` (`bytes`): the optional metadata + +### `getPayoutAgentID` + +`getPayoutAgentID` gets the payout AgentID. + +Returns the payout AgentID of the chain. + +#### Returns + +- `s` (`AgentID`): the payout AgentID. + +### `getMinCommonAccountBalance` + +`getMinCommonAccountBalance` returns the minimum balanced to be held in the common account. + +#### Returns + +- `ms` (`uint64`): the minimum storage deposit. + +## Schemas + +### `Ratio32` + +A ratio between two values `x` and `y`, expressed as two `int32` numbers `a:b`, where `y = x * b/a`. + +`Ratio32` is encoded as the concatenation of the two `uint32` values `a` & `b`. + +### `FeePolicy` + +`FeePolicy` is encoded as the concatenation of: + +- The [`TokenID`](accounts.md#tokenid) of the token used to charge for gas. (`iotago.NativeTokenID`) + - If this value is `nil`, the gas fee token is the base token. +- Gas per token ([`Ratio32`](#ratio32)): expressed as an `a:b` (`gas/token`) ratio, meaning how many gas units each token pays for. +- Validator fee share. Must be between 0 and 100, meaning the percentage of the gas fees distributed to the + validators. (`uint8`) +- The ISC:EVM gas ratio ([`Ratio32`](#ratio32)): such that `ISC gas = EVM gas * a/b`. + +### `GasLimits` + +`GasLimits` is encoded as the concatenation of: + +- The maximum gas per block (`uint64`). A request that exceeds this limit is + skipped and processed in the next block. +- The minimum gas per request (`uint64`). If a request consumes less than this + value, it is charged for this instead. +- The maximum gas per request (`uint64`). If a request exceeds this limit, it + is rejected as failed. +- The maximum gas per external view call (`uint64). This is the gas budget + assigned to external view calls. + +### `AccessNodeInfo` + +`AccessNodeInfo` is encoded as the concatenation of: + +- The validator address. (`[]byte` prefixed by `uint16` size) +- The certificate. (`[]byte` prefixed by `uint16` size) +- Whether the access node is part of the committee of validators. (`bool`) +- The API base URL. (`string` prefixed by `uint16` size) diff --git a/docs/build/wasp-wasm/0.7/docs/reference/core-contracts/overview.md b/docs/build/wasp-wasm/0.7/docs/reference/core-contracts/overview.md new file mode 100644 index 00000000000..2f88072657d --- /dev/null +++ b/docs/build/wasp-wasm/0.7/docs/reference/core-contracts/overview.md @@ -0,0 +1,37 @@ +--- +description: There currently are 6 core smart contracts that are always deployed on each chain, root, _default, accounts, blob, blocklog, and governance. +image: /img/Banner/banner_wasp_core_contracts_overview.png +keywords: + - smart contracts + - core + - initialization + - request handling + - on-chain ledger + - accounts + - data + - receipts + - reference +--- + +# Core Contracts + +![Wasp Node Core Contracts Overview](/img/Banner/banner_wasp_core_contracts_overview.png) + +There are currently 7 core smart contracts that are always deployed on each +chain. These are responsible for the vital functions of the chain and +provide infrastructure for all other smart contracts: + +- [`root`](./root.md): Responsible for the initialization of the chain, maintains registry of deployed contracts. + +- [`accounts`](./accounts.md): Manages the on-chain ledger of accounts. + +- [`blob`](./blob.md): Responsible for the registry of binary objects of arbitrary size. + +- [`blocklog`](./blocklog.md): Keeps track of the blocks and receipts of requests that were processed by the chain. + +- [`governance`](./governance.md): Handles the administrative functions of the chain. For example: rotation of the committee of validators of the chain, fees and other chain-specific configurations. + +- [`errors`](./errors.md): Keeps a map of error codes to error messages templates. These error codes are used in request receipts. + +- [`evm`](./evm.md): Provides the necessary infrastructure to accept Ethereum + transactions and execute EVM code. diff --git a/docs/build/wasp-wasm/0.7/docs/reference/core-contracts/root.md b/docs/build/wasp-wasm/0.7/docs/reference/core-contracts/root.md new file mode 100644 index 00000000000..9ff834a509f --- /dev/null +++ b/docs/build/wasp-wasm/0.7/docs/reference/core-contracts/root.md @@ -0,0 +1,121 @@ +--- +description: 'The root contract is the first smart contract deployed on the chain. It functions as a smart contract +factory for the chain.' +image: /img/logo/WASP_logo_dark.png +keywords: + +- smart contracts +- core +- root +- initialization +- entry points +- fees +- ownership +- views +- reference +--- + +# The `root` Contract + +The `root` contract is one of the [core contracts](overview.md) on each IOTA Smart Contracts +chain. + +The `root` contract is responsible for the initialization of the chain. +It is the first smart contract deployed on the chain and, upon receiving the `init` request, bootstraps the state of the +chain. +Deploying all of the other core contracts is a part of the state initialization. + +The `root` contract also functions as a smart contract factory for the chain: upon request, it deploys other smart +contracts and maintains an on-chain registry of smart contracts in its state. +The contract registry keeps a list of contract records containing their respective name, hname, description, and +creator. + +--- + +## Entry Points + +### `init()` + +The constructor. Automatically called immediately after confirmation of the origin transaction and never called again. +When executed, this function: + +- Initializes base values of the chain according to parameters. +- Sets the caller as the _chain owner_. +- Deploys all the core contracts. + +### `deployContract(ph ProgramHash, nm Name, ds Description)` + +Deploys a non-EVM smart contract on the chain if the caller has deployment permission. + +#### Parameters + +- `ph` (`[32]byte`): The hash of the binary _blob_ (that has been previously stored in the [`blob` contract](blob.md)). +- `nm` (`string`): The name of the contract to be deployed, used to calculate the + contract's _hname_. The hname must be unique among all contract hnames in the chain. +- `ds` (`string`): Description of the contract to be deployed. + +Any other parameters that are passed to the deployContract function will be passed on to +the `init` function of the smart contract being deployed. Note that this means that the +init parameter names cannot be the above ones, as they will have been filtered out. + +### `grantDeployPermission(dp AgentID)` + +The chain owner grants deploy permission to the agent ID `dp`. + +#### Parameters + +`dp`(AgentID): The agent ID. + +### `revokeDeployPermission(dp AgentID)` + +The chain owner revokes the deploy permission of the agent ID `dp`. + +#### Parameters + +`dp`(AgentID): The agent ID. + +### `requireDeployPermissions(de DeployPermissionsEnabled)` + +#### Parameters + +- `de` (`bool`): Whether permissions should be required to deploy a contract on the chain. + +By default, permissions are enabled (addresses need to be granted the right to deploy), but the chain owner can override +this setting to allow anyone to deploy contracts on the chain. + +--- + +## Views + +### `findContract(hn Hname)` + +Returns the record for a given smart contract with Hname `hn` (if it exists). + +#### Parameters + +`hn`: The smart contract’s Hname + +#### Returns + +- `cf` (`bool`): Whether or not the contract exists. +- `dt` ([`ContractRecord`](#contractrecord)): The requested contract record (if it exists). + +### `getContractRecords()` + +Returns the list of all smart contracts deployed on the chain and related records. + +#### Returns + +A map of `Hname` => [`ContractRecord`](#contractrecord) + +--- + +## Schemas + +### `ContractRecord` + +A `ContractRecord` is encoded as the concatenation of: + +- Program hash (`[32]byte`). +- Contract description (`string`). +- Contract name (`string`). diff --git a/docs/build/wasp-wasm/0.7/docs/reference/core-contracts/xfer.md b/docs/build/wasp-wasm/0.7/docs/reference/core-contracts/xfer.md new file mode 100644 index 00000000000..f515cc9c0ba --- /dev/null +++ b/docs/build/wasp-wasm/0.7/docs/reference/core-contracts/xfer.md @@ -0,0 +1,71 @@ +--- +description: 'The `transferAccountToChain` contract needs special consideration.' +image: /img/logo/WASP_logo_dark.png +keywords: + - core contracts + - accounts + - deposit + - withdraw + - assets + - balance + - reference +--- + +# `accounts.transferAccountToChain` + +The `transferAccountToChain` function of the `accounts` contract is one that needs +careful consideration before use. Make sure you understand precisely how to use it to +prevent + +--- + +## Entry Point + +### `transferAccountToChain(g GasReserve)` + +Transfers the specified allowance from the sender SC's L2 account on +the target chain to the sender SC's L2 account on the origin chain. + +Caller must be a contract, and we will transfer the allowance from its L2 account +on the target chain to its L2 account on the origin chain. This requires that +this function takes the allowance into custody and in turn sends the assets as +allowance to the origin chain, where that chain's accounts.TransferAllowanceTo() +function then transfers it into the caller's L2 account on that chain. + +#### Parameters + +- `g` (`uint64`): Optional gas amount to reserve in the allowance for + the internal call to transferAllowanceTo(). Default 100 (MinGasFee). + But better to provide it so that it matches the fee structure. + +### IMPORTANT CONSIDERATIONS: + +1. The caller contract needs to provide sufficient base tokens in its + allowance, to cover the gas fee GAS1 for this request. + Note that this amount depends on the fee structure of the target chain, + which can be different from the fee structure of the caller's own chain. + +2. The caller contract also needs to provide sufficient base tokens in + its allowance, to cover the gas fee GAS2 for the resulting request to + accounts.TransferAllowanceTo() on the origin chain. The caller needs to + also specify this GAS2 amount through the GasReserve parameter. + +3. The caller contract also needs to provide a storage deposit SD with + this request, holding enough base tokens _independent_ of the GAS1 and + GAS2 amounts. + Since this storage deposit is dictated by L1 we can use this amount as + storage deposit for the resulting accounts.TransferAllowanceTo() request, + where it will then be returned to the caller as part of the transfer. + +4. This means that the caller contract needs to provide at least + GAS1 + GAS2 + SD base tokens as assets to this request, and provide an + allowance to the request that is exactly GAS2 + SD + transfer amount. + Failure to meet these conditions may result in a failed request and + worst case the assets sent to accounts.TransferAllowanceTo() could be + irretrievably locked up in an account on the origin chain that belongs + to the accounts core contract of the target chain. + +5. The caller contract needs to set the gas budget for this request to + GAS1 to guard against unanticipated changes in the fee structure that + raise the gas price, otherwise the request could accidentally cannibalize + GAS2 or even SD, with potential failure and locked up assets as a result. diff --git a/docs/build/wasp/0.7.0/docs/guide/wasm_vm/types.mdx b/docs/build/wasp-wasm/0.7/docs/reference/data-types/types.mdx similarity index 89% rename from docs/build/wasp/0.7.0/docs/guide/wasm_vm/types.mdx rename to docs/build/wasp-wasm/0.7/docs/reference/data-types/types.mdx index 5800301bf6e..df95213b20b 100644 --- a/docs/build/wasp/0.7.0/docs/guide/wasm_vm/types.mdx +++ b/docs/build/wasp-wasm/0.7/docs/reference/data-types/types.mdx @@ -8,7 +8,6 @@ keywords: - reference description: The WasmLib provides direct support for the basic value data types that are found in all programming languages, and WasmLib versions of ISC-specific value data types. - image: /img/logo/WASP_logo_dark.png --- @@ -24,7 +23,7 @@ as human-readable text string. These are mostly simple built-in scalar data types as provided by most programming languages. Each integer data type has a clearly defined storage size. The -[Schema Tool](usage.mdx) will attempt to use the closest matching built-in data type when +[Schema Tool](../../how-tos/schema-tool/usage.mdx)) will attempt to use the closest matching built-in data type when generating code for a specific language. - `BigInt` - An arbitrary-length unsigned integer. @@ -58,7 +57,7 @@ More detailed explanations about their specific uses can be found in the ## Full Matrix of WasmLib Types -WasmLib implements a full set of [value proxies](proxies.mdx#value-proxies) for each +WasmLib implements a full set of [value proxies](../../explanations/proxies.mdx#value-proxies) for each predefined value type that provide access to data on the ISC host. But there is one aspect of this data that we have not considered yet. Some data provided by the host is mutable, whereas other data may be immutable. To facilitate this distinction, each value proxy type @@ -100,11 +99,8 @@ The consistent naming makes it easy to remember the type names. Bool, Bytes, Str the integer types are the odd ones out. They are implemented in WasmLib by the closest equivalents in the chosen WasmLib implementation programming language. -The [Schema Tool](usage.mdx) will automatically generate the proper (im)mutable proxies +The [Schema Tool](../../how-tos/schema-tool/usage.mdx) will automatically generate the proper (im)mutable proxies from the schema definition. For example, View functions will only be able to access the -[State](state.mdx) map through immutable proxies. The same goes for the -[Params](params.mdx) map that was passed into a Func or View, and for the -[Results](results.mdx) map that was returned from a call to a Func or View. - -In the next section we will show how use these predefined types to create user-defined -[Structured Data Types](structs.mdx). +[State](../../how-tos/schema-tool/state.mdx) map through immutable proxies. The same goes for the +[Params](../../how-tos/schema-tool/params.mdx) map that was passed into a Func or View, and for the +[Results](../../how-tos/schema-tool/results.mdx) map that was returned from a call to a Func or View. diff --git a/docs/build/wasp/0.7.0/docs/testnet.md b/docs/build/wasp-wasm/0.7/docs/testnet.md similarity index 100% rename from docs/build/wasp/0.7.0/docs/testnet.md rename to docs/build/wasp-wasm/0.7/docs/testnet.md diff --git a/docs/build/wasp/0.7.0/docs/guide/wasm_vm/example_projects/fair_roulette.md b/docs/build/wasp-wasm/0.7/docs/tutorials/fair_roulette.md similarity index 95% rename from docs/build/wasp/0.7.0/docs/guide/wasm_vm/example_projects/fair_roulette.md rename to docs/build/wasp-wasm/0.7/docs/tutorials/fair_roulette.md index e863018d6b9..6e736d03afb 100644 --- a/docs/build/wasp/0.7.0/docs/guide/wasm_vm/example_projects/fair_roulette.md +++ b/docs/build/wasp-wasm/0.7/docs/tutorials/fair_roulette.md @@ -52,13 +52,13 @@ There are two ways to interact with smart contracts. #### On Ledger Requests -See: [On-ledger Requests](/learn/smart-contracts/core_concepts/invocation#on-ledger) +See: [On-ledger Requests](/learn/smart-contracts/invocation#on-ledger) On-ledger requests are sent to GoShimmer nodes. Wasp periodically requests new On-ledger requests from GoShimmer nodes, and handles them accordingly. These messages are validated through the network and take some time to be processed. #### Off Ledger Requests -See: [Off-ledger Requests](/learn/smart-contracts/core_concepts/invocation#off-ledger) +See: [Off-ledger Requests](/learn/smart-contracts/invocation#off-ledger) Off-ledger requests are directly sent to Wasp nodes and do not require validation through GoShimmer nodes. They are therefore faster. However, they require an initial deposit of funds to a chain account as this account will initiate required On-ledger requests on behalf of the desired contract or player. @@ -95,7 +95,7 @@ To interact with a smart contract, you will need: The PoC consists of two projects residing in `contracts/wasm/fairroulette`. -One is the smart contract itself. Its boilerplate was generated using the new [Schema tool](/smart-contracts/guide/wasm_vm/intro) which is shipped with this beta release. +One is the smart contract itself. Its boilerplate was generated using the new [Schema tool](/wasp-wasm/introduction/) which is shipped with this beta release. The contract logic is written in Rust, but the same implementation can be achieved interchangeably with Golang and Assemblyscript which is demonstrated in the root folder and `./src`. @@ -105,7 +105,7 @@ This frontend sends On-ledger requests to place bets towards the fair roulette s ### The Smart Contract -See: [Anatomy of a Smart Contract](/learn/smart-contracts/core_concepts/smart-contract-anatomy) +See: [Anatomy of a Smart Contract](/learn/smart-contracts/smart-contract-anatomy) As the smart contract is the only actor that is allowed to modify state in the context of the game, it needs to handle a few tasks such as: @@ -232,13 +232,13 @@ This transaction also requires an address to send the request to, and also a var For Wasp, the address to send funds to is the chainId. ::: -See: [Invoking](/smart-contracts/guide/solo/invoking-sc) +See: [Invoking](/wasp-wasm/how-tos/solo/invoking-sc) ##### CallView The [callView](https://github.com/iotaledger/wasp/blob/7b3ddc54891ccf021c7aaa32db35d88361fade16/contracts/wasm/fairroulette/frontend/src/lib/fairroulette_client/fair_roulette_service.ts#L165) function is responsible for calling smart contract view functions. -See: [Calling a view](/smart-contracts/guide/solo/view-sc) +See: [Calling a view](/wasp-wasm/how-tos/solo/view-sc) To give access to the smart contracts state, you can use view functions to return selected parts of the state. @@ -284,7 +284,7 @@ cp config.dev.sample.js config.dev.js Make sure to update the config values according to your setup. -The `chainId` is the chainId which gets defined after [deploying a chain](/wasp/setting-up-a-chain#deploy-the-isc-chain). You can get your chain id from your dashboard, or list all chains by running: +The `chainId` is the chainId which gets defined after [deploying a chain](/wasp-cli/how-tos/setting-up-a-chain/#deploy-the-isc-chain). You can get your chain id from your dashboard, or list all chains by running: ```shell wasp-cli chain list @@ -309,7 +309,7 @@ If you want to expose the dev server to the public, it might be required to bind ## Deployment -You should follow the [Deployment](/wasp/setting-up-a-chain#deploy-the-isc-chain) documentation until you reach the `deploy-contract` command. +You should follow the [Deployment](/wasp-cli/how-tos/setting-up-a-chain/#deploy-the-isc-chain) documentation until you reach the `deploy-contract` command. The deployment of a contract requires funds to be deposited to the **chain**. You can do this by executing the following command from the directory where your Wasp node was configured: diff --git a/docs/build/wasp-wasm/0.7/sidebars.js b/docs/build/wasp-wasm/0.7/sidebars.js new file mode 100644 index 00000000000..77e9b238512 --- /dev/null +++ b/docs/build/wasp-wasm/0.7/sidebars.js @@ -0,0 +1,294 @@ +/** + * Creating a sidebar enables you to: + - create an ordered group of docs + - render a sidebar for each doc of that group + - provide next/previous navigation + + The sidebars can be generated from the filesystem, or explicitly defined here. + + Create as many sidebars as you want. + */ + +module.exports = { + // By default, Docusaurus generates a sidebar from the docs folder structure + //tutorialSidebar: [{type: 'autogenerated', dirName: '.'}], + + // But you can create a sidebar manually + wasmSidebar: [ + { + type: 'doc', + label: 'Wasm VM for ISC', + id: 'introduction', + }, + { + type: 'category', + label: 'Explanations', + items: [ + { + type: 'doc', + label: 'How Accounts Work', + id: 'explanations/how-accounts-work', + }, + { + type: 'doc', + label: 'Call Context', + id: 'explanations/context', + }, + { + type: 'doc', + label: 'Data Access Proxies', + id: 'explanations/proxies', + }, + ], + }, + { + type: 'category', + label: 'How To', + items: [ + { + type: 'category', + label: 'Use the Schema Tool', + items: [ + { + type: 'doc', + label: 'Introduction', + id: 'how-tos/schema-tool/introduction', + }, + { + type: 'doc', + label: 'Create a Schema', + id: 'how-tos/schema-tool/usage', + }, + { + type: 'doc', + label: 'Define the State', + id: 'how-tos/schema-tool/state', + }, + { + type: 'doc', + label: 'Use Structured Data Types', + id: 'how-tos/schema-tool/structs', + }, + { + type: 'doc', + label: 'Generate Type Definitions', + id: 'how-tos/schema-tool/typedefs', + }, + { + type: 'doc', + label: 'Trigger Events', + id: 'how-tos/schema-tool/events', + }, + { + type: 'doc', + label: 'Define Functions', + id: 'how-tos/schema-tool/funcs', + }, + { + type: 'doc', + label: 'Limit Access', + id: 'how-tos/schema-tool/access', + }, + { + type: 'doc', + label: 'Define Function Parameters', + id: 'how-tos/schema-tool/params', + }, + { + type: 'doc', + label: 'Define Function Results', + id: 'how-tos/schema-tool/results', + }, + { + type: 'doc', + label: 'Use Thunk Functions', + id: 'how-tos/schema-tool/thunks', + }, + { + type: 'doc', + label: 'Use View-Only Functions', + id: 'how-tos/schema-tool/views', + }, + { + type: 'doc', + label: 'Initialize a Smart Contract', + id: 'how-tos/schema-tool/init', + }, + { + type: 'doc', + label: 'Transfer Tokens', + id: 'how-tos/schema-tool/transfers', + }, + { + type: 'doc', + label: 'Add Function Descriptors', + id: 'how-tos/schema-tool/funcdesc', + }, + { + type: 'doc', + label: 'Call Functions', + id: 'how-tos/schema-tool/call', + }, + { + type: 'doc', + label: 'Post Asynchronous Requests', + id: 'how-tos/schema-tool/post', + }, + ], + }, + { + type: 'doc', + label: 'Deposit To a Chain', + id: 'how-tos/deposit-to-a-chain', + }, + { + type: 'doc', + label: 'Withdraw From a Chain', + id: 'how-tos/withdraw-from-a-chain', + }, + { + type: 'doc', + label: 'View Account Balances', + id: 'how-tos/view-account-balances', + }, + { + type: 'category', + label: 'Test Smart Contracts with Solo', + items: [ + { + type: 'doc', + label: 'What is Solo?', + id: 'how-tos/solo/what-is-solo', + }, + { + type: 'doc', + label: 'First Example', + id: 'how-tos/solo/first-example', + }, + { + type: 'doc', + label: 'The L1 Ledger', + id: 'how-tos/solo/the-l1-ledger', + }, + { + type: 'doc', + label: 'Deploy a Smart Contract', + id: 'how-tos/solo/deploying-sc', + }, + { + type: 'doc', + label: 'Invoke a Smart Contract', + id: 'how-tos/solo/invoking-sc', + }, + { + type: 'doc', + label: 'Call a View', + id: 'how-tos/solo/view-sc', + }, + { + type: 'doc', + label: 'Error Handling', + id: 'how-tos/solo/error-handling', + }, + { + type: 'doc', + label: 'Accounts', + id: 'how-tos/solo/the-l2-ledger', + }, + { + type: 'doc', + label: 'Test Smart Contracts', + id: 'how-tos/solo/test', + }, + { + type: 'doc', + label: 'Example Tests', + id: 'how-tos/solo/examples', + }, + { + type: 'doc', + label: 'Colored Tokens and Time Locks', + id: 'how-tos/solo/timelock', + }, + ], + }, + ], + }, + + { + type: 'category', + label: 'Reference', + items: [ + { + type: 'category', + label: 'Core Contracts', + items: [ + { + type: 'doc', + label: 'Overview', + id: 'reference/core-contracts/overview', + }, + { + type: 'doc', + label: 'root', + id: 'reference/core-contracts/root', + }, + { + type: 'doc', + label: 'accounts', + id: 'reference/core-contracts/accounts', + }, + { + type: 'doc', + label: 'blob', + id: 'reference/core-contracts/blob', + }, + { + type: 'doc', + label: 'blocklog', + id: 'reference/core-contracts/blocklog', + }, + { + type: 'doc', + label: 'governance', + id: 'reference/core-contracts/governance', + }, + { + type: 'doc', + label: 'errors', + id: 'reference/core-contracts/errors', + }, + { + type: 'doc', + label: 'evm', + id: 'reference/core-contracts/evm', + }, + ], + }, + + { + type: 'category', + label: 'Data Types', + items: [ + { + type: 'doc', + label: 'WasmLib Data Types', + id: 'reference/data-types/types', + }, + ], + }, + ], + }, + { + type: 'category', + label: 'Tutorials', + items: [ + { + type: 'doc', + label: 'Fair Roulette', + id: 'tutorials/fair_roulette', + }, + ], + }, + ], +}; diff --git a/docs/build/wasp-wasm/0.7/static/img/Banner/banner_wasp.png b/docs/build/wasp-wasm/0.7/static/img/Banner/banner_wasp.png new file mode 100644 index 00000000000..a1348ded187 Binary files /dev/null and b/docs/build/wasp-wasm/0.7/static/img/Banner/banner_wasp.png differ diff --git a/docs/build/wasp-wasm/0.7/static/img/Banner/banner_wasp_core_concepts_architecture.png b/docs/build/wasp-wasm/0.7/static/img/Banner/banner_wasp_core_concepts_architecture.png new file mode 100644 index 00000000000..8b52f671b08 Binary files /dev/null and b/docs/build/wasp-wasm/0.7/static/img/Banner/banner_wasp_core_concepts_architecture.png differ diff --git a/docs/build/wasp-wasm/0.7/static/img/Banner/banner_wasp_core_concepts_smart_contracts.png b/docs/build/wasp-wasm/0.7/static/img/Banner/banner_wasp_core_concepts_smart_contracts.png new file mode 100644 index 00000000000..a44e2589fbc Binary files /dev/null and b/docs/build/wasp-wasm/0.7/static/img/Banner/banner_wasp_core_concepts_smart_contracts.png differ diff --git a/docs/build/wasp-wasm/0.7/static/img/Banner/banner_wasp_core_contracts_overview.png b/docs/build/wasp-wasm/0.7/static/img/Banner/banner_wasp_core_contracts_overview.png new file mode 100644 index 00000000000..6eae1806f46 Binary files /dev/null and b/docs/build/wasp-wasm/0.7/static/img/Banner/banner_wasp_core_contracts_overview.png differ diff --git a/docs/build/wasp-wasm/0.7/static/img/Banner/banner_wasp_using_docker.png b/docs/build/wasp-wasm/0.7/static/img/Banner/banner_wasp_using_docker.png new file mode 100644 index 00000000000..34ed36b8455 Binary files /dev/null and b/docs/build/wasp-wasm/0.7/static/img/Banner/banner_wasp_using_docker.png differ diff --git a/docs/build/wasp-wasm/0.7/static/img/chain0.png b/docs/build/wasp-wasm/0.7/static/img/chain0.png new file mode 100644 index 00000000000..e9753d59209 Binary files /dev/null and b/docs/build/wasp-wasm/0.7/static/img/chain0.png differ diff --git a/docs/build/wasp-wasm/0.7/static/img/chain1.png b/docs/build/wasp-wasm/0.7/static/img/chain1.png new file mode 100644 index 00000000000..5b66b22b3d4 Binary files /dev/null and b/docs/build/wasp-wasm/0.7/static/img/chain1.png differ diff --git a/docs/build/wasp-wasm/0.7/static/img/contributing/golintci-goland-1.png b/docs/build/wasp-wasm/0.7/static/img/contributing/golintci-goland-1.png new file mode 100644 index 00000000000..db478b344fe Binary files /dev/null and b/docs/build/wasp-wasm/0.7/static/img/contributing/golintci-goland-1.png differ diff --git a/docs/build/wasp-wasm/0.7/static/img/contributing/golintci-goland-2.png b/docs/build/wasp-wasm/0.7/static/img/contributing/golintci-goland-2.png new file mode 100644 index 00000000000..a8f23757e2b Binary files /dev/null and b/docs/build/wasp-wasm/0.7/static/img/contributing/golintci-goland-2.png differ diff --git a/docs/build/wasp-wasm/0.7/static/img/contributing/golintci-goland-3.png b/docs/build/wasp-wasm/0.7/static/img/contributing/golintci-goland-3.png new file mode 100644 index 00000000000..473dfb612fd Binary files /dev/null and b/docs/build/wasp-wasm/0.7/static/img/contributing/golintci-goland-3.png differ diff --git a/docs/build/wasp-wasm/0.7/static/img/evm/examples/compile.png b/docs/build/wasp-wasm/0.7/static/img/evm/examples/compile.png new file mode 100644 index 00000000000..6c4bb12e1c8 Binary files /dev/null and b/docs/build/wasp-wasm/0.7/static/img/evm/examples/compile.png differ diff --git a/docs/build/wasp-wasm/0.7/static/img/evm/examples/deploy-metamask.png b/docs/build/wasp-wasm/0.7/static/img/evm/examples/deploy-metamask.png new file mode 100644 index 00000000000..8395cd68268 Binary files /dev/null and b/docs/build/wasp-wasm/0.7/static/img/evm/examples/deploy-metamask.png differ diff --git a/docs/build/wasp-wasm/0.7/static/img/evm/examples/deploy.png b/docs/build/wasp-wasm/0.7/static/img/evm/examples/deploy.png new file mode 100644 index 00000000000..b6af6b09513 Binary files /dev/null and b/docs/build/wasp-wasm/0.7/static/img/evm/examples/deploy.png differ diff --git a/docs/build/wasp-wasm/0.7/static/img/evm/examples/erc20-balance.png b/docs/build/wasp-wasm/0.7/static/img/evm/examples/erc20-balance.png new file mode 100644 index 00000000000..ec88a5cff26 Binary files /dev/null and b/docs/build/wasp-wasm/0.7/static/img/evm/examples/erc20-balance.png differ diff --git a/docs/build/wasp-wasm/0.7/static/img/evm/examples/explorer-contract-address.png b/docs/build/wasp-wasm/0.7/static/img/evm/examples/explorer-contract-address.png new file mode 100644 index 00000000000..399126ef8fe Binary files /dev/null and b/docs/build/wasp-wasm/0.7/static/img/evm/examples/explorer-contract-address.png differ diff --git a/docs/build/wasp-wasm/0.7/static/img/evm/ozw-721.png b/docs/build/wasp-wasm/0.7/static/img/evm/ozw-721.png new file mode 100644 index 00000000000..fc875e06c63 Binary files /dev/null and b/docs/build/wasp-wasm/0.7/static/img/evm/ozw-721.png differ diff --git a/docs/build/wasp-wasm/0.7/static/img/evm/remix-721-deploy.png b/docs/build/wasp-wasm/0.7/static/img/evm/remix-721-deploy.png new file mode 100644 index 00000000000..fd877ac1659 Binary files /dev/null and b/docs/build/wasp-wasm/0.7/static/img/evm/remix-721-deploy.png differ diff --git a/docs/build/wasp-wasm/0.7/static/img/evm/remix-721.png b/docs/build/wasp-wasm/0.7/static/img/evm/remix-721.png new file mode 100644 index 00000000000..56a1a453441 Binary files /dev/null and b/docs/build/wasp-wasm/0.7/static/img/evm/remix-721.png differ diff --git a/docs/build/wasp-wasm/0.7/static/img/evm/remix-deployed.png b/docs/build/wasp-wasm/0.7/static/img/evm/remix-deployed.png new file mode 100644 index 00000000000..1c0fa30d6f8 Binary files /dev/null and b/docs/build/wasp-wasm/0.7/static/img/evm/remix-deployed.png differ diff --git a/docs/build/wasp-wasm/0.7/static/img/evm/remix-metamask-detail.png b/docs/build/wasp-wasm/0.7/static/img/evm/remix-metamask-detail.png new file mode 100644 index 00000000000..c01a6fa2bf8 Binary files /dev/null and b/docs/build/wasp-wasm/0.7/static/img/evm/remix-metamask-detail.png differ diff --git a/docs/build/wasp-wasm/0.7/static/img/evm/remix-vm-injected.png b/docs/build/wasp-wasm/0.7/static/img/evm/remix-vm-injected.png new file mode 100644 index 00000000000..6d2e4c8e087 Binary files /dev/null and b/docs/build/wasp-wasm/0.7/static/img/evm/remix-vm-injected.png differ diff --git a/docs/maintain/wasp/0.7.0/static/img/logo/WASP_logo_dark.png b/docs/build/wasp-wasm/0.7/static/img/logo/WASP_logo_dark.png similarity index 100% rename from docs/maintain/wasp/0.7.0/static/img/logo/WASP_logo_dark.png rename to docs/build/wasp-wasm/0.7/static/img/logo/WASP_logo_dark.png diff --git a/docs/build/wasp-wasm/0.7/static/img/logo/WASP_logo_light.png b/docs/build/wasp-wasm/0.7/static/img/logo/WASP_logo_light.png new file mode 100644 index 00000000000..eeb6ae39d22 Binary files /dev/null and b/docs/build/wasp-wasm/0.7/static/img/logo/WASP_logo_light.png differ diff --git a/docs/build/wasp-wasm/0.7/static/img/metamask.png b/docs/build/wasp-wasm/0.7/static/img/metamask.png new file mode 100644 index 00000000000..e6d686d68cb Binary files /dev/null and b/docs/build/wasp-wasm/0.7/static/img/metamask.png differ diff --git a/docs/build/wasp-wasm/0.7/static/img/metamask_network.png b/docs/build/wasp-wasm/0.7/static/img/metamask_network.png new file mode 100644 index 00000000000..7224783f504 Binary files /dev/null and b/docs/build/wasp-wasm/0.7/static/img/metamask_network.png differ diff --git a/docs/build/wasp-wasm/0.7/static/img/metamask_testnet.png b/docs/build/wasp-wasm/0.7/static/img/metamask_testnet.png new file mode 100644 index 00000000000..c9eddeb8002 Binary files /dev/null and b/docs/build/wasp-wasm/0.7/static/img/metamask_testnet.png differ diff --git a/docs/build/wasp-wasm/0.7/static/img/multichain.png b/docs/build/wasp-wasm/0.7/static/img/multichain.png new file mode 100644 index 00000000000..2c761f45866 Binary files /dev/null and b/docs/build/wasp-wasm/0.7/static/img/multichain.png differ diff --git a/docs/build/wasp-wasm/0.7/static/img/sandbox.png b/docs/build/wasp-wasm/0.7/static/img/sandbox.png new file mode 100644 index 00000000000..2071da12eec Binary files /dev/null and b/docs/build/wasp-wasm/0.7/static/img/sandbox.png differ diff --git a/docs/build/wasp-wasm/0.7/static/img/tutorial/SC-structure.png b/docs/build/wasp-wasm/0.7/static/img/tutorial/SC-structure.png new file mode 100644 index 00000000000..1ae84b7ac05 Binary files /dev/null and b/docs/build/wasp-wasm/0.7/static/img/tutorial/SC-structure.png differ diff --git a/docs/build/wasp-wasm/0.7/static/img/tutorial/accounts.png b/docs/build/wasp-wasm/0.7/static/img/tutorial/accounts.png new file mode 100644 index 00000000000..827935368b1 Binary files /dev/null and b/docs/build/wasp-wasm/0.7/static/img/tutorial/accounts.png differ diff --git a/docs/build/wasp-wasm/0.7/static/img/tutorial/call_view.png b/docs/build/wasp-wasm/0.7/static/img/tutorial/call_view.png new file mode 100644 index 00000000000..6ec91b99354 Binary files /dev/null and b/docs/build/wasp-wasm/0.7/static/img/tutorial/call_view.png differ diff --git a/docs/build/wasp-wasm/0.7/static/img/tutorial/send_request.png b/docs/build/wasp-wasm/0.7/static/img/tutorial/send_request.png new file mode 100644 index 00000000000..19f6343cf79 Binary files /dev/null and b/docs/build/wasp-wasm/0.7/static/img/tutorial/send_request.png differ diff --git a/docs/build/wasp-wasm/0.7/static/img/wasm_vm/IscHost.png b/docs/build/wasp-wasm/0.7/static/img/wasm_vm/IscHost.png new file mode 100644 index 00000000000..0e7f750f225 Binary files /dev/null and b/docs/build/wasp-wasm/0.7/static/img/wasm_vm/IscHost.png differ diff --git a/docs/build/wasp-wasm/0.7/static/img/wasm_vm/Proxies.png b/docs/build/wasp-wasm/0.7/static/img/wasm_vm/Proxies.png new file mode 100644 index 00000000000..5af874582f3 Binary files /dev/null and b/docs/build/wasp-wasm/0.7/static/img/wasm_vm/Proxies.png differ diff --git a/docs/build/wasp-wasm/0.7/static/img/wasm_vm/WasmVM.png b/docs/build/wasp-wasm/0.7/static/img/wasm_vm/WasmVM.png new file mode 100644 index 00000000000..2cf870f93a5 Binary files /dev/null and b/docs/build/wasp-wasm/0.7/static/img/wasm_vm/WasmVM.png differ diff --git a/docs/build/wasp/0.7.0/docs/contribute.md b/docs/build/wasp/0.7.0/docs/contribute.md deleted file mode 100644 index 6c9a084cfc6..00000000000 --- a/docs/build/wasp/0.7.0/docs/contribute.md +++ /dev/null @@ -1,121 +0,0 @@ ---- -description: How to contribute to IOTA Smart Contracts. How to create better pull requests by running tests and the linter locally. -image: /img/logo/WASP_logo_dark.png -keywords: - - smart contracts - - Contribute - - pull request - - linting - - Go-lang - - golangci-lint - - how to ---- - -# Contributing - -If you want to contribute to this repository, consider posting a [bug report](https://github.com/iotaledger/wasp/issues/new-issue), feature request, or a [pull request](https://github.com/iotaledger/wasp/pulls/). - -You can talk to us directly on our [Discord server](https://discord.iota.org/), in the `#smartcontracts-dev` channel. - -## Creating a Pull Request - -Please base your work on the `develop` branch. - -Before creating a pull request ensure that all tests pass locally, and that the linter reports no violations. - -## Running Tests - -To run tests locally, execute one of the following commands: - -```shell -go test -short -tags rocksdb ./... -``` - -or, as an alternative: - -```shell -make test-short -``` - -The commands above execute a subset of all available tests. If you introduced major changes, consider running the whole test suite instead, with `make test` or `make test-full` (these can take several minutes, so go and grab a coffee!). - -## Running the Linter - -### Setup - -#### Step 1: Install golintci - -See the [provider instructions](https://golangci-lint.run/usage/install/#local-installation) on how to install golintci. - -#### Step 2: Set Up Your Environment - -See the [provider instructions](https://golangci-lint.run/usage/integrations/#editor-integration) on how to integrate golintci into your source code editor. You can also find our [recommended settings](#appendix-recommended-settings) for VS Code and GoLand at the bottom of this article. - -### Usage - -To run the linter locally, execute: - -```shell -golangci-lint run -``` - -or - -```shell -make lint -``` - -The linter will also automatically run every time you run: - -```shell -make -``` - -### False Positives - -You can [disable](https://golangci-lint.run/usage/false-positives/) false positives by placing a special comment directly above the "violating" element: - -```go -//nolint -func foobar() *string { - // ... -} -``` - -To be sure that linter will not ignore actual issues in the future, try to suppress only relevant warnings over an element. Also explain the reason why the `nolint` is needed. E.g.: - -```go -//nolint:unused // This is actually used by the xyz tool -func foo() *string { - // ... -} -``` - -## Appendix: Recommended Settings - -### Visual Studio Code - -Adjust your VS Code settings as follows: - -```json -// required: -"go.lintTool": "golangci-lint", -// recommended: -"go.lintOnSave": "package" -"go.lintFlags": ["--fix"], -"editor.formatOnSave": true, -``` - -### GoLand - -1. Install the [golintci](https://plugins.jetbrains.com/plugin/12496-go-linter) plugin. - -![A screenshot that shows how to install golintci in GoLand.](/img/contributing/golintci-goland-1.png 'Click to see the full-sized image.') - -2. Configure path for golangci. - -![A screenshot that shows how to configure path for golangci in GoLand.](/img/contributing/golintci-goland-2.png 'Click to see the full-sized image.') - -3. Add a golangci file watcher with a custom command. We recommend you to use it with the `--fix` parameter. - -![A screenshot that shows how to add a golangci file watcher in GoLand.](/img/contributing/golintci-goland-3.png 'Click to see the full-sized image.') diff --git a/docs/build/wasp/0.7.0/docs/guide/evm/compatibility.md b/docs/build/wasp/0.7.0/docs/guide/evm/compatibility.md deleted file mode 100644 index 11629b2c4df..00000000000 --- a/docs/build/wasp/0.7.0/docs/guide/evm/compatibility.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -description: Compatibility between the ISC EVM layer and existing Ethereum smart contracts and tooling. -image: /img/logo/WASP_logo_dark.png -keywords: - - smart contracts - - EVM - - Ethereum - - Solidity - - limitations - - compatibility - - fees - - reference ---- - -# EVM Compatibility in IOTA Smart Contracts - -The [`evm`](/learn/smart-contracts/core_concepts/core_contracts/evm) [core contract](/learn/smart-contracts/core_concepts/core_contracts/overview) -provides EVM support in IOTA Smart Contracts. It stores the EVM state (account balances, state, code, -etc.) and provides a way to execute EVM code to manipulate the state. - -The EVM core contract runs on top of the ISC layer, which provides the rest of the machinery needed to run smart -contracts, such as signed requests, blocks, state, proofs, etc. - -However, the ISC EVM layer is also designed to be as compatible as possible with existing Ethereum tools -like [MetaMask](https://metamask.io/), which assume that the EVM code runs on an Ethereum blockchain composed of -Ethereum blocks containing Ethereum transactions. Since ISC works in a fundamentally different way, -providing 100% compatibility is not possible. We do our best to emulate the behavior of an Ethereum node, so the -Ethereum tools think they are interfacing with an actual Ethereum node, but some differences in behavior are inevitable. - -:::warning -There is a difference in the decimal precision of ether (18 decimal places) to MIOTA/SMR(6 decimal places). Because of this, when sending native tokens in the EVM, which are expressed in wei (ether = 1018wei), the last 12 decimal places will be ignored. - -example: 1,999,999,999,999,999,999 wei = 1.999,999 SMR/MIOTA -::: - -Here are some of the most important properties and limitations of EVM support in IOTA Smart Contracts: - -- The Wasp node provides a JSON-RPC service, the standard protocol used by Ethereum tools. Upon receiving a signed - Ethereum transaction via JSON-RPC, the transaction is wrapped into an ISC off-ledger request. The sender of the - request - is the Ethereum address that signed the original transaction (e.g., the Metamask account). - -- While ISC contracts are identified by an [hname](/learn/smart-contracts/core_concepts/smart-contract-anatomy), EVM contracts are - identified by their Ethereum address. - -- EVM contracts are not listed in the chain's [contract registry](/learn/smart-contracts/core_concepts/core_contracts/root). - -- EVM contracts cannot be called via regular ISC requests; they can only be - called through the JSON-RPC service. - As a consequence, EVM contracts cannot receive on-ledger requests. - -- In contrast with an Ethereum blockchain, which stores the state in a Merkle tree, the EVM state is stored in raw form. - It would be inefficient to do that since it would be duplicating work done by the ISC layer. - -- Any Ethereum transactions present in an ISC block are executed by - the [`evm`](/learn/smart-contracts/core_concepts/core_contracts/evm) [core contract](/learn/smart-contracts/core_concepts/core_contracts/overview), - updating the EVM state accordingly. An emulated Ethereum block is also created and stored to provide compatibility - with EVM tools. As the emulated block is not part of a real Ethereum blockchain, some attributes of the blocks will - contain dummy values (e.g. `stateRoot`, `nonce`, etc.). - -- Each stored block contains the executed Ethereum transactions and corresponding Ethereum receipts. If storage is - limited, you can configure EVM so that only the latest N blocks are stored. - -- There is no guaranteed _block time_. A new EVM "block" will be created only when an ISC block is created, and ISC does - not enforce an average block time. - -- Any Ethereum address is accepted as a valid `AgentID`, and thus can own L2 tokens on an IOTA Smart Contract chain, - just like IOTA addresses. - -- The Ethereum balance of an account is tied to its L2 ISC balance in the token used to pay for gas. For example, - by default `eth_getBalance` will return the L2 base token balance of the given Ethereum account. - -- To manipulate the owned ISC tokens and access ISC functionality in general, there is - a [special Ethereum contract](magic.md) that provides bindings to the ISC sandbox (e.g. call `isc.send(...)` to send - tokens). - -- The used EVM gas is converted to ISC gas before being charged to the sender. The conversion ratio is configurable. The - token used to pay for gas is the same token configured in the ISC chain (IOTA by default). The gas fee is debited from - the sender's L2 account and must be deposited beforehand. diff --git a/docs/build/wasp/0.7.0/docs/guide/evm/magic.md b/docs/build/wasp/0.7.0/docs/guide/evm/magic.md deleted file mode 100644 index b6c2f4cf117..00000000000 --- a/docs/build/wasp/0.7.0/docs/guide/evm/magic.md +++ /dev/null @@ -1,130 +0,0 @@ ---- -description: The ISC Magic Contract allows EVM contracts to access ISC functionality. -image: /img/logo/WASP_logo_dark.png -keywords: - - configure - - using - - EVM - - magic - - Ethereum - - Solidity - - metamask - - JSON - - RPC ---- - -# The ISC Magic Contract - -[EVM and ISC are inherently very different platforms](compatibility.md). -Some EVM-specific actions (e.g., manipulating Ethereum tokens) are disabled, and EVM contracts can access ISC-specific -functionality through the _ISC Magic Contract_. - -The Magic contract is an EVM contract deployed by default on every ISC chain, in the EVM genesis block, at -address `0x1074000000000000000000000000000000000000`. -The implementation of the Magic contract is baked-in in -the [`evm`](/learn/smart-contracts/core_concepts/core_contracts/evm) [core contract](/learn/smart-contracts/core_concepts/core_contracts/overview); -i.e. it is not a pure-Solidity contract. - -The Magic contract has several methods, which are categorized into specialized -interfaces: `ISCSandbox`, `ISCAccounts`, `ISCUtil` and so on. -You can access these interfaces from any Solidity contract by importing -the [ISC library](https://www.npmjs.com/package/@iota/iscmagic): - -```sh -yarn add @iota/iscmagic -``` - -You can import it into your contracts like this: - -```solidity -import "@iota/iscmagic/ISC.sol"; -``` - -The Magic contract also provides proxy ERC20 contracts to manipulate ISC base -tokens and native tokens on L2. - -## Examples - -### Calling getEntropy() - -```solidity -pragma solidity >=0.8.5; - -import "@iota/iscmagic/ISC.sol"; - -contract MyEVMContract { - event EntropyEvent(bytes32 entropy); - - // this will emit a "random" value taken from the ISC entropy value - function emitEntropy() public { - bytes32 e = ISC.sandbox.getEntropy(); - emit EntropyEvent(e); - } -} -``` - -In the example above, `ISC.sandbox.getEntropy()` calls the -[`getEntropy`](https://github.com/iotaledger/wasp/blob/develop/packages/vm/core/evm/iscmagic/ISCSandbox.sol#L20) -method of the `ISCSandbox` interface, which, in turn, -calls [ISC Sandbox's](/learn/smart-contracts/core_concepts/sandbox) `GetEntropy`. - -### Calling a native contract - -You can call native contracts using [`ISC.sandbox.call`](https://github.com/iotaledger/wasp/blob/develop/packages/vm/core/evm/iscmagic/ISCSandbox.sol#L56): - -```solidity -pragma solidity >=0.8.5; - -import "@iota/iscmagic/ISC.sol"; - -contract MyEVMContract { - event EntropyEvent(bytes32 entropy); - - function callInccounter() public { - ISCDict memory params = ISCDict(new ISCDictItem[](1)); - bytes memory int64Encoded42 = hex"2A00000000000000"; - params.items[0] = ISCDictItem("counter", int64Encoded42); - ISCAssets memory allowance; - ISC.sandbox.call(ISC.util.hn("inccounter"), ISC.util.hn("incCounter"), params, allowance); - } -} -``` - -`ISC.util.hn` is used to get the `hname` of the incounter countract and the -`incCounter` entry point. You can also call view entry points using -[ISC.sandbox.callView](https://github.com/iotaledger/wasp/blob/develop/packages/vm/core/evm/iscmagic/ISCSandbox.sol#L59). - -## API Reference - -- [Common type definitions](https://github.com/iotaledger/wasp/blob/develop/packages/vm/core/evm/iscmagic/ISCTypes.sol) -- [ISC library](https://github.com/iotaledger/wasp/blob/develop/packages/vm/core/evm/iscmagic/ISC.sol) -- [ISCSandbox](https://github.com/iotaledger/wasp/blob/develop/packages/vm/core/evm/iscmagic/ISCSandbox.sol) - interface, available at `ISC.sandbox` -- [ISCAccounts](https://github.com/iotaledger/wasp/blob/develop/packages/vm/core/evm/iscmagic/ISCAccounts.sol) - interface, available at `ISC.accounts` -- [ISCUtil](https://github.com/iotaledger/wasp/blob/develop/packages/vm/core/evm/iscmagic/ISCUtil.sol) - interface, available at `ISC.util` -- [ERC20BaseTokens](https://github.com/iotaledger/wasp/blob/develop/packages/vm/core/evm/iscmagic/ERC20BaseTokens.sol) - contract, available at `ISC.baseTokens` - (address `0x1074010000000000000000000000000000000000`) -- [ERC20NativeTokens](https://github.com/iotaledger/wasp/blob/develop/packages/vm/core/evm/iscmagic/ERC20NativeTokens.sol) - contract, available at `ISC.nativeTokens(foundrySN)` after being registered - by the foundry owner by calling - [`registerERC20NativeToken`](/learn/smart-contracts/core_concepts/core_contracts/evm#registerERC20NativeToken) - (address `0x107402xxxxxxxx00000000000000000000000000` where `xxxxxxxx` is the - little-endian encoding of the foundry serial number) -- [ERC20ExternalNativeTokens](https://github.com/iotaledger/wasp/blob/develop/packages/vm/core/evm/iscmagic/ERC20ExternalNativeTokens.sol) - contract, available at a dynamically assigned address after being registered - by the foundry owner by calling - [`registerERC20NativeTokenOnRemoteChain`](/learn/smart-contracts/core_concepts/core_contracts/evm#registerERC20NativeTokenOnRemoteChain) - on the chain that controls the foundry. -- [ERC721NFTs](https://github.com/iotaledger/wasp/blob/develop/packages/vm/core/evm/iscmagic/ERC721NFTs.sol) - contract, available at `ISC.nfts` - (address `0x1074030000000000000000000000000000000000`) -- [ERC721NFTCollection](https://github.com/iotaledger/wasp/blob/develop/packages/vm/core/evm/iscmagic/ERC721NFTCollection.sol) - contract, available at `ISC.erc721NFTCollection(collectionID)`, after being - registered by calling [`registerERC721NFTCollection`](/learn/smart-contracts/core_concepts/core_contracts/evm#registerERC721NFTCollection). - -There are some usage examples in -the [ISCTest.sol](https://github.com/iotaledger/wasp/blob/develop/packages/evm/evmtest/ISCTest.sol) contract (used -internally in unit tests). diff --git a/docs/build/wasp/0.7.0/docs/guide/wasm_vm/access.mdx b/docs/build/wasp/0.7.0/docs/guide/wasm_vm/access.mdx deleted file mode 100644 index 6b32b44a094..00000000000 --- a/docs/build/wasp/0.7.0/docs/guide/wasm_vm/access.mdx +++ /dev/null @@ -1,42 +0,0 @@ ---- -keywords: - - functions - - access - - self - - chain - - creator - - agentID - -description: The optional access subsection indicates the agent who is allowed to access the function. When this definition is omitted, anyone is allowed to call the function. - -image: /img/logo/WASP_logo_dark.png ---- - -# Limiting Access - -The optional `access` subsection is made of a single definition, it indicates the agent -who is allowed to access the function. When this definition is omitted, anyone is allowed -to call the function. When the definition is present it should be an access identifier, -optionally followed by an explanatory comment. Access identifiers can be one of the -following: - -- `self`: Only the smart contract itself can call this function. -- `chain`: Only the chain owner can call this function. -- anything else: The name of an AgentID or AgentID[] variable in state storage. Only the - agent(s) defined there can call this function. When this option is used you should also - provide functionality that can initialize and/or modify this variable. As long as this - state variable has not been set, nobody will be allowed to call this function. - -The [Schema Tool](usage.mdx) will automatically generate code to properly check the access -rights of the agent that called the function before the actual function is called. - -You can see usage examples of the access identifier in the schema definition file, where -the state variable `owner` is used as an access identifier. The `init` function -initializes this state variable, and the `setOwner` function can only be used by the -current owner to set a new owner. Finally, the `member` function can also only be called -by the current owner. - -Note that there can be different access identifiers for different functions as needed. You -can set up as many access identifiers as you like. - -In the next section we will look at the [`params`](params.mdx) subsection. diff --git a/docs/build/wasp/0.7.0/docs/guide/wasm_vm/concepts.mdx b/docs/build/wasp/0.7.0/docs/guide/wasm_vm/concepts.mdx deleted file mode 100644 index 4e180009078..00000000000 --- a/docs/build/wasp/0.7.0/docs/guide/wasm_vm/concepts.mdx +++ /dev/null @@ -1,105 +0,0 @@ ---- -keywords: - - concepts - - smart contracts - - allowance - -description: First let's talk about some important concepts about smart contracts in general and then about ISC smart contract concepts in particular. - -image: /img/logo/WASP_logo_dark.png ---- - -# Smart Contract Concepts - -First let's talk about some important general concepts of smart contracts, and then about -ISC-specific smart contract concepts. - -## General Concepts - -Smart contracts consist of a number of functions that operate on their state storage. -These functions are guaranteed to run deterministically. That means that given certain -input data and input storage state they will always produce the same output data and -output storage state. Determinism is key because it is the only way to be able to -validate their execution results independently. - -The consequence of this is that it is impossible for a smart contract to go out and fetch -data from external sources, because these sources cannot be guaranteed to be the same at -every invocation. Smart contract function calls are therefore always following the data -push model. They need to receive a complete, atomic set of input data. This is important -to remember, because in most other programming applications it is very common to pull -external data into running code whenever required. This changes the mental model necessary -for building smart contract solutions considerably. - -Smart contract functions have no access to a file system, nor can they use timing or -randomness sources. Any time or randomness data must be provided as part of the input -data. Changes to global static data in the smart contract code itself will not persist -between separate smart contract function calls. Multi-threading is also highly -non-deterministic and its usage is therefore not allowed. - -To make sure that timing differences between processors do not influence the consensus -outcome of long-running processes, and to prevent endless loops, smart contracts use a -system where the maximum running time of a function is bounded by an amount of **gas** -that is provided at the moment of invocation. Each Wasm instruction and each ISC API call -burns a certain amount of gas, and therefore any function that runs out of gas will do so -at the exact same point, no matter who runs it. This is the only way to be able to have -Turing-complete computing that is bounded in a deterministic way. Gas is not just used to -limit the amount of (finite) processing resources that can be used, but it can also be -used to assign a monetary cost to the actual amount of processing resources used when -running a smart contract function by associating a fee per unit of gas used. - -## ISC-specific Concepts - -A unique feature of ISC is its ability to run multiple blockchains in parallel securely. -Requests can arrive asynchronously, but each separate blockchain is guaranteed to handle -its requests synchronously, ordered by consensus between the chain's processing nodes. -Each chain runs its own set of smart contracts. Some are built-in (core) contracts, -others are user-defined, dynamically loaded contracts. - -Within a blockchain contracts can call each other's functionality either synchronously or -asynchronously. Synchronous calls are akin to a subroutine call. Asynchronous calls are -wrapped in a request transaction and posted on the Tangle, to be executed sometime after -the current set of requests has been processed. - -This same asynchronous request mechanism can be used to post calls to smart contracts in -other blockchains. Delivery of such request transactions is guaranteed, but processing of -these requests is only guaranteed as long as the target blockchain is active. - -Although smart contracts will always post asynchronous requests on the Tangle, and it is -possible to do this from a user application as well, there is a price to be paid in the -form of having to wait for confirmation pf the request on the Tangle before it can be -processed. Therefore, ISC also allows user applications to send requests directly to a -blockchain through a web API provided by the processing nodes. We call such requests -_off-ledger_ requests, as opposed to the _on-ledger_ requests that are posted directly on -the Tangle ledger. Off-ledger requests can be sent at a much higher frequency than -off-ledger requests, but on-ledger requests offer a few additional features that are not -available to off-ledger requests. - -In both cases requests are initiated by a so-called _sender_. The sender signs the request -with its private key and can therefore be uniquely and securely identified. We also -identify a _caller_ to a smart contract function. While a request is being processed the -sender will stay the same, but the caller will change with every synchronous call that is -being made. This will allow the transfer of assets between calls to different contracts -within the chain, and allows the called function to easily identify the origin of these -assets. Note that a function can only access assets that were provided by the caller of -the function. So even though the original sender of the request is known at any call -depth, only the top level function can access the assets that the sender provided to the -request. - -The way assets are provided to a smart contract function is by specifying a so-called -_allowance_. The function is allowed (but not required) to transfer ownership of the -assets indicated in the allowance to itself, depending on the requirements of the -function. The allowance is taken out of the on-chain account of the caller. This means -that the caller needs to make sure that these assets are available in the account when -the call is executed. For off-ledger requests this means that prior to sending the request -sufficient assets need to be deposited in the sender's on-chain account. For on-ledger -requests the assets may also have been deposited prior to sending the request, or they may -be sent along as part of the request. - -Any assets that are sent to a chain as part of an on-ledger request will end up in the -sender's on-chain account. The allowance mechanism makes it impossible for assets to -inadvertently be sent to a wrong or non-existing contract and become lost forever. Any -assets that are not handled by any contract will safely stay in the sender's on-chain -account and can be withdrawn by the sender at any time. - -In the next section we will explore how smart contracts use the WasmLib -[Call Context](context.mdx). diff --git a/docs/build/wasp/0.7.0/docs/guide/wasm_vm/context.mdx b/docs/build/wasp/0.7.0/docs/guide/wasm_vm/context.mdx deleted file mode 100644 index 76d20327b3f..00000000000 --- a/docs/build/wasp/0.7.0/docs/guide/wasm_vm/context.mdx +++ /dev/null @@ -1,60 +0,0 @@ ---- -keywords: - - functions - - views - - Funcs - - ScFuncContext - - ScViewContext - -description: The call context is a predefined parameter to each smart contract function, which allows you to access the functionality that the call environment provides. - -image: /img/logo/WASP_logo_dark.png ---- - -# Call Context - -Due to the sandboxed nature of Wasm code, it needs a host which runs the Wasm Virtual -Machine (VM) that is able to load and execute the Wasm code. The host also provides the -Wasm code with restricted access to the host environment. These restrictions make the host -environment itself sandboxed as well. Smart contracts will only be able to call certain -environment functionality, depending on the _call context_. - -We distinguish between two types of smart contract function calls: - -- **Func**, which allows full mutable access to the smart contract state, and always - results in a state update. Funcs can be initiated through on-ledger and off-ledger - requests. A call to a Func is only complete once the associated state update has been - registered in the ledger (Tangle). -- **View**, which allows only limited, immutable access to the smart contract state, and - therefore does not result in a state update. Views are always initiated through - off-ledger function calls. Since they do not require a state update on the ledger they - can be used to efficiently query the current state of the smart contract. - -To support this function call type distinction, Func and View functions each receive a -separate, different call context through WasmLib. Only the functionality that is necessary -for their implementation can be accessed through their respective WasmLib contexts, -`ScFuncContext` and `ScViewContext`. ScViewContext provides a limited, immutable subset of -the full functionality provided by ScFuncContext. By having separate context types, -compile-time type-checking can easily be used to enforce these usage constraints. - -# Smart Contract Setup - -An important part of setting up a smart contract is defining exactly which Funcs and Views -are available and informing the host about them through WasmLib. The host will have to be -able to dispatch requested function calls to the corresponding smart contract code and -will have to apply any restrictions necessary to prevent Views from accidentally accessing -full Func functionality. - -Another important part is to define for each function exactly what parameters and return -values are expected/available, if any. The ISC stores parameter, state, and result values -in simple dictionaries, with both keys and values being arbitrary byte strings. Normally, -programming languages provide a much richer set of data types, which means that these data -types will need to be serialized and deserialized correctly and consistently. WasmLib -provides a rich set of (de)serialization functions specifically for this purpose - -Even though it is definitely possible for a contract creator to directly use WasmLib to -achieve his goals, we decided to provide a _Schema Tool_, which can be used to -automatically generate and update the entire smart contract framework code in the desired -language in a consistent and type-safe way. - -In the next section we will introduce this smart contract [`Schema Tool`](schema.mdx). diff --git a/docs/build/wasp/0.7.0/docs/guide/wasm_vm/intro.mdx b/docs/build/wasp/0.7.0/docs/guide/wasm_vm/intro.mdx deleted file mode 100644 index f1ef3bdb8a4..00000000000 --- a/docs/build/wasp/0.7.0/docs/guide/wasm_vm/intro.mdx +++ /dev/null @@ -1,111 +0,0 @@ ---- -keywords: - - Rust - - Go - - TypeScript - - WASM - - memory space - - smart contract state - - API - - Access - - store - - state - -description: IOTA Smart Contracts (ISC) provides a very flexible way of programming smart contracts by providing an API to a sandboxed environment that allows you to interact deterministically and without any security risks with ISC-provided functionality. - -image: /img/wasm_vm/IscHost.png ---- - -# Introduction to the Wasm VM for ISC - -:::warning -The Wasm VM is still in an experimental state, it is a testament to the "VM plugin" architecture of ISC. - -Experiment away, but please don't rely on it for any valuable applications (stick to EVM for now). -::: - -IOTA Smart Contracts (ISC) provides a very flexible way of programming smart contracts by -providing an API to a sandboxed environment that allows you to interact deterministically -and without any security risks with ISC-provided functionality. The API provides a generic -way to store, access, and modify the state of smart contracts. The API can be used by any -kind of Virtual Machine (VM) to implement a system to load and run smart contract code on -top of ISC. The actual VMs can be implemented by whoever wants to create them. - -[![Wasp node ISC Host](/img/wasm_vm/IscHost.png)](/img/wasm_vm/IscHost.png) - -Of course, we provide an example implementation of such a VM to allow anyone to get a -taste of what it is like to program a smart contract for ISC. Our VM implementation uses -[WebAssembly](https://webassembly.org/) (Wasm) code as an intermediate compilation target. -The implementation of the Wasm VM currently uses the open-source -[Wasmtime](https://wasmtime.dev/) runtime environment. The Wasm VM enables dynamic -loading and running of smart contracts that have been compiled to Wasm code. - -We chose Wasm to be able to program smart contracts from many programming languages. Since -more and more languages are becoming capable of generating the intermediate Wasm code this -will eventually allow developers to choose a language they are familiar with. - -Because each Wasm code unit runs in its own memory space and cannot access anything -outside that memory by design, Wasm code is ideally suited for secure smart contracts. -The Wasm VM runtime system will only provide access to external functionality that is -necessary for the smart contracts to be able to do their thing, but nothing more. In our -case, we only provide access to the ISC host's sandboxed API environment. The way we do -that is by providing a small, self-contained library that can be linked to the Wasm code. -This library is called `WasmLib`. - -![Wasm VM](/img/wasm_vm/WasmVM.png) - -As you can see, we can have any number of smart contracts running in our Wasm VM. Each -smart contract is a separately compiled Wasm code unit that contains its own copy of -WasmLib embedded into it. Each WasmLib provides the ISC sandbox functionality to its -corresponding smart contract and knows how to use it to access the underlying smart -contract state storage through the VM runtime system. This makes the ISC sandbox API -access seamless to the smart contract by hiding the details of bridging the gap between -the smart contract's memory space, and the otherwise inaccessible memory space of the ISC -host. - -The ISC sandbox environment enables the following functionality: - -- Access to smart contract metadata -- Access to request data for smart contract function calls -- Access to the smart contract state data -- A way to return result data to the caller of a smart contract function -- Access to tokens meant for the smart contract, and the ability to move them -- Ability to initiate or call other smart contract functions -- Access to logging functionality -- Access to several utility functions provided by the host - -The initial WasmLib implementation was created for the [Rust](https://www.rust-lang.org/) -programming language. Rust had the most advanced and stable support for generating Wasm -code at the time when we started implementing our Wasm VM environment. In the meantime, -we have also implemented fully functional [Go](https://golang.org/) and -[TypeScript](https://www.typescriptlang.org/) implementations. We currently support the -following Wasm code generators: - -| Language | Wasm code generator | -| ---------- | -------------------------------------------------- | -| Go | [TinyGo](https://tinygo.org/) | -| Rust | [wasm-pack](https://rustwasm.github.io/wasm-pack/) | -| TypeScript | [AssemblyScript](https://www.assemblyscript.org/) | - -All WasmLib implementations use only a very small common subset of their host language. -The same goes for the interface they provide to smart contract writers. This keeps the -coding style very similar, barring some syntactic idiosyncrasies. The reason for doing -this is that we wanted to make it as easy as possible for anyone to start working with our -smart contract system. If you have previous experience in any C-style language you should -quickly feel comfortable writing smart contracts in any of the supported languages, -without having to dive too deeply into the more esoteric aspects of the chosen language. - -We will next discuss some [`concepts`](concepts.mdx) that are central to (ISC) smart -contract programming. - -## Video Tutorial - - diff --git a/docs/build/wasp/0.7.0/docs/guide/wasm_vm/post.mdx b/docs/build/wasp/0.7.0/docs/guide/wasm_vm/post.mdx deleted file mode 100644 index d3de81a7b0b..00000000000 --- a/docs/build/wasp/0.7.0/docs/guide/wasm_vm/post.mdx +++ /dev/null @@ -1,93 +0,0 @@ ---- -keywords: - - function descriptor - - return values - - request - - post - - smart contract chain - - Asynchronous function -description: Asynchronous function calls between smart contracts are posted as requests on the Tangle. They allow you to invoke any smart contract function that is not a View on any smart contract chain. - -image: /img/logo/WASP_logo_dark.png ---- - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -# Posting Asynchronous Requests - -Asynchronous function calls between smart contracts are posted as requests on the Tangle. -They allow you to invoke any smart contract function that is not a View on any smart -contract chain. You will notice that the behavior is very similar to a synchronous -function call, but instead of using the [`call()`](call.mdx) method of the `func` member -in the function descriptor, you will now use the `post()` or `postToChain()` methods. The -`post()` method posts the request to the current chain, while `postToChain()` takes the -chain ID of the desired chain as parameter. - -In addition to the previously discussed [`transferBaseTokens()`](call.mdx) and -[`ofContract()`](call.mdx) methods, you can modify the behavior further by providing a -`delay()` in seconds, which enables delayed execution of the request. This is of -particular interest to smart contracts that need a delayed action like betting contracts -with a timed betting round, or to create time-lock functionality in a smart contract. -Here's how that works: - - - - - -```go -eor := ScFuncs.EndOfRound(ctx) -eor.Func.Delay(3600).Post() -``` - - - - -```rust -let eor = ScFuncs::end_of_round(ctx); -eor.func.delay(3600).post(); -``` - - - - -```ts -let eor = sc.ScFuncs.endOfRound(ctx); -eor.func.delay(3600).post(); -``` - - - - -Because it is posted as a request on the Tangle, and it is not possible to have a request -without a transfer, _an asynchronous request always needs to send at least some tokens_. -In fact, there is a minimum amount of tokens to send, because you need to cover the gas -that is necessary to run the function call. You can specify the tokens explicitly, in the -same way we did previously with [synchronous calls](call.mdx), or you can have WasmLib -specify a minimum amount of tokens automatically. Any tokens that are not used will end up -in the caller's account on the chain. - -So, if you post to a function that expects tokens you just specify the amount of tokens -required, but if you post to a function that does not expect any tokens then you can have -WasmLib send the minimum amount for you. - -**Providing a `delay()` before a [`call()`](call.mdx) will result in a panic**. We do not -know the intention of the user until the actual [`call()`](call.mdx) or -[`post()`](post.mdx) is encountered, so we cannot check for this at compile-time unless we -are willing to accept a lot of extra overhead. It should not really be a problem because -using `delay()` is rare and using it with [`call()`](call.mdx) cannot have been the -intention. - -The function that posts the request through the function descriptor will immediately -continue execution and does not wait for its completion. Therefore, it is not possible to -directly retrieve the return values from such a call. - -If you need some return values, you will have to create a mechanism that can do so, for -example by providing a callback chain/contract/function combination as part of the input -parameters of the requested function, so that upon completion that function can -asynchronously post the results to the indicated function. It will require a certain -degree of cooperation between both smart contracts. In the future we will probably be -looking at providing a generic mechanism for this. - -In the next section we will look at how we can use the function descriptors when -[testing smart contracts with Solo](test.mdx). diff --git a/docs/build/wasp/0.7.0/docs/guide/wasm_vm/proxies.mdx b/docs/build/wasp/0.7.0/docs/guide/wasm_vm/proxies.mdx deleted file mode 100644 index 32787d40e08..00000000000 --- a/docs/build/wasp/0.7.0/docs/guide/wasm_vm/proxies.mdx +++ /dev/null @@ -1,104 +0,0 @@ ---- -keywords: - - proxies - - sandbox - - wasm - - value proxies - - container proxies - - array proxies - - map proxies - - explanation - -description: As there is no way for the Wasm code to access any memory outside its own memory space, the WasmLib interface provides a number of proxies to make accessing data within the ISC sandbox as seamless as possible. - -image: /img/wasm_vm/Proxies.png ---- - -# Data Access Proxies - -As we cannot call the ISC sandbox functions directly, we need some library to access the -sandbox functionality. There is no way for the Wasm code to access any memory outside its -wn memory space. Therefore, any data that is governed by the ISC sandbox has to be copied -in and out of that memory space through well-defined protected channels in the Wasm -runtime system. - -To make this whole process as seamless as possible the WasmLib interface uses so-called -`proxies`. Proxies are objects that can perform the underlying data transfers between the -separate systems. Proxies are like data references in that regard, they refer to the -actual objects or values stored on the ISC host, and know how to manipulate them. Proxies -provide a consistent interface to access the smart contract data. - -At the lowest level data is stored on the ISC host in maps that take a byte string as key -and a byte string as value. There are 3 predefined maps from the viewpoint of WasmLib. -They are: - -- the [State](state.mdx) map, which holds all state storage values -- the [Params](params.mdx) map, which holds the current function call's parameter values -- the [Results](results.mdx) map, which returns the function call's result values - -The [Schema Tool](usage.mdx) is able to build a more complex, JSON-like data structure -on top of these maps, but in the end it all translates to simple key/value access on the -underlying map. - -## Value Proxies - -The most basic proxies are value proxies. They refer to a single value instance of a -predetermined data type. Value proxies refer to their values through a proxy object that -defines the underlying map and the key that uniquely defines the value's location in that -map. Value proxies can manipulate the value they refer to and will perform appropriate -type conversion of the byte string that makes up the stored value. - -The [Schema Tool](usage.mdx) will make sure that the type-safe code that it generates -always uses the appropriate proxy type. - -## Container Proxies - -Container proxies create a virtual nesting system on the underlying map. Just as with -value proxies, they refer to their virtual container through a proxy object that defines -the underlying map and the key that uniquely defines the virtual container in that map. -Contrary to value proxies these virtual containers need no storage. - -The [Schema Tool](usage.mdx) automatically generates code that allows the user to navigate -the virtual path through the nested virtual containers. In the end this path leads to -access to value proxies of all values that are located in that virtual container. - -To keep things as simple and understandable we imitate the way JSON and YAML nest -containers. That means there are only two different kinds of container proxies: array -proxies and map proxies. Because we allow nesting of containers, these are enough to be -able to define surprisingly complex data structures. - -### Map Proxies - -A map is a key/value store where the key is one of our supported value types. Within a -map, keys are always of the same data type. The root maps ([State](state.mdx), -[Params](params.mdx), and [Results](results.mdx)) can store elements of any type, but -their keys are limited to human-readable strings. This is because these keys needs to be -defined in the schema definition file. Virtual maps, which are nested under a root map, -can hold values of a single associated data type, which can be one of our supported value -types, a user-defined data type, or a virtual container object (map or array). - -### Array Proxies - -An array can be seen as a special kind of map. Its key is an Int32 value that has the -property that keys always form a sequence from 0 to N-1 for an array with N elements. -Arrays always store elements of a single associated data type, which can be one of our -supported value types, a user-defined type, or a virtual container object (map or array). - -## Example That Shows the Use of Proxies in WasmLib - -[![Proxies in WasmLib](/img/wasm_vm/Proxies.png)](/img/wasm_vm/Proxies.png) - -In this example we have a single map in the ISC state storage that contains a number of -key/value combinations (Key 1 through Key 4). One of them (Key 4) refers to an array, -which in turn contains indexed values stored at indexes 0 through N. - -Notice how the WasmLib proxies mirror these exactly. There is a container proxy for each -container, and a value proxy for each value stored. - -Also note that despite the one-to-one correspondence in the example it is not necessary -for a smart contract function to define a proxy for every value or container in the ISC -state storage. In practice a function will only use proxies to data that it actually -needs to access. - -In the next section we will go into more detail about the supported -[WasmLib Data Types](types.mdx). diff --git a/docs/build/wasp/0.7.0/docs/guide/wasm_vm/schema.mdx b/docs/build/wasp/0.7.0/docs/guide/wasm_vm/schema.mdx deleted file mode 100644 index 6dbb5b1bb49..00000000000 --- a/docs/build/wasp/0.7.0/docs/guide/wasm_vm/schema.mdx +++ /dev/null @@ -1,84 +0,0 @@ ---- -keywords: - - code generation - - schema tool - - automatic - - repetitive code fragments - - robust - - schema definition file - -description: To facilitate code generation, we decided to use a _schema definition file_ for smart contracts. All aspects of a smart contract that should be known by someone who wants to use the contract are clearly defined in a schema definition file. - -image: /img/logo/WASP_logo_dark.png ---- - -# Smart Contract Schema Tool - -Smart contracts need to be very robust. The generic nature of WasmLib allows for a lot of -flexibility, but it also provides a lot of opportunities to make mistakes. In addition, -there is a lot of repetitive coding involved in creating smart contracts. The setup code -that is needed for every smart contract must follow strict rules. You also want to assure -that certain functions can only be called by specific entities. You need to verify that -mandatory function parameter values are present. And function parameter values and return -values need to be converted between their binary representation and their actual data -type in a consistent way. - -The best way to increase robustness is by using a code generator that will take care of -most repetitive coding tasks. A code generator only needs to be debugged once, after which -the generated code is 100% accurate and trustworthy. Another advantage of code generation -is that you can regenerate code to correctly reflect any changes to the smart contract -interface. A code generator can also help you by generating wrapper code that limits what -you can do to mirror the intent behind it. This enables compile-time enforcing of some -aspects of the defined smart contract behavior. A code generator can also support multiple -different programming languages. - -During the initial experiences with creating demo smart contracts for WasmLib, we quickly -identified a number of areas where there was a lot of repetitive coding going on. Some -examples of repetition were: - -- Setting up the `on_load` function and keeping it up to date -- Checking function access rights -- Verifying function parameter types -- Verifying the presence of mandatory function parameters -- Setting up access to [State](state.mdx), [Params](params.mdx), and [Results](results.mdx) maps -- Defining common strings as constants - -To facilitate the code generation, it was decided to use a _schema definition file_ for -smart contracts. The aspects of a smart contract that should be known by someone who wants -to use the contract are all clearly defined in a schema definition file. This schema -definition file then becomes the single source of truth for the interface to the smart -contract. This schema definition file is then used by our [Schema Tool](usage.mdx) to -automatically generate a complete smart contract skeleton that reflects the schema -definition and only needs to be augmented by providing the actual function -implementations. - -The schema definition file defines things like the [state storage](state.mdx) variables -that the smart contract uses, the [Funcs](funcs.mdx) and [Views](views.mdx) that the -contract implements, the [access rights](access.mdx) for each function, the -[input parameters](params.mdx) and [output results](results.mdx) for each function, and -additional data structures that the contract uses. - -With detailed schema information readily available in a single location, it becomes -possible to do a lot more than just generating repetitive code fragments. You can use the -schema information to generate the interfaces to functions, and have parameters, results, -and state variables that use strict compile-time type-checking. That removes a common -source of accidental errors. The generated interface can also be used by client side code -so that there is a single, consistent way of calling smart contract functions. - -Another advantage of knowing everything about important smart contract aspects is that it -is possible to generate constants to prevent repeating of typo-prone key strings, and -precalculate necessary values like Hnames and encode them as constants instead of having -the code recalculate them every time they are needed. - -Similarly, since you know all static keys that are going to be used by the smart contract -in advance, you can now generate code that will inform the host correctly about all Funcs -and Views that are available in the smart contract. - -Because of all this the code becomes both simpler and more efficient. Note that all the -improvements described above are independent of the actual programming language that is -being generated. - -The schema definition file can also provide a starting point for other tooling, for -example a tool that automatically audits a smart contract. - -In the next section we will look at how the [Schema Tool](usage.mdx) works. diff --git a/docs/build/wasp/0.7.0/docs/guide/wasm_vm/yaml.mdx b/docs/build/wasp/0.7.0/docs/guide/wasm_vm/yaml.mdx deleted file mode 100644 index 788fea9f07b..00000000000 --- a/docs/build/wasp/0.7.0/docs/guide/wasm_vm/yaml.mdx +++ /dev/null @@ -1,72 +0,0 @@ ---- -keywords: - - definition - - yaml - - smart contract creator - - one-time - - contract generation - - datatypes -description: the syntax of a schema definition file will be described here. -image: /img/logo/WASP_logo_dark.png ---- - -# YAML - -A schema definition file can have following level 1 attributes - -- name -- description -- events -- structs -- typedefs -- state -- funcs -- views - -We are going to introduce each level 1 attributes in the following sections. - -## name - -Single string. The name of the smart contract. This name will be used as the package name of the smart contract. - -## description - -Single string. A description for what this smart contract works for. We currently not process it for the final smart contract. - -## events - -Map of strings. You can define your structured events here. Check [events](./events.mdx) for more information. -The fields in an event must be primitive types, so array, map or typedef can't be the datatype of the fields. - -## structs - -Map of string maps. Declare the structs that can be used in the following development. A declared struct can be called in the schema definition, too. -The fields in a struct can't be array, map or typedef alias. In other words, only the primitive types are accepted. - -## typedefs - -Map of strings. Declare alias of a primitive value. Now only a primitive value, a map of primitive values or an array of primitive values are accepted. -And a nested typedef is not accepted now. - -## state - -Map of strings. `state` is a collection of arbitrary key/value pairs represent usecase-specific data. See [states](/learn/smart-contracts/core_concepts/states) for more information. -If you want to use nested types, you can use typedef to declare an alias of array or map, then use the alias as the value in the state. -However, the key of a map can't be an alias. The key of a map must be a primitive type. - -## funcs - -All the values of `funcs` and `views` in `params` and `results` which share the same name should be in the same datatype. -For function names, `init` is a preserved keyword. A function named as `init` is a special function, see [init](./init.mdx) for more information. - -`access`: Who can access this function. This field must be state variable. You can visit [Limiting Access](./access.mdx#limiting-access) for more information. -`params`: The input parameters of the function. The values in `params` can be an array, a map or typedef alias. -`results`: The return values of the function. The values in `results` can be an array, a map or typedef alias. - -## views - -All the values of `funcs` and `views` in `params` and `results` which share the same name should be in the same datatype. - -`access`: Who can access this function. This field must be state variable. You can visit [Limiting Access](./access.mdx#limiting-access) for more information. -`params`: The input parameters of the function. The values in `params` can be an array, a map or typedef alias. -`results`: The return values of the function. The values in `results` can be an array, a map or typedef alias. diff --git a/docs/build/wasp/0.7.0/docs/overview.md b/docs/build/wasp/0.7.0/docs/overview.md deleted file mode 100644 index f3d8d99fa36..00000000000 --- a/docs/build/wasp/0.7.0/docs/overview.md +++ /dev/null @@ -1,76 +0,0 @@ ---- -description: IOTA Smart Contracts allow you to run smart contracts on top of the IOTA Tangle. -image: /img/Banner/banner_wasp.png -keywords: - - smart contracts - - core concepts - - scaling - - flexibility - - explanation ---- - -# IOTA Smart Contracts - -![Wasp Node](/img/Banner/banner_wasp.png) - -:::caution - -Smart Contracts are currently only compatible with the stardust update and therefore only compatible with the Shimmer main- and testnetwork. - -::: - -IOTA Smart Contracts (ISC) is a platform that brings scalable and flexible smart contracts into the IOTA ecosystem. It -allows anyone to spin up a smart contract blockchain and anchor it to the IOTA Tangle, a design that offers multiple -advantages. - -## ISC Advantages - -### Scaling and Fees - -Due to the ordered structure and execution time of a smart contract, a single blockchain can only handle so many -transactions per second before deciding which transactions it needs to postpone until other blocks are produced, as -there is no processing power available for them on that chain. -On smart contract platforms that support a single blockchain, this eventually results in low throughput and high fees. - -ISC allows many chains to be anchored to the IOTA Tangle and lets them execute in parallel and communicate with each -other. -Because of this, ISC will typically have much higher throughput and lower fees than single-chain smart contract -platforms. -Moreover, ISC is a level 2 solution where only a committee of nodes spends resources executing the smart contracts for -any given chain. Hence, the rest of the IOTA network is mainly unaffected by ISC traffic. - -### Custom Chains - -Since anyone can start a new chain and set its rules, many things that were otherwise not available in single-chain -platforms become possible. - -For example, the chain owner has complete control over the gas fee policy: set the gas price, select which native token -to charge, and what percentage of the fee goes to validators. - -It is possible to spin up a private blockchain with no public data besides the state hash anchored to the main IOTA -Tangle. -This allows parties that need private blockchains to use the security of the public IOTA network without exposing their -data to the public. - -### Flexibility - -ISC is agnostic about the virtual machine that executes the smart contract code. -We support [Rust/Wasm](https://rustwasm.github.io/docs/book/)-based smart contracts -and [Solidity/EVM](https://docs.soliditylang.org/en/v0.8.6/)-based smart contracts. -Eventually, all kinds of virtual machines can be supported in an ISC chain depending on the demand. - -IOTA Smart Contracts are more complex than conventional smart contracts, but this provides freedom and flexibility to -use smart contracts in a wide range of use cases. - -## Wasp - -Wasp is the reference implementation of IOTA Smart Contracts. -Multiple Wasp nodes form a committee in charge of an ISC chain. -When they reach a consensus on a virtual machine state-change, they anchor that state change to the IOTA tangle, making -it immutable. - -## Feedback - -We are eager to receive your feedback about your experiences with the IOTA Smart Contracts Beta. You can -use [this form](https://docs.google.com/forms/d/e/1FAIpQLSd4jcmLzCPUNDIijEwGzuWerO23MS0Jmgzszgs-D6_awJUWow/viewform) to -share your developer experience with us. This feedback will help us improve the product in future releases. diff --git a/docs/build/wasp/0.7.0/sidebars.js b/docs/build/wasp/0.7.0/sidebars.js deleted file mode 100644 index 0302af87131..00000000000 --- a/docs/build/wasp/0.7.0/sidebars.js +++ /dev/null @@ -1,283 +0,0 @@ -/** - * Creating a sidebar enables you to: - - create an ordered group of docs - - render a sidebar for each doc of that group - - provide next/previous navigation - - The sidebars can be generated from the filesystem, or explicitly defined here. - - Create as many sidebars as you want. - */ - -module.exports = { - // By default, Docusaurus generates a sidebar from the docs folder structure - //tutorialSidebar: [{type: 'autogenerated', dirName: '.'}], - - // But you can create a sidebar manually - tutorialSidebar: [ - { - type: 'doc', - label: 'Overview', - id: 'overview', - }, - { - type: 'category', - label: 'EVM', - items: [ - { - type: 'doc', - label: 'Introduction', - id: 'guide/evm/introduction', - }, - { - type: 'doc', - label: 'Quickstart', - id: 'guide/evm/quickstart', - }, - { - type: 'doc', - label: 'Compatibility', - id: 'guide/evm/compatibility', - }, - { - type: 'doc', - label: 'How to Use', - id: 'guide/evm/using', - }, - { - type: 'doc', - label: 'The Magic Contract', - id: 'guide/evm/magic', - }, - { - type: 'doc', - label: 'Magic Contract Usage', - id: 'guide/evm/magic-uses', - }, - { - type: 'doc', - label: 'Tooling', - id: 'guide/evm/tooling', - }, - { - type: 'category', - label: 'Examples', - items: [ - { - type: 'doc', - label: 'Example Contract', - id: 'guide/evm/examples/introduction', - }, - { - type: 'doc', - label: 'ERC20', - id: 'guide/evm/examples/ERC20', - }, - { - type: 'doc', - label: 'ERC721', - id: 'guide/evm/examples/ERC721', - }, - ], - }, - ], - }, - { - type: 'doc', - id: 'testnet', - }, - { - type: 'category', - label: 'Wasm VM (Experimental)', - items: [ - { - type: 'doc', - label: 'Wasm VM for ISC', - id: 'guide/wasm_vm/intro', - }, - { - type: 'doc', - label: 'Smart Contract Concepts', - id: 'guide/wasm_vm/concepts', - }, - { - type: 'doc', - label: 'Call Context', - id: 'guide/wasm_vm/context', - }, - { - type: 'doc', - label: 'Smart Contract Schema Tool', - id: 'guide/wasm_vm/schema', - }, - { - type: 'doc', - label: 'Using the Schema Tool', - id: 'guide/wasm_vm/usage', - }, - { - type: 'category', - label: 'Testing Smart Contracts with Solo', - items: [ - { - type: 'doc', - label: 'What is Solo?', - id: 'guide/solo/what-is-solo', - }, - { - type: 'doc', - label: 'First Example', - id: 'guide/solo/first-example', - }, - { - type: 'doc', - label: 'The L1 Ledger', - id: 'guide/solo/the-l1-ledger', - }, - { - type: 'doc', - label: 'Deploying a Smart Contract', - id: 'guide/solo/deploying-sc', - }, - { - type: 'doc', - label: 'Invoking a Smart Contract', - id: 'guide/solo/invoking-sc', - }, - { - type: 'doc', - label: 'Calling a View', - id: 'guide/solo/view-sc', - }, - { - type: 'doc', - label: 'Error Handling', - id: 'guide/solo/error-handling', - }, - { - type: 'doc', - label: 'Accounts', - id: 'guide/solo/the-l2-ledger', - }, - ], - }, - { - type: 'doc', - label: 'Data Access Proxies', - id: 'guide/wasm_vm/proxies', - }, - { - type: 'doc', - label: 'WasmLib Data Types', - id: 'guide/wasm_vm/types', - }, - { - type: 'doc', - label: 'Structured Data Types', - id: 'guide/wasm_vm/structs', - }, - { - type: 'doc', - label: 'Type Definitions', - id: 'guide/wasm_vm/typedefs', - }, - { - type: 'doc', - label: 'Smart Contract State', - id: 'guide/wasm_vm/state', - }, - { - type: 'doc', - label: 'Triggering Events', - id: 'guide/wasm_vm/events', - }, - { - type: 'doc', - label: 'Function Definitions', - id: 'guide/wasm_vm/funcs', - }, - { - type: 'doc', - label: 'Limiting Access', - id: 'guide/wasm_vm/access', - }, - { - type: 'doc', - label: 'Function Parameters', - id: 'guide/wasm_vm/params', - }, - { - type: 'doc', - label: 'Function Results', - id: 'guide/wasm_vm/results', - }, - { - type: 'doc', - label: 'Thunk Functions', - id: 'guide/wasm_vm/thunks', - }, - { - type: 'doc', - label: 'View-Only Functions', - id: 'guide/wasm_vm/views', - }, - { - type: 'doc', - label: 'Smart Contract Initialization', - id: 'guide/wasm_vm/init', - }, - { - type: 'doc', - label: 'Token Transfers', - id: 'guide/wasm_vm/transfers', - }, - { - type: 'doc', - label: 'Function Descriptors', - id: 'guide/wasm_vm/funcdesc', - }, - { - type: 'doc', - label: 'Calling Functions', - id: 'guide/wasm_vm/call', - }, - { - type: 'doc', - label: 'Posting Asynchronous Requests', - id: 'guide/wasm_vm/post', - }, - { - type: 'doc', - label: 'Testing Smart Contracts', - id: 'guide/wasm_vm/test', - }, - { - type: 'doc', - label: 'Example Tests', - id: 'guide/wasm_vm/examples', - }, - { - type: 'doc', - label: 'Colored Tokens and Time Locks', - id: 'guide/wasm_vm/timelock', - }, - { - type: 'category', - label: 'Example projects', - items: [ - { - type: 'doc', - label: 'Fair Roulette', - id: 'guide/wasm_vm/example_projects/fair_roulette', - }, - ], - }, - ], - }, - { - type: 'doc', - label: 'Contribute', - id: 'contribute', - }, - ], -}; diff --git a/docs/learn/governance/governance-tech.md b/docs/learn/governance/governance-tech.md index 88da4bd15b1..3d587a85916 100644 --- a/docs/learn/governance/governance-tech.md +++ b/docs/learn/governance/governance-tech.md @@ -50,7 +50,7 @@ If you plan to send, mint, or receive tokens, native assets, or NFTs during the Because every node in the SMR network knows the status of every UTXO in the Tangle, they can observe and register changes to these UTXOs. As soon as a vote transaction is issued and confirmed, the UTXO will hold a piece of attached metadata information. -Hornet nodes with activated [INX participation plugin](/hornet/2.0.0-rc.6/inx-plugins/participation/welcome) monitor the ledger for UTXOs that contain this specific metadata. +Hornet nodes with activated [INX participation plugin](/hornet/2.0-rc.6/inx-plugins/participation/welcome) monitor the ledger for UTXOs that contain this specific metadata. They count all UTXOs that have this metadata for every new milestone in the Tangle and create a database for the counted votes of this event. This database includes the following information for every milestone: @@ -113,7 +113,7 @@ Shimmer's voting system builds upon IOTA's [first governance vote in 2022](https In contrast to the earlier voting system developed for the IOTA network, this Shimmer version does not rely on the IOTA Foundation to add governance events to the Firefly wallet. Every community member can: - Create a governance event following the [specifications for participation events](https://github.com/iota-community/treasury/blob/main/specifications/hornet-participation-plugin.md) -- Add this governance event to a Hornet node with the [INX Participation Plugin](/hornet/2.0.0-rc.6/inx-plugins/participation/welcome) +- Add this governance event to a Hornet node with the [INX Participation Plugin](/hornet/2.0-rc.6/inx-plugins/participation/welcome) - Add this governance event to the Shimmer Firefly wallet by connecting Shimmer Firefly to a node that carries this event and use the [“add event”](./shimmer-firefly-governance-guide.md#6-adding-custom-community-proposals-to-firefly) function in the Governance section - Vote on this event with SMR tokens diff --git a/docs/learn/governance/shimmer-governance-intro.md b/docs/learn/governance/shimmer-governance-intro.md index 90b49987534..a4c14c154eb 100644 --- a/docs/learn/governance/shimmer-governance-intro.md +++ b/docs/learn/governance/shimmer-governance-intro.md @@ -18,7 +18,7 @@ The Shimmer community, supported by the IOTA Foundation, has developed a Governa **2. The official IOTA/Shimmer [Governance Forum](https://govern.iota.org)**is the place for specific proposal discussions. It is the first stage of reaching community consensus on proposed changes through soft consensus polling in the forum. -**3. Fully utilized decentralized and immutable On-Chain Governance [voting functionality](./governance-tech.md)** integrated into the [Firefly Shimmer Wallet](https://firefly.iota.org/) and the [Hornet Nodes](/hornet/2.0.0-rc.6/welcome). This allows every SMR Token holder to make decisions in the SMR network based on proposals passed through the forum's governance process. Voting is a protocol feature of L1, so no Smart Contracts are needed for this type of voting. +**3. Fully utilized decentralized and immutable On-Chain Governance [voting functionality](./governance-tech.md)** integrated into the [Firefly Shimmer Wallet](https://firefly.iota.org/) and the [Hornet Nodes](/hornet/2.0-rc.6/welcome). This allows every SMR Token holder to make decisions in the SMR network based on proposals passed through the forum's governance process. Voting is a protocol feature of L1, so no Smart Contracts are needed for this type of voting. Governance processes in SMR are defined in the **[Shimmer Governance Framework](./the-shimmer-governance-framework.md)**. This framework has been developed by the Community Governance working group in many months of discussions and is the foundational building block of how Governance in SMR works. It mainly defines: @@ -50,7 +50,7 @@ This feature consists of 2 components: #### The Hornet - INX participation Plugin -- This feature can be activated as a [plugin](/hornet/2.0.0-rc.6/inx-plugins/participation/welcome) in every Hornet Shimmer node and enables node operators to participate in the decentralized counting and verification of on-chain Governance votes. +- This feature can be activated as a [plugin](/hornet/2.0-rc.6/inx-plugins/participation/welcome) in every Hornet Shimmer node and enables node operators to participate in the decentralized counting and verification of on-chain Governance votes. - Node operators can add proposals that are due for an on-chain vote through an easy interface by uploading the unique proposal ID to their node. - Counting of votes is based on a time-based accumulation. Each milestone (every 5 seconds) that a node finds a vote on a UTXO Output, the SMR tokens sitting on that output and the vote statement (proposal ID, question, and answer) are registered by the nodes and added to the count for that output in an internal database. This leads to a time-based growth of casted votes, meaning the longer a voter participates with SMR tokens in a vote, the more votes are counted for the voter. - Node operators are always able to access this counting data and verify the correct counting of votes by comparing their count to other node operators counts. diff --git a/docs/learn/governance/the-shimmer-governance-framework.md b/docs/learn/governance/the-shimmer-governance-framework.md index c7e16854d7e..9860a7a34a1 100644 --- a/docs/learn/governance/the-shimmer-governance-framework.md +++ b/docs/learn/governance/the-shimmer-governance-framework.md @@ -23,7 +23,7 @@ The [Governance forum](https://govern.iota.org), [introduced by the IOTA Foundat - Phase 2 - Temperature check - Phase 3 - Voting -Once an idea successfully passes phase 2, a vote is initiated in phase 3 using the Firefly voting mechanism based on Shimmer token ownership. This method uses the functionalities of the already developed Firefly Governance and the Hornet [INX participation plugin](/hornet/2.0.0-rc.6/inx-plugins/participation/welcome) developed and used first in the [Build vs. Burn](https://blog.iota.org/iota-treasury-vote-how-to-take-part/) vote that happened in June 2022. +Once an idea successfully passes phase 2, a vote is initiated in phase 3 using the Firefly voting mechanism based on Shimmer token ownership. This method uses the functionalities of the already developed Firefly Governance and the Hornet [INX participation plugin](/hornet/2.0-rc.6/inx-plugins/participation/welcome) developed and used first in the [Build vs. Burn](https://blog.iota.org/iota-treasury-vote-how-to-take-part/) vote that happened in June 2022. **To be accepted and implemented as a vote in Firefly, a governance proposal must successfully pass through the first two phases of the framework that work as a filter mechanism to only allow proposals that fulfill specific criteria to be implemented as a Firefly vote.** diff --git a/docs/learn/protocols/stardust/introduction.md b/docs/learn/protocols/stardust/introduction.md index d5b08880d1d..4aa229f16c9 100644 --- a/docs/learn/protocols/stardust/introduction.md +++ b/docs/learn/protocols/stardust/introduction.md @@ -48,7 +48,7 @@ If a user decides they no longer need the storage, they can reclaim their deposi ## ISC Support -You can deploy [IOTA Smart Contracts (ISC)](../../smart-contracts/core_concepts/smart-contracts.md) as Layer 2 (L2) chains +You can deploy [IOTA Smart Contracts (ISC)](../../smart-contracts/introduction.md) as Layer 2 (L2) chains in Stardust. This approach differs from platforms that run smart contracts on their primary layer, ensuring the main layer remains efficient and speedy while also providing the flexibility that smart contracts offer on diff --git a/docs/learn/sidebars.ts b/docs/learn/sidebars.ts index 6bf6861add0..3e70cccde5b 100644 --- a/docs/learn/sidebars.ts +++ b/docs/learn/sidebars.ts @@ -61,132 +61,49 @@ module.exports = { collapsed: true, items: [ { - type: 'category', - label: 'Core Concepts', - items: [ - { - type: 'doc', - label: 'Smart Contracts', - id: 'smart-contracts/core_concepts/smart-contracts', - }, - { - type: 'doc', - label: 'ISC Architecture', - id: 'smart-contracts/core_concepts/isc-architecture', - }, - { - type: 'doc', - label: 'Validators and Access Nodes', - id: 'smart-contracts/core_concepts/validators', - }, - { - type: 'doc', - label: 'Consensus', - id: 'smart-contracts/core_concepts/consensus', - }, - { - type: 'doc', - label: 'State manager', - id: 'smart-contracts/core_concepts/state_manager', - }, - { - type: 'doc', - label: 'State, Transitions and State Anchoring', - id: 'smart-contracts/core_concepts/states', - }, - { - type: 'doc', - label: 'Anatomy of a Smart Contract', - id: 'smart-contracts/core_concepts/smart-contract-anatomy', - }, - { - type: 'doc', - label: 'Calling a Smart Contract', - id: 'smart-contracts/core_concepts/invocation', - }, - { - type: 'doc', - label: 'Sandbox Interface', - id: 'smart-contracts/core_concepts/sandbox', - }, - { - type: 'category', - label: 'Core Contracts', - items: [ - { - type: 'doc', - label: 'Overview', - id: 'smart-contracts/core_concepts/core_contracts/overview', - }, - { - type: 'doc', - label: 'root', - id: 'smart-contracts/core_concepts/core_contracts/root', - }, - { - type: 'doc', - label: 'accounts', - id: 'smart-contracts/core_concepts/core_contracts/accounts', - }, - { - type: 'doc', - label: 'blob', - id: 'smart-contracts/core_concepts/core_contracts/blob', - }, - { - type: 'doc', - label: 'blocklog', - id: 'smart-contracts/core_concepts/core_contracts/blocklog', - }, - { - type: 'doc', - label: 'governance', - id: 'smart-contracts/core_concepts/core_contracts/governance', - }, - { - type: 'doc', - label: 'errors', - id: 'smart-contracts/core_concepts/core_contracts/errors', - }, - { - type: 'doc', - label: 'evm', - id: 'smart-contracts/core_concepts/core_contracts/evm', - }, - ], - }, - { - type: 'category', - label: 'Accounts', - items: [ - { - type: 'doc', - label: 'How Accounts Work', - id: 'smart-contracts/core_concepts/accounts/how-accounts-work', - }, - { - type: 'doc', - label: 'How To Deposit To a Chain', - id: 'smart-contracts/core_concepts/accounts/how-to-deposit-to-a-chain', - }, - { - type: 'doc', - label: 'How To Withdraw From a Chain', - id: 'smart-contracts/core_concepts/accounts/how-to-withdraw-from-a-chain', - }, - { - type: 'doc', - label: 'View Account Balances', - id: 'smart-contracts/core_concepts/accounts/view-account-balances', - }, - { - type: 'doc', - label: 'The Common Account', - id: 'smart-contracts/core_concepts/accounts/the-common-account', - }, - ], - }, - ], + type: 'doc', + label: 'Introduction', + id: 'smart-contracts/introduction', + }, + { + type: 'doc', + label: 'ISC Architecture', + id: 'smart-contracts/isc-architecture', + }, + { + type: 'doc', + label: 'Anatomy of a Smart Contract', + id: 'smart-contracts/smart-contract-anatomy', + }, + { + type: 'doc', + label: 'Sandbox Interface', + id: 'smart-contracts/sandbox', + }, + { + type: 'doc', + label: 'Calling a Smart Contract', + id: 'smart-contracts/invocation', + }, + { + type: 'doc', + label: 'State, Transitions and State Anchoring', + id: 'smart-contracts/states', + }, + { + type: 'doc', + label: 'State manager', + id: 'smart-contracts/state_manager', + }, + { + type: 'doc', + label: 'Validators and Access Nodes', + id: 'smart-contracts/validators', + }, + { + type: 'doc', + label: 'Consensus', + id: 'smart-contracts/consensus', }, ], }, diff --git a/docs/learn/smart-contracts/core_concepts/consensus.md b/docs/learn/smart-contracts/consensus.md similarity index 100% rename from docs/learn/smart-contracts/core_concepts/consensus.md rename to docs/learn/smart-contracts/consensus.md diff --git a/docs/learn/smart-contracts/core_concepts/accounts/the-common-account.mdx b/docs/learn/smart-contracts/core_concepts/accounts/the-common-account.mdx deleted file mode 100644 index 5ecaf691e88..00000000000 --- a/docs/learn/smart-contracts/core_concepts/accounts/the-common-account.mdx +++ /dev/null @@ -1,21 +0,0 @@ ---- -description: The common account is controlled by the chain owner, and is used to store funds collected by fees, invalid contracts or sent to the L1 chain address. -image: /img/logo/WASP_logo_dark.png -keywords: - - smart contracts - - deposit - - transfer - - chain - - Rust - - Solo - - how to ---- - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -# The Common Account - -The common account is controlled by the chain owner defined in the chain [root contract](../core_contracts/root.md). - -This account is only used to accumulate funds for minimum storage deposit. diff --git a/docs/learn/smart-contracts/core_concepts/smart-contracts.md b/docs/learn/smart-contracts/introduction.md similarity index 100% rename from docs/learn/smart-contracts/core_concepts/smart-contracts.md rename to docs/learn/smart-contracts/introduction.md diff --git a/docs/learn/smart-contracts/core_concepts/invocation.md b/docs/learn/smart-contracts/invocation.md similarity index 98% rename from docs/learn/smart-contracts/core_concepts/invocation.md rename to docs/learn/smart-contracts/invocation.md index 88cd869bcea..c0e04f55abd 100644 --- a/docs/learn/smart-contracts/core_concepts/invocation.md +++ b/docs/learn/smart-contracts/invocation.md @@ -87,7 +87,7 @@ etc.) has an associated gas cost. For users to specify how much they're willing to pay for a request, they need to specify a `GasBudget` in the request. This gas budget is the "maximum operations that this request can execute" and will be charged as a fee based on the -chain's current [fee policy](core_contracts/governance.md#fee-policy). +chain's current [fee policy](/wasp-wasm/reference/core-contracts/governance#fee-policy). The funds to cover the gas used will be charged directly from the user's on-chain account. diff --git a/docs/learn/smart-contracts/core_concepts/isc-architecture.md b/docs/learn/smart-contracts/isc-architecture.md similarity index 90% rename from docs/learn/smart-contracts/core_concepts/isc-architecture.md rename to docs/learn/smart-contracts/isc-architecture.md index 9330d085f1d..04f216cf7a0 100644 --- a/docs/learn/smart-contracts/core_concepts/isc-architecture.md +++ b/docs/learn/smart-contracts/isc-architecture.md @@ -14,7 +14,7 @@ keywords: # ISC Architecture IOTA Smart Contracts work as a _layer 2_ (L2 for short) extension of the [_IOTA Multi-Asset -Ledger_](https://github.com/lzpap/tips/blob/master/tips/TIP-0018/tip-0018.md) (Layer 1, or L1 for short, also sometimes +Ledger_](../protocols/stardust/core-concepts/multi-asset-ledger.md) (Layer 1, or L1 for short, also sometimes called the UTXO Ledger). In IOTA Smart Contracts, each L2 chain has its own state and smart contracts that cause this state to change. diff --git a/docs/learn/smart-contracts/core_concepts/sandbox.md b/docs/learn/smart-contracts/sandbox.md similarity index 93% rename from docs/learn/smart-contracts/core_concepts/sandbox.md rename to docs/learn/smart-contracts/sandbox.md index 5d7082c68a8..5ccb1918a59 100644 --- a/docs/learn/smart-contracts/core_concepts/sandbox.md +++ b/docs/learn/smart-contracts/sandbox.md @@ -30,14 +30,14 @@ their internal state as a list of key/value pairs. Besides reading and writing to the contract state, the Sandbox interface allows smart contracts to access: -- The [ID](./accounts/how-accounts-work.md#agent-id) of the contract. +- The [ID](/wasp-wasm/explanations/how-accounts-work) of the contract. - The details of the current request or view call. - The current request allowance and a way to claim the allowance. - The balances owned by the contract. - The ID of whoever had deployed the contract. - The timestamp of the current block. - Cryptographic utilities like hashing, signature verification, and so on. -- The [events](/smart-contracts/guide/wasm_vm/events) dispatch. +- The [events](/wasp-wasm/how-tos/schema-tool/events) dispatch. - Entropy that emulates randomness in an unpredictable yet deterministic way. - Logging. Used for debugging in a test environment. diff --git a/docs/learn/smart-contracts/core_concepts/smart-contract-anatomy.md b/docs/learn/smart-contracts/smart-contract-anatomy.md similarity index 86% rename from docs/learn/smart-contracts/core_concepts/smart-contract-anatomy.md rename to docs/learn/smart-contracts/smart-contract-anatomy.md index 4d5e73dfa40..bde93f46b05 100644 --- a/docs/learn/smart-contracts/core_concepts/smart-contract-anatomy.md +++ b/docs/learn/smart-contracts/smart-contract-anatomy.md @@ -16,7 +16,8 @@ Smart contracts are programs that are immutably stored in the chain. Through _VM abstraction_, the ISC virtual machine is agnostic about the interpreter used to execute each smart contract. It can support different _VM types_ (i.e., interpreters) simultaneously on the same chain. -For example, it is possible to have Wasm and EVM/Solidity smart contracts coexisting on the same chain. +For example, it is possible to have [Wasm](/wasp-wasm/introduction/) and [EVM/Solidity](/wasp-evm/introduction/) smart +contracts coexisting on the same chain. The logical structure of IOTA Smart Contracts is independent of the VM type: @@ -26,7 +27,8 @@ The logical structure of IOTA Smart Contracts is independent of the VM type: Each smart contract on the chain is identified by a _hname_ (pronounced "aitch-name"), which is a `uint32` value calculated as a hash of the smart contract's instance name (a string). -For example, the hname of the [`root`](/learn/smart-contracts/core_concepts/core_contracts/root) core contract is `0xcebf5908`. This +For example, the hname of the [`root`](/wasp-wasm/reference/core-contracts/root/) core contract +is `0xcebf5908`. This value uniquely identifies this contract in every chain. ## State @@ -47,7 +49,8 @@ Only the smart contract program can change its data state and spend from its account. Tokens can be sent to the smart contract account by any other agent on the ledger, be it a wallet with an address or another smart contract. -See [Accounts](/learn/smart-contracts/core_concepts/accounts/how-accounts-work) for more information on sending and receiving tokens. +See [Accounts](https://wiki.iota.org/build/wasp-wasm/how-accounts-work/) for more information on sending and receiving +tokens. ## Entry Points @@ -65,7 +68,8 @@ There are two types of entry points: ## Execution Results After a request to a Smart Contract is executed (a call to a full entry point), a _receipt_ will be added to -the [`blocklog`](/learn/smart-contracts/core_concepts/core_contracts/blocklog) core contract. The receipt details the execution results +the [`blocklog`](/wasp-wasm/reference/core-contracts/blocklog/) core contract. The receipt details the +execution results of said request: whether it was successful, the block it was included in, and other information. Any events dispatched by the smart contract in context of this execution will also be added to the receipt. diff --git a/docs/learn/smart-contracts/smart-contracts.md b/docs/learn/smart-contracts/smart-contracts.md new file mode 100644 index 00000000000..608e2248272 --- /dev/null +++ b/docs/learn/smart-contracts/smart-contracts.md @@ -0,0 +1,54 @@ +--- +description: 'Smart contracts are applications you can trust that run on a distributed network with multiple validators +all executing and validating the same code.' +image: /img/Banner/banner_wasp_core_concepts_smart_contracts.png +keywords: + +- smart contracts +- blockchain +- parallel +- scaling +- explanation + +--- + +# Smart Contracts + +![Wasp Node Smart Contracts](/img/Banner/banner_wasp_core_concepts_smart_contracts.png) + +## What Are Smart Contracts? + +Smart contracts are software applications that run on a distributed network with multiple validators executing and +validating the same code. This ensures the application behaves as expected and that there is no tampering in the +program's execution. + +### Applications You Can Trust + +As you can be certain that the executed code is always the same (and will not change), this results in +applications you can trust. This allows you to use smart contracts for applications with a trust issue. The +smart contract rules define what the contract can and can not do, making it a decentralized and predictable +decision-maker. + +You can use smart contracts for all kinds of purposes. A recurring reason to use a smart contract is to automate +specific +actions without needing a centralized entity to enforce this specific action. A good example is a smart contract +that can exchange a certain amount of IOTA tokens for land ownership. The smart contract will accept +both the IOTA tokens and the land ownership, and will predictably exchange them between both parties without the risk of +one of the parties not delivering on their promise. **With a smart contract, code is law**. + +### Scalable Smart Contracts + +Anyone willing to pay the fees for deploying a smart contract on a public blockchain can deploy one. Once your smart +contract has been deployed to the chain, you no longer have the option to change it, and you can be sure that your +smart contract application will be there as long as that blockchain exists. Smart contracts can communicate with one +another, and you can invoke programmed public functions on a smart contract to trigger actions on a smart contract, or +address the state of a smart contract. + +Because smart contracts do not run on a single computer but on many validators, a network of validators can only +process so many smart contracts at once, even if the software has been written optimally. This means smart contracts are +expensive to execute, and do not scale well on a single blockchain, often resulting in congested networks and costly +fees for executing functions on smart contracts. **By allowing many blockchains executing smart contracts to run in +parallel** and communicate with one another, **IOTA Smart Contracts solves this scalability problem.** + +At the same time, ISC provides advanced means of communication between its chains and preserves the ability to create +complex, composed smart contracts. diff --git a/docs/learn/smart-contracts/core_concepts/state_manager.md b/docs/learn/smart-contracts/state_manager.md similarity index 99% rename from docs/learn/smart-contracts/core_concepts/state_manager.md rename to docs/learn/smart-contracts/state_manager.md index b7b1a9f2fc1..021e9bc3a07 100644 --- a/docs/learn/smart-contracts/core_concepts/state_manager.md +++ b/docs/learn/smart-contracts/state_manager.md @@ -9,7 +9,7 @@ keywords: - WAL --- -# State manager +# State Manager State manager aims at keeping the state of the node up to date by retrieving missing data and ensuring that it is consistently stored in the DB. It services requests by other Wasp components (consensus, mempool), which mainly diff --git a/docs/learn/smart-contracts/core_concepts/states.md b/docs/learn/smart-contracts/states.md similarity index 100% rename from docs/learn/smart-contracts/core_concepts/states.md rename to docs/learn/smart-contracts/states.md diff --git a/docs/learn/smart-contracts/core_concepts/validators.md b/docs/learn/smart-contracts/validators.md similarity index 96% rename from docs/learn/smart-contracts/core_concepts/validators.md rename to docs/learn/smart-contracts/validators.md index 20b5ac3ec24..a9118b0e24f 100644 --- a/docs/learn/smart-contracts/core_concepts/validators.md +++ b/docs/learn/smart-contracts/validators.md @@ -46,4 +46,5 @@ It is common for validator nodes to be part of a private subnet and have only a outside world, protecting the committee from external attacks. The management of validator and access nodes is done through -the [`governance` core contract](./core_contracts/governance.md). +the [`governance` core contract](/wasp-wasm/reference/core-contracts/ +governance/). diff --git a/docs/maintain/chronicle/0.3.0/docs/config_reference.md b/docs/maintain/chronicle/0.3/docs/config_reference.md similarity index 100% rename from docs/maintain/chronicle/0.3.0/docs/config_reference.md rename to docs/maintain/chronicle/0.3/docs/config_reference.md diff --git a/docs/maintain/chronicle/0.3.0/docs/contribute.md b/docs/maintain/chronicle/0.3/docs/contribute.md similarity index 100% rename from docs/maintain/chronicle/0.3.0/docs/contribute.md rename to docs/maintain/chronicle/0.3/docs/contribute.md diff --git a/docs/maintain/chronicle/0.3.0/docs/getting_started.md b/docs/maintain/chronicle/0.3/docs/getting_started.md similarity index 100% rename from docs/maintain/chronicle/0.3.0/docs/getting_started.md rename to docs/maintain/chronicle/0.3/docs/getting_started.md diff --git a/docs/maintain/chronicle/0.3.0/docs/welcome.md b/docs/maintain/chronicle/0.3/docs/welcome.md similarity index 100% rename from docs/maintain/chronicle/0.3.0/docs/welcome.md rename to docs/maintain/chronicle/0.3/docs/welcome.md diff --git a/docs/maintain/chronicle/0.3.0/sidebars.js b/docs/maintain/chronicle/0.3/sidebars.js similarity index 100% rename from docs/maintain/chronicle/0.3.0/sidebars.js rename to docs/maintain/chronicle/0.3/sidebars.js diff --git a/docs/maintain/chronicle/0.3.0/static/.nojekyll b/docs/maintain/chronicle/0.3/static/.nojekyll similarity index 100% rename from docs/maintain/chronicle/0.3.0/static/.nojekyll rename to docs/maintain/chronicle/0.3/static/.nojekyll diff --git a/docs/maintain/chronicle/0.3.0/static/img/chronicle_icon.png b/docs/maintain/chronicle/0.3/static/img/chronicle_icon.png similarity index 100% rename from docs/maintain/chronicle/0.3.0/static/img/chronicle_icon.png rename to docs/maintain/chronicle/0.3/static/img/chronicle_icon.png diff --git a/docs/maintain/chronicle/1.0.0-rc.1/docs/changelog.md b/docs/maintain/chronicle/1.0-rc.1/docs/changelog.md similarity index 100% rename from docs/maintain/chronicle/1.0.0-rc.1/docs/changelog.md rename to docs/maintain/chronicle/1.0-rc.1/docs/changelog.md diff --git a/docs/maintain/chronicle/1.0.0-rc.1/docs/contribute.md b/docs/maintain/chronicle/1.0-rc.1/docs/contribute.md similarity index 100% rename from docs/maintain/chronicle/1.0.0-rc.1/docs/contribute.md rename to docs/maintain/chronicle/1.0-rc.1/docs/contribute.md diff --git a/docs/maintain/chronicle/1.0.0-rc.1/docs/getting_started/docker.md b/docs/maintain/chronicle/1.0-rc.1/docs/getting_started/docker.md similarity index 100% rename from docs/maintain/chronicle/1.0.0-rc.1/docs/getting_started/docker.md rename to docs/maintain/chronicle/1.0-rc.1/docs/getting_started/docker.md diff --git a/docs/maintain/chronicle/1.0.0-rc.1/docs/reference/api.md b/docs/maintain/chronicle/1.0-rc.1/docs/reference/api.md similarity index 100% rename from docs/maintain/chronicle/1.0.0-rc.1/docs/reference/api.md rename to docs/maintain/chronicle/1.0-rc.1/docs/reference/api.md diff --git a/docs/maintain/chronicle/1.0.0-rc.1/docs/reference/authentication.md b/docs/maintain/chronicle/1.0-rc.1/docs/reference/authentication.md similarity index 100% rename from docs/maintain/chronicle/1.0.0-rc.1/docs/reference/authentication.md rename to docs/maintain/chronicle/1.0-rc.1/docs/reference/authentication.md diff --git a/docs/maintain/chronicle/1.0.0-rc.1/docs/reference/environment.md b/docs/maintain/chronicle/1.0-rc.1/docs/reference/environment.md similarity index 100% rename from docs/maintain/chronicle/1.0.0-rc.1/docs/reference/environment.md rename to docs/maintain/chronicle/1.0-rc.1/docs/reference/environment.md diff --git a/docs/maintain/chronicle/1.0.0-rc.1/docs/reference/sync_and_analytics.md b/docs/maintain/chronicle/1.0-rc.1/docs/reference/sync_and_analytics.md similarity index 100% rename from docs/maintain/chronicle/1.0.0-rc.1/docs/reference/sync_and_analytics.md rename to docs/maintain/chronicle/1.0-rc.1/docs/reference/sync_and_analytics.md diff --git a/docs/maintain/chronicle/1.0.0-rc.1/docs/troubleshooting.md b/docs/maintain/chronicle/1.0-rc.1/docs/troubleshooting.md similarity index 100% rename from docs/maintain/chronicle/1.0.0-rc.1/docs/troubleshooting.md rename to docs/maintain/chronicle/1.0-rc.1/docs/troubleshooting.md diff --git a/docs/maintain/chronicle/1.0.0-rc.1/docs/welcome.md b/docs/maintain/chronicle/1.0-rc.1/docs/welcome.md similarity index 100% rename from docs/maintain/chronicle/1.0.0-rc.1/docs/welcome.md rename to docs/maintain/chronicle/1.0-rc.1/docs/welcome.md diff --git a/docs/maintain/chronicle/1.0.0-rc.1/sidebars.js b/docs/maintain/chronicle/1.0-rc.1/sidebars.js similarity index 100% rename from docs/maintain/chronicle/1.0.0-rc.1/sidebars.js rename to docs/maintain/chronicle/1.0-rc.1/sidebars.js diff --git a/docs/maintain/chronicle/1.0.0-rc.1/static/.nojekyll b/docs/maintain/chronicle/1.0-rc.1/static/.nojekyll similarity index 100% rename from docs/maintain/chronicle/1.0.0-rc.1/static/.nojekyll rename to docs/maintain/chronicle/1.0-rc.1/static/.nojekyll diff --git a/docs/maintain/chronicle/1.0.0-rc.1/static/img/logo/iota_logo.svg b/docs/maintain/chronicle/1.0-rc.1/static/img/logo/iota_logo.svg similarity index 100% rename from docs/maintain/chronicle/1.0.0-rc.1/static/img/logo/iota_logo.svg rename to docs/maintain/chronicle/1.0-rc.1/static/img/logo/iota_logo.svg diff --git a/docs/maintain/getting-started/welcome.md b/docs/maintain/getting-started/welcome.md index b9d7db99161..09b7d3bce60 100644 --- a/docs/maintain/getting-started/welcome.md +++ b/docs/maintain/getting-started/welcome.md @@ -27,6 +27,6 @@ removing the Coordinator from the IOTA networks. ### WASP - IOTA Smart Contracts [WASP](/wasp/running-a-node) is an INX plugin you can install and use to run your smart contract chain. -You can use the documentation to get your node up and running, and [set up](/wasp/setting-up-a-chain) and -[manage](/wasp/chain-management) a chain, or check out the available +You can use the documentation to get your node up and running, and [set up](/wasp-cli/how-tos/setting-up-a-chain/) and +[manage](/wasp-cli/how-tos/chain-management) a chain, or check out the available [configuration options](/wasp/configuration). diff --git a/docs/maintain/goshimmer/0.9.8/docs/apis/autopeering.md b/docs/maintain/goshimmer/0.9/docs/apis/autopeering.md similarity index 100% rename from docs/maintain/goshimmer/0.9.8/docs/apis/autopeering.md rename to docs/maintain/goshimmer/0.9/docs/apis/autopeering.md diff --git a/docs/maintain/goshimmer/0.9.8/docs/apis/client_lib.md b/docs/maintain/goshimmer/0.9/docs/apis/client_lib.md similarity index 100% rename from docs/maintain/goshimmer/0.9.8/docs/apis/client_lib.md rename to docs/maintain/goshimmer/0.9/docs/apis/client_lib.md diff --git a/docs/maintain/goshimmer/0.9.8/docs/apis/communication.md b/docs/maintain/goshimmer/0.9/docs/apis/communication.md similarity index 100% rename from docs/maintain/goshimmer/0.9.8/docs/apis/communication.md rename to docs/maintain/goshimmer/0.9/docs/apis/communication.md diff --git a/docs/maintain/goshimmer/0.9.8/docs/apis/faucet.md b/docs/maintain/goshimmer/0.9/docs/apis/faucet.md similarity index 100% rename from docs/maintain/goshimmer/0.9.8/docs/apis/faucet.md rename to docs/maintain/goshimmer/0.9/docs/apis/faucet.md diff --git a/docs/maintain/goshimmer/0.9.8/docs/apis/info.md b/docs/maintain/goshimmer/0.9/docs/apis/info.md similarity index 100% rename from docs/maintain/goshimmer/0.9.8/docs/apis/info.md rename to docs/maintain/goshimmer/0.9/docs/apis/info.md diff --git a/docs/maintain/goshimmer/0.9.8/docs/apis/ledgerstate.md b/docs/maintain/goshimmer/0.9/docs/apis/ledgerstate.md similarity index 100% rename from docs/maintain/goshimmer/0.9.8/docs/apis/ledgerstate.md rename to docs/maintain/goshimmer/0.9/docs/apis/ledgerstate.md diff --git a/docs/maintain/goshimmer/0.9.8/docs/apis/mana.md b/docs/maintain/goshimmer/0.9/docs/apis/mana.md similarity index 100% rename from docs/maintain/goshimmer/0.9.8/docs/apis/mana.md rename to docs/maintain/goshimmer/0.9/docs/apis/mana.md diff --git a/docs/maintain/goshimmer/0.9.8/docs/apis/manual_peering.md b/docs/maintain/goshimmer/0.9/docs/apis/manual_peering.md similarity index 100% rename from docs/maintain/goshimmer/0.9.8/docs/apis/manual_peering.md rename to docs/maintain/goshimmer/0.9/docs/apis/manual_peering.md diff --git a/docs/maintain/goshimmer/0.9.8/docs/apis/snapshot.md b/docs/maintain/goshimmer/0.9/docs/apis/snapshot.md similarity index 100% rename from docs/maintain/goshimmer/0.9.8/docs/apis/snapshot.md rename to docs/maintain/goshimmer/0.9/docs/apis/snapshot.md diff --git a/docs/maintain/goshimmer/0.9.8/docs/apis/spammer.md b/docs/maintain/goshimmer/0.9/docs/apis/spammer.md similarity index 100% rename from docs/maintain/goshimmer/0.9.8/docs/apis/spammer.md rename to docs/maintain/goshimmer/0.9/docs/apis/spammer.md diff --git a/docs/maintain/goshimmer/0.9.8/docs/apis/webAPI.md b/docs/maintain/goshimmer/0.9/docs/apis/webAPI.md similarity index 100% rename from docs/maintain/goshimmer/0.9.8/docs/apis/webAPI.md rename to docs/maintain/goshimmer/0.9/docs/apis/webAPI.md diff --git a/docs/maintain/goshimmer/0.9.8/docs/faq.md b/docs/maintain/goshimmer/0.9/docs/faq.md similarity index 100% rename from docs/maintain/goshimmer/0.9.8/docs/faq.md rename to docs/maintain/goshimmer/0.9/docs/faq.md diff --git a/docs/maintain/goshimmer/0.9.8/docs/implementation_design/configuration_parameters.md b/docs/maintain/goshimmer/0.9/docs/implementation_design/configuration_parameters.md similarity index 100% rename from docs/maintain/goshimmer/0.9.8/docs/implementation_design/configuration_parameters.md rename to docs/maintain/goshimmer/0.9/docs/implementation_design/configuration_parameters.md diff --git a/docs/maintain/goshimmer/0.9.8/docs/implementation_design/event_driven_model.md b/docs/maintain/goshimmer/0.9/docs/implementation_design/event_driven_model.md similarity index 100% rename from docs/maintain/goshimmer/0.9.8/docs/implementation_design/event_driven_model.md rename to docs/maintain/goshimmer/0.9/docs/implementation_design/event_driven_model.md diff --git a/docs/maintain/goshimmer/0.9.8/docs/implementation_design/object_storage.md b/docs/maintain/goshimmer/0.9/docs/implementation_design/object_storage.md similarity index 100% rename from docs/maintain/goshimmer/0.9.8/docs/implementation_design/object_storage.md rename to docs/maintain/goshimmer/0.9/docs/implementation_design/object_storage.md diff --git a/docs/maintain/goshimmer/0.9.8/docs/implementation_design/packages_plugins.md b/docs/maintain/goshimmer/0.9/docs/implementation_design/packages_plugins.md similarity index 100% rename from docs/maintain/goshimmer/0.9.8/docs/implementation_design/packages_plugins.md rename to docs/maintain/goshimmer/0.9/docs/implementation_design/packages_plugins.md diff --git a/docs/maintain/goshimmer/0.9.8/docs/implementation_design/plugin.md b/docs/maintain/goshimmer/0.9/docs/implementation_design/plugin.md similarity index 100% rename from docs/maintain/goshimmer/0.9.8/docs/implementation_design/plugin.md rename to docs/maintain/goshimmer/0.9/docs/implementation_design/plugin.md diff --git a/docs/maintain/goshimmer/0.9.8/docs/protocol_specification/components/advanced_outputs.md b/docs/maintain/goshimmer/0.9/docs/protocol_specification/components/advanced_outputs.md similarity index 100% rename from docs/maintain/goshimmer/0.9.8/docs/protocol_specification/components/advanced_outputs.md rename to docs/maintain/goshimmer/0.9/docs/protocol_specification/components/advanced_outputs.md diff --git a/docs/maintain/goshimmer/0.9.8/docs/protocol_specification/components/autopeering.md b/docs/maintain/goshimmer/0.9/docs/protocol_specification/components/autopeering.md similarity index 100% rename from docs/maintain/goshimmer/0.9.8/docs/protocol_specification/components/autopeering.md rename to docs/maintain/goshimmer/0.9/docs/protocol_specification/components/autopeering.md diff --git a/docs/maintain/goshimmer/0.9.8/docs/protocol_specification/components/congestion_control.md b/docs/maintain/goshimmer/0.9/docs/protocol_specification/components/congestion_control.md similarity index 100% rename from docs/maintain/goshimmer/0.9.8/docs/protocol_specification/components/congestion_control.md rename to docs/maintain/goshimmer/0.9/docs/protocol_specification/components/congestion_control.md diff --git a/docs/maintain/goshimmer/0.9.8/docs/protocol_specification/components/consensus_mechanism.md b/docs/maintain/goshimmer/0.9/docs/protocol_specification/components/consensus_mechanism.md similarity index 100% rename from docs/maintain/goshimmer/0.9.8/docs/protocol_specification/components/consensus_mechanism.md rename to docs/maintain/goshimmer/0.9/docs/protocol_specification/components/consensus_mechanism.md diff --git a/docs/maintain/goshimmer/0.9.8/docs/protocol_specification/components/ledgerstate.md b/docs/maintain/goshimmer/0.9/docs/protocol_specification/components/ledgerstate.md similarity index 100% rename from docs/maintain/goshimmer/0.9.8/docs/protocol_specification/components/ledgerstate.md rename to docs/maintain/goshimmer/0.9/docs/protocol_specification/components/ledgerstate.md diff --git a/docs/maintain/goshimmer/0.9.8/docs/protocol_specification/components/mana.md b/docs/maintain/goshimmer/0.9/docs/protocol_specification/components/mana.md similarity index 100% rename from docs/maintain/goshimmer/0.9.8/docs/protocol_specification/components/mana.md rename to docs/maintain/goshimmer/0.9/docs/protocol_specification/components/mana.md diff --git a/docs/maintain/goshimmer/0.9.8/docs/protocol_specification/components/markers.md b/docs/maintain/goshimmer/0.9/docs/protocol_specification/components/markers.md similarity index 100% rename from docs/maintain/goshimmer/0.9.8/docs/protocol_specification/components/markers.md rename to docs/maintain/goshimmer/0.9/docs/protocol_specification/components/markers.md diff --git a/docs/maintain/goshimmer/0.9.8/docs/protocol_specification/components/overview.md b/docs/maintain/goshimmer/0.9/docs/protocol_specification/components/overview.md similarity index 100% rename from docs/maintain/goshimmer/0.9.8/docs/protocol_specification/components/overview.md rename to docs/maintain/goshimmer/0.9/docs/protocol_specification/components/overview.md diff --git a/docs/maintain/goshimmer/0.9.8/docs/protocol_specification/components/tangle.md b/docs/maintain/goshimmer/0.9/docs/protocol_specification/components/tangle.md similarity index 100% rename from docs/maintain/goshimmer/0.9.8/docs/protocol_specification/components/tangle.md rename to docs/maintain/goshimmer/0.9/docs/protocol_specification/components/tangle.md diff --git a/docs/maintain/goshimmer/0.9.8/docs/protocol_specification/glossary.md b/docs/maintain/goshimmer/0.9/docs/protocol_specification/glossary.md similarity index 100% rename from docs/maintain/goshimmer/0.9.8/docs/protocol_specification/glossary.md rename to docs/maintain/goshimmer/0.9/docs/protocol_specification/glossary.md diff --git a/docs/maintain/goshimmer/0.9.8/docs/protocol_specification/overview.md b/docs/maintain/goshimmer/0.9/docs/protocol_specification/overview.md similarity index 100% rename from docs/maintain/goshimmer/0.9.8/docs/protocol_specification/overview.md rename to docs/maintain/goshimmer/0.9/docs/protocol_specification/overview.md diff --git a/docs/maintain/goshimmer/0.9.8/docs/protocol_specification/protocol.md b/docs/maintain/goshimmer/0.9/docs/protocol_specification/protocol.md similarity index 100% rename from docs/maintain/goshimmer/0.9.8/docs/protocol_specification/protocol.md rename to docs/maintain/goshimmer/0.9/docs/protocol_specification/protocol.md diff --git a/docs/maintain/goshimmer/0.9.8/docs/teamresources/analysis_dashboard.md b/docs/maintain/goshimmer/0.9/docs/teamresources/analysis_dashboard.md similarity index 100% rename from docs/maintain/goshimmer/0.9.8/docs/teamresources/analysis_dashboard.md rename to docs/maintain/goshimmer/0.9/docs/teamresources/analysis_dashboard.md diff --git a/docs/maintain/goshimmer/0.9.8/docs/teamresources/guidelines.md b/docs/maintain/goshimmer/0.9/docs/teamresources/guidelines.md similarity index 100% rename from docs/maintain/goshimmer/0.9.8/docs/teamresources/guidelines.md rename to docs/maintain/goshimmer/0.9/docs/teamresources/guidelines.md diff --git a/docs/maintain/goshimmer/0.9.8/docs/teamresources/local_development.md b/docs/maintain/goshimmer/0.9/docs/teamresources/local_development.md similarity index 100% rename from docs/maintain/goshimmer/0.9.8/docs/teamresources/local_development.md rename to docs/maintain/goshimmer/0.9/docs/teamresources/local_development.md diff --git a/docs/maintain/goshimmer/0.9.8/docs/teamresources/release.md b/docs/maintain/goshimmer/0.9/docs/teamresources/release.md similarity index 100% rename from docs/maintain/goshimmer/0.9.8/docs/teamresources/release.md rename to docs/maintain/goshimmer/0.9/docs/teamresources/release.md diff --git a/docs/maintain/goshimmer/0.9.8/docs/tooling/dags_visualizer.md b/docs/maintain/goshimmer/0.9/docs/tooling/dags_visualizer.md similarity index 100% rename from docs/maintain/goshimmer/0.9.8/docs/tooling/dags_visualizer.md rename to docs/maintain/goshimmer/0.9/docs/tooling/dags_visualizer.md diff --git a/docs/maintain/goshimmer/0.9.8/docs/tooling/docker_private_network.md b/docs/maintain/goshimmer/0.9/docs/tooling/docker_private_network.md similarity index 100% rename from docs/maintain/goshimmer/0.9.8/docs/tooling/docker_private_network.md rename to docs/maintain/goshimmer/0.9/docs/tooling/docker_private_network.md diff --git a/docs/maintain/goshimmer/0.9.8/docs/tooling/evil_spammer.md b/docs/maintain/goshimmer/0.9/docs/tooling/evil_spammer.md similarity index 100% rename from docs/maintain/goshimmer/0.9.8/docs/tooling/evil_spammer.md rename to docs/maintain/goshimmer/0.9/docs/tooling/evil_spammer.md diff --git a/docs/maintain/goshimmer/0.9.8/docs/tooling/integration_tests.md b/docs/maintain/goshimmer/0.9/docs/tooling/integration_tests.md similarity index 100% rename from docs/maintain/goshimmer/0.9.8/docs/tooling/integration_tests.md rename to docs/maintain/goshimmer/0.9/docs/tooling/integration_tests.md diff --git a/docs/maintain/goshimmer/0.9.8/docs/tooling/overview.md b/docs/maintain/goshimmer/0.9/docs/tooling/overview.md similarity index 100% rename from docs/maintain/goshimmer/0.9.8/docs/tooling/overview.md rename to docs/maintain/goshimmer/0.9/docs/tooling/overview.md diff --git a/docs/maintain/goshimmer/0.9.8/docs/tooling/rand_seed_and_rand_address.md b/docs/maintain/goshimmer/0.9/docs/tooling/rand_seed_and_rand_address.md similarity index 100% rename from docs/maintain/goshimmer/0.9.8/docs/tooling/rand_seed_and_rand_address.md rename to docs/maintain/goshimmer/0.9/docs/tooling/rand_seed_and_rand_address.md diff --git a/docs/maintain/goshimmer/0.9.8/docs/tutorials/dApp.md b/docs/maintain/goshimmer/0.9/docs/tutorials/dApp.md similarity index 100% rename from docs/maintain/goshimmer/0.9.8/docs/tutorials/dApp.md rename to docs/maintain/goshimmer/0.9/docs/tutorials/dApp.md diff --git a/docs/maintain/goshimmer/0.9.8/docs/tutorials/manual_peering.md b/docs/maintain/goshimmer/0.9/docs/tutorials/manual_peering.md similarity index 100% rename from docs/maintain/goshimmer/0.9.8/docs/tutorials/manual_peering.md rename to docs/maintain/goshimmer/0.9/docs/tutorials/manual_peering.md diff --git a/docs/maintain/goshimmer/0.9.8/docs/tutorials/monitoring.md b/docs/maintain/goshimmer/0.9/docs/tutorials/monitoring.md similarity index 100% rename from docs/maintain/goshimmer/0.9.8/docs/tutorials/monitoring.md rename to docs/maintain/goshimmer/0.9/docs/tutorials/monitoring.md diff --git a/docs/maintain/goshimmer/0.9.8/docs/tutorials/obtain_tokens.md b/docs/maintain/goshimmer/0.9/docs/tutorials/obtain_tokens.md similarity index 100% rename from docs/maintain/goshimmer/0.9.8/docs/tutorials/obtain_tokens.md rename to docs/maintain/goshimmer/0.9/docs/tutorials/obtain_tokens.md diff --git a/docs/maintain/goshimmer/0.9.8/docs/tutorials/send_transaction.md b/docs/maintain/goshimmer/0.9/docs/tutorials/send_transaction.md similarity index 100% rename from docs/maintain/goshimmer/0.9.8/docs/tutorials/send_transaction.md rename to docs/maintain/goshimmer/0.9/docs/tutorials/send_transaction.md diff --git a/docs/maintain/goshimmer/0.9.8/docs/tutorials/setup.md b/docs/maintain/goshimmer/0.9/docs/tutorials/setup.md similarity index 100% rename from docs/maintain/goshimmer/0.9.8/docs/tutorials/setup.md rename to docs/maintain/goshimmer/0.9/docs/tutorials/setup.md diff --git a/docs/maintain/goshimmer/0.9.8/docs/tutorials/static_identity.md b/docs/maintain/goshimmer/0.9/docs/tutorials/static_identity.md similarity index 100% rename from docs/maintain/goshimmer/0.9.8/docs/tutorials/static_identity.md rename to docs/maintain/goshimmer/0.9/docs/tutorials/static_identity.md diff --git a/docs/maintain/goshimmer/0.9.8/docs/tutorials/wallet_library.md b/docs/maintain/goshimmer/0.9/docs/tutorials/wallet_library.md similarity index 100% rename from docs/maintain/goshimmer/0.9.8/docs/tutorials/wallet_library.md rename to docs/maintain/goshimmer/0.9/docs/tutorials/wallet_library.md diff --git a/docs/maintain/goshimmer/0.9.8/docs/welcome.md b/docs/maintain/goshimmer/0.9/docs/welcome.md similarity index 100% rename from docs/maintain/goshimmer/0.9.8/docs/welcome.md rename to docs/maintain/goshimmer/0.9/docs/welcome.md diff --git a/docs/maintain/goshimmer/0.9.8/sidebars.js b/docs/maintain/goshimmer/0.9/sidebars.js similarity index 100% rename from docs/maintain/goshimmer/0.9.8/sidebars.js rename to docs/maintain/goshimmer/0.9/sidebars.js diff --git a/docs/maintain/goshimmer/0.9.8/static/.nojekyll b/docs/maintain/goshimmer/0.9/static/.nojekyll similarity index 100% rename from docs/maintain/goshimmer/0.9.8/static/.nojekyll rename to docs/maintain/goshimmer/0.9/static/.nojekyll diff --git a/docs/maintain/goshimmer/0.9.8/static/img/logo/goshimmer_light.png b/docs/maintain/goshimmer/0.9/static/img/logo/goshimmer_light.png similarity index 100% rename from docs/maintain/goshimmer/0.9.8/static/img/logo/goshimmer_light.png rename to docs/maintain/goshimmer/0.9/static/img/logo/goshimmer_light.png diff --git a/docs/maintain/goshimmer/0.9.8/static/img/protocol_specification/GoShimmer-flow-solidification_spec.png b/docs/maintain/goshimmer/0.9/static/img/protocol_specification/GoShimmer-flow-solidification_spec.png similarity index 100% rename from docs/maintain/goshimmer/0.9.8/static/img/protocol_specification/GoShimmer-flow-solidification_spec.png rename to docs/maintain/goshimmer/0.9/static/img/protocol_specification/GoShimmer-flow-solidification_spec.png diff --git a/docs/maintain/goshimmer/0.9.8/static/img/protocol_specification/MarkersApprovalWeight.png b/docs/maintain/goshimmer/0.9/static/img/protocol_specification/MarkersApprovalWeight.png similarity index 100% rename from docs/maintain/goshimmer/0.9.8/static/img/protocol_specification/MarkersApprovalWeight.png rename to docs/maintain/goshimmer/0.9/static/img/protocol_specification/MarkersApprovalWeight.png diff --git a/docs/maintain/goshimmer/0.9.8/static/img/protocol_specification/MarkersApprovalWeightSequenceVoters.png b/docs/maintain/goshimmer/0.9/static/img/protocol_specification/MarkersApprovalWeightSequenceVoters.png similarity index 100% rename from docs/maintain/goshimmer/0.9.8/static/img/protocol_specification/MarkersApprovalWeightSequenceVoters.png rename to docs/maintain/goshimmer/0.9/static/img/protocol_specification/MarkersApprovalWeightSequenceVoters.png diff --git a/docs/maintain/goshimmer/0.9.8/static/img/protocol_specification/Protocol_overview_booking.png b/docs/maintain/goshimmer/0.9/static/img/protocol_specification/Protocol_overview_booking.png similarity index 100% rename from docs/maintain/goshimmer/0.9.8/static/img/protocol_specification/Protocol_overview_booking.png rename to docs/maintain/goshimmer/0.9/static/img/protocol_specification/Protocol_overview_booking.png diff --git a/docs/maintain/goshimmer/0.9.8/static/img/protocol_specification/Protocol_overview_consensus.png b/docs/maintain/goshimmer/0.9/static/img/protocol_specification/Protocol_overview_consensus.png similarity index 100% rename from docs/maintain/goshimmer/0.9.8/static/img/protocol_specification/Protocol_overview_consensus.png rename to docs/maintain/goshimmer/0.9/static/img/protocol_specification/Protocol_overview_consensus.png diff --git a/docs/maintain/goshimmer/0.9.8/static/img/protocol_specification/Protocol_overview_own_message.png b/docs/maintain/goshimmer/0.9/static/img/protocol_specification/Protocol_overview_own_message.png similarity index 100% rename from docs/maintain/goshimmer/0.9.8/static/img/protocol_specification/Protocol_overview_own_message.png rename to docs/maintain/goshimmer/0.9/static/img/protocol_specification/Protocol_overview_own_message.png diff --git a/docs/maintain/goshimmer/0.9.8/static/img/protocol_specification/Protocol_overview_received_block.png b/docs/maintain/goshimmer/0.9/static/img/protocol_specification/Protocol_overview_received_block.png similarity index 100% rename from docs/maintain/goshimmer/0.9.8/static/img/protocol_specification/Protocol_overview_received_block.png rename to docs/maintain/goshimmer/0.9/static/img/protocol_specification/Protocol_overview_received_block.png diff --git a/docs/maintain/goshimmer/0.9.8/static/img/protocol_specification/active-cMana-window.png b/docs/maintain/goshimmer/0.9/static/img/protocol_specification/active-cMana-window.png similarity index 100% rename from docs/maintain/goshimmer/0.9.8/static/img/protocol_specification/active-cMana-window.png rename to docs/maintain/goshimmer/0.9/static/img/protocol_specification/active-cMana-window.png diff --git a/docs/maintain/goshimmer/0.9.8/static/img/protocol_specification/alice_sends_10_mi.png b/docs/maintain/goshimmer/0.9/static/img/protocol_specification/alice_sends_10_mi.png similarity index 100% rename from docs/maintain/goshimmer/0.9.8/static/img/protocol_specification/alice_sends_10_mi.png rename to docs/maintain/goshimmer/0.9/static/img/protocol_specification/alice_sends_10_mi.png diff --git a/docs/maintain/goshimmer/0.9.8/static/img/protocol_specification/approval_weight_example.png b/docs/maintain/goshimmer/0.9/static/img/protocol_specification/approval_weight_example.png similarity index 100% rename from docs/maintain/goshimmer/0.9.8/static/img/protocol_specification/approval_weight_example.png rename to docs/maintain/goshimmer/0.9/static/img/protocol_specification/approval_weight_example.png diff --git a/docs/maintain/goshimmer/0.9.8/static/img/protocol_specification/bob_alias.png b/docs/maintain/goshimmer/0.9/static/img/protocol_specification/bob_alias.png similarity index 100% rename from docs/maintain/goshimmer/0.9.8/static/img/protocol_specification/bob_alias.png rename to docs/maintain/goshimmer/0.9/static/img/protocol_specification/bob_alias.png diff --git a/docs/maintain/goshimmer/0.9.8/static/img/protocol_specification/bob_can_spend_outputs_created_by_alice.png b/docs/maintain/goshimmer/0.9/static/img/protocol_specification/bob_can_spend_outputs_created_by_alice.png similarity index 100% rename from docs/maintain/goshimmer/0.9.8/static/img/protocol_specification/bob_can_spend_outputs_created_by_alice.png rename to docs/maintain/goshimmer/0.9/static/img/protocol_specification/bob_can_spend_outputs_created_by_alice.png diff --git a/docs/maintain/goshimmer/0.9.8/static/img/protocol_specification/booker.png b/docs/maintain/goshimmer/0.9/static/img/protocol_specification/booker.png similarity index 100% rename from docs/maintain/goshimmer/0.9.8/static/img/protocol_specification/booker.png rename to docs/maintain/goshimmer/0.9/static/img/protocol_specification/booker.png diff --git a/docs/maintain/goshimmer/0.9.8/static/img/protocol_specification/conflicts.png b/docs/maintain/goshimmer/0.9/static/img/protocol_specification/conflicts.png similarity index 100% rename from docs/maintain/goshimmer/0.9.8/static/img/protocol_specification/conflicts.png rename to docs/maintain/goshimmer/0.9/static/img/protocol_specification/conflicts.png diff --git a/docs/maintain/goshimmer/0.9.8/static/img/protocol_specification/congestion_control_algorithm_infographic_new.png b/docs/maintain/goshimmer/0.9/static/img/protocol_specification/congestion_control_algorithm_infographic_new.png similarity index 100% rename from docs/maintain/goshimmer/0.9.8/static/img/protocol_specification/congestion_control_algorithm_infographic_new.png rename to docs/maintain/goshimmer/0.9/static/img/protocol_specification/congestion_control_algorithm_infographic_new.png diff --git a/docs/maintain/goshimmer/0.9.8/static/img/protocol_specification/consensus_mechanism.png b/docs/maintain/goshimmer/0.9/static/img/protocol_specification/consensus_mechanism.png similarity index 100% rename from docs/maintain/goshimmer/0.9.8/static/img/protocol_specification/consensus_mechanism.png rename to docs/maintain/goshimmer/0.9/static/img/protocol_specification/consensus_mechanism.png diff --git a/docs/maintain/goshimmer/0.9.8/static/img/protocol_specification/data-flow.png b/docs/maintain/goshimmer/0.9/static/img/protocol_specification/data-flow.png similarity index 100% rename from docs/maintain/goshimmer/0.9.8/static/img/protocol_specification/data-flow.png rename to docs/maintain/goshimmer/0.9/static/img/protocol_specification/data-flow.png diff --git a/docs/maintain/goshimmer/0.9.8/static/img/protocol_specification/detailed_desing.png b/docs/maintain/goshimmer/0.9/static/img/protocol_specification/detailed_desing.png similarity index 100% rename from docs/maintain/goshimmer/0.9.8/static/img/protocol_specification/detailed_desing.png rename to docs/maintain/goshimmer/0.9/static/img/protocol_specification/detailed_desing.png diff --git a/docs/maintain/goshimmer/0.9.8/static/img/protocol_specification/example_1.png b/docs/maintain/goshimmer/0.9/static/img/protocol_specification/example_1.png similarity index 100% rename from docs/maintain/goshimmer/0.9.8/static/img/protocol_specification/example_1.png rename to docs/maintain/goshimmer/0.9/static/img/protocol_specification/example_1.png diff --git a/docs/maintain/goshimmer/0.9.8/static/img/protocol_specification/example_2_1.png b/docs/maintain/goshimmer/0.9/static/img/protocol_specification/example_2_1.png similarity index 100% rename from docs/maintain/goshimmer/0.9.8/static/img/protocol_specification/example_2_1.png rename to docs/maintain/goshimmer/0.9/static/img/protocol_specification/example_2_1.png diff --git a/docs/maintain/goshimmer/0.9.8/static/img/protocol_specification/example_2_2.png b/docs/maintain/goshimmer/0.9/static/img/protocol_specification/example_2_2.png similarity index 100% rename from docs/maintain/goshimmer/0.9.8/static/img/protocol_specification/example_2_2.png rename to docs/maintain/goshimmer/0.9/static/img/protocol_specification/example_2_2.png diff --git a/docs/maintain/goshimmer/0.9.8/static/img/protocol_specification/layers.png b/docs/maintain/goshimmer/0.9/static/img/protocol_specification/layers.png similarity index 100% rename from docs/maintain/goshimmer/0.9.8/static/img/protocol_specification/layers.png rename to docs/maintain/goshimmer/0.9/static/img/protocol_specification/layers.png diff --git a/docs/maintain/goshimmer/0.9.8/static/img/protocol_specification/like-switch-block-booking.png b/docs/maintain/goshimmer/0.9/static/img/protocol_specification/like-switch-block-booking.png similarity index 100% rename from docs/maintain/goshimmer/0.9.8/static/img/protocol_specification/like-switch-block-booking.png rename to docs/maintain/goshimmer/0.9/static/img/protocol_specification/like-switch-block-booking.png diff --git a/docs/maintain/goshimmer/0.9.8/static/img/protocol_specification/like-switch-block-creation-1.png b/docs/maintain/goshimmer/0.9/static/img/protocol_specification/like-switch-block-creation-1.png similarity index 100% rename from docs/maintain/goshimmer/0.9.8/static/img/protocol_specification/like-switch-block-creation-1.png rename to docs/maintain/goshimmer/0.9/static/img/protocol_specification/like-switch-block-creation-1.png diff --git a/docs/maintain/goshimmer/0.9.8/static/img/protocol_specification/like-switch-block-creation-2.png b/docs/maintain/goshimmer/0.9/static/img/protocol_specification/like-switch-block-creation-2.png similarity index 100% rename from docs/maintain/goshimmer/0.9.8/static/img/protocol_specification/like-switch-block-creation-2.png rename to docs/maintain/goshimmer/0.9/static/img/protocol_specification/like-switch-block-creation-2.png diff --git a/docs/maintain/goshimmer/0.9.8/static/img/protocol_specification/mana.png b/docs/maintain/goshimmer/0.9/static/img/protocol_specification/mana.png similarity index 100% rename from docs/maintain/goshimmer/0.9.8/static/img/protocol_specification/mana.png rename to docs/maintain/goshimmer/0.9/static/img/protocol_specification/mana.png diff --git a/docs/maintain/goshimmer/0.9.8/static/img/protocol_specification/otv-example-1.png b/docs/maintain/goshimmer/0.9/static/img/protocol_specification/otv-example-1.png similarity index 100% rename from docs/maintain/goshimmer/0.9.8/static/img/protocol_specification/otv-example-1.png rename to docs/maintain/goshimmer/0.9/static/img/protocol_specification/otv-example-1.png diff --git a/docs/maintain/goshimmer/0.9.8/static/img/protocol_specification/otv-example-2.png b/docs/maintain/goshimmer/0.9/static/img/protocol_specification/otv-example-2.png similarity index 100% rename from docs/maintain/goshimmer/0.9.8/static/img/protocol_specification/otv-example-2.png rename to docs/maintain/goshimmer/0.9/static/img/protocol_specification/otv-example-2.png diff --git a/docs/maintain/goshimmer/0.9.8/static/img/protocol_specification/peer_discovery.png b/docs/maintain/goshimmer/0.9/static/img/protocol_specification/peer_discovery.png similarity index 100% rename from docs/maintain/goshimmer/0.9.8/static/img/protocol_specification/peer_discovery.png rename to docs/maintain/goshimmer/0.9/static/img/protocol_specification/peer_discovery.png diff --git a/docs/maintain/goshimmer/0.9.8/static/img/protocol_specification/tangle.png b/docs/maintain/goshimmer/0.9/static/img/protocol_specification/tangle.png similarity index 100% rename from docs/maintain/goshimmer/0.9.8/static/img/protocol_specification/tangle.png rename to docs/maintain/goshimmer/0.9/static/img/protocol_specification/tangle.png diff --git a/docs/maintain/goshimmer/0.9.8/static/img/protocol_specification/tangle_time.jpg b/docs/maintain/goshimmer/0.9/static/img/protocol_specification/tangle_time.jpg similarity index 100% rename from docs/maintain/goshimmer/0.9.8/static/img/protocol_specification/tangle_time.jpg rename to docs/maintain/goshimmer/0.9/static/img/protocol_specification/tangle_time.jpg diff --git a/docs/maintain/goshimmer/0.9.8/static/img/protocol_specification/utxo_fund_flow.png b/docs/maintain/goshimmer/0.9/static/img/protocol_specification/utxo_fund_flow.png similarity index 100% rename from docs/maintain/goshimmer/0.9.8/static/img/protocol_specification/utxo_fund_flow.png rename to docs/maintain/goshimmer/0.9/static/img/protocol_specification/utxo_fund_flow.png diff --git a/docs/maintain/goshimmer/0.9.8/static/img/tooling/dags-visualizer.png b/docs/maintain/goshimmer/0.9/static/img/tooling/dags-visualizer.png similarity index 100% rename from docs/maintain/goshimmer/0.9.8/static/img/tooling/dags-visualizer.png rename to docs/maintain/goshimmer/0.9/static/img/tooling/dags-visualizer.png diff --git a/docs/maintain/goshimmer/0.9.8/static/img/tooling/docker-network.png b/docs/maintain/goshimmer/0.9/static/img/tooling/docker-network.png similarity index 100% rename from docs/maintain/goshimmer/0.9.8/static/img/tooling/docker-network.png rename to docs/maintain/goshimmer/0.9/static/img/tooling/docker-network.png diff --git a/docs/maintain/goshimmer/0.9.8/static/img/tooling/evil_spammer/evil-scenario-banana.png b/docs/maintain/goshimmer/0.9/static/img/tooling/evil_spammer/evil-scenario-banana.png similarity index 100% rename from docs/maintain/goshimmer/0.9.8/static/img/tooling/evil_spammer/evil-scenario-banana.png rename to docs/maintain/goshimmer/0.9/static/img/tooling/evil_spammer/evil-scenario-banana.png diff --git a/docs/maintain/goshimmer/0.9.8/static/img/tooling/evil_spammer/evil-scenario-conflict-circle.png b/docs/maintain/goshimmer/0.9/static/img/tooling/evil_spammer/evil-scenario-conflict-circle.png similarity index 100% rename from docs/maintain/goshimmer/0.9.8/static/img/tooling/evil_spammer/evil-scenario-conflict-circle.png rename to docs/maintain/goshimmer/0.9/static/img/tooling/evil_spammer/evil-scenario-conflict-circle.png diff --git a/docs/maintain/goshimmer/0.9.8/static/img/tooling/evil_spammer/evil-scenario-ds.png b/docs/maintain/goshimmer/0.9/static/img/tooling/evil_spammer/evil-scenario-ds.png similarity index 100% rename from docs/maintain/goshimmer/0.9.8/static/img/tooling/evil_spammer/evil-scenario-ds.png rename to docs/maintain/goshimmer/0.9/static/img/tooling/evil_spammer/evil-scenario-ds.png diff --git a/docs/maintain/goshimmer/0.9.8/static/img/tooling/evil_spammer/evil-scenario-guava.png b/docs/maintain/goshimmer/0.9/static/img/tooling/evil_spammer/evil-scenario-guava.png similarity index 100% rename from docs/maintain/goshimmer/0.9.8/static/img/tooling/evil_spammer/evil-scenario-guava.png rename to docs/maintain/goshimmer/0.9/static/img/tooling/evil_spammer/evil-scenario-guava.png diff --git a/docs/maintain/goshimmer/0.9.8/static/img/tooling/evil_spammer/evil-scenario-kiwi.png b/docs/maintain/goshimmer/0.9/static/img/tooling/evil_spammer/evil-scenario-kiwi.png similarity index 100% rename from docs/maintain/goshimmer/0.9.8/static/img/tooling/evil_spammer/evil-scenario-kiwi.png rename to docs/maintain/goshimmer/0.9/static/img/tooling/evil_spammer/evil-scenario-kiwi.png diff --git a/docs/maintain/goshimmer/0.9.8/static/img/tooling/evil_spammer/evil-scenario-lemon.png b/docs/maintain/goshimmer/0.9/static/img/tooling/evil_spammer/evil-scenario-lemon.png similarity index 100% rename from docs/maintain/goshimmer/0.9.8/static/img/tooling/evil_spammer/evil-scenario-lemon.png rename to docs/maintain/goshimmer/0.9/static/img/tooling/evil_spammer/evil-scenario-lemon.png diff --git a/docs/maintain/goshimmer/0.9.8/static/img/tooling/evil_spammer/evil-scenario-mango.png b/docs/maintain/goshimmer/0.9/static/img/tooling/evil_spammer/evil-scenario-mango.png similarity index 100% rename from docs/maintain/goshimmer/0.9.8/static/img/tooling/evil_spammer/evil-scenario-mango.png rename to docs/maintain/goshimmer/0.9/static/img/tooling/evil_spammer/evil-scenario-mango.png diff --git a/docs/maintain/goshimmer/0.9.8/static/img/tooling/evil_spammer/evil-scenario-orange.png b/docs/maintain/goshimmer/0.9/static/img/tooling/evil_spammer/evil-scenario-orange.png similarity index 100% rename from docs/maintain/goshimmer/0.9.8/static/img/tooling/evil_spammer/evil-scenario-orange.png rename to docs/maintain/goshimmer/0.9/static/img/tooling/evil_spammer/evil-scenario-orange.png diff --git a/docs/maintain/goshimmer/0.9.8/static/img/tooling/evil_spammer/evil-scenario-peace.png b/docs/maintain/goshimmer/0.9/static/img/tooling/evil_spammer/evil-scenario-peace.png similarity index 100% rename from docs/maintain/goshimmer/0.9.8/static/img/tooling/evil_spammer/evil-scenario-peace.png rename to docs/maintain/goshimmer/0.9/static/img/tooling/evil_spammer/evil-scenario-peace.png diff --git a/docs/maintain/goshimmer/0.9.8/static/img/tooling/evil_spammer/evil-scenario-pear.png b/docs/maintain/goshimmer/0.9/static/img/tooling/evil_spammer/evil-scenario-pear.png similarity index 100% rename from docs/maintain/goshimmer/0.9.8/static/img/tooling/evil_spammer/evil-scenario-pear.png rename to docs/maintain/goshimmer/0.9/static/img/tooling/evil_spammer/evil-scenario-pear.png diff --git a/docs/maintain/goshimmer/0.9.8/static/img/tooling/evil_spammer/evil-scenario-tx.png b/docs/maintain/goshimmer/0.9/static/img/tooling/evil_spammer/evil-scenario-tx.png similarity index 100% rename from docs/maintain/goshimmer/0.9.8/static/img/tooling/evil_spammer/evil-scenario-tx.png rename to docs/maintain/goshimmer/0.9/static/img/tooling/evil_spammer/evil-scenario-tx.png diff --git a/docs/maintain/goshimmer/0.9.8/static/img/tooling/evil_spammer/evil-spammer-interactive.png b/docs/maintain/goshimmer/0.9/static/img/tooling/evil_spammer/evil-spammer-interactive.png similarity index 100% rename from docs/maintain/goshimmer/0.9.8/static/img/tooling/evil_spammer/evil-spammer-interactive.png rename to docs/maintain/goshimmer/0.9/static/img/tooling/evil_spammer/evil-spammer-interactive.png diff --git a/docs/maintain/goshimmer/0.9.8/static/img/tooling/evil_spammer/evilwallet-details.png b/docs/maintain/goshimmer/0.9/static/img/tooling/evil_spammer/evilwallet-details.png similarity index 100% rename from docs/maintain/goshimmer/0.9.8/static/img/tooling/evil_spammer/evilwallet-details.png rename to docs/maintain/goshimmer/0.9/static/img/tooling/evil_spammer/evilwallet-details.png diff --git a/docs/maintain/goshimmer/0.9.8/static/img/tooling/evil_spammer/evilwallet-request-funds.png b/docs/maintain/goshimmer/0.9/static/img/tooling/evil_spammer/evilwallet-request-funds.png similarity index 100% rename from docs/maintain/goshimmer/0.9.8/static/img/tooling/evil_spammer/evilwallet-request-funds.png rename to docs/maintain/goshimmer/0.9/static/img/tooling/evil_spammer/evilwallet-request-funds.png diff --git a/docs/maintain/goshimmer/0.9.8/static/img/tooling/integration-testing.png b/docs/maintain/goshimmer/0.9/static/img/tooling/integration-testing.png similarity index 100% rename from docs/maintain/goshimmer/0.9.8/static/img/tooling/integration-testing.png rename to docs/maintain/goshimmer/0.9/static/img/tooling/integration-testing.png diff --git a/docs/maintain/goshimmer/0.9.8/static/img/tooling/searching.png b/docs/maintain/goshimmer/0.9/static/img/tooling/searching.png similarity index 100% rename from docs/maintain/goshimmer/0.9.8/static/img/tooling/searching.png rename to docs/maintain/goshimmer/0.9/static/img/tooling/searching.png diff --git a/docs/maintain/goshimmer/0.9.8/static/img/tooling/sync-with-conflict.png b/docs/maintain/goshimmer/0.9/static/img/tooling/sync-with-conflict.png similarity index 100% rename from docs/maintain/goshimmer/0.9.8/static/img/tooling/sync-with-conflict.png rename to docs/maintain/goshimmer/0.9/static/img/tooling/sync-with-conflict.png diff --git a/docs/maintain/goshimmer/0.9.8/static/img/tooling/sync-with-tx.png b/docs/maintain/goshimmer/0.9/static/img/tooling/sync-with-tx.png similarity index 100% rename from docs/maintain/goshimmer/0.9.8/static/img/tooling/sync-with-tx.png rename to docs/maintain/goshimmer/0.9/static/img/tooling/sync-with-tx.png diff --git a/docs/maintain/goshimmer/0.9.8/static/img/tutorials/request_funds/pollen_wallet.png b/docs/maintain/goshimmer/0.9/static/img/tutorials/request_funds/pollen_wallet.png similarity index 100% rename from docs/maintain/goshimmer/0.9.8/static/img/tutorials/request_funds/pollen_wallet.png rename to docs/maintain/goshimmer/0.9/static/img/tutorials/request_funds/pollen_wallet.png diff --git a/docs/maintain/goshimmer/0.9.8/static/img/tutorials/request_funds/pollen_wallet_requesting_funds.png b/docs/maintain/goshimmer/0.9/static/img/tutorials/request_funds/pollen_wallet_requesting_funds.png similarity index 100% rename from docs/maintain/goshimmer/0.9.8/static/img/tutorials/request_funds/pollen_wallet_requesting_funds.png rename to docs/maintain/goshimmer/0.9/static/img/tutorials/request_funds/pollen_wallet_requesting_funds.png diff --git a/docs/maintain/goshimmer/0.9.8/static/img/tutorials/request_funds/pollen_wallet_transfer_success.png b/docs/maintain/goshimmer/0.9/static/img/tutorials/request_funds/pollen_wallet_transfer_success.png similarity index 100% rename from docs/maintain/goshimmer/0.9.8/static/img/tutorials/request_funds/pollen_wallet_transfer_success.png rename to docs/maintain/goshimmer/0.9/static/img/tutorials/request_funds/pollen_wallet_transfer_success.png diff --git a/docs/maintain/goshimmer/0.9.8/static/img/tutorials/setup/dashboard.png b/docs/maintain/goshimmer/0.9/static/img/tutorials/setup/dashboard.png similarity index 100% rename from docs/maintain/goshimmer/0.9.8/static/img/tutorials/setup/dashboard.png rename to docs/maintain/goshimmer/0.9/static/img/tutorials/setup/dashboard.png diff --git a/docs/maintain/goshimmer/0.9.8/static/img/tutorials/setup/dashboard_neighbors.png b/docs/maintain/goshimmer/0.9/static/img/tutorials/setup/dashboard_neighbors.png similarity index 100% rename from docs/maintain/goshimmer/0.9.8/static/img/tutorials/setup/dashboard_neighbors.png rename to docs/maintain/goshimmer/0.9/static/img/tutorials/setup/dashboard_neighbors.png diff --git a/docs/maintain/goshimmer/0.9.8/static/img/tutorials/wallet_library/created_nft.png b/docs/maintain/goshimmer/0.9/static/img/tutorials/wallet_library/created_nft.png similarity index 100% rename from docs/maintain/goshimmer/0.9.8/static/img/tutorials/wallet_library/created_nft.png rename to docs/maintain/goshimmer/0.9/static/img/tutorials/wallet_library/created_nft.png diff --git a/docs/maintain/hornet/1.2.4/docs/getting_started/getting_started.md b/docs/maintain/hornet/1.2/docs/getting_started/getting_started.md similarity index 100% rename from docs/maintain/hornet/1.2.4/docs/getting_started/getting_started.md rename to docs/maintain/hornet/1.2/docs/getting_started/getting_started.md diff --git a/docs/maintain/hornet/1.2.4/docs/how_tos/post_installation.md b/docs/maintain/hornet/1.2/docs/how_tos/post_installation.md similarity index 100% rename from docs/maintain/hornet/1.2.4/docs/how_tos/post_installation.md rename to docs/maintain/hornet/1.2/docs/how_tos/post_installation.md diff --git a/docs/maintain/hornet/1.2.4/docs/how_tos/run_as_a_verifier.md b/docs/maintain/hornet/1.2/docs/how_tos/run_as_a_verifier.md similarity index 100% rename from docs/maintain/hornet/1.2.4/docs/how_tos/run_as_a_verifier.md rename to docs/maintain/hornet/1.2/docs/how_tos/run_as_a_verifier.md diff --git a/docs/maintain/hornet/1.2.4/docs/how_tos/using_docker.md b/docs/maintain/hornet/1.2/docs/how_tos/using_docker.md similarity index 100% rename from docs/maintain/hornet/1.2.4/docs/how_tos/using_docker.md rename to docs/maintain/hornet/1.2/docs/how_tos/using_docker.md diff --git a/docs/maintain/hornet/1.2.4/docs/references/api_reference.md b/docs/maintain/hornet/1.2/docs/references/api_reference.md similarity index 100% rename from docs/maintain/hornet/1.2.4/docs/references/api_reference.md rename to docs/maintain/hornet/1.2/docs/references/api_reference.md diff --git a/docs/maintain/hornet/1.2.4/docs/references/configuration.md b/docs/maintain/hornet/1.2/docs/references/configuration.md similarity index 100% rename from docs/maintain/hornet/1.2.4/docs/references/configuration.md rename to docs/maintain/hornet/1.2/docs/references/configuration.md diff --git a/docs/maintain/hornet/1.2.4/docs/references/peering.md b/docs/maintain/hornet/1.2/docs/references/peering.md similarity index 100% rename from docs/maintain/hornet/1.2.4/docs/references/peering.md rename to docs/maintain/hornet/1.2/docs/references/peering.md diff --git a/docs/maintain/hornet/1.2.4/docs/welcome.md b/docs/maintain/hornet/1.2/docs/welcome.md similarity index 100% rename from docs/maintain/hornet/1.2.4/docs/welcome.md rename to docs/maintain/hornet/1.2/docs/welcome.md diff --git a/docs/maintain/hornet/1.2.4/sidebars.js b/docs/maintain/hornet/1.2/sidebars.js similarity index 100% rename from docs/maintain/hornet/1.2.4/sidebars.js rename to docs/maintain/hornet/1.2/sidebars.js diff --git a/docs/maintain/hornet/1.2.4/static/.nojekyll b/docs/maintain/hornet/1.2/static/.nojekyll similarity index 100% rename from docs/maintain/hornet/1.2.4/static/.nojekyll rename to docs/maintain/hornet/1.2/static/.nojekyll diff --git a/docs/maintain/hornet/1.2.4/static/img/Banner/banner_faqs.png b/docs/maintain/hornet/1.2/static/img/Banner/banner_faqs.png similarity index 100% rename from docs/maintain/hornet/1.2.4/static/img/Banner/banner_faqs.png rename to docs/maintain/hornet/1.2/static/img/Banner/banner_faqs.png diff --git a/docs/maintain/hornet/1.2.4/static/img/Banner/banner_hornet.png b/docs/maintain/hornet/1.2/static/img/Banner/banner_hornet.png similarity index 100% rename from docs/maintain/hornet/1.2.4/static/img/Banner/banner_hornet.png rename to docs/maintain/hornet/1.2/static/img/Banner/banner_hornet.png diff --git a/docs/maintain/hornet/1.2.4/static/img/Banner/banner_hornet_configuration.png b/docs/maintain/hornet/1.2/static/img/Banner/banner_hornet_configuration.png similarity index 100% rename from docs/maintain/hornet/1.2.4/static/img/Banner/banner_hornet_configuration.png rename to docs/maintain/hornet/1.2/static/img/Banner/banner_hornet_configuration.png diff --git a/docs/maintain/hornet/1.2.4/static/img/Banner/banner_hornet_genesis_snapshot.png b/docs/maintain/hornet/1.2/static/img/Banner/banner_hornet_genesis_snapshot.png similarity index 100% rename from docs/maintain/hornet/1.2.4/static/img/Banner/banner_hornet_genesis_snapshot.png rename to docs/maintain/hornet/1.2/static/img/Banner/banner_hornet_genesis_snapshot.png diff --git a/docs/maintain/hornet/1.2.4/static/img/Banner/banner_hornet_getting_started.png b/docs/maintain/hornet/1.2/static/img/Banner/banner_hornet_getting_started.png similarity index 100% rename from docs/maintain/hornet/1.2.4/static/img/Banner/banner_hornet_getting_started.png rename to docs/maintain/hornet/1.2/static/img/Banner/banner_hornet_getting_started.png diff --git a/docs/maintain/hornet/1.2.4/static/img/Banner/banner_hornet_nodes_101.png b/docs/maintain/hornet/1.2/static/img/Banner/banner_hornet_nodes_101.png similarity index 100% rename from docs/maintain/hornet/1.2.4/static/img/Banner/banner_hornet_nodes_101.png rename to docs/maintain/hornet/1.2/static/img/Banner/banner_hornet_nodes_101.png diff --git a/docs/maintain/hornet/1.2.4/static/img/Banner/banner_hornet_peering.png b/docs/maintain/hornet/1.2/static/img/Banner/banner_hornet_peering.png similarity index 100% rename from docs/maintain/hornet/1.2.4/static/img/Banner/banner_hornet_peering.png rename to docs/maintain/hornet/1.2/static/img/Banner/banner_hornet_peering.png diff --git a/docs/maintain/hornet/1.2.4/static/img/Banner/banner_hornet_private_tangle.png b/docs/maintain/hornet/1.2/static/img/Banner/banner_hornet_private_tangle.png similarity index 100% rename from docs/maintain/hornet/1.2.4/static/img/Banner/banner_hornet_private_tangle.png rename to docs/maintain/hornet/1.2/static/img/Banner/banner_hornet_private_tangle.png diff --git a/docs/maintain/hornet/1.2.4/static/img/Banner/banner_hornet_security_101.png b/docs/maintain/hornet/1.2/static/img/Banner/banner_hornet_security_101.png similarity index 100% rename from docs/maintain/hornet/1.2.4/static/img/Banner/banner_hornet_security_101.png rename to docs/maintain/hornet/1.2/static/img/Banner/banner_hornet_security_101.png diff --git a/docs/maintain/hornet/1.2.4/static/img/Banner/banner_hornet_using_docker.png b/docs/maintain/hornet/1.2/static/img/Banner/banner_hornet_using_docker.png similarity index 100% rename from docs/maintain/hornet/1.2.4/static/img/Banner/banner_hornet_using_docker.png rename to docs/maintain/hornet/1.2/static/img/Banner/banner_hornet_using_docker.png diff --git a/docs/maintain/hornet/1.2.4/static/img/logo/HORNET_logo.svg b/docs/maintain/hornet/1.2/static/img/logo/HORNET_logo.svg similarity index 100% rename from docs/maintain/hornet/1.2.4/static/img/logo/HORNET_logo.svg rename to docs/maintain/hornet/1.2/static/img/logo/HORNET_logo.svg diff --git a/docs/maintain/hornet/2.0.0-rc.6/docs/getting_started/getting_started.md b/docs/maintain/hornet/2.0-rc.6/docs/getting_started/getting_started.md similarity index 94% rename from docs/maintain/hornet/2.0.0-rc.6/docs/getting_started/getting_started.md rename to docs/maintain/hornet/2.0-rc.6/docs/getting_started/getting_started.md index 776cc1e6f9f..1618e1b2615 100644 --- a/docs/maintain/hornet/2.0.0-rc.6/docs/getting_started/getting_started.md +++ b/docs/maintain/hornet/2.0-rc.6/docs/getting_started/getting_started.md @@ -57,7 +57,7 @@ the [`config.json`](../how_tos/post_installation.md) file. ## Operating System HORNET is written in Go and can be deployed on all major platforms. -The [recommended setup](../how_tos/using_docker.md) uses Docker to run HORNET together with some [INX](/hornet/2.0.0-rc.6/inx-plugins) extensions secured behind a [Traefik](https://traefik.io) SSL reverse proxy. +The [recommended setup](../how_tos/using_docker.md) uses Docker to run HORNET together with some [INX](/hornet/2.0-rc.6/inx-plugins) extensions secured behind a [Traefik](https://traefik.io) SSL reverse proxy. ## Configuration diff --git a/docs/maintain/hornet/2.0.0-rc.6/docs/how_tos/post_installation.md b/docs/maintain/hornet/2.0-rc.6/docs/how_tos/post_installation.md similarity index 100% rename from docs/maintain/hornet/2.0.0-rc.6/docs/how_tos/post_installation.md rename to docs/maintain/hornet/2.0-rc.6/docs/how_tos/post_installation.md diff --git a/docs/maintain/hornet/2.0.0-rc.6/docs/how_tos/private_tangle.md b/docs/maintain/hornet/2.0-rc.6/docs/how_tos/private_tangle.md similarity index 100% rename from docs/maintain/hornet/2.0.0-rc.6/docs/how_tos/private_tangle.md rename to docs/maintain/hornet/2.0-rc.6/docs/how_tos/private_tangle.md diff --git a/docs/maintain/hornet/2.0.0-rc.6/docs/how_tos/using_docker.md b/docs/maintain/hornet/2.0-rc.6/docs/how_tos/using_docker.md similarity index 99% rename from docs/maintain/hornet/2.0.0-rc.6/docs/how_tos/using_docker.md rename to docs/maintain/hornet/2.0-rc.6/docs/how_tos/using_docker.md index 3bf472d0787..36c8ea81d03 100644 --- a/docs/maintain/hornet/2.0.0-rc.6/docs/how_tos/using_docker.md +++ b/docs/maintain/hornet/2.0-rc.6/docs/how_tos/using_docker.md @@ -104,6 +104,7 @@ If you want to change the port to a different value you can create a file named ``` HTTP_PORT=9000 ``` + If you don't have a DNS name for your node, you can use the (external) IP address for `NODE_HOST`, for example, `192.168.1.123`, or your public IP address. With this setting, you can reach the node dashboard from within your network or the internet. You don’t need `COMPOSE_FILE` and `ACME_EMAIL` for HTTP. You can remove them from your `.env` file or place a `#` before it to make it a remark: diff --git a/docs/maintain/hornet/2.0.0-rc.6/docs/inx-plugins/api-core-v0/configuration.md b/docs/maintain/hornet/2.0-rc.6/docs/inx-plugins/api-core-v0/configuration.md similarity index 100% rename from docs/maintain/hornet/2.0.0-rc.6/docs/inx-plugins/api-core-v0/configuration.md rename to docs/maintain/hornet/2.0-rc.6/docs/inx-plugins/api-core-v0/configuration.md diff --git a/docs/maintain/hornet/2.0.0-rc.6/docs/inx-plugins/api-core-v0/welcome.md b/docs/maintain/hornet/2.0-rc.6/docs/inx-plugins/api-core-v0/welcome.md similarity index 100% rename from docs/maintain/hornet/2.0.0-rc.6/docs/inx-plugins/api-core-v0/welcome.md rename to docs/maintain/hornet/2.0-rc.6/docs/inx-plugins/api-core-v0/welcome.md diff --git a/docs/maintain/hornet/2.0.0-rc.6/docs/inx-plugins/api-core-v1/configuration.md b/docs/maintain/hornet/2.0-rc.6/docs/inx-plugins/api-core-v1/configuration.md similarity index 100% rename from docs/maintain/hornet/2.0.0-rc.6/docs/inx-plugins/api-core-v1/configuration.md rename to docs/maintain/hornet/2.0-rc.6/docs/inx-plugins/api-core-v1/configuration.md diff --git a/docs/maintain/hornet/2.0.0-rc.6/docs/inx-plugins/api-core-v1/welcome.md b/docs/maintain/hornet/2.0-rc.6/docs/inx-plugins/api-core-v1/welcome.md similarity index 100% rename from docs/maintain/hornet/2.0.0-rc.6/docs/inx-plugins/api-core-v1/welcome.md rename to docs/maintain/hornet/2.0-rc.6/docs/inx-plugins/api-core-v1/welcome.md diff --git a/docs/maintain/hornet/2.0.0-rc.6/docs/inx-plugins/coordinator/configuration.md b/docs/maintain/hornet/2.0-rc.6/docs/inx-plugins/coordinator/configuration.md similarity index 100% rename from docs/maintain/hornet/2.0.0-rc.6/docs/inx-plugins/coordinator/configuration.md rename to docs/maintain/hornet/2.0-rc.6/docs/inx-plugins/coordinator/configuration.md diff --git a/docs/maintain/hornet/2.0.0-rc.6/docs/inx-plugins/coordinator/welcome.md b/docs/maintain/hornet/2.0-rc.6/docs/inx-plugins/coordinator/welcome.md similarity index 91% rename from docs/maintain/hornet/2.0.0-rc.6/docs/inx-plugins/coordinator/welcome.md rename to docs/maintain/hornet/2.0-rc.6/docs/inx-plugins/coordinator/welcome.md index 79963915fd2..c1466e361aa 100644 --- a/docs/maintain/hornet/2.0.0-rc.6/docs/inx-plugins/coordinator/welcome.md +++ b/docs/maintain/hornet/2.0-rc.6/docs/inx-plugins/coordinator/welcome.md @@ -20,7 +20,7 @@ It's task is to issue milestones at a constant rate. Validation of the issued mi ## Setup -There is only one coordinator needed in a network. If you want to run your own private network with it's own coordinator, have a look at our [Run a Private Tangle](/hornet/2.0.0-rc.6/how_tos/private_tangle) guide. +There is only one coordinator needed in a network. If you want to run your own private network with it's own coordinator, have a look at our [Run a Private Tangle](/hornet/2.0-rc.6/how_tos/private_tangle) guide. ## Configuration diff --git a/docs/maintain/hornet/2.0.0-rc.6/docs/inx-plugins/dashboard/configuration.md b/docs/maintain/hornet/2.0-rc.6/docs/inx-plugins/dashboard/configuration.md similarity index 100% rename from docs/maintain/hornet/2.0.0-rc.6/docs/inx-plugins/dashboard/configuration.md rename to docs/maintain/hornet/2.0-rc.6/docs/inx-plugins/dashboard/configuration.md diff --git a/docs/maintain/hornet/2.0.0-rc.6/docs/inx-plugins/dashboard/welcome.md b/docs/maintain/hornet/2.0-rc.6/docs/inx-plugins/dashboard/welcome.md similarity index 100% rename from docs/maintain/hornet/2.0.0-rc.6/docs/inx-plugins/dashboard/welcome.md rename to docs/maintain/hornet/2.0-rc.6/docs/inx-plugins/dashboard/welcome.md diff --git a/docs/maintain/hornet/2.0.0-rc.6/docs/inx-plugins/faucet/configuration.md b/docs/maintain/hornet/2.0-rc.6/docs/inx-plugins/faucet/configuration.md similarity index 100% rename from docs/maintain/hornet/2.0.0-rc.6/docs/inx-plugins/faucet/configuration.md rename to docs/maintain/hornet/2.0-rc.6/docs/inx-plugins/faucet/configuration.md diff --git a/docs/maintain/hornet/2.0.0-rc.6/docs/inx-plugins/faucet/welcome.md b/docs/maintain/hornet/2.0-rc.6/docs/inx-plugins/faucet/welcome.md similarity index 93% rename from docs/maintain/hornet/2.0.0-rc.6/docs/inx-plugins/faucet/welcome.md rename to docs/maintain/hornet/2.0-rc.6/docs/inx-plugins/faucet/welcome.md index 37803365c51..e16739d7763 100644 --- a/docs/maintain/hornet/2.0.0-rc.6/docs/inx-plugins/faucet/welcome.md +++ b/docs/maintain/hornet/2.0-rc.6/docs/inx-plugins/faucet/welcome.md @@ -22,7 +22,7 @@ Faucets are useful in test and private networks to distribute test tokens to dev The recommended setup is to use the provided [Docker images](https://hub.docker.com/r/iotaledger/inx-faucet). -If you want to run your own private network with it's own faucet, have a look at our [Run a Private Tangle](/hornet/2.0.0-rc.6/how_tos/private_tangle) guide. +If you want to run your own private network with it's own faucet, have a look at our [Run a Private Tangle](/hornet/2.0-rc.6/how_tos/private_tangle) guide. To run your own faucet you need to provide a private key containing funds to the faucet. To do this you start `inx-faucet` by passing a `FAUCET_PRV_KEY` environment variable containing the private key. diff --git a/docs/maintain/hornet/2.0.0-rc.6/docs/inx-plugins/indexer/api_reference.md b/docs/maintain/hornet/2.0-rc.6/docs/inx-plugins/indexer/api_reference.md similarity index 100% rename from docs/maintain/hornet/2.0.0-rc.6/docs/inx-plugins/indexer/api_reference.md rename to docs/maintain/hornet/2.0-rc.6/docs/inx-plugins/indexer/api_reference.md diff --git a/docs/maintain/hornet/2.0.0-rc.6/docs/inx-plugins/indexer/configuration.md b/docs/maintain/hornet/2.0-rc.6/docs/inx-plugins/indexer/configuration.md similarity index 100% rename from docs/maintain/hornet/2.0.0-rc.6/docs/inx-plugins/indexer/configuration.md rename to docs/maintain/hornet/2.0-rc.6/docs/inx-plugins/indexer/configuration.md diff --git a/docs/maintain/hornet/2.0.0-rc.6/docs/inx-plugins/indexer/how_to/query_outputs.md b/docs/maintain/hornet/2.0-rc.6/docs/inx-plugins/indexer/how_to/query_outputs.md similarity index 100% rename from docs/maintain/hornet/2.0.0-rc.6/docs/inx-plugins/indexer/how_to/query_outputs.md rename to docs/maintain/hornet/2.0-rc.6/docs/inx-plugins/indexer/how_to/query_outputs.md diff --git a/docs/maintain/hornet/2.0.0-rc.6/docs/inx-plugins/indexer/welcome.md b/docs/maintain/hornet/2.0-rc.6/docs/inx-plugins/indexer/welcome.md similarity index 100% rename from docs/maintain/hornet/2.0.0-rc.6/docs/inx-plugins/indexer/welcome.md rename to docs/maintain/hornet/2.0-rc.6/docs/inx-plugins/indexer/welcome.md diff --git a/docs/maintain/hornet/2.0.0-rc.6/docs/inx-plugins/irc-metadata/api_reference.md b/docs/maintain/hornet/2.0-rc.6/docs/inx-plugins/irc-metadata/api_reference.md similarity index 100% rename from docs/maintain/hornet/2.0.0-rc.6/docs/inx-plugins/irc-metadata/api_reference.md rename to docs/maintain/hornet/2.0-rc.6/docs/inx-plugins/irc-metadata/api_reference.md diff --git a/docs/maintain/hornet/2.0.0-rc.6/docs/inx-plugins/irc-metadata/configuration.md b/docs/maintain/hornet/2.0-rc.6/docs/inx-plugins/irc-metadata/configuration.md similarity index 100% rename from docs/maintain/hornet/2.0.0-rc.6/docs/inx-plugins/irc-metadata/configuration.md rename to docs/maintain/hornet/2.0-rc.6/docs/inx-plugins/irc-metadata/configuration.md diff --git a/docs/maintain/hornet/2.0.0-rc.6/docs/inx-plugins/irc-metadata/welcome.md b/docs/maintain/hornet/2.0-rc.6/docs/inx-plugins/irc-metadata/welcome.md similarity index 100% rename from docs/maintain/hornet/2.0.0-rc.6/docs/inx-plugins/irc-metadata/welcome.md rename to docs/maintain/hornet/2.0-rc.6/docs/inx-plugins/irc-metadata/welcome.md diff --git a/docs/maintain/hornet/2.0.0-rc.6/docs/inx-plugins/mqtt/api_reference.md b/docs/maintain/hornet/2.0-rc.6/docs/inx-plugins/mqtt/api_reference.md similarity index 100% rename from docs/maintain/hornet/2.0.0-rc.6/docs/inx-plugins/mqtt/api_reference.md rename to docs/maintain/hornet/2.0-rc.6/docs/inx-plugins/mqtt/api_reference.md diff --git a/docs/maintain/hornet/2.0.0-rc.6/docs/inx-plugins/mqtt/configuration.md b/docs/maintain/hornet/2.0-rc.6/docs/inx-plugins/mqtt/configuration.md similarity index 100% rename from docs/maintain/hornet/2.0.0-rc.6/docs/inx-plugins/mqtt/configuration.md rename to docs/maintain/hornet/2.0-rc.6/docs/inx-plugins/mqtt/configuration.md diff --git a/docs/maintain/hornet/2.0.0-rc.6/docs/inx-plugins/mqtt/welcome.md b/docs/maintain/hornet/2.0-rc.6/docs/inx-plugins/mqtt/welcome.md similarity index 100% rename from docs/maintain/hornet/2.0.0-rc.6/docs/inx-plugins/mqtt/welcome.md rename to docs/maintain/hornet/2.0-rc.6/docs/inx-plugins/mqtt/welcome.md diff --git a/docs/maintain/hornet/2.0.0-rc.6/docs/inx-plugins/participation/api_reference.md b/docs/maintain/hornet/2.0-rc.6/docs/inx-plugins/participation/api_reference.md similarity index 100% rename from docs/maintain/hornet/2.0.0-rc.6/docs/inx-plugins/participation/api_reference.md rename to docs/maintain/hornet/2.0-rc.6/docs/inx-plugins/participation/api_reference.md diff --git a/docs/maintain/hornet/2.0.0-rc.6/docs/inx-plugins/participation/configuration.md b/docs/maintain/hornet/2.0-rc.6/docs/inx-plugins/participation/configuration.md similarity index 100% rename from docs/maintain/hornet/2.0.0-rc.6/docs/inx-plugins/participation/configuration.md rename to docs/maintain/hornet/2.0-rc.6/docs/inx-plugins/participation/configuration.md diff --git a/docs/maintain/hornet/2.0.0-rc.6/docs/inx-plugins/participation/welcome.md b/docs/maintain/hornet/2.0-rc.6/docs/inx-plugins/participation/welcome.md similarity index 100% rename from docs/maintain/hornet/2.0.0-rc.6/docs/inx-plugins/participation/welcome.md rename to docs/maintain/hornet/2.0-rc.6/docs/inx-plugins/participation/welcome.md diff --git a/docs/maintain/hornet/2.0.0-rc.6/docs/inx-plugins/poi/api_reference.md b/docs/maintain/hornet/2.0-rc.6/docs/inx-plugins/poi/api_reference.md similarity index 100% rename from docs/maintain/hornet/2.0.0-rc.6/docs/inx-plugins/poi/api_reference.md rename to docs/maintain/hornet/2.0-rc.6/docs/inx-plugins/poi/api_reference.md diff --git a/docs/maintain/hornet/2.0.0-rc.6/docs/inx-plugins/poi/configuration.md b/docs/maintain/hornet/2.0-rc.6/docs/inx-plugins/poi/configuration.md similarity index 100% rename from docs/maintain/hornet/2.0.0-rc.6/docs/inx-plugins/poi/configuration.md rename to docs/maintain/hornet/2.0-rc.6/docs/inx-plugins/poi/configuration.md diff --git a/docs/maintain/hornet/2.0.0-rc.6/docs/inx-plugins/poi/welcome.md b/docs/maintain/hornet/2.0-rc.6/docs/inx-plugins/poi/welcome.md similarity index 100% rename from docs/maintain/hornet/2.0.0-rc.6/docs/inx-plugins/poi/welcome.md rename to docs/maintain/hornet/2.0-rc.6/docs/inx-plugins/poi/welcome.md diff --git a/docs/maintain/hornet/2.0.0-rc.6/docs/inx-plugins/spammer/configuration.md b/docs/maintain/hornet/2.0-rc.6/docs/inx-plugins/spammer/configuration.md similarity index 100% rename from docs/maintain/hornet/2.0.0-rc.6/docs/inx-plugins/spammer/configuration.md rename to docs/maintain/hornet/2.0-rc.6/docs/inx-plugins/spammer/configuration.md diff --git a/docs/maintain/hornet/2.0.0-rc.6/docs/inx-plugins/spammer/welcome.md b/docs/maintain/hornet/2.0-rc.6/docs/inx-plugins/spammer/welcome.md similarity index 100% rename from docs/maintain/hornet/2.0.0-rc.6/docs/inx-plugins/spammer/welcome.md rename to docs/maintain/hornet/2.0-rc.6/docs/inx-plugins/spammer/welcome.md diff --git a/docs/maintain/hornet/2.0.0-rc.6/docs/references/api_reference.md b/docs/maintain/hornet/2.0-rc.6/docs/references/api_reference.md similarity index 100% rename from docs/maintain/hornet/2.0.0-rc.6/docs/references/api_reference.md rename to docs/maintain/hornet/2.0-rc.6/docs/references/api_reference.md diff --git a/docs/maintain/hornet/2.0.0-rc.6/docs/references/configuration.md b/docs/maintain/hornet/2.0-rc.6/docs/references/configuration.md similarity index 100% rename from docs/maintain/hornet/2.0.0-rc.6/docs/references/configuration.md rename to docs/maintain/hornet/2.0-rc.6/docs/references/configuration.md diff --git a/docs/maintain/hornet/2.0.0-rc.6/docs/references/peering.md b/docs/maintain/hornet/2.0-rc.6/docs/references/peering.md similarity index 100% rename from docs/maintain/hornet/2.0.0-rc.6/docs/references/peering.md rename to docs/maintain/hornet/2.0-rc.6/docs/references/peering.md diff --git a/docs/maintain/hornet/2.0.0-rc.6/docs/welcome.md b/docs/maintain/hornet/2.0-rc.6/docs/welcome.md similarity index 100% rename from docs/maintain/hornet/2.0.0-rc.6/docs/welcome.md rename to docs/maintain/hornet/2.0-rc.6/docs/welcome.md diff --git a/docs/maintain/hornet/2.0.0-rc.6/sidebars.js b/docs/maintain/hornet/2.0-rc.6/sidebars.js similarity index 100% rename from docs/maintain/hornet/2.0.0-rc.6/sidebars.js rename to docs/maintain/hornet/2.0-rc.6/sidebars.js diff --git a/docs/maintain/hornet/2.0.0-rc.6/static/.nojekyll b/docs/maintain/hornet/2.0-rc.6/static/.nojekyll similarity index 100% rename from docs/maintain/hornet/2.0.0-rc.6/static/.nojekyll rename to docs/maintain/hornet/2.0-rc.6/static/.nojekyll diff --git a/docs/maintain/hornet/2.0.0-rc.6/static/img/Banner/banner_faqs.png b/docs/maintain/hornet/2.0-rc.6/static/img/Banner/banner_faqs.png similarity index 100% rename from docs/maintain/hornet/2.0.0-rc.6/static/img/Banner/banner_faqs.png rename to docs/maintain/hornet/2.0-rc.6/static/img/Banner/banner_faqs.png diff --git a/docs/maintain/hornet/2.0.0-rc.6/static/img/Banner/banner_hornet.png b/docs/maintain/hornet/2.0-rc.6/static/img/Banner/banner_hornet.png similarity index 100% rename from docs/maintain/hornet/2.0.0-rc.6/static/img/Banner/banner_hornet.png rename to docs/maintain/hornet/2.0-rc.6/static/img/Banner/banner_hornet.png diff --git a/docs/maintain/hornet/2.0.0-rc.6/static/img/Banner/banner_hornet_configuration.png b/docs/maintain/hornet/2.0-rc.6/static/img/Banner/banner_hornet_configuration.png similarity index 100% rename from docs/maintain/hornet/2.0.0-rc.6/static/img/Banner/banner_hornet_configuration.png rename to docs/maintain/hornet/2.0-rc.6/static/img/Banner/banner_hornet_configuration.png diff --git a/docs/maintain/hornet/2.0.0-rc.6/static/img/Banner/banner_hornet_genesis_snapshot.png b/docs/maintain/hornet/2.0-rc.6/static/img/Banner/banner_hornet_genesis_snapshot.png similarity index 100% rename from docs/maintain/hornet/2.0.0-rc.6/static/img/Banner/banner_hornet_genesis_snapshot.png rename to docs/maintain/hornet/2.0-rc.6/static/img/Banner/banner_hornet_genesis_snapshot.png diff --git a/docs/maintain/hornet/2.0.0-rc.6/static/img/Banner/banner_hornet_getting_started.png b/docs/maintain/hornet/2.0-rc.6/static/img/Banner/banner_hornet_getting_started.png similarity index 100% rename from docs/maintain/hornet/2.0.0-rc.6/static/img/Banner/banner_hornet_getting_started.png rename to docs/maintain/hornet/2.0-rc.6/static/img/Banner/banner_hornet_getting_started.png diff --git a/docs/maintain/hornet/2.0.0-rc.6/static/img/Banner/banner_hornet_nodes_101.png b/docs/maintain/hornet/2.0-rc.6/static/img/Banner/banner_hornet_nodes_101.png similarity index 100% rename from docs/maintain/hornet/2.0.0-rc.6/static/img/Banner/banner_hornet_nodes_101.png rename to docs/maintain/hornet/2.0-rc.6/static/img/Banner/banner_hornet_nodes_101.png diff --git a/docs/maintain/hornet/2.0.0-rc.6/static/img/Banner/banner_hornet_peering.png b/docs/maintain/hornet/2.0-rc.6/static/img/Banner/banner_hornet_peering.png similarity index 100% rename from docs/maintain/hornet/2.0.0-rc.6/static/img/Banner/banner_hornet_peering.png rename to docs/maintain/hornet/2.0-rc.6/static/img/Banner/banner_hornet_peering.png diff --git a/docs/maintain/hornet/2.0.0-rc.6/static/img/Banner/banner_hornet_private_tangle.png b/docs/maintain/hornet/2.0-rc.6/static/img/Banner/banner_hornet_private_tangle.png similarity index 100% rename from docs/maintain/hornet/2.0.0-rc.6/static/img/Banner/banner_hornet_private_tangle.png rename to docs/maintain/hornet/2.0-rc.6/static/img/Banner/banner_hornet_private_tangle.png diff --git a/docs/maintain/hornet/2.0.0-rc.6/static/img/Banner/banner_hornet_security_101.png b/docs/maintain/hornet/2.0-rc.6/static/img/Banner/banner_hornet_security_101.png similarity index 100% rename from docs/maintain/hornet/2.0.0-rc.6/static/img/Banner/banner_hornet_security_101.png rename to docs/maintain/hornet/2.0-rc.6/static/img/Banner/banner_hornet_security_101.png diff --git a/docs/maintain/hornet/2.0.0-rc.6/static/img/Banner/banner_hornet_using_docker.png b/docs/maintain/hornet/2.0-rc.6/static/img/Banner/banner_hornet_using_docker.png similarity index 100% rename from docs/maintain/hornet/2.0.0-rc.6/static/img/Banner/banner_hornet_using_docker.png rename to docs/maintain/hornet/2.0-rc.6/static/img/Banner/banner_hornet_using_docker.png diff --git a/docs/maintain/hornet/2.0.0-rc.6/static/img/bg-2ab9b09901d67717ad0179ee92d7a3c1.svg b/docs/maintain/hornet/2.0-rc.6/static/img/bg-2ab9b09901d67717ad0179ee92d7a3c1.svg similarity index 100% rename from docs/maintain/hornet/2.0.0-rc.6/static/img/bg-2ab9b09901d67717ad0179ee92d7a3c1.svg rename to docs/maintain/hornet/2.0-rc.6/static/img/bg-2ab9b09901d67717ad0179ee92d7a3c1.svg diff --git a/docs/maintain/hornet/2.0.0-rc.6/static/img/bg.svg b/docs/maintain/hornet/2.0-rc.6/static/img/bg.svg similarity index 100% rename from docs/maintain/hornet/2.0.0-rc.6/static/img/bg.svg rename to docs/maintain/hornet/2.0-rc.6/static/img/bg.svg diff --git a/docs/maintain/hornet/2.0.0-rc.6/static/img/libraries.png b/docs/maintain/hornet/2.0-rc.6/static/img/libraries.png similarity index 100% rename from docs/maintain/hornet/2.0.0-rc.6/static/img/libraries.png rename to docs/maintain/hornet/2.0-rc.6/static/img/libraries.png diff --git a/docs/maintain/hornet/2.0.0-rc.6/static/img/logo/HORNET_logo.png b/docs/maintain/hornet/2.0-rc.6/static/img/logo/HORNET_logo.png similarity index 100% rename from docs/maintain/hornet/2.0.0-rc.6/static/img/logo/HORNET_logo.png rename to docs/maintain/hornet/2.0-rc.6/static/img/logo/HORNET_logo.png diff --git a/docs/maintain/hornet/2.0.0-rc.6/static/img/logo/HORNET_logo.svg b/docs/maintain/hornet/2.0-rc.6/static/img/logo/HORNET_logo.svg similarity index 100% rename from docs/maintain/hornet/2.0.0-rc.6/static/img/logo/HORNET_logo.svg rename to docs/maintain/hornet/2.0-rc.6/static/img/logo/HORNET_logo.svg diff --git a/docs/maintain/hornet/2.0.0-rc.6/static/img/logo/Logo_Swirl_Dark.png b/docs/maintain/hornet/2.0-rc.6/static/img/logo/Logo_Swirl_Dark.png similarity index 100% rename from docs/maintain/hornet/2.0.0-rc.6/static/img/logo/Logo_Swirl_Dark.png rename to docs/maintain/hornet/2.0-rc.6/static/img/logo/Logo_Swirl_Dark.png diff --git a/docs/maintain/hornet/2.0.0-rc.6/static/img/logo/favicon.ico b/docs/maintain/hornet/2.0-rc.6/static/img/logo/favicon.ico similarity index 100% rename from docs/maintain/hornet/2.0.0-rc.6/static/img/logo/favicon.ico rename to docs/maintain/hornet/2.0-rc.6/static/img/logo/favicon.ico diff --git a/docs/maintain/wasp/0.7.0/docs/configuration.md b/docs/maintain/wasp/0.7/docs/configuration.md similarity index 100% rename from docs/maintain/wasp/0.7.0/docs/configuration.md rename to docs/maintain/wasp/0.7/docs/configuration.md diff --git a/docs/maintain/wasp/0.7.0/docs/metrics.md b/docs/maintain/wasp/0.7/docs/metrics.md similarity index 59% rename from docs/maintain/wasp/0.7.0/docs/metrics.md rename to docs/maintain/wasp/0.7/docs/metrics.md index cbcff80c1dc..d055dc45de7 100644 --- a/docs/maintain/wasp/0.7.0/docs/metrics.md +++ b/docs/maintain/wasp/0.7/docs/metrics.md @@ -9,14 +9,14 @@ keywords: # Exposed Metrics -You can see all exposed metrics at our [metrics endpoint](https://wasp.sc.iota.org/metrics). Refer to the [testnet endpoints description](/smart-contracts/testnet#endpoints) for access details. +Refer to the [testnet endpoints description](/build/networks-endpoints/#testnet-evm) for access details. -| Metric | Description | -| ------------------------------------------ | ----------------------------------------------------- | -| `wasp_off_ledger_requests_counter` | Off-ledger requests per chain. | -| `wasp_on_ledger_request_counter` | On-ledger requests per chain. | -| `wasp_processed_request_counter` | Total number of requests processed. | -| `messages_received_per_chain` | Number of messages received per chain. | -| `receive_requests_acknowledgement_message` | Number of request acknowledgement messages per chain. | -| `request_processing_time` | Time to process request. | -| `vm_run_time` | Time it takes to run the vm. | +| Metric | Description | +| ------------------------------------------ | ---------------------------------------------------- | +| `wasp_off_ledger_requests_counter` | Off-ledger requests per chain. | +| `wasp_on_ledger_request_counter` | On-ledger requests per chain. | +| `wasp_processed_request_counter` | Total number of requests processed. | +| `messages_received_per_chain` | Number of messages received per chain. | +| `receive_requests_acknowledgement_message` | Number of request acknowledgment messages per chain. | +| `request_processing_time` | Time to process request. | +| `vm_run_time` | Time it takes to run the VM. | diff --git a/docs/maintain/wasp/0.7.0/docs/running-a-node.md b/docs/maintain/wasp/0.7/docs/running-a-node.md similarity index 54% rename from docs/maintain/wasp/0.7.0/docs/running-a-node.md rename to docs/maintain/wasp/0.7/docs/running-a-node.md index ff18793c889..ef18a3ae308 100644 --- a/docs/maintain/wasp/0.7.0/docs/running-a-node.md +++ b/docs/maintain/wasp/0.7/docs/running-a-node.md @@ -15,12 +15,12 @@ keywords: # Running a Node -Due to wasp being desgined as an INX plugin, its necessary to run the wasp node alongside your own hornet node, for this we provide a simple docker-compose setup. +As Wasp is an INX plugin, you must run the wasp node alongside your hornet node. You can use the simple docker-compose setup to do so. -## Setup +## Set Up Clone and follow the instructions on the [node-docker-setup repo](https://github.com/iotaledger/node-docker-setup). :::note -This is aimed for prodution-ready deployment, if you're looking to spawn a local node for testing/development, please see: [local-setup](https://github.com/iotaledger/wasp/tree/develop/tools/local-setup) +This is aimed at production-ready deployment. If you're looking to spawn a local node for testing/development, please see the [local-setup](https://github.com/iotaledger/wasp/tree/develop/tools/local-setup) ::: diff --git a/docs/maintain/wasp/0.7.0/sidebars.js b/docs/maintain/wasp/0.7/sidebars.js similarity index 79% rename from docs/maintain/wasp/0.7.0/sidebars.js rename to docs/maintain/wasp/0.7/sidebars.js index fde7656f21f..2a7b08b09e7 100644 --- a/docs/maintain/wasp/0.7.0/sidebars.js +++ b/docs/maintain/wasp/0.7/sidebars.js @@ -19,18 +19,6 @@ module.exports = { type: 'doc', id: 'running-a-node', }, - { - type: 'doc', - id: 'wasp-cli', - }, - { - type: 'doc', - id: 'setting-up-a-chain', - }, - { - type: 'doc', - id: 'chain-management', - }, { type: 'doc', id: 'configuration', diff --git a/docs/maintain/wasp/0.7.0/static/.nojekyll b/docs/maintain/wasp/0.7/static/.nojekyll similarity index 100% rename from docs/maintain/wasp/0.7.0/static/.nojekyll rename to docs/maintain/wasp/0.7/static/.nojekyll diff --git a/docs/maintain/wasp/0.7/static/img/logo/WASP_logo_dark.png b/docs/maintain/wasp/0.7/static/img/logo/WASP_logo_dark.png new file mode 100644 index 00000000000..cddeb2cdc1e Binary files /dev/null and b/docs/maintain/wasp/0.7/static/img/logo/WASP_logo_dark.png differ diff --git a/docusaurus.config.js b/docusaurus.config.js index 38fa2cea9fb..b8f00b841bf 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -4,6 +4,7 @@ const { create_doc_plugin, globStatic } = require('./src/utils/config'); const common = require('./common/docusaurus.config'); const contentConfigs = require('./contentPlugins'); const articleRedirectsFile = require('./articleRedirects'); +const switcherConfig = require('./switcherConfig'); module.exports = async () => { const contentPlugins = await Promise.all( @@ -56,7 +57,9 @@ module.exports = async () => { '^(/[^/]+)?/wallet.rs/.*|' + '^(/[^/]+)?/stronghold.rs/.*|' + '^(/[^/]+)?/streams/.*|' + - '^(/[^/]+)?/smart-contracts/.*', + '^(/[^/]+)?/wasp-cli/.*' + + '^(/[^/]+)?/wasp-wasm/.*' + + '^(/[^/]+)?/wasp-evm/.*', }, { label: 'Maintain', @@ -107,6 +110,7 @@ module.exports = async () => { indexName: 'iota', contextualSearch: true, }, + switcher: switcherConfig, }, }; @@ -169,7 +173,10 @@ module.exports = async () => { coreApiChrysalis: { specPath: 'https://raw.githubusercontent.com/iotaledger/tips/main/tips/TIP-0013/rest-api.yaml', - outputDir: path.resolve(__dirname, 'docs/build/apis/core/v1'), + outputDir: path.resolve( + __dirname, + 'docs/build/apis/docs/core/v1', + ), sidebarOptions: { groupPathsBy: 'tag', }, @@ -177,7 +184,10 @@ module.exports = async () => { coreApiShimmer: { specPath: 'https://raw.githubusercontent.com/iotaledger/tips/main/tips/TIP-0025/core-rest-api.yaml', - outputDir: path.resolve(__dirname, 'docs/build/apis/core/v2'), + outputDir: path.resolve( + __dirname, + 'docs/build/apis/docs/core/v2', + ), sidebarOptions: { groupPathsBy: 'tag', }, @@ -185,7 +195,7 @@ module.exports = async () => { waspApi: { specPath: 'https://raw.githubusercontent.com/iotaledger/wasp/develop/clients/apiclient/api/openapi.yaml', - outputDir: path.resolve(__dirname, 'docs/build/apis/wasp'), + outputDir: path.resolve(__dirname, 'docs/build/apis/docs/wasp'), sidebarOptions: { groupPathsBy: 'tag', }, @@ -193,7 +203,10 @@ module.exports = async () => { indexerApi: { specPath: 'https://raw.githubusercontent.com/iotaledger/tips/main/tips/TIP-0026/indexer-rest-api.yaml', - outputDir: path.resolve(__dirname, 'docs/build/apis/indexer'), + outputDir: path.resolve( + __dirname, + 'docs/build/apis/docs/indexer', + ), sidebarOptions: { groupPathsBy: 'tag', }, @@ -201,7 +214,7 @@ module.exports = async () => { poiApi: { specPath: 'https://raw.githubusercontent.com/iotaledger/inx-poi/develop/rest-api.yaml', - outputDir: path.resolve(__dirname, 'docs/build/apis/poi'), + outputDir: path.resolve(__dirname, 'docs/build/apis/docs/poi'), sidebarOptions: { groupPathsBy: 'tag', }, @@ -209,7 +222,10 @@ module.exports = async () => { explorerApi: { specPath: 'https://raw.githubusercontent.com/iotaledger/inx-chronicle/main/documentation/api/api-explorer.yml', - outputDir: path.resolve(__dirname, 'docs/build/apis/explorer'), + outputDir: path.resolve( + __dirname, + 'docs/build/apis/docs/explorer', + ), sidebarOptions: { groupPathsBy: 'tag', }, @@ -219,7 +235,7 @@ module.exports = async () => { 'https://raw.githubusercontent.com/iotaledger/inx-irc-metadata/develop/rest-api.yaml', outputDir: path.resolve( __dirname, - 'docs/build/apis/irc-metadata', + 'docs/build/apis/docs/irc-metadata', ), sidebarOptions: { groupPathsBy: 'tag', @@ -241,7 +257,7 @@ module.exports = async () => { }, { from: '/shimmer/chronicle', - to: '/chronicle/1.0.0-rc.1', + to: '/chronicle/1.0-rc.1', }, { from: '/shimmer/cli-wallet', @@ -261,7 +277,7 @@ module.exports = async () => { }, { from: '/shimmer/hornet', - to: '/hornet/2.0.0-rc.6', + to: '/hornet/2.0-rc.6', }, { from: '/shimmer/identity.rs', @@ -281,7 +297,7 @@ module.exports = async () => { }, { from: '/shimmer/iota.rs', - to: '/iota.rs/2.0.1-rc.7', + to: '/iota.rs/2.0-rc.7', }, { from: '/shimmer/smart-contracts/guide/chains_and_nodes', @@ -321,7 +337,7 @@ module.exports = async () => { }, { from: '/shimmer/wallet.rs', - to: '/wallet.rs/1.0.0-rc.6', + to: '/wallet.rs/1.0-rc.6', }, { from: '/shimmer/learn/governance/', diff --git a/scripts/gen_sdk_references.sh b/scripts/gen_sdk_references.sh index 14769105279..4c510b1642e 100755 --- a/scripts/gen_sdk_references.sh +++ b/scripts/gen_sdk_references.sh @@ -12,7 +12,7 @@ python3 -m venv .venv . .venv/bin/activate pip install -r requirements-dev.txt PYTHONPATH=. pydoc-markdown -cp -Rv docs/references/python ../../../../docs/build/iota-sdk/1.0.0/docs/references/ +cp -Rv docs/references/python ../../../../docs/build/iota-sdk/1.0/docs/references/ deactivate cd - @@ -21,7 +21,7 @@ cd bindings/nodejs # The SDK still uses yarn classic: https://github.com/iotaledger/iota-sdk/issues/433 yarn set version classic yarn -yarn create-api-docs --out ../../../../docs/build/iota-sdk/1.0.0/docs/references/nodejs +yarn create-api-docs --out ../../../../docs/build/iota-sdk/1.0/docs/references/nodejs cd - # Return to root and cleanup diff --git a/src/components/HomeLayout/AppLibrariesSection.tsx b/src/components/HomeLayout/AppLibrariesSection.tsx index f0d59962e58..18581f56d23 100644 --- a/src/components/HomeLayout/AppLibrariesSection.tsx +++ b/src/components/HomeLayout/AppLibrariesSection.tsx @@ -132,7 +132,7 @@ const LibrariesSection: FC = () => (

Learn about ISC diff --git a/src/utils/useSwitcher.ts b/src/utils/useSwitcher.ts index ce5c9287ce7..ff4a329ce43 100644 --- a/src/utils/useSwitcher.ts +++ b/src/utils/useSwitcher.ts @@ -1,12 +1,13 @@ import useRouteContext from '@docusaurus/useRouteContext'; +import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; import { PropSidebarItem } from '@docusaurus/plugin-content-docs'; import { GlobalPluginData as DocsGlobalPluginData, useAllDocsData, } from '@docusaurus/plugin-content-docs/client'; import { useDocsSidebar } from '@docusaurus/theme-common/internal'; -import config from '../switcher.config'; import { + Config, Doc, MenuItem, Section, @@ -83,6 +84,12 @@ export default function useSwitcher(): SwitcherProps { }; const docId = useRouteContext().plugin.id; const { name: sidebarId, items: sidebarItems } = useDocsSidebar(); + const { + siteConfig: { themeConfig }, + } = useDocusaurusContext(); + + const config = themeConfig.switcher as Config; + if (!config) return { main: sidebarItems }; // Convert the sections and docs configuration into a single // tree structure of sections, subsections, docs, and versions. diff --git a/src/switcher.config.ts b/switcherConfig.js similarity index 75% rename from src/switcher.config.ts rename to switcherConfig.js index dae9567fefe..38c66095ef4 100644 --- a/src/switcher.config.ts +++ b/switcherConfig.js @@ -1,16 +1,16 @@ -import type { Config } from './common/components/Switcher'; +// @ts-check const buildDocs = [ { - id: 'iota-sdk-1-0-0', + id: 'iota-sdk-1-0', label: 'IOTA SDK', description: 'Seamlessly integrate IOTA into your app.', icon: 'IotaCore', subsection: 'build-layer-1', versions: [ { - id: 'iota-sdk-1-0-0', - label: '1.0.0', + id: 'iota-sdk-1-0', + label: '1.0', badges: ['Shimmer'], }, ], @@ -53,7 +53,7 @@ const buildDocs = [ versions: [ { id: 'stronghold-rs', - label: '1.1.0', + label: '1.1', badges: ['IOTA/Shimmer'], }, ], @@ -67,7 +67,7 @@ const buildDocs = [ versions: [ { id: 'cli-wallet', - label: '1.0.0', + label: '1.0', badges: ['Shimmer'], }, ], @@ -85,20 +85,20 @@ const buildDocs = [ ], }, { - id: 'iota-rs-1-4-0', + id: 'iota-rs-1-4', label: 'iota.rs (deprecated)', description: 'Legacy client SDK.', icon: 'IotaCore', subsection: 'build-layer-1', versions: [ { - id: 'iota-rs-2-0-1-rc-7', - label: '2.0.1-rc.7', + id: 'iota-rs-2-0-rc-7', + label: '2.0-rc.7', badges: ['Shimmer'], }, { - id: 'iota-rs-1-4-0', - label: '1.4.0', + id: 'iota-rs-1-4', + label: '1.4', badges: ['IOTA'], }, ], @@ -112,26 +112,26 @@ const buildDocs = [ versions: [ { id: 'iotajs', - label: '2.0.0-rc.1', + label: '2.0-rc.1', badges: ['Shimmer'], }, ], }, { - id: 'wallet-rs-0-1-0', + id: 'wallet-rs-0-1', label: 'wallet.rs (deprecated)', description: 'Legacy wallet SDK.', icon: 'Wallet', subsection: 'build-layer-1', versions: [ { - id: 'wallet-rs-1-0-0-rc-6', - label: '1.0.0-rc.6', + id: 'wallet-rs-1-0-rc-6', + label: '1.0-rc.6', badges: ['Shimmer'], }, { - id: 'wallet-rs-0-1-0', - label: '0.1.0', + id: 'wallet-rs-0-1', + label: '0.1', badges: ['IOTA'], }, ], @@ -145,21 +145,49 @@ const buildDocs = [ versions: [ { id: 'iota-streams', - label: '0.2.0', + label: '0.2', badges: ['IOTA'], }, ], }, { - id: 'smart-contract-0-7-0', - label: 'Smart Contracts', - description: 'Create smart contracts.', + id: 'wasp-evm-0-7', + label: 'EVM', + description: 'Create EVM smart contracts.', icon: 'SmartContracts', subsection: 'build-layer-2', versions: [ { - id: 'smart-contract-0-7-0', - label: '0.7.0', + id: 'wasp-evm-0-7', + label: '0.7', + badges: ['Shimmer'], + }, + ], + }, + { + id: 'wasp-cli-0-7', + label: 'Wasp CLI', + description: 'Create custom smart contract chains.', + icon: 'SmartContracts', + subsection: 'build-layer-2', + versions: [ + { + id: 'wasp-cli-0-7', + label: '0.7', + badges: ['Shimmer'], + }, + ], + }, + { + id: 'wasp-wasm-0-7', + label: 'WASM (Experimental)', + description: 'Create WASM smart contracts.', + icon: 'SmartContracts', + subsection: 'build-layer-2', + versions: [ + { + id: 'wasp-wasm-0-7', + label: '0.7', badges: ['Shimmer'], }, ], @@ -168,34 +196,34 @@ const buildDocs = [ const maintainDocs = [ { - id: 'hornet-1-2-4', + id: 'hornet-1-2', label: 'Hornet', description: 'The primary node software for IOTA.', icon: 'Hornet', subsection: 'maintain-layer-1', versions: [ { - id: 'hornet-2-0-0-rc-6', - label: '2.0.0-rc.6', + id: 'hornet-2-0-rc-6', + label: '2.0-rc.6', badges: ['Shimmer'], }, { - id: 'hornet-1-2-4', - label: '1.2.4', + id: 'hornet-1-2', + label: '1.2', badges: ['IOTA'], }, ], }, { - id: 'wasp-0-7-0', + id: 'wasp-0-7', label: 'Wasp', description: 'The node software to run an ISC network', icon: 'SmartContracts', subsection: 'maintain-layer-2', versions: [ { - id: 'wasp-0-7-0', - label: '0.7.0', + id: 'wasp-0-7', + label: '0.7', badges: ['Shimmer'], }, ], @@ -209,12 +237,12 @@ const maintainDocs = [ versions: [ { id: 'inx-chronicle', - label: '1.0.0-rc.1', + label: '1.0-rc.1', badges: ['Shimmer'], }, { id: 'chronicle-rs', - label: '0.3.0', + label: '0.3', badges: ['IOTA'], }, ], @@ -228,14 +256,15 @@ const maintainDocs = [ versions: [ { id: 'goshimmer', - label: '0.9.8', + label: '0.9', badges: ['IOTA 2.0'], }, ], }, ]; -const config: Config = { +/** @type {import('./src/common/components/Switcher').Config} */ +const config = { docs: [...buildDocs, ...maintainDocs], sections: [ { @@ -278,4 +307,4 @@ const config: Config = { ], }; -export default config; +module.exports = config; diff --git a/tutorials/pages/shimmerevm-dapp-voting.md b/tutorials/pages/shimmerevm-dapp-voting.md index fc79593987b..3f3fed375ad 100644 --- a/tutorials/pages/shimmerevm-dapp-voting.md +++ b/tutorials/pages/shimmerevm-dapp-voting.md @@ -283,7 +283,7 @@ Please make a note of the ABI while you're compiling it. You will need it later. Most of the front end is design work which is not the focus of this tutorial, so let's jump to the js part. You can use [this project](https://github.com/anistark/smart-contracts-demo/tree/main/voting) if you're looking for a ready design to get started. Feel free to make changes to the design to suit your needs. -We will also use [Metamask](/smart-contracts/guide/evm/tooling/#metamask) in this section, so please ensure you have installed and logged in to Metamask. +We will also use [Metamask](/wasp-evm/getting-started/compatible-tools) in this section, so please ensure you have installed and logged in to Metamask. The first thing you need to do is check that Metamask is accessible from your dApp: ```javascript! diff --git a/tutorials/pages/shimmerevm-setup.md b/tutorials/pages/shimmerevm-setup.md index f15ece23e26..e77b815f629 100644 --- a/tutorials/pages/shimmerevm-setup.md +++ b/tutorials/pages/shimmerevm-setup.md @@ -13,7 +13,7 @@ In this tutorial, we will connect to Shimmer EVM Testnet, connect Metamask to it ## Connect to Shimmer EVM Testnet -First, let's setup our Metamask with the EVM. For this exercise, we will use the testnet EVM chain. You can find all endpoints [here](/smart-contracts/testnet). +First, let's setup our Metamask with the EVM. For this exercise, we will use the testnet EVM chain. You can find all endpoints [here](/build/networks-endpoints/#testnet-evm). Add a new network on your Metamask, as shown below: