Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
dd06f09
New translations stratum.md (Arabic)
darwintree Dec 5, 2025
4d13afc
New translations test-framework.md (Arabic)
darwintree Dec 5, 2025
9322e68
New translations introduction-to-smart-contracts.md (Arabic)
darwintree Dec 5, 2025
ba122a3
New translations web3js.md (Arabic)
darwintree Dec 5, 2025
8ed7171
New translations web3py.md (Arabic)
darwintree Dec 5, 2025
ba9337b
New translations stratum.md (Italian)
darwintree Dec 5, 2025
cd6cb98
New translations test-framework.md (Italian)
darwintree Dec 5, 2025
dbc9abc
New translations introduction-to-smart-contracts.md (Italian)
darwintree Dec 5, 2025
71ffc0e
New translations web3js.md (Italian)
darwintree Dec 5, 2025
37ca870
New translations web3py.md (Italian)
darwintree Dec 5, 2025
e0433ab
New translations stratum.md (Japanese)
darwintree Dec 5, 2025
5620a33
New translations test-framework.md (Japanese)
darwintree Dec 5, 2025
a1e80d3
New translations introduction-to-smart-contracts.md (Japanese)
darwintree Dec 5, 2025
f73070a
New translations web3js.md (Japanese)
darwintree Dec 5, 2025
aa28e8f
New translations web3py.md (Japanese)
darwintree Dec 5, 2025
4dacdb4
New translations stratum.md (Chinese Simplified)
darwintree Dec 5, 2025
ad4297b
New translations test-framework.md (Chinese Simplified)
darwintree Dec 5, 2025
95b5caf
New translations introduction-to-smart-contracts.md (Chinese Simplified)
darwintree Dec 5, 2025
9bead9d
New translations web3js.md (Chinese Simplified)
darwintree Dec 5, 2025
6b2c926
New translations web3py.md (Chinese Simplified)
darwintree Dec 5, 2025
fab81b9
New translations stratum.md (Spanish)
darwintree Dec 5, 2025
c0e0b11
New translations test-framework.md (Spanish)
darwintree Dec 5, 2025
dd83428
New translations introduction-to-smart-contracts.md (Spanish)
darwintree Dec 5, 2025
8d766f3
New translations web3js.md (Spanish)
darwintree Dec 5, 2025
2adc777
New translations web3py.md (Spanish)
darwintree Dec 5, 2025
6386277
New translations ledger.md (Spanish)
darwintree Jan 16, 2026
007e5d3
New translations ledger.md (Arabic)
darwintree Jan 16, 2026
864ea78
New translations ledger.md (Italian)
darwintree Jan 16, 2026
26061ed
New translations ledger.md (Japanese)
darwintree Jan 16, 2026
d7732e3
New translations ledger.md (Chinese Simplified)
darwintree Jan 16, 2026
cf0ad8e
New translations glossary.md (Spanish)
darwintree Feb 11, 2026
f187f34
New translations ledger.md (Spanish)
darwintree Feb 11, 2026
138e366
New translations verifycontracts.md (Spanish)
darwintree Feb 11, 2026
ce6f68a
New translations glossary.md (Arabic)
darwintree Feb 11, 2026
20f715c
New translations ledger.md (Arabic)
darwintree Feb 11, 2026
026af6d
New translations verifycontracts.md (Arabic)
darwintree Feb 11, 2026
74fd3c1
New translations glossary.md (Italian)
darwintree Feb 11, 2026
aaa9fa4
New translations ledger.md (Italian)
darwintree Feb 11, 2026
c2a2d68
New translations verifycontracts.md (Italian)
darwintree Feb 11, 2026
39d3e61
New translations glossary.md (Japanese)
darwintree Feb 11, 2026
1937fb9
New translations ledger.md (Japanese)
darwintree Feb 11, 2026
64f057d
New translations verifycontracts.md (Japanese)
darwintree Feb 11, 2026
97e530d
New translations glossary.md (Chinese Simplified)
darwintree Feb 11, 2026
2cd7bdc
New translations ledger.md (Chinese Simplified)
darwintree Feb 11, 2026
36f6036
New translations verifycontracts.md (Chinese Simplified)
darwintree Feb 11, 2026
93429b8
New translations trace-namespace.md (Spanish)
darwintree Mar 4, 2026
b9291e8
New translations developerquickstart.md (Spanish)
darwintree Mar 4, 2026
8ded9e3
New translations test-framework.md (Spanish)
darwintree Mar 4, 2026
a06c441
New translations trace-namespace.md (Arabic)
darwintree Mar 4, 2026
9ebc456
New translations trace-namespace.md (Italian)
darwintree Mar 4, 2026
cfde245
New translations developerquickstart.md (Italian)
darwintree Mar 4, 2026
f93c8b0
New translations test-framework.md (Italian)
darwintree Mar 4, 2026
beb5aee
New translations trace-namespace.md (Japanese)
darwintree Mar 4, 2026
e34d6d0
New translations developerquickstart.md (Japanese)
darwintree Mar 4, 2026
0fd42c5
New translations test-framework.md (Japanese)
darwintree Mar 4, 2026
cc7996b
New translations trace-namespace.md (Chinese Simplified)
darwintree Mar 4, 2026
a843c68
New translations developerquickstart.md (Chinese Simplified)
darwintree Mar 4, 2026
63a6f3d
New translations test-framework.md (Chinese Simplified)
darwintree Mar 4, 2026
9813870
New translations developerquickstart.md (Arabic)
darwintree Mar 4, 2026
01c83b5
New translations test-framework.md (Arabic)
darwintree Mar 4, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ Note: An existing archive node need clear all blockchain data to open `executive

A `Trace` trace object contain below field:

* `type`: `STRING` - Type of trace. Avaliable value is `call`, `create`, `call_result`, `create_result`, `internal_transfer_action`
* `type`: `STRING` - Type of trace. Available values are `call`, `create`, `call_result`, `create_result`, `internal_transfer_action`
* `action`: `OBJECT` - Trace's action info,different type trace's action have different fields.

Example:
Expand Down Expand Up @@ -214,7 +214,7 @@ Get transaction's trace by it's hash

#### Returns

* `type`: `string` - Avaliable value is `call`, `create`, `call_result`, `create_result`, `internal_transfer_action`
* `type`: `string` - Available values are `call`, `create`, `call_result`, `create_result`, `internal_transfer_action`
* `transactionPosition`: `QUANTITY` - Position of transaction in block
* `transactionHash`: `HASH` - Hash of transaction
* `epochNumber`: `QUANTITY` - Number of epoch
Expand Down Expand Up @@ -550,7 +550,7 @@ Each time a contract is killed, it will produce such a trace,

### New added `space` field

The `call` and `create` type action will add a new field `space` indicate wich space the trace is occured, the possible value are:
The `call` and `create` type action will add a new field `space` to indicate which space the trace occurred in, the possible values are:

* `native`
* `ethereum`
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ const provider = new ethers.providers.JsonRpcProvider("https://evmtestnet.conflu
[Scaffold Conflux](https://github.com/conflux-fans/conflux-scaffold) is an adaptation of [Scaffold-ETH-2](https://scaffoldeth.io/).

- We have adjusted the template to allow you to deploy the contract on Conflux eSpace.
- Conflux Scaffold offers users the ability to quickly leverage front-end react components that are commonly used to build web3 apps. These include pre-fabricated wallets with the ability to connect to Conflux eSpace, Conflux eSpace testnet, hardhat, etc. It also includes other components to display balance, and recieve address/value inputs.
- Conflux Scaffold offers users the ability to quickly leverage front-end react components that are commonly used to build web3 apps. These include pre-fabricated wallets with the ability to connect to Conflux eSpace, Conflux eSpace testnet, hardhat, etc. It also includes other components to display balance, and receive address/value inputs.
- Hooks are available on Scaffold Conflux to interact with the smart contracts built on hardhat. This simplifies the process of reading contracts, writing contracts, and subscribe to events emitted by the smart contract.
- You can visit our [tutorial](./tutorials/scaffoldCfx/scaffold.md) for more in-depth discussion how to set-up Scaffold Conflux and use some of the hooks/components.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ Do not specify the chain ID.

## Verify on Web UI Manually

Any contract deployed on eSpace can be verified on the [ConfluxScan](https://evm.confluxscan.net/) block explorer's contract detail page. If contract is not verified, the contract detail page will show a entry to verify page.
Any contract deployed on eSpace can be verified on the [ConfluxScan](https://evm.confluxscan.org/) block explorer's contract detail page. If contract is not verified, the contract detail page will show a entry to verify page.

![](./img/contract-verify-submit.png)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,7 @@ When the contract is deployed, the constructor function executes and assigns the

### Compile the Contract

This section will guide you through the process of building a script that leverages the Solidity compiler to produce the ABI and bytecode for the Incrementer.sol contract. Start by generating a compile.js and fill it as bellow:
This section will guide you through the process of building a script that leverages the Solidity compiler to produce the ABI and bytecode for the Incrementer.sol contract. Start by generating a compile.js and fill it as below:

```javascript
// Import packages
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,7 @@ When the contract is deployed, the constructor function executes and assigns the

