Skip to content

Commit 0338ddd

Browse files
committed
Merge branch 'gnosis-network' of github.com:stakewise/v3-sdk into gnosis-network
2 parents 38f39a8 + ac64bb3 commit 0338ddd

File tree

3 files changed

+51
-20
lines changed

3 files changed

+51
-20
lines changed

README.md

+16-14
Original file line numberDiff line numberDiff line change
@@ -317,13 +317,14 @@ Fetch the whitelist for private vaults. Only addresses included in this list are
317317
318318
#### Arguments:
319319
320-
| Name | Type | Type | Description |
321-
|------|-------------------|-------------|---|
322-
| vaultAddress | `string` | **Yes** | - |
323-
| orderDirection | `'asc' \| 'desc'` | **No** | Sort, by default `desc` (descending order) |
324-
| search | `string` | **No** | Filters results by the address field |
325-
| limit | `number` | **No** | Limit the number of addresses, default is 100 |
326-
| skip | `number` | **No** | Skip the number of addresses, default is 0 |
320+
| Name | Type | Type | Description |
321+
|------|-------------------|-------------|----------------------------------------------------------------------------------------------------------------------------------------------|
322+
| vaultAddress | `string` | **Yes** | - |
323+
| addressIn | `string[]` | **No** | Filters results to include only addresses in the provided list. Helps to check, for example, if several addresses are added to the whitelist |
324+
| orderDirection | `'asc' \| 'desc'` | **No** | Specifies the sorting order. Defaults to `desc` (descending order) |
325+
| search | `string` | **No** | Filters results by the address field |
326+
| limit | `number` | **No** | Limits the number of addresses returned. Defaults to 100 |
327+
| skip | `number` | **No** | Skips the specified number of addresses. Defaults to 0 |
327328
328329
#### Returns:
329330
@@ -359,13 +360,14 @@ Fetch the blocklist for blocklisted vaults. Addresses included in this list are
359360
360361
#### Arguments:
361362
362-
| Name | Type | Type | Description |
363-
|------|---------------|-------------|---|
364-
| vaultAddress | `string` | **Yes** | - |
365-
| orderDirection | `'asc' \| 'desc'` | **No** | Sort, by default `desc` (descending order) |
366-
| search | `string` | **No** | Filters results by the address field |
367-
| limit | `number` | **No** | Limit the number of addresses, default is 100 |
368-
| skip | `number` | **No** | Skip the number of addresses, default is 0 |
363+
| Name | Type | Type | Description |
364+
|------|-------------------|-------------|--------------------------------------------------------------------------------------------------------------------------------------------|
365+
| vaultAddress | `string` | **Yes** | - |
366+
| addressIn | `string[]` | **No** | Filters results to include only addresses in the provided list. Helps to check, for example, if all OFAC addresses are added to the blocklist |
367+
| orderDirection | `'asc' \| 'desc'` | **No** | Specifies the sorting order. Defaults to `desc` (descending order) |
368+
| search | `string` | **No** | Filters results by the address field |
369+
| limit | `number` | **No** | Limits the number of addresses returned. Defaults to 100 |
370+
| skip | `number` | **No** | Skips the specified number of addresses. Defaults to 0 |
369371
370372
#### Returns:
371373

src/methods/vault/requests/getBlocklist/index.ts

+18-3
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { isAddress } from 'ethers'
12
import type { BlocklistAccountsQueryVariables, BlocklistAccountsQueryPayload } from '../../../../graphql/subgraph/vault'
23
import { apiUrls, validateArgs } from '../../../../utils'
34
import graphql from '../../../../graphql'
@@ -11,11 +12,20 @@ type GetBlocklistInput = {
1112
search?: string
1213
limit?: number
1314
skip?: number
15+
addressIn?: BlocklistAccountsQueryVariables['where']['address_in']
1416
options: StakeWise.Options
1517
}
1618

19+
const validateList = (addressIn: string[]) => {
20+
const isValid = addressIn.every((address) => isAddress(address))
21+
22+
if (!isValid) {
23+
throw new Error('The "addressIn" argument must be an array of valid addresses')
24+
}
25+
}
26+
1727
const getBlocklist = (input: GetBlocklistInput) => {
18-
const { vaultAddress, orderDirection, search, limit, skip, options } = input
28+
const { vaultAddress, orderDirection, search, limit, skip, addressIn, options } = input
1929

2030
validateArgs.address({ vaultAddress })
2131

@@ -37,11 +47,16 @@ const getBlocklist = (input: GetBlocklistInput) => {
3747
}
3848
}
3949

50+
if (typeof addressIn !== 'undefined') {
51+
validateArgs.array({ addressIn })
52+
validateList(addressIn)
53+
}
54+
4055
const vault = vaultAddress.toLowerCase()
4156

4257
const where = search
43-
? { vault, address_contains: search.toLowerCase() } as BlocklistAccountsQueryVariables['where']
44-
: { vault } as BlocklistAccountsQueryVariables['where']
58+
? { vault, address_in: addressIn, address_contains: search.toLowerCase() } as BlocklistAccountsQueryVariables['where']
59+
: { vault, address_in: addressIn } as BlocklistAccountsQueryVariables['where']
4560

4661
return graphql.subgraph.vault.fetchBlocklistAccountsQuery<ModifiedBlocklist>({
4762
url: apiUrls.getSubgraphqlUrl(options),

src/methods/vault/requests/getWhitelist/index.ts

+17-3
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { isAddress } from 'ethers'
12
import type { WhitelistAccountsQueryVariables, WhitelistAccountsQueryPayload } from '../../../../graphql/subgraph/vault'
23
import { apiUrls, validateArgs } from '../../../../utils'
34
import graphql from '../../../../graphql'
@@ -11,12 +12,20 @@ type GetWhitelistInput = {
1112
search?: string
1213
limit?: number
1314
skip?: number
15+
addressIn?: WhitelistAccountsQueryVariables['where']['address_in']
1416
options: StakeWise.Options
1517
}
1618

19+
const validateList = (addressIn: string[]) => {
20+
const isValid = addressIn.every((address) => isAddress(address))
21+
22+
if (!isValid) {
23+
throw new Error('The "addressIn" argument must be an array of valid addresses')
24+
}
25+
}
1726

1827
const getWhitelist = (input: GetWhitelistInput) => {
19-
const { vaultAddress, orderDirection, search, limit, skip, options } = input
28+
const { vaultAddress, orderDirection, search, limit, skip, addressIn, options } = input
2029

2130
validateArgs.address({ vaultAddress })
2231

@@ -38,11 +47,16 @@ const getWhitelist = (input: GetWhitelistInput) => {
3847
}
3948
}
4049

50+
if (typeof addressIn !== 'undefined') {
51+
validateArgs.array({ addressIn })
52+
validateList(addressIn)
53+
}
54+
4155
const vault = vaultAddress.toLowerCase()
4256

4357
const where = search
44-
? { vault, address_contains: search.toLowerCase() } as WhitelistAccountsQueryVariables['where']
45-
: { vault } as WhitelistAccountsQueryVariables['where']
58+
? { vault, address_in: addressIn, address_contains: search.toLowerCase() } as WhitelistAccountsQueryVariables['where']
59+
: { vault, address_in: addressIn } as WhitelistAccountsQueryVariables['where']
4660

4761
return graphql.subgraph.vault.fetchWhitelistAccountsQuery<ModifiedWhitelist>({
4862
url: apiUrls.getSubgraphqlUrl(options),

0 commit comments

Comments
 (0)