@unique-nft/api
Version:
Definitely typed JS API for the Unique Network blockchain
64 lines (55 loc) • 2 kB
text/typescript
export interface TokenPropertyPermission {
mutable: boolean
collectionAdmin: boolean
tokenOwner: boolean
}
export interface TokenPropertyPermissionObject {
key: string
permission: TokenPropertyPermission
}
export interface CollectionParams {
name: string
description: string
tokenPrefix: string
mode?: { nft: null }
access?: 'Normal' | 'AllowList'
limits?: {
accountTokenOwnershipLimit?: number | null
ownerCanDestroy?: boolean | null
ownerCanTransfer?: boolean | null
sponsorApproveTimeout?: number | null
sponsorTransferTimeout?: number | null
sponsoredDataRateLimit?: number | null
sponsoredDataSize?: number | null
tokenLimit?: number | null
transfersEnabled?: boolean | null
}
permissions?: {
access?: 'Normal' | 'AllowList'
mintMode?: boolean
nesting?: { tokenOwner: boolean, collectionAdmin: boolean, restricted: Array<number> }
}
tokenPropertyPermissions?: Array<TokenPropertyPermissionObject>
properties?: Array<{
key: string
value: string
}>
}
export interface Collection extends CollectionParams {
id: number
}
export interface RawCollection extends Omit<Collection, 'name' | 'description' | 'properties'> {
name: number[]
description: number[]
properties: CollectionProperties
}
export type CollectionLimits = Required<CollectionParams>['limits']
export type CollectionPermissions = Required<Required<CollectionParams>['permissions']>
export type CollectionTokenPropertyPermissions = Required<CollectionParams>['tokenPropertyPermissions']
export type CollectionProperties = Required<CollectionParams>['properties']
export type CollectionSponsorship = 'Disabled' | { Confirmed: string } | { Unconfirmed: string }
// export interface CollectionParamsWithVectorizedStrings extends Omit<CollectionParams, 'name' | 'tokenPrefix' | 'description'> {
// name: number[]
// tokenPrefix: number[]
// description: number[]
// }