From f2e2eee3bf2dc8a5acbbc1ec3557fbfaf06a805b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matev=C5=BE=20Jekovec?= Date: Fri, 24 Nov 2023 15:29:49 +0100 Subject: [PATCH] docs: Migrate Sapphire docs to sapphire-paratime repo --- .gitmodules | 3 + README.md | 15 +- .../dapp/images/sapphire/gasless-gsn-flow.jpg | Bin 150922 -> 0 bytes .../sapphire/gasless-on-chain-signer.svg | 4 - .../hardhat-boilerplate-frontend1.png | Bin 3981 -> 0 bytes .../hardhat-boilerplate-frontend2.png | Bin 11508 -> 0 bytes .../hardhat-boilerplate-frontend3.png | Bin 13182 -> 0 bytes docs/dapp/images/sapphire/sourcify1.png | Bin 35154 -> 0 bytes docs/dapp/images/sapphire/sourcify2.png | Bin 25663 -> 0 bytes docs/dapp/images/sapphire/sourcify3.png | Bin 88187 -> 0 bytes docs/dapp/sapphire/addresses.md | 19 +- docs/dapp/sapphire/authentication.md | 210 +--------- docs/dapp/sapphire/browser.md | 209 +--------- docs/dapp/sapphire/gasless.md | 389 +---------------- docs/dapp/sapphire/guide.mdx | 391 +----------------- docs/dapp/sapphire/images | 1 + docs/dapp/sapphire/precompiles.md | 318 +------------- docs/dapp/sapphire/quickstart.mdx | 208 +--------- docs/dapp/sapphire/security.md | 117 +----- external/sapphire-paratime | 1 + src/editUrl.js | 1 + src/remark/cross-repo-links.js | 3 + 22 files changed, 25 insertions(+), 1864 deletions(-) delete mode 100644 docs/dapp/images/sapphire/gasless-gsn-flow.jpg delete mode 100644 docs/dapp/images/sapphire/gasless-on-chain-signer.svg delete mode 100644 docs/dapp/images/sapphire/hardhat-boilerplate-frontend1.png delete mode 100644 docs/dapp/images/sapphire/hardhat-boilerplate-frontend2.png delete mode 100644 docs/dapp/images/sapphire/hardhat-boilerplate-frontend3.png delete mode 100644 docs/dapp/images/sapphire/sourcify1.png delete mode 100644 docs/dapp/images/sapphire/sourcify2.png delete mode 100644 docs/dapp/images/sapphire/sourcify3.png mode change 100644 => 120000 docs/dapp/sapphire/addresses.md mode change 100644 => 120000 docs/dapp/sapphire/authentication.md mode change 100644 => 120000 docs/dapp/sapphire/browser.md mode change 100644 => 120000 docs/dapp/sapphire/gasless.md mode change 100644 => 120000 docs/dapp/sapphire/guide.mdx create mode 120000 docs/dapp/sapphire/images mode change 100644 => 120000 docs/dapp/sapphire/precompiles.md mode change 100644 => 120000 docs/dapp/sapphire/quickstart.mdx mode change 100644 => 120000 docs/dapp/sapphire/security.md create mode 160000 external/sapphire-paratime diff --git a/.gitmodules b/.gitmodules index b1c953dd35..510d75b006 100644 --- a/.gitmodules +++ b/.gitmodules @@ -11,3 +11,6 @@ [submodule "external/cli"] path = external/cli url = https://github.com/oasisprotocol/cli +[submodule "external/sapphire-paratime"] + path = external/sapphire-paratime + url = https://github.com/oasisprotocol/sapphire-paratime diff --git a/README.md b/README.md index 5abf8856b4..6b8cf79550 100644 --- a/README.md +++ b/README.md @@ -179,23 +179,24 @@ number in the comment which added this redirection for future reference, if major rewrite is to happen and the developers would need more context around the redirection. -### Diagrams +### Images -There are three kinds of image assets currently used in the docs. +There are three kinds of image assets used in the docs. -1. Screenshots, photos, non-technical figures go into `images/` folder of the - respected top-level chapter. +1. Screenshots, photos, non-technical figures go into `images/` folder + on the part-level (i.e. `docs/dapp/images`). External repositories may use + own images in their respective folder. 2. [Mermaid](https://mermaid-js.github.io) diagrams (preferred tool for sequence diagrams, flowcharts and other technical material) live in - `diagrams/` folder of the respected top-level chapter. Diagram sources - reside in the .mmd files. To generate .svg which can be used in the + `diagrams/` folder of the respective part or the external repository. Diagram + sources reside in the .mmd files. To generate .svg which can be used in the markdown run `yarn diagrams`. Both .svg and .mmd files should be stored in git. CI will check that they are always in sync. 3. Other diagrams which cannot be designed with Mermaid are drawn in [diagrams.net](https://diagrams.net) and then stored locally inside `images/` folder along other images. When exporting the diagram, don't forget to tick the "Include a copy of my diagram" checkbox so that the - diagram source will be stored along in the .svg file so you will + diagram source will be stored along in the .svg file and you will be able to edit it in the future. ## Vocabulary diff --git a/docs/dapp/images/sapphire/gasless-gsn-flow.jpg b/docs/dapp/images/sapphire/gasless-gsn-flow.jpg deleted file mode 100644 index 4a3683560e80de052b345f7c62f3b736702f0b43..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 150922 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