### Compile the Contract

This section will guide you through the process of building a script that leverages the Solidity compiler to produce the ABI and bytecode for the Incrementer.sol contract. Start by generating a compile.py and fill it as bellow:
This section will guide you through the process of building a script that leverages the Solidity compiler to produce the ABI and bytecode for the Incrementer.sol contract. Start by generating a compile.py and fill it as below:

```python
# Import the compiler library
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ Submit a PoW solution to the stratum server

{
"jsonrpc": "2.0",
"result": ["false", "invlaid nonce"],
"result": ["false", "invalid nonce"],
"id": 1
}
```
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ The framework will

1. Call `set_test_params` to set basic test initialization parameters.
2. Setup the test directories and node configurations according to the parameters set in `set_test_params`. By default, a temp directory will be created and all files will be kept within it. For example, setting `self.num_nodes = 2` will initialize directories for two nodes.
3. Call `setup_network` to add nodes and connect them. Here `self.setup_nodes()` will add 2 Conflux nodes by running pre-compiled Conflux executable binary within the directory setupped in step 2. We do not connect them here because we want nodes seperated at the beginning.
3. Call `setup_network` to add nodes and connect them. Here `self.setup_nodes()` will add 2 Conflux nodes by running pre-compiled Conflux executable binary within the directory set up in step 2. We do not connect them here because we want nodes separated at the beginning.
4. Call `run_test` to run the actual test codes.

