Namespace: stark
Functions​
compressProgram​
â–¸ compressProgram(jsonProgram): CompressedProgram
Compress compiled Cairo 0 program
Parameters​
| Name | Type | Description |
|---|---|---|
jsonProgram | string | Program | Representing the compiled Cairo 0 program |
Returns​
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​
decompressProgram​
â–¸ decompressProgram(base64): any
Decompress compressed compiled Cairo 0 program
Parameters​
| Name | Type | Description |
|---|---|---|
base64 | 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​
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​
makeAddress​
â–¸ makeAddress(input): string
Lowercase and hex prefix string
Parameters​
| Name | Type |
|---|---|
input | string |
Returns​
string
Deprecated
Not used internally, naming is confusing based on functionality
Defined in​
formatSignature​
â–¸ formatSignature(sig?): ArraySignatureType
Format Signature to standard type (hex array)
Parameters​
| Name | Type |
|---|---|
sig? | Signature |
Returns​
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​
signatureToDecimalArray​
â–¸ signatureToDecimalArray(sig?): ArraySignatureType
Format Signature to decimal string array
Parameters​
| Name | Type |
|---|---|
sig? | Signature |
Returns​
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​
signatureToHexArray​
â–¸ signatureToHexArray(sig?): ArraySignatureType
Format Signature to hex string array
Parameters​
| Name | Type |
|---|---|
sig? | Signature |
Returns​
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​
estimatedFeeToMaxFee​
â–¸ estimatedFeeToMaxFee(estimatedFee, overhead?): bigint
Convert estimated fee to max fee including a margin
Parameters​
| Name | Type | Default value | Description |
|---|---|---|---|
estimatedFee | BigNumberish | undefined | The estimated fee |
overhead? | number | FeeMarginPercentage.MAX_FEE | The overhead added to the gas |
Returns​
bigint
The maximum fee with the margin
Example
const result = stark.estimatedFeeToMaxFee('8982300000000', 50);
// result = "13473450000000n"
Defined in​
estimateFeeToBounds​
â–¸ estimateFeeToBounds(estimate, amountOverhead?, priceOverhead?): ResourceBounds
Calculates the maximum resource bounds for fee estimation.
Parameters​
| Name | Type | Default value | Description |
|---|---|---|---|
estimate | 0n | { unit: "WEI" | "FRI" ; gas_consumed: string ; gas_price: string ; overall_fee: string ; data_gas_consumed: undefined | string ; data_gas_price: undefined | string } | undefined | The estimate for the fee. If a BigInt is provided, the returned bounds will be set to '0x0'. |
amountOverhead? | number | FeeMarginPercentage.L1_BOUND_MAX_AMOUNT | The percentage overhead added to the gas consumed or overall fee amount. |
priceOverhead? | number | FeeMarginPercentage.L1_BOUND_MAX_PRICE_PER_UNIT | The percentage overhead added to the gas price per unit. |
Returns​
The maximum resource bounds for fee estimation.
Throws
If the estimate object is undefined or does not have the required properties.
Example
const feeEstimated: FeeEstimate = {
gas_consumed: '0x3456a',
gas_price: '0xa45567567567ae4',
overall_fee: '0x2198F463A77A899A5668',
unit: 'WEI',
};
const result = stark.estimateFeeToBounds(feeEstimated, 70, 50);
// result = {
// l2_gas: { max_amount: '0x0', max_price_per_unit: '0x0' },
// l1_gas: { max_amount: '0x58f9a', max_price_per_unit: '0xf6801b01b01b856' }
// }
Defined in​
intDAM​
â–¸ intDAM(dam): EDAMode
Converts the data availability mode from EDataAvailabilityMode to EDAMode.
Parameters​
| Name | Type | Description |
|---|---|---|
dam | EDataAvailabilityMode | The data availability mode to be converted. |
Returns​
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​
toTransactionVersion​
â–¸ toTransactionVersion(defaultVersion, providedVersion?): ETransactionVersion
Convert to ETransactionVersion or throw an error. Return providedVersion is specified else return defaultVersion
Parameters​
| Name | Type | Description |
|---|---|---|
defaultVersion | BigNumberish | default estimate transaction version |
providedVersion? | BigNumberish | estimate transaction version |
Returns​
if providedVersion is not provided, returns the default estimate version, else return the provided version
Throws
if estimate transaction version or default estimate transaction version is unknown
Example
const result = stark.toTransactionVersion(
'0x100000000000000000000000000000003',
stark.toFeeVersion(2)
);
// result = "0x100000000000000000000000000000002"
Defined in​
toFeeVersion​
â–¸ toFeeVersion(providedVersion?): undefined | "0x100000000000000000000000000000000" | "0x100000000000000000000000000000001" | "0x100000000000000000000000000000002" | "0x100000000000000000000000000000003"
Convert Transaction version to Fee version or throw an error
Parameters​
| Name | Type | Description |
|---|---|---|
providedVersion? | BigNumberish | 0..3 number representing the transaction version |
Returns​
undefined | "0x100000000000000000000000000000000" | "0x100000000000000000000000000000001" | "0x100000000000000000000000000000002" | "0x100000000000000000000000000000003"
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​
v3Details​
â–¸ v3Details(details): Object
Return provided or default v3 tx details
Parameters​
| Name | Type | Description |
|---|---|---|
details | UniversalDetails | details of the transaction |
Returns​
Object
an object including the V3 transaction details.
| Name | Type |
|---|---|
tip | BigNumberish |
paymasterData | BigNumberish[] |
accountDeploymentData | BigNumberish[] |
nonceDataAvailabilityMode | EDataAvailabilityMode |
feeDataAvailabilityMode | EDataAvailabilityMode |
resourceBounds | RESOURCE_BOUNDS_MAPPING |
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​
reduceV2​
â–¸ reduceV2(providedVersion): ETransactionVersion
It will reduce V2 to V1, else (V3) stay the same F2 -> F1 V2 -> V1 F3 -> F3 V3 -> V3
Parameters​
| Name | Type |
|---|---|
providedVersion | ETransactionVersion |
Returns​
if v2 then returns v1. if v3 then return v3
Example
const result = stark.reduceV2(constants.TRANSACTION_VERSION.V2);
// result = "0x1"