0.2.53 • Published 1 year ago

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

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

1 year ago

0.2.52

1 year ago

0.2.51

1 year ago

0.2.50

1 year ago

0.2.49

1 year ago

0.2.48

1 year ago

0.2.47

1 year ago

0.2.46

1 year ago

0.2.45

1 year ago

0.2.44

1 year ago

0.2.43

1 year ago

0.2.42

1 year ago

0.2.41

1 year ago

0.2.40

1 year ago

0.2.39

1 year ago

0.2.38

1 year ago

0.2.37

1 year ago

0.2.36

1 year ago

0.2.35

1 year ago

0.2.34

1 year ago

0.2.33

1 year ago

0.2.32

1 year ago

0.2.31

1 year ago

0.2.30

1 year ago

0.2.29

1 year ago

0.2.28

1 year ago

0.2.27

1 year ago

0.2.26

1 year ago

0.2.25

1 year ago

0.2.24

1 year ago

0.2.16

1 year ago

0.2.15

1 year ago

0.2.14

1 year ago

0.2.13

1 year ago

0.2.12

1 year ago

0.2.11

1 year ago

0.2.10

1 year ago

0.2.9

1 year ago

0.2.8

1 year ago

0.2.7

1 year ago

0.2.6

1 year ago

0.2.4

1 year ago

0.2.3

1 year ago

0.2.2

1 year ago

0.2.1

1 year ago

0.2.0

1 year ago

0.1.1

1 year ago

0.1.0

1 year ago