From 7d6e2b6e156b4d3067a49bbb369751671f91f312 Mon Sep 17 00:00:00 2001 From: jxom <7336481+jxom@users.noreply.github.com> Date: Wed, 30 Sep 2026 23:13:16 +0000 Subject: [PATCH] feat(tempo): add burnAt token role Co-authored-by: decofe <256792747+decofe@users.noreply.github.com> --- .changeset/tempo-burn-at-role.md | 5 +++++ src/tempo/TokenRole.ts | 5 ++++- 2 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 .changeset/tempo-burn-at-role.md diff --git a/.changeset/tempo-burn-at-role.md b/.changeset/tempo-burn-at-role.md new file mode 100644 index 000000000..9b93ee107 --- /dev/null +++ b/.changeset/tempo-burn-at-role.md @@ -0,0 +1,5 @@ +--- +"ox": patch +--- + +Added the TIP-1006 `burnAt` role (`BURN_AT_ROLE`) to `TokenRole`. diff --git a/src/tempo/TokenRole.ts b/src/tempo/TokenRole.ts index fe702593e..54dcd4385 100644 --- a/src/tempo/TokenRole.ts +++ b/src/tempo/TokenRole.ts @@ -7,6 +7,7 @@ export const roles = [ 'unpause', 'issuer', 'burnBlocked', + 'burnAt', ] as const export type TokenRole = (typeof roles)[number] @@ -16,13 +17,15 @@ export const toPreHashed = { unpause: 'UNPAUSE_ROLE', issuer: 'ISSUER_ROLE', burnBlocked: 'BURN_BLOCKED_ROLE', + burnAt: 'BURN_AT_ROLE', } as const satisfies Record /** * Serializes a token role to its keccak256 hash representation. * * TIP-20 includes a built-in RBAC system with roles like `ISSUER_ROLE` (mint/burn), - * `PAUSE_ROLE`/`UNPAUSE_ROLE` (emergency controls), and `BURN_BLOCKED_ROLE` (compliance). + * `PAUSE_ROLE`/`UNPAUSE_ROLE` (emergency controls), `BURN_BLOCKED_ROLE` (compliance), and + * `BURN_AT_ROLE` (burn from any unprotected account, T12+). * * [TIP-20 RBAC](https://docs.tempo.xyz/protocol/tip20/overview#role-based-access-control-rbac) *