API Changes
Core API changes when migrating from VeChain Kit 1.x to 2.0
Update Dependencies
npm install @vechain/vechain-kit@^2.0.0
npm uninstall @thor-devkit
Deprecated/Removed Hooks
// Before (1.x)
import { useConnex } from '@vechain/vechain-kit';
const { thor } = useConnex();
// After (2.x)
import { useThor } from '@vechain/vechain-kit';
const thor = useThor();
Update Imports
// Before (1.x)
import { useConnex, useWallet, useTransaction } from '@vechain/vechain-kit';
// After (2.x)
import { useThor, useWallet, useBuildTransaction, useCallClause } from '@vechain/vechain-kit';
Update Contract Calls
Reading Data
// Before (1.x) - Manual pattern
const functionAbi = contractAbi.find((e) => e.name === "balanceOf");
const res = await thor.account(contractAddress).method(functionAbi).call(address);
const balance = ethers.formatEther(res.decoded[0]);
// After (2.x) - useCallClause
const { data } = useCallClause({
abi: TokenContract__factory.abi,
address: contractAddress as `0x${string}`,
method: 'balanceOf' as const,
args: [address],
queryOptions: {
enabled: !!address,
select: (data) => ethers.formatEther(data[0]),
},
});
Writing Data (Transactions)
// Before (1.x) - Manual clause building
const functionAbi = contractAbi.find((e) => e.name === "approve");
const clause = thor.account(contractAddress).method(functionAbi).asClause(spender, amount);
// After (2.x) - Enhanced clauses
const { sendTransaction } = useBuildTransaction({
clauseBuilder: () => {
const { clause } = thor.contracts
.load(contractAddress, ERC20__factory.abi)
.clause.approve(spender, amount);
return [{ ...clause, comment: 'Approve tokens' }];
},
});
Key Patterns
Type Safety
const contractAddress = config.contractAddress as `0x${string}`;
const method = 'balanceOf' as const;
Query Enablement
queryOptions: {
enabled: !!address && !!tokenAddress,
}
Error Handling
if (error?.message.includes('reverted')) {
// Handle contract revert
} else if (error?.message.includes('network')) {
// Handle network error
}
Next Steps
Review Contract Patterns for detailed interaction examples
Apply Best Practices for optimal performance
Verify all functionality works as expected
Consult Troubleshooting for common issues
Last updated
Was this helpful?