mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-07-27 15:16:43 +00:00
docs/developers/dapp-developer: fix docs: use combined-json to generated bindings so that they can be deployed
This commit is contained in:
parent
0f712ea70f
commit
df7fba32eb
1 changed files with 39 additions and 19 deletions
|
|
@ -60,42 +60,62 @@ This contract can be pasted into a text file and saved as `Storage.sol`.
|
||||||
The following code snippet shows how an ABI can be generated for `Storage.sol` using the Solidity compiler `solc`.
|
The following code snippet shows how an ABI can be generated for `Storage.sol` using the Solidity compiler `solc`.
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
solc --abi Storage.sol -o build
|
solc --combined-json abi,bin Storage.sol > Storage.abi
|
||||||
```
|
```
|
||||||
|
|
||||||
The ABI can also be generated in other ways such as using the `compile` commands in development frameworks such as [Foundry](https://book.getfoundry.sh/), [Hardhat](https://hardhat.org/) and [Brownie](https://eth-brownie.readthedocs.io/en/stable/) or in the online IDE [Remix](https://remix.ethereum.org/). ABIs for existing verified contracts can be downloaded from [Etherscan](https://etherscan.io/).
|
The ABI can also be generated in other ways such as using the `compile` commands in development frameworks such as [Foundry](https://book.getfoundry.sh/), [Hardhat](https://hardhat.org/) and [Brownie](https://eth-brownie.readthedocs.io/en/stable/) or in the online IDE [Remix](https://remix.ethereum.org/). ABIs for existing verified contracts can be downloaded from [Etherscan](https://etherscan.io/).
|
||||||
|
|
||||||
The ABI for `Storage.sol` (`Storage.abi`) looks as follows:
|
The "combined json" for `Storage.sol` (ABI definition and deployer bytecode in `Storage.abi`) looks as follows:
|
||||||
|
|
||||||
```json
|
```json
|
||||||
[
|
{
|
||||||
{
|
"contracts": {
|
||||||
"inputs": [],
|
"Storage.sol:Storage": {
|
||||||
"name": "retrieve",
|
"abi": [
|
||||||
"outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
|
{
|
||||||
"stateMutability": "view",
|
"inputs": [],
|
||||||
"type": "function"
|
"name": "retrieve",
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"internalType": "uint256",
|
||||||
|
"name": "",
|
||||||
|
"type": "uint256"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [
|
||||||
|
{
|
||||||
|
"internalType": "uint256",
|
||||||
|
"name": "number",
|
||||||
|
"type": "uint256"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"name": "store",
|
||||||
|
"outputs": [],
|
||||||
|
"stateMutability": "nonpayable",
|
||||||
|
"type": "function"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"bin": "6080604052348015600e575f5ffd5b506101298061001c5f395ff3fe6080604052348015600e575f5ffd5b50600436106030575f3560e01c80632e64cec11460345780636057361d14604e575b5f5ffd5b603a6066565b60405160459190608d565b60405180910390f35b606460048036038101906060919060cd565b606e565b005b5f5f54905090565b805f8190555050565b5f819050919050565b6087816077565b82525050565b5f602082019050609e5f8301846080565b92915050565b5f5ffd5b60af816077565b811460b8575f5ffd5b50565b5f8135905060c78160a8565b92915050565b5f6020828403121560df5760de60a4565b5b5f60ea8482850160bb565b9150509291505056fea26469706673582212200857cb05506ae0a0b1cb7a5f2c713313775ab4ec0c0c8e02a0d5c9ce9dd77fd364736f6c634300081c0033"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
"version": "0.8.28+commit.7893614a.Darwin.appleclang"
|
||||||
"inputs": [{ "internalType": "uint256", "name": "number", "type": "uint256" }],
|
}
|
||||||
"name": "store",
|
|
||||||
"outputs": [],
|
|
||||||
"stateMutability": "nonpayable",
|
|
||||||
"type": "function"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
```
|
```
|
||||||
|
|
||||||
The contract binding can then be generated by passing the ABI to `abigen` as follows:
|
The contract binding can then be generated by passing the ABI to `abigen` as follows:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
$ abigen --v2 --abi build/Storage.abi --pkg main --type Storage --out Storage.go
|
$ abigen --v2 --combined-json build/Storage.abi --pkg main --type Storage --out Storage.go
|
||||||
```
|
```
|
||||||
|
|
||||||
Where the flags are:
|
Where the flags are:
|
||||||
|
|
||||||
- `--v2`: Mandatory flag to specify the newest version of the binding generator.
|
- `--v2`: Mandatory flag to specify the newest version of the binding generator.
|
||||||
- `--abi`: Mandatory path to the contract ABI to bind to
|
- `--combined-json`: Mandatory path to the contract combined json (ABI + deployer bytecode) to bind to
|
||||||
- `--pkg`: Mandatory Go package name to place the Go code into
|
- `--pkg`: Mandatory Go package name to place the Go code into
|
||||||
- `--type`: Optional Go type name to assign to the binding struct
|
- `--type`: Optional Go type name to assign to the binding struct
|
||||||
- `--out`: Optional output path for the generated Go source file (not set = stdout)
|
- `--out`: Optional output path for the generated Go source file (not set = stdout)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue