PHP WebShell

Текущая директория: /opt/BitGoJS/node_modules/@aptos-labs/ts-sdk/src/core/account/utils

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

import { sha3_256 } from "@noble/hashes/sha3";
import { AccountAddress } from "../../accountAddress";
import { DeriveScheme } from "../../../types";

/**
 * Creates an object address from creator address and seed
 *
 * @param creatorAddress The object creator account address
 * @param seed The seed in either Uint8Array | string type
 *
 * @returns The object account address
 */
export const createObjectAddress = (creatorAddress: AccountAddress, seed: Uint8Array | string): AccountAddress => {
  const creatorBytes = creatorAddress.bcsToBytes();

  const seedBytes = typeof seed === "string" ? Buffer.from(seed, "utf8") : seed;

  const bytes = new Uint8Array([...creatorBytes, ...seedBytes, DeriveScheme.DeriveObjectAddressFromSeed]);

  return new AccountAddress(sha3_256(bytes));
};

/**
 * Creates a resource address from creator address and seed
 *
 * @param creatorAddress The creator account address
 * @param seed The seed in either Uint8Array | string type
 *
 * @returns The resource account address
 */
export const createResourceAddress = (creatorAddress: AccountAddress, seed: Uint8Array | string): AccountAddress => {
  const creatorBytes = creatorAddress.bcsToBytes();

  const seedBytes = typeof seed === "string" ? Buffer.from(seed, "utf8") : seed;

  const bytes = new Uint8Array([...creatorBytes, ...seedBytes, DeriveScheme.DeriveResourceAccountAddress]);

  return new AccountAddress(sha3_256(bytes));
};

/**
 * Creates a token object address from creator address, collection name and token name
 *
 * @param creatorAddress The token creator account address
 * @param collectionName The collection name
 * @param tokenName The token name
 *
 * @returns The token account address
 */
export const createTokenAddress = (
  creatorAddress: AccountAddress,
  collectionName: string,
  tokenName: string,
): AccountAddress => {
  const seed = `${collectionName}::${tokenName}`;
  return createObjectAddress(creatorAddress, seed);
};

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


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