PHP WebShell
Текущая директория: /usr/lib/node_modules/bitgo/node_modules/@bitgo-forks/avalanchejs/src/fixtures
Просмотр файла: transactions.ts
import { Output } from '../serializable/evm';
import {
BaseTx,
TransferableInput,
TransferableOutput,
UTXOID,
} from '../serializable/avax';
import { Utxo } from '../serializable/avax/utxo';
import { Address, Id } from '../serializable/fxs/common';
import {
OutputOwners,
TransferInput,
TransferOutput,
} from '../serializable/fxs/secp256k1';
import { BigIntPr, Int, Bytes } from '../serializable/primitives';
import { StakeableLockIn, StakeableLockOut } from '../serializable/pvm';
import { hexToBuffer } from '../utils';
import { testContext } from './context';
import { stringToBytes } from '@scure/base';
export const cAddressForTest = '0xfd4DFC8f567caD8a275989982c5f8f1fC82B7563';
export const privateKeyForTest =
'4ec512bf0130a604b68b80446238f20ccd94eec8588f56c5e5c499f1d0d7e7cd';
export const xAddressForTest = 'X-fuji1w5jg0xyw2zq22nhpjar834gyeksc6wuleftqzg';
export const pAddressForTest = 'P-fuji1w5jg0xyw2zq22nhpjar834gyeksc6wuleftqzg';
export const cAddressBech32ForTest =
'C-fuji1w5jg0xyw2zq22nhpjar834gyeksc6wuleftqzg';
export const testAvaxAssetID = Id.fromString(testContext.avaxAssetID);
export const testOwnerXAddress = Address.fromString(xAddressForTest);
export const testOwnerCBech32Address = Address.fromString(
cAddressBech32ForTest,
);
export const testUTXOID1 = Id.fromHex(
'0x009e71412d5b89d0b51e679a93cf59966c3c89346949f1976f930feddbfd765d',
);
export const testUTXOID2 = Id.fromHex(
'0xd1f6526c4233a5af42b0c8311a9824a84f73b3e32ba637aaa7d9dd4994bccbad',
);
export const testUTXOID3 = Id.fromHex(
'0x5199944d5f58272adff87558c5c0857d3de3be01da518431523bff2bbf1117e6',
);
export const testUTXOID4 = Id.fromHex(
'0x5199944d5f58272adff87558c5c0857d3de3be01da518431523bff2bbf1116e6',
);
export const testSubnetId =
'0x8c86d07cd60218661863e0116552dccd5bd84c564bd29d7181dbddd5ec616104';
export const testVMId =
'0x61766d0000000000000000000000000000000000000000000000000000000000';
export const testGenesisData = {
test: 'data',
};
export const testSubnetAuthData = new Bytes(
stringToBytes('utf8', '0x0000000a0000000100000000'),
);
export const getLockedUTXO = (
amt = new BigIntPr(BigInt(30 * 1e9)),
lockTime = BigInt(Math.floor(new Date().getTime() / 1000)) + 100000n,
) =>
new Utxo(
new UTXOID(testUTXOID1, new Int(0)),
testAvaxAssetID,
new TransferOutput(
amt,
OutputOwners.fromNative([testOwnerXAddress.toBytes()], lockTime),
),
);
export const getNotTransferOutput = (amt = BigInt(30 * 1e9)) =>
new Utxo(
new UTXOID(testUTXOID2, new Int(0)),
testAvaxAssetID,
new StakeableLockIn(
new BigIntPr(2000000000n),
TransferableOutput.fromNative(testAvaxAssetID.toString(), amt, [
hexToBuffer('0x12345678901234578901234567890123457890'),
]),
),
);
export const getStakeableLockoutOutput = (
id: Id,
amt: bigint,
lockTime: bigint = BigInt(Math.floor(new Date().getTime() / 1000)) + 100000n,
assetId = testAvaxAssetID,
) =>
new Utxo(
new UTXOID(id, new Int(0)),
assetId,
new StakeableLockOut(
new BigIntPr(lockTime),
new TransferOutput(
new BigIntPr(amt),
OutputOwners.fromNative([testOwnerXAddress.toBytes()]),
),
),
);
export const getTransferableInputForTest = (amt = 50000000000n) =>
TransferableInput.fromNative(
'cwMuSYz3XjaKNwwC7tDmzyWg2eNgpEtkeKwabZ4QJD9PDsjni',
0,
testContext.avaxAssetID,
amt,
[0],
);
export const getStakeableLockedTransferableInputForTest = (
amtount: bigint,
lockTime: bigint,
) =>
new TransferableInput(
new UTXOID(testUTXOID1, new Int(0)),
Id.fromString(testContext.avaxAssetID),
new StakeableLockIn(
new BigIntPr(lockTime),
TransferInput.fromNative(amtount, [0]),
),
);
export const getValidUtxo = (
amt = new BigIntPr(BigInt(50 * 1e9)),
assetId = testAvaxAssetID,
) =>
new Utxo(
new UTXOID(testUTXOID3, new Int(0)),
assetId,
new TransferOutput(
amt,
OutputOwners.fromNative([testOwnerXAddress.toBytes()]),
),
);
export const fromAddressBytes = [testOwnerXAddress.toBytes()];
export const getTransferableOutForTest = (
amount: bigint,
locktime?: bigint,
threshold?: number,
) => {
return TransferableOutput.fromNative(
testContext.avaxAssetID,
amount,
fromAddressBytes,
locktime,
threshold,
);
};
export const getStakeableLockedTransferableOutForTest = (
amount: bigint,
lockTime: bigint,
) => {
return new TransferableOutput(
Id.fromString(testContext.avaxAssetID),
new StakeableLockOut(
new BigIntPr(lockTime),
new TransferOutput(
new BigIntPr(amount),
OutputOwners.fromNative([testOwnerXAddress.toBytes()]),
),
),
);
};
export const testUtxos = () => [
getLockedUTXO(),
getNotTransferOutput(),
getValidUtxo(),
];
export const getBaseTxForTest = (changeAmount: bigint, blockchainId: string) =>
BaseTx.fromNative(
testContext.networkID,
blockchainId,
[getTransferableOutForTest(changeAmount)],
[getTransferableInputForTest()],
new Uint8Array(),
);
export const getOutputForTest = () =>
new Output(
testOwnerXAddress,
new BigIntPr(BigInt(0.1 * 1e9)),
Id.fromString(testContext.avaxAssetID),
);
Выполнить команду
Для локальной разработки. Не используйте в интернете!