feat: Deploy Soroban project TTL refresh operator script and runbook - #1
Open
anuoluwaponiorimi wants to merge 27 commits into
Open
feat: Deploy Soroban project TTL refresh operator script and runbook#1anuoluwaponiorimi wants to merge 27 commits into
anuoluwaponiorimi wants to merge 27 commits into
Conversation
Bumps [@tailwindcss/postcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss) from 4.2.1 to 4.3.0. - [Release notes](https://github.com/tailwindlabs/tailwindcss/releases) - [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md) - [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.3.0/packages/@tailwindcss-postcss) --- updated-dependencies: - dependency-name: "@tailwindcss/postcss" dependency-version: 4.3.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 8.57.0 to 8.60.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.60.0/packages/eslint-plugin) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-version: 8.60.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [@stellar/stellar-sdk](https://github.com/stellar/js-stellar-sdk) from 14.6.1 to 15.1.0. - [Release notes](https://github.com/stellar/js-stellar-sdk/releases) - [Changelog](https://github.com/stellar/js-stellar-sdk/blob/master/CHANGELOG.md) - [Commits](stellar/js-stellar-sdk@v14.6.1...v15.1.0) --- updated-dependencies: - dependency-name: "@stellar/stellar-sdk" dependency-version: 15.1.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 6. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](actions/checkout@v4...v6) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
…lows with automated retry reporting
…ocs — closes Split-Naira#401 Split-Naira#377 Split-Naira#368 Split-Naira#361 Security hardening implementation for Wave 5 execution track (issue Split-Naira#401): contracts/lib.rs: - Add self-transfer guard in withdraw_unallocated: reject when to == env.current_contract_address() to prevent permanently locking unallocated token balances inside the contract (audit finding SH-01). contracts/errors.rs: - Add InvalidRecipient = 17 error variant for the new guard. docs/SECURITY_HARDENING_WAVE5.md (new): - Full audit findings table (SH-01 to SH-05) with severity and status. - Implementation plan with before/after code snippets. - Test coverage requirements with example regression test. - Operational impact analysis (additive-only, zero state migration). - Step-by-step rollback procedure linking to existing upgrade runbook. Closes Split-Naira#401 Closes Split-Naira#377 Closes Split-Naira#368 Closes Split-Naira#361
…#361 - scripts/smoke-testnet.mjs: Node.js script that exercises the full create_project → deposit → distribute lifecycle against the live testnet contract and verifies claimed basis-point amounts. Uses env vars for keys (STELLAR_SECRET_KEY, CONTRACT_ID) — no secrets are ever committed. - .github/workflows/smoke-testnet.yml: manual-dispatch GitHub Actions job that runs the smoke script against any supplied contract ID, using STELLAR_TESTNET_SECRET_KEY from the 'testnet' GitHub Environment. - docs/contract-release-and-upgrade-runbook.md: expanded section 6 with full usage instructions for the automated script and the CI workflow, plus manual fallback steps. - package.json: added 'smoke:testnet' script alias. Closes Split-Naira#361
- Add comprehensive TTL refresh operator script (scripts/refresh-project-ttl.mjs) - Supports single project, multiple projects, and bulk refresh operations - Includes dry-run mode for safe testing - Robust error handling and retry logic - Detailed progress reporting and validation - Configurable via environment variables - Add detailed operational runbook (docs/runbooks/ttl-refresh-operations.md) - Complete TTL management procedures and best practices - Troubleshooting guide and recovery procedures - Cost considerations and optimization strategies - Security guidelines and monitoring recommendations - Update package.json with new refresh:project-ttl script - Update runbooks README to include TTL refresh operations Closes Split-Naira#363, Split-Naira#357, Split-Naira#323, Split-Naira#324
…tracts-deploy-batch feat: batch delivery for ops production readiness, contracts observability, and UX timeouts
…ility-for-API-client-and-transaction-flows feat: implement Sentry observability for API client and transaction flows with automated retry reporting
…377-368-361 security(contracts): Wave 5 hardening — self-transfer guard, smoke test + audit docs
…-wave5-mainnet-launch feat(contracts): Wave 5 execution track - safety, event emission, and…
PostgreSQL readiness and connection pooling for production
Docker Compose full stack (Postgres + backend + frontend)
…d_yarn/frontend/stellar/stellar-sdk-15.1.0 chore(deps): bump @stellar/stellar-sdk from 14.6.1 to 15.1.0 in /frontend
…_actions/actions/checkout-6 chore(deps): bump actions/checkout from 4 to 6
…d_yarn/frontend/tailwindcss/postcss-4.3.0 chore(deps-dev): bump @tailwindcss/postcss from 4.2.1 to 4.3.0 in /frontend
Bumps [@eslint/js](https://github.com/eslint/eslint/tree/HEAD/packages/js) from 9.39.4 to 10.0.1. - [Release notes](https://github.com/eslint/eslint/releases) - [Commits](https://github.com/eslint/eslint/commits/v10.0.1/packages/js) --- updated-dependencies: - dependency-name: "@eslint/js" dependency-version: 10.0.1 dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
…d_yarn/frontend/eslint/js-10.0.1 chore(deps-dev): bump @eslint/js from 9.39.4 to 10.0.1 in /frontend
…d_yarn/frontend/typescript-eslint/eslint-plugin-8.60.0 chore(deps-dev): bump @typescript-eslint/eslint-plugin from 8.57.0 to 8.60.0 in /frontend
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR implements a comprehensive TTL (Time-To-Live) refresh operator script and operational runbook for the SplitNaira smart contract, enabling operators to maintain project storage and prevent data expiration.
Implementation Details
🔧 TTL Refresh Operator Script (
scripts/refresh-project-ttl.mjs)Key Features:
Usage Examples:
📚 Operational Runbook (
docs/runbooks/ttl-refresh-operations.md)Comprehensive Coverage:
🔄 Contract Integration
The script leverages the existing
refresh_project_storagefunction in the SplitNaira contract:Testing
✅ Contract Tests: All 63 existing tests pass
✅ Script Validation: Help, argument parsing, and error handling verified
✅ Build Process: Contract compilation and type generation successful
✅ Integration: Script properly integrates with existing project structure
Configuration
Required Environment Variables:
CONTRACT_ID: SplitNaira contract addressOPERATOR_SECRET_KEY: Secret key for transaction signingOptional Configuration:
SOROBAN_RPC_URL: RPC endpoint (defaults to testnet)SOROBAN_NETWORK_PASSPHRASE: Network passphraseSIMULATOR_ACCOUNT: Account for simulationSecurity Considerations
Operational Impact
Benefits:
Cost Considerations:
Future Enhancements
The runbook outlines potential improvements:
Related Issues
Closes Split-Naira#363 - Deploy Soroban project TTL refresh operator script and runbook
Closes Split-Naira#357 - Related TTL management requirements
Closes Split-Naira#323 - Operational tooling improvements
Closes Split-Naira#324 - Documentation and runbook updates
Checklist
Ready for Review: This implementation provides a production-ready TTL management solution with comprehensive documentation and operational procedures.