updateForeignCall(Defined in: src/modules/foreign-calls.ts:195 Updates a foreign call in the rules engine component contract.config
,rulesEnginePolicyContract
,rulesEngineComponentContract
,rulesEngineForeignCallContract
,policyId
,foreignCallId
,fcSyntax
,confirmationCount
):Promise
<number
>
Parameters
Parameter | Type | Description |
---|---|---|
config | Config | The configuration object containing network and wallet information. |
rulesEnginePolicyContract | { abi : ({ anonymous : undefined ; inputs : object []; name : string ; outputs : object []; stateMutability : string ; type : string ; } | { anonymous : undefined ; inputs : object []; name : string ; outputs : object []; stateMutability : string ; type : string ; } | { anonymous : boolean ; inputs : object []; name : string ; outputs : undefined ; stateMutability : undefined ; type : string ; })[]; address : `0x${string}` ; } | - |
rulesEnginePolicyContract.abi | ({ anonymous : undefined ; inputs : object []; name : string ; outputs : object []; stateMutability : string ; type : string ; } | { anonymous : undefined ; inputs : object []; name : string ; outputs : object []; stateMutability : string ; type : string ; } | { anonymous : boolean ; inputs : object []; name : string ; outputs : undefined ; stateMutability : undefined ; type : string ; })[] | - |
rulesEnginePolicyContract.address | `0x${string}` | - |
rulesEngineComponentContract | { abi : ({ anonymous : undefined ; inputs : ({ components : undefined ; internalType : string ; name : string ; type : string ; } | { components : object []; internalType : string ; name : string ; type : string ; })[]; name : string ; outputs : object []; stateMutability : string ; type : string ; } | { anonymous : undefined ; inputs : object []; name : string ; outputs : object []; stateMutability : string ; type : string ; } | { anonymous : boolean ; inputs : object []; name : string ; outputs : undefined ; stateMutability : undefined ; type : string ; })[]; address : `0x${string}` ; } | - |
rulesEngineComponentContract.abi | ({ anonymous : undefined ; inputs : ({ components : undefined ; internalType : string ; name : string ; type : string ; } | { components : object []; internalType : string ; name : string ; type : string ; })[]; name : string ; outputs : object []; stateMutability : string ; type : string ; } | { anonymous : undefined ; inputs : object []; name : string ; outputs : object []; stateMutability : string ; type : string ; } | { anonymous : boolean ; inputs : object []; name : string ; outputs : undefined ; stateMutability : undefined ; type : string ; })[] | - |
rulesEngineComponentContract.address | `0x${string}` | - |
rulesEngineForeignCallContract | { abi : ({ anonymous : undefined ; inputs : ({ components : undefined ; internalType : string ; name : string ; type : string ; } | { components : ({ components : undefined ; internalType : string ; name : string ; type : string ; } | { components : …[]; internalType : string ; name : string ; type : string ; })[]; internalType : string ; name : string ; type : string ; })[]; name : string ; outputs : object []; stateMutability : string ; type : string ; } | { anonymous : undefined ; inputs : ({ components : undefined ; internalType : string ; name : string ; type : string ; } | { components : ({ components : undefined ; internalType : string ; name : string ; type : string ; } | { components : …[]; internalType : string ; name : string ; type : string ; })[]; internalType : string ; name : string ; type : string ; })[]; name : string ; outputs : object []; stateMutability : string ; type : string ; } | { anonymous : boolean ; inputs : object []; name : string ; outputs : undefined ; stateMutability : undefined ; type : string ; })[]; address : `0x${string}` ; } | The contract instance for interacting with the rules engine component. |
rulesEngineForeignCallContract.abi | ({ anonymous : undefined ; inputs : ({ components : undefined ; internalType : string ; name : string ; type : string ; } | { components : ({ components : undefined ; internalType : string ; name : string ; type : string ; } | { components : …[]; internalType : string ; name : string ; type : string ; })[]; internalType : string ; name : string ; type : string ; })[]; name : string ; outputs : object []; stateMutability : string ; type : string ; } | { anonymous : undefined ; inputs : ({ components : undefined ; internalType : string ; name : string ; type : string ; } | { components : ({ components : undefined ; internalType : string ; name : string ; type : string ; } | { components : …[]; internalType : string ; name : string ; type : string ; })[]; internalType : string ; name : string ; type : string ; })[]; name : string ; outputs : object []; stateMutability : string ; type : string ; } | { anonymous : boolean ; inputs : object []; name : string ; outputs : undefined ; stateMutability : undefined ; type : string ; })[] | - |
rulesEngineForeignCallContract.address | `0x${string}` | - |
policyId | number | The ID of the policy to associate with the foreign call. |
foreignCallId | number | The ID of the foreign call to update. |
fcSyntax | string | A JSON string representing the foreign call definition. |
confirmationCount | number | - |
Returns
Promise
<number
>
A promise that resolves to the foreign call index. Returns -1
if the operation fails.
Remarks
- The function retries the contract interaction in case of failure, with a delay of 1 second between attempts.
- The
simulateContract
function is used to simulate the contract interaction before writing to the blockchain. - The
writeContract
function is used to execute the contract interaction on the blockchain. - The function returns the
foreignCallIndex
for an updated foreign call or the result of the newly created foreign call.
Throws
Will throw an error if the JSON parsing offcSyntax
fails.