Skip to content

Commit

Permalink
Add ZeroDev Guide and 17/07 Core Dev Call (#699)
Browse files Browse the repository at this point in the history
* Merge main into dev (#665)

* Core Devs Call Notes April 18, 2024 (#660)

* Add files via upload

* new bridges draft - 1

* change bridge architecture

* bridges section update

* updated legacy links for bridges

* dev links updated

* links for bridges

* screenshots

* bridges ss

* fix(bridges): typo

* Core Devs Call April 3, 2024 (#654)

* fix: using datadir instead of validator-dir (#647)

* node structure and updates (#648)

* metadata test

* thumbnail

* thumbnail

* thumbnail fix

* thumbnail fix

* added image for metadata

* added image for metadata

* added image for metadata

* added image for metadata

* added image for metadata

* added image for metadata

* minor fixes

* Solve conflicts

* Add files via upload

* Update README.md

updated and edited some part

* Update depositWithdrawalReward.md

* Update generalQuestions.md

* hard-fork info

* governance summary added

* fixing validator section

* config for redirects

* fixed node structure

* Update _category_.json

---------

Co-authored-by: Giacomo Licari <[email protected]>
Co-authored-by: Armagan Ercan <[email protected]>

* Add files via upload (#650)

* Bridge UI related changes for docs (#652)

* Add files via upload

* new bridges draft - 1

* change bridge architecture

* bridges section update

* updated legacy links for bridges

* dev links updated

* links for bridges

* screenshots

* bridges ss

---------

Co-authored-by: Vanshika

---------

Co-authored-by: cgi-bin/ <[email protected]>
Co-authored-by: Vanshika Srivastava <[email protected]>
Co-authored-by: Giacomo Licari <[email protected]>
Co-authored-by: zengzengzenghuy <[email protected]>

* Add files via upload

* added new provider for data indexing, some minor link changes

* fixed redirect for media kit

* added zerodev segment

* resolve configuration error

* Add CI for manual deployments to production, rename deploy.yml to dev_deploy.yml which handles deploys to dev/staging only (#658)

Co-authored-by: Giacomo Licari <[email protected]>

* Add slack_release_notifications.yml (#659)

Co-authored-by: Giacomo Licari <[email protected]>

* Add files via upload

* Update authors.yml

* fix: build error

* bridge: add governance proposal (unlocked EURe due to bridge UI issue)

* Added RPC nodes to moralis section (#662)

---------

Co-authored-by: Vanshika <[email protected]>
Co-authored-by: zengzengzenghuy <[email protected]>
Co-authored-by: cgi-bin/ <[email protected]>
Co-authored-by: Giacomo Licari <[email protected]>
Co-authored-by: giacomognosis <[email protected]>
Co-authored-by: Giacomo Licari <[email protected]>
Co-authored-by: Filip Martinsson <[email protected]>

* Added RPC nodes to moralis section (#662) (#664)

* Add files via upload

* new bridges draft - 1

* change bridge architecture

* bridges section update

* updated legacy links for bridges

* dev links updated

* links for bridges

* screenshots

* bridges ss

* fix(bridges): typo

* Core Devs Call April 3, 2024 (#654)

* fix: using datadir instead of validator-dir (#647)

* node structure and updates (#648)

* metadata test

* thumbnail

* thumbnail

* thumbnail fix

* thumbnail fix

* added image for metadata

* added image for metadata

* added image for metadata

* added image for metadata

* added image for metadata

* added image for metadata

* minor fixes

* Solve conflicts

* Add files via upload

* Update README.md

updated and edited some part

* Update depositWithdrawalReward.md

* Update generalQuestions.md

* hard-fork info

* governance summary added

* fixing validator section

* config for redirects

* fixed node structure

* Update _category_.json

---------

Co-authored-by: Giacomo Licari <[email protected]>
Co-authored-by: Armagan Ercan <[email protected]>

* Add files via upload (#650)

* Bridge UI related changes for docs (#652)

* Add files via upload

* new bridges draft - 1

* change bridge architecture

* bridges section update

* updated legacy links for bridges

* dev links updated

* links for bridges

* screenshots

* bridges ss

---------

Co-authored-by: Vanshika

---------

Co-authored-by: cgi-bin/ <[email protected]>
Co-authored-by: Vanshika Srivastava <[email protected]>
Co-authored-by: Giacomo Licari <[email protected]>
Co-authored-by: zengzengzenghuy <[email protected]>

* Add files via upload

* added new provider for data indexing, some minor link changes

* fixed redirect for media kit

* added zerodev segment

* resolve configuration error

* Add CI for manual deployments to production, rename deploy.yml to dev_deploy.yml which handles deploys to dev/staging only (#658)

Co-authored-by: Giacomo Licari <[email protected]>

* Add slack_release_notifications.yml (#659)

Co-authored-by: Giacomo Licari <[email protected]>

* Add files via upload

* Update authors.yml

* fix: build error

* bridge: add governance proposal (unlocked EURe due to bridge UI issue)

* Added RPC nodes to moralis section (#662)

---------

Co-authored-by: Armagan Ercan <[email protected]>
Co-authored-by: zengzengzenghuy <[email protected]>
Co-authored-by: cgi-bin/ <[email protected]>
Co-authored-by: Giacomo Licari <[email protected]>
Co-authored-by: giacomognosis <[email protected]>
Co-authored-by: Giacomo Licari <[email protected]>
Co-authored-by: Filip Martinsson <[email protected]>

* CI: fix tag regex

* CI: fix tag name in tag release

* CI: fix missing permissions

---------

Co-authored-by: Armagan Ercan <[email protected]>
Co-authored-by: Vanshika <[email protected]>
Co-authored-by: zengzengzenghuy <[email protected]>
Co-authored-by: cgi-bin/ <[email protected]>
Co-authored-by: Giacomo Licari <[email protected]>
Co-authored-by: Filip Martinsson <[email protected]>

* Update README, add instructions on deployments to production (#667)

* Core Devs Call April 24, 2024

* chore: update hardforks info (#668)

* chore: update clients versions

* chore: add dancun hardfork hashes

* chore: add shapella schedule table

* small fix

* grammar fixes

* Add files via upload

* Update README.md

updated cover image

* fix for developer broken page link

* chore: update bridges addresses info

* Feature/improve ci (#675)

* CI: update actions, improve tag fetching

* CI: add cache invalidation

* chore: update bridges FAQ

* chore: update Sepolia-Chiado testnet bridges addresses

* Add files via upload

* fix broken mdx files

* broken links, package updates

* remove mGNO related content

* Add files via upload

* refactor(bridges): remove outdated content and consolidate bridge validator & bridge governance into bridge management (#680)

* refactor(bridge): refactor 'Understanding Token Bridgess'

* chore(bridge): update Hashi-related info

* chore(bridges): move all bridge governance and validators contents under 'bridge management'

* chore(bridges): remove outdated content and update info

* Added Option 3: "Running Your Own Deposit UI Instance Locally" (#672)

* added links to third party bridges and update legacy UI section

* bridges update

* reconfigure bridge segment

* new segment form

* fix a broken link

* faq: update bridge FAQs

* Add files via upload

* Update 06-19-core-devs-call.md

* updated docs on The Graph (#683)

* add pyth to oracle (#686)

* Add Chronicle to Oracles list (#685)

* Add Chronicle to Oracles list

* Add link for support

* Add files via upload

* added api3 updated docs

* fixed accorn error

* chore(bridge): add AMB Helper contract adddress for Chiado & remove duplicated governance content

* fix(bridge): swap Gateway validator address

* Update README.md

added optional hardwares

* add: concurrency config to workflows

* setup shutterized gc nav bar and id

* Update Covalent content to reflect rebrand to GoldRush (#694)

* shutterized network gnosis specifications added

* add a network component button and render in md file

* add a network component button and render in md file

* change shutter network navig

* feat(bridge): add Hashi-Gnosis contracts audits

* tweak the css of feature card && add shutter card

* updated shutter network details, minor changes for validator page

* changenetwork.js file updated

* fix:spacing

* fix: update Validator Deposits section (#696)

* typo

* chore(bridge): upload Hashi Gnosis Final Audit Reports

* Add files via upload

* fix

* remove the 07-17 core dev call md

* clean AA Section, add zerodev segment

* add zerodev guide

---------

Co-authored-by: giacomognosis <[email protected]>
Co-authored-by: Armagan Ercan <[email protected]>
Co-authored-by: zengzengzenghuy <[email protected]>
Co-authored-by: cgi-bin/ <[email protected]>
Co-authored-by: Giacomo Licari <[email protected]>
Co-authored-by: Filip Martinsson <[email protected]>
Co-authored-by: 4rgon4ut <[email protected]>
Co-authored-by: zengzengzenghuy <[email protected]>
Co-authored-by: Felix <[email protected]>
Co-authored-by: AK <[email protected]>
Co-authored-by: Aditya Arora <[email protected]>
Co-authored-by: biancabuzea200 <[email protected]>
Co-authored-by: Armagan Ercan <[email protected]>
Co-authored-by: riccardo <[email protected]>
Co-authored-by: Harish Raisinghani <[email protected]>
Co-authored-by: ilge.ustun <[email protected]>
Co-authored-by: Wagalidoom <[email protected]>
  • Loading branch information
18 people authored Jul 24, 2024
1 parent 524168a commit b4a353b
Show file tree
Hide file tree
Showing 5 changed files with 302 additions and 27 deletions.
28 changes: 3 additions & 25 deletions docs/technicalguides/account-abstraction/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ sidebar_label: Account Abstraction
---

# Understanding Account Abstraction

<FeatureCard imgUrl="">
<h2>What is Account Abstraction ? </h2>
<p>Account abstraction allows for more flexible and user-friendly account models beyond the traditional externally owned accounts (EOAs). With AA, smart contract wallets can initiate transactions, enabling more complex logic like multi-signature verification, recovery mechanisms, and gas fee payments in tokens. AA revolves around the idea of avoiding the need for change in concensus layer.</p>
Expand All @@ -16,19 +15,19 @@ sidebar_label: Account Abstraction
url=""
/>
<Card
title="Seamless and frictionless user onboarding experience"
title="Seamless user onboarding experience"
url=""
/>
<Card
title="Batched transaction for sending multiple transactions"
url=""
/>
<Card
title="Sponsoring user gas fees for gasless experience"
title="Sponsoring users gas fees for gasless experience"
url=""
/>
<Card
title="Allowing users to pay gas fees in USDC/USDT without the need of native gas token"
title="Allowing users to pay gas fees in stablecoins "
url=""
/>
</CardContainer>
Expand All @@ -47,24 +46,3 @@ import DocCardList from '@theme/DocCardList';



### AA with Safe and Gelato

[Safe](https://docs.safe.global/) is the most trusted decentralized custody protocol and collective asset management platform on Ethereum and the EVM. It provides a variety of Account Abstraction stacks for developers to integrate and build Account Abstraction on top of Safe.

Gelato is web3’s decentralized backend empowering builders to create augmented smart contracts that are automated, gasless & off-chain aware on all major EVM-compatible blockchains.

- **Key Features:**
- Multi-signature accounts.
- Account Abstraction SDK.
- Protocol, Auth, Onramp, and Relay Kits for comprehensive AA functionalities.

For more information on Gelato , visit the [Gelato documentation](https://docs.gelato.network/).

For more details, refer to the [Safe documentation](https://docs.safe.global/).

:::info
AA with ZeroDev (coming up soon)
:::
---


Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ description: Particle Network is the Intent-Centric, Modular Access Layer of Web
keywords: [particle-network,account-abstraction]
---

# Building AA with Particle Network
# Building AA powered dApp with Particle Network

Particle Network provides a Smart Wallet-as-a-Service, leveraging modular and customizable wallet components. It supports native ERC-4337 AA capabilities, streamlining user onboarding and transaction processes.

Expand Down
167 changes: 167 additions & 0 deletions docs/technicalguides/account-abstraction/zerodev-guide.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,167 @@
---
description: ZeroDev is a smart, white-labeled, and modular embedded wallet for building user-friendly Web3 experiences, particularly for DeFi applications.
keywords: [zerodev,account-abstraction,kernel]
---

# Building AA powered dApp with ZeroDev

<CardContainer>
<Card
title="ZeroDev is a smart, white-labeled, and modular embedded wallet for building user-friendly Web3 experiences, particularly for DeFi applications."
/>
</CardContainer>

### Key Features of ZeroDev AA stack

- Smart: ZeroDev leverages account abstraction.
- White-labeled: ZeroDev doesn't have a UI -- it provides the underlying wallet logic that you can build a totally customized experience on top of.
- Modular: ZeroDev is built on top of Kernel, the most popular open-source smart account that supports ERC-7579 plugins for customizing wallet logic.

:::info
- If you are building a DApp, get started with the [capabilities API](https://docs.zerodev.app/smart-wallet/quickstart-capabilities).
- If you are building a wallet, get started with the [Core SDK](https://docs.zerodev.app/smart-wallet/quickstart-core) or the [React SDK](https://docs.zerodev.app/smart-wallet/quickstart-react).
:::

Let's take a quick look at how you can start off by creating a new project in the ZeroDev Dashboard.

### 1. Setup ProjectID in dashboard

Sign up on [ZeroDev Dashboard](https://dashboard.zerodev.app/). Sign up on dashboard and create a new project. Name your project accordingly and choose the network chain as ```Gnosis``` .

### 2. Get config from Dashboard

Once you have setup a project, you will get ```PROJECTID```, ```BundlerRPC```, ```PaymasterRPC```. You can create .env file and store these config values to be used later in project.

### 3. Creating Wallet

ZeroDev supports three types of wallet creation:

- Passkeys : ZeroDev supports on-chain passkeys, where transactions are signed directly with passkeys on your user's device, and the signatures are validated on-chain with either RIP-7212 (if supported by the network) or smart contracts, without reliance on centralized infrastructure. Learn more here.
- Socials or Social Logins : ZeroDev supports social logins natively, but you can also use ZeroDev with third-party auth providers such as Dynamic, Privy, and Magic if your prefer their UI.
- EOA Wallet : Sign using EOA wallet (e.g. MetaMask) through ZeroDev, this EOA will be the signer of the ZeroDev smart wallet. Therefore, the smart wallet will be different counterfactual address than the address of the user's EOA.

### Setting up React Implementation with ZeroDev Packages

We will utilize ```@zerodev/waas``` package for the React implementation of our dApp.

### 1. Install packages

```shell
npm install @zerodev/waas [email protected] @tanstack/react-query
```
### 2. Create a provider for ZeroDev.

We will utilise the ```ProjectID``` from Dashboard and use chain object corresponding to ZeroDev project.

```typescript
import { http } from "viem"
import { gnosis } from "viem/chains"
import { ZeroDevProvider, createConfig } from "@zerodev/waas"

function Providers({ children }: { children: React.ReactNode}) {
const PROJECT_ID = " " //enter PROJECT ID here

const config = createConfig({
chains: [gnosis],
transports: {
[gnosis.id]: http()
},
projectIds: {
[gnosis.id]: PROJECT_ID
}
})

return (
<ZeroDevProvider config={config}>
{children}
</ZeroDevProvider>
)
}
```

### 3. Create a Smart Account

```typescript
import { useCreateKernelClientPasskey } from "@zerodev/waas";

function App() {
const { connectRegister, isPending } = useCreateKernelClientPasskey({ version: "v3" });

return (
<button
disabled={isPending}
onClick={() => {
connectRegister({ username: "zerodev_quickstart" });
}}
>
{isPending ? 'Connecting...' : 'Create Smart Account'}
</button>
);
}

export default App;
```

### 4. Getting Smart Account Address

```typescript
import { useKernelClient } from "@zerodev/waas"

function App() {
const { address } = useKernelClient()

return (
/* ...Create Smart Account */
<p>{`Smart Account Address: ${address}`}</p>
)
}
```

### 5. Send a UserOp for sponsored transaction

```typescript
import { parseAbi } from "viem"
import { useKernelClient, useSendUserOperation } from "@zerodev/waas"

function App() {
const { address } = useKernelClient()
const { data: userOpHash, write, isPending } = useSendUserOperation({
paymaster: {
type: "SPONSOR"
}
})
const tokenAddress = "0x3870419Ba2BBf0127060bCB37f69A1b1C090992B"
const abi = parseAbi(["function mint(address _to, uint256 amount) public"])

return (
/* ...Create & Get Smart Account */
<div>
<button
disabled={isPending}
onClick={() => {
write([
{
address: tokenAddress,
abi: abi,
functionName: "mint",
args: [address, 1],
value: BigInt(0),
}
])
}}
>
{isPending ? 'Minting...' : 'Mint'}
</button>
{userOpHash && <p>{`UserOp Hash: ${userOpHash}`}</p>}
</div>
)
}
```

:::info

Check out the quickstart code on [github](https://github.com/zerodevapp/waas-examples/tree/main/quick-start) and official documentation [here](https://docs.zerodev.app/smart-wallet/quickstart-core)

---
If you want to check out how to pay gas fees using ERC20 Tokens, check out the [ZeroDev section for paying using ERC20 Tokens](https://docs.zerodev.app/smart-wallet/pay-gas-in-erc20s)
:::
1 change: 0 additions & 1 deletion src/components/Card/FeatureCard.css
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@

.custom-feature-card img {
margin-left: 0 !important;
height: 40px;
}

.custom-feature-card > * {
Expand Down
131 changes: 131 additions & 0 deletions updates/2024/07-17-core-devs-call.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@
---
title: Core Devs Call - 2024/07/17
authors: [dapplion, armaganercan, filoozom]
tags: [CoreDevsCall, Gnosis Chain]
---

# Gnosis Core Devs Call Notes

Welcome to the Gnosis Core Devs weekly gathering. Every Wednesday, key members from the Gnosis team, contributors, and various team representatives convene to discuss, collaborate, and update one another on the Gnosis ecosystem's progression.

Participants represent teams:

Erigon, Gateway, Nethermind, Geth, Gnosis DevOps, Gnosis Core Devs, Gnosis Comms team.

With a diverse set of voices present, our discussions are rich, multifaceted, and aim to foster innovation within the community.

Watch the record [here](https://youtu.be/XSQegfYa5tQ)

July 17, 2024

# Client Team Updates
## EL

* **Nethermind**:
* Focused on Shutter and Pectra

* **Erigon**:
* Agreed to add Shutter support to Erigon v3

* **Geth**:
* The difficulty code had to be rewritten, but doesn’t completely work yet
* Can still connect to Nethermind nodes and sync blocks (using snap sync)


* **Reth**:
* Stuck on testing post-merge on a devnet
* Customizability for consensus / custom properties in blocks is still fairly lacking in Reth
* Cannot add the step and signature fields
* For genesis this is only an issue on devnets with TTD = 0
* Upgrading from 1.0.0 to 1.0.1 produced a huge diff on our side, highlighting some potential long-term maintainability issues
* Not quite clear to Lion what needs to be implemented (we just need verification, not capability to produce blocks etc)


# Chain Infra

* **Gateway**
* No updates

# Innovation

* Shutter
* Launched last week
* ~5% of validators producing blocks (one every ~3 minutes)
* There’s a lot of latency until the validator sees the key, which can result in missed blocks
* If the key is too late, a normal block is produced instead
* Want to onboard more validators and work on client diversity too
* How to do block builders for Shutter?
* Currently keys are public anyways so it’s fine, but there were talks about encrypting them for specific validators


# Testing

* Hive
* Up to date with upstream
* Improved the repo to make it easier to add new tests and new clients
* Ethereum/tests
* No updates


# Research

* Gas markets
* 3 open fronts
* Research: deciding on the primary sell mechanism
* Potentially the most difficult part
* Sell vs strike price, difficult to calculate on-chain
* “Gas Markets” group on Telegram
* Prove that it’s safe, as we’re messing with EIP-1559
* Instead of mining, we’ll refund the costs to the users
* Miners could buy the futures, and then miners get reimbursed, which may break things (and negate the base fee burning introduced by EIP-1559)
* Execution: how to consume this
* Buy the option
* Send specific transactions in a way that will get you a refund
* Currently doesn’t use pay masters
* We need to work on good dev experience for this














































0 comments on commit b4a353b

Please sign in to comment.