Search
⌃K

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:
  1. 1.
    Update requires passing every field and argument and will delete them otherwise
  2. 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)

Available update mutations

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

Examples

Update a TransactionsTrigger

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"
}
}
}

Update an EventsTrigger

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"
}
}
}

Update a ContractsTrigger

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"
}
}
}

Update a trigger status

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
}
}
}