@andrewkimjoseph/celina-sdk 0.7.0 → 0.7.2
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 +21 -8
- package/build/analytics/mcp-tool-events.js +1 -0
- package/build/analytics/mcp-tool-events.js.map +1 -1
- package/build/services/gooddollar.service.d.ts +25 -0
- package/build/services/gooddollar.service.js +94 -43
- package/build/services/gooddollar.service.js.map +1 -1
- package/build/tools/domains/gooddollar.js +51 -0
- package/build/tools/domains/gooddollar.js.map +1 -1
- package/build/tools/types.d.ts +8 -0
- package/build/utils/gooddollar-ubi-period.d.ts +23 -0
- package/build/utils/gooddollar-ubi-period.js +23 -0
- package/build/utils/gooddollar-ubi-period.js.map +1 -0
- package/package.json +1 -1
- package/tests/catalog/domains/defi.ts +44 -0
package/README.md
CHANGED
|
@@ -16,7 +16,7 @@ Celina is layered from chain logic through agent tooling:
|
|
|
16
16
|
|-------|---------|------|
|
|
17
17
|
| **SDK** | `@andrewkimjoseph/celina-sdk` | Reads, gas estimates, `prepare*` flows, Carbon REST + SDK hybrid |
|
|
18
18
|
| **MCP** | `@andrewkimjoseph/celina-mcp` | MCP tools for Cursor / Claude / LM Studio — stdio writes or hosted reads + Carbon prepare |
|
|
19
|
-
| **MCP host** | `celina-mcp-host` | Vercel Streamable HTTP — hosted reads + Carbon prepare (
|
|
19
|
+
| **MCP host** | `celina-mcp-host` | Vercel Streamable HTTP — hosted reads + Carbon prepare (75 tools); no server-key writes or `execute_carbon_*` |
|
|
20
20
|
|
|
21
21
|
This repo is the **SDK**. Downstream packages depend on published npm semver (no local `file:` links in production).
|
|
22
22
|
|
|
@@ -42,7 +42,7 @@ For MCP servers and chat APIs (Vercel AI SDK, etc.), import shared tool definiti
|
|
|
42
42
|
- [Prepared flows](docs/concepts/prepared-flows.md) — `SerializedPreparedFlow`, CELINA calldata tag
|
|
43
43
|
- [wagmi integration](https://andrewkimjoseph.gitbook.io/celina-sdk/guides/wagmi-integration)
|
|
44
44
|
- [Carbon DeFi on Celo](docs/guides/carbon.md) — hybrid REST + `@bancor/carbon-sdk` (25 operations)
|
|
45
|
-
- [GoodDollar
|
|
45
|
+
- [GoodDollar](docs/guides/gooddollar.md) — UBI whitelist/claim and G$ ↔ USDm reserve swaps
|
|
46
46
|
- [Self Agent ID](docs/guides/self-agent-id.md) — verify, register, refresh human-backed agents
|
|
47
47
|
- [Telemetry](docs/guides/telemetry.md) — optional Amplitude read metrics (`CELINA_ANALYTICS_DISABLED=1`)
|
|
48
48
|
- [API reference](https://andrewkimjoseph.gitbook.io/celina-sdk/api-reference)
|
|
@@ -78,6 +78,16 @@ const prepared = await celina.carbon.prepareLimitOrder({
|
|
|
78
78
|
// GoodDollar UBI (reads + unsigned claim)
|
|
79
79
|
const eligibility = await celina.gooddollar.getUbiClaimEligibility("0xYourAddress");
|
|
80
80
|
const ubiFlow = await celina.gooddollar.prepareClaimUbi("0xYourAddress");
|
|
81
|
+
|
|
82
|
+
// GoodDollar reserve (G$ ↔ USDm — bonding curve, not Uniswap)
|
|
83
|
+
const reserveQuote = await celina.gooddollar.getReserveQuote("GoodDollar", "USDm", "1000");
|
|
84
|
+
// reserveQuote.protocol === "gooddollar_reserve"
|
|
85
|
+
const reserveFlow = await celina.gooddollar.prepareReserveSwap(
|
|
86
|
+
"0xFrom",
|
|
87
|
+
"GoodDollar",
|
|
88
|
+
"USDm",
|
|
89
|
+
"1000",
|
|
90
|
+
);
|
|
81
91
|
```
|
|
82
92
|
|
|
83
93
|
## Prepared flows and calldata tagging
|
|
@@ -101,7 +111,7 @@ Hybrid **Carbon REST** (`https://mcp.carbondefi.xyz`) plus **`@bancor/carbon-sdk
|
|
|
101
111
|
- **`deep_link`** on prepare responses — Carbon REST trade/disposable UI URL (reference only; signing is via your wallet flow).
|
|
102
112
|
- **`carbonActivityDeepLink(wallet)`** — post-execution activity explorer on [celo.carbondefi.xyz](https://celo.carbondefi.xyz).
|
|
103
113
|
|
|
104
|
-
Set `CARBON_API_BASE_URL` to override the REST base. Hosted MCP exposes **
|
|
114
|
+
Set `CARBON_API_BASE_URL` to override the REST base. Hosted MCP exposes **75 tools** (reads + Carbon prepare); `execute_carbon_*` and server-key writes require local stdio with `CELO_PRIVATE_KEY`.
|
|
105
115
|
|
|
106
116
|
### MCP session wallet (not in the SDK)
|
|
107
117
|
|
|
@@ -109,21 +119,23 @@ Local **celina-mcp** with `CELO_PRIVATE_KEY` can omit wallet params on many tool
|
|
|
109
119
|
|
|
110
120
|
Full workflow: [Carbon DeFi guide](docs/guides/carbon.md).
|
|
111
121
|
|
|
112
|
-
## GoodDollar
|
|
122
|
+
## GoodDollar
|
|
113
123
|
|
|
114
|
-
Identity whitelist reads, daily entitlement
|
|
124
|
+
Identity whitelist reads, daily UBI entitlement, unsigned UBI claim, and **G$ ↔ USDm reserve swaps** via the on-chain MentoBroker bonding curve.
|
|
115
125
|
|
|
116
126
|
| Reads | Prepare |
|
|
117
127
|
|-------|---------|
|
|
118
|
-
| `getWhitelistingInfo`, `getUbiClaimEligibility` | `prepareClaimUbi` |
|
|
128
|
+
| `getWhitelistingInfo`, `getUbiClaimEligibility`, `getReserveQuote` | `prepareClaimUbi`, `prepareReserveSwap` |
|
|
129
|
+
|
|
130
|
+
For **G$ ↔ USDm**, use `getReserveQuote` / `prepareReserveSwap` (or aggregated `getSwapQuoteWithFallback` from `@andrewkimjoseph/celina-sdk/tools`) — not Uniswap. For other G$ pairs (e.g. G$ → USDT), Uniswap v4 remains the AMM fallback.
|
|
119
131
|
|
|
120
|
-
MCP: `get_gooddollar_whitelisting_info`, `get_gooddollar_ubi_entitlement`
|
|
132
|
+
MCP: `get_gooddollar_whitelisting_info`, `get_gooddollar_ubi_entitlement`, `get_gooddollar_reserve_quote`, `estimate_gooddollar_reserve_swap`, `execute_gooddollar_reserve_swap` (stdio write with server key); `claim_daily_gooddollar_ubi` (stdio UBI write). Browser apps: `prepareClaimUbi`, `prepareReserveSwap`, or `prepare_swap` + wagmi.
|
|
121
133
|
|
|
122
134
|
[GoodDollar guide](docs/guides/gooddollar.md)
|
|
123
135
|
|
|
124
136
|
## Related packages
|
|
125
137
|
|
|
126
|
-
- [`@andrewkimjoseph/celina-mcp`](https://www.npmjs.com/package/@andrewkimjoseph/celina-mcp) `@0.8.
|
|
138
|
+
- [`@andrewkimjoseph/celina-mcp`](https://www.npmjs.com/package/@andrewkimjoseph/celina-mcp) `@0.8.13` — MCP server (`get_wallet_address`, optional address on wallet-scoped tools; 88 tools stdio, 75 hosted)
|
|
127
139
|
- [`celina-mcp-host`](../celina-mcp-host/) — Vercel-hosted MCP endpoint (`https://mcp.usecelina.xyz/api/mcp`) — reads + Carbon prepare
|
|
128
140
|
- [`@selfxyz/agent-sdk`](https://www.npmjs.com/package/@selfxyz/agent-sdk) — Self Agent ID browser flows
|
|
129
141
|
|
|
@@ -131,6 +143,7 @@ MCP: `get_gooddollar_whitelisting_info`, `get_gooddollar_ubi_entitlement` (read)
|
|
|
131
143
|
|
|
132
144
|
- [x] Mento FX routing (`getFxQuote`, `estimateFx`, `prepareFx`)
|
|
133
145
|
- [x] Uniswap v4 swaps (`getSwapQuote`, `estimateSwap`, `prepareSwap`)
|
|
146
|
+
- [x] GoodDollar reserve swaps (`getReserveQuote`, `prepareReserveSwap`) — G$ ↔ USDm via MentoBroker
|
|
134
147
|
- [x] Aave lending tools (`prepareSupply`, `prepareWithdraw`) — USDT, WETH, USDm, USDC, CELO, EURm
|
|
135
148
|
- [x] Self proof verification (`verifySelfAgent`, `verifySelfRequest`, ai.self.xyz)
|
|
136
149
|
- [x] Self Agent ID (`lookupSelfAgent`, registration & lifecycle tools)
|
|
@@ -25,6 +25,7 @@ export const MCP_TOOL_EVENT_BY_SDK_METHOD = {
|
|
|
25
25
|
"contract.callFunction": "call_contract_function",
|
|
26
26
|
"contract.estimateGas": "estimate_contract_gas",
|
|
27
27
|
"ens.resolveEns": "resolve_ens",
|
|
28
|
+
"gooddollar.estimateReserveSwap.sell": "estimate_gooddollar_reserve_swap",
|
|
28
29
|
"gooddollar.getReserveQuote.buy": "get_gooddollar_reserve_quote",
|
|
29
30
|
"gooddollar.getReserveQuote.sell": "get_gooddollar_reserve_quote",
|
|
30
31
|
"gooddollar.getUbiClaimEligibility": "get_gooddollar_ubi_entitlement",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-tool-events.js","sourceRoot":"","sources":["../../src/analytics/mcp-tool-events.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAqC;IAC5E,oBAAoB,EAAE,aAAa;IACnC,0BAA0B,EAAE,oBAAoB;IAChD,qBAAqB,EAAE,WAAW;IAClC,qCAAqC,EAAE,WAAW;IAClD,4BAA4B,EAAE,mBAAmB;IACjD,6BAA6B,EAAE,oBAAoB;IACnD,2BAA2B,EAAE,iBAAiB;IAC9C,oBAAoB,EAAE,qBAAqB;IAC3C,0BAA0B,EAAE,2BAA2B;IACvD,oBAAoB,EAAE,qBAAqB;IAC3C,wBAAwB,EAAE,0BAA0B;IACpD,yBAAyB,EAAE,2BAA2B;IACtD,sBAAsB,EAAE,uBAAuB;IAC/C,oBAAoB,EAAE,qBAAqB;IAC3C,sBAAsB,EAAE,wBAAwB;IAChD,aAAa,EAAE,aAAa;IAC5B,cAAc,EAAE,cAAc;IAC9B,qBAAqB,EAAE,sBAAsB;IAC7C,yBAAyB,EAAE,0BAA0B;IACrD,uBAAuB,EAAE,wBAAwB;IACjD,sBAAsB,EAAE,uBAAuB;IAC/C,gBAAgB,EAAE,aAAa;IAC/B,gCAAgC,EAAE,8BAA8B;IAChE,iCAAiC,EAAE,8BAA8B;IACjE,mCAAmC,EAAE,gCAAgC;IACrE,gCAAgC,EAAE,kCAAkC;IACpE,mCAAmC,EAAE,0BAA0B;IAC/D,+BAA+B,EAAE,sBAAsB;IACvD,oBAAoB,EAAE,mBAAmB;IACzC,oBAAoB,EAAE,oBAAoB;IAC1C,mBAAmB,EAAE,iBAAiB;IACtC,gBAAgB,EAAE,cAAc;IAChC,6BAA6B,EAAE,0BAA0B;IACzD,4BAA4B,EAAE,yBAAyB;IACvD,sBAAsB,EAAE,mBAAmB;IAC3C,sBAAsB,EAAE,mBAAmB;IAC3C,sBAAsB,EAAE,mBAAmB;IAC3C,sBAAsB,EAAE,mBAAmB;IAC3C,wBAAwB,EAAE,qBAAqB;IAC/C,8BAA8B,EAAE,wBAAwB;IACxD,4BAA4B,EAAE,sBAAsB;IACpD,6BAA6B,EAAE,wBAAwB;IACvD,kCAAkC,EAAE,6BAA6B;IACjE,4BAA4B,EAAE,sBAAsB;IACpD,mBAAmB,EAAE,mBAAmB;IACxC,6BAA6B,EAAE,yBAAyB;IACxD,uBAAuB,EAAE,mBAAmB;IAC5C,oBAAoB,EAAE,gBAAgB;IACtC,0BAA0B,EAAE,eAAe;IAC3C,iCAAiC,EAAE,sBAAsB;IACzD,2BAA2B,EAAE,kBAAkB;IAC/C,sBAAsB,EAAE,uBAAuB;IAC/C,sBAAsB,EAAE,mBAAmB;CACnC,CAAC"}
|
|
1
|
+
{"version":3,"file":"mcp-tool-events.js","sourceRoot":"","sources":["../../src/analytics/mcp-tool-events.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAqC;IAC5E,oBAAoB,EAAE,aAAa;IACnC,0BAA0B,EAAE,oBAAoB;IAChD,qBAAqB,EAAE,WAAW;IAClC,qCAAqC,EAAE,WAAW;IAClD,4BAA4B,EAAE,mBAAmB;IACjD,6BAA6B,EAAE,oBAAoB;IACnD,2BAA2B,EAAE,iBAAiB;IAC9C,oBAAoB,EAAE,qBAAqB;IAC3C,0BAA0B,EAAE,2BAA2B;IACvD,oBAAoB,EAAE,qBAAqB;IAC3C,wBAAwB,EAAE,0BAA0B;IACpD,yBAAyB,EAAE,2BAA2B;IACtD,sBAAsB,EAAE,uBAAuB;IAC/C,oBAAoB,EAAE,qBAAqB;IAC3C,sBAAsB,EAAE,wBAAwB;IAChD,aAAa,EAAE,aAAa;IAC5B,cAAc,EAAE,cAAc;IAC9B,qBAAqB,EAAE,sBAAsB;IAC7C,yBAAyB,EAAE,0BAA0B;IACrD,uBAAuB,EAAE,wBAAwB;IACjD,sBAAsB,EAAE,uBAAuB;IAC/C,gBAAgB,EAAE,aAAa;IAC/B,qCAAqC,EAAE,kCAAkC;IACzE,gCAAgC,EAAE,8BAA8B;IAChE,iCAAiC,EAAE,8BAA8B;IACjE,mCAAmC,EAAE,gCAAgC;IACrE,gCAAgC,EAAE,kCAAkC;IACpE,mCAAmC,EAAE,0BAA0B;IAC/D,+BAA+B,EAAE,sBAAsB;IACvD,oBAAoB,EAAE,mBAAmB;IACzC,oBAAoB,EAAE,oBAAoB;IAC1C,mBAAmB,EAAE,iBAAiB;IACtC,gBAAgB,EAAE,cAAc;IAChC,6BAA6B,EAAE,0BAA0B;IACzD,4BAA4B,EAAE,yBAAyB;IACvD,sBAAsB,EAAE,mBAAmB;IAC3C,sBAAsB,EAAE,mBAAmB;IAC3C,sBAAsB,EAAE,mBAAmB;IAC3C,sBAAsB,EAAE,mBAAmB;IAC3C,wBAAwB,EAAE,qBAAqB;IAC/C,8BAA8B,EAAE,wBAAwB;IACxD,4BAA4B,EAAE,sBAAsB;IACpD,6BAA6B,EAAE,wBAAwB;IACvD,kCAAkC,EAAE,6BAA6B;IACjE,4BAA4B,EAAE,sBAAsB;IACpD,mBAAmB,EAAE,mBAAmB;IACxC,6BAA6B,EAAE,yBAAyB;IACxD,uBAAuB,EAAE,mBAAmB;IAC5C,oBAAoB,EAAE,gBAAgB;IACtC,0BAA0B,EAAE,eAAe;IAC3C,iCAAiC,EAAE,sBAAsB;IACzD,2BAA2B,EAAE,kBAAkB;IAC/C,sBAAsB,EAAE,uBAAuB;IAC/C,sBAAsB,EAAE,mBAAmB;CACnC,CAAC"}
|
|
@@ -113,6 +113,31 @@ export declare class GoodDollarService {
|
|
|
113
113
|
exchangeId: "0xba77f5c7bb3317643c6d81d1ef3f9913561741d92095f88efa402faf2cbe9124";
|
|
114
114
|
}>;
|
|
115
115
|
private buildReserveSwap;
|
|
116
|
+
private buildReserveApprovalData;
|
|
117
|
+
private estimateReserveSwapGas;
|
|
118
|
+
/**
|
|
119
|
+
* Simulate gas for a GoodDollar reserve swap from `from`, including approval if needed.
|
|
120
|
+
*/
|
|
121
|
+
estimateReserveSwap(from: `0x${string}`, tokenIn: string, tokenOut: string, amount: string, params?: GoodDollarReserveSwapParams): Promise<{
|
|
122
|
+
from: `0x${string}`;
|
|
123
|
+
recipient: `0x${string}`;
|
|
124
|
+
amountOutMin: string;
|
|
125
|
+
approvalNeeded: boolean;
|
|
126
|
+
approvalGas: string | undefined;
|
|
127
|
+
swapGas: string;
|
|
128
|
+
totalGas: string;
|
|
129
|
+
slippageTolerance: number;
|
|
130
|
+
protocol: "gooddollar_reserve";
|
|
131
|
+
network: "mainnet";
|
|
132
|
+
tokenIn: string;
|
|
133
|
+
tokenOut: string;
|
|
134
|
+
amountIn: string;
|
|
135
|
+
expectedOut: string;
|
|
136
|
+
routeHops: number;
|
|
137
|
+
broker: "0x88de45906D4F5a57315c133620cfa484cB297541";
|
|
138
|
+
exchangeProvider: "0x2fFBB49055d487DdBBb0C052Cd7c2a02A7971e41";
|
|
139
|
+
exchangeId: "0xba77f5c7bb3317643c6d81d1ef3f9913561741d92095f88efa402faf2cbe9124";
|
|
140
|
+
}>;
|
|
116
141
|
/**
|
|
117
142
|
* Build unsigned GoodDollar reserve swap steps (approve + swapIn when needed).
|
|
118
143
|
*/
|
|
@@ -13,6 +13,7 @@ import { TokenService } from "./token.service.js";
|
|
|
13
13
|
import { formatUnixDate } from "../utils/format-date.js";
|
|
14
14
|
import { formatDuration } from "../utils/format-duration.js";
|
|
15
15
|
import { formatUnixDateTimeUtc, formatUnixIso, } from "../utils/format-unix-datetime.js";
|
|
16
|
+
import { resolveUbiPeriodEligibility } from "../utils/gooddollar-ubi-period.js";
|
|
16
17
|
const SECONDS_PER_DAY = 86400n;
|
|
17
18
|
const G_DOLLAR_DECIMALS = 18;
|
|
18
19
|
const ZERO_ADDRESS = "0x0000000000000000000000000000000000000000";
|
|
@@ -184,7 +185,11 @@ export class GoodDollarService {
|
|
|
184
185
|
const nowSec = BigInt(Math.floor(Date.now() / 1000));
|
|
185
186
|
const schemeStarted = nowSec >= periodStartBn;
|
|
186
187
|
const identityAddress = root !== ZERO_ADDRESS ? root : address;
|
|
187
|
-
|
|
188
|
+
const contractDay = ubiPeriodDay;
|
|
189
|
+
const computedDay = schemeStarted && periodStartBn > 0n
|
|
190
|
+
? (nowSec - periodStartBn) / SECONDS_PER_DAY
|
|
191
|
+
: 0n;
|
|
192
|
+
let claimedForOnChainDay = false;
|
|
188
193
|
let lastClaimedSec = 0n;
|
|
189
194
|
if (root !== ZERO_ADDRESS) {
|
|
190
195
|
const [hasClaimed, lastClaimed] = await Promise.all([
|
|
@@ -201,16 +206,23 @@ export class GoodDollarService {
|
|
|
201
206
|
args: [root],
|
|
202
207
|
}),
|
|
203
208
|
]);
|
|
204
|
-
|
|
209
|
+
claimedForOnChainDay = hasClaimed;
|
|
205
210
|
lastClaimedSec = lastClaimed;
|
|
206
211
|
}
|
|
207
212
|
const whitelistingInfo = await this.getWhitelistingInfo(identityAddress);
|
|
208
|
-
const
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
213
|
+
const periodState = resolveUbiPeriodEligibility({
|
|
214
|
+
contractDay,
|
|
215
|
+
computedDay,
|
|
216
|
+
claimedForOnChainDay,
|
|
217
|
+
hasRoot: root !== ZERO_ADDRESS,
|
|
218
|
+
schemePaused,
|
|
219
|
+
schemeStarted,
|
|
220
|
+
isWhitelisted: whitelistingInfo.isCurrentlyWhitelisted,
|
|
221
|
+
claimable,
|
|
222
|
+
});
|
|
223
|
+
const { alreadyClaimedToday, inClaimCooldown } = periodState;
|
|
224
|
+
const nextClaimAt = periodStartBn + (computedDay + 1n) * SECONDS_PER_DAY;
|
|
225
|
+
const secondsUntilNextClaim = inClaimCooldown && nextClaimAt > nowSec ? nextClaimAt - nowSec : 0n;
|
|
214
226
|
const reasons = [];
|
|
215
227
|
if (schemePaused) {
|
|
216
228
|
reasons.push("scheme paused");
|
|
@@ -239,10 +251,7 @@ export class GoodDollarService {
|
|
|
239
251
|
reasons.push("no entitlement available");
|
|
240
252
|
}
|
|
241
253
|
}
|
|
242
|
-
const isEligibleToClaim =
|
|
243
|
-
!schemePaused &&
|
|
244
|
-
schemeStarted &&
|
|
245
|
-
claimable > 0n;
|
|
254
|
+
const isEligibleToClaim = periodState.isEligibleToClaim;
|
|
246
255
|
const lastClaimedAt = lastClaimedSec > 0n ? formatUnixIso(lastClaimedSec) : null;
|
|
247
256
|
const nextClaimAvailableAt = formatUnixIso(nextClaimAt);
|
|
248
257
|
const nextClaimAvailableIn = formatDuration(secondsUntilNextClaim);
|
|
@@ -426,6 +435,77 @@ export class GoodDollarService {
|
|
|
426
435
|
expectedOutWei,
|
|
427
436
|
amountOutMin,
|
|
428
437
|
swapData,
|
|
438
|
+
slippageTolerance,
|
|
439
|
+
};
|
|
440
|
+
}
|
|
441
|
+
buildReserveApprovalData() {
|
|
442
|
+
return taggedCalldata(encodeFunctionData({
|
|
443
|
+
abi: erc20Abi,
|
|
444
|
+
functionName: "approve",
|
|
445
|
+
args: [GOODDOLLAR_MENTO_BROKER, maxUint256],
|
|
446
|
+
}));
|
|
447
|
+
}
|
|
448
|
+
async estimateReserveSwapGas(client, from, swapData, tokenInAddr, approvalNeeded) {
|
|
449
|
+
const swapEstimateRequest = {
|
|
450
|
+
account: from,
|
|
451
|
+
to: GOODDOLLAR_MENTO_BROKER,
|
|
452
|
+
data: swapData,
|
|
453
|
+
value: 0n,
|
|
454
|
+
};
|
|
455
|
+
if (!approvalNeeded) {
|
|
456
|
+
const gas = await client.estimateGas(swapEstimateRequest);
|
|
457
|
+
return gas.toString();
|
|
458
|
+
}
|
|
459
|
+
for (const mappingSlot of ALLOWANCE_MAPPING_SLOTS) {
|
|
460
|
+
try {
|
|
461
|
+
const gas = await client.estimateGas({
|
|
462
|
+
...swapEstimateRequest,
|
|
463
|
+
stateOverride: erc20AllowanceStateOverride(tokenInAddr, from, GOODDOLLAR_MENTO_BROKER, maxUint256, mappingSlot),
|
|
464
|
+
});
|
|
465
|
+
return gas.toString();
|
|
466
|
+
}
|
|
467
|
+
catch (error) {
|
|
468
|
+
const isLast = mappingSlot === ALLOWANCE_MAPPING_SLOTS.at(-1);
|
|
469
|
+
if (isLast) {
|
|
470
|
+
throw error;
|
|
471
|
+
}
|
|
472
|
+
}
|
|
473
|
+
}
|
|
474
|
+
throw new Error("Could not estimate GoodDollar reserve swap gas: failed to simulate ERC-20 allowance for this token.");
|
|
475
|
+
}
|
|
476
|
+
/**
|
|
477
|
+
* Simulate gas for a GoodDollar reserve swap from `from`, including approval if needed.
|
|
478
|
+
*/
|
|
479
|
+
async estimateReserveSwap(from, tokenIn, tokenOut, amount, params) {
|
|
480
|
+
const built = await this.buildReserveSwap(from, tokenIn, tokenOut, amount, params);
|
|
481
|
+
const { client, resolvedIn, resolvedOut, tokenInAddr, amountInWei, expectedOutWei, amountOutMin, swapData, slippageTolerance, recipient, } = built;
|
|
482
|
+
const allowance = await client.readContract({
|
|
483
|
+
address: tokenInAddr,
|
|
484
|
+
abi: erc20Abi,
|
|
485
|
+
functionName: "allowance",
|
|
486
|
+
args: [from, GOODDOLLAR_MENTO_BROKER],
|
|
487
|
+
});
|
|
488
|
+
const approvalNeeded = allowance < amountInWei;
|
|
489
|
+
const approvalGas = approvalNeeded
|
|
490
|
+
? (await client.estimateGas({
|
|
491
|
+
account: from,
|
|
492
|
+
to: tokenInAddr,
|
|
493
|
+
data: this.buildReserveApprovalData(),
|
|
494
|
+
})).toString()
|
|
495
|
+
: undefined;
|
|
496
|
+
const swapGas = await this.estimateReserveSwapGas(client, from, swapData, tokenInAddr, approvalNeeded);
|
|
497
|
+
const approvalGasBig = approvalGas ? BigInt(approvalGas) : 0n;
|
|
498
|
+
const totalGas = (approvalGasBig + BigInt(swapGas)).toString();
|
|
499
|
+
return {
|
|
500
|
+
...this.baseReserveQuoteFields(resolvedIn, resolvedOut, amount, expectedOutWei),
|
|
501
|
+
from,
|
|
502
|
+
recipient,
|
|
503
|
+
amountOutMin: formatUnits(amountOutMin, resolvedOut.decimals),
|
|
504
|
+
approvalNeeded,
|
|
505
|
+
approvalGas,
|
|
506
|
+
swapGas,
|
|
507
|
+
totalGas,
|
|
508
|
+
slippageTolerance,
|
|
429
509
|
};
|
|
430
510
|
}
|
|
431
511
|
/**
|
|
@@ -447,11 +527,7 @@ export class GoodDollarService {
|
|
|
447
527
|
steps.push({
|
|
448
528
|
kind: "erc20",
|
|
449
529
|
to: tokenInAddr,
|
|
450
|
-
data:
|
|
451
|
-
abi: erc20Abi,
|
|
452
|
-
functionName: "approve",
|
|
453
|
-
args: [GOODDOLLAR_MENTO_BROKER, maxUint256],
|
|
454
|
-
})),
|
|
530
|
+
data: this.buildReserveApprovalData(),
|
|
455
531
|
value: "0",
|
|
456
532
|
description: `Approve ${resolvedIn.symbol} for GoodDollar reserve`,
|
|
457
533
|
});
|
|
@@ -463,32 +539,7 @@ export class GoodDollarService {
|
|
|
463
539
|
value: "0",
|
|
464
540
|
description: `Swap ${displayIn} ${resolvedIn.symbol} → ~${displayOut} ${resolvedOut.symbol} via GoodDollar reserve`,
|
|
465
541
|
});
|
|
466
|
-
|
|
467
|
-
account: from,
|
|
468
|
-
to: GOODDOLLAR_MENTO_BROKER,
|
|
469
|
-
data: swapData,
|
|
470
|
-
value: 0n,
|
|
471
|
-
};
|
|
472
|
-
if (allowance < amountInWei) {
|
|
473
|
-
for (const mappingSlot of ALLOWANCE_MAPPING_SLOTS) {
|
|
474
|
-
try {
|
|
475
|
-
await client.estimateGas({
|
|
476
|
-
...swapEstimateRequest,
|
|
477
|
-
stateOverride: erc20AllowanceStateOverride(tokenInAddr, from, GOODDOLLAR_MENTO_BROKER, maxUint256, mappingSlot),
|
|
478
|
-
});
|
|
479
|
-
break;
|
|
480
|
-
}
|
|
481
|
-
catch (error) {
|
|
482
|
-
const isLast = mappingSlot === ALLOWANCE_MAPPING_SLOTS.at(-1);
|
|
483
|
-
if (isLast) {
|
|
484
|
-
throw error;
|
|
485
|
-
}
|
|
486
|
-
}
|
|
487
|
-
}
|
|
488
|
-
}
|
|
489
|
-
else {
|
|
490
|
-
await client.estimateGas(swapEstimateRequest);
|
|
491
|
-
}
|
|
542
|
+
await this.estimateReserveSwapGas(client, from, swapData, tokenInAddr, allowance < amountInWei);
|
|
492
543
|
const flow = {
|
|
493
544
|
network: "mainnet",
|
|
494
545
|
from,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gooddollar.service.js","sourceRoot":"","sources":["../../src/services/gooddollar.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"gooddollar.service.js","sourceRoot":"","sources":["../../src/services/gooddollar.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,12 @@ const readOnly = {
|
|
|
6
6
|
readOnlyHint: true,
|
|
7
7
|
idempotentHint: true,
|
|
8
8
|
};
|
|
9
|
+
function mapReserveWalletOptions(input) {
|
|
10
|
+
return {
|
|
11
|
+
recipient: input.recipient,
|
|
12
|
+
slippageTolerance: input.slippage_tolerance,
|
|
13
|
+
};
|
|
14
|
+
}
|
|
9
15
|
export const gooddollarToolDefinitions = [
|
|
10
16
|
{
|
|
11
17
|
name: "get_gooddollar_whitelisting_info",
|
|
@@ -83,6 +89,51 @@ export const gooddollarToolDefinitions = [
|
|
|
83
89
|
return runtime.celina.gooddollar.getReserveQuote(normalizeRegistryTokenInput(input.token_in), normalizeRegistryTokenInput(input.token_out), input.amount, from);
|
|
84
90
|
},
|
|
85
91
|
},
|
|
92
|
+
{
|
|
93
|
+
name: "estimate_gooddollar_reserve_swap",
|
|
94
|
+
description: "Estimate gas for a GoodDollar reserve swap (G$ ↔ USDm), including ERC-20 approval when needed.",
|
|
95
|
+
inputSchema: goodDollarReserveWalletSchema,
|
|
96
|
+
families: ["read"],
|
|
97
|
+
surfaces: ["mcp"],
|
|
98
|
+
mcp: {
|
|
99
|
+
title: "Estimate GoodDollar Reserve Swap",
|
|
100
|
+
annotations: readOnly,
|
|
101
|
+
},
|
|
102
|
+
handler: async (runtime, input) => {
|
|
103
|
+
const sender = resolveWalletFromRuntime(runtime, {
|
|
104
|
+
from: input.from,
|
|
105
|
+
});
|
|
106
|
+
const tokenIn = normalizeRegistryTokenInput(input.token_in);
|
|
107
|
+
const tokenOut = normalizeRegistryTokenInput(input.token_out);
|
|
108
|
+
const amount = input.amount;
|
|
109
|
+
const options = mapReserveWalletOptions(input);
|
|
110
|
+
if (runtime.executors?.gooddollarWrite) {
|
|
111
|
+
return runtime.executors.gooddollarWrite.estimateReserveSwap(tokenIn, tokenOut, amount, {
|
|
112
|
+
...options,
|
|
113
|
+
recipient: options.recipient ?? sender,
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
return runtime.celina.gooddollar.estimateReserveSwap(sender, tokenIn, tokenOut, amount, options);
|
|
117
|
+
},
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
name: "execute_gooddollar_reserve_swap",
|
|
121
|
+
description: "Execute a GoodDollar reserve swap (G$ ↔ USDm) on mainnet. Requires CELO_PRIVATE_KEY.",
|
|
122
|
+
inputSchema: goodDollarReserveWalletSchema,
|
|
123
|
+
families: ["execute"],
|
|
124
|
+
surfaces: ["mcp"],
|
|
125
|
+
mcp: {
|
|
126
|
+
title: "Execute GoodDollar Reserve Swap",
|
|
127
|
+
annotations: { destructiveHint: true, openWorldHint: true },
|
|
128
|
+
},
|
|
129
|
+
handler: async (runtime, input) => {
|
|
130
|
+
const write = runtime.executors?.gooddollarWrite;
|
|
131
|
+
if (!write) {
|
|
132
|
+
throw new Error("GoodDollar write executor not configured.");
|
|
133
|
+
}
|
|
134
|
+
return write.executeReserveSwap(normalizeRegistryTokenInput(input.token_in), normalizeRegistryTokenInput(input.token_out), input.amount, mapReserveWalletOptions(input));
|
|
135
|
+
},
|
|
136
|
+
},
|
|
86
137
|
{
|
|
87
138
|
name: "prepare_gooddollar_reserve_swap",
|
|
88
139
|
description: "Prepare unsigned GoodDollar reserve swap for G$ ↔ USDm. User must sign in wallet.",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gooddollar.js","sourceRoot":"","sources":["../../../src/tools/domains/gooddollar.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"gooddollar.js","sourceRoot":"","sources":["../../../src/tools/domains/gooddollar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,4BAA4B,EAC5B,6BAA6B,EAC7B,2BAA2B,GAC5B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,MAAM,QAAQ,GAAG;IACf,YAAY,EAAE,IAAI;IAClB,cAAc,EAAE,IAAI;CACZ,CAAC;AAEX,SAAS,uBAAuB,CAAC,KAA8B;IAC7D,OAAO;QACL,SAAS,EAAE,KAAK,CAAC,SAAsC;QACvD,iBAAiB,EAAE,KAAK,CAAC,kBAAwC;KAClE,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,yBAAyB,GAAqB;IACzD;QACE,IAAI,EAAE,kCAAkC;QACxC,WAAW,EAAE,4DAA4D;QACzE,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,OAAO,EAAE,2BAA2B;SACrC,CAAC;QACF,QAAQ,EAAE,CAAC,MAAM,CAAC;QAClB,GAAG,EAAE,EAAE,KAAK,EAAE,kCAAkC,EAAE,WAAW,EAAE,QAAQ,EAAE;QACzE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;YAChC,MAAM,MAAM,GAAG,wBAAwB,CAAC,OAAO,EAAE;gBAC/C,OAAO,EAAE,KAAK,CAAC,OAA6B;aAC7C,CAAC,CAAC;YACH,OAAO,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAC/D,CAAC;KACF;IACD;QACE,IAAI,EAAE,gCAAgC;QACtC,WAAW,EACT,wFAAwF;QAC1F,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,OAAO,EAAE,2BAA2B;SACrC,CAAC;QACF,QAAQ,EAAE,CAAC,MAAM,CAAC;QAClB,GAAG,EAAE,EAAE,KAAK,EAAE,gCAAgC,EAAE,WAAW,EAAE,QAAQ,EAAE;QACvE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;YAChC,MAAM,MAAM,GAAG,wBAAwB,CAAC,OAAO,EAAE;gBAC/C,OAAO,EAAE,KAAK,CAAC,OAA6B;aAC7C,CAAC,CAAC;YACH,OAAO,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;QAClE,CAAC;KACF;IACD;QACE,IAAI,EAAE,4BAA4B;QAClC,WAAW,EACT,oFAAoF;QACtF,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,QAAQ,EAAE,CAAC,SAAS,CAAC;QACrB,QAAQ,EAAE,CAAC,KAAK,CAAC;QACjB,GAAG,EAAE;YACH,KAAK,EAAE,4BAA4B;YACnC,WAAW,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;SAC5D;QACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YACzB,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,EAAE,eAAe,CAAC;YACjD,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;YAC/D,CAAC;YACD,OAAO,KAAK,CAAC,aAAa,EAAE,CAAC;QAC/B,CAAC;KACF;IACD;QACE,IAAI,EAAE,oCAAoC;QAC1C,WAAW,EACT,wEAAwE;QAC1E,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,IAAI,EAAE,2BAA2B;SAClC,CAAC;QACF,QAAQ,EAAE,CAAC,SAAS,CAAC;QACrB,QAAQ,EAAE,CAAC,SAAS,CAAC;QACrB,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;YAChC,MAAM,MAAM,GAAG,wBAAwB,CAAC,OAAO,EAAE;gBAC/C,IAAI,EAAE,KAAK,CAAC,IAA0B;aACvC,CAAC,CAAC;YACH,OAAO,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAC3D,CAAC;KACF;IACD;QACE,IAAI,EAAE,8BAA8B;QACpC,WAAW,EACT,6EAA6E;QAC/E,WAAW,EAAE,4BAA4B;QACzC,QAAQ,EAAE,CAAC,MAAM,CAAC;QAClB,GAAG,EAAE,EAAE,KAAK,EAAE,8BAA8B,EAAE,WAAW,EAAE,QAAQ,EAAE;QACrE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;YAChC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI;gBACrB,CAAC,CAAC,wBAAwB,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAc,EAAE,CAAC;gBACnE,CAAC,CAAC,SAAS,CAAC;YACd,OAAO,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,eAAe,CAC9C,2BAA2B,CAAC,KAAK,CAAC,QAAkB,CAAC,EACrD,2BAA2B,CAAC,KAAK,CAAC,SAAmB,CAAC,EACtD,KAAK,CAAC,MAAgB,EACtB,IAAI,CACL,CAAC;QACJ,CAAC;KACF;IACD;QACE,IAAI,EAAE,kCAAkC;QACxC,WAAW,EACT,gGAAgG;QAClG,WAAW,EAAE,6BAA6B;QAC1C,QAAQ,EAAE,CAAC,MAAM,CAAC;QAClB,QAAQ,EAAE,CAAC,KAAK,CAAC;QACjB,GAAG,EAAE;YACH,KAAK,EAAE,kCAAkC;YACzC,WAAW,EAAE,QAAQ;SACtB;QACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;YAChC,MAAM,MAAM,GAAG,wBAAwB,CAAC,OAAO,EAAE;gBAC/C,IAAI,EAAE,KAAK,CAAC,IAA0B;aACvC,CAAC,CAAC;YACH,MAAM,OAAO,GAAG,2BAA2B,CAAC,KAAK,CAAC,QAAkB,CAAC,CAAC;YACtE,MAAM,QAAQ,GAAG,2BAA2B,CAAC,KAAK,CAAC,SAAmB,CAAC,CAAC;YACxE,MAAM,MAAM,GAAG,KAAK,CAAC,MAAgB,CAAC;YACtC,MAAM,OAAO,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;YAC/C,IAAI,OAAO,CAAC,SAAS,EAAE,eAAe,EAAE,CAAC;gBACvC,OAAO,OAAO,CAAC,SAAS,CAAC,eAAe,CAAC,mBAAmB,CAC1D,OAAO,EACP,QAAQ,EACR,MAAM,EACN;oBACE,GAAG,OAAO;oBACV,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,MAAM;iBACvC,CACF,CAAC;YACJ,CAAC;YACD,OAAO,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,mBAAmB,CAClD,MAAM,EACN,OAAO,EACP,QAAQ,EACR,MAAM,EACN,OAAO,CACR,CAAC;QACJ,CAAC;KACF;IACD;QACE,IAAI,EAAE,iCAAiC;QACvC,WAAW,EACT,sFAAsF;QACxF,WAAW,EAAE,6BAA6B;QAC1C,QAAQ,EAAE,CAAC,SAAS,CAAC;QACrB,QAAQ,EAAE,CAAC,KAAK,CAAC;QACjB,GAAG,EAAE;YACH,KAAK,EAAE,iCAAiC;YACxC,WAAW,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;SAC5D;QACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;YAChC,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,EAAE,eAAe,CAAC;YACjD,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;YAC/D,CAAC;YACD,OAAO,KAAK,CAAC,kBAAkB,CAC7B,2BAA2B,CAAC,KAAK,CAAC,QAAkB,CAAC,EACrD,2BAA2B,CAAC,KAAK,CAAC,SAAmB,CAAC,EACtD,KAAK,CAAC,MAAgB,EACtB,uBAAuB,CAAC,KAAK,CAAC,CAC/B,CAAC;QACJ,CAAC;KACF;IACD;QACE,IAAI,EAAE,iCAAiC;QACvC,WAAW,EACT,mFAAmF;QACrF,WAAW,EAAE,6BAA6B;QAC1C,QAAQ,EAAE,CAAC,SAAS,CAAC;QACrB,QAAQ,EAAE,CAAC,SAAS,CAAC;QACrB,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;YAChC,MAAM,MAAM,GAAG,wBAAwB,CAAC,OAAO,EAAE;gBAC/C,IAAI,EAAE,KAAK,CAAC,IAA0B;aACvC,CAAC,CAAC;YACH,OAAO,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,kBAAkB,CACjD,MAAM,EACN,2BAA2B,CAAC,KAAK,CAAC,QAAkB,CAAC,EACrD,2BAA2B,CAAC,KAAK,CAAC,SAAmB,CAAC,EACtD,KAAK,CAAC,MAAgB,EACtB;gBACE,SAAS,EAAE,KAAK,CAAC,SAAsC;gBACvD,iBAAiB,EAAE,KAAK,CAAC,kBAAwC;aAClE,CACF,CAAC;QACJ,CAAC;KACF;CACF,CAAC"}
|
package/build/tools/types.d.ts
CHANGED
|
@@ -83,6 +83,14 @@ export type CarbonWriteExecutors = {
|
|
|
83
83
|
};
|
|
84
84
|
export type GoodDollarWriteExecutors = {
|
|
85
85
|
claimDailyUbi: () => Promise<unknown>;
|
|
86
|
+
estimateReserveSwap: (tokenIn: string, tokenOut: string, amount: string, options?: {
|
|
87
|
+
recipient?: `0x${string}`;
|
|
88
|
+
slippageTolerance?: number;
|
|
89
|
+
}) => Promise<unknown>;
|
|
90
|
+
executeReserveSwap: (tokenIn: string, tokenOut: string, amount: string, options?: {
|
|
91
|
+
recipient?: `0x${string}`;
|
|
92
|
+
slippageTolerance?: number;
|
|
93
|
+
}) => Promise<unknown>;
|
|
86
94
|
};
|
|
87
95
|
export type SelfExecutors = {
|
|
88
96
|
verifyAgent: (args: Record<string, unknown>) => Promise<unknown>;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/** Inputs for UBISchemeV2 period/cooldown eligibility (mirrors on-chain claim()). */
|
|
2
|
+
export type UbiPeriodEligibilityInput = {
|
|
3
|
+
contractDay: bigint;
|
|
4
|
+
computedDay: bigint;
|
|
5
|
+
claimedForOnChainDay: boolean;
|
|
6
|
+
hasRoot: boolean;
|
|
7
|
+
schemePaused: boolean;
|
|
8
|
+
schemeStarted: boolean;
|
|
9
|
+
isWhitelisted: boolean;
|
|
10
|
+
claimable: bigint;
|
|
11
|
+
};
|
|
12
|
+
export type UbiPeriodEligibilityState = {
|
|
13
|
+
awaitingContractDayRoll: boolean;
|
|
14
|
+
alreadyClaimedToday: boolean;
|
|
15
|
+
inClaimCooldown: boolean;
|
|
16
|
+
isEligibleToClaim: boolean;
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Resolve UBI claim eligibility from period day and on-chain hasClaimed.
|
|
20
|
+
* Between UTC noon and the first claim that calls setDay(), computedDay exceeds
|
|
21
|
+
* contractDay while hasClaimed still reflects the previous on-chain day.
|
|
22
|
+
*/
|
|
23
|
+
export declare function resolveUbiPeriodEligibility(input: UbiPeriodEligibilityInput): UbiPeriodEligibilityState;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolve UBI claim eligibility from period day and on-chain hasClaimed.
|
|
3
|
+
* Between UTC noon and the first claim that calls setDay(), computedDay exceeds
|
|
4
|
+
* contractDay while hasClaimed still reflects the previous on-chain day.
|
|
5
|
+
*/
|
|
6
|
+
export function resolveUbiPeriodEligibility(input) {
|
|
7
|
+
const awaitingContractDayRoll = input.computedDay > input.contractDay;
|
|
8
|
+
const alreadyClaimedToday = input.claimedForOnChainDay && !awaitingContractDayRoll;
|
|
9
|
+
const inClaimCooldown = input.hasRoot && alreadyClaimedToday;
|
|
10
|
+
const isEligibleToClaim = input.hasRoot &&
|
|
11
|
+
!input.schemePaused &&
|
|
12
|
+
input.schemeStarted &&
|
|
13
|
+
input.isWhitelisted &&
|
|
14
|
+
!inClaimCooldown &&
|
|
15
|
+
(input.claimable > 0n || awaitingContractDayRoll);
|
|
16
|
+
return {
|
|
17
|
+
awaitingContractDayRoll,
|
|
18
|
+
alreadyClaimedToday,
|
|
19
|
+
inClaimCooldown,
|
|
20
|
+
isEligibleToClaim,
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=gooddollar-ubi-period.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gooddollar-ubi-period.js","sourceRoot":"","sources":["../../src/utils/gooddollar-ubi-period.ts"],"names":[],"mappings":"AAmBA;;;;GAIG;AACH,MAAM,UAAU,2BAA2B,CACzC,KAAgC;IAEhC,MAAM,uBAAuB,GAAG,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;IACtE,MAAM,mBAAmB,GACvB,KAAK,CAAC,oBAAoB,IAAI,CAAC,uBAAuB,CAAC;IACzD,MAAM,eAAe,GAAG,KAAK,CAAC,OAAO,IAAI,mBAAmB,CAAC;IAC7D,MAAM,iBAAiB,GACrB,KAAK,CAAC,OAAO;QACb,CAAC,KAAK,CAAC,YAAY;QACnB,KAAK,CAAC,aAAa;QACnB,KAAK,CAAC,aAAa;QACnB,CAAC,eAAe;QAChB,CAAC,KAAK,CAAC,SAAS,GAAG,EAAE,IAAI,uBAAuB,CAAC,CAAC;IAEpD,OAAO;QACL,uBAAuB;QACvB,mBAAmB;QACnB,eAAe;QACf,iBAAiB;KAClB,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -440,6 +440,50 @@ export const gooddollarOperations: OperationSpec[] = [
|
|
|
440
440
|
}
|
|
441
441
|
},
|
|
442
442
|
},
|
|
443
|
+
{
|
|
444
|
+
id: "gooddollar.estimateReserveSwap.sell",
|
|
445
|
+
domain: "gooddollar",
|
|
446
|
+
layer: "read",
|
|
447
|
+
requiresEnv: ["CELO_PRIVATE_KEY"],
|
|
448
|
+
sdk: {
|
|
449
|
+
invoke: (client, fx) =>
|
|
450
|
+
client.gooddollar.estimateReserveSwap(
|
|
451
|
+
fromAddress(fx),
|
|
452
|
+
"GoodDollar",
|
|
453
|
+
"USDm",
|
|
454
|
+
"1000",
|
|
455
|
+
),
|
|
456
|
+
},
|
|
457
|
+
mcp: {
|
|
458
|
+
tool: "estimate_gooddollar_reserve_swap",
|
|
459
|
+
arguments: () => ({
|
|
460
|
+
token_in: "GoodDollar",
|
|
461
|
+
token_out: "USDm",
|
|
462
|
+
amount: "1000",
|
|
463
|
+
}),
|
|
464
|
+
},
|
|
465
|
+
assert: (result) => {
|
|
466
|
+
assertHasKeys(result, ["expectedOut", "approvalNeeded", "swapGas"]);
|
|
467
|
+
},
|
|
468
|
+
},
|
|
469
|
+
{
|
|
470
|
+
id: "gooddollar.executeReserveSwap.sell",
|
|
471
|
+
domain: "gooddollar",
|
|
472
|
+
layer: "write",
|
|
473
|
+
requiresEnv: ["CELO_PRIVATE_KEY"],
|
|
474
|
+
requiresWrites: true,
|
|
475
|
+
mcp: {
|
|
476
|
+
tool: "execute_gooddollar_reserve_swap",
|
|
477
|
+
arguments: () => ({
|
|
478
|
+
token_in: "GoodDollar",
|
|
479
|
+
token_out: "USDm",
|
|
480
|
+
amount: "1",
|
|
481
|
+
}),
|
|
482
|
+
},
|
|
483
|
+
assert: (result) => {
|
|
484
|
+
assertHasKeys(result, ["hash"]);
|
|
485
|
+
},
|
|
486
|
+
},
|
|
443
487
|
];
|
|
444
488
|
|
|
445
489
|
function parseExpectedOut(value: string | undefined): number {
|