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 } }