Skip to content

Commit b11a676

Browse files
authored
Merge pull request #54 from omahs/patch-1
fix: typos
2 parents 2accb72 + 46270ba commit b11a676

File tree

12 files changed

+28
-28
lines changed

12 files changed

+28
-28
lines changed

docs/Build/contract-setup/configuring-plugs.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ You can read more about Plugs [here](../../Learn/Components/Plugs.md). Once conn
1515

1616
## Configuring Plug Parameters
1717

18-
Plugs should be deployed on respective chains before they can be connected to their sibling Plugs deployed on other chains. Once you are ready with Plugs deployed on the networks you want to work with, its time to get Plugged!
18+
Plugs should be deployed on respective chains before they can be connected to their sibling Plugs deployed on other chains. Once you are ready with Plugs deployed on the networks you want to work with, it's time to get Plugged!
1919

2020
**Here's the parameters required for connection**
2121

@@ -30,7 +30,7 @@ You can find addresses for all verified Switchboards and Socket contracts in [De
3030

3131
## Connecting your Plugs
3232

33-
Once you have the Socket address you are connecting to, you just need call the `connect` method on it to configure your Plug on that chain. Remember, you need to call `connect` on both the chains you want to work with.
33+
Once you have the Socket address you are connecting to, you just need to call the `connect` method on it to configure your Plug on that chain. Remember, you need to call `connect` on both the chains you want to work with.
3434

3535
Below is a quick example for how your Plug can call the `connect` method on Socket
3636

@@ -66,4 +66,4 @@ Furthermore, you can do the following to check the connection is successful :
6666
- Call the `getPlugConfig` function on the Socket contract that returns the config for your Plug for a given destination ChainSlug
6767
- Use the [Check Connection API](../../dev-resources/APIReference/CheckConnection.md) that reads the configs and aids you to make sure your connection is correct
6868

69-
<!-- // TODO: ADD GIF; ITs time to send it -->
69+
<!-- // TODO: ADD GIF; ITs time to send it -->

docs/Build/contract-setup/sending.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ sidebar_position: 2
1010

1111
| Parameters | Description |
1212
| --- | --- |
13-
| remoteChainSlug | ChainSlug of the network where you want to send your messsage to |
13+
| remoteChainSlug | ChainSlug of the network where you want to send your message to |
1414
| payload | The message you want to send to the plug on remoteChainSlug |
1515
| msgGasLimit | gasLimit required to execute the `payload` on remoteChainSlug |
1616

@@ -41,7 +41,7 @@ Equipped with the payload we want to send, we can now call the outbound on Socke
4141
<!-- // TODO: add API link -->
4242

4343
Once the tx is finalised:
44-
- An event `MessageOutbound` is emitted by Socket containing all relavent details.
44+
- An event `MessageOutbound` is emitted by Socket containing all relevant details.
4545
- Your message will be allocated a unique ID called (`msgId`) you can look it up in the `MessageOutbound` log
4646

4747
You can use the tx-hash to track the delivery and execution on the destination chain via [this API](../../dev-resources/APIReference/Track.md).

docs/Learn/Components/Capacitors.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@ Anything can become a capacitor, it should be able to compress messages lossless
1212
// capacitor compresses multiple messages into a bytes32 variable
1313
bytes32 capacitor_hat root = Capacitor(msg1, msg2, msg3...)
1414
```
15-
Usually, since a capacitor batches messages together but messages on destination are executed individually, capacitors are paired with decapcitors automatically.
15+
Usually, since a capacitor batches messages together but messages on destination are executed individually, capacitors are paired with decapacitors automatically.
1616

1717
```javascript
18-
// a decapacitor should be able to retrive the messsage from the root via a proof
18+
// a decapacitor should be able to retrieve the message from the root via a proof
1919
bytes msg1 = Decapacitor(capacitor_root, proof)
2020
```
2121

@@ -27,4 +27,4 @@ CapacitorFactory is an upgradable contract that lists different kinds of Capacit
2727

2828
CapacitorFactory assigns each type of Capacitor a "type" which is a unique identifier(uint32) used to refer to a specific capacitor. While registering a switchboard to Socket like defined here, you specify a capacitor_type, the registration function deploys the switchboard specific capacitor and decapacitor. Developers have the ability to define the level of batching they want while they register the switchboard.
2929

30-
More details around access control and ownership of CapacitorFactory [contract here](../Ownership.md).
30+
More details around access control and ownership of CapacitorFactory [contract here](../Ownership.md).

docs/Learn/Components/Plugs.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
Smart contracts that connect to Socket to send messages to each other across chains are called Plugs. Before your Plugs can communicate to each other directly, you need to connect to Socket and inform Socket about your sibling Plugs. Plugs must “connect” or get “plugged into” Socket for each unique sibling network for sending/receiving messages.
22

3-
It's recommended to keep this action permissioned, malicious configration while connecting to Socket will cause unintended actions. In case a connection between two plugs already exists on a chain, re-connecting will override the previous configuration, Socket by default doesnt block this behaviour. However you are free to block this behaviour from your Plug.
3+
It's recommended to keep this action permissioned, malicious configuration while connecting to Socket will cause unintended actions. In case a connection between two plugs already exists on a chain, re-connecting will override the previous configuration, Socket by default doesn't block this behaviour. However you are free to block this behaviour from your Plug.

docs/Learn/Components/Switchboards.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
1-
Plugs connect to Socket via Switchboards(just like in real life). Switchboards are like open-source permissionless configration bundles that plugs can opt into OR build their own configration bundles.
1+
Plugs connect to Socket via Switchboards(just like in real life). Switchboards are like open-source permissionless configuration bundles that plugs can opt into OR build their own configuration bundles.
22

33
Switchboards contain the following things:
4-
- Packet authenticaion via `allowPacket` method
4+
- Packet authentication via `allowPacket` method
55
- Capacitor to be used for that switchboard
66
- Decapacitor to be used for verifying message inclusion in Packet
77
- minFees for packet validation
88

9-
Switchboards allow developers to permissionlessly authenticate Packets before they get executed on their Plugs, we think there are various authenticaion models that people can leverage to manage tradeoffs for their applications.
9+
Switchboards allow developers to permissionlessly authenticate Packets before they get executed on their Plugs, we think there are various authentication models that people can leverage to manage tradeoffs for their applications.
1010

1111
Anyone can build a switchboard that satisfies the [ISwitchboard interface](../../dev-resources/Interfaces/ISwitchboard.md). It needs to be registered to Socket before Plugs can use it via the `registerSwitchboard()` method on Socket. Registering a Switchboard is completely permissionless.
1212

1313
Socket Labs has bootstrapped some switchboards with different tradeoffs for end developers, we encourage developers to feel free to leverage these switchboards if they are suitable for their usecase.
1414
- Optimistic Switchboard: Allow 1/N trust-minimised and cheap validation by introducing a challenge mechanism pre-execution where N parties can stop the packet from getting executed. This Switchboard will be extremely cheap to leverage but will have a latency of the challenge period.
1515
- Fast Switchboard: Allow 1/N trust minimised validation by having all N parties attest on-chain, this is still as secure as the OptimisticSwitchboard but might cost more on-chain depending on the destination chain.
16-
- Native Switchboard: Allows developers to leverage native verification for eg: rollup-validation whereever it's available, we have built these connectors for Polygon, Arbitrum and Optimism right now. Developers who want to leverage security of the native-security should leverage these.
16+
- Native Switchboard: Allows developers to leverage native verification for eg: rollup-validation wherever it's available, we have built these connectors for Polygon, Arbitrum and Optimism right now. Developers who want to leverage security of the native-security should leverage these.
1717

18-
We encourage developers to build their own Switchboards and register them on the Socket contract, we would love to drive innnovation on the verification layer.
18+
We encourage developers to build their own Switchboards and register them on the Socket contract, we would love to drive innovation on the verification layer.
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
As messages get accumulated by the capacitor, transmitters can seal the capacitors whenever it's ready to discharge to seal the Packet and create
22
SealedPacket. Once the packet is sealed it's ready to be transmitted and submitted to the propose method on the destination Socket. To seal and to propose the msg.sender needs to have the transmitter's signature over the Packet.
33

4-
Transmitters are part of the delivery layer and are responsible for only the liveliness of the protocol. Transmitters operations are completely on-chain and publicly visible to everyone, this is a very important property. Transmitters are also a very light-weight and can be extended to any chain quickly.
4+
Transmitters are part of the delivery layer and are responsible for only the liveliness of the protocol. Transmitters operations are completely on-chain and publicly visible to everyone, this is a very important property. Transmitters are also very light-weight and can be extended to any chain quickly.
55

66
Transmitters are managed by TransmitManager contract which takes care of the following:
77
- Leader selection between multiple transmitters
88
- Fee collection and distribution
9-
- Managing the set of transmitters
9+
- Managing the set of transmitters

docs/Learn/Concepts/Fees.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ Fees can be estimated off-chain using the [Fee Estimation API](../../dev-resourc
2929

3030
### Estimating Fees on-chain
3131

32-
Sending a cross-chain message requires the message to be verified and executed on the destination chain and the fees for this need to be calculated with the destination chain `gasPrice`. But the gasPrice of the destination chain is not known on the source chain. To enable this calculation, Socket maintains an siblingChain gas fee mapping on the ExecutionManager, TransmitManager and Switchboards. These fees are updated periodically by off-chain agents with the `FEES_UPDATER_ROLE`
32+
Sending a cross-chain message requires the message to be verified and executed on the destination chain and the fees for this need to be calculated with the destination chain `gasPrice`. But the gasPrice of the destination chain is not known on the source chain. To enable this calculation, Socket maintains a siblingChain gas fee mapping on the ExecutionManager, TransmitManager and Switchboards. These fees are updated periodically by off-chain agents with the `FEES_UPDATER_ROLE`
3333

3434
#### How to fetch fee estimate
3535
Plugs can use [ISocket](../../dev-resources/Interfaces/ISocket.md) to call `getMinFees` method on Socket. This method takes the payload execution gasLimit, destination chain ID, payload size and plug address as input and calculates the total fee. This enables Plugs to be completely on-chain and not rely on any off-chain services for fee calculation or to interact with Socket.

docs/Learn/Ownership.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
We strongly believe that contracts should be immutable, non-upgradable, upgrades should be opt-in by clients. We have clear roles on the contract and plans on how to remove them. All roles are listed in the [AccessRoles.sol contract](https://github.com/SocketDotTech/socket-DL/blob/master/contracts/utils/AccessRoles.sol)
22

33
Here are some of the roles and the purpose:
4-
- `RESCUE_ROLE`: It's only used to rescue funds if stuck in a contract which isnt supposed to hold funds. This is just a safety role to allow us to give back people their ERC20s or ETHER that they might have accidently sent.
4+
- `RESCUE_ROLE`: It's only used to rescue funds if stuck in a contract which isnt supposed to hold funds. This is just a safety role to allow us to give back people their ERC20s or ETHER that they might have accidentally sent.
55
- `WITHDRAW_ROLE`: We haven't built a permissionless way to execute fee distribution via TransmitManager, ExecutionManager and Switchboard yet, hence we have this special role to allow us to withdraw and distribute the fees. This role will deprecate once the fee distribution logic is on-chain. This does not impact the security implications for the end user and only affects the off-chain agents.
66
- `EXECUTOR_ROLE`: This role whitelists addresses to allow them to execute messages post permissionless validation by the switchboard. This role is currently permissioned to prevent users from harmful effects of REV. This role holds no security implications.
77
- `TRANSMITTER_ROLE`: This role is not part of Socket protocol. This role is used by TransmitManager to grant approval to a particular transmitter to seal and propose packets. TransmitterManager is a modular contract.
8-
- `GOVERNANCE_ROLE`: This one is an interesting one. The role is minimally used by intention. This role CANNOT UPDATE the security properties of a message and or modify user preferences. This role is minimally used in the core-contracts to update the `TransmitManager` and `ExecutionManager` modules, both of which cannot harm the end developer and in the worst case just pause the protocol as the current `TransmitManager` and `ExecutionManager` modules are implemented. Apart from the core-contracts, the GOVERNANCE_ROLE can be utilised with a different setting in the swithboards but switchboards are permissionless already and developers can remove or update the usage of the role according to their preferences.
8+
- `GOVERNANCE_ROLE`: This one is an interesting one. The role is minimally used by intention. This role CANNOT UPDATE the security properties of a message and or modify user preferences. This role is minimally used in the core-contracts to update the `TransmitManager` and `ExecutionManager` modules, both of which cannot harm the end developer and in the worst case just pause the protocol as the current `TransmitManager` and `ExecutionManager` modules are implemented. Apart from the core-contracts, the GOVERNANCE_ROLE can be utilised with a different setting in the switchboards but switchboards are permissionless already and developers can remove or update the usage of the role according to their preferences.
99
- `TRIP_ROLE`: This role allows holder to trip or pause a `Switchboard`, in case of smart contract bugs on a specific `Switchboard`
1010
- `UN_TRIP_ROLE`: This role allows holder to untrip or unpause a `Switchboard`
1111
- `WATCHER_ROLE`: Role assigned to `Switchboard` watchers. Watchers play different a different role depending on the Switchboard used. For example, in Optimistic Switchboards, Watchers can trip a specific path/packet if any fraud was detected.
12-
- `FEES_UPDATER_ROLE`: Role assigned to off-chain agents that update gas fees for each siblingChain on a given switchboard, TransmitManager and ExecutionManager
12+
- `FEES_UPDATER_ROLE`: Role assigned to off-chain agents that update gas fees for each siblingChain on a given switchboard, TransmitManager and ExecutionManager

docs/Learn/glossary.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,10 @@ We have introduced a lot of new terms and that is by design. We think for someth
99
Here is a quick run-down of some of the terms that you will come across the entire documentation:
1010
- **Socket**: Socket is the [core contract](https://github.com/SocketDotTech/socket-DL/blob/master/contracts/socket/Socket.sol) deployed on all networks that are supported. All core modules and functions exist within Socket
1111
- **Plug/Plugs**: Plugs are smart contract applications that connect with Socket to send and receive cross-chain messages via the [IPlug interface](../dev-resources/Interfaces/IPlug.md). Plugs are generally adapter contracts that connect your main Smart contract to the messaging infrastructure.
12-
- **Message**: Message is the payload you want to transmit along with relavent meta-data like destination chainSlug etc.
12+
- **Message**: Message is the payload you want to transmit along with relevant meta-data like destination chainSlug etc.
1313
- **Packet**: Packets are a collection of messages sent from one chain to another. The validity of messages in a packet is verified on the destination chain based on the logic prescribed in the configured switchboard. [Read more](./Components/Packet.md).
1414
- **Sealed Packet**: As soon as the transmitter seals the packet on the source-chain with their signature it's called "SealedPacket". Read more about how transmitters work [here](./lifecycle.md#sending-a-message).
15-
- **Capacitor**: Capacitor is responsibile for storing messages in the form of a Packet. The packet is released when the transmitter calls the `sealPacket` method on the capacitor. Capacitors allow for native batching of payloads for better gas-performance. [Read more](./Components/Capacitors.md).
16-
- **Switchboard**: Switchboards are the authenticaion/verification modules that allow developers to have custom verification for their payloads/messages. They can be permissionlessly built and deployed by the community. [Read more](./Components/Switchboards.md)
15+
- **Capacitor**: Capacitor is responsible for storing messages in the form of a Packet. The packet is released when the transmitter calls the `sealPacket` method on the capacitor. Capacitors allow for native batching of payloads for better gas-performance. [Read more](./Components/Capacitors.md).
16+
- **Switchboard**: Switchboards are the authentication/verification modules that allow developers to have custom verification for their payloads/messages. They can be permissionlessly built and deployed by the community. [Read more](./Components/Switchboards.md)
1717
- **Transmitter**: Transmitters are the entities responsible for transmission of Packet across layers, their activity is completely on-chain and managed by TransmitManager. [Read more](./Components/TransmitManager.md)
18-
- **ChainSlug**: ChainSlug is a unique identifier for a particular network or Socket deployment. It's different than Chain ID or Network ID used on EVM networks. You can find the assigned ChainSlugs in the [deployments section](../dev-resources/Deployments.mdx)
18+
- **ChainSlug**: ChainSlug is a unique identifier for a particular network or Socket deployment. It's different than Chain ID or Network ID used on EVM networks. You can find the assigned ChainSlugs in the [deployments section](../dev-resources/Deployments.mdx)

docs/Learn/protocol-architecture.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ There are several components in the Socket protocol that work together to make t
1818

1919
## Architecture
2020

21-
Socket is built in a modular fashion with various layers with defined APIs/Interfaces between them which allows developers the ability to leverage the software-stack in different and more efficent ways depending on their application context.
21+
Socket is built in a modular fashion with various layers with defined APIs/Interfaces between them which allows developers the ability to leverage the software-stack in different and more efficient ways depending on their application context.
2222

2323
The protocol consists of four key layers:
2424
1. **Application Layer**: This layer consists of `Plugs`, which are smart contract applications built to interact with Socket. Plugs follow a specified API and communicate through deployed Socket instances between any two supported chains. The core Socket contract functions as an on-chain endpoint that sends and receives payloads between chains. As applications send payloads through Plugs, Socket compresses them into cryptographic hashes called `Packets`, which represent thousands of payloads across apps.
@@ -29,4 +29,4 @@ The protocol consists of four key layers:
2929

3030
<img src="/img/dl-layers.png"/>
3131

32-
Learn more about individual compoenents in [Components](./Components/Capacitors.md) and [Offchain Agents](./OffChain-Agents.md).
32+
Learn more about individual components in [Components](./Components/Capacitors.md) and [Offchain Agents](./OffChain-Agents.md).

0 commit comments

Comments
 (0)