Skip to main content
Version: 9.2.1

Namespace: stark

Functions​

compressProgram​

▸ compressProgram(jsonProgram): CompressedProgram

Compress compiled Cairo 0 program

Reference

Parameters​

NameTypeDescription
jsonProgramstring | ProgramRepresenting the compiled Cairo 0 program

Returns​

CompressedProgram

Compressed Cairo 0 program

Example

const contractCairo0 = json.parse(fs.readFileSync('./cairo0contract.json').toString('ascii'));
const result = stark.compressProgram(contractCairo0);
// result = "H4sIAAAAAAAAA+1dC4/bOJL+K4aBu01me7r5EEUyixzQk/TuB..."

Defined in​

src/utils/stark/index.ts:63


decompressProgram​

▸ decompressProgram(base64): any

Decompress compressed compiled Cairo 0 program

Parameters​

NameTypeDescription
base64string | string[]Compressed Cairo 0 program

Returns​

any

Parsed decompressed compiled Cairo 0 program

Example

const contractCairo0 = json.parse(fs.readFileSync('./cairo0contract.json').toString('ascii'));
const compressedCairo0 = stark.compressProgram(contractCairo0);
const result = stark.decompressProgram(compressedCairo0);
// result = {
// abi: [
// {
// inputs: [Array],
// name: 'increase_balance',
// outputs: [],
// type: 'function'
// }
// ],
// entry_points_by_type: { CONSTRUCTOR: [], EXTERNAL: [ [Object], [Object] ], L1_HANDLER: [] },
// program: {
// attributes: [],
// builtins: [ 'pedersen', 'range_check' ],
// compiler_version: '0.10.2',
// data: [
// '0x480680017fff8000',
// ...

Defined in​

src/utils/stark/index.ts:97


randomAddress​

▸ randomAddress(): string

Random Address based on random keyPair

Returns​

string

an hex string of a random Starknet address

Example

const result = stark.randomAddress();
// result = "0x51fc8126a13cd5ddb29a71ca399cb1e814f086f5af1b502d7151c14929554f"

Defined in​

src/utils/stark/index.ts:112


formatSignature​

▸ formatSignature(sig?): ArraySignatureType

Format Signature to standard type (hex array)

Parameters​

NameType
sig?Signature

Returns​

ArraySignatureType

Custom hex string array

Throws

if sig not defined, or wrong format

Example

const signature = ec.starkCurve.sign('0x12de34', '0x3487123eac');
const result = stark.formatSignature(signature);
// result = ['0xba8eecee2d69c417e8c6a20cf331c821f716b58ba9e47166c7476afdb38997',
// '0x69ef7438c94104839a6e2aa2385482a77399d2f46e894ae4f50ab6d69239d1c']

Defined in​

src/utils/stark/index.ts:130


signatureToDecimalArray​

▸ signatureToDecimalArray(sig?): ArraySignatureType

Format Signature to decimal string array

Parameters​

NameType
sig?Signature

Returns​

ArraySignatureType

Custom hex string array

Throws

if sig not defined, or wrong format

Example

const signature = ec.starkCurve.sign('0x12de34', '0x3487123eac');
const result = stark.signatureToDecimalArray(signature);
// result = ['329619989660444495690615805546674399714973829707166906185976654753023887767',
// '2994745480203297689255012826403147585778741462125743754529207781488706428188']

Defined in​

src/utils/stark/index.ts:156


signatureToHexArray​

▸ signatureToHexArray(sig?): ArraySignatureType

Format Signature to hex string array

Parameters​

NameType
sig?Signature

Returns​

ArraySignatureType

Custom hex string array

Throws

if sig not defined, or wrong format

Example

const signature = ec.starkCurve.sign('0x12de34', '0x3487123eac');
const result = stark.signatureToHexArray(signature);
// result = ['0xba8eecee2d69c417e8c6a20cf331c821f716b58ba9e47166c7476afdb38997',
// '0x69ef7438c94104839a6e2aa2385482a77399d2f46e894ae4f50ab6d69239d1c']

Defined in​

src/utils/stark/index.ts:173


zeroResourceBounds​

▸ zeroResourceBounds(): ResourceBoundsBN

Returns a resource bounds with zero values and no overhead.

Returns​

ResourceBoundsBN

A resource bounds with zero values and no overhead.

Defined in​

src/utils/stark/index.ts:181


toOverheadResourceBounds​

▸ toOverheadResourceBounds(estimate, overhead?): ResourceBoundsBN

Calculates the maximum resource bounds for fee estimation.

Parameters​

