{"version":3,"sources":["../src/index.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable max-classes-per-file */\n\n/**\n * @privateRemarks\n *\n * TODO: Consider re-distritubing interfaces near their original packages\n */\n\n// #region bech32-1\n/**\n * @deprecated\n * Type `Bech32Address` is now deprecated. Use `B256` addresses instead. ([help](https://docs.fuel.network/docs/specs/abi/argument-encoding/#b256))\n */\nexport type Bech32Address = `fuel${string}`;\n// #endregion bech32-1\nexport type B256Address = string;\n\nexport type ChecksumAddress = string;\n\nexport type B256AddressEvm = `0x000000000000000000000000${string}`;\n\nexport type Bytes = Uint8Array | number[];\n\nexport type RawSlice = Uint8Array | number[];\n\nexport type BytesLike = Uint8Array | string;\n\n/**\n * @prop bits - A 256 bit hash string with the first 12 bytes cleared\n */\nexport type EvmAddress = {\n  bits: B256AddressEvm;\n};\n\n/**\n * @prop bits - A wrapped 256 bit hash string\n */\nexport type AssetId = {\n  bits: B256Address;\n};\n\nexport type StdString = string;\nexport type StrSlice = string;\n\n/**\n * @hidden\n */\nexport abstract class AbstractScriptRequest<T> {\n  abstract bytes: Uint8Array;\n  abstract encodeScriptData: (data: T) => Uint8Array;\n}\n\n// #region address-1\nexport abstract class AbstractAddress {\n  abstract toJSON(): string;\n  abstract toString(): string;\n  abstract toAddress(): Bech32Address;\n  abstract toB256(): B256Address;\n  abstract toHexString(): string;\n  abstract toBytes(): Uint8Array;\n  abstract equals(other: AbstractAddress): boolean;\n}\n// #endregion address-1\n\nexport abstract class AbstractAccount {\n  abstract address: AbstractAddress;\n  abstract provider: unknown;\n  abstract getResourcesToSpend(quantities: any[], options?: any): any;\n  abstract sendTransaction(transactionRequest: any, options?: any): any;\n  abstract simulateTransaction(transactionRequest: any, options?: any): any;\n  abstract getTransactionCost(transactionRequest: any, options?: any): Promise<any>;\n  abstract fund(transactionRequest: any, txCost: any): Promise<any>;\n}\n/**\n * @hidden\n */\nexport abstract class AbstractProgram {\n  abstract account: AbstractAccount | null;\n  abstract interface: {\n    readonly jsonAbi: any;\n  };\n\n  abstract provider: {\n    sendTransaction(transactionRequest: any, options?: any): any;\n    getTransactionCost(transactionRequest: any, options?: any): Promise<any>;\n  } | null;\n}\n\nexport abstract class AbstractContract extends AbstractProgram {\n  abstract id: AbstractAddress;\n}\n\n/**\n * @hidden\n */\nexport abstract class AbstractScript extends AbstractProgram {\n  abstract bytes: Uint8Array;\n}\n\n/** A simple type alias defined using the `type` keyword. */\nexport type AddressLike = AbstractAddress | AbstractAccount;\n\nexport type ContractIdLike = AbstractAddress | AbstractContract;\n"],"mappings":";AAgDO,IAAe,wBAAf,MAAwC;AAG/C;AAGO,IAAe,kBAAf,MAA+B;AAQtC;AAGO,IAAe,kBAAf,MAA+B;AAQtC;AAIO,IAAe,kBAAf,MAA+B;AAUtC;AAEO,IAAe,mBAAf,cAAwC,gBAAgB;AAE/D;AAKO,IAAe,iBAAf,cAAsC,gBAAgB;AAE7D;","names":[]}