h{IuUEfroCu1vj1jW-C?Kl^kDG9mA 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 - - -
1.
🔒 call
makeProxyTransaction
(nonce, gasPrice, request, rsv)
1....
3.
 🔒eth.sendTransaction(tx)
3....
Gasless Client
(Node.js, Metamask, Oasis CLI)
Gasless Client...
5.
addr.call(tx)
5....
On-Chain Proxy
contract
On-Chain Proxy...
DAOv1
DAOv1
4.
decrypt tx
4....
Trust
Trust
2.
verify tx
2....
Text is not SVG - cannot display
\ No newline at end of file diff --git a/docs/dapp/images/sapphire/hardhat-boilerplate-frontend1.png b/docs/dapp/images/sapphire/hardhat-boilerplate-frontend1.png deleted file mode 100644 index 8d085599085b2c3a7844f76f9fab7daa5ce3d11f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3981 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 diff --git a/docs/dapp/images/sapphire/hardhat-boilerplate-frontend2.png b/docs/dapp/images/sapphire/hardhat-boilerplate-frontend2.png deleted file mode 100644 index 49a293bba2bad9044d69e65e087510eda2fa418d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11508 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 q3bSSAM@4v){;Q(Ez|!=p>i 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 diff --git a/docs/dapp/images/sapphire/sourcify3.png b/docs/dapp/images/sapphire/sourcify3.png deleted file mode 100644 index ac32713f68a2000ae6cfa46d37c3acc544995bc8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 88187 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

=()(&TUdXV8|}X24|#-Ixkdj4M)#KOo=Y88sVz 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

qN2I{LU@F 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 (block.timestamp - (60*60*24)) ); - - // Validate EIP-712 sign-in authentication. - bytes32 authdataDigest = keccak256(abi.encodePacked( - "\x19\x01", - DOMAIN_SEPARATOR, - keccak256(abi.encode( - SIGNIN_TYPEHASH, - auth.user, - auth.time - )) - )); - - address recovered_address = ecrecover( - authdataDigest, uint8(auth.rsv.v), auth.rsv.r, auth.rsv.s); - - require( auth.user == recovered_address, "Invalid Sign-In" ); - - _; - } - - function authenticatedViewCall( - SignIn calldata auth, - ... args - ) - external view - authenticated(auth) - returns (bytes memory output) - { - // Use `auth.user` instead of `msg.sender`! - } -} -``` - -With the above contract code deployed, let's look at the frontend dApp and how -it can request the user to sign-in using EIP-712. You may wish to add additional -parameters which are authenticated such as the domain name. The following code -example uses Ethers: - -```typescript -const time = new Date().getTime(); -const user = await eth.signer.getAddress(); - -// Ask user to "Sign-In" every 24 hours. -const signature = await eth.signer._signTypedData({ - name: "SignInExample.SignIn", - version: "1", - chainId: import.meta.env.CHAINID, - verifyingContract: contract.address -}, { - SignIn: [ - { name: 'user', type: "address" }, - { name: 'time', type: 'uint32' }, - ] -}, { - user, - time: time -}); -const rsv = ethers.utils.splitSignature(signature); -const auth = {user, time, rsv}; -// The `auth` variable can then be cached. - -// Then in the future, authenticated view calls can be performed by -// passing auth without further user interaction authenticated data. -await contract.authenticatedViewCall(auth, ...args); -``` diff --git a/docs/dapp/sapphire/authentication.md b/docs/dapp/sapphire/authentication.md new file mode 120000 index 0000000000..912a6e5c27 --- /dev/null +++ b/docs/dapp/sapphire/authentication.md @@ -0,0 +1 @@ +../../../external/sapphire-paratime/docs/authentication.md \ No newline at end of file diff --git a/docs/dapp/sapphire/browser.md b/docs/dapp/sapphire/browser.md deleted file mode 100644 index 20ab2f9a1a..0000000000 --- a/docs/dapp/sapphire/browser.md +++ /dev/null @@ -1,208 +0,0 @@ ---- -description: Writing Sapphire dApp for browser and Metamask ---- - -# Browser Support - -Confidential Sapphire dApps work in web browsers by wrapping the -Ethereum provider such as Metamask to enable signing and encrypting -calls and transactions. - -Let's begin with the [Hardhat boilerplate]. As mentioned on their website -the boilerplate provides the following: - -- The Solidity contract implementing an ERC-20 token -- Tests for the entire functionality of the contract -- A minimal React front-end to interact with the contract using ethers.js - -Go ahead and clone the original [Hardhat boilerplate repo]. Move to the checked -out folder and **apply the Sapphire-specific changes** to `hardhat.config.js` -as [described in the quickstart][quickstart]. - -Next, install dependencies. The boilerplate project uses -[pnpm], but `yarn` and `npm` will also work with some modifications -around workspaces: - -```shell npm2yarn -npm install -npm install -D @oasisprotocol/sapphire-paratime -``` - -Now, you can deploy the contract on the Testnet with the private key of the -account holding some [TEST tokens]: - -```shell -PRIVATE_KEY="0x..." npx hardhat run scripts/deploy.js --network sapphire-testnet -``` - -This will compile the contract and deploy it on the Testnet. In addition -to the quickstart steps, **the contract address and ABI will also automatically -be copied over to the `frontend/src/contracts` folder so that the frontend can -access them!** - -:::warning - -The contract in the Hardhat boilerplate is ERC-20-compatible and emits the -`transfer` event. If your wish to preserve confidentiality, you can comment -out [line 66]. Read [the guide](guide.mdx#contract-logs) to learn more. - -::: - -## Signing Sapphire Calls and Transactions in Browser - -Now, let's explore the frontend of our dApp. Begin by moving into the -`frontend` folder and install dependencies: - -```shell npm2yarn -npm install -npm install -D @oasisprotocol/sapphire-paratime -``` - -The main frontend logic is stored in `frontend/src/components/Dapp.js`. Apply -the following changes: - -```diff title="frontend/src/components/Dapp.js" ---- a/hardhat-boilerplate/frontend/src/components/Dapp.js -+++ b/hardhat-boilerplate/frontend/src/components/Dapp.js -@@ -2,6 +2,7 @@ - - // We'll use ethers to interact with the Ethereum network and our contract - import { ethers } from "ethers"; -+import * as sapphire from '@oasisprotocol/sapphire-paratime'; - - // We import the contract's artifacts and address here, as we are going to be - // using them with ethers -@@ -22,7 +23,7 @@ - // This is the Hardhat Network id that we set in our hardhat.config.js. - // Here's a list of network ids https://docs.metamask.io/guide/ethereum-provider.html#properties - // to use when deploying to other networks. --const HARDHAT_NETWORK_ID = '1337'; -+const HARDHAT_NETWORK_ID = '23295'; // Sapphire Testnet - - // This is an error code that indicates that the user canceled a transaction - const ERROR_CODE_TX_REJECTED_BY_USER = 4001; -@@ -225,14 +226,20 @@ - - async _initializeEthers() { - // We first initialize ethers by creating a provider using window.ethereum -- this._provider = new ethers.providers.Web3Provider(window.ethereum); -+ this._provider = sapphire.wrap(new ethers.providers.Web3Provider(window.ethereum)); - -- // Then, we initialize the contract using that provider and the token's -- // artifact. You can do this same thing with your contracts. -+ // Then, we initialize two contract instances: -+ // - _token: Used for eth_calls (e.g. balanceOf, name, symbol) -+ // - _tokenWrite: Used for on-chain transactions (e.g. transfer) - this._token = new ethers.Contract( - contractAddress.Token, - TokenArtifact.abi, -- this._provider.getSigner(0) -+ this._provider, -+ ); -+ this._tokenWrite = new ethers.Contract( -+ contractAddress.Token, -+ TokenArtifact.abi, -+ sapphire.wrap(new ethers.providers.Web3Provider(window.ethereum).getSigner()) - ); - } - -@@ -294,7 +301,7 @@ - - // We send the transaction, and save its hash in the Dapp's state. This - // way we can indicate that we are waiting for it to be mined. -- const tx = await this._token.transfer(to, amount); -+ const tx = await this._tokenWrite.transfer(to, amount); - this.setState({ txBeingSent: tx.hash }); - - // We use .wait() to wait for the transaction to be mined. This method -@@ -360,8 +367,8 @@ - return true; - } - -- this.setState({ -- networkError: 'Please connect Metamask to Localhost:8545' -+ this.setState({ -+ networkError: 'Please connect to Sapphire ParaTime Testnet' - }); - - return false; -``` - -Beside the obvious change to the chain ID and wrapping ethers.js objects with the -Sapphire wrapper you can notice that we initialized **two** contract -instances: - -- `this._token` object will be used for unsigned eth calls. This is the - Hardhat method of [setting `from` transaction field to all zeros] - [guide-transaction-calls] in order to avoid Metamask signature popups. - Although the call is unsigned, **it is still encrypted** with the - corresponding runtime key to preserve confidentiality. -- `this._tokenWrite` object will be used for signed calls and transactions. The - user will be prompted by Metamask for the signature. Both — calls and - transactions — will be encrypted. - -## Trying it - -Start the frontend by typing: - -```shell npm2yarn -npm run start -``` - -If all goes well the web server will spin up and your browser should -automatically open `http://localhost:3000`. - -![Hardhat boilerplate frontend](../images/sapphire/hardhat-boilerplate-frontend1.png) - -Go ahead and connect the wallet. If you haven't done it yet, you will have -to add the [Sapphire ParaTime Testnet network to your Metamask] -[sapphire-testnet]. Once connected, the frontend will make an unsigned call to -the `balanceOf` view and show you the amount of `MHT`s in your selected -Metamask account. - -![MHT balance of your account](../images/sapphire/hardhat-boilerplate-frontend2.png) - -Next, let's transfer some `MHT`s. Fill in the amount, the address and hit the -*Transfer* button. Metamask will show you the popup to sign and submit the -transfer transaction. Once confirmed, Metamask will both **sign and encrypt** the transaction. - -![Sign and encrypt the transfer transaction](../images/sapphire/hardhat-boilerplate-frontend3.png) - -Once the transaction is processed, you will get a notification from Metamask -and the balance in the dApp will be updated. - -:::tip - -If you commented out `emit Transfer(...)`, the transfer of `MHT`s would have -been completely confidential. In the example above, the [following transaction] -[block explorer] was generated. Go ahead and check your transaction on the -block explorer too, to make sure no sensitive data was leaked! - -::: - -Congratulations, you successfully implemented your first truly confidential -dApp which runs in the browser and wraps Metamask to both sign and encrypt the -transactions! - -Should you have any questions or ideas to share, feel free to reach out to us -on [discord and other social media channels][social-media]. - -:::info Example - -You can download a full working example from the [Sapphire ParaTime examples] -repository. - -::: - -[block explorer]: https://testnet.explorer.sapphire.oasis.dev/tx/0x3303dea5d48291d1564cad573f21fc71fcbdc2b862e17e056287fd9207e3bc53 -[guide-transaction-calls]: guide.mdx#transactions--calls -[Hardhat boilerplate repo]: https://github.com/NomicFoundation/hardhat-boilerplate -[Hardhat boilerplate]: https://hardhat.org/tutorial/boilerplate-project -[Hardhat tutorial]: https://hardhat.org/tutorial -[line 66]: https://github.com/NomicFoundation/hardhat-boilerplate/blob/13bd712c1285b2de572f14d20e6a750ae08565c0/contracts/Token.sol#L66 -[quickstart]: quickstart.mdx#add-the-sapphire-testnet-to-hardhat -[sapphire-testnet]: ./README.mdx#testnet -[Sapphire ParaTime examples]: https://github.com/oasisprotocol/sapphire-paratime/tree/main/examples/hardhat-boilerplate -[social-media]: ../../get-involved/README.md#social-media-channels -[pnpm]: https://pnpm.io -[TEST tokens]: quickstart.mdx#get-some-sapphire-testnet-tokens diff --git a/docs/dapp/sapphire/browser.md b/docs/dapp/sapphire/browser.md new file mode 120000 index 0000000000..1b1dfca35c --- /dev/null +++ b/docs/dapp/sapphire/browser.md @@ -0,0 +1 @@ +../../../external/sapphire-paratime/docs/browser.md \ No newline at end of file diff --git a/docs/dapp/sapphire/gasless.md b/docs/dapp/sapphire/gasless.md deleted file mode 100644 index 775690d504..0000000000 --- a/docs/dapp/sapphire/gasless.md +++ /dev/null @@ -1,388 +0,0 @@ ---- -description: Submitting transactions without paying for fees ---- - -# Gasless Transactions - -When you submit a transaction to a blockchain, you need to pay certain fee -(called *gas* in Ethereum jargon). Since only the transactions with the highest -fee will be included in the block, this mechanism effectively prevents denial -of service attacks on the network. On the other hand, paying for gas requires -from the user that they have certain amount of blockchain-native tokens -available in their wallet which may not be feasible. - -In this chapter we will learn how the user signs and sends their transaction to -a *relayer*. The relayer then wraps the original signed transaction into a new -*meta-transaction* (see [ERC-2771] for details), signs it and pays for the -necessary transaction fees. When the transaction is submitted the on-chain -recipient contract decodes the meta-transaction, verifies both signatures and -executes the original transaction. - -Oasis Sapphire supports two transaction relaying methods: The **on-chain -signer** exposes the Oasis-specific contract state encryption functionality -while the **gas station network** method is a standardized approach known in -other blockchains as well. - -:::caution - -The gas station network implementation on Sapphire is still in early beta. Some -features such as the browser support are not fully implemented yet. - -::: - -[ERC-2771]: https://eips.ethereum.org/EIPS/eip-2771 - -## On-Chain Signer - -The on-chain signer is a smart contract which receives the user's transaction, -checks whether the transaction is valid, wraps it into a meta-transaction -(which includes paying for the transaction fee) and returns it back to the user -in [EIP-155] format. These steps are executed as a confidential call. Finally, -the user submits the generated transaction to the network. - -![Diagram of the On-Chain Signing](../images/sapphire/gasless-on-chain-signer.svg) - -### EIP155Signer - -To sign a transaction, the Sapphire's `EIP155Signer` library bundled along the -`@oasisprotocol/sapphire-contract` package comes with the following helper which -returns a raw, RLP-encoded, signed transaction ready to be broadcast: - -```solidity -function sign(address publicAddress, bytes32 secretKey, EthTx memory transaction) internal view returns (bytes memory); -``` - -`publicAddress` and `secretKey` are the signer's address and their private key -used to sign a meta-transaction (and pay for the fees). We will store these -sensitive data inside the encrypted smart contract state together with the -signer's `nonce` field in the following struct: - -```solidity -struct EthereumKeypair { - address addr; - bytes32 secret; - uint64 nonce; -} -``` - -The last `transaction` parameter in the `sign()` function is the transaction -encoded in a format based on [EIP-155]. This can either be the original user's -transaction or a meta-transaction. - -### Gasless Proxy Contract - -The following snippet is a complete *Gasless* contract for wrapping the user's -transactions (`makeProxyTx()`) and executing them (`proxy()`). The signer's -private key containing enough balance to cover transaction fees should be -provided in the constructor. - -```solidity -import {EIP155Signer} from "@oasisprotocol/sapphire-contracts/contracts/EIP155Signer.sol"; - -struct EthereumKeypair { - address addr; - bytes32 secret; - uint64 nonce; -} - -struct EthTx { - uint64 nonce; - uint256 gasPrice; - uint64 gasLimit; - address to; - uint256 value; - bytes data; - uint256 chainId; -} - -// Proxy for gasless transaction. -contract Gasless { - EthereumKeypair private kp; - - function setKeypair(EthereumKeypair memory keypair) external payable { - kp = keypair; - } - - function makeProxyTx(address innercallAddr, bytes memory innercall) - external - view - returns (bytes memory output) - { - bytes memory data = abi.encode(innercallAddr, innercall); - - // Call will invoke proxy(). - return - EIP155Signer.sign( - kp.addr, - kp.secret, - EIP155Signer.EthTx({ - nonce: kp.nonce, - gasPrice: 100_000_000_000, - gasLimit: 250000, - to: address(this), - value: 0, - data: abi.encodeCall(this.proxy, data), - chainId: block.chainid - }) - ); - } - - function proxy(bytes memory data) external payable { - (address addr, bytes memory subcallData) = abi.decode( - data, - (address, bytes) - ); - (bool success, bytes memory outData) = addr.call{value: msg.value}( - subcallData - ); - if (!success) { - // Add inner-transaction meaningful data in case of error. - assembly { - revert(add(outData, 32), mload(outData)) - } - } - kp.nonce += 1; - } -} -``` - -:::tip - -The snippet above only runs on Sapphire Mainnet, Testnet or Localnet. -`EIP155Signer.sign()` is not supported on other EVM chains. - -::: - -### Simple Gasless Commenting dApp - -Let's see how we can implement on-chain signer for a gasless commenting dApp -like this: - -```solidity -contract CommentBox { - string[] public comments; - - function comment(string memory commentText) external { - comments.push(commentText); - } -} -``` - -Then, the TypeScript code on a client side for submitting a comment in a gasless -fashion would look like this: - -```typescript -const CommentBox = await ethers.getContractFactory("CommentBox"); -const commentBox = await CommentBox.deploy(); -const Gasless = await ethers.getContractFactory("Gasless"); -const gasless = await Gasless.deploy(); - -// Set the keypair used to sign the meta-transaction. -await gasless.setKeypair({ - addr: "70997970C51812dc3A010C7d01b50e0d17dc79C8", - secret: Uint8Array.from(Buffer.from("59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d", 'hex')), - nonce: 0, -}); - -const innercall = commentBox.interface.encodeFunctionData('comment', ['Hello, free world!']); -const tx = await gasless.makeProxyTx(commentBox.address, innercall); - -const plainProvider = new ethers.providers.JsonRpcProvider(ethers.provider.connection); -const plainResp = await plainProvider.sendTransaction(tx); - -const receipt = await ethers.provider.waitForTransaction(plainResp.hash); -if (!receipt || receipt.status != 1) throw new Error('tx failed'); -``` - -:::info Example - -You can download a complete on-chain signer example based on the above snippets -from the [Sapphire ParaTime examples] repository. - -::: - -[Sapphire ParaTime examples]: - https://github.com/oasisprotocol/sapphire-paratime/tree/main/examples/onchain-signer - -### Gasless Proxy in Production - -The snippets above have shown how the on-chain signer can generate and sign a -meta-transaction for arbitrary transaction. In production environment however, -you must consider the following: - -#### Confidentiality - -Both the inner- and the meta-transaction are stored on-chain unencrypted. Use -`Sapphire.encrypt()` and `Sapphire.decrypt()` call on the inner-transaction with -an encryption key generated and stored inside a confidential contract state. - -#### Gas Cost and Gas Limit - -The gas cost and the gas limit in our snippet were hardcoded inside the -contract. Ideally the gas cost should be dynamically adjusted by an oracle and -the gas limit determined based on the type of transactions. **Never let gas cost -and limit to be freely defined by the user, since they can drain your relayer's -account.** - -#### Allowed Transactions - -Your relayer will probably be used for transactions of a specific contract only. -One approach is to store the allowed address of the target contract and **only -allow calls to this contract address**. - -#### Access Control - -You can either whitelist specific addresses of the users in the relayer contract -or implement the access control in the target contract. In the latter case, the -relayer's `makeProxyTx()` should simulate the execution of the inner-transaction -and generate the meta-transaction only if it inner-transaction succeeded. - -#### Multiple Signers - -Only one transaction per block can be relayed by the same signer since the order -of the transactions is not deterministic and nonces could mismatch. To overcome -this, relayer can randomly pick a signer from the **pool of signers**. When the -transaction is relayed, don't forget to reimburse the signer of the transaction! - -:::info Example - -All the above points are considered in the [Demo Voting dApp][demo-voting]. -You can explore the code and also try out a deployed gasless version of the -voting dApp on the [Oasis Playground site][demo-voting-playground]. The access -control list is configured so that anyone can vote on any poll and only poll -creators can close the poll. - -::: - -[demo-voting]: https://github.com/oasisprotocol/demo-voting -[demo-voting-playground]: https://playground.oasis.io/demo-voting -[dao-opl]: ../opl/host.md -[EIP-155]: https://github.com/ethereum/EIPs/blob/master/EIPS/eip-155.md - -## Gas Station Network - -[Gas Station Network](https://docs.opengsn.org) (GSN) was adapted to work with -Sapphire in a forked `@oasislabs/opengsn-cli` package. The diagram below -illustrates a flow for signing a transaction by using a GSN[^1]. - -![Diagram of the Gas Station Network Flow](../images/sapphire/gasless-gsn-flow.jpg) - -[^1]: The GSN flow diagram is courtesy of [OpenGSN documentation][opengsn-docs]. - -[opengsn-docs]: https://github.com/opengsn/docs - -### Package Install - -Starting with an empty folder, let us install the -[Oasis fork of the GSN command line tool](https://github.com/oasislabs/gsn) by -using the following commands: - -```shell npm2yarn -npm init -npm install -D @oasislabs/opengsn-cli -``` - -Next, we will export our hex-encoded private key (**without** the leading `0x`) -for deploying the gas station network as an environment variable: - -```shell -export PRIVATE_KEY=... -``` - -### Deploy GSN - -Deploy GSN relaying contracts along with the test paymaster using a -test token. Use the address of your account as `--burnAddress` and -`--devAddress` parameters: - -```shell -npx gsn deploy --network sapphire-testnet --burnAddress 0xfA3AC9f65C9D75EE3978ab76c6a1105f03156204 --devAddress 0xfA3AC9f65C9D75EE3978ab76c6a1105f03156204 --testToken true --testPaymaster true --yes --privateKeyHex $PRIVATE_KEY -``` - -After the command finishes successfully, you should find the addreses of -deployed contracts at the end: - -``` - Deployed TestRecipient at address 0x594cd6354b23A5200a57355072E2A5B15354ee21 - - RelayHub: 0xc4423AB6133B06e4e60D594Ac49abE53374124b3 - RelayRegistrar: 0x196036FBeC1dA841C60145Ce12b0c66078e141E6 - StakeManager: 0x6763c3fede9EBBCFbE4FEe6a4DE6C326ECCdacFc - Penalizer: 0xA58A0D302e470490c064EEd5f752Df4095d3A002 - Forwarder: 0x59001d07a1Cd4836D22868fcc0dAf3732E93be81 - TestToken (test only): 0x6Ed21672c0c26Daa32943F7b1cA1f1d0ABdbac66 - Paymaster (Default): 0x8C06261f58a024C958d42df89be7195c8690008d -``` - - -### Start GSN Relay Server - -Now we are ready to start our own relay server by using the following command. -Use the newly deployed: - -- `RelayHub` address for `--relayHubAddress`, -- `TestToken` address for `--managerStakeTokenAddress`, -- address of your account for `--owner-address` - -```shell -npx gsn relayer-run --relayHubAddress 0xc4423AB6133B06e4e60D594Ac49abE53374124b3 --managerStakeTokenAddress 0x6Ed21672c0c26Daa32943F7b1cA1f1d0ABdbac66 --ownerAddress '0xfA3AC9f65C9D75EE3978ab76c6a1105f03156204' --ethereumNodeUrl 'https://testnet.sapphire.oasis.dev' --workdir . -``` - -### Fund and Register GSN Relay Server - -The first thing is to fund your relay server so that it has enough native -tokens to pay for others' transactions. Let's fund the paymaster with -**5 tokens**. Use the `RelayHub` and `Paymaster` addresses for `--hub` -and `--paymaster` values: - -```shell -npx gsn paymaster-fund --network sapphire-testnet --hub 0xc4423AB6133B06e4e60D594Ac49abE53374124b3 --paymaster 0x8C06261f58a024C958d42df89be7195c8690008d --privateKeyHex $PRIVATE_KEY --amount 5000000000000000000 -``` - -You can check the balance of the paymaster by running: - -```shell -npx gsn paymaster-balance --network sapphire-testnet --hub 0xc4423AB6133B06e4e60D594Ac49abE53374124b3 --paymaster 0x8C06261f58a024C958d42df89be7195c8690008d -``` - -Next, we need to register the relay server with the your desired `relayUrl` by -staking the `token` the relayHub requires. - -```shell -npx gsn relayer-register --network sapphire-testnet --relayUrl 'http://localhost:8090' --token 0x6Ed21672c0c26Daa32943F7b1cA1f1d0ABdbac66 --wrap true --privateKeyHex $PRIVATE_KEY -``` - -After this step, your relay server should be ready to take incoming relay -requests and forward them to the relay hub on Sapphire Testnet. - -### Send Testing Relayed Requests: - -We can test whether a relayed request can be forwarded and processed correctly. -Scroll up to find the GSN deployment response and use the following parameters: -- `Forwarder` as `--to`, -- `Paymaster` as `--paymaster`, -- your account address as `--from` - -Parameters matching our deployment would be: - -```shell -npx gsn send-request --network sapphire-testnet --abiFile 'node_modules/@oasislabs/opengsn-cli/dist/compiled/TestRecipient.json' --method emitMessage --methodParams 'hello world!' --to 0x594cd6354b23A5200a57355072E2A5B15354ee21 --paymaster 0x8C06261f58a024C958d42df89be7195c8690008d --privateKeyHex $PRIVATE_KEY --from 0xfA3AC9f65C9D75EE3978ab76c6a1105f03156204 --gasLimit 150000 --gasPrice 100 -``` - -:::info - -More detailed explanations of these GSN commands and parameters can be found on -the [upstream OpenGSN website](https://docs.opengsn.org/javascript-client/gsn-helpers.html). - -::: - -### Writing a GSN-enabled Smart Contract - -First, install the OpenGSN contracts package: - -```shell npm2yarn -npm install -D @opengsn/contracts@3.0.0-beta.2 -``` - -Then follow the remainder of the steps from the -[upstream OpenGSN docs](https://docs.opengsn.org/contracts/#receiving-a-relayed-call). diff --git a/docs/dapp/sapphire/gasless.md b/docs/dapp/sapphire/gasless.md new file mode 120000 index 0000000000..1ae10d0a76 --- /dev/null +++ b/docs/dapp/sapphire/gasless.md @@ -0,0 +1 @@ +../../../external/sapphire-paratime/docs/gasless.md \ No newline at end of file diff --git a/docs/dapp/sapphire/guide.mdx b/docs/dapp/sapphire/guide.mdx deleted file mode 100644 index b7689b5aae..0000000000 --- a/docs/dapp/sapphire/guide.mdx +++ /dev/null @@ -1,390 +0,0 @@ ---- -description: Guide to creating secure dApps on Sapphire ---- - -import DocCard from '@theme/DocCard'; -import {findSidebarItem} from '@site/src/sidebarUtils'; - -# Guide - -This page mainly describes the differences between Sapphire and Ethereum -since there are a number of excellent tutorials on developing for Ethereum. -If you don't know where to begin, the [Hardhat tutorial], [Solidity docs], and -[Emerald dApp tutorial] are great places to start. You can continue following -this guide once you've set up your development environment and have deployed -your contract to a non-confidential EVM network (e.g., Ropsten, Emerald). - - -[Hardhat tutorial]: https://hardhat.org/tutorial -[Solidity docs]: https://docs.soliditylang.org/en/v0.8.15/solidity-by-example.html -[Emerald dApp tutorial]: ../emerald/writing-dapps-on-emerald.mdx - -## Oasis Consensus Layer and Sapphire ParaTime - -The Oasis Network consists of the consensus layer and a number of ParaTimes. -ParaTimes are independent replicated state machines that settle transactions -using the consensus layer (to learn more, check the [Oasis Network Overview] -[overview chapter]). Sapphire is a ParaTime which implements the Ethereum -Virtual Machine (EVM). - -The minimum and also expected block time in Sapphire is **6 seconds**. Any -Sapphire transaction will require at least this amount of time to be executed, -and probably no more. - -ParaTimes, Sapphire included, are not allowed to directly access your tokens stored -in consensus layer accounts. You will need to _deposit_ tokens from your consensus -account to Sapphire. Consult the [How to transfer ROSE into an EVM ParaTime] -[how-to-deposit-rose] chapter to learn more. - - -[overview chapter]: ../../general/oasis-network/README.mdx -[how-to-deposit-rose]: ../../general/manage-tokens/how-to-transfer-rose-into-paratime.mdx -[Testnet faucet]: https://faucet.testnet.oasis.dev/ - -## Testnet and Mainnet - -Sapphire is deployed on both Testnet and Mainnet. The Testnet should be -considered unstable software and may have its state wiped at any time. As -the name implies, only use the Testnet for testing unless you're testing how -angry your users get when state is wiped. - -:::danger Never deploy production services on Testnet - -Because Testnet state can be wiped in the future, you should **never** deploy a -production service on the Testnet! Just don't do it! - -Also note that while the Testnet does use actual TEEs, due to experimental -software and different security parameters, **confidentiality of Sapphire on the -Testnet is not guaranteed** -- all transactions and state published on the -Sapphire Testnet should be considered public. - -::: - -:::tip - -For testing purposes, visit our [Testnet faucet] to obtain some TEST which you -can then use on the Sapphire Testnet to pay for gas fees. The faucet supports -sending TEST both to your consensus layer address or to your address inside the -ParaTime. - -::: - -[network-parameters]: ../../node/mainnet/README.md -[Testnet]: ../../node/testnet/README.md - -## Sapphire vs Ethereum - -Sapphire is generally compatible with Ethereum, the EVM, and all of the -user and developer tooling that you already use. There are a few breaking changes, -but we think that you'll like them: - -* Contract state is only visible to the contract that wrote it. With respect - to the contract API, it's as if all state variables are declared as `private`, but - with the further restriction that not even full nodes can read the values. Public or - access-controlled values are provided instead through explicit getters. -* Transactions and calls are end-to-end encrypted into the contract. Only the caller - and the contract can see the data sent to/received from the ParaTime. This ends up - defeating most of the utility of block explorers, however. -* The `from` address using of calls is derived from a signature attached to the call. - Unsigned calls have their sender set to the zero address. This allows contract authors - to write getters that release secrets to authenticated callers, but without - requiring a transaction to be posted on-chain. - -In addition to confidentiality, you get a few extra benefits including the ability to generate private -entropy, and make signatures on-chain. An example of a dApp that uses both is a HSM contract -that generates an Ethereum wallet and signs transactions sent to it via transactions. - -Otherwise Sapphire is like Emerald, which is like a fast, cheap Ethereum. - -## Integrating Sapphire - -Once ROSE tokens are [deposited into Sapphire], it should be painless for users to begin -using dApps. To achieve this ideal user experience, we have to modify the dApp a little, -but it's made simple by our compatibility library, [@oasisprotocol/sapphire-paratime]. - -There are compatibility layers in other languages, which may be found in [the repo]. - - -[deposited into Sapphire]: ../../general/manage-tokens/how-to-transfer-rose-into-paratime.mdx -[@oasisprotocol/sapphire-paratime]: https://www.npmjs.com/package/@oasisprotocol/sapphire-paratime -[the repo]: https://github.com/oasisprotocol/sapphire-paratime/tree/main/clients - -## Writing Secure dApps - -### Wallets - -Sapphire is compatible with popular self-custodial wallets including MetaMask, -Ledger, Brave, and so forth. You can also use libraries like Web3.js and Ethers -to create programmatic wallets. In general, if it generates secp256k1 signatures, -it'll work just fine. - -### Languages & Frameworks - -Sapphire is programmable using any language that targets the EVM, such as Solidity -or Vyper. If you prefer to use an Ethereum framework like Hardhat or Foundry, you -can also use those with Sapphire; all you need to do is set your Web3 gateway URL. -You can find the details of the Oasis Sapphire Web3 gateway -[here](/dapp/sapphire#web3-gateway). - -### Transactions & Calls - -![Client, Key Manager, Compute Node diagram](../../general/images/architecture/client-km-compute.svg) - -The figure above illustrates the flow of a confidential smart contract -*transaction* executed on the Sapphire ParaTime. - -Transactions and calls must be encrypted and signed for maximum security. -You can use the [@oasisprotocol/sapphire-paratime] JS package to make your life -easy. It'll handle cryptography and signing for you. - -You should be aware that taking actions based on the value of private data may -leak the private data through side channels like time spent and gas use. If you -need to branch on private data, you should in most cases ensure that both -branches exhibit similar time/gas and storage patterns. - -You can also make confidential smart contract *calls* on Sapphire. If you -use `msg.sender` for access control in your contract, the call **must be -signed**, otherwise `msg.sender` will be zeroed. On the other hand, set the -`from` address to all zeros, if you want to avoid annoying signature popups in -the user's wallet for calls that do not need to be signed. The JS library will -do this for you. - -:::note - -Inside the smart contract code, there is no way of knowing whether the -client's call data were originally encrypted or not. - -::: - -

- Detailed confidential smart contract transaction flow on Sapphire -
- -
-
- -
- Detailed confidential smart contract call flow on Sapphire -
- -
-
- -### Contract State - -The Sapphire state model is like Ethereum's except for all state being encrypted -and not accessible to anyone except the contract. The contract, executing in an -active (attested) Oasis compute node is the only entity that can request its -state encryption key from the Oasis key manager. Both the keys and values of the -items stored in state are encrypted, but the size of either is *not* hidden. You -app may need to pad state items to a constant length, or use other obfuscation. -Observers may also be able to infer computation based on storage access patterns, -so you may need to obfuscate that, too. See [Security chapter] for more -recommendations. - -[Security chapter]: ./security.md#storage-access-patterns - -:::danger Contract state leaks a fine-grained access pattern - -Contract state is backed by an encrypted key-value store. However, the trace of -encrypted records is leaked to the compute node. As a concrete example, an ERC-20 -token transfer would leak which encrypted record is for the sender's account -balance and which is for the receiver's account balance. Such a token would be -traceable from sender address to receiver address. Obfuscating the storage access -patterns may be done by using an ORAM implementation. - -::: - -Contract state may be made available to third parties through logs/events, or -explicit getters. - -### Contract Logs - -Contract logs/events (e.g., those emitted by the Solidity `emit` keyword) -are exactly like Ethereum. Data contained in events is *not* encrypted. -Precompiled contracts are available to help you encrypt data that you can -then pack into an event, however. - -:::danger Unmodified contracts may leak state through logs - -Base contracts like those provided by OpenZeppelin often emit logs containing -private information. If you don't know they're doing that, you might undermine -the confidentiality of your state. As a concrete example, the ERC-20 spec -requires implementers to emit an `event Transfer(from, to, amount)`, which is -obviously problematic if you're writing a confidential token. What you can -do instead is fork that contract and remove the offending emissions. - -::: - -## Contract Verification - -[Sourcify] is the preferred service for the [verification of smart -contracts][ethereum-contract-verify] deployed on Sapphire. Make sure you have -the **address of each deployed contract** available (your deployment scripts -should report those) and the **contracts JSON metadata file** generated when -compiling contracts (Hardhat stores it inside the `artifacts/build-info` folder -and names it as a 32-digit hex number). If your project contains multiple -contracts, you will need to verify each contract separately. - -:::danger Contract deployment encryption - -**Do not deploy your contract with an encrypted contract deployment transaction, -if you want to verify it.** For example, if your `hardhat.config.ts` -or deployment script contains `import '@oasisprotocol/sapphire-hardhat'` or -`import '@oasisprotocol/sapphire-paratime'` lines at the beginning, you should -comment those out for the deployment. - -Verification services will try to match the contract deployment transaction code -with the one in the provided contract's metadata and since the transaction was -encrypted with an ephemeral ParaTime key, the verification service will not be -able to decrypt it. Some services may extract the contract's bytecode from the -chain directly by calling `eth_getCode` RPC, but this will not work correctly -for contracts with immutable variables. - -::: - -To verify a contract deployed on Sapphire Mainnet or Testnet: - -1. Visit the [Sourcify] website and hit the "VERIFY CONTRACT" button. - - ![Sourcify website](../images/sapphire/sourcify1.png) - -2. Upload the contracts JSON metadata file. - - ![Sourcify: Upload metadata JSON file](../images/sapphire/sourcify2.png) - - :::tip Store your metadata files - - For production deployments, it is generally a good idea to **archive your - contract metadata JSON file** since it is not only useful for the - verification, but contains a copy of all the source files, produced bytecode, - an ABI, compiler and other relevant contract-related settings that may be - useful in the future. Sourcify will store the metadata file for you and will - even make it available via IPFS, but it is still a good idea to store it - yourself. - - ::: - -3. Sourcify will decode the metadata and prepare a list of included contracts on - the right. Enter the address of the specific contract and select the "Oasis - Sapphire" or "Oasis Sapphire Testnet" chain for the Mainnet or Testnet - accordingly. If your contract assigns any immutable variables in the - constructor, you will also need to correctly fill those out under the "More - Inputs (optional)" panel. Finally, click on the "Verify" button. - - ![Sourcify: Verify contract](../images/sapphire/sourcify3.png) - -4. If everything goes well, you will get a ** *Perfect match* notice and your - contract is now verified**. Congratulations! - -In case of a *Partial match*, the contracts metadata JSON differs from the one -used for deployment although the compiled contract bytecode matched. Make sure -the source code `.sol` file of the contract is the same as the one used during the -deployment (including the comments, variable names and source code file -names) and use the same version of Hardhat and solc compiler. - -You can also explore other verification methods on Sourcify by reading the -[official Sourcify contract verification instructions][sourcify-contract-verify]. - -[Sourcify]: https://sourcify.dev/ -[hardhat-example]: https://github.com/oasisprotocol/sapphire-paratime/tree/main/examples/hardhat -[sourcify-contract-verify]: https://docs.sourcify.dev/docs/how-to-verify/ -[ethereum-contract-verify]: https://ethereum.org/en/developers/docs/smart-contracts/verifying/ - -## Running a Private Oasis Network Locally - -For convenient development and testing of your dApps the Oasis team prepared -the [ghcr.io/oasisprotocol/sapphire-dev][sapphire-dev] Docker image which brings you a -complete Oasis stack to your desktop. The Localnet Sapphire instance **mimics -confidential transactions**, but it does not run in a trusted execution -environment nor does it require Intel's SGX on your computer. The network is -isolated from the Mainnet or Testnet and consists of: - -- single Oasis validator node with 1-second block time and 30-second epoch, -- single Oasis client node, -- three compute nodes running Oasis Sapphire, -- single key manager node, -- PostgreSQL instance, -- Oasis Web3 gateway with transaction indexer and enabled Oasis RPCs, -- helper script which populates initial test accounts for you. - -To run the image, execute: - -```sh -docker run -it -p8545:8545 -p8546:8546 ghcr.io/oasisprotocol/sapphire-dev -``` - -After a while, the tool will show you something like this: - -``` -sapphire-dev 2023-02-28-git84730b2 (oasis-core: 22.2.6, sapphire-paratime: 0.4.0, oasis-web3-gateway: 3.2.0-git84730b2) - -Starting oasis-net-runner with sapphire... -Starting postgresql... -Starting oasis-web3-gateway... -Bootstrapping network and populating account(s) (this might take a minute)... - -Available Accounts -================== -(0) 0x75eCF0d4496C2f10e4e9aF3D4d174576Ee9010E2 (100 ROSE) -(1) 0x903a7dce5a26a3f4DE2d157606c2191740Bc4BC9 (100 ROSE) -(2) 0xF149ad5CBFfD92ba84F5784106f6Cb071A32a1b8 (100 ROSE) -(3) 0x2315F40C1122400Df55483743B051D2997ef0a62 (100 ROSE) -(4) 0xf6FdcacbA93A428A07d27dacEf1fBF25E2C65B0F (100 ROSE) - -Private Keys -================== -(0) 0x160f52faa5c0aecfa26c793424a04d53cbf23dcad5901ce15b50c2e85b9d6ca7 -(1) 0x0ba685723b47d8e744b1b70a9bea9d4d968f60205385ae9de99865174c1af110 -(2) 0xfa990cf0c22af455d2734c879a2a844ff99bd779b400bb0e2919758d1be284b5 -(3) 0x3bf225ef73b1b56b03ceec8bb4dfb4830b662b073b312beb7e7fec3159b1bb4f -(4) 0xad0dd7ceb896fd5f5ddc76d56e54ee6d5c2a3ffeac7714d3ef544d3d6262512c - -HD Wallet -================== -Mnemonic: bench remain brave curve frozen verify dream margin alarm world repair innocent -Base HD Path: m/44'/60'/0'/0/%d - -WARNING: The chain is running in ephemeral mode. State will be lost after restart! - -Listening on http://localhost:8545 and ws://localhost:8546 -``` - -Those familiar with local dApp environments will find the output above similar -to `geth --dev` or `ganache-cli` commands or the `geth-dev-assistant` npm -package. [sapphire-dev] will spin up a private Oasis Network locally, generate -and populate test accounts and make the following Web3 endpoints available for -you to use: -- `http://localhost:8545` -- `ws://localhost:8546` - -:::tip - -If you prefer using the same mnemonics each time (e.g. for testing purposes) -or to populate just a single wallet, use `-to` flag and pass the mnemonics or -the wallet addresses. For example - -```sh -docker run -it -p8545:8545 -p8546:8546 ghcr.io/oasisprotocol/sapphire-dev -to "bench remain brave curve frozen verify dream margin alarm world repair innocent" -docker run -it -p8545:8545 -p8546:8546 ghcr.io/oasisprotocol/sapphire-dev -to "0x75eCF0d4496C2f10e4e9aF3D4d174576Ee9010E2,0xbDA5747bFD65F08deb54cb465eB87D40e51B197E" -``` - -::: - -:::danger - -[sapphire-dev] runs in ephemeral mode. Any smart contract and wallet balance -will be lost after you quit the Docker container! - -::: - -[sapphire-dev]: https://github.com/oasisprotocol/oasis-web3-gateway/pkgs/container/sapphire-dev - -## See also - - - diff --git a/docs/dapp/sapphire/guide.mdx b/docs/dapp/sapphire/guide.mdx new file mode 120000 index 0000000000..872eeaa164 --- /dev/null +++ b/docs/dapp/sapphire/guide.mdx @@ -0,0 +1 @@ +../../../external/sapphire-paratime/docs/guide.mdx \ No newline at end of file diff --git a/docs/dapp/sapphire/images b/docs/dapp/sapphire/images new file mode 120000 index 0000000000..dbac58ba8e --- /dev/null +++ b/docs/dapp/sapphire/images @@ -0,0 +1 @@ +../../../external/sapphire-paratime/docs/images \ No newline at end of file diff --git a/docs/dapp/sapphire/precompiles.md b/docs/dapp/sapphire/precompiles.md deleted file mode 100644 index 1c09d2c27a..0000000000 --- a/docs/dapp/sapphire/precompiles.md +++ /dev/null @@ -1,317 +0,0 @@ ---- -description: Additional Sapphire precompiles for encryption and confidentiality ---- - -# Precompiles - -In addition to the standard EVM precompiles, Sapphire provides a number -of further cryptography-related ones to make some operations easier and -cheaper to perform: x25519 key derivation, Deoxys-II-based encryption -and decryption, signing key generation, message digest signing and -verification. - -These can be called in the same way as other precompiles by dispatching -calls to specific well-known contract addresses, as described below. - -Input parameters should be packed into a contiguous memory region with -each chunk of data padded to 32 bytes as usual. The recommended way to -construct parameter byte sequences in Solidity is with `abi.encode` and -`abi.decode`, which will transparently handle things like putting -`bytes` lengths in the correct position. - -## Library - -While it is possible to call the precompiles directly using Yul or, for -example, `abi.encode` and `abi.decode` in Solidity, we recommend always -using the `contracts/Sapphire.sol` wrapper library for a more comfortable -experience. The examples below are written against it. The library is provided -by the `@oasisprotocol/sapphire-contracts` npm package. - -```shell npm2yarn -npm install -D @oasisprotocol/sapphire-contracts -``` - -Then, you can use the wrapper library inside your `.sol` contract file as -follows: - -```solidity -pragma solidity ^0.8.13; - -import "@oasisprotocol/sapphire-contracts/contracts/Sapphire.sol"; - -contract Test { - constructor() {} - function test() public view returns (bytes32) { - return Sapphire.deriveSymmetricKey("public key as bytes32", "private key as bytes32"); - } -} -``` - -Feel free to discover other convenient libraries for Solidity inside the -`contracts/` folder of the -[Oasis Sapphire repository](https://github.com/oasisprotocol/sapphire-paratime)! - -## Generating Pseudo-Random Bytes - -* Precompile address: `0x0100000000000000000000000000000000000001` -* Parameters: `uint num_bytes, bytes pers` -* Gas cost: 10,000 minimum plus 240 per output word plus 60 per word of - the personalization string. - -Generate `num_bytes` pseudo-random bytes, with an optional personalization -string (`pers`) added into the hashing algorithm to increase domain separation -when needed. - -```solidity -bytes memory randomPad = Sapphire.randomBytes(64, ""); -``` - -### Implementation Details - -:::danger Prior to 0.6.0 -All view queries and simulated transactions (via `eth_call`) would receive the -same entropy in-between blocks if they use the same `num_bytes` and `pers` parameters. -If your contract requires confidentiality you should generate a secret in the constructor -to be used with view calls: - -```solidity -Sapphire.randomBytes(64, abi.encodePacked(msg.sender, this.perContactSecret)); -``` -::: - -The mode (e.g. simulation or 'view call' vs transaction execution) is fed to TupleHash (among other -block-dependent components) to derive the "key id", which is then used to derive a per-block VRF key -from epoch-ephemeral entropy (using KMAC256 and cSHAKE) so a different "key id" will result in a -unique per-block VRF key. This per-block VRF key is then used to create the per-block root RNG which -is then used to derive domain-separated (using Merlin transcripts) per-transaction random RNGs which -are then exposed via this precompile. The KMAC, cSHAKE and TupleHash algorithms are SHA-3 derived functions -defined in [NIST Special Publication 800-185](https://nvlpubs.nist.gov/nistpubs/specialpublications/nist.sp.800-185.pdf). - -## X25519 Key Derivation - -* Precompile address: `0x0100000000000000000000000000000000000002` -* Parameters: `bytes32 public_key, bytes32 private_key` -* Gas cost: 100,000 - -### Example - -```solidity -bytes32 publicKey = ... ; -bytes32 privateKey = ... ; -bytes32 symmetric = Sapphire.deriveSymmetricKey(publicKey, privateKey); -``` - -## Deoxys-II Encryption - -* Encryption precompile address: `0x0100000000000000000000000000000000000003` -* Decryption precompile address: `0x0100000000000000000000000000000000000004` -* Parameters: `bytes32 key, bytes32 nonce, bytes text_or_ciphertext, bytes additional_data` -* Gas cost: 50,000 minimum plus 100 per word of input - -### Example - -```solidity -bytes32 key = ... ; -bytes32 nonce = ... ; -bytes memory text = "plain text"; -bytes memory ad = "additional data"; -bytes memory encrypted = Sapphire.encrypt(key, nonce, text, ad); -bytes memory decrypted = Sapphire.decrypt(key, nonce, encrypted, ad); -``` - -## Signing Keypairs Generation - -* Precompile address: `0x0100000000000000000000000000000000000005` -* Parameters: `uint method, bytes seed` -* Return value: `bytes public_key, bytes private_key` -* Gas cost: method-dependent base cost, see below - -The available methods are items in the `Sapphire.SigningAlg` enum. Note, -however, that the generation method ignores subvariants, so all three -ed25519-based are equivalent, and all secp256k1 & secp256r1 based methods are -equivalent. `Sr25519` is not available and will return an error. - -### Gas Cost -* Ed25519: 1,000 gas - * `0` (`Ed25519Oasis`) - * `1` (`Ed25519Pure`) - * `2` (`Ed25519PrehashedSha512`) -* Secp256k1: 1,500 gas. - * `3` (`Secp256k1Oasis`) - * `4` (`Secp256k1PrehashedKeccak256`) - * `5` (`Secp256k1PrehashedSha256`) -* Secp256r1: 4,000 gas - * `7` (`Secp256r1PrehashedSha256`) - -### Public Key Format - - * Ed25519: 32 bytes - * Secp256k1 & Secp256r1: 33 bytes, compressed format (0x02 or 0x03 prefix, then 32 byte X coordinate) - -### Example - -Using the Sapphire library: - -```solidity -bytes memory seed = hex"0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"; -bytes memory publicKey; -bytes memory privateKey; -(publicKey, privateKey) = Sapphire.generateSigningKeyPair(Sapphire.SigningAlg.Ed25519Pure, seed); -``` - -## Message Signing - -* Precompile address: `0x0100000000000000000000000000000000000006` -* Parameters: `uint method, bytes private_key, bytes context_or_digest, bytes message` -* Gas cost: see below for the method-dependent base cost, plus 8 gas per 32 bytes of context and message except digest. - -The `context_or_digest` and `messages` parameters change in meaning slightly -depending on the method requested. For methods that take a context in addition -to the message you must pass the context in the `context_or_digest` parameter -and use `message` as expected. For methods that take a pre-existing hash of the -message, pass that in `context_or_digest` and leave `message` empty. -Specifically the `Ed25519Oasis` and `Secp256k1Oasis` variants take both a -context and a message (each are variable length `bytes`), the context serves as -a domain separator. - -### Signing Algorithms - -* `0` (`Ed25519Oasis`) - * 1,500 gas - * variable length context and message -* `1` (`Ed25519Pure`) - * 1,500 gas - * empty context, variable length message -* `2` (`Ed25519PrehashedSha512`) - * 1,500 gas - * pre-existing SHA-512 hash (64 bytes) as context, empty message -* `3` (`Secp256k1Oasis`) - * 3,000 gas - * variable length context and message -* `4` (`Secp256k1PrehashedKeccak256`) - * 3,000 gas - * pre-existing hash (32 bytes) as context, empty message -* `5` (`Secp256k1PrehashedSha256`) - * 3,000 gas - * pre-existing hash (32 bytes) as context, empty message -* `7` (`Secp256r1PrehashedSha256`) - * 9,000 gas - * pre-existing hash (32 bytes) as context, empty message - -### Example - -Using the Sapphire library: - -```solidity -Sapphire.SigningAlg alg = Sapphire.SigningAlg.Ed25519Pure; -bytes memory pk; -bytes memory sk; -(pk, sk) = Sapphire.generateSigningKeyPair(alg, Sapphire.randomBytes(32, "")); -bytes memory signature = Sapphire.sign(alg, sk, "", "signed message"); -``` - -## Signature Verification - -* Precompile address: `0x0100000000000000000000000000000000000007` -* Parameters: `uint method, bytes public_key, bytes context_or_digest, bytes message, bytes signature` - -The `method`, `context_or_digest` and `message` parameters have the same meaning -as described above in the Message Signing section. - -### Gas Cost - -The algorithm-specific base cost below, with an additional 8 gas per 32 bytes of -`context` and `message` for the `Ed25519Oasis`, `Ed25519Pure` and `Secp256k1Oasis` algorithms. - -* Ed25519: 2,000 gas - * `0` (`Ed25519Oasis`) - * `1` (`Ed25519Pure`) - * `2` (`Ed25519PrehashedSha512`) -* Secp256k1: 3,000 gas - * `3` (`Secp256k1Oasis`) - * `4` (`Secp256k1PrehashedKeccak256`) - * `5` (`Secp256k1PrehashedSha256`) -* Secp256r1: 7,900 gas - * `7` (`Secp256r1PrehashedSha256`) - -### Example - -Using the Sapphire library: - -```solidity -Sapphire.SigningAlg alg = Sapphire.SigningAlg.Secp256k1PrehashedKeccak256; -bytes memory pk; -bytes memory sk; -bytes memory digest = abi.encodePacked(keccak256("signed message")); -(pk, sk) = Sapphire.generateSigningKeyPair(alg, Sapphire.randomBytes(32, "")); -bytes memory signature = Sapphire.sign(alg, sk, digest, ""); -require( Sapphire.verify(alg, pk, digest, "", signature) ); -``` - -## SHA-512 - - * Precompile address: `0x0100000000000000000000000000000000000101` - * Parameters: `bytes input_data` - -Hash the input data with SHA-512, according to [NIST.FIPS.180-4] - -:::warning SHA-512 is vulnerable to length-extension attacks - -The SHA-512/256 variant (below) is not vulnerable to [length-extension attacks]. -Length extension attacks are relevant if, among other things, you are computing -the hash of a secret message or computing merkle trees. - -::: - -[length-extension attacks]: https://en.wikipedia.org/wiki/Length_extension_attack - -### Gas Cost - -* 115 gas, then 13 gas per word - -### Example - -```solidity -bytes memory result = sha512(abi.encodePacked("input data")); -``` - - -## SHA-512/256 - - * Precompile address: `0x0100000000000000000000000000000000000102` - * Parameters: `bytes input_data` - -Hash the input data with SHA-512/256, according to [NIST.FIPS.180-4] - -[NIST.FIPS.180-4]: https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf - -### Gas Cost - - * 115 gas, then 13 gas per word - -### Example - -```solidity -bytes32 result = sha512_256(abi.encodePacked("input data")); -``` - - -## Subcall - - * Precompile address: `0x0100000000000000000000000000000000000102` - * Parameters: `string method, bytes cborEncodedParams` - -Subcall performs an Oasis SDK call. This allows Sapphire contracts to interact -with the Consensus layer and other modules supported by the SDK. For more -information about the specific modules and their available calls see the Oasis -SDK [source code]. - -### Gas Cost - -Varies per operation, refer to the oasis-sdk [source code]. - -### Example - -TODO: an example - -[source code]: https://github.com/oasisprotocol/oasis-sdk/tree/main/runtime-sdk/src/modules diff --git a/docs/dapp/sapphire/precompiles.md b/docs/dapp/sapphire/precompiles.md new file mode 120000 index 0000000000..9d4de035b3 --- /dev/null +++ b/docs/dapp/sapphire/precompiles.md @@ -0,0 +1 @@ +../../../external/sapphire-paratime/docs/precompiles.md \ No newline at end of file diff --git a/docs/dapp/sapphire/quickstart.mdx b/docs/dapp/sapphire/quickstart.mdx deleted file mode 100644 index 76dd35f4a2..0000000000 --- a/docs/dapp/sapphire/quickstart.mdx +++ /dev/null @@ -1,207 +0,0 @@ -import DocCard from '@theme/DocCard'; -import {findSidebarItem} from '@site/src/sidebarUtils'; - -# Quickstart - -

- -

- -In this tutorial, you will build and deploy a unique dApp that requires -confidentiality to work. By the end of the tutorial, you should feel -comfortable setting up your Eth development environment to target Sapphire, -and know how and when to use confidentiality. - -The expected completion time of this tutorial is 15 minutes. - -:::info Sunsetting Truffle - -Per Consensys [announcement], Oasis will no longer support Truffle as of -2023-10-05 and encourage immediate [migration] to Hardhat. Please see our -repository for the archived Truffle [tutorial] and the deprecated [example]. - -::: - -[announcement]: https://consensys.io/blog/consensys-announces-the-sunset-of-truffle-and-ganache-and-new-hardhat -[migration]: https://trufflesuite.com/docs/truffle/how-to/migrate-to-hardhat/ -[tutorial]: https://github.com/oasisprotocol/docs/blob/2f4a1a3c217b82687ab9440bf051762ae369ed45/docs/dapp/sapphire/quickstart.mdx -[example]: https://github.com/oasisprotocol/sapphire-paratime/tree/3a85e42e6c1cc090c28a521cf7df6353aa8a30c8/examples/truffle - - -## Create a Sapphire-Native dApp - -Porting an existing Eth app is cool, and will provide benefits such as -protection against MEV. -However, starting from scratch with confidentiality in mind can unlock some -really novel dApps and provide a [higher level of security]. - -One simple-but-useful dApp that takes advantage of confidentiality is a -[dead person's switch] that reveals a secret (let's say the encryption key to a -data trove) if the operator fails to re-up before too long. -Let's make it happen! - -[higher level of security]: guide.mdx#writing-secure-dapps -[dead person's switch]: https://en.wikipedia.org/wiki/Dead_man%27s_switch - -### Init a new Hardhat project - -We're going to use Hardhat, but Sapphire should be compatible with your dev -environment of choice. Let us know if things are not as expected! - -1. Make & enter a new directory -2. `npx hardhat@~2.16.0 init` then create a TypeScript project. -3. Add [`@oasisprotocol/sapphire-hardhat`] as dependency: - - ```shell npm2yarn - npm install -D @oasisprotocol/sapphire-hardhat - ``` - -4. Install `@nomicfoundation/hardhat-toolbox`, TypeScript and other peer - dependencies required by HardHat. - -### Add the Sapphire Testnet to Hardhat - -Open up your `hardhat.config.ts` and drop in these lines. - -```diff -diff --git a/hardhat.config.ts b/hardhat.config.ts -index 414e974..49c95f9 100644 ---- a/hardhat.config.ts -+++ b/hardhat.config.ts -@@ -1,8 +1,19 @@ - import { HardhatUserConfig } from "hardhat/config"; -+import '@oasisprotocol/sapphire-hardhat'; - import "@nomicfoundation/hardhat-toolbox"; - - const config: HardhatUserConfig = { - solidity: "0.8.17", -+ networks: { -+ 'sapphire-testnet': { -+ // This is Testnet! If you want Mainnet, add a new network config item. -+ url: "https://testnet.sapphire.oasis.dev", -+ accounts: process.env.PRIVATE_KEY -+ ? [process.env.PRIVATE_KEY] -+ : [], -+ chainId: 0x5aff, -+ }, -+ }, - }; - - export default config; -``` - -By importing `@oasisprotocol/sapphire-hardhat` at the top of the config file, -**any network config entry corresponding to the Sapphire's chain ID will -automatically be wrapped with Sapphire specifics for encrypting and signing the -transactions**. - -### Get some Sapphire Testnet tokens - -Now for the fun part. We need to configure the Sapphire network and get some tokens. -Hit up the one and only [Oasis Testnet faucet] and select "Sapphire". -Submit the form and be on your way. - -[Oasis Testnet faucet]: https://faucet.testnet.oasis.dev - -### Get the Contract - -This is a Sapphire tutorial and you're already a Solidity expert, so let's not -bore you with explaining the gritty details of the contract. -Start by pasting [Vigil.sol] into `contracts/Vigil.sol`. - -While you're there, also place [run-vigil.ts] into `scripts/run-vigil.ts`. -We'll need that later. - -[Vigil.sol]: https://github.com/oasisprotocol/sapphire-paratime/blob/main/examples/hardhat/contracts/Vigil.sol -[run-vigil.ts]: https://github.com/oasisprotocol/sapphire-paratime/blob/main/examples/hardhat/scripts/run-vigil.ts - -#### Vigil.sol, the interesting parts - -The key state variables are: - -```solidity - SecretMetadata[] public _metas; - bytes[] private _secrets; -``` - -* `_metas` is marked with `public` visibility, so despite the state itself being - encrypted and not readable directly, Solidity will generate a getter that will - do the decryption for you. -* `_secrets` is `private` and therefore truly secret; only the contract can - access the data contained in this mapping. - -And the methods we'll care most about are - -* `createSecret`, which adds an entry to both `_metas` and `_secrets`. -* `revealSecret`, which acts as an access-controlled getter for the data - contained with `_secrets`. Due to trusted execution and confidentiality, the - only way that the secret will get revealed is if execution proceeds all the - way to the end of the function and does not revert. - -The rest of the methods are useful if you actually intended to use the contract, -but they demonstrate that developing for Sapphire is essentially the same as for -Ethereum. -You can even write tests against the Hardhat network and use Hardhat plugins. - -### Run the Contract - -And to wrap things up, we'll put `Vigil` through its paces. -First, let's see what's actually going on. - -After deploying the contract, we can create a secret, check that it's not -readable, wait a bit, and then check that it has become readable. -Pretty cool if you ask me! - -Anyway, make it happen by running - -```shell -PRIVATE_KEY="0x..." npx hardhat run scripts/run-vigil.ts --network sapphire-testnet -``` - -And if you see something like the following, you'll know you're well on the road -to deploying confidential dApps on Sapphire. - -``` -Vigil deployed to: 0x74dC4879B152FDD1DDe834E9ba187b3e14f462f1 -Storing a secret in 0x13125d868f5fb3cbc501466df26055ea063a90014b5ccc8dfd5164dc1dd67543 -Checking the secret -failed to fetch secret: reverted: not expired -Waiting... -Checking the secret again -The secret ingredient is brussels sprouts -``` - -## All done! - -Congratulations, you made it through the Sapphire tutorial! If you have any -questions, please check out the [guide] and join the discussion on the -[#sapphire-paratime Discord channel][social-media]. - -Best of luck on your future forays into confidentiality! - -:::info Example - -Visit the Sapphire ParaTime repository to download the [Hardhat][hardhat-example] -example of this quickstart. - -::: - -:::info Example - -If your project involves building a web frontend, we recommend that you check -out the official [Oasis starter] files. - -[Oasis starter]: https://github.com/oasisprotocol/demo-starter - -::: - -## See also - - - - - -[social-media]: ../../get-involved/README.md#social-media-channels -[guide]: guide.mdx -[hardhat-example]: https://github.com/oasisprotocol/sapphire-paratime/tree/main/examples/hardhat -[`@oasisprotocol/sapphire-hardhat`]: https://www.npmjs.com/package/@oasisprotocol/sapphire-hardhat diff --git a/docs/dapp/sapphire/quickstart.mdx b/docs/dapp/sapphire/quickstart.mdx new file mode 120000 index 0000000000..b57943dc32 --- /dev/null +++ b/docs/dapp/sapphire/quickstart.mdx @@ -0,0 +1 @@ +../../../external/sapphire-paratime/docs/quickstart.mdx \ No newline at end of file diff --git a/docs/dapp/sapphire/security.md b/docs/dapp/sapphire/security.md deleted file mode 100644 index e9f869e050..0000000000 --- a/docs/dapp/sapphire/security.md +++ /dev/null @@ -1,116 +0,0 @@ ---- -description: "Secure dApps: Recipes for Confidentiality" ---- - -# Security - -This page is an ongoing work in progress to support confidential smart contract -development. At the moment we address safeguarding storage variable access -patterns and provide best practices for more secure orderings of error checking -to prevent leaking contract state. - -## Storage Access Patterns - -You can use a tool such as [hardhat-tracer] to examine the base EVM state -transitions under the hood. - -```shell npm2yarn -npm install -D hardhat-tracer -``` - -and add `hardhat-tracer` to your `config.ts` file, - -```typescript -import "hardhat-tracer" -``` - -in order to test and show call traces. - -```shell -npx hardhat test --vvv --opcodes SSTORE,SLOAD -``` - -You can also trace a particular transaction, once you know its hash. - -```shell -npx hardhat trace --hash 0xTransactionHash -``` - -For both [gas] usage and confidentiality purposes, we **recommend using -non-unique data size**. E.g. 64-byte value will still be distinct from a -128-byte value. - -:::caution Inference based on access patterns - -`SSTORE` keys from one transaction may be linked to `SLOAD` keys of another -transaction. - -::: - -## Order of Operations - -When handling errors, gas usage patterns not only can reveal the code path -taken, **but sometimes the balance of a user as well** (in the case of a diligent -attacker using binary search). - -```solidity -function transferFrom(address who, address to, uint amount) - external -{ - require( balances[who] >= amount ); - require( allowances[who][msg.sender] >= amount ); - // ... -} -``` - -Modifying the order of error checking can prevent the accidental disclosure of -balance information in the example above. - -```solidity -function transferFrom(address who, address to, uint amount) - external -{ - require( allowances[who][msg.sender] >= amount ); - require( balances[who] >= amount ); - // ... -} -``` - -## Gas Padding - -To prevent leaking information about a particular transaction, Sapphire -provides a [precompile] for dApp developers to **pad the amount of gas used -in a transaction**. - -```solidity -contract GasExample { - bytes32 tmp; - - function constantMath(bool doMath, uint128 padGasAmount) external { - if (doMath) { - bytes32 x; - - for (uint256 i = 0; i < 100; i++) { - x = keccak256(abi.encodePacked(x, tmp)); - } - - tmp = x; - } - - Sapphire.padGas(padGasAmount); - } -} -``` - -Both contract calls below should use the same amount of gas. Sapphire also -provides the precompile to return the gas [used] by the current transaction. - -```typescript -await contract.constantMath(true, 100000); -await contract.constantMath(false, 100000); -``` - -[gas]: https://docs.soliditylang.org/en/latest/internals/layout_in_storage.html -[hardhat-tracer]: https://www.npmjs.com/package/hardhat-tracer -[precompile]: https://api.docs.oasis.io/sol/sapphire-contracts/contracts/Sapphire.sol/library.Sapphire.html#padgas -[used]: https://api.docs.oasis.io/sol/sapphire-contracts/contracts/Sapphire.sol/library.Sapphire.html#gasused diff --git a/docs/dapp/sapphire/security.md b/docs/dapp/sapphire/security.md new file mode 120000 index 0000000000..701ce461be --- /dev/null +++ b/docs/dapp/sapphire/security.md @@ -0,0 +1 @@ +../../../external/sapphire-paratime/docs/security.md \ No newline at end of file diff --git a/external/sapphire-paratime b/external/sapphire-paratime new file mode 160000 index 0000000000..60cfe61e67 --- /dev/null +++ b/external/sapphire-paratime @@ -0,0 +1 @@ +Subproject commit 60cfe61e675d32e7e9cbb68ef40d409f7c1f0b4a diff --git a/src/editUrl.js b/src/editUrl.js index 1b15c6c689..2aff35b4c0 100644 --- a/src/editUrl.js +++ b/src/editUrl.js @@ -7,6 +7,7 @@ const gitModules = { 'external/cli/': 'https://github.com/oasisprotocol/cli/{mode}/master/', 'external/oasis-core/': 'https://github.com/oasisprotocol/oasis-core/{mode}/stable/22.2.x/', 'external/oasis-sdk/': 'https://github.com/oasisprotocol/oasis-sdk/{mode}/main/', + 'external/sapphire-paratime/': 'https://github.com/oasisprotocol/sapphire-paratime/{mode}/main/', }; /** diff --git a/src/remark/cross-repo-links.js b/src/remark/cross-repo-links.js index 83a0bd3501..5df0f4520c 100644 --- a/src/remark/cross-repo-links.js +++ b/src/remark/cross-repo-links.js @@ -5,6 +5,7 @@ const oasisSdkContractRegex = /https:\/\/github\.com\/oasisprotocol\/oasis-sdk\/ const oasisSdkRuntimeRegex = /https:\/\/github\.com\/oasisprotocol\/oasis-sdk\/blob\/main\/docs\/runtime\/(.*)\.mdx?(#.*)?/; const oasisCoreRegex = /https:\/\/github\.com\/oasisprotocol\/oasis-core\/blob\/master\/docs\/(.*)\.mdx?(#.*)?/; const adrsRegex = /https:\/\/github\.com\/oasisprotocol\/adrs\/blob\/main\/(.*)\.mdx?(#.*)?/; +const sapphireParatimeRegex = /https:\/\/github\.com\/oasisprotocol\/sapphire-paratime\/blob\/main\/(.*)\.mdx?(#.*)?/; const docsRegex = /https:\/\/github\.com\/oasisprotocol\/docs\/blob\/main\/docs\/(.*)\.mdx?(#.*)?/; const indexReadmeRegex = /(index|README)($|#)/; @@ -33,6 +34,8 @@ module.exports = function (options) { node.url = node.url.replace(oasisCoreRegex, '/core/$1$2'); } else if (adrsRegex.test(node.url)) { node.url = node.url.replace(adrsRegex, '/adrs/$1$2'); + } else if (sapphireParatimeRegex.test(node.url)) { + node.url = node.url.replace(sapphireParatimeRegex, '/sapphire-paratime/$1$2'); } else if (docsRegex.test(node.url)) { node.url = node.url.replace(docsRegex, '/$1$2'); } else {