starknet
Version:
JavaScript library for Starknet
1,383 lines (1,355 loc) • 774 kB
JavaScript
"use strict";
var starknet = (() => {
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod2) => __copyProps(__defProp({}, "__esModule", { value: true }), mod2);
// src/index.ts
var index_exports = {};
__export(index_exports, {
AbiParser1: () => AbiParser1,
AbiParser2: () => AbiParser2,
AbiParserInterface: () => AbiParserInterface,
Account: () => Account,
AccountInterface: () => AccountInterface,
BatchClient: () => BatchClient,
BlockStatus: () => BlockStatus,
BlockTag: () => BlockTag,
CairoByteArray: () => CairoByteArray,
CairoBytes31: () => CairoBytes31,
CairoCustomEnum: () => CairoCustomEnum,
CairoFelt: () => CairoFelt,
CairoFelt252: () => CairoFelt252,
CairoFixedArray: () => CairoFixedArray,
CairoInt128: () => CairoInt128,
CairoInt16: () => CairoInt16,
CairoInt32: () => CairoInt32,
CairoInt64: () => CairoInt64,
CairoInt8: () => CairoInt8,
CairoOption: () => CairoOption,
CairoOptionVariant: () => CairoOptionVariant,
CairoResult: () => CairoResult,
CairoResultVariant: () => CairoResultVariant,
CairoUint128: () => CairoUint128,
CairoUint16: () => CairoUint16,
CairoUint256: () => CairoUint256,
CairoUint32: () => CairoUint32,
CairoUint512: () => CairoUint512,
CairoUint64: () => CairoUint64,
CairoUint8: () => CairoUint8,
CairoUint96: () => CairoUint96,
CallData: () => CallData,
Contract: () => Contract,
ContractInterface: () => ContractInterface,
Deployer: () => Deployer,
DeployerInterface: () => DeployerInterface,
EDAMode: () => EDAMode3,
EDataAvailabilityMode: () => EDataAvailabilityMode3,
ETH_ADDRESS: () => ETH_ADDRESS,
ETransactionExecutionStatus: () => ETransactionExecutionStatus3,
ETransactionStatus: () => ETransactionStatus3,
ETransactionVersion: () => ETransactionVersion5,
ETransactionVersion2: () => ETransactionVersion23,
ETransactionVersion3: () => ETransactionVersion33,
EntryPointType: () => EntryPointType,
EthSigner: () => EthSigner,
Int: () => Int,
LedgerSigner: () => LedgerSigner111,
LedgerSigner111: () => LedgerSigner111,
LedgerSigner221: () => LedgerSigner221,
LedgerSigner231: () => LedgerSigner231,
LibraryError: () => LibraryError,
Literal: () => Literal,
LogLevelIndex: () => LogLevelIndex,
NON_ZERO_PREFIX: () => NON_ZERO_PREFIX,
OutsideExecutionTypesV1: () => OutsideExecutionTypesV1,
OutsideExecutionTypesV2: () => OutsideExecutionTypesV2,
OutsideExecutionVersion: () => OutsideExecutionVersion,
PaymasterInterface: () => PaymasterInterface,
PaymasterRpc: () => PaymasterRpc,
Provider: () => RpcProvider2,
ProviderInterface: () => ProviderInterface,
RPC: () => api_exports3,
RPC010: () => rpc_0_10_0_exports,
RPC09: () => rpc_0_9_0_exports,
RPCResponseParser: () => RPCResponseParser,
ReceiptTx: () => ReceiptTx,
ResponseParser: () => ResponseParser,
RpcChannel: () => RpcChannel2,
RpcError: () => RpcError,
RpcProvider: () => RpcProvider2,
Signer: () => Signer,
SignerInterface: () => SignerInterface,
Subscription: () => Subscription,
TimeoutError: () => TimeoutError,
TransactionExecutionStatus: () => TransactionExecutionStatus,
TransactionFinalityStatus: () => TransactionFinalityStatus,
TransactionType: () => TransactionType,
TypedDataRevision: () => TypedDataRevision2,
UINT_128_MAX: () => UINT_128_MAX,
UINT_128_MIN: () => UINT_128_MIN,
UINT_256_HIGH_MAX: () => UINT_256_HIGH_MAX,
UINT_256_HIGH_MIN: () => UINT_256_HIGH_MIN,
UINT_256_LOW_MAX: () => UINT_256_LOW_MAX,
UINT_256_LOW_MIN: () => UINT_256_LOW_MIN,
UINT_256_MAX: () => UINT_256_MAX,
UINT_256_MIN: () => UINT_256_MIN,
UINT_512_MAX: () => UINT_512_MAX,
UINT_512_MIN: () => UINT_512_MIN,
Uint: () => Uint,
ValidateType: () => ValidateType,
WalletAccount: () => WalletAccount,
WalletAccountV5: () => WalletAccountV5,
WebSocketChannel: () => WebSocketChannel,
WebSocketNotConnectedError: () => WebSocketNotConnectedError,
addAddressPadding: () => addAddressPadding,
byteArray: () => byteArray_exports,
cairo: () => cairo_exports,
compareVersions: () => compareVersions,
config: () => config,
constants: () => constants_exports,
contractClassResponseToLegacyCompiledContract: () => contractClassResponseToLegacyCompiledContract,
createAbiParser: () => createAbiParser,
createTransactionReceipt: () => createTransactionReceipt,
defaultDeployer: () => defaultDeployer,
defaultPaymaster: () => defaultPaymaster,
defaultProvider: () => defaultProvider,
ec: () => ec_exports,
encode: () => encode_exports,
eth: () => eth_exports,
events: () => events_exports,
extractContractHashes: () => extractContractHashes,
fastParsingStrategy: () => fastParsingStrategy,
getAbiVersion: () => getAbiVersion,
getChecksumAddress: () => getChecksumAddress,
getGasPrices: () => getGasPrices,
getLedgerPathBuffer: () => getLedgerPathBuffer111,
getLedgerPathBuffer111: () => getLedgerPathBuffer111,
getLedgerPathBuffer221: () => getLedgerPathBuffer221,
getTipStatsFromBlocks: () => getTipStatsFromBlocks,
hash: () => hash_exports,
hdParsingStrategy: () => hdParsingStrategy,
isAccount: () => isAccount,
isNoConstructorValid: () => isNoConstructorValid,
isPreConfirmedBlock: () => isPreConfirmedBlock,
isPreConfirmedStateUpdate: () => isPreConfirmedStateUpdate,
isPreConfirmedTransaction: () => isPreConfirmedTransaction,
isRPC08Plus_ResourceBounds: () => isRPC08Plus_ResourceBounds,
isRPC08Plus_ResourceBoundsBN: () => isRPC08Plus_ResourceBoundsBN,
isSierra: () => isSierra,
isSupportedSpecVersion: () => isSupportedSpecVersion,
isV3Tx: () => isV3Tx,
isVersion: () => isVersion,
json: () => json_exports,
legacyDeployer: () => legacyDeployer,
logger: () => logger,
merkle: () => merkle_exports,
num: () => num_exports,
outsideExecution: () => outsideExecution_exports,
parseCalldataField: () => parseCalldataField,
paymaster: () => paymaster_exports,
provider: () => provider_exports,
selector: () => selector_exports,
shortString: () => shortString_exports,
src5: () => src5_exports,
stark: () => stark_exports,
starknetId: () => starknetId_exports,
toAnyPatchVersion: () => toAnyPatchVersion,
toApiVersion: () => toApiVersion,
transaction: () => transaction_exports,
typedData: () => typedData_exports,
uint256: () => uint256_exports,
units: () => units,
v2hash: () => v2_exports,
v3hash: () => v3_exports,
validateAndParseAddress: () => validateAndParseAddress,
validateChecksumAddress: () => validateChecksumAddress,
verifyMessageInStarknet: () => verifyMessageInStarknet,
wallet: () => connect_exports,
walletV5: () => connectV5_exports
});
// src/global/constants.ts
var constants_exports = {};
__export(constants_exports, {
ADDR_BOUND: () => ADDR_BOUND,
API_VERSION: () => API_VERSION,
BaseUrl: () => _BaseUrl,
DEFAULT_GLOBAL_CONFIG: () => DEFAULT_GLOBAL_CONFIG,
HARDENING_4BYTES: () => HARDENING_4BYTES,
HARDENING_BYTE: () => HARDENING_BYTE,
IS_BROWSER: () => IS_BROWSER,
LegacyUDC: () => LegacyUDC,
MASK_250: () => MASK_250,
MASK_31: () => MASK_31,
MAX_STORAGE_ITEM_SIZE: () => MAX_STORAGE_ITEM_SIZE,
NetworkName: () => _NetworkName,
OutsideExecutionCallerAny: () => OutsideExecutionCallerAny,
PAYMASTER_RPC_NODES: () => PAYMASTER_RPC_NODES,
PRIME: () => PRIME,
RANGE_FELT: () => RANGE_FELT,
RANGE_I128: () => RANGE_I128,
RANGE_I16: () => RANGE_I16,
RANGE_I32: () => RANGE_I32,
RANGE_I64: () => RANGE_I64,
RANGE_I8: () => RANGE_I8,
RANGE_U128: () => RANGE_U128,
RANGE_U16: () => RANGE_U16,
RANGE_U32: () => RANGE_U32,
RANGE_U64: () => RANGE_U64,
RANGE_U8: () => RANGE_U8,
RANGE_U96: () => RANGE_U96,
RPC_DEFAULT_NODES: () => RPC_DEFAULT_NODES,
SNIP9_V1_INTERFACE_ID: () => SNIP9_V1_INTERFACE_ID,
SNIP9_V2_INTERFACE_ID: () => SNIP9_V2_INTERFACE_ID,
SN_VERSION_IMPLEMENTING_BLAKE_FOR_COMPILED_CLASS: () => SN_VERSION_IMPLEMENTING_BLAKE_FOR_COMPILED_CLASS,
SYSTEM_MESSAGES: () => SYSTEM_MESSAGES,
StarknetChainId: () => _StarknetChainId,
SupportedRpcVersion: () => _SupportedRpcVersion,
TEXT_TO_FELT_MAX_LEN: () => TEXT_TO_FELT_MAX_LEN,
TransactionHashPrefix: () => _TransactionHashPrefix,
UDC: () => UDC,
ZERO: () => ZERO
});
// src/types/api/index.ts
var api_exports3 = {};
__export(api_exports3, {
ABI_TYPE_CONSTRUCTOR: () => ABI_TYPE_CONSTRUCTOR2,
ABI_TYPE_ENUM: () => ABI_TYPE_ENUM2,
ABI_TYPE_FUNCTION: () => ABI_TYPE_FUNCTION2,
ABI_TYPE_L1_HANDLER: () => ABI_TYPE_L1_HANDLER2,
API: () => api_exports2,
CALL_TYPE: () => CALL_TYPE2,
CONTRACT: () => contract_exports2,
EBlockStatus: () => EBlockStatus2,
EBlockTag: () => EBlockTag2,
EDAMode: () => EDAMode2,
EDataAvailabilityMode: () => EDataAvailabilityMode2,
ESimulationFlag: () => ESimulationFlag2,
ETransactionExecutionStatus: () => ETransactionExecutionStatus2,
ETransactionFinalityStatus: () => ETransactionFinalityStatus2,
ETransactionStatus: () => ETransactionStatus2,
ETransactionType: () => ETransactionType2,
ETransactionVersion: () => ETransactionVersion4,
ETransactionVersion2: () => ETransactionVersion22,
ETransactionVersion3: () => ETransactionVersion32,
EVENT_ABI_TYPE: () => EVENT_ABI_TYPE2,
JRPC: () => jsonrpc_exports,
L1_DA_MODE: () => L1_DA_MODE2,
PAYMASTER_API: () => snip_29_exports2,
PRICE_UNIT_FRI: () => PRICE_UNIT_FRI2,
PRICE_UNIT_WEI: () => PRICE_UNIT_WEI2,
Permission: () => Permission2,
RPCSPEC010: () => esm_exports2,
RPCSPEC09: () => esm_exports,
STATE_MUTABILITY_EXTERNAL: () => STATE_MUTABILITY_EXTERNAL2,
STATE_MUTABILITY_VIEW: () => STATE_MUTABILITY_VIEW2,
STATUS_ACCEPTED_ON_L1: () => STATUS_ACCEPTED_ON_L12,
STATUS_ACCEPTED_ON_L2: () => STATUS_ACCEPTED_ON_L22,
STATUS_CANDIDATE: () => STATUS_CANDIDATE2,
STATUS_PRE_CONFIRMED: () => STATUS_PRE_CONFIRMED2,
STATUS_PRE_CONFIRMED_LOWERCASE: () => STATUS_PRE_CONFIRMED_LOWERCASE2,
STATUS_RECEIVED: () => STATUS_RECEIVED2,
STATUS_REVERTED: () => STATUS_REVERTED2,
STATUS_SUCCEEDED: () => STATUS_SUCCEEDED2,
STRUCT_ABI_TYPE: () => STRUCT_ABI_TYPE2,
TXN_TYPE_DECLARE: () => TXN_TYPE_DECLARE2,
TXN_TYPE_DEPLOY: () => TXN_TYPE_DEPLOY2,
TXN_TYPE_DEPLOY_ACCOUNT: () => TXN_TYPE_DEPLOY_ACCOUNT2,
TXN_TYPE_INVOKE: () => TXN_TYPE_INVOKE2,
TXN_TYPE_L1_HANDLER: () => TXN_TYPE_L1_HANDLER2,
TypedDataRevision: () => TypedDataRevision2,
WALLET_API: () => wallet_api_exports2
});
// src/types/api/jsonrpc.ts
var jsonrpc_exports = {};
// node_modules/@starknet-io/starknet-types-09/dist/esm/index.js
var esm_exports = {};
__export(esm_exports, {
ABI_TYPE_CONSTRUCTOR: () => ABI_TYPE_CONSTRUCTOR,
ABI_TYPE_ENUM: () => ABI_TYPE_ENUM,
ABI_TYPE_FUNCTION: () => ABI_TYPE_FUNCTION,
ABI_TYPE_L1_HANDLER: () => ABI_TYPE_L1_HANDLER,
API: () => api_exports,
CALL_TYPE: () => CALL_TYPE,
CONTRACT: () => contract_exports,
EBlockStatus: () => EBlockStatus,
EBlockTag: () => EBlockTag,
EDAMode: () => EDAMode,
EDataAvailabilityMode: () => EDataAvailabilityMode,
ESimulationFlag: () => ESimulationFlag,
ETransactionExecutionStatus: () => ETransactionExecutionStatus,
ETransactionFinalityStatus: () => ETransactionFinalityStatus,
ETransactionStatus: () => ETransactionStatus,
ETransactionType: () => ETransactionType,
ETransactionVersion: () => ETransactionVersion,
ETransactionVersion2: () => ETransactionVersion2,
ETransactionVersion3: () => ETransactionVersion3,
EVENT_ABI_TYPE: () => EVENT_ABI_TYPE,
L1_DA_MODE: () => L1_DA_MODE,
PAYMASTER_API: () => snip_29_exports,
PRICE_UNIT_FRI: () => PRICE_UNIT_FRI,
PRICE_UNIT_WEI: () => PRICE_UNIT_WEI,
Permission: () => Permission,
STATE_MUTABILITY_EXTERNAL: () => STATE_MUTABILITY_EXTERNAL,
STATE_MUTABILITY_VIEW: () => STATE_MUTABILITY_VIEW,
STATUS_ACCEPTED_ON_L1: () => STATUS_ACCEPTED_ON_L1,
STATUS_ACCEPTED_ON_L2: () => STATUS_ACCEPTED_ON_L2,
STATUS_CANDIDATE: () => STATUS_CANDIDATE,
STATUS_PRE_CONFIRMED: () => STATUS_PRE_CONFIRMED,
STATUS_PRE_CONFIRMED_LOWERCASE: () => STATUS_PRE_CONFIRMED_LOWERCASE,
STATUS_RECEIVED: () => STATUS_RECEIVED,
STATUS_REVERTED: () => STATUS_REVERTED,
STATUS_SUCCEEDED: () => STATUS_SUCCEEDED,
STRUCT_ABI_TYPE: () => STRUCT_ABI_TYPE,
TXN_TYPE_DECLARE: () => TXN_TYPE_DECLARE,
TXN_TYPE_DEPLOY: () => TXN_TYPE_DEPLOY,
TXN_TYPE_DEPLOY_ACCOUNT: () => TXN_TYPE_DEPLOY_ACCOUNT,
TXN_TYPE_INVOKE: () => TXN_TYPE_INVOKE,
TXN_TYPE_L1_HANDLER: () => TXN_TYPE_L1_HANDLER,
TypedDataRevision: () => TypedDataRevision,
WALLET_API: () => wallet_api_exports
});
// node_modules/@starknet-io/starknet-types-09/dist/esm/api/index.js
var api_exports = {};
__export(api_exports, {
ABI_TYPE_CONSTRUCTOR: () => ABI_TYPE_CONSTRUCTOR,
ABI_TYPE_ENUM: () => ABI_TYPE_ENUM,
ABI_TYPE_FUNCTION: () => ABI_TYPE_FUNCTION,
ABI_TYPE_L1_HANDLER: () => ABI_TYPE_L1_HANDLER,
CALL_TYPE: () => CALL_TYPE,
CONTRACT: () => contract_exports,
EBlockStatus: () => EBlockStatus,
EBlockTag: () => EBlockTag,
EDAMode: () => EDAMode,
EDataAvailabilityMode: () => EDataAvailabilityMode,
ESimulationFlag: () => ESimulationFlag,
ETransactionExecutionStatus: () => ETransactionExecutionStatus,
ETransactionFinalityStatus: () => ETransactionFinalityStatus,
ETransactionStatus: () => ETransactionStatus,
ETransactionType: () => ETransactionType,
ETransactionVersion: () => ETransactionVersion,
ETransactionVersion2: () => ETransactionVersion2,
ETransactionVersion3: () => ETransactionVersion3,
EVENT_ABI_TYPE: () => EVENT_ABI_TYPE,
L1_DA_MODE: () => L1_DA_MODE,
PRICE_UNIT_FRI: () => PRICE_UNIT_FRI,
PRICE_UNIT_WEI: () => PRICE_UNIT_WEI,
STATE_MUTABILITY_EXTERNAL: () => STATE_MUTABILITY_EXTERNAL,
STATE_MUTABILITY_VIEW: () => STATE_MUTABILITY_VIEW,
STATUS_ACCEPTED_ON_L1: () => STATUS_ACCEPTED_ON_L1,
STATUS_ACCEPTED_ON_L2: () => STATUS_ACCEPTED_ON_L2,
STATUS_CANDIDATE: () => STATUS_CANDIDATE,
STATUS_PRE_CONFIRMED: () => STATUS_PRE_CONFIRMED,
STATUS_PRE_CONFIRMED_LOWERCASE: () => STATUS_PRE_CONFIRMED_LOWERCASE,
STATUS_RECEIVED: () => STATUS_RECEIVED,
STATUS_REVERTED: () => STATUS_REVERTED,
STATUS_SUCCEEDED: () => STATUS_SUCCEEDED,
STRUCT_ABI_TYPE: () => STRUCT_ABI_TYPE,
TXN_TYPE_DECLARE: () => TXN_TYPE_DECLARE,
TXN_TYPE_DEPLOY: () => TXN_TYPE_DEPLOY,
TXN_TYPE_DEPLOY_ACCOUNT: () => TXN_TYPE_DEPLOY_ACCOUNT,
TXN_TYPE_INVOKE: () => TXN_TYPE_INVOKE,
TXN_TYPE_L1_HANDLER: () => TXN_TYPE_L1_HANDLER
});
// node_modules/@starknet-io/starknet-types-09/dist/esm/api/contract.js
var contract_exports = {};
// node_modules/@starknet-io/starknet-types-09/dist/esm/api/constants.js
var STATUS_ACCEPTED_ON_L2 = "ACCEPTED_ON_L2";
var STATUS_ACCEPTED_ON_L1 = "ACCEPTED_ON_L1";
var STATUS_SUCCEEDED = "SUCCEEDED";
var STATUS_REVERTED = "REVERTED";
var STATUS_RECEIVED = "RECEIVED";
var STATUS_CANDIDATE = "CANDIDATE";
var STATUS_PRE_CONFIRMED = "PRE_CONFIRMED";
var STATUS_PRE_CONFIRMED_LOWERCASE = STATUS_PRE_CONFIRMED.toLowerCase();
var TXN_TYPE_DECLARE = "DECLARE";
var TXN_TYPE_DEPLOY = "DEPLOY";
var TXN_TYPE_DEPLOY_ACCOUNT = "DEPLOY_ACCOUNT";
var TXN_TYPE_INVOKE = "INVOKE";
var TXN_TYPE_L1_HANDLER = "L1_HANDLER";
var STRUCT_ABI_TYPE = "struct";
var EVENT_ABI_TYPE = "event";
var ABI_TYPE_FUNCTION = "function";
var ABI_TYPE_CONSTRUCTOR = "constructor";
var ABI_TYPE_L1_HANDLER = "l1_handler";
var ABI_TYPE_ENUM = "enum";
var STATE_MUTABILITY_VIEW = "view";
var STATE_MUTABILITY_EXTERNAL = "external";
var PRICE_UNIT_WEI = "WEI";
var PRICE_UNIT_FRI = "FRI";
var L1_DA_MODE = {
BLOB: "BLOB",
CALLDATA: "CALLDATA"
};
var CALL_TYPE = {
DELEGATE: "DELEGATE",
LIBRARY_CALL: "LIBRARY_CALL",
CALL: "CALL"
};
var ETransactionType = {
DECLARE: TXN_TYPE_DECLARE,
DEPLOY: TXN_TYPE_DEPLOY,
DEPLOY_ACCOUNT: TXN_TYPE_DEPLOY_ACCOUNT,
INVOKE: TXN_TYPE_INVOKE,
L1_HANDLER: TXN_TYPE_L1_HANDLER
};
var ESimulationFlag = {
SKIP_VALIDATE: "SKIP_VALIDATE",
SKIP_FEE_CHARGE: "SKIP_FEE_CHARGE"
};
var ETransactionStatus = {
RECEIVED: STATUS_RECEIVED,
CANDIDATE: STATUS_CANDIDATE,
PRE_CONFIRMED: STATUS_PRE_CONFIRMED,
ACCEPTED_ON_L2: STATUS_ACCEPTED_ON_L2,
ACCEPTED_ON_L1: STATUS_ACCEPTED_ON_L1
};
var ETransactionFinalityStatus = {
PRE_CONFIRMED: STATUS_PRE_CONFIRMED,
ACCEPTED_ON_L2: STATUS_ACCEPTED_ON_L2,
ACCEPTED_ON_L1: STATUS_ACCEPTED_ON_L1
};
var ETransactionExecutionStatus = {
SUCCEEDED: STATUS_SUCCEEDED,
REVERTED: STATUS_REVERTED
};
var EBlockTag = {
/**
* Tag `latest` refers to the latest Starknet block finalized by the consensus on L2.
*/
LATEST: "latest",
/**
* Tag `pre_confirmed` refers to the block which is currently being built by the block proposer in height `latest` + 1.
*/
PRE_CONFIRMED: STATUS_PRE_CONFIRMED_LOWERCASE,
/**
* Tag `l1_accepted` refers to the latest Starknet block which was included in a state update on L1 and finalized by the consensus on L1.
*/
L1_ACCEPTED: "l1_accepted"
};
var EBlockStatus = {
PRE_CONFIRMED: STATUS_PRE_CONFIRMED,
ACCEPTED_ON_L2: STATUS_ACCEPTED_ON_L2,
ACCEPTED_ON_L1: STATUS_ACCEPTED_ON_L1
};
var EDataAvailabilityMode = {
L1: "L1",
L2: "L2"
};
var EDAMode = {
L1: 0,
L2: 1
};
var ETransactionVersion = {
/**
* @deprecated Starknet 0.14 will not support this transaction
*/
V0: "0x0",
/**
* @deprecated Starknet 0.14 will not support this transaction
*/
V1: "0x1",
/**
* @deprecated Starknet 0.14 will not support this transaction
*/
V2: "0x2",
V3: "0x3",
/**
* @deprecated Starknet 0.14 will not support this transaction
*/
F0: "0x100000000000000000000000000000000",
/**
* @deprecated Starknet 0.14 will not support this transaction
*/
F1: "0x100000000000000000000000000000001",
/**
* @deprecated Starknet 0.14 will not support this transaction
*/
F2: "0x100000000000000000000000000000002",
F3: "0x100000000000000000000000000000003"
};
var ETransactionVersion2 = {
V0: ETransactionVersion.V0,
V1: ETransactionVersion.V1,
V2: ETransactionVersion.V2,
F0: ETransactionVersion.F0,
F1: ETransactionVersion.F1,
F2: ETransactionVersion.F2
};
var ETransactionVersion3 = {
V3: ETransactionVersion.V3,
F3: ETransactionVersion.F3
};
// node_modules/@starknet-io/starknet-types-09/dist/esm/wallet-api/index.js
var wallet_api_exports = {};
__export(wallet_api_exports, {
Permission: () => Permission,
TypedDataRevision: () => TypedDataRevision
});
// node_modules/@starknet-io/starknet-types-09/dist/esm/wallet-api/constants.js
var Permission = {
ACCOUNTS: "accounts"
};
// node_modules/@starknet-io/starknet-types-09/dist/esm/wallet-api/typedData.js
var TypedDataRevision = {
ACTIVE: "1",
LEGACY: "0"
};
// node_modules/@starknet-io/starknet-types-09/dist/esm/snip-29/index.js
var snip_29_exports = {};
// node_modules/@starknet-io/starknet-types-010/dist/esm/index.js
var esm_exports2 = {};
__export(esm_exports2, {
ABI_TYPE_CONSTRUCTOR: () => ABI_TYPE_CONSTRUCTOR2,
ABI_TYPE_ENUM: () => ABI_TYPE_ENUM2,
ABI_TYPE_FUNCTION: () => ABI_TYPE_FUNCTION2,
ABI_TYPE_L1_HANDLER: () => ABI_TYPE_L1_HANDLER2,
API: () => api_exports2,
CALL_TYPE: () => CALL_TYPE2,
CONTRACT: () => contract_exports2,
EBlockStatus: () => EBlockStatus2,
EBlockTag: () => EBlockTag2,
EDAMode: () => EDAMode2,
EDataAvailabilityMode: () => EDataAvailabilityMode2,
ESimulationFlag: () => ESimulationFlag2,
ETransactionExecutionStatus: () => ETransactionExecutionStatus2,
ETransactionFinalityStatus: () => ETransactionFinalityStatus2,
ETransactionStatus: () => ETransactionStatus2,
ETransactionType: () => ETransactionType2,
ETransactionVersion: () => ETransactionVersion4,
ETransactionVersion2: () => ETransactionVersion22,
ETransactionVersion3: () => ETransactionVersion32,
EVENT_ABI_TYPE: () => EVENT_ABI_TYPE2,
L1_DA_MODE: () => L1_DA_MODE2,
PAYMASTER_API: () => snip_29_exports2,
PRICE_UNIT_FRI: () => PRICE_UNIT_FRI2,
PRICE_UNIT_WEI: () => PRICE_UNIT_WEI2,
Permission: () => Permission2,
STATE_MUTABILITY_EXTERNAL: () => STATE_MUTABILITY_EXTERNAL2,
STATE_MUTABILITY_VIEW: () => STATE_MUTABILITY_VIEW2,
STATUS_ACCEPTED_ON_L1: () => STATUS_ACCEPTED_ON_L12,
STATUS_ACCEPTED_ON_L2: () => STATUS_ACCEPTED_ON_L22,
STATUS_CANDIDATE: () => STATUS_CANDIDATE2,
STATUS_PRE_CONFIRMED: () => STATUS_PRE_CONFIRMED2,
STATUS_PRE_CONFIRMED_LOWERCASE: () => STATUS_PRE_CONFIRMED_LOWERCASE2,
STATUS_RECEIVED: () => STATUS_RECEIVED2,
STATUS_REVERTED: () => STATUS_REVERTED2,
STATUS_SUCCEEDED: () => STATUS_SUCCEEDED2,
STRUCT_ABI_TYPE: () => STRUCT_ABI_TYPE2,
TXN_TYPE_DECLARE: () => TXN_TYPE_DECLARE2,
TXN_TYPE_DEPLOY: () => TXN_TYPE_DEPLOY2,
TXN_TYPE_DEPLOY_ACCOUNT: () => TXN_TYPE_DEPLOY_ACCOUNT2,
TXN_TYPE_INVOKE: () => TXN_TYPE_INVOKE2,
TXN_TYPE_L1_HANDLER: () => TXN_TYPE_L1_HANDLER2,
TypedDataRevision: () => TypedDataRevision2,
WALLET_API: () => wallet_api_exports2
});
// node_modules/@starknet-io/starknet-types-010/dist/esm/api/index.js
var api_exports2 = {};
__export(api_exports2, {
ABI_TYPE_CONSTRUCTOR: () => ABI_TYPE_CONSTRUCTOR2,
ABI_TYPE_ENUM: () => ABI_TYPE_ENUM2,
ABI_TYPE_FUNCTION: () => ABI_TYPE_FUNCTION2,
ABI_TYPE_L1_HANDLER: () => ABI_TYPE_L1_HANDLER2,
CALL_TYPE: () => CALL_TYPE2,
CONTRACT: () => contract_exports2,
EBlockStatus: () => EBlockStatus2,
EBlockTag: () => EBlockTag2,
EDAMode: () => EDAMode2,
EDataAvailabilityMode: () => EDataAvailabilityMode2,
ESimulationFlag: () => ESimulationFlag2,
ETransactionExecutionStatus: () => ETransactionExecutionStatus2,
ETransactionFinalityStatus: () => ETransactionFinalityStatus2,
ETransactionStatus: () => ETransactionStatus2,
ETransactionType: () => ETransactionType2,
ETransactionVersion: () => ETransactionVersion4,
ETransactionVersion2: () => ETransactionVersion22,
ETransactionVersion3: () => ETransactionVersion32,
EVENT_ABI_TYPE: () => EVENT_ABI_TYPE2,
L1_DA_MODE: () => L1_DA_MODE2,
PRICE_UNIT_FRI: () => PRICE_UNIT_FRI2,
PRICE_UNIT_WEI: () => PRICE_UNIT_WEI2,
STATE_MUTABILITY_EXTERNAL: () => STATE_MUTABILITY_EXTERNAL2,
STATE_MUTABILITY_VIEW: () => STATE_MUTABILITY_VIEW2,
STATUS_ACCEPTED_ON_L1: () => STATUS_ACCEPTED_ON_L12,
STATUS_ACCEPTED_ON_L2: () => STATUS_ACCEPTED_ON_L22,
STATUS_CANDIDATE: () => STATUS_CANDIDATE2,
STATUS_PRE_CONFIRMED: () => STATUS_PRE_CONFIRMED2,
STATUS_PRE_CONFIRMED_LOWERCASE: () => STATUS_PRE_CONFIRMED_LOWERCASE2,
STATUS_RECEIVED: () => STATUS_RECEIVED2,
STATUS_REVERTED: () => STATUS_REVERTED2,
STATUS_SUCCEEDED: () => STATUS_SUCCEEDED2,
STRUCT_ABI_TYPE: () => STRUCT_ABI_TYPE2,
TXN_TYPE_DECLARE: () => TXN_TYPE_DECLARE2,
TXN_TYPE_DEPLOY: () => TXN_TYPE_DEPLOY2,
TXN_TYPE_DEPLOY_ACCOUNT: () => TXN_TYPE_DEPLOY_ACCOUNT2,
TXN_TYPE_INVOKE: () => TXN_TYPE_INVOKE2,
TXN_TYPE_L1_HANDLER: () => TXN_TYPE_L1_HANDLER2
});
// node_modules/@starknet-io/starknet-types-010/dist/esm/api/constants.js
var STATUS_ACCEPTED_ON_L22 = "ACCEPTED_ON_L2";
var STATUS_ACCEPTED_ON_L12 = "ACCEPTED_ON_L1";
var STATUS_SUCCEEDED2 = "SUCCEEDED";
var STATUS_REVERTED2 = "REVERTED";
var STATUS_RECEIVED2 = "RECEIVED";
var STATUS_CANDIDATE2 = "CANDIDATE";
var STATUS_PRE_CONFIRMED2 = "PRE_CONFIRMED";
var STATUS_PRE_CONFIRMED_LOWERCASE2 = STATUS_PRE_CONFIRMED2.toLowerCase();
var TXN_TYPE_DECLARE2 = "DECLARE";
var TXN_TYPE_DEPLOY2 = "DEPLOY";
var TXN_TYPE_DEPLOY_ACCOUNT2 = "DEPLOY_ACCOUNT";
var TXN_TYPE_INVOKE2 = "INVOKE";
var TXN_TYPE_L1_HANDLER2 = "L1_HANDLER";
var STRUCT_ABI_TYPE2 = "struct";
var EVENT_ABI_TYPE2 = "event";
var ABI_TYPE_FUNCTION2 = "function";
var ABI_TYPE_CONSTRUCTOR2 = "constructor";
var ABI_TYPE_L1_HANDLER2 = "l1_handler";
var ABI_TYPE_ENUM2 = "enum";
var STATE_MUTABILITY_VIEW2 = "view";
var STATE_MUTABILITY_EXTERNAL2 = "external";
var PRICE_UNIT_WEI2 = "WEI";
var PRICE_UNIT_FRI2 = "FRI";
var L1_DA_MODE2 = {
BLOB: "BLOB",
CALLDATA: "CALLDATA"
};
var CALL_TYPE2 = {
DELEGATE: "DELEGATE",
LIBRARY_CALL: "LIBRARY_CALL",
CALL: "CALL"
};
var ETransactionType2 = {
DECLARE: TXN_TYPE_DECLARE2,
DEPLOY: TXN_TYPE_DEPLOY2,
DEPLOY_ACCOUNT: TXN_TYPE_DEPLOY_ACCOUNT2,
INVOKE: TXN_TYPE_INVOKE2,
L1_HANDLER: TXN_TYPE_L1_HANDLER2
};
var ESimulationFlag2 = {
SKIP_VALIDATE: "SKIP_VALIDATE",
SKIP_FEE_CHARGE: "SKIP_FEE_CHARGE"
};
var ETransactionStatus2 = {
RECEIVED: STATUS_RECEIVED2,
CANDIDATE: STATUS_CANDIDATE2,
PRE_CONFIRMED: STATUS_PRE_CONFIRMED2,
ACCEPTED_ON_L2: STATUS_ACCEPTED_ON_L22,
ACCEPTED_ON_L1: STATUS_ACCEPTED_ON_L12
};
var ETransactionFinalityStatus2 = {
PRE_CONFIRMED: STATUS_PRE_CONFIRMED2,
ACCEPTED_ON_L2: STATUS_ACCEPTED_ON_L22,
ACCEPTED_ON_L1: STATUS_ACCEPTED_ON_L12
};
var ETransactionExecutionStatus2 = {
SUCCEEDED: STATUS_SUCCEEDED2,
REVERTED: STATUS_REVERTED2
};
var EBlockTag2 = {
/**
* Tag `latest` refers to the latest Starknet block finalized by the consensus on L2.
*/
LATEST: "latest",
/**
* Tag `pre_confirmed` refers to the block which is currently being built by the block proposer in height `latest` + 1.
*/
PRE_CONFIRMED: STATUS_PRE_CONFIRMED_LOWERCASE2,
/**
* Tag `l1_accepted` refers to the latest Starknet block which was included in a state update on L1 and finalized by the consensus on L1.
*/
L1_ACCEPTED: "l1_accepted"
};
var EBlockStatus2 = {
PRE_CONFIRMED: STATUS_PRE_CONFIRMED2,
ACCEPTED_ON_L2: STATUS_ACCEPTED_ON_L22,
ACCEPTED_ON_L1: STATUS_ACCEPTED_ON_L12
};
var EDataAvailabilityMode2 = {
L1: "L1",
L2: "L2"
};
var EDAMode2 = {
L1: 0,
L2: 1
};
var ETransactionVersion4 = {
/**
* @deprecated Starknet 0.14 will not support this transaction
*/
V0: "0x0",
/**
* @deprecated Starknet 0.14 will not support this transaction
*/
V1: "0x1",
/**
* @deprecated Starknet 0.14 will not support this transaction
*/
V2: "0x2",
V3: "0x3",
/**
* @deprecated Starknet 0.14 will not support this transaction
*/
F0: "0x100000000000000000000000000000000",
/**
* @deprecated Starknet 0.14 will not support this transaction
*/
F1: "0x100000000000000000000000000000001",
/**
* @deprecated Starknet 0.14 will not support this transaction
*/
F2: "0x100000000000000000000000000000002",
F3: "0x100000000000000000000000000000003"
};
var ETransactionVersion22 = {
V0: ETransactionVersion4.V0,
V1: ETransactionVersion4.V1,
V2: ETransactionVersion4.V2,
F0: ETransactionVersion4.F0,
F1: ETransactionVersion4.F1,
F2: ETransactionVersion4.F2
};
var ETransactionVersion32 = {
V3: ETransactionVersion4.V3,
F3: ETransactionVersion4.F3
};
// node_modules/@starknet-io/starknet-types-010/dist/esm/api/contract.js
var contract_exports2 = {};
// node_modules/@starknet-io/starknet-types-010/dist/esm/snip-29/index.js
var snip_29_exports2 = {};
// node_modules/@starknet-io/starknet-types-010/dist/esm/wallet-api/index.js
var wallet_api_exports2 = {};
__export(wallet_api_exports2, {
Permission: () => Permission2,
TypedDataRevision: () => TypedDataRevision2
});
// node_modules/@starknet-io/starknet-types-010/dist/esm/wallet-api/constants.js
var Permission2 = {
ACCOUNTS: "accounts"
};
// node_modules/@starknet-io/starknet-types-010/dist/esm/wallet-api/typedData.js
var TypedDataRevision2 = {
ACTIVE: "1",
LEGACY: "0"
};
// src/provider/types/spec.type.ts
var { ETransactionVersion: ETransactionVersion5 } = esm_exports;
var { ETransactionVersion2: ETransactionVersion23 } = esm_exports;
var { ETransactionVersion3: ETransactionVersion33 } = esm_exports;
var { EDataAvailabilityMode: EDataAvailabilityMode3 } = esm_exports2;
var { EDAMode: EDAMode3 } = esm_exports2;
function isRPC08Plus_ResourceBounds(entry) {
return "l1_data_gas" in entry;
}
function isRPC08Plus_ResourceBoundsBN(entry) {
return "l1_data_gas" in entry;
}
var { ETransactionStatus: ETransactionStatus3 } = esm_exports2;
var { ETransactionExecutionStatus: ETransactionExecutionStatus3 } = esm_exports2;
var { ETransactionType: TransactionType } = esm_exports;
var { EBlockStatus: BlockStatus } = esm_exports;
var { ETransactionFinalityStatus: TransactionFinalityStatus } = esm_exports;
var { ETransactionExecutionStatus: TransactionExecutionStatus } = esm_exports;
var { EBlockTag: BlockTag } = esm_exports;
// src/utils/encode.ts
var encode_exports = {};
__export(encode_exports, {
IS_BROWSER: () => IS_BROWSER,
addHexPrefix: () => addHexPrefix,
arrayBufferToString: () => arrayBufferToString,
atobUniversal: () => atobUniversal,
bigIntToUint8Array: () => bigIntToUint8Array,
btoaUniversal: () => btoaUniversal,
buf2hex: () => buf2hex,
calcByteLength: () => calcByteLength,
concatenateArrayBuffer: () => concatenateArrayBuffer,
hexStringToUint8Array: () => hexStringToUint8Array,
padLeft: () => padLeft,
pascalToSnake: () => pascalToSnake,
removeHexPrefix: () => removeHexPrefix,
sanitizeBytes: () => sanitizeBytes,
sanitizeHex: () => sanitizeHex,
stringToUint8Array: () => stringToUint8Array,
uint8ArrayToBigInt: () => uint8ArrayToBigInt,
utf8ToArray: () => utf8ToArray,
utf8ToBigInt: () => utf8ToBigInt,
utf8ToUint8Array: () => utf8ToUint8Array
});
// node_modules/@scure/base/lib/esm/index.js
function isBytes(a) {
return a instanceof Uint8Array || ArrayBuffer.isView(a) && a.constructor.name === "Uint8Array";
}
function abytes(b, ...lengths) {
if (!isBytes(b))
throw new Error("Uint8Array expected");
if (lengths.length > 0 && !lengths.includes(b.length))
throw new Error("Uint8Array expected of length " + lengths + ", got length=" + b.length);
}
function isArrayOf(isString2, arr) {
if (!Array.isArray(arr))
return false;
if (arr.length === 0)
return true;
if (isString2) {
return arr.every((item) => typeof item === "string");
} else {
return arr.every((item) => Number.isSafeInteger(item));
}
}
function astr(label, input) {
if (typeof input !== "string")
throw new Error(`${label}: string expected`);
return true;
}
function anumber(n) {
if (!Number.isSafeInteger(n))
throw new Error(`invalid integer: ${n}`);
}
function aArr(input) {
if (!Array.isArray(input))
throw new Error("array expected");
}
function astrArr(label, input) {
if (!isArrayOf(true, input))
throw new Error(`${label}: array of strings expected`);
}
function anumArr(label, input) {
if (!isArrayOf(false, input))
throw new Error(`${label}: array of numbers expected`);
}
// @__NO_SIDE_EFFECTS__
function chain(...args) {
const id = (a) => a;
const wrap = (a, b) => (c) => a(b(c));
const encode = args.map((x) => x.encode).reduceRight(wrap, id);
const decode = args.map((x) => x.decode).reduce(wrap, id);
return { encode, decode };
}
// @__NO_SIDE_EFFECTS__
function alphabet(letters) {
const lettersA = typeof letters === "string" ? letters.split("") : letters;
const len = lettersA.length;
astrArr("alphabet", lettersA);
const indexes = new Map(lettersA.map((l, i) => [l, i]));
return {
encode: (digits) => {
aArr(digits);
return digits.map((i) => {
if (!Number.isSafeInteger(i) || i < 0 || i >= len)
throw new Error(`alphabet.encode: digit index outside alphabet "${i}". Allowed: ${letters}`);
return lettersA[i];
});
},
decode: (input) => {
aArr(input);
return input.map((letter) => {
astr("alphabet.decode", letter);
const i = indexes.get(letter);
if (i === void 0)
throw new Error(`Unknown letter: "${letter}". Allowed: ${letters}`);
return i;
});
}
};
}
// @__NO_SIDE_EFFECTS__
function join(separator = "") {
astr("join", separator);
return {
encode: (from) => {
astrArr("join.decode", from);
return from.join(separator);
},
decode: (to) => {
astr("join.decode", to);
return to.split(separator);
}
};
}
// @__NO_SIDE_EFFECTS__
function padding(bits, chr = "=") {
anumber(bits);
astr("padding", chr);
return {
encode(data) {
astrArr("padding.encode", data);
while (data.length * bits % 8)
data.push(chr);
return data;
},
decode(input) {
astrArr("padding.decode", input);
let end = input.length;
if (end * bits % 8)
throw new Error("padding: invalid, string should have whole number of bytes");
for (; end > 0 && input[end - 1] === chr; end--) {
const last = end - 1;
const byte = last * bits;
if (byte % 8 === 0)
throw new Error("padding: invalid, string has too much padding");
}
return input.slice(0, end);
}
};
}
var gcd = (a, b) => b === 0 ? a : gcd(b, a % b);
var radix2carry = /* @__NO_SIDE_EFFECTS__ */ (from, to) => from + (to - gcd(from, to));
var powers = /* @__PURE__ */ (() => {
let res = [];
for (let i = 0; i < 40; i++)
res.push(2 ** i);
return res;
})();
function convertRadix2(data, from, to, padding2) {
aArr(data);
if (from <= 0 || from > 32)
throw new Error(`convertRadix2: wrong from=${from}`);
if (to <= 0 || to > 32)
throw new Error(`convertRadix2: wrong to=${to}`);
if (/* @__PURE__ */ radix2carry(from, to) > 32) {
throw new Error(`convertRadix2: carry overflow from=${from} to=${to} carryBits=${/* @__PURE__ */ radix2carry(from, to)}`);
}
let carry = 0;
let pos = 0;
const max = powers[from];
const mask = powers[to] - 1;
const res = [];
for (const n of data) {
anumber(n);
if (n >= max)
throw new Error(`convertRadix2: invalid data word=${n} from=${from}`);
carry = carry << from | n;
if (pos + from > 32)
throw new Error(`convertRadix2: carry overflow pos=${pos} from=${from}`);
pos += from;
for (; pos >= to; pos -= to)
res.push((carry >> pos - to & mask) >>> 0);
const pow3 = powers[pos];
if (pow3 === void 0)
throw new Error("invalid carry");
carry &= pow3 - 1;
}
carry = carry << to - pos & mask;
if (!padding2 && pos >= from)
throw new Error("Excess padding");
if (!padding2 && carry > 0)
throw new Error(`Non-zero padding: ${carry}`);
if (padding2 && pos > 0)
res.push(carry >>> 0);
return res;
}
// @__NO_SIDE_EFFECTS__
function radix2(bits, revPadding = false) {
anumber(bits);
if (bits <= 0 || bits > 32)
throw new Error("radix2: bits should be in (0..32]");
if (/* @__PURE__ */ radix2carry(8, bits) > 32 || /* @__PURE__ */ radix2carry(bits, 8) > 32)
throw new Error("radix2: carry overflow");
return {
encode: (bytes) => {
if (!isBytes(bytes))
throw new Error("radix2.encode input should be Uint8Array");
return convertRadix2(Array.from(bytes), 8, bits, !revPadding);
},
decode: (digits) => {
anumArr("radix2.decode", digits);
return Uint8Array.from(convertRadix2(digits, bits, 8, revPadding));
}
};
}
var hasBase64Builtin = /* @__PURE__ */ (() => typeof Uint8Array.from([]).toBase64 === "function" && typeof Uint8Array.fromBase64 === "function")();
var decodeBase64Builtin = (s, isUrl) => {
astr("base64", s);
const re = isUrl ? /^[A-Za-z0-9=_-]+$/ : /^[A-Za-z0-9=+/]+$/;
const alphabet2 = isUrl ? "base64url" : "base64";
if (s.length > 0 && !re.test(s))
throw new Error("invalid base64");
return Uint8Array.fromBase64(s, { alphabet: alphabet2, lastChunkHandling: "strict" });
};
var base64 = hasBase64Builtin ? {
encode(b) {
abytes(b);
return b.toBase64();
},
decode(s) {
return decodeBase64Builtin(s, false);
}
} : /* @__PURE__ */ chain(/* @__PURE__ */ radix2(6), /* @__PURE__ */ alphabet("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"), /* @__PURE__ */ padding(6), /* @__PURE__ */ join(""));
// src/utils/encode.ts
var IS_BROWSER = typeof window !== "undefined";
var STRING_ZERO = "0";
function arrayBufferToString(array) {
return new Uint8Array(array).reduce((data, byte) => data + String.fromCharCode(byte), "");
}
function utf8ToUint8Array(str) {
return new TextEncoder().encode(str);
}
var utf8ToArray = utf8ToUint8Array;
function utf8ToBigInt(str) {
return uint8ArrayToBigInt(utf8ToUint8Array(str));
}
function atobUniversal(a) {
return base64.decode(a);
}
function btoaUniversal(b) {
return base64.encode(new Uint8Array(b));
}
function buf2hex(buffer) {
return buffer.reduce((r, x) => r + x.toString(16).padStart(2, "0"), "");
}
function removeHexPrefix(hex) {
return hex.startsWith("0x") || hex.startsWith("0X") ? hex.slice(2) : hex;
}
function addHexPrefix(hex) {
return `0x${removeHexPrefix(hex)}`;
}
function padString(str, length, left, padding2 = STRING_ZERO) {
const diff = length - str.length;
let result = str;
if (diff > 0) {
const pad = padding2.repeat(diff);
result = left ? pad + str : str + pad;
}
return result;
}
function padLeft(str, length, padding2 = STRING_ZERO) {
return padString(str, length, true, padding2);
}
function calcByteLength(str, byteSize = 8) {
const { length } = str;
const remainder = length % byteSize;
return remainder ? (length - remainder) / byteSize * byteSize + byteSize : length;
}
function sanitizeBytes(str, byteSize = 8, padding2 = STRING_ZERO) {
return padLeft(str, calcByteLength(str, byteSize), padding2);
}
function sanitizeHex(hex) {
const hexWithoutPrefix = removeHexPrefix(hex);
const sanitizedHex = sanitizeBytes(hexWithoutPrefix, 2);
return sanitizedHex ? addHexPrefix(sanitizedHex) : sanitizedHex;
}
var pascalToSnake = (text) => /[a-z]/.test(text) ? text.split(/(?=[A-Z])/).join("_").toUpperCase() : text;
function concatenateArrayBuffer(uint8arrays) {
const totalLength = uint8arrays.reduce((total, uint8array) => total + uint8array.byteLength, 0);
const result = new Uint8Array(totalLength);
let offset = 0;
uint8arrays.forEach((uint8array) => {
result.set(uint8array, offset);
offset += uint8array.byteLength;
});
return result;
}
function hexStringToUint8Array(hex) {
if (!isHexString(addHexPrefix(hex))) {
throw new Error(`Invalid hex string: "${hex}"`);
}
const paddedHex = removeHexPrefix(sanitizeHex(hex));
const bytes = new Uint8Array(paddedHex.length / 2);
for (let i = 0; i < paddedHex.length; i += 2) {
bytes[i / 2] = parseInt(paddedHex.substring(i, i + 2), 16);
}
return bytes;
}
function isHexString(hex) {
return /^0[xX][0-9a-fA-F]*$/.test(hex);
}
function isDecimalString(str) {
return /^[0-9]+$/.test(str);
}
function stringToUint8Array(str) {
if (isHexString(str)) {
return hexStringToUint8Array(str);
}
if (isDecimalString(str)) {
const value = BigInt(str);
return bigIntToUint8Array(value);
}
return utf8ToUint8Array(str);
}
function bigIntToUint8Array(value) {
if (value < 0n) {
throw new Error(`Cannot convert negative bigint ${value} to Uint8Array`);
}
if (value === 0n) {
return new Uint8Array([0]);
}
let hex = value.toString(16);
if (hex.length % 2 !== 0) {
hex = `0${hex}`;
}
const bytes = new Uint8Array(hex.length / 2);
for (let i = 0; i < hex.length; i += 2) {
bytes[i / 2] = parseInt(hex.substring(i, i + 2), 16);
}
return bytes;
}
function uint8ArrayToBigInt(data) {
if (!data || data.length === 0) {
return 0n;
}
let hex = "0x";
for (let i = 0; i < data.length; i += 1) {
hex += data[i].toString(16).padStart(2, "0");
}
return BigInt(hex);
}
// src/global/constants.ts
var TEXT_TO_FELT_MAX_LEN = 31;
var ZERO = 0n;
var MASK_250 = 2n ** 250n - 1n;
var MASK_31 = 2n ** 31n - 1n;
var API_VERSION = ZERO;
var PRIME = 2n ** 251n + 17n * 2n ** 192n + 1n;
var MAX_STORAGE_ITEM_SIZE = 256n;
var ADDR_BOUND = 2n ** 251n - MAX_STORAGE_ITEM_SIZE;
var range = (min, max) => ({ min, max });
var RANGE_FELT = range(ZERO, PRIME - 1n);
var RANGE_U8 = range(ZERO, 2n ** 8n - 1n);
var RANGE_U16 = range(ZERO, 2n ** 16n - 1n);
var RANGE_U32 = range(ZERO, 2n ** 32n - 1n);
var RANGE_U64 = range(ZERO, 2n ** 64n - 1n);
var RANGE_U96 = range(ZERO, 2n ** 96n - 1n);
var RANGE_U128 = range(ZERO, 2n ** 128n - 1n);
var RANGE_I8 = range(-(2n ** 7n), 2n ** 7n - 1n);
var RANGE_I16 = range(-(2n ** 15n), 2n ** 15n - 1n);
var RANGE_I32 = range(-(2n ** 31n), 2n ** 31n - 1n);
var RANGE_I64 = range(-(2n ** 63n), 2n ** 63n - 1n);
var RANGE_I128 = range(-(2n ** 127n), 2n ** 127n - 1n);
var LegacyUDC = {
ADDRESS: "0x041a78e741e5af2fec34b695679bc6891742439f7afb8484ecd7766661ad02bf",
ENTRYPOINT: "deployContract"
};
var UDC = {
ADDRESS: "0x02ceed65a4bd731034c01113685c831b01c15d7d432f71afb1cf1634b53a2125",
ENTRYPOINT: "deploy_contract"
};
var OutsideExecutionCallerAny = "0x414e595f43414c4c4552";
var SNIP9_V1_INTERFACE_ID = "0x68cfd18b92d1907b8ba3cc324900277f5a3622099431ea85dd8089255e4181";
var SNIP9_V2_INTERFACE_ID = "0x1d1144bb2138366ff28d8e9ab57456b1d332ac42196230c3a602003c89872";
var HARDENING_BYTE = 128;
var HARDENING_4BYTES = 2147483648n;
var _BaseUrl = {
SN_MAIN: "https://alpha-mainnet.starknet.io",
SN_SEPOLIA: "https://alpha-sepolia.starknet.io"
};
var _NetworkName = {
SN_MAIN: "SN_MAIN",
SN_SEPOLIA: "SN_SEPOLIA"
};
var _StarknetChainId = {
SN_MAIN: "0x534e5f4d41494e",
// encodeShortString('SN_MAIN'),
SN_SEPOLIA: "0x534e5f5345504f4c4941"
// encodeShortString('SN_SEPOLIA')
};
var _TransactionHashPrefix = {
DECLARE: "0x6465636c617265",
// encodeShortString('declare'),
DEPLOY: "0x6465706c6f79",
// encodeShortString('deploy'),
DEPLOY_ACCOUNT: "0x6465706c6f795f6163636f756e74",
// encodeShortString('deploy_account'),
INVOKE: "0x696e766f6b65",
// encodeShortString('invoke'),
L1_HANDLER: "0x6c315f68616e646c6572"
// encodeShortString('l1_handler'),
};
var _SupportedRpcVersion = {
"0.9.0": "0.9.0",
"0.10.0": "0.10.0",
v0_9_0: "0.9.0",
v0_10_0: "0.10.0"
};
var DEFAULT_GLOBAL_CONFIG = {
rpcVersion: "0.10.0",
transactionVersion: ETransactionVersion4.V3,
// Starknet 0.14.0 only V3 transactions
logLevel: "INFO",
resourceBoundsOverhead: {
l1_gas: {
max_amount: 50,
max_price_per_unit: 50
},
l1_data_gas: {
max_amount: 50,
max_price_per_unit: 50
},
l2_gas: {
max_amount: 50,
max_price_per_unit: 50
}
},
defaultTipType: "recommendedTip",
channelDefaults: {
options: {
headers: { "Content-Type": "application/json" },
blockIdentifier: BlockTag.LATEST,
retries: 200
},
methods: {
simulateTransaction: {
skipValidate: true,
skipFeeCharge: true
},
getEstimateFee: {
skipValidate: true
}
}
},
fetch: void 0,
websocket: void 0,
buffer: void 0,
blake: void 0
};
var RPC_DEFAULT_NODES = {
SN_MAIN: [`https://api.zan.top/public/starknet-mainnet/rpc/`],
SN_SEPOLIA: [`https://api.zan.top/public/starknet-sepolia/rpc/`]
};
var PAYMASTER_RPC_NODES = {
SN_MAIN: [`https://starknet.paymaster.avnu.fi`],
SN_SEPOLIA: [`https://sepolia.paymaster.avnu.fi`]
};
var SYSTEM_MESSAGES = {
legacyTxWarningMessage: "You are using a deprecated transaction version (V0,V1,V2)!\nUpdate to the latest V3 transactions!",
legacyTxRPC08Message: "RPC 0.8+ do not support legacy transactions, use RPC 0.8+ v3 transactions!",
SWOldV3: "RPC 0.7 V3 tx (improper resource bounds) not supported in RPC 0.8+",
channelVersionMismatch: "Channel specification version is not compatible with the connected node Specification Version",
unsupportedSpecVersion: "The connected node specification version is not supported by this library",
maxFeeInV3: "maxFee is not supported in V3 transactions, use resourceBounds instead",
declareNonSierra: "Declaring non Sierra (Cairo0)contract using RPC 0.8+",
unsupportedMethodForRpcVersion: "Unsupported method for RPC version",
txEvictedFromMempool: "Transaction TTL, evicted from the mempool, try to increase the tip",
consensusFailed: "Consensus failed to finalize the block proposal",
txFailsBlockBuildingValidation: "Transaction fails block building validation"
};
var SN_VERSION_IMPLEMENTING_BLAKE_FOR_COMPILED_CLASS = "0.14.1";
// src/global/config.ts
var Configuration = class _Configuration {
static instance;
config;
constructor() {
this.initialize();
}
initialize() {
this.config = { ...DEFAULT_GLOBAL_CONFIG };
}
static getInstance() {
if (!_Configuration.instance) {
_Configuration.instance = new _Configuration();
}
return _Configuration.instance;
}
/**
* Get a nested value from an object using a dot-notation path
* @param obj - The object to traverse
* @param path - The dot-notation path (e.g., 'a.b.c')
* @returns The value at the path, or undefined if not found
*/
getNestedValue(obj, path) {
const keys = path.split(".");
return keys.reduce((current, key) => {
if (current === null || current === void 0) {
return void 0;
}
return current[key];
}, obj);
}
/**
* Set a nested value in an object using a dot-notation path
* @param obj - The object to modify
* @param path - The dot-notation path (e.g., 'a.b.c')
* @param value - The value to set
*/
setNestedValue(obj, path, value) {
const keys = path.split(".");
const lastKey = keys.pop();
const target = keys.reduce((current, key) => {
if (!(key in current) || typeof current[key] !== "object" || current[key] === null) {
current[key] = {};
}
return current[key];
}, obj);
target[lastKey] = value;
}
get(key, defaultValue) {
if (key.includes(".")) {
const value = this.getNestedValue(this.config, key);
return value ?? defaultValue;
}
return this.config[key] ?? defaultValue;
}
set(key, value) {
if (key.includes(".")) {
this.setNestedValue(this.config, key, value);
} else {
this.config[key] = value;
}
}
update(configData) {
this.config = {
...this.config,
...configData
};
}
getAll() {
return { ...this.config };
}
reset() {
this.initialize();
}
delete(key) {
delete this.config[key];
}
hasKey(key) {
return key in this.config;
}
};
var config = Configuration.getInstance();
// src/global/logger.type.ts
var LogLevelIndex = {
DEBUG: 5,
INFO: 4,
WARN: 3,
ERROR: 2,
FATAL: 1,
OFF: 0
};
// src/global/logger.ts
var Logger = class _Logger {
static instance;
config;
constructor() {
this.config = config;
}
static getInstance() {
if (!_Logger.instance) {
_Logger.instance = new _Logger();
}
return _Logger.instance;
}
getTimestamp() {
return (/* @__PURE__ */ new Date()).toISOString();
}
shouldLog(messageLevel) {
const configLevel = this.config.get("logLevel", "INFO");
return messageLevel <= LogLevelIndex[configLevel];
}
formatMessage(logMessage) {
const { level, message, timestamp, data } = logMessage;
let formattedMessage = `[${timestamp}] ${level}: ${message}`;
if (data) {
try {
formatte