@windingtree/sdk-contracts-manager
v1.5.2
Published
Utility class for interaction with the protocol smart contracts
Downloads
23
Readme
@windingtree/sdk-contracts-manager
This package is a core component of the Winding Tree SDK. It provides an interface to interact with smart contracts, allowing developers to execute various operations including transactions and contract function calls.
The ProtocolContracts
class exposed by this package contains methods to interact with smart contracts for entities such as offers and deals. These methods support functionalities like creating, fetching, and cancelling deals, registering entities, and handling various deal statuses (checking-in, checking-out, rejecting, claiming, and refunding).
Installation
pnpm i @windingtree/sdk-contracts-manager
Key Concepts
PublicClient
andWalletClient
are used for blockchain interactions. APublicClient
is used for reading blockchain state and data, while aWalletClient
is used for writing transactions to the blockchain.- The
_sendHelper
method is a private utility used to send transactions to the blockchain network. - The
TxCallback
is a type definition for a callback function that will be called with the transaction hash when a transaction is sent. - The methods in the
ProtocolContracts
class follow a pattern where they accept the parameters necessary for the specific blockchain operation, an optionalWalletClient
to specify the signer of the transaction, and an optionalTxCallback
that will be called with the transaction hash.
Usage
import { createPublicClient, createWalletClient, http } from 'viem';
import { polygonZkEvmTestnet } from 'viem/chains';
import { ProtocolContracts } from '@windingtree/sdk-contracts-manager';
// Instantiate with options
const protocolContracts = new ProtocolContracts({
contracts: {
/* contracts configuration */
},
publicClient: createPublicClient({
chain: polygonZkEvmTestnet,
transport: http(),
}),
walletClient: createWalletClient({
chain: polygonZkEvmTestnet,
transport: http(),
account: node.signer.address,
}),
});
// Use methods to interact with the blockchain
protocolContracts.createDeal(/* parameters */);
protocolContracts.getDeal(/* parameters */);
// and other methods...
Documentation
For full documentation and examples, visit windingtree.github.io/sdk
Testing
pnpm test