Skip to content

Commit 12d7110

Browse files
authored
Release 2.21.4 (#1673)
1 parent e95007f commit 12d7110

File tree

21 files changed

+555
-54
lines changed

21 files changed

+555
-54
lines changed

.circleci/config.yml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -381,6 +381,12 @@ jobs:
381381
working_directory: ~/web3-onboard-monorepo/packages/unstoppable-resolution
382382
steps:
383383
- node-build-steps
384+
build-cede-store:
385+
docker:
386+
- image: cimg/node:16.13.1
387+
working_directory: ~/web3-onboard-monorepo/packages/cede-store
388+
steps:
389+
- node-build-steps
384390

385391
# Build staging/Alpha releases
386392
build-staging-core:
@@ -599,6 +605,12 @@ jobs:
599605
working_directory: ~/web3-onboard-monorepo/packages/unstoppable-resolution
600606
steps:
601607
- node-staging-build-steps
608+
build-staging-cede-store:
609+
docker:
610+
- image: cimg/node:16.13.1
611+
working_directory: ~/web3-onboard-monorepo/packages/cede-store
612+
steps:
613+
- node-staging-build-steps
602614

603615
workflows:
604616
version: 2
@@ -819,3 +831,10 @@ workflows:
819831
<<: *deploy_production_filters
820832
- build-staging-unstoppable-resolution:
821833
<<: *deploy_staging_filters
834+
cede-store:
835+
jobs:
836+
- build-cede-store:
837+
<<: *deploy_production_filters
838+
- build-staging-cede-store:
839+
<<: *deploy_staging_filters
840+

docs/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@
5656
},
5757
"type": "module",
5858
"dependencies": {
59+
"@web3-onboard/cede-store": "^2.0.0-alpha.1",
5960
"@web3-onboard/coinbase": "^2.2.2",
6061
"@web3-onboard/core": "^2.17.0-alpha.1",
6162
"@web3-onboard/dcent": "^2.2.5",

docs/src/lib/components/FeaturesSection.svelte

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77
import FeatureCard from './FeatureCard.svelte'
88
99
import FrameworksGraphic from './svg/frameworks-group.svelte'
10-
import NetworksGraphic from './svg/networks-group.svelte'
1110
import NotifyGraphic from './svg/notify-group.svelte'
11+
import NetworksGraphic from './svg/networks-graphic.svg'
1212
import AccountCenterGraphic from './svg/account-center-graphic.svg'
1313
import WalletsGraphic from './svg/wallet-row.svg'
1414
import TransactionPreviewGraphic from './svg/transaction-preview-graphic.svg'
@@ -78,7 +78,11 @@
7878
<Button href="/examples/connect-wallet" buttonStyle={'link'}>{'View Demo'}</Button>
7979
</Flexbox>
8080
</TextBlock>
81-
<NetworksGraphic />
81+
<img
82+
src={NetworksGraphic}
83+
alt="Onboard Supported Chains"
84+
style="margin: auto; max-width: 80%;"
85+
/>
8286
</div>
8387
</Container>
8488
<ScrollContainer>

docs/src/lib/components/svg/networks-group.svelte renamed to docs/src/lib/components/svg/networks-graphic.svg

Lines changed: 144 additions & 43 deletions
Loading

docs/src/lib/services/onboard.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ const classMutationListener = () => {
2727
}
2828

2929
const intiOnboard = async (theme) => {
30+
const { default: cedeModule } = await import('@web3-onboard/cede-store')
3031
const { default: Onboard } = await import('@web3-onboard/core')
3132
const { default: injectedModule } = await import('@web3-onboard/injected-wallets')
3233
const { default: trezorModule } = await import('@web3-onboard/trezor')
@@ -75,6 +76,7 @@ const intiOnboard = async (theme) => {
7576
const torus = torusModule()
7677
const trust = trustModule()
7778
const xdefi = xdefiModule()
79+
const cede = cedeModule()
7880

7981
const portis = portisModule({
8082
apiKey: 'b2b7586f-2b1e-4c30-a7fb-c2d1533b153b'
@@ -117,19 +119,20 @@ const intiOnboard = async (theme) => {
117119
gnosis,
118120
uauth,
119121
taho,
122+
cede,
120123
xdefi,
121124
torus,
122125
sequence,
123126
web3auth,
124-
infinityWallet,
125127
dcent,
126128
enkrypt,
127129
mewWallet,
128130
magic,
129131
fortmatic,
130132
keystone,
131133
keepkey,
132-
portis
134+
portis,
135+
infinityWallet
133136
],
134137
chains: [
135138
{

docs/src/routes/docs/[...3]modules/react.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,8 @@ import injectedModule from '@web3-onboard/injected-wallets'
3232
import { ethers } from 'ethers'
3333

3434
// Sign up to get your free API key at https://explorer.blocknative.com/?signup=true
35-
const dappId = '1730eff0-9d50-4382-a3fe-89f0d34a2070'
35+
// Required for Transaction Notifications and Transaction Preview
36+
const apiKey = '1730eff0-9d50-4382-a3fe-89f0d34a2070'
3637

3738
const injected = injectedModule()
3839

@@ -41,6 +42,7 @@ const rpcUrl = `https://mainnet.infura.io/v3/${infuraKey}`
4142

4243
// initialize Onboard
4344
init({
45+
apiKey,
4446
wallets: [injected],
4547
chains: [
4648
{
Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
# cede.store
2+
3+
## Wallet module for connecting cede.store Wallet SDK to web3-onboard
4+
5+
cede.store is a non-custodial browser extension designed to store CEX (centralized exchange) API keys and to sign CEX requests from the client-side. It allows users to manage their cryptos in their CEX through a unified interface.
6+
7+
Any dApp can integrate cede.store in order to track and/or manage a user's CEX assets. In this way, we offer the dApp a way to monitor and manage a user's CEX assets while remaining non-custodial and maintaining the same user experience as any DeFi browser wallet.
8+
9+
See [cede.store Wallet Developer Docs](https://docs.cede.store)
10+
11+
:::admonition type=warning
12+
As cede.store is not a traditional 1193 wallet behavior is a little different from other wallets that connect through web3-onboard in that there is no on-chain user address to interact with and there isn't a specific chain associated. With this behavior dapp devs will need to handle accordingly and differently from traditional 1193 wallets. The dapp dev can expect the connect account to not be shown as a hex value (or at all) and the chain to always be `0x0` when a user connects with cede.store for that specific wallet account.
13+
:::
14+
15+
### Install
16+
17+
<Tabs values={['yarn', 'npm']}>
18+
<TabPanel value="yarn">
19+
20+
```sh copy
21+
yarn add @web3-onboard/cede-store
22+
```
23+
24+
</TabPanel>
25+
<TabPanel value="npm">
26+
27+
```sh copy
28+
npm install @web3-onboard/cede-store
29+
```
30+
31+
</TabPanel>
32+
</Tabs>
33+
34+
## Usage
35+
36+
```typescript
37+
import Onboard from '@web3-onboard/core'
38+
import cedeStoreWalletModule from '@web3-onboard/cede-store'
39+
40+
const cedeStoreWallet = cedeStoreWalletModule()
41+
42+
const onboard = Onboard({
43+
// ... other Onboard options
44+
wallets: [
45+
cedeStoreWallet
46+
//... other wallets
47+
]
48+
})
49+
50+
const connectedWallets = await onboard.connectWallet()
51+
console.log(connectedWallets)
52+
```
53+
54+
## Vault management
55+
56+
Vaults allow creating bundles of CEX accounts. The extension connects with CEX through CEX API keys and everything is stored in the Local Storage of the browser, on a mobile or on a Ledger (more coming soon...). We can compare Vaults with the [Keyring concept](https://www.wispwisp.com/index.php/2020/12/25/how-metamask-stores-your-wallet-secret/) of Metamask.
57+
58+
A user can have multiple vaults with different CEX accounts inside.
59+
This system allows the user to give a dApp custom access to his accounts depending on the degree of trust he has in the dApp in question.
60+
61+
Let's say the user has three vaults: a main one with full access (track, trade, withdraw) to all his CEX, one just for tracking and one just for trading.
62+
If the user does not know the reputation of the dApp he is using, the most logical solution would be to give access
63+
only to the tracking vault so the dApp will not be able to initiate trade requests.
64+
65+
## CEX connection
66+
67+
All requests are divided into two categories:
68+
69+
- private requests
70+
- public requests
71+
72+
All public data, such as prices, volumes, historical data are collected from different exchanges and provided with our API.
73+
74+
All private requests, such as user balances, trades, open positions are coming from cede.store (from the user's machine).
75+
76+
You can access both public and private data through the extension's API. cede.store handles all exchanges requests, as well as API keys secure storage.
77+
78+
## Example of a workflow (fetch user's balances and transactions)
79+
80+
```typescript
81+
// get available vaults and accounts
82+
const { vaultPreview } = provider.getVaultPreviews()
83+
console.log(vaultPreview)
84+
85+
// Fetch user's balances from Binance and Coinbase
86+
const vaultId = vaultPreview[0].id
87+
await provider.request({
88+
method: 'balances',
89+
params: {
90+
vaultId,
91+
accountNames: ['Binance 1', 'Coinbase 1']
92+
}
93+
})
94+
95+
// Fetch user's transactions
96+
await provider.request({
97+
method: 'transactions',
98+
params: {
99+
vaultId
100+
}
101+
})
102+
```

docs/yarn.lock

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -386,6 +386,11 @@
386386
"@babel/helper-validator-identifier" "^7.19.1"
387387
to-fast-properties "^2.0.0"
388388

389+
"@cedelabs/providers@^0.0.7":
390+
version "0.0.7"
391+
resolved "https://registry.yarnpkg.com/@cedelabs/providers/-/providers-0.0.7.tgz#859070c5cf0a86841ce98d32c1599cc8de9b7869"
392+
integrity sha512-rjOcEff5dnuKif+dJmEygCC/mp05oztkFYAmGEcGa1HW9EcVP3id1PTjBEYZLieVBNwJdg4kcl8Jh1dboG8pCA==
393+
389394
"@chainsafe/as-sha256@^0.3.1":
390395
version "0.3.1"
391396
resolved "https://registry.yarnpkg.com/@chainsafe/as-sha256/-/as-sha256-0.3.1.tgz#3639df0e1435cab03f4d9870cc3ac079e57a6fc9"
@@ -3806,6 +3811,14 @@
38063811
"@walletconnect/window-getters" "^1.0.1"
38073812
tslib "1.14.1"
38083813

3814+
"@web3-onboard/cede-store@^2.0.0-alpha.1":
3815+
version "2.0.0-alpha.1"
3816+
resolved "https://registry.yarnpkg.com/@web3-onboard/cede-store/-/cede-store-2.0.0-alpha.1.tgz#4ab31464b883b8e39969f95c8cc546ad319efb95"
3817+
integrity sha512-3/K4zYac95AdZQjrD0SH+tHdjbaenwUZ5T08Mu9MuuOjxhJysx+wX2aoXil3dawZpcJvtIcX6XD042kFgI6keQ==
3818+
dependencies:
3819+
"@cedelabs/providers" "^0.0.7"
3820+
"@web3-onboard/common" "^2.3.0-alpha.1"
3821+
38093822
"@web3-onboard/coinbase@^2.2.2":
38103823
version "2.2.2"
38113824
resolved "https://registry.yarnpkg.com/@web3-onboard/coinbase/-/coinbase-2.2.2.tgz#a08bfc5c946fb2a3b57a3487a157e102881860ee"
@@ -3823,7 +3836,7 @@
38233836
ethers "5.5.4"
38243837
joi "17.8.1"
38253838

3826-
"@web3-onboard/common@^2.3.1":
3839+
"@web3-onboard/common@^2.3.0-alpha.1", "@web3-onboard/common@^2.3.1":
38273840
version "2.3.1"
38283841
resolved "https://registry.yarnpkg.com/@web3-onboard/common/-/common-2.3.1.tgz#69ad0d5167e5103086c34a4f7e8af90681d71be4"
38293842
integrity sha512-VRIsJLW92Q+bu6w9WSlTrPIk0vGmFvVwnoAKy1ubKuBvSKKhMUmrnv8N5tusr0mk+gcUuUdDF6gLDCABqrfC7g==

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "web3-onboard-monorepo",
3-
"version": "2.21.3",
3+
"version": "2.21.4",
44
"private": true,
55
"workspaces": {
66
"packages": [

packages/cede-store/README.md

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
# @web3-onboard/cede-store
2+
3+
## Wallet module for connecting cede.store Wallet SDK to web3-onboard
4+
5+
cede.store is a non-custodial browser extension designed to store CEX (centralized exchange) API keys and to sign CEX requests from the client-side. It allows users to manage their cryptos in their CEX through a unified interface.
6+
7+
Any dApp can integrate cede.store in order to track and/or manage a user's CEX assets. In this way, we offer the dApp a way to monitor and manage a user's CEX assets while remaining non-custodial and maintaining the same user experience as any DeFi browser wallet.
8+
9+
As cede.store is not a traditional 1193 wallet behavior is a little different from other wallets that connect through web3-onboard in that there is no on-chain user address to interact with and there isn't a specific chain associated. With this behavior dapp devs will need to handle accordingly and differently from traditional 1193 wallets. The dapp dev can expect the connect account to not be shown as a hex value (or at all) and the chain to always be `0x0` when a user connects with cede.store for that specific wallet account.
10+
11+
See [cede.store Wallet Developer Docs](https://docs.cede.store)
12+
13+
### Install
14+
15+
`npm i @web3-onboard/cede-store`
16+
17+
## Usage
18+
19+
```typescript
20+
import Onboard from '@web3-onboard/core'
21+
import cedeStoreWalletModule from '@web3-onboard/cede-store'
22+
23+
const cedeStoreWallet = cedeStoreWalletModule()
24+
25+
const onboard = Onboard({
26+
// ... other Onboard options
27+
wallets: [
28+
cedeStoreWallet
29+
//... other wallets
30+
]
31+
})
32+
33+
const connectedWallets = await onboard.connectWallet()
34+
console.log(connectedWallets)
35+
```
36+
37+
## Vault management
38+
39+
Vaults allow creating bundles of CEX accounts. The extension connects with CEX through CEX API keys and everything is stored in the Local Storage of the browser, on a mobile or on a Ledger (more coming soon...). We can compare Vaults with the [Keyring concept](https://www.wispwisp.com/index.php/2020/12/25/how-metamask-stores-your-wallet-secret/) of Metamask.
40+
41+
A user can have multiple vaults with different CEX accounts inside.
42+
This system allows the user to give a dApp custom access to his accounts depending on the degree of trust he has in the dApp in question.
43+
44+
Let's say the user has three vaults: a main one with full access (track, trade, withdraw) to all his CEX, one just for tracking and one just for trading.
45+
If the user does not know the reputation of the dApp he is using, the most logical solution would be to give access
46+
only to the tracking vault so the dApp will not be able to initiate trade requests.
47+
48+
## CEX connection
49+
50+
All requests are divided into two categories:
51+
52+
- private requests
53+
- public requests
54+
55+
All public data, such as prices, volumes, historical data are collected from different exchanges and
56+
provided with our API.
57+
58+
All private requests, such as user balances, trades, open positions are coming from cede.store (from the user's machine).
59+
60+
You can access both public and private data through the extension's API. cede.store handles all exchanges requests, as well as API keys secure storage.
61+
62+
## Example of a workflow (fetch user's balances and transactions)
63+
64+
```typescript
65+
// get available vaults and accounts
66+
const { vaultPreview } = provider.getVaultPreviews()
67+
console.log(vaultPreview)
68+
69+
// Fetch user's balances from Binance and Coinbase
70+
const vaultId = vaultPreview[0].id
71+
await provider.request({
72+
method: 'balances',
73+
params: {
74+
vaultId,
75+
accountNames: ['Binance 1', 'Coinbase 1']
76+
}
77+
})
78+
79+
// Fetch user's transactions
80+
await provider.request({
81+
method: 'transactions',
82+
params: {
83+
vaultId
84+
}
85+
})
86+
```

0 commit comments

Comments
 (0)