import {Account, Action, AddPublicAddressesResponse, EndPoint, PublicAddress} from '../../entities' import {validationRules} from '../../utils/validation' import {RequestConfig} from '../Transactions' import { SignedTransaction } from './SignedTransaction' export type AddPublicAddressesRequestProps = { fioAddress: string; publicAddresses: PublicAddress[]; maxFee: number; technologyProviderId: string; } export type AddPublicAddressesRequestData = { actor: string; fio_address: string; public_addresses: PublicAddress[]; tpid: string, max_fee: number } export class AddPublicAddresses extends SignedTransaction< AddPublicAddressesRequestData, AddPublicAddressesResponse > { public ENDPOINT = `chain/${EndPoint.addPublicAddress}` as const public ACTION = Action.addPublicAddresses public ACCOUNT = Account.address constructor(config: RequestConfig, public props: AddPublicAddressesRequestProps) { super(config) this.validationData = {fioAddress: props.fioAddress, tpid: props.technologyProviderId} this.validationRules = validationRules.addPublicAddressRules } public getData = () => ({ actor: this.getActor(), fio_address: this.props.fioAddress, max_fee: this.props.maxFee, public_addresses: this.props.publicAddresses, tpid: this.props.technologyProviderId, }) }