PHP WebShell

Текущая директория: /usr/lib/node_modules/bitgo/node_modules/@bitgo-forks/avalanchejs/src/serializable/pvm

Просмотр файла: transformSubnetTx.ts

import { concatBytes } from '../../utils/buffer';
import { pack, unpack } from '../../utils/struct';
import { BaseTx } from '../avax/baseTx';
import { Codec } from '../codec/codec';
import type { Serializable } from '../common/types';
import { serializable } from '../common/types';
import { Int } from '../primitives';
import { Byte } from '../primitives';
import { BigIntPr } from '../primitives';
import { TypeSymbols } from '../constants';
import { Id } from '../fxs/common';
import { AbstractSubnetTx } from './abstractSubnetTx';

/**
 * @see https://docs.avax.network/reference/avalanchego/p-chain/txn-format#unsigned-transform-subnet-tx
 */
@serializable()
export class TransformSubnetTx extends AbstractSubnetTx {
  _type = TypeSymbols.TransformSubnetTx;

  constructor(
    public readonly baseTx: BaseTx,
    public readonly subnetID: Id,
    public readonly assetId: Id,
    public readonly initialSupply: BigIntPr,
    public readonly maximumSupply: BigIntPr,
    public readonly minConsumptionRate: BigIntPr,
    public readonly maxConsumptionRate: BigIntPr,
    public readonly minValidatorStake: BigIntPr,
    public readonly maxValidatorStake: BigIntPr,
    public readonly minStakeDuration: Int,
    public readonly maxStakeDuration: Int,
    public readonly minDelegationFee: Int,
    public readonly minDelegatorStake: Int,
    public readonly maxValidatorWeightFactor: Byte,
    public readonly uptimeRequirement: Int,
    public readonly subnetAuth: Serializable,
  ) {
    super();
  }

  getSubnetID() {
    return this.subnetID;
  }

  static fromBytes(
    bytes: Uint8Array,
    codec: Codec,
  ): [TransformSubnetTx, Uint8Array] {
    const [
      baseTx,
      subnetID,
      assetId,
      initialSupply,
      maximumSupply,
      minConsumptionRate,
      maxConsumptionRate,
      minValidatorStake,
      maxValidatorStake,
      minStakeDuration,
      maxStakeDuration,
      minDelegationFee,
      minDelegatorStake,
      maxValidatorWeightFactor,
      uptimeRequirement,
      subnetAuth,
      rest,
    ] = unpack(
      bytes,
      [
        BaseTx,
        Id,
        Id,
        BigIntPr,
        BigIntPr,
        BigIntPr,
        BigIntPr,
        BigIntPr,
        BigIntPr,
        Int,
        Int,
        Int,
        Int,
        Byte,
        Int,
        Codec,
      ],
      codec,
    );
    return [
      new TransformSubnetTx(
        baseTx,
        subnetID,
        assetId,
        initialSupply,
        maximumSupply,
        minConsumptionRate,
        maxConsumptionRate,
        minValidatorStake,
        maxValidatorStake,
        minStakeDuration,
        maxStakeDuration,
        minDelegationFee,
        minDelegatorStake,
        maxValidatorWeightFactor,
        uptimeRequirement,
        subnetAuth,
      ),
      rest,
    ];
  }

  toBytes(codec: Codec) {
    return concatBytes(
      pack(
        [
          this.baseTx,
          this.subnetID,
          this.assetId,
          this.initialSupply,
          this.maximumSupply,
          this.minConsumptionRate,
          this.maxConsumptionRate,
          this.minValidatorStake,
          this.maxValidatorStake,
          this.minStakeDuration,
          this.maxStakeDuration,
          this.minDelegationFee,
          this.minDelegatorStake,
          this.maxValidatorWeightFactor,
          this.uptimeRequirement,
        ],
        codec,
      ),
      codec.PackPrefix(this.subnetAuth),
    );
  }
}

Выполнить команду


Для локальной разработки. Не используйте в интернете!