Notes
  • Blockchain
  • About this repository
  • References
  • Carret Position
  • Loggia and Balcony
  • automobile
    • Motorbike
  • computer
    • Kubernetes Event-driven Autoscaling (KEDA)
    • Protobuf
    • [[Amazon]] [[Identity and Access Management]] ([[IAM]])
    • Apdex
    • Architecture Decision Record
    • Audio
    • [[Amazon Web Services]] (AWS) Lambda
    • Blockchain
    • C/C++
    • Cache line
    • Caching strategies
    • Database
    • Design Patterns
    • Docker compose
    • Event Driven Design
    • False sharing
    • Git
    • [[Go]] common mistakes
    • [Go] [[subtests]]
    • Go
    • Janus
    • Jest
    • Kubernetes
    • Log-Structured Merge-tree
    • Media server
    • MySQL: Charset, Collation and UCA
    • Netflix
    • Opus Codec
    • Process, Thread
    • ReDoS - [[Regular expression]] Denial of Service
    • Rust
    • ScyllaDB
    • Shell Functions
    • Signals (The GNU Library)
    • Solidity
    • Sources
    • SQL
    • Transmission Control Protocol (TCP)
    • Ten design principles for Azure applications
    • Transient Fault Handling
    • twemproxy
    • Video
    • Web2 vs Web3
    • WebRTC
    • Microservice architecture
      • 3rd party registration
      • Command Query Responsibility Segregation (CQRS)
      • Access token
      • Aggregate
      • API Composition
      • API gateway/Backends for Frontends
      • Application metrics
      • Audit logging
      • Circuit Breaker
      • Client-side discovery
      • Client-side UI composition
      • Consumer-driven contract test
      • Consumer-side contract test
      • Database per Service
      • Decompose by business capability
      • Decompose by subdomain
      • Distributed tracing
      • Domain event
      • Domain-specific
      • Event sourcing
      • Exception tracking
      • Externalized configuration
      • Health check API
      • Log aggregation
      • Log deployments and changes
      • Messaging
      • Microservice architecture
      • Microservice Chassis
      • Multiple Service instances per host
      • Polling publisher
      • Remote Procedure invocation
      • Saga
      • Self-contained service
      • Self registration
      • Server-side discovery
      • Server-side page fragment composition
      • Serverless deployment
      • Service Component test
      • Service deployment platform
      • Service instance per Container
      • Service instance per VM
      • Service mesh
      • Service per team
      • Service registry
      • Service template
      • Shared database
      • Single Service instance per host
      • Transaction log tailling
      • Transactional outbox
  • food-and-beverage
    • Cheese
    • Flour
    • Japanese Plum liqueur or Umeshu
    • Sugar
  • management
    • Software Engineering processes
  • medic
    • Desease, disorder, condition, syndrome
    • Motion Sickess
  • others
    • Elliðaey
    • ASCII art
    • Empirical rule
    • Hindsight bias
    • Outcome bias
    • Tam giác Reuleaux
    • Luật Việt Nam
  • soft-skills
    • Emotional intelligence
Powered by GitBook
On this page
  1. computer

Blockchain

Previous[[Amazon Web Services]] (AWS) LambdaNextC/C++

Last updated 2 years ago

  • [[MetaMask]] uses [[Infura]] as a node provider.

What is ABI?

[[ABI]] (Application Binary Interface) in the context of computer science is an interface between two program modules, often between operating systems and user programs.

[[EVM]] ([[Ethereum]] Virtual Machine) is the core component of the Ethereum network, and smart contract is pieces of code stored on the Ethereum blockchain which are executed on EVM. Smart contracts written in high-level languages like [] or [[Vyper]] need to be compiled in EVM executable bytecode; when a smart contract is deployed, this bytecode is stored on the blockchain and is associated with an address

The [[JSON]] format of a contract's ABI is given by various functions and/or events descriptions.

Following are the elements present in the ABI description of a function:

  • type: Defines the type of function. It can be one of the following, 'function', 'constructor', 'receive' (for receive ether function), or 'fallback' (for default function).

  • name: Defines the name of the function.

  • inputs: It is an array of objects which defines parameters; each object has:

    • name: Defines the name of the parameters.

    • type: Defines the canonical types of the parameters. For example, uint256.

    • components: Used to define tuple types, if a tuple type is reached, it is represented as type = tuple [other properties of tuple elements like name, type goes here].

  • outputs: It is an array of output objects similar to inputs.

  • stateMutability: Defines the mutability of a function. It can be one of the following values: '[[pure]]' (specified not to read or write blockchain state), '[[view]]' (specified when blockchain state is to be read, but no modification can be done), '[[nonpayable]]' (this is the default mutability and doesn't need to be mentioned while writing a function in code, this means a function does not accept Ether; using this we can read and write blockchain state), payable (mentioning this means a function accepts Ether and can read/write blockchain state).

  • payable: true if function accepts Ether, false otherwise;

  • constant: true if function is either pure or view, false otherwise.

How to get/generate ABI?

One of the most common ways is to copy the ABI using the ABI button under compile tab of after the smart contract has complied.

Ethereum Improvement Proposals
Solidity
Ethereum REMIX IDE