Documentation
¶
Index ¶
- func PrecomputeAddress(deployerAddress, salt, classHash *felt.Felt, constructorCalldata []*felt.Felt) *felt.Felt
- type ABI
- type ABIEntry
- type ABIType
- type AllocConstantSize
- type AllocFelt252Dict
- type AllocSegment
- type AssertAllAccessesUsed
- type AssertLeFindSmallArcs
- type AssertLeIsFirstArcExcluded
- type AssertLeIsSecondArcExcluded
- type AssertLtAssertValidInput
- type B
- type BinOp
- type CasmClass
- type CasmEntryPoint
- type CasmEntryPointsByType
- type CellRef
- type Cheatcode
- type ContractClass
- type DebugPrint
- type DeprecatedCairoEntryPoint
- type DeprecatedContractClass
- type DeprecatedEntryPointsByType
- type DeprecatedHintEnum
- type Deref
- type DivMod
- type DoubleDeref
- type EvalCircuit
- type EventABIEntry
- type Felt252DictEntryInit
- type Felt252DictEntryUpdate
- type Felt252DictRead
- type Felt252DictWrite
- type FieldSqrt
- type FunctionABIEntry
- type FunctionStateMutability
- type GetCurrentAccessDelta
- type GetCurrentAccessIndex
- type GetNextDictKey
- type GetSegmentArenaIndex
- type Hint
- type Hints
- type Immediate
- type InitSquashData
- type LinearSplit
- type Member
- type NestedString
- type NestedUints
- type NumAsHex
- type Operation
- type RandomEcPoint
- type Register
- type ResOperand
- type ShouldContinueSquashLoop
- type ShouldSkipSquashLoop
- type SierraEntryPoint
- type SierraEntryPointsByType
- type SquareRoot
- type StructABIEntry
- type SystemCall
- type TestLessThan
- type TestLessThanOrEqual
- type TestLessThanOrEqualAddress
- type TypedParameter
- type U256InvModN
- type Uint256DivMod
- type Uint256SquareRoot
- type Uint512DivModByUint256
- type WideMul128
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func PrecomputeAddress ¶ added in v0.7.1
func PrecomputeAddress( deployerAddress, salt, classHash *felt.Felt, constructorCalldata []*felt.Felt, ) *felt.Felt
PrecomputeAddress calculates the precomputed address for a contract instance. ref: https://github.com/starkware-libs/cairo-lang/blob/master/src/starkware/starknet/core/os/contract_address/contract_address.py
Parameters:
- deployerAddress: the deployer address
- salt: the salt
- classHash: the class hash
- constructorCalldata: the constructor calldata
Returns:
- *felt.Felt: the precomputed address as a *felt.Felt
Types ¶
type AllocConstantSize ¶ added in v0.8.0
type AllocConstantSize struct {
Size ResOperand `json:"size"`
Dst CellRef `json:"dst"`
}
type AllocFelt252Dict ¶ added in v0.8.0
type AllocFelt252Dict struct {
SegmentArenaPtr ResOperand `json:"segment_arena_ptr"`
}
type AllocSegment ¶ added in v0.8.0
type AllocSegment struct {
Dst CellRef `json:"dst"`
}
type AssertAllAccessesUsed ¶ added in v0.8.0
type AssertAllAccessesUsed struct {
NotUsedAccesses CellRef `json:"n_used_accesses"`
}
type AssertLeFindSmallArcs ¶ added in v0.8.0
type AssertLeFindSmallArcs struct {
RangeCheckPtr ResOperand `json:"range_check_ptr"`
A ResOperand `json:"a"`
B ResOperand `json:"b"`
}
type AssertLeIsFirstArcExcluded ¶ added in v0.8.0
type AssertLeIsFirstArcExcluded struct {
SkipExcludeAFlag CellRef `json:"skip_exclude_a_flag"`
}
type AssertLeIsSecondArcExcluded ¶ added in v0.8.0
type AssertLeIsSecondArcExcluded struct {
SkipExcludeBMinusA CellRef `json:"skip_exclude_b_minus_a"`
}
type AssertLtAssertValidInput ¶ added in v0.8.0
type AssertLtAssertValidInput struct {
A ResOperand `json:"a"`
B ResOperand `json:"b"`
}
type B ¶ added in v0.8.0
type B struct {
Type string
Data interface{}
}
Can be one of the following values:
- Deref
- Immediate
func (B) MarshalJSON ¶ added in v0.8.0
MarshalJSON implements json.Marshaler
func (*B) UnmarshalJSON ¶ added in v0.8.0
UnmarshalJSON implements json.Unmarshaler
type CasmClass ¶ added in v0.4.6
type CasmClass struct {
EntryPointsByType CasmEntryPointsByType `json:"entry_points_by_type"`
ByteCode []*felt.Felt `json:"bytecode"`
Prime NumAsHex `json:"prime"`
CompilerVersion string `json:"compiler_version"`
Hints []Hints `json:"hints"`
// a list of sizes of segments in the bytecode, each segment is hashed
// individually when computing the bytecode hash
BytecodeSegmentLengths *NestedUints `json:"bytecode_segment_lengths,omitempty"`
}
CasmClass (AKA CASM_COMPILED_CONTRACT_CLASS) is the struct that represents the compiled Cairo contract class.
func UnmarshalCasmClass ¶ added in v0.4.6
UnmarshalCasmClass is a function that unmarshals a CasmClass object from a file. CASM = Cairo instructions
It takes a file path as a parameter and returns a pointer to the unmarshaled CasmClass object and an error.
func (*CasmClass) UnmarshalJSON ¶ added in v0.8.0
UnmarshalJSON implements json.Unmarshaler
type CasmEntryPoint ¶ added in v0.8.0
type CasmEntryPointsByType ¶ added in v0.8.0
type CasmEntryPointsByType struct {
Constructor []CasmEntryPoint `json:"CONSTRUCTOR"`
External []CasmEntryPoint `json:"EXTERNAL"`
L1Handler []CasmEntryPoint `json:"L1_HANDLER"`
}
func (*CasmEntryPointsByType) Validate ¶ added in v0.8.0
func (e *CasmEntryPointsByType) Validate() error
Validate ensures all required fields are present and valid
type Cheatcode ¶ added in v0.8.0
type Cheatcode struct {
Selector NumAsHex `json:"selector"`
InputStart ResOperand `json:"input_start"`
InputEnd ResOperand `json:"input_end"`
OutputStart CellRef `json:"output_start"`
OutputEnd CellRef `json:"output_end"`
}
type ContractClass ¶ added in v0.8.0
type ContractClass struct {
// The list of Sierra instructions of which the program consists
SierraProgram []*felt.Felt `json:"sierra_program"`
// The version of the contract class object. Currently, the Starknet OS supports version 0.1.0
ContractClassVersion string `json:"contract_class_version"`
EntryPointsByType SierraEntryPointsByType `json:"entry_points_by_type"`
ABI NestedString `json:"abi,omitempty"`
}
type DebugPrint ¶ added in v0.8.0
type DebugPrint struct {
Start ResOperand `json:"start"`
End ResOperand `json:"end"`
}
type DeprecatedCairoEntryPoint ¶ added in v0.8.0
type DeprecatedContractClass ¶ added in v0.8.0
type DeprecatedContractClass struct {
// Program A base64 representation of the compressed program code
Program string `json:"program"`
DeprecatedEntryPointsByType DeprecatedEntryPointsByType `json:"entry_points_by_type"`
ABI *ABI `json:"abi,omitempty"`
}
func (*DeprecatedContractClass) UnmarshalJSON ¶ added in v0.8.0
func (c *DeprecatedContractClass) UnmarshalJSON(content []byte) error
UnmarshalJSON unmarshals JSON content into the DeprecatedContractClass struct.
type DeprecatedEntryPointsByType ¶ added in v0.8.0
type DeprecatedEntryPointsByType struct {
Constructor []DeprecatedCairoEntryPoint `json:"CONSTRUCTOR"`
External []DeprecatedCairoEntryPoint `json:"EXTERNAL"`
L1Handler []DeprecatedCairoEntryPoint `json:"L1_HANDLER"`
}
type DeprecatedHintEnum ¶ added in v0.8.0
type DeprecatedHintEnum string
const ( AssertCurrentAccessIndicesIsEmpty DeprecatedHintEnum = "AssertCurrentAccessIndicesIsEmpty" AssertAllKeysUsed DeprecatedHintEnum = "AssertAllKeysUsed" AssertLeAssertThirdArcExcluded DeprecatedHintEnum = "AssertLeAssertThirdArcExcluded" )
type DoubleDeref ¶ added in v0.8.0
A (CellRef, offset) tuple, but adapted to a golang struct
func (DoubleDeref) MarshalJSON ¶ added in v0.8.0
func (dd DoubleDeref) MarshalJSON() ([]byte, error)
MarshalJSON implements json.Marshaler
func (*DoubleDeref) Tuple ¶ added in v0.8.0
func (dd *DoubleDeref) Tuple() [2]any
func (*DoubleDeref) UnmarshalJSON ¶ added in v0.8.0
func (dd *DoubleDeref) UnmarshalJSON(data []byte) error
UnmarshalJSON implements json.Unmarshaler
func (*DoubleDeref) Values ¶ added in v0.8.0
func (dd *DoubleDeref) Values() (cellRef CellRef, offset int)
type EvalCircuit ¶ added in v0.8.0
type EvalCircuit struct {
NAddMods ResOperand `json:"n_add_mods"`
AddModBuiltin ResOperand `json:"add_mod_builtin"`
NMulMods ResOperand `json:"n_mul_mods"`
MulModBuiltin ResOperand `json:"mul_mod_builtin"`
}
type EventABIEntry ¶ added in v0.8.0
type EventABIEntry struct {
// The event type
Type ABIType `json:"type"`
// The event name
Name string `json:"name"`
Keys []TypedParameter `json:"keys"`
Data []TypedParameter `json:"data"`
}
func (*EventABIEntry) IsType ¶ added in v0.8.0
func (e *EventABIEntry) IsType() ABIType
IsType returns the ABIType of the EventABIEntry.
type Felt252DictEntryInit ¶ added in v0.8.0
type Felt252DictEntryInit felt252Dict
type Felt252DictEntryUpdate ¶ added in v0.8.0
type Felt252DictEntryUpdate struct {
DictPtr ResOperand `json:"dict_ptr"`
Value ResOperand `json:"value"`
}
type Felt252DictRead ¶ added in v0.8.0
type Felt252DictRead struct {
ValueDst CellRef `json:"value_dst"`
// contains filtered or unexported fields
}
type Felt252DictWrite ¶ added in v0.8.0
type Felt252DictWrite struct {
Value ResOperand `json:"value"`
// contains filtered or unexported fields
}
type FieldSqrt ¶ added in v0.8.0
type FieldSqrt struct {
Val ResOperand `json:"val"`
Sqrt CellRef `json:"sqrt"`
}
type FunctionABIEntry ¶ added in v0.8.0
type FunctionABIEntry struct {
// The function type
Type ABIType `json:"type"`
// The function name
Name string `json:"name"`
StateMutability FunctionStateMutability `json:"stateMutability,omitempty"`
Inputs []TypedParameter `json:"inputs"`
Outputs []TypedParameter `json:"outputs"`
}
func (*FunctionABIEntry) IsType ¶ added in v0.8.0
func (f *FunctionABIEntry) IsType() ABIType
IsType returns the ABIType of the FunctionABIEntry.
type FunctionStateMutability ¶ added in v0.8.0
type FunctionStateMutability string
const (
FuncStateMutVIEW FunctionStateMutability = "view"
)
type GetCurrentAccessDelta ¶ added in v0.8.0
type GetCurrentAccessDelta struct {
IndexDeltaMinus1 CellRef `json:"index_delta_minus1"`
}
type GetCurrentAccessIndex ¶ added in v0.8.0
type GetCurrentAccessIndex struct {
RangeCheckPtr ResOperand `json:"range_check_ptr"`
}
type GetNextDictKey ¶ added in v0.8.0
type GetNextDictKey struct {
NextKey CellRef `json:"next_key"`
}
type GetSegmentArenaIndex ¶ added in v0.8.0
type GetSegmentArenaIndex struct {
DictEndPtr ResOperand `json:"dict_end_ptr"`
DictIndex CellRef `json:"dict_index"`
}
type Hint ¶ added in v0.8.0
type Hint struct {
Type string
Data interface{}
}
Can be one of various hint types described in the spec and in the UnmarshalJSON method Ref: https://github.com/starkware-libs/starknet-specs/blob/d70a2e57c9a66db1bbf86c388f38d6295a6a2a75/api/starknet_executables.json#L276
func (Hint) MarshalJSON ¶ added in v0.8.0
MarshalJSON implements json.Marshaler
func (*Hint) UnmarshalJSON ¶ added in v0.8.0
UnmarshalJSON implements json.Unmarshaler
type Hints ¶ added in v0.8.0
2-tuple of pc value and an array of hints to execute, but adapted to a golang struct
func (Hints) MarshalJSON ¶ added in v0.8.0
MarshalJSON implements json.Marshaler interface
func (*Hints) UnmarshalJSON ¶ added in v0.8.0
UnmarshalJSON implements json.Unmarshaler interface
type InitSquashData ¶ added in v0.8.0
type InitSquashData struct {
DictAccess ResOperand `json:"dict_accesses"`
PtrDiff ResOperand `json:"ptr_diff"`
NAccesses ResOperand `json:"n_accesses"`
BigKeys CellRef `json:"big_keys"`
FirstKey CellRef `json:"first_key"`
}
type LinearSplit ¶ added in v0.8.0
type LinearSplit struct {
Value ResOperand `json:"value"`
Scalar ResOperand `json:"scalar"`
MaxX ResOperand `json:"max_x"`
X CellRef `json:"x"`
Y CellRef `json:"y"`
}
type Member ¶ added in v0.8.0
type Member struct {
TypedParameter
Offset int64 `json:"offset"`
}
type NestedString ¶ added in v0.8.0
type NestedString string
func (*NestedString) UnmarshalJSON ¶ added in v0.8.0
func (ns *NestedString) UnmarshalJSON(data []byte) error
type NestedUints ¶ added in v0.8.0
type NestedUints struct {
IsArray bool
Value *uint64
Values []NestedUints
}
func (NestedUints) MarshalJSON ¶ added in v0.8.0
func (ns NestedUints) MarshalJSON() ([]byte, error)
MarshalJSON implements the json.Marshaler interface for NestedUints. It converts the NestedUints structure back into a JSON array format.
func (*NestedUints) UnmarshalJSON ¶ added in v0.8.0
func (ns *NestedUints) UnmarshalJSON(data []byte) error
type NumAsHex ¶ added in v0.8.0
type NumAsHex string
An unsigned integer number in hex format (0x...) TODO: duplicate of rpc.NumAsHex to avoid import cycle. Maybe move to a shared 'types' package?
type RandomEcPoint ¶ added in v0.8.0
type Register ¶ added in v0.8.0
type Register string
func (Register) MarshalJSON ¶ added in v0.8.0
MarshalJSON implements json.Marshaler
func (*Register) UnmarshalJSON ¶ added in v0.8.0
UnmarshalJSON implements json.Unmarshaler
type ResOperand ¶ added in v0.8.0
type ResOperand struct {
Type string
Data interface{}
}
Can be one of the following values:
- BinOp
- Deref
- DoubleDeref
- Immediate
func (ResOperand) MarshalJSON ¶ added in v0.8.0
func (r ResOperand) MarshalJSON() ([]byte, error)
MarshalJSON implements json.Marshaler
func (*ResOperand) UnmarshalJSON ¶ added in v0.8.0
func (r *ResOperand) UnmarshalJSON(data []byte) error
UnmarshalJSON implements json.Unmarshaler
type ShouldContinueSquashLoop ¶ added in v0.8.0
type ShouldContinueSquashLoop struct {
ShouldContinue CellRef `json:"should_continue"`
}
type ShouldSkipSquashLoop ¶ added in v0.8.0
type ShouldSkipSquashLoop struct {
ShouldSkipLoop CellRef `json:"should_skip_loop"`
}
type SierraEntryPoint ¶ added in v0.8.0
type SierraEntryPointsByType ¶ added in v0.8.0
type SierraEntryPointsByType struct {
Constructor []SierraEntryPoint `json:"CONSTRUCTOR"`
External []SierraEntryPoint `json:"EXTERNAL"`
L1Handler []SierraEntryPoint `json:"L1_HANDLER"`
}
type SquareRoot ¶ added in v0.8.0
type SquareRoot struct {
Value ResOperand `json:"value"`
Dst CellRef `json:"dst"`
}
type StructABIEntry ¶ added in v0.8.0
type StructABIEntry struct {
// The event type
Type ABIType `json:"type"`
// The event name
Name string `json:"name"`
// todo(minimum size should be 1)
Size uint64 `json:"size"`
Members []Member `json:"members"`
}
func (*StructABIEntry) IsType ¶ added in v0.8.0
func (s *StructABIEntry) IsType() ABIType
IsType returns the ABIType of the StructABIEntry.
type SystemCall ¶ added in v0.8.0
type SystemCall struct {
System ResOperand `json:"system"`
}
type TestLessThan ¶ added in v0.8.0
type TestLessThan struct {
Dst CellRef `json:"dst"`
// contains filtered or unexported fields
}
type TestLessThanOrEqual ¶ added in v0.8.0
type TestLessThanOrEqual TestLessThan
type TestLessThanOrEqualAddress ¶ added in v0.8.0
type TestLessThanOrEqualAddress TestLessThan
type TypedParameter ¶ added in v0.8.0
type U256InvModN ¶ added in v0.8.0
type U256InvModN struct {
B0 ResOperand `json:"b0"`
B1 ResOperand `json:"b1"`
N0 ResOperand `json:"n0"`
N1 ResOperand `json:"n1"`
G0OrNoInv CellRef `json:"g0_or_no_inv"`
G1Option CellRef `json:"g1_option"`
SOrR0 CellRef `json:"s_or_r0"`
SOrR1 CellRef `json:"s_or_r1"`
TOrK0 CellRef `json:"t_or_k0"`
TOrK1 CellRef `json:"t_or_k1"`
}
type Uint256DivMod ¶ added in v0.8.0
type Uint256DivMod struct {
Dividend0 ResOperand `json:"dividend0"`
Dividend1 ResOperand `json:"dividend1"`
Divisor0 ResOperand `json:"divisor0"`
Divisor1 ResOperand `json:"divisor1"`
Quotient0 CellRef `json:"quotient0"`
Quotient1 CellRef `json:"quotient1"`
Remainder0 CellRef `json:"remainder0"`
Remainder1 CellRef `json:"remainder1"`
}
type Uint256SquareRoot ¶ added in v0.8.0
type Uint256SquareRoot struct {
ValueLow ResOperand `json:"value_low"`
ValueHigh ResOperand `json:"value_high"`
Sqrt0 CellRef `json:"sqrt0"`
Sqrt1 CellRef `json:"sqrt1"`
RemainderLow CellRef `json:"remainder_low"`
RemainderHigh CellRef `json:"remainder_high"`
SqrtMul2MinusRemainderGeU128 CellRef `json:"sqrt_mul_2_minus_remainder_ge_u128"`
}
type Uint512DivModByUint256 ¶ added in v0.8.0
type Uint512DivModByUint256 struct {
Uint256DivMod
Dividend2 ResOperand `json:"dividend2"`
Dividend3 ResOperand `json:"dividend3"`
Quotient2 CellRef `json:"quotient2"`
Quotient3 CellRef `json:"quotient3"`
}