After running `self.setup_nodes()`, `self.nodes` is a list of `TestNode`, and each can be used to interact with the corresponding Conflux node. For example, to get the number of blocks in node 0 by calling the RPC named `getblockcount`, you simply call `self.nodes[0].getblockcount` and an integer will be returned.
Expand All @@ -66,7 +66,7 @@ After running `self.setup_nodes()`, `self.nodes` is a list of `TestNode`, and ea

## Sending P2P Messages

After calling `start_p2p_connection(self.nodes)`, the field `p2p` of each `TestNode` will be initialized with a simulated Conflux node written in Python, and this simulated node will be connected to the Conflux process controled by the corresponding `TestNode`. After that, you can send and receive P2P messages within python code. Here is an example about how to use `p2p` to interact with the Conflux node.
After calling `start_p2p_connection(self.nodes)`, the field `p2p` of each `TestNode` will be initialized with a simulated Conflux node written in Python, and this simulated node will be connected to the Conflux process controlled by the corresponding `TestNode`. After that, you can send and receive P2P messages within python code. Here is an example about how to use `p2p` to interact with the Conflux node.

```python
def run_test(self):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -90,9 +90,9 @@ This contract is written in `solidity`, whose syntax is similar to `javascript`.
- The `constructor` function is executed exactly once the contract is deployed.
- The `balanceOf` function marked with the `view` is a read-only function that can't be used to modify the contract state. All read-only functions must be declared as `view` or `pure` functions.
- `refill` function is an ordinary function, can be called by sending a transaction. This function will change the contract state.
- `require(msg.sender == owner, "Only the owner can refill");` indicates that only when the condition `msg.sender == owner` is fullfilled (that is, the caller is the contract admin), the state of contract variable `cupcakeBalances` can be modified to refill the products. If the condition is not fullfilled then a messaged will be returner (in this case `"Only the owner can refill"`) and the transaction will be reverted.
- `require(msg.sender == owner, "Only the owner can refill");` indicates that only when the condition `msg.sender == owner` is fulfilled (that is, the caller is the contract admin), the state of contract variable `cupcakeBalances` can be modified to refill the products. If the condition is not fulfilled then a messaged will be returner (in this case `"Only the owner can refill"`) and the transaction will be reverted.
- `purchase` function includes a `payable`, indicating you can send CFX at the same time the function is called. Since customers need to pay CFX to purchase it's marked as a `payable` function.
- `require(msg.value >= amount 1 ether, "You must pay at least 1 CFX per cupcake")` indicates the full amount of CFX must be paid in order to complete the purchase. Otherwhise the function will be reverted and will return the `"You must pay at least 1 CFX per cupcake"` message.
- `require(msg.value >= amount 1 ether, "You must pay at least 1 CFX per cupcake")` indicates the full amount of CFX must be paid in order to complete the purchase. Otherwise the function will be reverted and will return the `"You must pay at least 1 CFX per cupcake"` message.

> **Solidity has built-in literal Ether Units**
>
Expand Down Expand Up @@ -286,7 +286,7 @@ From the log, we can see that the corresponding RPC information of `contract.cup

