@zerochain/sdk
Version:
The Züs JS SDK is a JavaScript client library that provides a convenient interface for interacting with the Züs Network. It allows developers to perform various operations such as creating and managing allocations, uploading and downloading files, executi
217 lines (205 loc) • 4.67 kB
text/typescript
// TODO: not used in webapps: zvaultStoreKey, zvaultRevokeKey, zvaultDeletePrimaryKey
import { getWasm } from '@/setup/wasm'
import type { ActiveWallet, NetworkDomain } from '@/types/wallet'
/** zvaultNewWallet generates new wallet */
export const zvaultNewWallet = async ({
domain,
wallet,
serverAddress,
token,
}: {
domain: NetworkDomain
wallet: ActiveWallet
/** Server address */
serverAddress: string
/** JWT Token */
token: string
}): Promise<void> => {
const goWasm = await getWasm({ domain, wallet })
return goWasm.sdk.zvaultNewWallet(serverAddress, token)
}
/** zvaultNewSplit generates new split key for saved wallet */
export const zvaultNewSplit = async ({
domain,
wallet,
clientId,
serverAddress,
token,
}: {
domain: NetworkDomain
wallet: ActiveWallet
/** Wallet ID */
clientId: string
/** Server address */
serverAddress: string
/** JWT Token */
token: string
}): Promise<void> => {
const goWasm = await getWasm({ domain, wallet })
return goWasm.sdk.zvaultNewSplit(clientId, serverAddress, token)
}
export const zvaultRetrieveRestrictions = async ({
domain,
wallet,
peerPublicKey,
serverAddress,
token,
}: {
domain: NetworkDomain
wallet: ActiveWallet
/** Peer public key */
peerPublicKey: string
/** Server address */
serverAddress: string
/** JWT Token */
token: string
}): Promise<string> => {
const goWasm = await getWasm({ domain, wallet })
const resp = await goWasm.sdk.zvaultRetrieveRestrictions(
peerPublicKey,
serverAddress,
token
)
return resp
}
export const zvaultUpdateRestrictions = async ({
domain,
wallet,
clientId,
peerPublicKey,
serverAddress,
token,
restrictions,
}: {
domain: NetworkDomain
wallet: ActiveWallet
/** Wallet ID */
clientId: string
/** Peer public key */
peerPublicKey: string
/** Server address */
serverAddress: string
/** JWT Token */
token: string
restrictions: string[]
}): Promise<void> => {
const goWasm = await getWasm({ domain, wallet })
return goWasm.sdk.zvaultUpdateRestrictions(
clientId,
peerPublicKey,
serverAddress,
token,
restrictions
)
}
export const zvaultStoreKey = async ({
domain,
wallet,
serverAddress,
token,
privateKey,
}: {
domain: NetworkDomain
wallet: ActiveWallet
/** Server address */
serverAddress: string
/** JWT Token */
token: string
/** Private key */
privateKey: string
}): Promise<void> => {
const goWasm = await getWasm({ domain, wallet })
return goWasm.sdk.zvaultStoreKey(serverAddress, token, privateKey)
}
export const zvaultRetrieveKeys = async ({
domain,
wallet,
serverAddress,
token,
clientId,
}: {
domain: NetworkDomain
wallet: ActiveWallet
/** Server address */
serverAddress: string
/** JWT Token */
token: string
/** Wallet ID */
clientId: string
}): Promise<string> => {
const goWasm = await getWasm({ domain, wallet })
return goWasm.sdk.zvaultRetrieveKeys(serverAddress, token, clientId)
}
export const zvaultRevokeKey = async ({
domain,
wallet,
serverAddress,
token,
clientId,
publicKey,
}: {
domain: NetworkDomain
wallet: ActiveWallet
/** Server address */
serverAddress: string
/** JWT Token */
token: string
/** Wallet ID */
clientId: string
/** Public key */
publicKey: string
}): Promise<void> => {
const goWasm = await getWasm({ domain, wallet })
return goWasm.sdk.zvaultRevokeKey(serverAddress, token, clientId, publicKey)
}
export const zvaultDeletePrimaryKey = async ({
domain,
wallet,
serverAddress,
token,
clientId,
}: {
domain: NetworkDomain
wallet: ActiveWallet
/** Server address */
serverAddress: string
/** JWT Token */
token: string
/** Wallet ID */
clientId: string
}): Promise<void> => {
const goWasm = await getWasm({ domain, wallet })
return goWasm.sdk.zvaultDeletePrimaryKey(serverAddress, token, clientId)
}
export const zvaultRetrieveWallets = async ({
domain,
wallet,
serverAddress,
token,
}: {
domain: NetworkDomain
wallet: ActiveWallet
/** Server address */
serverAddress: string
/** JWT Token */
token: string
}): Promise<string> => {
const goWasm = await getWasm({ domain, wallet })
return goWasm.sdk.zvaultRetrieveWallets(serverAddress, token)
}
export const zvaultRetrieveSharedWallets = async ({
domain,
wallet,
serverAddress,
token,
}: {
domain: NetworkDomain
wallet: ActiveWallet
/** Server address */
serverAddress: string
/** JWT Token */
token: string
}): Promise<string> => {
const goWasm = await getWasm({ domain, wallet })
return goWasm.sdk.zvaultRetrieveSharedWallets(serverAddress, token)
}