@ixo/asks-mcp 1.6.0-dev.4 → 1.6.0-dev.5
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/dist/asks-mcp.mjs +30 -12
- package/package.json +1 -1
package/dist/asks-mcp.mjs
CHANGED
|
@@ -7409,6 +7409,16 @@ var init_given = __esm({
|
|
|
7409
7409
|
}
|
|
7410
7410
|
});
|
|
7411
7411
|
|
|
7412
|
+
// ../../packages/openhands-sdk/src/chain/rewardDenom.ts
|
|
7413
|
+
var USDC_MAINNET, rewardDenomFor;
|
|
7414
|
+
var init_rewardDenom = __esm({
|
|
7415
|
+
"../../packages/openhands-sdk/src/chain/rewardDenom.ts"() {
|
|
7416
|
+
"use strict";
|
|
7417
|
+
USDC_MAINNET = "ibc/77C12480BD8C29BF0ACEC2143736C15BAF8CD232CA27BAE09336677B828955E6";
|
|
7418
|
+
rewardDenomFor = (network2, configured) => network2 === "mainnet" && configured?.trim() !== "upay" ? USDC_MAINNET : "upay";
|
|
7419
|
+
}
|
|
7420
|
+
});
|
|
7421
|
+
|
|
7412
7422
|
// ../../packages/openhands-sdk/src/chain/money.ts
|
|
7413
7423
|
var money_exports = {};
|
|
7414
7424
|
__export(money_exports, {
|
|
@@ -7451,12 +7461,12 @@ function orgShortfall(org, reward, fee, held) {
|
|
|
7451
7461
|
const holds = [...need.keys()].map((denom) => `${face(Number(held[denom] ?? 0))} ${symbolOf(denom)}`).join(" and ");
|
|
7452
7462
|
return `${org} needs ${[rewards, reviews].filter(Boolean).join(" and ")}; it holds ${holds}`;
|
|
7453
7463
|
}
|
|
7454
|
-
var
|
|
7464
|
+
var USDC_NOBLE_LEGACY, asRewardDenom, usdcDenom, envDenom, currentNetwork, askDenom, heldDenom, rewardDenom, checkerFeeDenom, symbolOf, MICRO, toBase, isPegged;
|
|
7455
7465
|
var init_money = __esm({
|
|
7456
7466
|
"../../packages/openhands-sdk/src/chain/money.ts"() {
|
|
7457
7467
|
"use strict";
|
|
7458
7468
|
init_given();
|
|
7459
|
-
|
|
7469
|
+
init_rewardDenom();
|
|
7460
7470
|
USDC_NOBLE_LEGACY = "ibc/6BBE9BD4246F8E04948D5A4EEE7164B2630263B9EBB5E7DC5F0A46C62A2FF97B";
|
|
7461
7471
|
asRewardDenom = (_value, network2) => rewardDenom(network2);
|
|
7462
7472
|
usdcDenom = (network2) => network2 === "mainnet" ? USDC_MAINNET : null;
|
|
@@ -7467,7 +7477,7 @@ var init_money = __esm({
|
|
|
7467
7477
|
const env = envDenom();
|
|
7468
7478
|
return env === "upay" || env === USDC_MAINNET ? env : "uixo";
|
|
7469
7479
|
};
|
|
7470
|
-
rewardDenom = (network2) => network2
|
|
7480
|
+
rewardDenom = (network2) => rewardDenomFor(network2, envDenom());
|
|
7471
7481
|
checkerFeeDenom = (_network) => "upay";
|
|
7472
7482
|
symbolOf = (denom) => denom === "upay" ? "PAY" : denom === USDC_MAINNET ? "USDC" : denom === USDC_NOBLE_LEGACY ? "USDC (old)" : "IXO";
|
|
7473
7483
|
MICRO = 1e6;
|
|
@@ -7864,9 +7874,10 @@ function money(base6, denom, viewer) {
|
|
|
7864
7874
|
return { face, local: localOf(exact, viewer), approx: false, title: `${face} in US dollars` };
|
|
7865
7875
|
}
|
|
7866
7876
|
if (denom === "uixo" && viewer.sandbox) return { face: dollarsOfBase(exact), local: null, approx: true, title: "sandbox amount" };
|
|
7877
|
+
if (denom === "uixo") return { face: ixoWords(Number(exact) / 1e6), local: null, approx: false, title: IXO_TITLE };
|
|
7867
7878
|
return null;
|
|
7868
7879
|
}
|
|
7869
|
-
var USDC_MAINNET2, USDC_NOBLE_LEGACY2, DOLLAR_DENOMS, MICRO2, placesFor;
|
|
7880
|
+
var USDC_MAINNET2, USDC_NOBLE_LEGACY2, DOLLAR_DENOMS, MICRO2, placesFor, ixoWords, IXO_TITLE;
|
|
7870
7881
|
var init_money2 = __esm({
|
|
7871
7882
|
"../../packages/openhands-sdk/src/data/money.ts"() {
|
|
7872
7883
|
"use strict";
|
|
@@ -7875,6 +7886,8 @@ var init_money2 = __esm({
|
|
|
7875
7886
|
DOLLAR_DENOMS = /* @__PURE__ */ new Set(["upay", USDC_MAINNET2, USDC_NOBLE_LEGACY2]);
|
|
7876
7887
|
MICRO2 = 1000000n;
|
|
7877
7888
|
placesFor = (value) => value === 0 ? 2 : Math.abs(value) < 1e-4 ? 6 : Math.abs(value) < 1 ? 4 : 2;
|
|
7889
|
+
ixoWords = (value) => `${value.toLocaleString("en-US", { maximumFractionDigits: placesFor(value) })} IXO`;
|
|
7890
|
+
IXO_TITLE = "IXO, the network's own coin, not a dollar coin";
|
|
7878
7891
|
}
|
|
7879
7892
|
});
|
|
7880
7893
|
|
|
@@ -30183,6 +30196,7 @@ function faceOf(amount3, sandbox = envSandbox()) {
|
|
|
30183
30196
|
const { value, symbol: symbol2 } = amount3;
|
|
30184
30197
|
if (PEGGED.has(symbol2)) return { value, prefix: "$", title: `${dollars2(value)} in US dollars`, text: dollars2(value) };
|
|
30185
30198
|
if (symbol2 === "IXO" && sandbox) return { value, prefix: "$", title: "sandbox amount", text: dollars2(value), approx: true };
|
|
30199
|
+
if (symbol2 === "IXO") return { value, title: "IXO, the network's own coin, not a dollar coin", text: `${value.toLocaleString("en-US", { maximumFractionDigits: fractionFor(value) })} IXO` };
|
|
30186
30200
|
return { value, title: "Paid in the network's own coin: the public record has the amount", text: UNFACED2, unfaced: true };
|
|
30187
30201
|
}
|
|
30188
30202
|
function approvalAmount(payments) {
|
|
@@ -261292,7 +261306,7 @@ function prepareAsk(poster, entityDid, adminAccount, terms, now3 = Date.now(), s
|
|
|
261292
261306
|
const checkReward = terms.checker && terms.checkRewardUixo ? BigInt(terms.checkRewardUixo) : 0n;
|
|
261293
261307
|
const spots = BigInt(Math.max(1, terms.quota));
|
|
261294
261308
|
const denom = terms.denom ?? askDenom();
|
|
261295
|
-
if (denom === "upay" && !offChain && network() === "mainnet") throw new Error("PAY is not a reward coin on mainnet: post the reward in USDC");
|
|
261309
|
+
if (denom === "upay" && !offChain && network() === "mainnet" && askDenom() !== "upay") throw new Error("PAY is not a reward coin on mainnet: post the reward in USDC");
|
|
261296
261310
|
const feeDenom = terms.feeDenom ?? checkerFeeDenom(network());
|
|
261297
261311
|
const rewardEscrow = offChain ? 0n : BigInt(terms.amountUixo) * spots;
|
|
261298
261312
|
const feeEscrow = checkReward * spots;
|
|
@@ -262045,7 +262059,7 @@ function assertAskShape(ask) {
|
|
|
262045
262059
|
const campaignAsk = typeof ask.terms?.campaign === "string";
|
|
262046
262060
|
const asky = askyChecker(network());
|
|
262047
262061
|
const askyReview = ask.terms?.call?.kind === "review" && asky !== null && asky.fee.denom === "upay" && ask.checker === asky.address;
|
|
262048
|
-
if (network() === "mainnet" && !ask.payoutTerms && !campaignAsk && !askyReview && (ask.denom ?? askDenom()) === "upay") throw new Error(PAY_NOT_A_REWARD);
|
|
262062
|
+
if (network() === "mainnet" && !ask.payoutTerms && !campaignAsk && !askyReview && askDenom() !== "upay" && (ask.denom ?? askDenom()) === "upay") throw new Error(PAY_NOT_A_REWARD);
|
|
262049
262063
|
if (ask.payoutTerms) {
|
|
262050
262064
|
if (!ask.org) throw new Error("payout terms need the organisation (org) whose facilitator pays them");
|
|
262051
262065
|
if (ask.amountUixo !== 0) throw new Error("an ask paid off chain carries nothing on chain: amountUixo must be 0, or the worker is paid twice");
|
|
@@ -264462,7 +264476,7 @@ var init_call2 = __esm({
|
|
|
264462
264476
|
isTxFailed = (error54) => error54 instanceof Error && error54.name === "TxFailed";
|
|
264463
264477
|
tagOf = (draft) => callTag(draft.slug);
|
|
264464
264478
|
TESTNET_CALL_DEFAULTS = {
|
|
264465
|
-
/* The sandbox's reward coin is test PAY (build sheet P5); read for one release, the network decides (`
|
|
264479
|
+
/* The sandbox's reward coin is test PAY (build sheet P5); read for one release, the network decides (`rewardDenomFor`). */
|
|
264466
264480
|
NEXT_PUBLIC_ASK_DENOM: "upay",
|
|
264467
264481
|
NEXT_PUBLIC_CHECKER_ADDRESS: "ixo175rlze3q6gap5ddxzc6m92u2ahw7a9h8n4uksq",
|
|
264468
264482
|
NEXT_PUBLIC_GRANTER_ADDRESS: "ixo1rknlkm29zs2cd8m8y2c6ahmh2jald8swy9g7rn",
|
|
@@ -292021,7 +292035,7 @@ import { randomBytes as randomBytes7 } from "node:crypto";
|
|
|
292021
292035
|
// package.json
|
|
292022
292036
|
var package_default = {
|
|
292023
292037
|
name: "@ixo/asks-mcp",
|
|
292024
|
-
version: "1.6.0-dev.
|
|
292038
|
+
version: "1.6.0-dev.5",
|
|
292025
292039
|
description: "The Openhands Network MCP server: read the board, answer asks, post work and get paid on the ixo chain, with a key of its own on your machine.",
|
|
292026
292040
|
license: "Apache-2.0",
|
|
292027
292041
|
repository: {
|
|
@@ -292530,7 +292544,7 @@ init_networks();
|
|
|
292530
292544
|
init_env();
|
|
292531
292545
|
init_net();
|
|
292532
292546
|
init_given();
|
|
292533
|
-
|
|
292547
|
+
init_rewardDenom();
|
|
292534
292548
|
|
|
292535
292549
|
// ../../packages/openhands-sdk/src/data/plans.ts
|
|
292536
292550
|
var plansEnabled = () => typeof process !== "undefined" && process.env.NEXT_PUBLIC_PLANS_ENABLED === "1";
|
|
@@ -292538,7 +292552,9 @@ var plansEnabled = () => typeof process !== "undefined" && process.env.NEXT_PUBL
|
|
|
292538
292552
|
// src/config.ts
|
|
292539
292553
|
var siteOf = () => (ownEnv().OPENHANDS_SITE || originOf(currentNetwork2())).replace(/\/$/, "");
|
|
292540
292554
|
var expertSiteOf = () => proOrigin(siteOf());
|
|
292541
|
-
|
|
292555
|
+
function adoptAskDenom(facts) {
|
|
292556
|
+
adopt({ askDenom: facts.askDenom });
|
|
292557
|
+
}
|
|
292542
292558
|
var CLAIM_FORM_ENV = ["NEXT_PUBLIC_VCT_ENTITY_DID", "NEXT_PUBLIC_VCT_PROOF", "NEXT_PUBLIC_VCT_URL"];
|
|
292543
292559
|
function claimFormIn(env) {
|
|
292544
292560
|
const [entity, proof, url4] = CLAIM_FORM_ENV.map((name8) => env[name8]?.trim() || "");
|
|
@@ -292562,7 +292578,7 @@ function fromEnv() {
|
|
|
292562
292578
|
const env = ownEnv();
|
|
292563
292579
|
return {
|
|
292564
292580
|
network: currentNetwork2(),
|
|
292565
|
-
askDenom:
|
|
292581
|
+
askDenom: rewardDenomFor(currentNetwork2(), env.NEXT_PUBLIC_ASK_DENOM),
|
|
292566
292582
|
checker: env.NEXT_PUBLIC_CHECKER_ADDRESS?.trim() || "",
|
|
292567
292583
|
gate: env.NEXT_PUBLIC_GRANTER_ADDRESS?.trim() || "",
|
|
292568
292584
|
checkRewardBase: Number(env.QI_CHECK_REWARD_BASE || env.QI_CHECK_REWARD_UIXO || 1e5),
|
|
@@ -292610,7 +292626,7 @@ async function deployment() {
|
|
|
292610
292626
|
const engineSet = own2.ENGINE_ORACLE_ADDRESS !== void 0 || own2.QI_ENGINE_LIVE !== void 0;
|
|
292611
292627
|
return {
|
|
292612
292628
|
network: NETWORK2,
|
|
292613
|
-
askDenom:
|
|
292629
|
+
askDenom: rewardDenomFor(NETWORK2, own2.NEXT_PUBLIC_ASK_DENOM || answer.askDenom),
|
|
292614
292630
|
checker: env.checker || answer.checker?.trim() || "",
|
|
292615
292631
|
gate: env.gate || answer.gate?.trim() || "",
|
|
292616
292632
|
checkRewardBase: own2.QI_CHECK_REWARD_BASE || own2.QI_CHECK_REWARD_UIXO ? env.checkRewardBase : Number(answer.checkRewardBase || 1e5),
|
|
@@ -294139,6 +294155,7 @@ async function build2(options, server2, parts) {
|
|
|
294139
294155
|
adoptReviewBilling(DEPLOYMENT);
|
|
294140
294156
|
adoptOracleUrl(DEPLOYMENT);
|
|
294141
294157
|
if (local) adoptFeeSplit(DEPLOYMENT);
|
|
294158
|
+
if (local) adoptAskDenom(DEPLOYMENT);
|
|
294142
294159
|
const OWN_FORM_ENV = Object.fromEntries(CLAIM_FORM_ENV.map((name8) => [name8, ownEnv()[name8]]));
|
|
294143
294160
|
if (local) adoptClaimForm(DEPLOYMENT);
|
|
294144
294161
|
let CLAIM_FORM = DEPLOYMENT.claimForm;
|
|
@@ -294157,6 +294174,7 @@ async function build2(options, server2, parts) {
|
|
|
294157
294174
|
adoptReviewBilling(fresh2);
|
|
294158
294175
|
adoptOracleUrl(fresh2);
|
|
294159
294176
|
adoptFeeSplit(fresh2);
|
|
294177
|
+
adoptAskDenom(fresh2);
|
|
294160
294178
|
adoptClaimForm(fresh2);
|
|
294161
294179
|
CLAIM_FORM = fresh2.claimForm;
|
|
294162
294180
|
applyDeployment(fresh2);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ixo/asks-mcp",
|
|
3
|
-
"version": "1.6.0-dev.
|
|
3
|
+
"version": "1.6.0-dev.5",
|
|
4
4
|
"description": "The Openhands Network MCP server: read the board, answer asks, post work and get paid on the ixo chain, with a key of its own on your machine.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|