NameTypeDescription
estimateObjectThe estimate for the fee.
estimate.unit"FRI"-
estimate.l1_gas_pricestring-
estimate.l2_gas_pricestring-
estimate.l1_data_gas_pricestring-
estimate.l1_gas_consumedstring-
estimate.l2_gas_consumedstring-
estimate.l1_data_gas_consumedstring-
estimate.overall_feestring-
overhead?false | ResourceBoundsOverheadThe percentage overhead added to the max units and max price per unit. Pass false to disable overhead.

Returns​

ResourceBoundsBN

The resource bounds with overhead represented as BigInt.

Throws

If the estimate object is undefined or does not have the required properties.

Defined in​

src/utils/stark/index.ts:193


resourceBoundsToEstimateFeeResponse​

▸ resourceBoundsToEstimateFeeResponse(resourceBounds): EstimateFeeResponseOverhead

Converts a resource bounds to an estimate fee response. No overhead is applied.

Parameters​

NameTypeDescription
resourceBoundsResourceBoundsBNThe resource bounds to convert.

Returns​

EstimateFeeResponseOverhead

The estimate fee response.

Example

const resourceBounds = {
l1_gas: { max_amount: 1000n, max_price_per_unit: 100n },
l2_gas: { max_amount: 2000n, max_price_per_unit: 200n },
l1_data_gas: { max_amount: 500n, max_price_per_unit: 50n },
};
const result = stark.resourceBoundsToEstimateFeeResponse(resourceBounds);
// result = {
// resourceBounds: resourceBounds,
// overall_fee: 129000n,
// unit: 'FRI'
// }

Defined in​

src/utils/stark/index.ts:250


toOverheadOverallFee​

▸ toOverheadOverallFee(estimate, overhead?): bigint

Calculates the overall fee for a transaction based on resource consumption and prices.

The estimated fee for the transaction (in wei or fri, depending on the tx version), equals to: l1_gas_consumedl1_gas_price + l1_data_gas_consumedl1_data_gas_price + l2_gas_consumed*l2_gas_price

Parameters​

NameTypeDescription
estimateObjectThe fee estimate containing gas consumption and price data
estimate.unit"FRI"-
estimate.l1_gas_pricestring-
estimate.l2_gas_pricestring-
estimate.l1_data_gas_pricestring-
estimate.l1_gas_consumedstring-
estimate.l2_gas_consumedstring-
estimate.l1_data_gas_consumedstring-
estimate.overall_feestring-
overheadfalse | ResourceBoundsOverheadThe overhead percentage. Pass false to disable overhead.

Returns​

bigint

The calculated overall fee in wei or fri

Example

const estimate = {
l1_gas_consumed: 1000n,
l1_gas_price: 100n,
l1_data_gas_consumed: 500n,
l1_data_gas_price: 50n,
l2_gas_consumed: 200n,
l2_gas_price: 20n,
};
const result = stark.toOverheadOverallFee(estimate, overhead);
// result = 1000n * 100n + 500n * 50n + 200n * 20n = 129000n

Defined in​

src/utils/stark/index.ts:289


ZeroFeeEstimate​

▸ ZeroFeeEstimate(): FeeEstimate

Mock zero fee API response

Returns​

FeeEstimate

Defined in​

src/utils/stark/index.ts:315


intDAM​

▸ intDAM(dam): EDAMode

Converts the data availability mode from EDataAvailabilityMode to EDAMode.

Parameters​

NameTypeDescription
damEDataAvailabilityModeThe data availability mode to be converted.

Returns​

EDAMode

The converted data availability mode.

Throws

If the data availability mode is not a valid value.

Example

const result = stark.intDAM(RPC.EDataAvailabilityMode.L1);
// result = 0

Defined in​

src/utils/stark/index.ts:340


toTransactionVersion​

▸ toTransactionVersion(defaultVersion, providedVersion?): ETransactionVersion3

Convert input versions to ETransactionVersion or throw an error. Returns providedVersion if specified, otherwise returns defaultVersion.

Parameters​

NameTypeDescription
defaultVersionBigNumberishThe default transaction version to use if providedVersion is not specified
providedVersion?BigNumberishOptional transaction version that takes precedence if provided

Returns​

ETransactionVersion3

The transaction version - either providedVersion if specified or defaultVersion

Throws

If either version is not a valid ETransactionVersion

Example

const result = stark.toTransactionVersion(
'0x100000000000000000000000000000003',
stark.toFeeVersion(2)
);
// result = "0x100000000000000000000000000000002"

Defined in​

src/utils/stark/index.ts:359


toFeeVersion​

▸ toFeeVersion(providedVersion?): ETransactionVersion | undefined

