0.2.53 • Published 5 months ago
eth-icp-abi-to-motoko v0.2.53
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
- 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);
}
}
- Generate Motoko bindings:
abi-to-motoko -c PriceFeed.sol -o PriceFeed.mo
- 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
5 months ago
0.2.52
5 months ago
0.2.51
5 months ago
0.2.50
5 months ago
0.2.49
5 months ago
0.2.48
5 months ago
0.2.47
5 months ago
0.2.46
5 months ago
0.2.45
5 months ago
0.2.44
5 months ago
0.2.43
5 months ago
0.2.42
5 months ago
0.2.41
5 months ago
0.2.40
5 months ago
0.2.39
5 months ago
0.2.38
5 months ago
0.2.37
5 months ago
0.2.36
5 months ago
0.2.35
5 months ago
0.2.34
5 months ago
0.2.33
5 months ago
0.2.32
5 months ago
0.2.31
5 months ago
0.2.30
5 months ago
0.2.29
5 months ago
0.2.28
5 months ago
0.2.27
5 months ago
0.2.26
5 months ago
0.2.25
5 months ago
0.2.24
5 months ago
0.2.16
5 months ago
0.2.15
5 months ago
0.2.14
5 months ago
0.2.13
5 months ago
0.2.12
5 months ago
0.2.11
5 months ago
0.2.10
5 months ago
0.2.9
5 months ago
0.2.8
5 months ago
0.2.7
5 months ago
0.2.6
5 months ago
0.2.4
5 months ago
0.2.3
5 months ago
0.2.2
5 months ago
0.2.1
5 months ago
0.2.0
5 months ago
0.1.1
5 months ago
0.1.0
5 months ago