makeContractCall
Constructs and signs a smart contract function call transaction. Calls a public function on a deployed Clarity smart contract.
Usage
import {
makeContractCall,
Cl,
PostConditionMode,
} from '@stacks/transactions';
const transaction = await makeContractCall({
contractAddress: 'ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM',
contractName: 'my-contract',
functionName: 'transfer',
functionArgs: [
Cl.uint(1000),
Cl.standardPrincipal('ST1SJ3DTE5DN7X54YDH5D64R3BCB6A2AG2ZQ8YPD5'),
],
senderKey: 'b244296d5907de9864c0b0d51f98a13c52890be0404e83f273144004b81874603',
network: 'testnet',
postConditionMode: PostConditionMode.Deny,
fee: 10000n,
nonce: 0n,
});
const serializedTx = transaction.serialize();Notes
The
functionArgsmust match the types expected by the Clarity function.Use the
Clnamespace helpers (e.g.Cl.uint,Cl.standardPrincipal) to construct Clarity values.If the contract's ABI is needed for validation, it is fetched automatically unless
validateWithAbiis set tofalse.If
feeis omitted, the fee is estimated automatically.If
nonceis omitted, the nonce is fetched automatically.
Signature
Returns
Promise<StacksTransactionWire>
A promise that resolves to a signed StacksTransactionWire object, ready to be broadcast.
Parameters
txOptions (required)
Type:
SignedContractCallOptions | SignedMultiSigContractCallOptions
For single-sig, provide senderKey. For multi-sig, provide publicKeys, numSignatures, and signerKeys.
Last updated
Was this helpful?