Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
69 commits
Select commit Hold shift + click to select a range
46e292f
feat(types): export BuildParams and Operation from root index
Miracle656 Mar 26, 2026
dccc7d0
feat(escrow): implement createEscrowAccount() with starting balance c…
Jonniie Mar 26, 2026
f8bbec7
feat: implement createEscrowAccount() with idempotency check
gracekenn Mar 26, 2026
22c2e40
feat: implement createEscrowAccount() function
gracekenn Mar 26, 2026
13d8e1f
[SDK · Account management] Implement generateKeypair()
EbukaMoses Mar 27, 2026
b6e67fb
[SDK · Account management] Implement generateKeypair()
EbukaMoses Mar 27, 2026
297499c
Merge pull request #99 from Jonniie/feature/escrow-create-account
amina69 Mar 27, 2026
5ea17cd
Fix CI lint and type-check issues
EbukaMoses Mar 27, 2026
23bffe8
Merge branch 'develop' into account_mgt
amina69 Mar 27, 2026
15ee75b
Merge pull request #101 from EbukaMoses/account_mgt
amina69 Mar 27, 2026
309abd3
Your commit message here for fundTestnetAccount
EbukaMoses Mar 27, 2026
1701a35
Your commit message here for fundTestnetAccount
EbukaMoses Mar 27, 2026
01db36e
Merge branch 'develop' into fundTestnetAccount
EbukaMoses Mar 27, 2026
0cb19ac
Implement strict isValidAmount validation for Stellar amount strings.
Junirezz Mar 26, 2026
0628bbd
Update changelog for isValidAmount validator.
Junirezz Mar 27, 2026
311b30e
feat(escrow): implement lockCustodyFunds with validation, hashing, an…
sexyexecutor Mar 27, 2026
dee9d8e
chore: update CHANGELOG for lockCustodyFunds
sexyexecutor Mar 27, 2026
7ef6e1b
Merge branch 'develop' into isValidSecretKey
EbukaMoses Mar 28, 2026
d4a6a55
fix: resolve npm audit vulnerabilities (brace-expansion, handlebars)
sexyexecutor Mar 28, 2026
05b596f
feat(transactions): implement fetchTransactionOnce to monitor transac…
Spagero763 Mar 28, 2026
8b2d129
Merge pull request #108 from codewithzubair07/feature/lock-custody-funds
amina69 Mar 28, 2026
25a7bf6
feat: implement isValidPublicKey validator using Stellar SDK
OSEH-svg Mar 27, 2026
0168566
fix(tests/deps): update dummy keys and resolve audit issues
OSEH-svg Mar 28, 2026
bd1a541
Merge branch 'develop' into isValidSecretKey
EbukaMoses Mar 28, 2026
2c270bc
Merge branch 'develop' into fundTestnetAccount
EbukaMoses Mar 28, 2026
500fbca
Merge branch 'develop' into fix/51-sdk-account-management-implement-i…
Junirezz Mar 28, 2026
2de1eda
fix: remove unused data variable and FriendbotResult import
EbukaMoses Mar 28, 2026
ecf4223
fix: remove Config dependency and Console Ninja injection from test
EbukaMoses Mar 28, 2026
2ff4b1c
fix: patch handlebars and brace-expansion vulnerabilities
EbukaMoses Mar 28, 2026
7c5acb3
Merge branch 'develop' into account_mgt
EbukaMoses Mar 28, 2026
f5203e9
chore(deps): fix vulnerabilities via npm audit fix
Spagero763 Mar 28, 2026
b179539
Merge pull request #131 from EbukaMoses/account_mgt
amina69 Mar 28, 2026
9919403
Merge branch 'develop' into feat/isValidPublicKey
amina69 Mar 28, 2026
d852ae5
Merge pull request #113 from OSEH-svg/feat/isValidPublicKey
amina69 Mar 28, 2026
6baeb50
Merge branch 'develop' into fundTestnetAccount
amina69 Mar 28, 2026
3d9168f
Merge pull request #103 from EbukaMoses/fundTestnetAccount
amina69 Mar 28, 2026
aab2bb5
Merge branch 'develop' into isValidSecretKey
amina69 Mar 28, 2026
f737342
Merge branch 'develop' into feat/monitor-transaction
Spagero763 Mar 28, 2026
3b31d6e
fix: implement EscrowManager with dependency-injected lifecycle deleg…
Yusufolosun Mar 29, 2026
713f850
feat(types): add LockFundsParams and LockResult types for custody fun…
Miracle656 Mar 29, 2026
41f1c6d
fix: resolve merge conflict in src/index.ts with upstream/develop
Miracle656 Mar 29, 2026
10cb52e
Merge pull request #127 from Spagero763/feat/monitor-transaction
amina69 Mar 29, 2026
8ab7349
Merge branch 'develop' into feature/sdk-escrow-lifecycle-implement-es…
amina69 Mar 29, 2026
a1ae576
Merge branch 'develop' into feature/issue-33-lock-funds-types
amina69 Mar 29, 2026
6690fbd
Merge pull request #139 from Miracle656/feature/issue-33-lock-funds-t…
amina69 Mar 29, 2026
7135207
Merge branch 'develop' into feature/sdk-escrow-lifecycle-implement-es…
amina69 Mar 29, 2026
97da689
Merge pull request #138 from Yusufolosun/feature/sdk-escrow-lifecycle…
amina69 Mar 29, 2026
17cb851
fix: implement handleDispute signer modification
Yusufolosun Mar 29, 2026
d826095
Merge pull request #137 from Yusufolosun/fix/handle-dispute-signer-mo…
amina69 Mar 29, 2026
d4ac81e
Merge branch 'develop' into isValidSecretKey
amina69 Mar 29, 2026
7cdb1e3
Merge pull request #104 from EbukaMoses/isValidSecretKey
amina69 Mar 29, 2026
06d2f13
Merge branch 'develop' into fix/51-sdk-account-management-implement-i…
Junirezz Mar 29, 2026
9a08951
Merge develop into createEscrowAccount branch
gracekenn Mar 29, 2026
aec8d1d
Merge develop into feature/escrow-idempotency-check
gracekenn Mar 29, 2026
b9594a4
Merge pull request #89 from gracekenn/feature/escrow-idempotency-check
amina69 Mar 29, 2026
2bf99b4
Merge branch 'develop' into createEscrowAccount
gracekenn Mar 29, 2026
aa0f580
fix: implement buildSetOptionsOp helper for transaction builders
Yusufolosun Mar 30, 2026
e1cded9
Merge branch 'develop' into fix/51-sdk-account-management-implement-i…
Junirezz Mar 30, 2026
c49619f
Merge pull request #86 from Junirezz/fix/51-sdk-account-management-im…
amina69 Mar 30, 2026
205b008
Merge branch 'develop' into createEscrowAccount
amina69 Mar 30, 2026
3846e37
Merge pull request #90 from gracekenn/createEscrowAccount
amina69 Mar 30, 2026
106c4d7
Merge branch 'develop' into fix/sdk-transaction-builders-build-set-op…
amina69 Mar 30, 2026
6536602
Merge pull request #143 from Yusufolosun/fix/sdk-transaction-builders…
amina69 Mar 30, 2026
885c065
doc
samad13 Mar 30, 2026
8410922
clean
samad13 Mar 30, 2026
b4c0406
Merge branch 'develop' into feature/documentation
amina69 Mar 30, 2026
590afc4
Merge pull request #159 from samad13/feature/documentation
amina69 Mar 30, 2026
a8c7799
Merge branch 'main' into feature/clean-up
amina69 Mar 30, 2026
b00da22
Merge branch 'develop' into feature/clean-up
amina69 Mar 30, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .eslintrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"extends": ["eslint:recommended", "plugin:@typescript-eslint/recommended"],
"parserOptions": { "ecmaVersion": 2020, "sourceType": "module" },
"rules": {
"no-console": ["warn", { "allow": ["warn", "error"] }],
"no-console": ["warn", { "allow": ["warn", "error", "log"] }],
"@typescript-eslint/no-unused-vars": ["error", { "argsIgnorePattern": "^_" }]
},
"env": { "node": true, "es2020": true },
Expand Down
19 changes: 19 additions & 0 deletions Changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,14 @@

