feat: add readContract / invokeContract functionality to Coinbase plugin #923
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Features
Contract Interactions
readContractAction
for reading data from deployed smart contractsReadContractContent
interface andReadContractSchema
for input validationreadContractTemplate
to guide users in extracting necessary details for read operationstokenContractPlugin
withinvokeContractAction
now relying onnetworkId
,amount
as a string, and requiredassetId
Technical Details
New Types
ReadContractSchema
added for validating read operations:contractAddress
,method
,networkId
,args
, and optionalabi
Updated Invocation Schema
network
replaced bynetworkId
to align with Coinbase SDK requirementsamount
now handled as a string to support large values without precision lossassetId
is now required for payable contract methodsTemplates
readContractTemplate
: Guides extracting details (contractAddress, method, networkId, args, abi) for reading contract datatokenContractTemplate
&contractInvocationTemplate
: Enhanced for clarity and alignment with updated schema fieldsActions
networkId
,amount
as a string, and a requiredassetId
Testing
Contract Reading
networkId
Invocation and Deployment
networkId
approachamount
as a string and mandatoryassetId
don't break existing flowsReading contract:
Invoking contract:
https://drive.google.com/file/d/16VtpCI7q8J4opco9jQO3XQdwZMb0u-Yz/view?usp=sharing
Risks
ReadContractSchema
Documentation
readContractAction
,networkId
field, and schema changesDeploy Notes
network
tonetworkId
in configurations and calls