0.2.53 • Published 6 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
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