Skip to content

Commit

Permalink
feat: Config service configuration (#682)
Browse files Browse the repository at this point in the history
* Minor fixes

* Add Config service configuration parameters

* Add correct words to Vale allow list

* Add reference to Config service documentation in Infrastructure deployment

* Update pages/config-service-configuration/add-or-edit-chain.mdx

Co-authored-by: Aaron Cook <aaron@safe.global>

* Update pages/config-service-configuration/add-or-edit-chain.mdx

Co-authored-by: Aaron Cook <aaron@safe.global>

* Update pages/config-service-configuration/add-or-edit-chain.mdx

Co-authored-by: Aaron Cook <aaron@safe.global>

* Update pages/config-service-configuration/add-or-edit-chain.mdx

Co-authored-by: Aaron Cook <aaron@safe.global>

* Update pages/config-service-configuration/add-or-edit-chain.mdx

Co-authored-by: Aaron Cook <aaron@safe.global>

* Update pages/config-service-configuration/add-or-edit-chain.mdx

Co-authored-by: Aaron Cook <aaron@safe.global>

* Update pages/config-service-configuration/add-or-edit-chain.mdx

Co-authored-by: Aaron Cook <aaron@safe.global>

* Update pages/config-service-configuration/add-or-edit-chain.mdx

Co-authored-by: Aaron Cook <aaron@safe.global>

* Update pages/config-service-configuration/overview.mdx

Co-authored-by: Aaron Cook <aaron@safe.global>

* Update pages/config-service-configuration/overview.mdx

Co-authored-by: Aaron Cook <aaron@safe.global>

* Update pages/config-service-configuration/add-or-edit-chain.mdx

Co-authored-by: Aaron Cook <aaron@safe.global>

* Update pages/config-service-configuration/add-or-edit-chain.mdx

Co-authored-by: Aaron Cook <aaron@safe.global>

* Update pages/config-service-configuration/add-or-edit-chain.mdx

Co-authored-by: Aaron Cook <aaron@safe.global>

* Update pages/config-service-configuration/add-or-edit-chain.mdx

Co-authored-by: Aaron Cook <aaron@safe.global>

* Update pages/config-service-configuration/add-or-edit-chain.mdx

Co-authored-by: Aaron Cook <aaron@safe.global>

* Update pages/config-service-configuration/add-or-edit-chain.mdx

Co-authored-by: Aaron Cook <aaron@safe.global>

* Update pages/config-service-configuration/add-or-edit-chain.mdx

Co-authored-by: Aaron Cook <aaron@safe.global>

* Update pages/config-service-configuration/add-or-edit-chain.mdx

Co-authored-by: Aaron Cook <aaron@safe.global>

* Update pages/config-service-configuration/add-or-edit-chain.mdx

Co-authored-by: Aaron Cook <aaron@safe.global>

* Update pages/config-service-configuration/add-or-edit-chain.mdx

Co-authored-by: Aaron Cook <aaron@safe.global>

* Update pages/config-service-configuration/add-or-edit-chain.mdx

Co-authored-by: Aaron Cook <aaron@safe.global>

* Update pages/config-service-configuration/add-or-edit-chain.mdx

Co-authored-by: Aaron Cook <aaron@safe.global>

* Update pages/config-service-configuration/add-or-edit-chain.mdx

Co-authored-by: Aaron Cook <aaron@safe.global>

* Update pages/config-service-configuration/add-or-edit-chain.mdx

Co-authored-by: Aaron Cook <aaron@safe.global>

* Update pages/config-service-configuration/add-or-edit-chain.mdx

Co-authored-by: Aaron Cook <aaron@safe.global>

* Update pages/config-service-configuration/add-or-edit-chain.mdx

Co-authored-by: Aaron Cook <aaron@safe.global>

* Update pages/config-service-configuration/add-or-edit-gas-price.mdx

Co-authored-by: Aaron Cook <aaron@safe.global>

* Update pages/config-service-configuration/add-or-edit-gas-price.mdx

Co-authored-by: Aaron Cook <aaron@safe.global>

* Update pages/config-service-configuration/add-or-edit-chain.mdx

Co-authored-by: Aaron Cook <aaron@safe.global>

* Update pages/config-service-configuration/add-or-edit-client.mdx

Co-authored-by: Aaron Cook <aaron@safe.global>

* Update pages/config-service-configuration/add-or-edit-tag.mdx

Co-authored-by: Aaron Cook <aaron@safe.global>

* Update pages/config-service-configuration/add-or-edit-social-profile.mdx

Co-authored-by: Aaron Cook <aaron@safe.global>

* Update pages/config-service-configuration/add-or-edit-feature.mdx

Co-authored-by: Aaron Cook <aaron@safe.global>

* Update pages/config-service-configuration/add-or-edit-gas-price.mdx

Co-authored-by: Aaron Cook <aaron@safe.global>

* Update pages/config-service-configuration/add-or-edit-group.mdx

Co-authored-by: Aaron Cook <aaron@safe.global>

* Update pages/config-service-configuration/add-or-edit-provider.mdx

Co-authored-by: Aaron Cook <aaron@safe.global>

* Update pages/config-service-configuration/add-or-edit-provider.mdx

Co-authored-by: Aaron Cook <aaron@safe.global>

* Update pages/config-service-configuration/add-or-edit-safe-app.mdx

Co-authored-by: Aaron Cook <aaron@safe.global>

* Implement requested changes

---------

Co-authored-by: Aaron Cook <aaron@safe.global>
  • Loading branch information
louis-md and iamacook authored Feb 3, 2025
1 parent 6377367 commit b99e57f
Show file tree
Hide file tree
Showing 21 changed files with 599 additions and 3 deletions.
3 changes: 3 additions & 0 deletions .github/styles/config/vocabularies/default/accept.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
[Aa][Pp][Ii]
[Aa]urora
[Aa]rbitrum
[Aa]ccessor
[Bb]ackend
[Bb]inance
[Bb]lockchain
Expand Down Expand Up @@ -52,6 +53,7 @@
[Pp]olygon
[Pp]ostgres
[Pp]luggable
[Pp]repended
[Qq]uicknode
[Qq]uickstarts
[Rr]eact
Expand Down Expand Up @@ -256,6 +258,7 @@ Xai
XDC
YouTube
Zengo
Zerion
ZetaChain
Zilliqa
Zircuit
Expand Down
10 changes: 10 additions & 0 deletions pages/_meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,16 @@
"type": "page",
"display": "hidden"
},
"config-service-configuration": {
"title": "Config Service Reference",
"type": "page",
"display": "hidden"
},
"transaction-service-configuration": {
"title": "Transaction Service Configuration",
"type": "page",
"display": "hidden"
},
"core-api": {
"title": "API",
"type": "page"
Expand Down
2 changes: 1 addition & 1 deletion pages/advanced/cli-reference/common-commands.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@ pip install "safe-cli[ledger]"

When running on Linux, make sure the following rules have been added to `/etc/udev/rules.d/`:

```commandline
```bash
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2c97", ATTRS{idProduct}=="0000", MODE="0660", TAG+="uaccess", TAG+="udev-acl" OWNER="<UNIX username>"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2c97", ATTRS{idProduct}=="0001", MODE="0660", TAG+="uaccess", TAG+="udev-acl" OWNER="<UNIX username>"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2c97", ATTRS{idProduct}=="0004", MODE="0660", TAG+="uaccess", TAG+="udev-acl" OWNER="<UNIX username>"
Expand Down
2 changes: 1 addition & 1 deletion pages/advanced/passkeys/tutorials/react-native.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ When [creating the emulator](https://docs.expo.dev/get-started/set-up-your-envir

Create a file named `.env` in the root of your project and add the following keys:

```.env
```bash
// from ../../../../examples/react-native-passkeys/.env-sample
```

Expand Down
32 changes: 32 additions & 0 deletions pages/config-service-configuration/_meta.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
{
"home": {
"title": "← Go Back",
"href": "/core-api/api-overview"
},
"overview": "Overview",
"-- Authentication & Authorization": {
"type": "separator",
"title": "Authentication & Authorization"
},
"add-or-edit-group": "Add or edit groups",
"add-user": "Add users",
"edit-user": "Edit users",
"-- Chains": {
"type": "separator",
"title": "Chains"
},
"add-or-edit-chain": "Add or edit chains",
"add-or-edit-feature": "Add or edit features",
"add-or-edit-gas-price": "Add or edit gas prices",
"add-or-edit-wallet": "Add or edit wallets",
"-- Safe apps": {
"type": "separator",
"title": "Safe apps"
},
"add-or-edit-safe-app": "Add or edit Safe Apps",
"add-or-edit-safe-app-feature": "Add or edit Safe App features",
"add-or-edit-tag": "Add or edit tags",
"add-or-edit-client": "Add or edit clients",
"add-or-edit-provider": "Add or edit providers",
"add-or-edit-social-profile": "Add or edit social profiles"
}
191 changes: 191 additions & 0 deletions pages/config-service-configuration/add-or-edit-chain.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,191 @@
# Add or edit chains

Add (or edit) a blockchain network.

## Usage

You can add a new chain by visiting this address: [`http://localhost:8000/cfg/admin/chains/chain/add/`](http://localhost:8000/cfg/admin/chains/chain/add/)

You can edit an existing chain by visiting this address: `http://localhost:8000/cfg/admin/chains/chain/{chain index}/change/` where `{chain index}` is the index of the chain you want to edit.

## Parameters

### `Chain Id`

The unique identifier for the chain.

### `Relevance`

The relative importance of this chain for your project. You can use this value between 0 and 100 to sort chains in the UI.

### `Chain name`

The name of the chain, in plain letters.

### `EIP-3770 short name`

The short name of the chain, as defined in [EIP-3770](https://eips.ethereum.org/EIPS/eip-3770). This corresponds to the letters that will be prepended to all addresses on this chain.

### `Description`

A brief description of the chain.

### `Chain logo uri`

The chain's logo to upload. This will be displayed in the UI.

### `L2`

Whether this chain is a Layer 2 chain.

### `Is testnet`

Whether this chain is a testnet. This will be indicated in the UI.

### `Rpc authentication`

Whether the RPC endpoint requires authentication to access its data.

### `Rpc uri`

The URI of the chain's RPC endpoint.

### `Safe apps rpc authentication`

Whether the RPC endpoint dedicated to Safe Apps will require authentication.

### `Safe Apps rpc uri`

The URI of the chain's RPC endpoint dedicated to Safe Apps.

### `Public rpc authentication`

Whether the fallback public RPC endpoint will require authentication.

### `Public rpc uri`

The URI of the chain's RPC public endpoint.

### `Block explorer uri address template`

The URI template for the chain's block explorer addresses. This will be used to generate address links to the block explorer. For example: `https://etherscan.io/address/{{address}}`.

### `Block explorer uri tx hash template`

The URI template for the chain's block explorer transaction hashes. This will be used to generate `txHash` links to the block explorer. For example: `https://etherscan.io/tx/{{txHash}}`.

### `Block explorer uri api template`

The URI template for the chain's block explorer API. This will be used to fetch data from the block explorer. For example: `https://api.etherscan.io/api`.

### `Beacon chain explorer uri public key template`

The URI template for the chain's beacon chain explorer public keys. This will be used to generate public key links to the beacon chain explorer. For example: `https://beaconscan.com/validator/{{publicKey}}`.

### `Currency name`

The name of the chain's native currency.

### `Currency symbol`

The symbol of the chain's native currency.

### `Currency decimals`

The number of decimals of the chain's native currency.

### `Currency logo uri`

The chain's native currency logo to upload. This will be displayed in the UI.

### `Transaction service uri`

The URI of the chain's [Transaction Service](/core-api/api-safe-transaction-service). This will be used to fetch transaction data from the chain. You will need to deploy one Transaction Service per chain, as well as `txs-db`, `amqp` and `celery` instances.

### `Vpc transaction service uri`

The URI of the chain's VPC Transaction Service. If you are using a Virtual Private Cloud (VPC) to run your Transaction Service, you can set this URI to fetch transaction data from the chain.

### `Theme text color`

The hexadecimal chain color to display the text in the UI.

### `Theme background color`

The hexadecimal chain color to display the background in the UI.

### `Ens registry address`

The address of the chain's ENS registry.

### `Recommended mastercopy version`

The recommended version of the chain's mastercopy. This will be used to display a warning if the mastercopy is outdated. For example: `1.4.1`.

### `Prices provider native coin`

The native coin used by the chain's price provider.

### `Prices provider chain name`

The name of the chain on CoinGecko.

### `Balances provider chain name`

The name of the chain on Zerion. (Not implemented.)

### `Balances provider enabled`

Whether the chain's balances provider is enabled.

### `Hidden`

Whether the chain is hidden in the UI.

### `Safe singleton address`

The address of the chain's Safe singleton.

### `Safe proxy factory address`

The address of the chain's Safe ProxyFactory.

### `Multisend address`

The address of the chain's MultiSend contract.

### `Multisand call only address`

The address of the chain's MultiSendCallOnly contract.

### `Fallback handler address`

The address of the chain's FallbackHandler contract.

### `Sign message lib address`

The address of the chain's SignMessageLib contract.

### `Create call address`

The address of the chain's CreateCall contract.

### `Simulate tx accessor address`

The address of the chain's SimulateTxAccessor contract.

### `Safe web authn signer factory address`

The address of the chain's SafeWebAuthnSignerFactory contract.

### Features enabled on this chain

A list of [features](./add-or-edit-feature.mdx) enabled on this chain. You can select as many as you want by clicking `+ Add another Feature-chain relationship`.

### Gas prices set for this chain

A list of [gas prices](./add-or-edit-gas-price.mdx) set for this chain. You can select as many as you want by clicking `+ Add another Gas price`.

### Wallets enabled for this chain

A list of [wallets](./add-or-edit-wallet.mdx) enabled for this chain. You can select as many as you want by clicking `+ Add another Wallet-chain relationship`.
15 changes: 15 additions & 0 deletions pages/config-service-configuration/add-or-edit-client.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Add or edit Safe App clients

Add (or edit) a new client to the configuration, so they can be attributed to Safe Apps.

## Usage

You can add a new client by visiting this address: `http://localhost:8000/cfg/admin/safe_apps/client/add/`

You can edit an existing client by visiting this address: `http://localhost:8000/cfg/admin/safe_apps/client/{client index}/change/` where `{client index}` is the index of the client you want to edit.

## Parameters

### `Url`

The URL the client is hosted at.
24 changes: 24 additions & 0 deletions pages/config-service-configuration/add-or-edit-feature.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Add or edit chain features

Add (or edit) a new feature to the configuration, so they can be attributed to chains.

## Usage

You can add a new feature by visiting this address: `http://localhost:8000/cfg/admin/chains/feature/add/`

You can edit an existing feature by visiting this address: `http://localhost:8000/cfg/admin/chains/feature/{feature index}/change/` where `{feature index}` is the index of the feature you want to edit.

## Parameters

### `Chains`

Select the chains that will have this feature enabled.

### `Key`

The key of the feature. This is the unique identifier for the feature.

### `Description`

A brief description of the feature.

43 changes: 43 additions & 0 deletions pages/config-service-configuration/add-or-edit-gas-price.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Add or edit chain gas prices

Add (or edit) a new gas price to the configuration, so they can be attributed to chains.

## Usage

You can add a new gas price by visiting this address: `http://localhost:8000/cfg/admin/chains/gasprice/add/`

You can edit an existing gas price by visiting this address: `http://localhost:8000/cfg/admin/chains/gasprice/{gasprice index}/change/` where `{gasprice index}` is the index of the gas price you want to edit.

## Parameters

### `Chain`

The chain that will have this gas price enabled.

### `Oracle uri`

The URI of the oracle that will provide the gas price.

### `Oracle parameter`

The parameter that will be used to fetch the gas price from the oracle.

### `Gwei multiplier factor`

The factor that will be used to multiply the fetched gas price. This is useful when the oracle returns the gas price in a different unit than Gwei.

### `Fixed gas price (wei)`

A fixed gas price that will be used instead of fetching it from the oracle. This is useful when the oracle is not available.

### `Rank`

The relative importance of this gas price to your project. You can use this value between 0 and 100 to sort gas prices by priority.

### `Max fee per gas (wei)`

The `maxFeePerGas` that will be used to calculate the gas price. This is useful when the oracle returns a gas price that is too high.

### `Max priority fee per gas (wei)`

The `maxPriorityFeePerGas` that will be used to calculate the gas price. This is useful when the oracle returns a gas price that is too high.
17 changes: 17 additions & 0 deletions pages/config-service-configuration/add-or-edit-group.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Add or edit user groups

Add (or edit) a new group of permissions to the configuration, so they can be attributed to users.

## Usage

You can add a new group by visiting this address: `http://localhost:8000/cfg/admin/auth/group/add/`

## Parameters

### `Name`

The name of the permission group.

### `Permissions`

Individual permissions to be added to the group. You can select as many as you want from the left column `Available permissions` and move them to the right column `Selected permissions`.
Loading

0 comments on commit b99e57f

Please sign in to comment.