Update
How to update an existing trigger via GraphQL
To update a trigger it's necessary to pass all the elements of the trigger using the same values where you don't want the trigger to change and new values where you want them to be updated.
Updating a trigger should be done carefully:
- 1.Update requires passing every field and argument and will delete them otherwise
- 2.Invalid updates via GraphQL could break the trigger and result in a blank page in the frontend (the trigger will still be fixable via GraphQL)
In HAL the following update mutations are available:
Mutations Name | Scope |
updateTransactionsTrigger | To update a TransactionsTrigger |
updateEventsTrigger | To update an EventsTrigger |
updateContractsTrigger | To update a ContractsTrigger |
updateTriggerStatus | To update a trigger status from active to inactive or viceversa |
Query
Result
mutation {
updateTransactionsTrigger(input: {
UUID: "d52bc720-f096-496b-a307-692ea9c87acc",
name: "Updated Transactions Trigger!",
statement: {
filters: [
{
condition: {
attribute: "0x2a0c0dbecc7e4d658f48e01e3fa353f44050c2099",
predicate: Eq
},
parameter: {
name: "To"
},
type: BasicFilter
},
{
method: {
name: "trade"
},
parameter: {
name: "tradeValues",
type: "uint256[8]",
index: 1
},
type: CheckFunctionParameter,
condition: {
attribute: "2500",
predicate: SmallerThan
}
}
],
contract: {
address: "0x2a0c0dbecc7e4d658f48e01e3fa353f44050c299",
abi: [{anonymous:false,inputs:[{indexed:false,internalType:"address",name:"previousAdmin",type:"address"},{indexed:false,internalType:"address",name:"newAdmin",type:"address"}],name:"AdminChanged",type:"event"},{anonymous:false,inputs:[{indexed:true,internalType:"address",name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{payable:true,stateMutability:"payable",type:"fallback"},{constant:false,inputs:[],name:"admin",outputs:[{internalType:"address",name:"",type:"address"}],payable:false,stateMutability:"nonpayable",type:"function"},{constant:false,inputs:[{internalType:"address",name:"newAdmin",type:"address"}],name:"changeAdmin",outputs:[],payable:false,stateMutability:"nonpayable",type:"function"},{constant:false,inputs:[],name:"implementation",outputs:[{internalType:"address",name:"",type:"address"}],payable:false,stateMutability:"nonpayable",type:"function"},{constant:false,inputs:[{internalType:"address",name:"_logic",type:"address"},{internalType:"address",name:"_admin",type:"address"},{internalType:"bytes",name:"_data",type:"bytes"}],name:"initialize",outputs:[],payable:true,stateMutability:"payable",type:"function"},{constant:false,inputs:[{internalType:"address",name:"_logic",type:"address"},{internalType:"bytes",name:"_data",type:"bytes"}],name:"initialize",outputs:[],payable:true,stateMutability:"payable",type:"function"},{constant:false,inputs:[{internalType:"address",name:"newImplementation",type:"address"}],name:"upgradeTo",outputs:[],payable:false,stateMutability:"nonpayable",type:"function"},{constant:false,inputs:[{internalType:"address",name:"newImplementation",type:"address"},{internalType:"bytes",name:"data",type:"bytes"}],name:"upgradeToAndCall",outputs:[],payable:true,stateMutability:"payable",type:"function"}]
}
},
actions: [
{
type: Email,
attributes: {
subject: "Changed",
body: "New Body",
to: [
]
}
},
{
type: Webhook,
attributes: {
uri: "http://yo.bar"
}
}
]
}) {
UUID
}
}
{
"data": {
"updateTransactionsTrigger": {
"UUID": "d52bc720-f096-496b-a307-692ea9c87acc"
}
}
}
Query
Result
mutation {
updateEventsTrigger(input: {
UUID: "1cbfd7f3-9448-4fd2-88a3-091678f9f68b",
name: "New name",
statement: {
contract: {
address:"0x398ec7346dcd622edc5ae82352f02be94c62d119",
abi: [{anonymous:false,inputs:[{indexed:false,internalType:"address",name:"previousAdmin",type:"address"},{indexed:false,internalType:"address",name:"newAdmin",type:"address"}],name:"AdminChanged",type:"event"},{anonymous:false,inputs:[{indexed:true,internalType:"address",name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{payable:true,stateMutability:"payable",type:"fallback"},{constant:false,inputs:[],name:"admin",outputs:[{internalType:"address",name:"",type:"address"}],payable:false,stateMutability:"nonpayable",type:"function"},{constant:false,inputs:[{internalType:"address",name:"newAdmin",type:"address"}],name:"changeAdmin",outputs:[],payable:false,stateMutability:"nonpayable",type:"function"},{constant:false,inputs:[],name:"implementation",outputs:[{internalType:"address",name:"",type:"address"}],payable:false,stateMutability:"nonpayable",type:"function"},{constant:false,inputs:[{internalType:"address",name:"_logic",type:"address"},{internalType:"address",name:"_admin",type:"address"},{internalType:"bytes",name:"_data",type:"bytes"}],name:"initialize",outputs:[],payable:true,stateMutability:"payable",type:"function"},{constant:false,inputs:[{internalType:"address",name:"_logic",type:"address"},{internalType:"bytes",name:"_data",type:"bytes"}],name:"initialize",outputs:[],payable:true,stateMutability:"payable",type:"function"},{constant:false,inputs:[{internalType:"address",name:"newImplementation",type:"address"}],name:"upgradeTo",outputs:[],payable:false,stateMutability:"nonpayable",type:"function"},{constant:false,inputs:[{internalType:"address",name:"newImplementation",type:"address"},{internalType:"bytes",name:"data",type:"bytes"}],name:"upgradeToAndCall",outputs:[],payable:true,stateMutability:"payable",type:"function"}]}
filters: [{
#use the proper event type (follow the schema for further details)
type:CheckEventEmitted,
method: {
name:"AdminChanged"
}
}]
},
actions: [
{
type: Email,
attributes: {
subject: "Changed",
body: "New Body",
to: [
]
}
},
{
type: Twitter,
attributes: {
status: "New Message",
token: "$TwitterToken",
secret: "$TwitterSecret"
}
}
]
}) {
UUID
}
}
{
"data": {
"updateEventsTrigger": {
"UUID": "1cbfd7f3-9448-4fd2-88a3-091678f9f68b"
}
}
}
Query
Result
mutation {
updateContractsTrigger(input: {
UUID:"0ff665cc-457a-4954-a623-4c777c30ac71",
name: "Trigger updated",
statement: {
contract: {
address: "0xdAC17F958D2ee523a2206206994597C13D831ec7",
abi: [{anonymous:false,inputs:[{indexed:false,internalType:"address",name:"previousAdmin",type:"address"},{indexed:false,internalType:"address",name:"newAdmin",type:"address"}],name:"AdminChanged",type:"event"},{anonymous:false,inputs:[{indexed:true,internalType:"address",name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{payable:true,stateMutability:"payable",type:"fallback"},{constant:false,inputs:[],name:"admin",outputs:[{internalType:"address",name:"",type:"address"}],payable:false,stateMutability:"nonpayable",type:"function"},{constant:false,inputs:[{internalType:"address",name:"newAdmin",type:"address"}],name:"changeAdmin",outputs:[],payable:false,stateMutability:"nonpayable",type:"function"},{constant:false,inputs:[],name:"implementation",outputs:[{internalType:"address",name:"",type:"address"}],payable:false,stateMutability:"nonpayable",type:"function"},{constant:false,inputs:[{internalType:"address",name:"_logic",type:"address"},{internalType:"address",name:"_admin",type:"address"},{internalType:"bytes",name:"_data",type:"bytes"}],name:"initialize",outputs:[],payable:true,stateMutability:"payable",type:"function"},{constant:false,inputs:[{internalType:"address",name:"_logic",type:"address"},{internalType:"bytes",name:"_data",type:"bytes"}],name:"initialize",outputs:[],payable:true,stateMutability:"payable",type:"function"},{constant:false,inputs:[{internalType:"address",name:"newImplementation",type:"address"}],name:"upgradeTo",outputs:[],payable:false,stateMutability:"nonpayable",type:"function"},{constant:false,inputs:[{internalType:"address",name:"newImplementation",type:"address"},{internalType:"bytes",name:"data",type:"bytes"}],name:"upgradeToAndCall",outputs:[],payable:true,stateMutability:"payable",type:"function"}]
},
method: {
name: "balanceOf"
}
inputs: [
{
type: "address",
name: "who",
value: "0x04fa0d235c4abf4bcf4787af4cf447de572ef828"
}
],
outputFilters: [
{
parameter: {
internalType: "uint256",
name: "returnAmount",
type: "uint256"
},
returnIndex: 0,
condition: {
attribute: "9000",
predicate: BiggerThan
}
}
]
},
actions: [
{
type: Email,
attributes: {
subject: "Changed",
body: "New Body",
to: [
]
}
}
]
}) {
UUID
}
}
{
"data": {
"updateContractsTrigger": {
"UUID": "0ff665cc-457a-4954-a623-4c777c30ac71"
}
}
}
Query
Result
mutation {
updateTriggerStatus(input: {UUID: "d52bc720-f096-496b-a307-692ea9c87acc", isActive: false}) {
UUID
isActive
}
}
{
"data": {
"updateTriggerStatus": {
"UUID": "d52bc720-f096-496b-a307-692ea9c87acc",
"isActive": false
}
}
}
Last modified 2yr ago