rpc method is `cfx_call`, data is the result of `function selector + ABI-encoded result of parameter list`. The first 4 bytes `0xe18a7b92` is the function selector of function `balanceOf`. The calculation takes keccak operation `keccak256("balanceOf(address)")` on the signature `balanceOf(address)` of `balanceOf` and then takes the first 4 bytes. `00000000000000000000000019f4bcf113e0b896d9b34294fd3da86b4adf0302` is the ABI-encoded value of parameter `0x19f4bcf113e0b896d9b34294fd3da86b4adf0302`.

The returned value is `0x0000000000000000000000000000000000000000000000000000000000000000` wich is the result of ABI-encoded value 0 with the `uint256` type.
The returned value is `0x0000000000000000000000000000000000000000000000000000000000000000` which is the result of ABI-encoded value 0 with the `uint256` type.

The RPC method for purchase is `cfx_sendRawTransaction`, which is sending transaction. This will change the state of the contract. The encoding method for the transaction's data is also `function selector + ABI-encoded result of parameter list`. You can check this through `getTransactionByHash`.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ Links:

- Mainnet
- Core Space: https://confluxscan.org or https://confluxscan.net
- eSpace: https://evm.confluxscan.org or https://evm.confluxscan.net
- eSpace: https://evm.confluxscan.org or https://evm.confluxscan.org
- Testnet
- Core Space: https://testnet.confluxscan.org or https://testnet.confluxscan.net
- eSpace: https://evmtestnet.confluxscan.org or https://evmtestnet.confluxscan.net
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ Before you start, make sure that you have done the following:

- Updated your Ledger device to the latest firmware version

