Skip to main content
Version: 5.14.1

Sequencer Provider

On top of methods found in the Provider section, SequencerProvider has some additional ones you can use.

Creating an instance​

new starknet.SequencerProvider(optionsOrProvider)

The options for the provider depend on the network. The structure of the options object is:

  • options.baseUrl - Base URL of the network
  • options.feederGatewayUrl - Feeder Gateway Endpoint of the network
  • options.gatewayUrl - Gateway Endpoint
  • options.headers - [Optional] custom fetch headers

or

  • options.network - NetworkName
  • options.headers - [Optional] custom fetch headers

Example:

const provider = new starknet.SequencerProvider({
baseUrl: BaseUrl.SN_GOERLI,
feederGatewayUrl: 'feeder_gateway',
gatewayUrl: 'gateway',
});

Methods​


getContractAddresses()​

provider.getContractAddresses() => Promise < GetContractAddressesResponse >

Gets the smart contract address on the network.

GetContractAddressesResponse​
{
Starknet: string;
GpsStatementVerifier: string;
}

getCode()​

provider.getCode(contractAddress, blockIdentifier) => Promise < GetCodeResponse >

Gets the smart contract address on the network.

GetCodeResponse​
{
bytecode: ByteCode;
abi: Abi;
}

estimateMessageFee()​

provider.estimateMessageFee(CallL1Handler, blockIdentifier) => Promise < EstimateFeeResponse >

Estimate fee for sending a message to L1.

CallL1Handler​
type CallL1Handler = {
from_address: getDecimalString(from_address),
to_address: getHexString(to_address),
entry_point_selector: getSelector(entry_point_selector),
payload: getHexStringArray(payload),
};

###### _EstimateFeeResponse_

```typescript
{
overall_fee: number;
gas_price: number;
gas_usage: number;
unit: string;
}

getTransactionStatus()​

provider.getTransactionStatus(txHash) => Promise < GetTransactionStatusResponse >

Gets the status of a transaction.

GetTransactionStatusResponse​
{
tx_status: 'NOT_RECEIVED' | 'RECEIVED' | 'PENDING' | 'ACCEPTED_ON_L2' | 'ACCEPTED_ON_L1' | 'REJECTED';
block_hash: string;
tx_failure_reason?: {
tx_id: number;
code: string;
error_message: string;
}
}

getTransactionTrace()​

provider.getTransactionTrace(txHash) => Promise < GetTransactionTraceResponse >

Gets the transaction trace from a tx hash.

GetTransactionTraceResponse​
{
validate_invocation?: FunctionInvocation;
function_invocation?: FunctionInvocation;
fee_transfer_invocation?: FunctionInvocation;
signature: Signature;
}

{
FunctionInvocation: {
caller_address: string;
contract_address: string;
calldata: {
[inputName: string]: string | string[] | { type: 'struct'; [k: string]: BigNumberish };
};
call_type?: string;
class_hash?: string;
selector?: string;
entry_point_type?: EntryPointType;
result: Array<any>;
execution_resources: ExecutionResources;
internal_calls: Array<FunctionInvocation>;
events: Array<any>;
messages: Array<any>;
};
}

getBlockTraces()​

provider.getBlockTraces(blockIdentifier) => Promise < BlockTransactionTracesResponse >

Gets the transaction traces of an entire block

BlockTransactionTracesResponse​

{
traces: Array<TransactionTraceResponse & { transaction_hash: string }>;
}

{
TransactionTraceResponse: {
validate_invocation?: FunctionInvocation;
function_invocation?: FunctionInvocation;
fee_transfer_invocation?: FunctionInvocation;
signature: Signature;
};

FunctionInvocation: {
caller_address: string;
contract_address: string;
calldata: {
[inputName: string]: string | string[] | { type: 'struct'; [k: string]: BigNumberish };
};
call_type?: string;
class_hash?: string;
selector?: string;
entry_point_type?: EntryPointType;
result: Array<any>;
execution_resources: ExecutionResources;
internal_calls: Array<FunctionInvocation>;
events: Array<any>;
messages: Array<any>;
};
}