0.2.53 • Published 6 months ago

eth-icp-abi-to-motoko v0.2.53

Weekly downloads
-
License
MIT
Repository
github
Last release
6 months ago

eth-icp-abi-to-motoko

Generate Motoko bindings from Ethereum contract ABIs - A bridge between Ethereum and Internet Computer.

Features

  • Generate type-safe Motoko bindings from Solidity contracts
  • Support for all Solidity types and events
  • Automatic ABI encoding/decoding
  • Built-in support for OpenZeppelin contracts
  • Easy integration with ICP canisters

Installation

# Global installation (recommended for CLI usage)
npm install -g eth-icp-abi-to-motoko

# Local installation
npm install eth-icp-abi-to-motoko

Usage

Command Line

# Generate bindings from a Solidity contract
abi-to-motoko -c path/to/Contract.sol -o output/Contract.mo

# Options
-c, --contract <path>    Path to the Solidity contract
-o, --output <path>      Output path for the generated Motoko bindings

Example

  1. Create a Solidity contract:
// PriceFeed.sol
pragma solidity ^0.8.20;

contract PriceFeed {
    struct TokenData {
        string symbol;
        uint256 price;
        uint256 marketCap;
    }

    event PriceUpdated(TokenData[] tokens);

    function updatePrices(TokenData[] calldata tokens) external {
        emit PriceUpdated(tokens);
    }
}
  1. Generate Motoko bindings:
abi-to-motoko -c PriceFeed.sol -o PriceFeed.mo
  1. Use in your ICP canister:
import PriceFeed "PriceFeed";

actor {
    public func updatePrices(tokens: [TokenData]) : async () {
        let encoded = PriceFeed.encodeUpdatePrices(tokens);
        // Send transaction to Ethereum...
    };
}

Generated Code

The generator creates:

  • Function signatures and encoders
  • Event signatures and decoders
  • Type definitions matching Solidity structs
  • Helper functions for ABI encoding/decoding

Requirements

  • Node.js >= 16.0.0
  • Solidity >= 0.8.0

License

MIT

0.2.53

6 months ago

0.2.52

6 months ago

0.2.51

6 months ago

0.2.50

6 months ago

0.2.49

6 months ago

0.2.48

6 months ago

0.2.47

6 months ago

0.2.46

6 months ago

0.2.45

6 months ago

0.2.44

6 months ago

0.2.43

6 months ago

0.2.42

6 months ago

0.2.41

6 months ago

0.2.40

6 months ago

0.2.39

6 months ago

0.2.38

6 months ago

0.2.37

6 months ago

0.2.36

6 months ago

0.2.35

6 months ago

0.2.34

6 months ago

0.2.33

6 months ago

0.2.32

6 months ago

0.2.31

6 months ago

0.2.30

6 months ago

0.2.29

6 months ago

0.2.28

6 months ago

0.2.27

6 months ago

0.2.26

6 months ago

0.2.25

6 months ago

0.2.24

6 months ago

0.2.16

6 months ago

0.2.15

6 months ago

0.2.14

6 months ago

0.2.13

6 months ago

0.2.12

6 months ago

0.2.11

6 months ago

0.2.10

6 months ago

0.2.9

6 months ago

0.2.8

6 months ago

0.2.7

6 months ago

0.2.6

6 months ago

0.2.4

6 months ago

0.2.3

6 months ago

0.2.2

6 months ago

0.2.1

6 months ago

0.2.0

6 months ago

0.1.1

6 months ago

0.1.0

6 months ago