@unique-nft/api
Version:
Definitely typed JS API for the Unique Network blockchain
30 lines (25 loc) • 969 B
text/typescript
import {Address, UniqueUtils} from "../../../utils";
import {CrossAccountId, PropertiesArray} from "../../../types";
export type TokenToMint = {
owner: CrossAccountId
properties: PropertiesArray
}
export const validateAndFixTokenOwner = (token: TokenToMint): TokenToMint => {
let owner = Address.is.crossAccountId(token.owner) ? token.owner : null
if (owner === null) {
if (typeof token.owner !== 'string') {
throw new Error(`create token: owner should be valid object or string, got ${typeof token.owner}: ${token.owner}`)
}
if (UniqueUtils.Address.is.ethereumAddress(token.owner)) {
owner = {Ethereum: token.owner}
} else if (UniqueUtils.Address.is.substrateAddress(token.owner)) {
owner = {Substrate: token.owner}
} else {
throw new Error(`create token: owner should be valid ethereum or substrate address, got "${token.owner}"`)
}
}
return {
...token,
owner
}
}