Update
How to update an existing trigger via GraphQL
Update is a mutation that allows you to update triggers and returns data from the updated trigger.
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:
Update requires passing every field and argument and will delete them otherwise
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)
Available update mutations
In HAL the following update mutations are available:
Mutations Name | Scope |
| To update a TransactionsTrigger |
| To update an EventsTrigger |
| To update a ContractsTrigger |
| To update a trigger status from active to inactive or viceversa |
Examples
Update a TransactionsTrigger
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: [
"newmail@hal.xyz"
]
}
},
{
type: Webhook,
attributes: {
uri: "http://yo.bar"
}
}
]
}) {
UUID
}
}
{
"data": {
"updateTransactionsTrigger": {
"UUID": "d52bc720-f096-496b-a307-692ea9c87acc"
}
}
}
Update an EventsTrigger
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: [
"newmail@hal.xyz"
]
}
},
{
type: Twitter,
attributes: {
status: "New Message",
token: "$TwitterToken",
secret: "$TwitterSecret"
}
}
]
}) {
UUID
}
}
{
"data": {
"updateEventsTrigger": {
"UUID": "1cbfd7f3-9448-4fd2-88a3-091678f9f68b"
}
}
}
Update a ContractsTrigger
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: [
"newmail@hal.xyz"
]
}
}
]
}) {
UUID
}
}
{
"data": {
"updateContractsTrigger": {
"UUID": "0ff665cc-457a-4954-a623-4c777c30ac71"
}
}
}
Update a trigger status
mutation {
updateTriggerStatus(input: {UUID: "d52bc720-f096-496b-a307-692ea9c87acc", isActive: false}) {
UUID
isActive
}
}
{
"data": {
"updateTriggerStatus": {
"UUID": "d52bc720-f096-496b-a307-692ea9c87acc",
"isActive": false
}
}
}
Last updated