openttt 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +391 -0
- package/dist/adaptive_switch.d.ts +44 -0
- package/dist/adaptive_switch.js +108 -0
- package/dist/auto_mint.d.ts +45 -0
- package/dist/auto_mint.js +244 -0
- package/dist/dynamic_fee.d.ts +64 -0
- package/dist/dynamic_fee.js +203 -0
- package/dist/errors.d.ts +45 -0
- package/dist/errors.js +74 -0
- package/dist/evm_connector.d.ts +88 -0
- package/dist/evm_connector.js +297 -0
- package/dist/golay.d.ts +6 -0
- package/dist/golay.js +166 -0
- package/dist/grg_forward.d.ts +6 -0
- package/dist/grg_forward.js +59 -0
- package/dist/grg_inverse.d.ts +7 -0
- package/dist/grg_inverse.js +97 -0
- package/dist/grg_pipeline.d.ts +13 -0
- package/dist/grg_pipeline.js +64 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.js +38 -0
- package/dist/logger.d.ts +18 -0
- package/dist/logger.js +51 -0
- package/dist/networks.d.ts +13 -0
- package/dist/networks.js +23 -0
- package/dist/pool_registry.d.ts +58 -0
- package/dist/pool_registry.js +129 -0
- package/dist/protocol_fee.d.ts +56 -0
- package/dist/protocol_fee.js +176 -0
- package/dist/reed_solomon.d.ts +12 -0
- package/dist/reed_solomon.js +179 -0
- package/dist/signer.d.ts +76 -0
- package/dist/signer.js +329 -0
- package/dist/time_synthesis.d.ts +49 -0
- package/dist/time_synthesis.js +372 -0
- package/dist/ttt_builder.d.ts +32 -0
- package/dist/ttt_builder.js +84 -0
- package/dist/ttt_client.d.ts +118 -0
- package/dist/ttt_client.js +352 -0
- package/dist/types.d.ts +141 -0
- package/dist/types.js +9 -0
- package/dist/v4_hook.d.ts +43 -0
- package/dist/v4_hook.js +115 -0
- package/dist/x402_enforcer.d.ts +29 -0
- package/dist/x402_enforcer.js +67 -0
- package/package.json +51 -0
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// sdk/src/x402_enforcer.ts — x402 Micropayment Enforcer (Expanded)
|
|
3
|
+
// Governs TTT tick consumption and on-chain settlement.
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.X402Enforcer = void 0;
|
|
6
|
+
const logger_1 = require("./logger");
|
|
7
|
+
const TIER_MAP = {
|
|
8
|
+
0: "T0_epoch",
|
|
9
|
+
1: "T1_block",
|
|
10
|
+
2: "T2_slot",
|
|
11
|
+
3: "T3_micro"
|
|
12
|
+
};
|
|
13
|
+
class X402Enforcer {
|
|
14
|
+
static async getCost(feeEngine, tier) {
|
|
15
|
+
const tierKey = TIER_MAP[tier] || "T0_epoch";
|
|
16
|
+
const feeCalc = await feeEngine.calculateMintFee(tierKey);
|
|
17
|
+
return feeCalc.tttAmount;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Deducts TTT ticks from local balance and determines Adaptive Mode.
|
|
21
|
+
*/
|
|
22
|
+
static async deductTick(feeEngine, swap, balance, tier, mode) {
|
|
23
|
+
const cost = await this.getCost(feeEngine, tier);
|
|
24
|
+
if (balance < cost) {
|
|
25
|
+
throw new Error(`[x402] Insufficient TTT ticks for user ${swap.user}. Required: ${cost}, Have: ${balance}.`);
|
|
26
|
+
}
|
|
27
|
+
const newBalance = balance - cost;
|
|
28
|
+
logger_1.logger.info(`[x402] Deducted ${cost} ticks for swap. User: ${swap.user}, New Balance: ${newBalance}`);
|
|
29
|
+
return {
|
|
30
|
+
success: true,
|
|
31
|
+
remaining: newBalance,
|
|
32
|
+
mode
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Executes on-chain TTT burn via EVMConnector.
|
|
37
|
+
*/
|
|
38
|
+
static async deductOnChain(connector, feeEngine, swap, grgHash, tier, feeCollector, burnFeeCalc, signature, nonce, deadline) {
|
|
39
|
+
logger_1.logger.info(`[x402] Enforcing on-chain settlement for user ${swap.user}...`);
|
|
40
|
+
const cost = await this.getCost(feeEngine, tier);
|
|
41
|
+
try {
|
|
42
|
+
const receipt = await connector.burnTTT(cost, grgHash, tier);
|
|
43
|
+
// Collect protocol burn fee if feeCollector and required params are provided
|
|
44
|
+
if (feeCollector && burnFeeCalc && signature && nonce !== undefined && deadline !== undefined) {
|
|
45
|
+
try {
|
|
46
|
+
await feeCollector.collectBurnFee(burnFeeCalc, signature, swap.user, nonce, deadline);
|
|
47
|
+
}
|
|
48
|
+
catch (feeError) {
|
|
49
|
+
logger_1.logger.error(`[x402] Burn fee collection failed but burn was successful: ${feeError instanceof Error ? feeError.message : feeError}`);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return receipt.hash;
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
logger_1.logger.error(`[x402] On-chain enforcement failed: ${error instanceof Error ? error.message : error}`);
|
|
56
|
+
throw error;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Static validation rule.
|
|
61
|
+
*/
|
|
62
|
+
static async enforcePool(feeEngine, swap, tttBalance, tier) {
|
|
63
|
+
const cost = await this.getCost(feeEngine, tier);
|
|
64
|
+
return tttBalance >= cost;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
exports.X402Enforcer = X402Enforcer;
|
package/package.json
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "openttt",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "OpenTTT — TLS-grade transaction ordering for DeFi. Time + Logic + Sync.",
|
|
5
|
+
"license": "BSL-1.1",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "https://github.com/Helm-Protocol/OpenTTT"
|
|
9
|
+
},
|
|
10
|
+
"keywords": [
|
|
11
|
+
"mev",
|
|
12
|
+
"defi",
|
|
13
|
+
"ttt",
|
|
14
|
+
"proof-of-time",
|
|
15
|
+
"transaction-ordering",
|
|
16
|
+
"grg",
|
|
17
|
+
"base",
|
|
18
|
+
"ethereum"
|
|
19
|
+
],
|
|
20
|
+
"main": "dist/index.js",
|
|
21
|
+
"types": "dist/index.d.ts",
|
|
22
|
+
"exports": {
|
|
23
|
+
".": {
|
|
24
|
+
"types": "./dist/index.d.ts",
|
|
25
|
+
"import": "./dist/index.js",
|
|
26
|
+
"require": "./dist/index.js"
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
"files": [
|
|
30
|
+
"dist",
|
|
31
|
+
"README.md"
|
|
32
|
+
],
|
|
33
|
+
"scripts": {
|
|
34
|
+
"build": "tsc",
|
|
35
|
+
"test": "jest"
|
|
36
|
+
},
|
|
37
|
+
"dependencies": {
|
|
38
|
+
"@privy-io/server-auth": "^1.32.5",
|
|
39
|
+
"@turnkey/api-key-stamper": "^0.6.2",
|
|
40
|
+
"@turnkey/ethers": "^1.3.25",
|
|
41
|
+
"buffer": "^6.0.3",
|
|
42
|
+
"ethers": "^6.10.0"
|
|
43
|
+
},
|
|
44
|
+
"devDependencies": {
|
|
45
|
+
"@types/jest": "^29.5.12",
|
|
46
|
+
"@types/node": "^20.11.19",
|
|
47
|
+
"jest": "^29.7.0",
|
|
48
|
+
"ts-jest": "^29.1.2",
|
|
49
|
+
"typescript": "^5.3.3"
|
|
50
|
+
}
|
|
51
|
+
}
|