Convert Transaction version to Fee version or throw an error

Parameters​

NameTypeDescription
providedVersion?BigNumberish0..3 number representing the transaction version

Returns​

ETransactionVersion | undefined

the fee estimation version corresponding to the transaction version provided

Throws

if the transaction version is unknown

Example

const result = stark.toFeeVersion(2);
// result = "0x100000000000000000000000000000002"

Defined in​

src/utils/stark/index.ts:383


v3Details​

▸ v3Details(details): V3Details

Return provided or default v3 tx details

Parameters​

NameTypeDescription
detailsUniversalDetailsdetails of the transaction

Returns​

V3Details

an object including the V3 transaction details.

Example

const detail: UniversalDetails = { tip: 3456n };
const result = stark.v3Details(detail);
// result = {
// tip: 3456n,
// paymasterData: [],
// accountDeploymentData: [],
// nonceDataAvailabilityMode: 'L1',
// feeDataAvailabilityMode: 'L1',
// resourceBounds: {
// l2_gas: { max_amount: '0x0', max_price_per_unit: '0x0' },
// l1_gas: { max_amount: '0x0', max_price_per_unit: '0x0' }
// }
// }

Defined in​

src/utils/stark/index.ts:417


getFullPublicKey​

▸ getFullPublicKey(privateKey): string

get the hex string of the full public key related to a Starknet private key.

Parameters​

NameTypeDescription
privateKeyBigNumberisha 252 bits private key.

Returns​

string

an hex string of a 520 bit number, representing the full public key related to privateKey.

Example

const result = ec.getFullPublicKey(
'0x43b7240d227aa2fb8434350b3321c40ac1b88c7067982549e7609870621b535'
);
// result = "0x0400b730bd22358612b5a67f8ad52ce80f9e8e893639ade263537e6ef35852e5d3057795f6b090f7c6985ee143f798608a53b3659222c06693c630857a10a92acf"

Defined in​

src/utils/stark/index.ts:438


resourceBoundsToHexString​

▸ resourceBoundsToHexString(resourceBoundsBN): ResourceBounds

Converts ResourceBoundsBN (with bigint values) to ResourceBounds (with string values)

Parameters​

NameTypeDescription
resourceBoundsBNResourceBoundsBNThe resource bounds with bigint values

Returns​

ResourceBounds

The resource bounds with hex string values

Example

const resourceBoundsBN = {
l1_gas: { max_amount: 1000n, max_price_per_unit: 100n },
l2_gas: { max_amount: 2000n, max_price_per_unit: 200n },
l1_data_gas: { max_amount: 500n, max_price_per_unit: 50n },
};
const result = stark.resourceBoundsToHexString(resourceBoundsBN);
// result = {
// l1_gas: { max_amount: '0x3e8', max_price_per_unit: '0x64' },
// l2_gas: { max_amount: '0x7d0', max_price_per_unit: '0xc8' },
// l1_data_gas: { max_amount: '0x1f4', max_price_per_unit: '0x32' }
// }

Defined in​

src/utils/stark/index.ts:464


resourceBoundsToBigInt​

▸ resourceBoundsToBigInt(resourceBounds): ResourceBoundsBN

Converts ResourceBounds (with string values) to ResourceBoundsBN (with BigInt values)

Parameters​

NameTypeDescription
resourceBoundsObjectThe resource bounds with string values
resourceBounds.l1_gasObject-
resourceBounds.l1_gas.max_amountstring-
resourceBounds.l1_gas.max_price_per_unitstring-
resourceBounds.l1_data_gasObject-
resourceBounds.l1_data_gas.max_amountstring-
resourceBounds.l1_data_gas.max_price_per_unitstring-
resourceBounds.l2_gasObject-
resourceBounds.l2_gas.max_amountstring-
resourceBounds.l2_gas.max_price_per_unitstring-

Returns​

ResourceBoundsBN

The resource bounds with BigInt values

Example

const resourceBounds = {
l1_gas: { max_amount: '0x3e8', max_price_per_unit: '0x64' },
l2_gas: { max_amount: '0x7d0', max_price_per_unit: '0xc8' },
l1_data_gas: { max_amount: '0x1f4', max_price_per_unit: '0x32' },
};
const result = stark.resourceBoundsToBigInt(resourceBounds);
// result = {
// l1_gas: { max_amount: 1000n, max_price_per_unit: 100n },
// l2_gas: { max_amount: 2000n, max_price_per_unit: 200n },
// l1_data_gas: { max_amount: 500n, max_price_per_unit: 50n }
// }

Defined in​

src/utils/stark/index.ts:502