diff --git a/build/ui-bundle.zip b/build/ui-bundle.zip index 0a65239..02db4f6 100644 Binary files a/build/ui-bundle.zip and b/build/ui-bundle.zip differ diff --git a/package-lock.json b/package-lock.json index 7e0410b..1ec3098 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,7 +8,8 @@ "license": "MPL-2.0", "dependencies": { "caniuse-lite": "^1.0.30001457", - "core-js": "^3.0.0" + "core-js": "^3.0.0", + "highlightjs-solidity": "^2.0.6" }, "devDependencies": { "@asciidoctor/core": "~2.2", @@ -7367,6 +7368,11 @@ "integrity": "sha512-d2w8A+02Asq9QIAI6XOyxgKXCzqC/MMNreRjb7Ia2mhpjzVDbU7JaXK+hMlJkVs1MaqKuD1mTLQ7HxAlcOenSw==", "dev": true }, + "node_modules/highlightjs-solidity": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/highlightjs-solidity/-/highlightjs-solidity-2.0.6.tgz", + "integrity": "sha512-DySXWfQghjm2l6a/flF+cteroJqD4gI8GSdL4PtvxZSsAHie8m3yVe2JFoRg03ROKT6hp2Lc/BxXkqerNmtQYg==" + }, "node_modules/hmac-drbg": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", @@ -22551,6 +22557,11 @@ "integrity": "sha512-d2w8A+02Asq9QIAI6XOyxgKXCzqC/MMNreRjb7Ia2mhpjzVDbU7JaXK+hMlJkVs1MaqKuD1mTLQ7HxAlcOenSw==", "dev": true }, + "highlightjs-solidity": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/highlightjs-solidity/-/highlightjs-solidity-2.0.6.tgz", + "integrity": "sha512-DySXWfQghjm2l6a/flF+cteroJqD4gI8GSdL4PtvxZSsAHie8m3yVe2JFoRg03ROKT6hp2Lc/BxXkqerNmtQYg==" + }, "hmac-drbg": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", diff --git a/package.json b/package.json index e2a4b14..d8150b9 100644 --- a/package.json +++ b/package.json @@ -61,6 +61,7 @@ }, "dependencies": { "caniuse-lite": "^1.0.30001457", - "core-js": "^3.0.0" + "core-js": "^3.0.0", + "highlightjs-solidity": "^2.0.6" } } diff --git a/preview-src/index.adoc b/preview-src/index.adoc index 69a7d26..66e6c5f 100644 --- a/preview-src/index.adoc +++ b/preview-src/index.adoc @@ -75,6 +75,7 @@ Voila! How about some code? +.Cairo code [source,cairo] ---- #[cfg(test)] @@ -87,6 +88,58 @@ mod tests { } ---- +.Solidity code +[source,solidity] +---- +// SPDX-License-Identifier: GPL-3.0 +pragma solidity >=0.5.0 <0.9.0; + +library Balances { + function move(mapping(address => uint256) storage balances, address from, address to, uint amount) internal { + require(balances[from] >= amount); + require(balances[to] + amount >= balances[to]); + balances[from] -= amount; + balances[to] += amount; + } +} + +contract Token { + mapping(address => uint256) balances; + using Balances for *; + mapping(address => mapping(address => uint256)) allowed; + + event Transfer(address from, address to, uint amount); + event Approval(address owner, address spender, uint amount); + + function transfer(address to, uint amount) external returns (bool success) { + balances.move(msg.sender, to, amount); + emit Transfer(msg.sender, to, amount); + return true; + + } + + function transferFrom(address from, address to, uint amount) external returns (bool success) { + require(allowed[from][msg.sender] >= amount); + allowed[from][msg.sender] -= amount; + balances.move(from, to, amount); + emit Transfer(from, to, amount); + return true; + } + + function approve(address spender, uint tokens) external returns (bool success) { + require(allowed[msg.sender][spender] == 0, ""); + allowed[msg.sender][spender] = tokens; + emit Approval(msg.sender, spender, tokens); + return true; + } + + function balanceOf(address tokenOwner) external view returns (uint balance) { + return balances[tokenOwner]; + } +} +---- + +.JavaScript code [,js] ---- vfs diff --git a/src/js/vendor/highlight.bundle.js b/src/js/vendor/highlight.bundle.js index e8b3110..0338c8b 100644 --- a/src/js/vendor/highlight.bundle.js +++ b/src/js/vendor/highlight.bundle.js @@ -2,6 +2,7 @@ 'use strict' const hljsDefineCairo = require('highlightjs-cairo'); // Require the highlightjs-cairo module + const hljsDefineSolidity = require('highlightjs-solidity'); // Require the highlightjs-solidity module var hljs = require('highlight.js/lib/highlight') hljs.registerLanguage('asciidoc', require('highlight.js/lib/languages/asciidoc')) @@ -37,6 +38,7 @@ hljs.registerLanguage('xml', require('highlight.js/lib/languages/xml')) hljs.registerLanguage('yaml', require('highlight.js/lib/languages/yaml')) hljsDefineCairo(hljs); // Use the highlightjs-cairo module to define Cairo in hljs + hljsDefineSolidity(hljs); // Use the highlightjs-solidity module to define Solidity in hljs ;[].slice.call(document.querySelectorAll('pre code.hljs[data-lang]')).forEach(function (node) { hljs.highlightBlock(node) }) diff --git a/yarn.lock b/yarn.lock index 9077b49..e0ad339 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4085,6 +4085,11 @@ "resolved" "https://registry.npmjs.org/highlightjs-cairo/-/highlightjs-cairo-0.4.0.tgz" "version" "0.4.0" +"highlightjs-solidity@^2.0.6": + "integrity" "sha512-DySXWfQghjm2l6a/flF+cteroJqD4gI8GSdL4PtvxZSsAHie8m3yVe2JFoRg03ROKT6hp2Lc/BxXkqerNmtQYg==" + "resolved" "https://registry.npmjs.org/highlightjs-solidity/-/highlightjs-solidity-2.0.6.tgz" + "version" "2.0.6" + "hmac-drbg@^1.0.1": "integrity" "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=" "resolved" "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz"