access-control.role-granted.retracted
A role grant was retracted because a reorg invalidated the source log.
A role grant was retracted because a reorg invalidated the source log.
Delivery contract
| Field | Value |
|---|---|
| Event type | access-control.role-granted.retracted |
| Version | 1 |
| Lifecycle state | retracted |
| Counter-signed receipts | No event-specific advice |
| SDK type | Webhook.AccessControlRoleGrantedRetractedV1 |
This row gives advice only. DALP waits for a counter-signed receipt only if the webhook endpoint's counterSignedReceipts value is true when DALP queues the delivery. When the value is false, a normal 2xx response completes the delivery.
Related references:
idxr_access_control_role_member
Payload schema
{
"type": "object",
"properties": {
"accessManagerAddress": {
"type": "string"
},
"accountAddress": {
"type": "string"
},
"blockNumber": {
"type": "string"
},
"chainId": {
"type": "integer",
"exclusiveMinimum": 0
},
"roleId": {
"type": "string"
},
"sender": {
"type": "string"
},
"systemAddress": {
"type": "string"
},
"transactionHash": {
"type": "string"
},
"supersedes": {
"type": "string",
"pattern": "^evt_[a-zA-Z0-9]+$"
},
"reorgBlockNumber": {
"type": "integer",
"minimum": 0
}
},
"required": [
"accessManagerAddress",
"accountAddress",
"blockNumber",
"chainId",
"roleId",
"sender",
"systemAddress",
"transactionHash",
"supersedes",
"reorgBlockNumber"
],
"additionalProperties": false
}TypeScript SDK example
import { verifyWebhook } from "@settlemint/dalp-sdk/verify-webhook";
import type { Webhook } from "@settlemint/dalp-sdk";
const result = await verifyWebhook({
rawBody,
headers,
secret: process.env.DALP_WEBHOOK_SECRET!,
});
if (!result.ok) {
throw new Error(`Webhook verification failed: ${result.code}`);
}
if (result.event.type === "access-control.role-granted.retracted") {
const event: Webhook.Event<"access-control.role-granted.retracted"> = result.event;
console.log(event.payload);
}curl example
curl -X POST https://consumer.example.com/dalp/webhooks \
-H "content-type: application/json" \
-H "webhook-id: evt_f75478b0541d4c964efd02272330e326" \
-H "webhook-timestamp: 1778112000" \
-H "webhook-signature: v1,docs-example-signature" \
--data '{"evt_id":"evt_f75478b0541d4c964efd02272330e326","lifecycle_state":"retracted","supersedes":"evt_rolegranted001","payload":{"accessManagerAddress":"0x1111111111111111111111111111111111111111","accountAddress":"0x2222222222222222222222222222222222222222","blockNumber":"18445201","chainId":537001,"roleId":"0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","sender":"0x3333333333333333333333333333333333333333","systemAddress":"0x4444444444444444444444444444444444444444","transactionHash":"0xbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb","supersedes":"evt_rolegranted001","reorgBlockNumber":18445201},"related":{"idxr_access_control_role_member":"idxr_access_control_role_member_example"},"type":"access-control.role-granted.retracted","version":1,"request":{"idempotency_key":"idem_01JZP7R5W8M9N0P1Q2R3S4T5"}}'Version history
v1: Initial registry entry foraccess-control.role-granted.retracted.
Deprecation
This event type is not deprecated.
Manifest
The machine-readable AsyncAPI entry is published in the DALP events manifest.
access-control.role-granted.provisional
A role was granted on the access-control manager; the grant is provisional until the indexer reaches the configured reorg depth.
access-control.role-revoked.provisional
A role was revoked on the access-control manager; the revocation is provisional until the indexer reaches the configured reorg depth.