Documentation
¶
Index ¶
- type Abi
- type Account
- type Ast
- type AstConstants
- type AstConstructors
- type AstContracts
- type AstDocs
- type AstEnums
- type AstErrors
- type AstEvents
- type AstFunctions
- type AstImports
- type AstInterfaces
- type AstLibraries
- type AstLicense
- type AstStat
- type AstStateVariables
- type AstStructs
- type Cfg
- type Contract
- type ContractConstructor
- type FullEvent
- type FullFunction
- type Log
- type Metadata
- type Network
- type Opcode
- type PartialEvent
- type PartialFunction
- type Receipt
- type Standard
- type StatsResponse
- type Token
- type Transaction
- type TransactionRawSignature
- type Variable
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Abi ¶
type Abi struct {
Raw string `json:"raw" doc:"Raw ABI"` // Raw ABI is the raw JSON representation of the ABI.
AbiMethods []abi.Method `json:"abiMethods" doc:"ABI methods"` // ABI methods are the methods defined in the ABI.
Functions []PartialFunction `json:"functions" doc:"Functions"` // Functions are the parsed function definitions from the ABI.
Events []PartialEvent `json:"events" doc:"Events"` // Events are the parsed event definitions from the ABI.
}
Abi represents the ABI (Application Binary Interface) details of a smart contract.
type Account ¶
type Account struct {
Id uuid.UUID `json:"id" doc:"Account ID"` // Unique identifier for the account.
NetworkId utils.NetworkID `json:"networkId" doc:"Network ID"` // Network ID specifies the blockchain network.
Address common.Address `json:"address" doc:"Account address"` // Address specifies the blockchain account address.
CreationBlock *big.Int `json:"creationBlock" doc:"Creation block"` // Creation block is the block number where the account was created.
CreationTxHash common.Hash `json:"creationTxHash" doc:"Creation transaction hash"` // Creation transaction hash is the hash of the transaction that created the account.
Name string `json:"name" doc:"Account name"` // Name is the name associated with the account.
Ens string `json:"ens" doc:"ENS name"` // ENS name is the Ethereum Name Service name associated with the account.
Tags []string `json:"tags" doc:"Tags"` // Tags are user-defined labels associated with the account.
Type string `json:"type" doc:"Account type"` // Type specifies the type of account (e.g., contract, wallet).
Balance string `json:"balance" doc:"Balance"` // Balance is the current balance of the account.
Blacklisted bool `json:"blacklisted" doc:"Blacklisted status"` // Blacklisted status indicates if the account is blacklisted.
BlacklistReasons []string `json:"blacklistReasons" doc:"Blacklist reasons"` // Blacklist reasons are the reasons for blacklisting the account.
BlacklistContractReferences []string `json:"blacklistContractReferences" doc:"Blacklist contract references"` // References to contracts related to blacklisting.
BlacklistAccountReferences []string `json:"blacklistAccountReferences" doc:"Blacklist account references"` // References to accounts related to blacklisting.
BlacklistTransactionReferences []string `json:"blacklistTransactionReferences" doc:"Blacklist transaction references"` // References to transactions related to blacklisting.
CompletedStates []string `json:"completedStates" doc:"Completed states"` // Completed states are the states that have been completed for the account.
FailedStates []string `json:"failedStates" doc:"Failed states"` // Failed states are the states that have failed for the account.
Processed bool `json:"processed" doc:"Processed status"` // Processed status indicates if the account has been processed.
Partial bool `json:"partial" doc:"Partial status"` // Partial status indicates if the account processing is partial.
CreatedAt time.Time `json:"createdAt" doc:"Created at"` // Timestamp of when the account was created.
UpdatedAt time.Time `json:"updatedAt" doc:"Updated at"` // Timestamp of when the account was last updated.
}
Account represents the details of a blockchain account.
type Ast ¶
type Ast struct {
NetworkId *big.Int `json:"networkId" doc:"Network ID" huma:"path"` // Network ID specifies the blockchain network (e.g., 1 for Ethereum Mainnet).
ContractId uuid.UUID `json:"contractId" doc:"Contract ID" huma:"path"` // Contract ID is the unique identifier for the contract.
ContractAddress common.Address `json:"contractAddress" doc:"Contract address" huma:"path"` // Contract address specifies the smart contract address.
Ast *ast.RootNode `json:"ast" doc:"AST Root Node"` // AST Root Node is the root of the abstract syntax tree.
}
Ast represents the Abstract Syntax Tree (AST) for a smart contract.
type AstConstants ¶
type AstConstants struct {
NetworkId *big.Int `json:"networkId" doc:"Network ID"` // Network ID specifies the blockchain network.
ContractId uuid.UUID `json:"contractId" doc:"Contract ID"` // Contract ID is the unique identifier for the contract.
ContractAddress common.Address `json:"contractAddress" doc:"Contract address"` // Contract address specifies the smart contract address.
Total int `json:"total" doc:"Total count"` // Total number of constants.
Constants []*ast.StateVariableDeclaration `json:"constants" doc:"Constant state variables"` // Constant state variables in the AST.
}
AstConstants represents the constant state variables in the AST of a smart contract.
type AstConstructors ¶
type AstConstructors struct {
NetworkId *big.Int `json:"networkId" doc:"Network ID"` // Network ID specifies the blockchain network.
ContractId uuid.UUID `json:"contractId" doc:"Contract ID"` // Contract ID is the unique identifier for the contract.
ContractAddress common.Address `json:"contractAddress" doc:"Contract address"` // Contract address specifies the smart contract address.
Total int `json:"total" doc:"Total count"` // Total number of constructors.
EntryConstructor *ast.Constructor `json:"entryConstructor" doc:"Entry constructor"` // Entry constructor in the AST.
Constructors []*ast.Constructor `json:"constructors" doc:"Constructor definitions"` // Constructor definitions in the AST.
}
AstConstructors represents the constructor definitions in the AST of a smart contract.
type AstContracts ¶
type AstContracts struct {
NetworkId *big.Int `json:"networkId" doc:"Network ID"` // Network ID specifies the blockchain network.
ContractId uuid.UUID `json:"contractId" doc:"Contract ID"` // Contract ID is the unique identifier for the contract.
ContractAddress common.Address `json:"contractAddress" doc:"Contract address"` // Contract address specifies the smart contract address.
Contracts []*ast.SourceUnit[ast.Node[astpb.SourceUnit]] `json:"contracts" doc:"Contract definitions"` // Contract definitions in the AST.
}
AstContracts represents the contract definitions in the AST of a smart contract.
type AstDocs ¶
type AstDocs struct {
NetworkId *big.Int `json:"networkId" doc:"Network ID"` // Network ID specifies the blockchain network.
ContractId uuid.UUID `json:"contractId" doc:"Contract ID"` // Contract ID is the unique identifier for the contract.
ContractAddress common.Address `json:"contractAddress" doc:"Contract address"` // Contract address specifies the smart contract address.
Docs []*ast.Comment `json:"docs" doc:"Documentation comments"` // Documentation comments in the AST.
}
AstDocs represents the documentation comments in the AST of a smart contract.
type AstEnums ¶
type AstEnums struct {
NetworkId *big.Int `json:"networkId" doc:"Network ID"` // Network ID specifies the blockchain network.
ContractId uuid.UUID `json:"contractId" doc:"Contract ID"` // Contract ID is the unique identifier for the contract.
ContractAddress common.Address `json:"contractAddress" doc:"Contract address"` // Contract address specifies the smart contract address.
Total int `json:"total" doc:"Total count"` // Total number of enums.
Enums []*ast.EnumDefinition `json:"enums" doc:"Enum definitions"` // Enum definitions in the AST.
}
AstEnums represents the enum definitions in the AST of a smart contract.
type AstErrors ¶
type AstErrors struct {
NetworkId *big.Int `json:"networkId" doc:"Network ID"` // Network ID specifies the blockchain network.
ContractId uuid.UUID `json:"contractId" doc:"Contract ID"` // Contract ID is the unique identifier for the contract.
ContractAddress common.Address `json:"contractAddress" doc:"Contract address"` // Contract address specifies the smart contract address.
Total int `json:"total" doc:"Total count"` // Total number of errors.
Errors []*ast.ErrorDefinition `json:"errors" doc:"Error definitions"` // Error definitions in the AST.
}
AstErrors represents the error definitions in the AST of a smart contract.
type AstEvents ¶
type AstEvents struct {
NetworkId *big.Int `json:"networkId" doc:"Network ID"` // Network ID specifies the blockchain network.
ContractId uuid.UUID `json:"contractId" doc:"Contract ID"` // Contract ID is the unique identifier for the contract.
ContractAddress common.Address `json:"contractAddress" doc:"Contract address"` // Contract address specifies the smart contract address.
Total int `json:"total" doc:"Total count"` // Total number of events.
Events []*ast.EventDefinition `json:"events" doc:"Event definitions"` // Event definitions in the AST.
}
AstEvents represents the event definitions in the AST of a smart contract.
type AstFunctions ¶
type AstFunctions struct {
NetworkId *big.Int `json:"networkId" doc:"Network ID"` // Network ID specifies the blockchain network.
ContractId uuid.UUID `json:"contractId" doc:"Contract ID"` // Contract ID is the unique identifier for the contract.
ContractAddress common.Address `json:"contractAddress" doc:"Contract address"` // Contract address specifies the smart contract address.
Total int `json:"total" doc:"Total count"` // Total number of functions.
Functions []*ast.Function `json:"functions" doc:"Function definitions"` // Function definitions in the AST.
}
AstFunctions represents the function definitions in the AST of a smart contract.
type AstImports ¶
type AstImports struct {
NetworkId *big.Int `json:"networkId" doc:"Network ID"` // Network ID specifies the blockchain network.
ContractId uuid.UUID `json:"contractId" doc:"Contract ID"` // Contract ID is the unique identifier for the contract.
ContractAddress common.Address `json:"contractAddress" doc:"Contract address"` // Contract address specifies the smart contract address.
Imports []*ast.Import `json:"imports" doc:"Import statements"` // Import statements in the AST.
}
AstImports represents the import statements in the AST of a smart contract.
type AstInterfaces ¶
type AstInterfaces struct {
NetworkId *big.Int `json:"networkId" doc:"Network ID"` // Network ID specifies the blockchain network.
ContractId uuid.UUID `json:"contractId" doc:"Contract ID"` // Contract ID is the unique identifier for the contract.
ContractAddress common.Address `json:"contractAddress" doc:"Contract address"` // Contract address specifies the smart contract address.
Interfaces []*ast.SourceUnit[ast.Node[astpb.SourceUnit]] `json:"interfaces" doc:"Interface definitions"` // Interface definitions in the AST.
}
AstInterfaces represents the interface definitions in the AST of a smart contract.
type AstLibraries ¶
type AstLibraries struct {
NetworkId *big.Int `json:"networkId" doc:"Network ID"` // Network ID specifies the blockchain network.
ContractId uuid.UUID `json:"contractId" doc:"Contract ID"` // Contract ID is the unique identifier for the contract.
ContractAddress common.Address `json:"contractAddress" doc:"Contract address"` // Contract address specifies the smart contract address.
Libraries []*ast.SourceUnit[ast.Node[astpb.SourceUnit]] `json:"libraries" doc:"Library definitions"` // Library definitions in the AST.
}
AstLibraries represents the library definitions in the AST of a smart contract.
type AstLicense ¶
type AstLicense struct {
License string `json:"license" doc:"License"` // License information of the smart contract.
}
AstLicense represents the license information of a smart contract.
type AstStat ¶
type AstStat struct {
Id uuid.UUID `json:"id" doc:"ID"` // Unique identifier for the AST statistics.
NetworkId *big.Int `json:"networkId" doc:"Network ID"` // Network ID specifies the blockchain network.
ContractId uuid.UUID `json:"contractId" doc:"Contract ID"` // Contract ID is the unique identifier for the contract.
ContractAddress common.Address `json:"contractAddress" doc:"Contract address"` // Contract address specifies the smart contract address.
UnitsCount int64 `json:"unitsCount" doc:"Units count"` // Number of source units.
ContractsCount int64 `json:"contractsCount" doc:"Contracts count"` // Number of contracts.
InterfacesCount int64 `json:"interfacesCount" doc:"Interfaces count"` // Number of interfaces.
LibrariesCount int64 `json:"librariesCount" doc:"Libraries count"` // Number of libraries.
StateVariablesCount int64 `json:"stateVariablesCount" doc:"State variables count"` // Number of state variables.
FunctionsCount int64 `json:"functionsCount" doc:"Functions count"` // Number of functions.
EventsCount int64 `json:"eventsCount" doc:"Events count"` // Number of events.
Processed bool `json:"processed" doc:"Processed"` // Indicates if the AST has been processed.
Partial bool `json:"partial" doc:"Partial"` // Indicates if the AST is partial.
CreatedAt time.Time `json:"createdAt" doc:"Created at"` // Timestamp of when the AST statistics were created.
UpdatedAt time.Time `json:"updatedAt" doc:"Updated at"` // Timestamp of when the AST statistics were last updated.
}
AstStat represents statistics about the AST of a smart contract.
type AstStateVariables ¶
type AstStateVariables struct {
NetworkId *big.Int `json:"networkId" doc:"Network ID"` // Network ID specifies the blockchain network.
ContractId uuid.UUID `json:"contractId" doc:"Contract ID"` // Contract ID is the unique identifier for the contract.
ContractAddress common.Address `json:"contractAddress" doc:"Contract address"` // Contract address specifies the smart contract address.
Total int `json:"total" doc:"Total count"` // Total number of state variables.
Variables []*ast.StateVariableDeclaration `json:"variables" doc:"State variables"` // State variables in the AST.
}
AstStateVariables represents the state variables in the AST of a smart contract.
type AstStructs ¶
type AstStructs struct {
NetworkId *big.Int `json:"networkId" doc:"Network ID"` // Network ID specifies the blockchain network.
ContractId uuid.UUID `json:"contractId" doc:"Contract ID"` // Contract ID is the unique identifier for the contract.
ContractAddress common.Address `json:"contractAddress" doc:"Contract address"` // Contract address specifies the smart contract address.
Total int `json:"total" doc:"Total count"` // Total number of structs.
Structs []*ast.StructDefinition `json:"structs" doc:"Struct definitions"` // Struct definitions in the AST.
}
AstStructs represents the struct definitions in the AST of a smart contract.
type Cfg ¶
type Cfg struct {
Id uuid.UUID `json:"Id" doc:"Configuration ID"` // Unique identifier for the configuration.
NetworkId *big.Int `json:"networkId" doc:"Network ID"` // Network ID specifies the blockchain network.
ContractAddress common.Address `json:"contractAddress" doc:"Contract address"` // Contract address specifies the smart contract address.
Mermaid string `json:"mermaid" doc:"Mermaid diagram"` // Mermaid diagram represents the mermaid.js diagram for the contract.
Processed bool `json:"processed" doc:"Processed status"` // Processed status indicates if the configuration has been processed.
Partial bool `json:"partial" doc:"Partial status"` // Partial status indicates if the configuration processing is partial.
CreatedAt time.Time `json:"createdAt" doc:"Created at"` // Timestamp of when the configuration was created.
UpdatedAt time.Time `json:"updatedAt" doc:"Updated at"` // Timestamp of when the configuration was last updated.
}
Cfg represents the configuration details of a smart contract.
type Contract ¶
type Contract struct {
Id uuid.UUID `json:"id" doc:"Contract ID"` // Unique identifier for the contract.
NetworkId modeltypes.BigInt `json:"networkId" doc:"Network ID"` // Network ID specifies the blockchain network.
BlockNumber modeltypes.BigInt `json:"blockNumber" doc:"Block number"` // BlockNumber is the block number where the contract was created.
BlockHash modeltypes.Hash `json:"blockHash" doc:"Block hash"` // BlockHash is the hash of the block where the contract was created.
TransactionHash modeltypes.Hash `json:"transactionHash" doc:"Transaction hash"` // TransactionHash is the hash of the transaction that created the contract.
DeployerAddress modeltypes.Address `json:"deployerAddress" doc:"Deployer address"` // DeployerAddress is the address of the contract deployer.
Address modeltypes.Address `json:"address" doc:"Contract address"` // Address is the address of the smart contract.
Name string `json:"name" doc:"Contract name"` // Name is the name of the contract.
Standards []string `json:"standards" doc:"Standards"` // Standards are the compliance standards the contract adheres to.
Proxy bool `json:"proxy" doc:"Proxy status"` // Proxy indicates if the contract is a proxy.
ProxyImplementations []string `json:"proxyImplementations" doc:"Proxy implementations"` // ProxyImplementations are the implementations of the proxy contract.
License string `json:"license" doc:"License"` // License specifies the license of the contract.
CompilerVersion string `json:"compilerVersion" doc:"Compiler version"` // CompilerVersion is the version of the Solidity compiler used.
SolgoVersion string `json:"solgoVersion" doc:"Solgo version"` // SolgoVersion is the version of Solgo used.
Optimized bool `json:"optimized" doc:"Optimization status"` // Optimized indicates if the contract is optimized.
OptimizationRuns uint64 `json:"optimizationRuns" doc:"Optimization runs"` // OptimizationRuns is the number of optimization runs.
EVMVersion string `json:"evmVersion" doc:"EVM version"` // EVMVersion is the version of the Ethereum Virtual Machine.
ABI string `json:"abi" doc:"ABI"` // ABI is the Application Binary Interface of the contract.
SourceEntryPoint string `json:"entryPoint" doc:"Source entry point"` // SourceEntryPoint is the entry point of the contract's source code.
Sources []*solgo.SourceUnit `json:"sources" doc:"Sources"` // Sources are the source units of the contract.
Verified bool `json:"verified" doc:"Verification status"` // Verified indicates if the contract is verified.
SourcesProvider string `json:"sourcesProvider" doc:"Sources provider"` // SourcesProvider is the provider of the contract's source code.
VerificationProvider string `json:"verificationProvider" doc:"Verification provider"` // VerificationProvider is the provider of the contract verification.
ExecutionBytecode string `json:"executionBytecode" doc:"Execution bytecode"` // ExecutionBytecode is the bytecode used for execution.
Bytecode string `json:"bytecode" doc:"Bytecode"` // Bytecode is the raw bytecode of the contract.
SafetyState string `json:"safetyState" doc:"Safety state"` // SafetyState indicates the safety state of the contract.
SourceAvailable bool `json:"sourceAvailable" doc:"Source availability"` // SourceAvailable indicates if the source code is available.
SelfDestructed bool `json:"selfDestructed" doc:"Self-destruct status"` // SelfDestructed indicates if the contract has self-destructed.
CompletedStates []string `json:"completedStates" doc:"Completed states"` // CompletedStates are the states that have been completed for the contract.
FailedStates []string `json:"failedStates" doc:"Failed states"` // FailedStates are the states that have failed for the contract.
Processed bool `json:"processed" doc:"Processed status"` // Processed indicates if the contract has been processed.
Partial bool `json:"partial" doc:"Partial status"` // Partial indicates if the contract processing is partial.
CreatedAt time.Time `json:"created_at" doc:"Created at"` // Timestamp of when the contract was created.
UpdatedAt time.Time `json:"updated_at" doc:"Updated at"` // Timestamp of when the contract was last updated.
}
Contract represents the details of a smart contract.
type ContractConstructor ¶ added in v0.9.7
type ContractConstructor struct {
Id uuid.UUID `json:"id" doc:"Constructor ID"` // Unique identifier for the constructor.
NetworkId utils.NetworkID `json:"networkId" doc:"Network ID"` // Network ID specifies the blockchain network.
ContractAddress common.Address `json:"address" doc:"Contract address"` // Contract address specifies the smart contract address.
Signature string `json:"signature" doc:"Constructor signature"` // Signature is the function signature of the constructor.
Arguments []bytecode.Argument `json:"arguments" doc:"Constructor arguments"` // Arguments are the parsed arguments for the constructor.
ArgumentsRaw []interface{} `json:"argumentsRaw" doc:"Raw constructor arguments"` // ArgumentsRaw are the raw arguments for the constructor.
Abi string `json:"abi" doc:"ABI"` // ABI is the Application Binary Interface of the constructor.
Unit *ast.Constructor `json:"unit" doc:"AST Constructor unit"` // Unit is the Intermediate Representation (IR) of the constructor.
Processed bool `json:"processed" doc:"Processed status"` // Processed status indicates if the constructor has been processed.
Partial bool `json:"partial" doc:"Partial status"` // Partial status indicates if the constructor processing is partial.
CreatedAt time.Time `json:"createdAt" doc:"Created at"` // Timestamp of when the constructor was created.
UpdatedAt time.Time `json:"updatedAt" doc:"Updated at"` // Timestamp of when the constructor was last updated.
}
ContractConstructor represents the details of a constructor in a smart contract.
type FullEvent ¶
type FullEvent struct {
Id uuid.UUID `json:"id" doc:"Event ID"` // Unique identifier for the event.
ContractAddress string `json:"contractAddress" doc:"Contract address"` // Contract address specifies the smart contract address.
Name string `json:"name" doc:"Event name"` // Name is the name of the event.
Signature string `json:"signature" doc:"Event signature"` // Signature is the function signature of the event.
SignatureDefinition string `json:"signatureDefinition" doc:"Signature definition"` // SignatureDefinition is the definition of the event signature.
Abi string `json:"abi" doc:"ABI"` // ABI is the Application Binary Interface of the event.
Anonymous bool `json:"anonymous" doc:"Anonymous status"` // Anonymous status indicates if the event is anonymous.
Unit *ast.EventDefinition `json:"unit" doc:"AST Event definition"` // Unit is the AST definition of the event.
Processed bool `json:"processed" doc:"Processed status"` // Processed status indicates if the event has been processed.
Partial bool `json:"partial" doc:"Partial status"` // Partial status indicates if the event processing is partial.
CreatedAt time.Time `json:"createdAt" doc:"Created at"` // Timestamp of when the event was created.
UpdatedAt time.Time `json:"updatedAt" doc:"Updated at"` // Timestamp of when the event was last updated.
}
FullEvent represents the detailed information of an event in a smart contract.
type FullFunction ¶
type FullFunction struct {
Id uuid.UUID `json:"id" doc:"Function ID"` // Unique identifier for the function.
ContractAddress string `json:"contractAddress" doc:"Contract address"` // Contract address specifies the smart contract address.
Name string `json:"name" doc:"Function name"` // Name is the name of the function.
Signature string `json:"signature" doc:"Function signature"` // Signature is the function signature.
SignatureHex string `json:"signatureHex" doc:"Function signature hex"` // SignatureHex is the hex representation of the function signature.
SignatureDefinition string `json:"signatureDefinition" doc:"Signature definition"` // SignatureDefinition is the definition of the function signature.
Abi string `json:"abi" doc:"ABI"` // ABI is the Application Binary Interface of the function.
Implemented bool `json:"implemented" doc:"Implementation status"` // Implemented status indicates if the function is implemented.
Visibility string `json:"visibility" doc:"Visibility"` // Visibility specifies the visibility of the function (e.g., public, private).
Mutability string `json:"mutability" doc:"Mutability"` // Mutability specifies the mutability of the function (e.g., view, pure).
Virtual bool `json:"virtual" doc:"Virtual status"` // Virtual status indicates if the function is virtual.
Unit *ast.Function `json:"unit" doc:"AST Function definition"` // Unit is the AST definition of the function.
Processed bool `json:"processed" doc:"Processed status"` // Processed status indicates if the function has been processed.
Partial bool `json:"partial" doc:"Partial status"` // Partial status indicates if the function processing is partial.
CreatedAt time.Time `json:"createdAt" doc:"Created at"` // Timestamp of when the function was created.
UpdatedAt time.Time `json:"updatedAt" doc:"Updated at"` // Timestamp of when the function was last updated.
}
FullFunction represents the detailed information of a function in a smart contract.
type Log ¶
type Log struct {
Address *utils.NamedAddr `json:"address" doc:"Log address"` // Address is the address of the contract that generated the log.
Topics []common.Hash `json:"topics" doc:"Log topics"` // Topics are the indexed log topics.
Removed bool `json:"removed" doc:"Removed status"` // Removed indicates if the log was removed (due to chain reorganization).
Signature common.Hash `json:"signature" doc:"Log signature"` // Signature is the hash of the log signature.
EventSignature string `json:"eventSignature" doc:"Event signature"` // EventSignature is the signature of the event.
Name string `json:"name" doc:"Log name"` // Name is the name of the log.
Type utils.LogEventType `json:"type" doc:"Log event type"` // Type is the type of log event.
Abi string `json:"abi" doc:"ABI"` // ABI is the Application Binary Interface of the log.
DecodedTopics []bytecode.Topic `json:"decodedTopics" doc:"Decoded log topics"` // DecodedTopics are the decoded log topics.
RawData string `json:"rawData" doc:"Raw log data"` // RawData is the raw data of the log.
Data map[string]interface{} `json:"data" doc:"Decoded log data"` // Data is the decoded data of the log.
Anonymous bool `json:"anonymous" doc:"Anonymous status"` // Anonymous indicates if the log is anonymous.
AST *ast.EventDefinition `json:"ast" doc:"AST event definition"` // AST is the AST definition of the event.
}
Log represents a log entry from a transaction receipt.
type Metadata ¶
type Metadata struct {
Id uuid.UUID `json:"id" doc:"Metadata ID"` // Unique identifier for the metadata.
NetworkId *big.Int `json:"networkId" doc:"Network ID"` // Network ID specifies the blockchain network.
ContractId uuid.UUID `json:"contractId" doc:"Contract ID"` // Contract ID is the unique identifier for the contract.
ContractAddress common.Address `json:"contractAddress" doc:"Contract address"` // Contract address specifies the smart contract address.
CborLength int16 `json:"cborLength" doc:"CBOR length"` // CBOR length is the length of the CBOR-encoded metadata.
AuxBytes string `json:"auxBytes" doc:"Auxiliary bytes"` // Auxiliary bytes are additional bytes in the metadata.
Ipfs string `json:"ipfs" doc:"IPFS hash"` // IPFS hash is the InterPlanetary File System hash for the metadata.
Bzzr0 string `json:"bzzr0" doc:"BZZR0 hash"` // BZZR0 hash is the Swarm hash for the metadata (version 0).
Bzzr1 string `json:"bzzr1" doc:"BZZR1 hash"` // BZZR1 hash is the Swarm hash for the metadata (version 1).
SolcVersion string `json:"solcVersion" doc:"Solidity compiler version"` // SolcVersion is the version of the Solidity compiler used.
Processed bool `json:"processed" doc:"Processed status"` // Processed status indicates if the metadata has been processed.
Partial bool `json:"partial" doc:"Partial status"` // Partial status indicates if the metadata processing is partial.
CreatedAt time.Time `json:"createdAt" doc:"Created at"` // Timestamp of when the metadata was created.
UpdatedAt time.Time `json:"updatedAt" doc:"Updated at"` // Timestamp of when the metadata was last updated.
}
Metadata represents the metadata details of a smart contract.
type Network ¶
type Network struct {
Id int `json:"id" doc:"Network ID" huma:"path"` // Network ID specifies the unique identifier for the network.
Name string `json:"name" doc:"Network name"` // Network name specifies the name of the network.
CanonicalName string `json:"canonicalName" doc:"Canonical name"` // Canonical name specifies the canonical name of the network.
Symbol string `json:"symbol" doc:"Symbol"` // Symbol specifies the symbol of the network.
Website string `json:"website" doc:"Website"` // Website specifies the website URL of the network.
Suspended bool `json:"suspended" doc:"Suspended status"` // Suspended status indicates if the network is suspended.
Maintenance bool `json:"maintenance" doc:"Maintenance status"` // Maintenance status indicates if the network is under maintenance.
}
Network represents the details of a blockchain network.
type Opcode ¶
type Opcode struct {
Abi string `json:"abi" doc:"ABI"` // ABI is the Application Binary Interface of the smart contract.
Instructions []string `json:"instructions" doc:"Opcode instructions"` // Instructions are the list of opcode instructions.
Functions []PartialFunction `json:"functions" doc:"Functions"` // Functions are the parsed function definitions from the opcode.
Events []PartialEvent `json:"events" doc:"Events"` // Events are the parsed event definitions from the opcode.
}
Opcode represents the opcode details of a smart contract.
type PartialEvent ¶ added in v0.9.7
type PartialEvent struct {
Id uuid.UUID `json:"id" doc:"Event ID"` // Unique identifier for the event.
ContractAddress string `json:"contractAddress" doc:"Contract address"` // Contract address specifies the smart contract address.
Name string `json:"name" doc:"Event name"` // Name is the name of the event.
Signature string `json:"signature" doc:"Event signature"` // Signature is the function signature of the event.
SignatureHex string `json:"signatureHex" doc:"Event signature hex"` // SignatureHex is the hex representation of the event signature.
SignatureDefinition string `json:"signatureDefinition" doc:"Signature definition"` // SignatureDefinition is the definition of the event signature.
Abi string `json:"abi" doc:"ABI"` // ABI is the Application Binary Interface of the event.
Anonymous bool `json:"anonymous" doc:"Anonymous status"` // Anonymous status indicates if the event is anonymous.
Unit *ast.EventDefinition `json:"unit" doc:"AST Event definition"` // Unit is the AST definition of the event.
CreatedAt time.Time `json:"createdAt" doc:"Created at"` // Timestamp of when the event was created.
UpdatedAt time.Time `json:"updatedAt" doc:"Updated at"` // Timestamp of when the event was last updated.
}
PartialEvent represents the basic information of an event in a smart contract.
type PartialFunction ¶ added in v0.9.7
type PartialFunction struct {
Id uuid.UUID `json:"id,omitempty" doc:"Function ID"` // Unique identifier for the function.
ContractAddress string `json:"contractAddress,omitempty" doc:"Contract address"` // Contract address specifies the smart contract address.
Name string `json:"name" doc:"Function name"` // Name is the name of the function.
Signature string `json:"signature" doc:"Function signature"` // Signature is the function signature.
SignatureDefinition string `json:"signatureDefinition" doc:"Signature definition"` // SignatureDefinition is the definition of the function signature.
Abi string `json:"abi" doc:"ABI"` // ABI is the Application Binary Interface of the function.
Implemented bool `json:"implemented" doc:"Implementation status"` // Implemented status indicates if the function is implemented.
Visibility string `json:"visibility" doc:"Visibility"` // Visibility specifies the visibility of the function (e.g., public, private).
Mutability string `json:"mutability" doc:"Mutability"` // Mutability specifies the mutability of the function (e.g., view, pure).
Virtual bool `json:"virtual" doc:"Virtual status"` // Virtual status indicates if the function is virtual.
Parameters []*ast.Parameter `json:"parameters" doc:"Function parameters"` // Parameters are the input parameters of the function.
ReturnParameters []*ast.Parameter `json:"returnParameters" doc:"Return parameters"` // ReturnParameters are the output parameters of the function.
CreatedAt time.Time `json:"createdAt" doc:"Created at"` // Timestamp of when the function was created.
UpdatedAt time.Time `json:"updatedAt" doc:"Updated at"` // Timestamp of when the function was last updated.
}
PartialFunction represents the basic information of a function in a smart contract.
type Receipt ¶
type Receipt struct {
BlockNumber *big.Int `json:"blockNumber" doc:"Block number"` // BlockNumber is the number of the block containing the transaction.
BlockHash common.Hash `json:"blockHash" doc:"Block hash"` // BlockHash is the hash of the block containing the transaction.
ContractAddress common.Address `json:"contractAddress" doc:"Contract address"` // ContractAddress is the address of the contract created by the transaction.
TransactionIndex uint `json:"transactionIndex" doc:"Transaction index"` // TransactionIndex is the index of the transaction within the block.
GasUsed uint64 `json:"gasUsed" doc:"Gas used"` // GasUsed is the amount of gas used by the transaction.
CumulativeGasUsed uint64 `json:"cumulativeGasUsed" doc:"Cumulative gas used"` // CumulativeGasUsed is the total amount of gas used when this transaction was included in the block.
EffectiveGasPrice *big.Int `json:"effectiveGasPrice" doc:"Effective gas price"` // EffectiveGasPrice is the effective gas price for the transaction.
BlobGasUsed uint64 `json:"blobGasUsed" doc:"Blob gas used"` // BlobGasUsed is the amount of blob gas used by the transaction.
BlobGasPrice *big.Int `json:"blobGasPrice" doc:"Blob gas price"` // BlobGasPrice is the price of the blob gas used by the transaction.
Status uint64 `json:"status" doc:"Transaction status"` // Status indicates the status of the transaction (1 for success, 0 for failure).
Bloom types.Bloom `json:"bloom" doc:"Bloom filter"` // Bloom filter for the logs of the transaction.
PostState string `json:"postState" doc:"Post state"` // PostState is the state after the transaction.
}
Receipt represents the receipt of a blockchain transaction.
type Standard ¶
type Standard struct {
Id uuid.UUID `json:"id" doc:"Standard ID"` // Unique identifier for the standard.
NetworkId *big.Int `json:"networkId" doc:"Network ID"` // Network ID specifies the blockchain network.
ContractAddress common.Address `json:"contractAddress" doc:"Contract address"` // Contract address specifies the smart contract address.
Name string `json:"name" doc:"Standard name"` // Name is the name of the standard.
Type standards.Standard `json:"type" doc:"Standard type"` // Type specifies the type of standard (e.g., ERC-20, ERC-721).
Confidence string `json:"confidence" doc:"Confidence level"` // Confidence level indicates the confidence in the standard compliance.
ConfidencePoints float64 `json:"confidencePoints" doc:"Confidence points"` // Confidence points represent the confidence score.
DiscoveredTokens int64 `json:"discoveredTokens" doc:"Discovered tokens"` // Discovered tokens are the number of tokens discovered.
MaximumTokens int64 `json:"maximumTokens" doc:"Maximum tokens"` // Maximum tokens is the maximum number of tokens defined by the standard.
Threshold float64 `json:"threshold" doc:"Threshold"` // Threshold is the threshold for compliance.
Unit standards.ContractStandard `json:"unit" doc:"Standard unit"` // Unit is the contract standard unit.
Processed bool `json:"processed" doc:"Processed status"` // Processed status indicates if the standard has been processed.
Partial bool `json:"partial" doc:"Partial status"` // Partial status indicates if the standard processing is partial.
CreatedAt time.Time `json:"createdAt" doc:"Created at"` // Timestamp of when the standard was created.
UpdatedAt time.Time `json:"updatedAt" doc:"Updated at"` // Timestamp of when the standard was last updated.
}
Standard represents the details of a compliance standard for a smart contract.
type StatsResponse ¶
type StatsResponse struct {
ContractsCount uint64 `json:"contractsCount" doc:"Contracts count"` // ContractsCount is the total number of contracts.
}
StatsResponse represents the response containing statistics about contracts.
type Token ¶
type Token struct {
NetworkId utils.NetworkID `json:"networkId" doc:"Network ID"` // Network ID specifies the blockchain network.
ContractAddress common.Address `json:"contractAddress" doc:"Contract address"` // Contract address specifies the smart contract address.
Name string `json:"name" doc:"Token name"` // Name is the name of the token.
Symbol string `json:"symbol" doc:"Token symbol"` // Symbol is the symbol of the token.
Decimals int64 `json:"decimals" doc:"Token decimals"` // Decimals is the number of decimal places the token uses.
TotalSupply string `json:"totalSupply" doc:"Total supply"` // TotalSupply is the total supply of the token.
Valid bool `json:"valid" doc:"Validity status"` // Validity status indicates if the token is valid.
CompletedStates []string `json:"completedStates" doc:"Completed states"` // Completed states are the states that have been completed for the token.
FailedStates []string `json:"failedStates" doc:"Failed states"` // Failed states are the states that have failed for the token.
Processed bool `json:"processed" doc:"Processed status"` // Processed status indicates if the token has been processed.
Partial bool `json:"partial" doc:"Partial status"` // Partial status indicates if the token processing is partial.
CreatedAt time.Time `json:"createdAt" doc:"Created at (UTC)"`
UpdatedAt time.Time `json:"updatedAt" doc:"Last updated time (UTC)"`
}
Token represents the details of a token in a blockchain network.
type Transaction ¶
type Transaction struct {
Hash common.Hash `json:"hash" doc:"Transaction hash"` // Hash is the hash of the transaction.
Type uint8 `json:"type" doc:"Transaction type"` // Type is the type of the transaction.
Sender *utils.NamedAddr `json:"sender" doc:"Sender address"` // Sender is the address of the transaction sender.
Recipient *utils.NamedAddr `json:"recipient" doc:"Recipient address"` // Recipient is the address of the transaction recipient.
AccessList types.AccessList `json:"accessList" doc:"Access list"` // AccessList is the access list of the transaction.
Nonce uint64 `json:"nonce" doc:"Transaction nonce"` // Nonce is the nonce of the transaction.
Protected bool `json:"protected" doc:"Protected status"` // Protected indicates if the transaction is protected (EIP-1559).
IsPending bool `json:"isPending" doc:"Pending status"` // IsPending indicates if the transaction is pending.
Value *big.Int `json:"value" doc:"Transaction value"` // Value is the value transferred in the transaction.
Cost *big.Int `json:"cost" doc:"Transaction cost"` // Cost is the total cost of the transaction.
Gas uint64 `json:"gas" doc:"Gas limit"` // Gas is the gas limit of the transaction.
GasPrice *big.Int `json:"gasPrice" doc:"Gas price"` // GasPrice is the gas price of the transaction.
GasFeeCap *big.Int `json:"gasFeeCap" doc:"Gas fee cap"` // GasFeeCap is the gas fee cap of the transaction (EIP-1559).
GasTipCap *big.Int `json:"gasTipCap" doc:"Gas tip cap"` // GasTipCap is the gas tip cap of the transaction (EIP-1559).
BlobGas uint64 `json:"blobGas" doc:"Blob gas"` // BlobGas is the blob gas limit of the transaction.
BlobGasFeeCap *big.Int `json:"blobGasFeeCap" doc:"Blob gas fee cap"` // BlobGasFeeCap is the blob gas fee cap of the transaction.
BlobHashes []common.Hash `json:"blobHashes" doc:"Blob hashes"` // BlobHashes are the blob hashes associated with the transaction.
BlobTxSidecar *types.BlobTxSidecar `json:"blobTxSidecar" doc:"Blob transaction sidecar"` // BlobTxSidecar is the blob transaction sidecar.
RawSignature *TransactionRawSignature `json:"rawSignature" doc:"Raw signature"` // RawSignature is the raw signature of the transaction.
Signature string `json:"signature" doc:"Transaction signature"` // Signature is the signature of the transaction.
FunctionName string `json:"functionName" doc:"Function name"` // FunctionName is the name of the called function.
FunctionSignature string `json:"functionSignature" doc:"Function signature"` // FunctionSignature is the signature of the called function.
Implemented bool `json:"implemented" doc:"Implementation status"` // Implemented indicates if the function is implemented.
StateMutability string `json:"stateMutability" doc:"State mutability"` // StateMutability indicates the state mutability of the function.
Visibility string `json:"visibility" doc:"Function visibility"` // Visibility indicates the visibility of the function.
Virtual bool `json:"virtual" doc:"Virtual status"` // Virtual indicates if the function is virtual.
MethodType utils.TransactionMethodType `json:"methodType" doc:"Method type"` // MethodType indicates the type of the transaction method.
MethodPayload map[string]interface{} `json:"methodPayload" doc:"Method payload"` // MethodPayload is the payload of the transaction method.
MethodAbi string `json:"methodAbi" doc:"Method ABI"` // MethodAbi is the ABI of the transaction method.
Data string `json:"data" doc:"Transaction data"` // Data is the input data of the transaction.
Time time.Time `json:"time" doc:"Transaction time"` // Time is the timestamp of the transaction.
Receipt *Receipt `json:"receipt" doc:"Transaction receipt"` // Receipt is the receipt of the transaction.
Logs []Log `json:"logs" doc:"Transaction logs"` // Logs are the logs generated by the transaction.
AST *ast.Function `json:"ast" doc:"AST function definition"` // AST is the AST definition of the called function.
}
Transaction represents a blockchain transaction.
type TransactionRawSignature ¶
type TransactionRawSignature struct {
V, R, S *big.Int `json:"v,r,s" doc:"Raw signature components"` // V, R, S are the raw signature components of the transaction.
}
TransactionRawSignature represents the raw signature components of a transaction.
type Variable ¶
type Variable struct {
Id uuid.UUID `json:"id" doc:"Variable ID"` // Unique identifier for the variable.
NetworkId utils.NetworkID `json:"networkId" doc:"Network ID"` // Network ID specifies the blockchain network.
ContractAddress common.Address `json:"contractAddress" doc:"Contract address"` // Contract address specifies the smart contract address.
Name string `json:"name" doc:"Variable name"` // Name is the name of the variable.
Type string `json:"type" doc:"Variable type"` // Type is the type of the variable.
StateMutability string `json:"stateMutability" doc:"State mutability"` // StateMutability specifies the mutability of the variable.
Visibility string `json:"visibility" doc:"Variable visibility"` // Visibility specifies the visibility of the variable.
IsConstant bool `json:"isConstant" doc:"Constant status"` // IsConstant indicates if the variable is constant.
IsAddress bool `json:"isAddress" doc:"Address status"` // IsAddress indicates if the variable is an address.
IsContract bool `json:"isContract" doc:"Contract status"` // IsContract indicates if the variable is a contract.
IsArray bool `json:"isArray" doc:"Array status"` // IsArray indicates if the variable is an array.
IsDynamicArray bool `json:"isDynamicArray" doc:"Dynamic array status"` // IsDynamicArray indicates if the variable is a dynamic array.
IsMapping bool `json:"isMapping" doc:"Mapping status"` // IsMapping indicates if the variable is a mapping.
IsStruct bool `json:"isStruct" doc:"Struct status"` // IsStruct indicates if the variable is a struct.
StorageIndex int64 `json:"storageIndex" doc:"Storage index"` // StorageIndex is the index of the variable in storage.
StorageSize int64 `json:"storageSize" doc:"Storage size"` // StorageSize is the size of the variable in storage.
StorageOffset int64 `json:"storageOffset" doc:"Storage offset"` // StorageOffset is the offset of the variable in storage.
Unit *ast.StateVariableDeclaration `json:"unit" doc:"AST variable declaration"` // Unit is the AST definition of the state variable.
Processed bool `json:"processed" doc:"Processed status"` // Processed indicates if the variable has been processed.
Partial bool `json:"partial" doc:"Partial status"` // Partial indicates if the variable processing is partial.
CreatedAt time.Time `json:"createdAt" doc:"Created at"` // Timestamp of when the variable was created.
UpdatedAt time.Time `json:"updatedAt" doc:"Updated at"` // Timestamp of when the variable was last updated.
}
Variable represents the details of a state variable in a smart contract.