0.2.53 • Published 7 months ago

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

Weekly downloads
-
License
MIT
Repository
github
Last release
7 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

7 months ago

0.2.52

7 months ago

0.2.51

7 months ago

0.2.50

7 months ago

0.2.49

7 months ago

0.2.48

7 months ago

0.2.47

7 months ago

0.2.46

7 months ago

0.2.45

7 months ago

0.2.44

7 months ago

0.2.43

7 months ago

0.2.42

7 months ago

0.2.41

7 months ago

0.2.40

7 months ago

0.2.39

7 months ago

0.2.38

7 months ago

0.2.37

7 months ago

0.2.36

7 months ago

0.2.35

7 months ago

0.2.34

7 months ago

0.2.33

7 months ago

0.2.32

7 months ago

0.2.31

7 months ago

0.2.30

7 months ago

0.2.29

7 months ago

0.2.28

7 months ago

0.2.27

7 months ago

0.2.26

7 months ago

0.2.25

7 months ago

0.2.24

7 months ago

0.2.16

7 months ago

0.2.15

7 months ago

0.2.14

7 months ago

0.2.13

7 months ago

0.2.12

7 months ago

0.2.11

7 months ago

0.2.10

7 months ago

0.2.9

7 months ago

0.2.8

7 months ago

0.2.7

7 months ago

0.2.6

7 months ago

0.2.4

7 months ago

0.2.3

7 months ago

0.2.2

7 months ago

0.2.1

7 months ago

0.2.0

7 months ago

0.1.1

7 months ago

0.1.0

7 months ago