0.2.53 • Published 1 year 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-motokoUsage
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 bindingsExample
- 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
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