web3-contract-proxy
v1.0.4
Published
A proxy-based smart contract interaction library for blockchain applications
Maintainers
Readme
@blockchain-ide/contract-proxy
A proxy-based smart contract interaction library that provides an intuitive interface for interacting with blockchain contracts through REST APIs.
Features
- 🚀 Simple, intuitive API for contract interactions
- 🔒 Built-in wallet address verification
- 📝 TypeScript support with full type definitions
- 🔄 Automatic method type detection (view/pure vs state-changing)
- 🛠 Built-in error handling and logging
Installation
npm install @blockchain-ide/contract-proxyUsage
import { createContractProxy } from '@blockchain-ide/contract-proxy';
// Create a contract instance
const contract = createContractProxy({
baseURL: "https://api.example.com",
walletAddress: "0x...",
contractId: "1",
contractABI: [] // Optional, but recommended for better type checking
});
// Call view functions
const balance = await contract.getBalance();
console.log('Balance:', balance);
// Call state-changing functions
const tx = await contract.transfer("0x...", "1000");
console.log('Transaction:', tx);
// Error handling
try {
await contract.someMethod();
} catch (error) {
console.error('Error:', error.message);
}API Reference
createContractProxy(options)
Creates a proxy-based contract instance that allows for intuitive contract interactions.
Options
baseURL(string): The base URL of your APIwalletAddress(string): The Ethereum address of the connected walletcontractId(string | number): The ID of the contract to interact withcontractABI(ContractFunction[] | optional): The ABI of the contract for better type checking
ContractFunction
interface ContractFunction {
name: string;
type: string;
inputs: {
name: string;
type: string;
indexed?: boolean;
}[];
outputs: {
name: string;
type: string;
}[];
stateMutability: 'view' | 'pure' | 'nonpayable' | 'payable';
payable?: boolean;
}Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
MIT
