From 10f69894ed5e08c9acc102436b1275e4875842cb Mon Sep 17 00:00:00 2001 From: Osraka <98612432+Osraka@users.noreply.github.com> Date: Sat, 11 Jul 2026 18:33:50 +0300 Subject: [PATCH] fix(docs): preserve receive policies links --- blogs/t6.md | 10 +++++----- src/lib/docs-routing.test.ts | 10 ++++++++++ vercel.json | 32 ++++++++++++++++++++++++++++++++ vocs.config.ts | 10 ++++++++++ 4 files changed, 57 insertions(+), 5 deletions(-) diff --git a/blogs/t6.md b/blogs/t6.md index 25305e90..390f6988 100644 --- a/blogs/t6.md +++ b/blogs/t6.md @@ -45,11 +45,11 @@ A platform can configure deposit addresses to accept only the stablecoins it sup A regulated business can define which addresses are allowed to send to an account. This gives compliance and operations teams a protocol-native control for inbound payments, rather than relying only on monitoring after funds have already arrived. -Read the [specification](https://tips.sh/1028), [learn more in the docs](/docs/learn/tempo/receive-policies#account-level-receive-policies), and [try the demo](https://tempo.xyz/receive-policies). +Read the [specification](https://tips.sh/1028), [learn more in the docs](/docs/protocol/tip403/receive-policies), and [try the demo](https://tempo.xyz/receive-policies). ## Admin access keys -[Access keys](/docs/protocol/transactions#access-keys) on Tempo let users and applications authorize limited actions. They are useful for subscriptions, delegated payments, automated operations, and other flows where a narrowly scoped key is safer than using the root key directly. +[Access keys](/docs/protocol/transactions/AccountKeychain#access-keys) on Tempo let users and applications authorize limited actions. They are useful for subscriptions, delegated payments, automated operations, and other flows where a narrowly scoped key is safer than using the root key directly. Without admin access keys, key management itself depends on the root key. Admin access keys change that: an account can designate certain access keys as administrators, and those keys can authorize and revoke other keys on the account's behalf. This separates account ownership from day-to-day key administration: @@ -63,7 +63,7 @@ Without admin access keys, key management itself depends on the root key. Admin T6 also gives contracts a canonical way to verify key status. `verifyKeychain` confirms whether a signature came from an active key on an account, and `verifyKeychainAdmin` confirms whether it came from the root key or an admin key. This gives builders an out-of-the-box, safe primitive for authorization instead of requiring every contract to rebuild key-status checks. Note that `verifyKeychainAdmin` does not bind the account into the signed digest, so callers should include a replay domain such as chain ID, contract address, and account address in the message they ask a key to sign. -Read the [specification](https://tips.sh/1049) and [learn more in the docs](/docs/protocol/transactions#access-keys). +Read the [specification](https://tips.sh/1049) and [learn more in the docs](/docs/protocol/transactions/AccountKeychain#access-keys). ## What integrators should know @@ -74,8 +74,8 @@ See the [v1.9.1 release](https://github.com/tempoxyz/tempo/releases/tag/v1.9.1) ## Resources - [T6 upgrade docs](/docs/protocol/upgrades/t6) -- [Receive policies overview](/docs/learn/tempo/receive-policies#account-level-receive-policies) -- [Access keys](/docs/protocol/transactions#access-keys) +- [Receive policies overview](/docs/protocol/tip403/receive-policies) +- [Access keys](/docs/protocol/transactions/AccountKeychain#access-keys) - [Receive policies specification](https://tips.sh/1028) - [Admin access keys specification](https://tips.sh/1049) - [Receive policies demo](https://tempo.xyz/receive-policies) diff --git a/src/lib/docs-routing.test.ts b/src/lib/docs-routing.test.ts index 4a68f3bd..9cfa509a 100644 --- a/src/lib/docs-routing.test.ts +++ b/src/lib/docs-routing.test.ts @@ -85,6 +85,14 @@ describe('docs routing redirects', () => { ['/hosted-services/:path*', 'https://tempo.xyz/developers/docs/api'], ['/learn/partners', 'https://tempo.xyz/developers/docs/partners'], ['/docs/learn/partners', 'https://tempo.xyz/developers/docs/partners'], + [ + '/docs/learn/tempo/receive-policies', + 'https://tempo.xyz/developers/docs/protocol/tip403/receive-policies', + ], + [ + '/learn/tempo/receive-policies', + 'https://tempo.xyz/developers/docs/protocol/tip403/receive-policies', + ], ['/docs/guide/using-tempo-with-ai/partners', 'https://tempo.xyz/developers/docs/partners'], ['/build/partners', 'https://tempo.xyz/developers/docs/partners'], ['/network-upgrades', 'https://tempo.xyz/developers/docs/guide/node/network-upgrades'], @@ -140,6 +148,8 @@ describe('docs routing redirects', () => { ['/developer-tools/indexer', '/docs/api/indexer-api'], ['/hosted-services', '/docs/api'], ['/hosted-services/:path*', '/docs/api'], + ['/docs/learn/tempo/receive-policies', '/docs/protocol/tip403/receive-policies'], + ['/learn/tempo/receive-policies', '/docs/protocol/tip403/receive-policies'], ])('redirects %s to %s', (source, destination) => { expect(findRedirect(source)).toMatchObject({ source, diff --git a/vercel.json b/vercel.json index 68dcc041..69782f4c 100644 --- a/vercel.json +++ b/vercel.json @@ -132,6 +132,28 @@ "destination": "https://tempo.xyz/developers/docs/partners", "permanent": true }, + { + "source": "/docs/learn/tempo/receive-policies", + "has": [ + { + "type": "host", + "value": "docs.tempo.xyz" + } + ], + "destination": "https://tempo.xyz/developers/docs/protocol/tip403/receive-policies", + "permanent": true + }, + { + "source": "/learn/tempo/receive-policies", + "has": [ + { + "type": "host", + "value": "docs.tempo.xyz" + } + ], + "destination": "https://tempo.xyz/developers/docs/protocol/tip403/receive-policies", + "permanent": true + }, { "source": "/docs/guide/using-tempo-with-ai/partners", "has": [ @@ -509,6 +531,16 @@ "destination": "/docs/partners", "permanent": true }, + { + "source": "/docs/learn/tempo/receive-policies", + "destination": "/docs/protocol/tip403/receive-policies", + "permanent": true + }, + { + "source": "/learn/tempo/receive-policies", + "destination": "/docs/protocol/tip403/receive-policies", + "permanent": true + }, { "source": "/docs/guide/using-tempo-with-ai/partners", "destination": "/docs/partners", diff --git a/vocs.config.ts b/vocs.config.ts index f399037f..2c109ae3 100644 --- a/vocs.config.ts +++ b/vocs.config.ts @@ -1300,6 +1300,16 @@ export default defineConfig({ destination: '/docs/partners', status: 301, }, + { + source: '/docs/learn/tempo/receive-policies', + destination: '/docs/protocol/tip403/receive-policies', + status: 301, + }, + { + source: '/learn/tempo/receive-policies', + destination: '/docs/protocol/tip403/receive-policies', + status: 301, + }, { source: '/learn/partners', destination: '/docs/partners',