- Installed [Ledger Live](https://www.ledger.com/ledger-live) and updated it to the latest version
- Installed [Ledger Wallet](https://shop.ledger.com/pages/ledger-wallet) and updated it to the latest version

- Installed [Fluent Wallet](https://fluentwallet.com/) version 2.8.0 or later on Chrome or Edge browser (Firefox is not supported)

Expand All @@ -59,15 +59,15 @@ You can install the **Conflux app** on your Ledger device by following these ste

**2.** Unlock your device by entering your PIN.

**3.** Open Ledger Live.
**3.** Open Ledger Wallet.

**4.** In the menu on the left, click "Manager" to open the Ledger Live app manager.
**4.** In the menu on the left, click "Manager" to open the Ledger Wallet app manager.

**5.** When your Ledger device displays "Allow Ledger manager", press both buttons to continue.

**6.** Back in Ledger Live, under the "App catalog" tab, enter "Conflux" in the search field.
**6.** Back in Ledger Wallet, under the "App catalog" tab, enter "Conflux" in the search field.

**7.** Once Ledger Live shows the Conflux app, press "Install".
**7.** Once Ledger Wallet shows the Conflux app, press "Install".

The Conflux app is now installed successfully.

Expand All @@ -77,7 +77,7 @@ The Conflux app is now installed successfully.

You can import accounts from your Ledger device into your Fluent wallet by following these steps:

**1.** Quit Ledger Live if it is currently opened.
**1.** Quit Ledger Wallet if it is currently opened.

**2.** Connect your Ledger device to your computer through USB.

Expand Down Expand Up @@ -107,7 +107,7 @@ Assuming your account on the Ledger device has some CFX tokens, the steps below
If you do not have CFX, you can purchase at one of the exchanges listed [here](https://123cfx.com/#Exchanges).
:::

Make sure you have already imported your Ledger account into your Fluent wallet by following the steps in the previous section. Quit Ledger Live if it is currently opened.
Make sure you have already imported your Ledger account into your Fluent wallet by following the steps in the previous section. Quit Ledger Wallet if it is currently opened.

**1.** Connect your Ledger device to your computer through USB.

Expand Down Expand Up @@ -149,7 +149,7 @@ If you encounter any issues, find us on <DiscordLink>Discord</DiscordLink> or [T
Before you start, make sure that you have done the following:

- Updated your Ledger device (Nano S+, Nano X, Stax, or Flex) to the latest firmware version
- Installed [Ledger Live](https://www.ledger.com/ledger-live) and updated it to the latest version
- Installed [Ledger Wallet](https://www.ledger.com/ledger-live) and updated it to the latest version
- Installed [MetaMask](https://MetaMask.io) on Chrome or Edge browser (Firefox is not supported)

If you encounter any issues, find us on <DiscordLink>Discord</DiscordLink> or [Telegram](https://t.me/Conflux_English), we are happy to help.
Expand All @@ -160,11 +160,11 @@ You can install the **Ethereum app** on your Ledger device by following these st

1. Connect your Ledger device to your computer through USB.
1. Unlock your device by entering your PIN.
1. Open Ledger Live.
1. In the menu on the left, click "Manager" to open the Ledger Live app manager.
1. Open Ledger Wallet.
1. In the menu on the left, click "Manager" to open the Ledger Wallet app manager.
1. When your Ledger device displays "Allow Ledger manager", press both buttons to continue.
1. Back in Ledger Live, under the "App catalog" tab, enter "Ethereum" in the search field.
1. Once Ledger Live shows the Ethereum app, press "Install".
1. Back in Ledger Wallet, under the "App catalog" tab, enter "Ethereum" in the search field.
1. Once Ledger Wallet shows the Ethereum app, press "Install".
1. The Ethereum app is now installed successfully.


Expand All @@ -189,23 +189,22 @@ Alternatively, you can add Conflux eSpace to MetaMask manually under "Settings",
- **New RPC URL**: https://evm.confluxrpc.com
- **Chain ID**: 1030
- **Currency Symbol**: CFX
- **Block Explorer URL**: https://evm.confluxscan.net
- **Block Explorer URL**: https://evm.confluxscan.org


#### Connecting Your Ledger Device to MetaMask

You can import accounts from your Ledger device into your MetaMask wallet by following these steps:

1. Quit Ledger Live if it is currently opened.
1. Quit Ledger Wallet if it is currently opened.
2. Connect your Ledger device to your computer through USB.
3. Unlock your device by entering your PIN.
4. Navigate to the Ethereum app on your device and press both buttons to open it.
5. In MetaMask, navigate to "Settings", "Advanced", "Preferred Ledger Connection Type" and choose "WebHID".
6. Open the menu in the top right corner in MetaMask and click "Connect Hardware Wallet".
7. Select "Ledger" and click "Continue".
8. A browser popup will appear saying "MetaMask wants to connect to a HID device". Select your Ledger device from the list and click "Connect".
9. After a few seconds, the "Select an Account" page shows up in MetaMask. Select one or more accounts that you would like to import to MetaMask and click "Unlock".
10. Your account is now visible in MetaMask as "Ledger 1".
5. In MetaMask, navigate to "Account", "Add Wallet" and "Add a hardware wallet".
6. Select "Ledger" and click "Continue".
7. A browser popup will appear saying "MetaMask wants to connect to a HID device". Select your Ledger device from the list and click "Connect".
8. After a few seconds, the "Select an Account" page shows up in MetaMask. Select one or more accounts that you would like to import to MetaMask and click "Unlock".
9. Your account is now visible in MetaMask as "Ledger 1".


### Using Ledger
Expand All @@ -216,7 +215,7 @@ Assuming your account on the Ledger device has some CFX tokens, the steps below

*Note: If you do not have CFX, you can purchase at one of the exchanges listed [here](/docs/category/from-exchanges).*

1. Make sure you have already imported your Ledger account into your MetaMask wallet by following the steps in the previous section. Quit Ledger Live if it is currently opened.
1. Make sure you have already imported your Ledger account into your MetaMask wallet by following the steps in the previous section. Quit Ledger Wallet if it is currently opened.
2. Connect your Ledger device to your computer through USB.
3. Unlock your device by entering your PIN.
4. Navigate to the Ethereum app on your device and press both buttons to open it.
Expand Down Expand Up @@ -247,7 +246,7 @@ The easiest way to check your CFX and ERC20 token balances held by your Ledger a

![conflux-app-in-ledger-live](./img/metamask-view-balance-9e558f0db402afa799f16d678e68c6e1.png)

Alternatively, you can click on "View Account in Explorer", or navigate to https://evm.confluxscan.net and manually search for your address to see your token balances and transaction history.
Alternatively, you can click on "View Account in Explorer", or navigate to https://evm.confluxscan.org and manually search for your address to see your token balances and transaction history.

![conflux-app-in-ledger-live](./img/scan-view-balance-bf5b143069670feb9634e0b31c13296c.png)

Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ Note: An existing archive node need clear all blockchain data to open `executive

A `Trace` trace object contain below field:

* `type`: `STRING` - Type of trace. Avaliable value is `call`, `create`, `call_result`, `create_result`, `internal_transfer_action`
* `type`: `STRING` - Type of trace. Available values are `call`, `create`, `call_result`, `create_result`, `internal_transfer_action`
* `action`: `OBJECT` - Trace's action info,different type trace's action have different fields.

Example:
Expand Down Expand Up @@ -214,7 +214,7 @@ Get transaction's trace by it's hash

#### Returns

* `type`: `string` - Avaliable value is `call`, `create`, `call_result`, `create_result`, `internal_transfer_action`
* `type`: `string` - Available values are `call`, `create`, `call_result`, `create_result`, `internal_transfer_action`
* `transactionPosition`: `QUANTITY` - Position of transaction in block
* `transactionHash`: `HASH` - Hash of transaction
* `epochNumber`: `QUANTITY` - Number of epoch
Expand Down Expand Up @@ -550,7 +550,7 @@ Each time a contract is killed, it will produce such a trace,

### New added `space` field

The `call` and `create` type action will add a new field `space` indicate wich space the trace is occured, the possible value are:
The `call` and `create` type action will add a new field `space` to indicate which space the trace occurred in, the possible values are:

* `native`
* `ethereum`
Expand Down
Loading