## [Unreleased]

### Fixed
- Implemented `handleDispute()` escrow lifecycle step to move escrow to platform-only signer mode by submitting signer and threshold updates, then verifying the account config via follow-up Horizon fetch (`src/escrow/index.ts`)

### Added
- `isValidAmount()` validator: validates positive Stellar amount strings with up to 7 decimal places and rejects scientific notation (`src/utils/validation.ts`)
- `EscrowManager` class with dependency-injected escrow lifecycle methods: `createAccount`, `lockFunds`, `releaseFunds`, `handleDispute`, `getBalance`, and `getStatus` (`src/escrow/index.ts`)
- Consistent escrow manager error wrapping for non-SDK errors using `ESCROW_MANAGER_ERROR` (`src/escrow/index.ts`)
- Unit tests for escrow manager instantiation and method delegation (`tests/unit/escrow/escrowManager.test.ts`)
- `getMinimumReserve()` utility to calculate the minimum XLM balance required for an account based on signers, offers, and trustlines (`src/accounts/keypair.ts`)
- `Percentage` branded type: compile-time guarantee that a number is validated to [0, 100] (`src/types/escrow.ts`)
- `asPercentage()` runtime guard: validates and casts a number to `Percentage`, throws `RangeError` on NaN, Infinity, or out-of-range values (`src/types/escrow.ts`)
Expand All @@ -25,5 +32,17 @@
- Logger class in src/utils/logger.ts with redaction, log levels, and JSON output
- Unit tests for logger redaction and log level filtering
- GitHub Actions CI workflow: lint, unit tests, build, security audit, npm publish on tag


### Added
- `lockCustodyFunds()` implementation for escrow lifecycle:
- Validates custodian, owner, platform public keys, deposit amount, and duration
- Computes deterministic `conditionsHash` using SHA-256
- Calculates `unlockDate` based on duration
- Builds and submits Stellar transaction to create escrow account
- Sets multi-sig signers (custodian, owner, platform)
- Encodes conditionsHash in transaction memo
- Returns `LockResult` with unlockDate, conditionsHash, escrowPublicKey, and transactionHash
- Unit tests for `lockCustodyFunds()` including happy path, validation errors, deterministic hashing, unlock date, and edge cases
<!-- sdk-ci.yml -->
<!-- also create develop branch -->
Loading
Loading