@one-source/api-mcp 5.2.1 → 5.3.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/dist/tools/chain/refund.d.ts +6 -0
- package/dist/tools/chain/refund.d.ts.map +1 -0
- package/dist/tools/chain/refund.js +23 -0
- package/dist/tools/chain/refund.js.map +1 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +3 -1
- package/dist/tools/index.js.map +1 -1
- package/dist/x402.d.ts +19 -0
- package/dist/x402.d.ts.map +1 -1
- package/dist/x402.js +68 -0
- package/dist/x402.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"refund.d.ts","sourceRoot":"","sources":["../../../src/tools/chain/refund.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAG9C,eAAO,MAAM,IAAI,EAAE,OAuBlB,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { getPaymentModeInfo, refundBatchChannel } from '../../x402.js';
|
|
2
|
+
export const tool = {
|
|
3
|
+
name: '1s_refund',
|
|
4
|
+
description: 'Refund unused balance from your x402 batch payment channel back to your wallet on Base. ' +
|
|
5
|
+
'Batch mode deposits enough USDC up front to cover many calls (price × deposit multiplier); ' +
|
|
6
|
+
'whatever you do not spend stays locked in the channel. ' +
|
|
7
|
+
'Call this when you are done making batch calls to get the leftover escrow back right away, ' +
|
|
8
|
+
'instead of waiting for the gateway\'s automatic idle refund. Refunds the full remaining balance. ' +
|
|
9
|
+
'Only relevant when paying via x402 in batch mode (X402_PRIVATE_KEY set); with an API key, calls are covered by your plan and there is nothing to refund.',
|
|
10
|
+
category: 'chain',
|
|
11
|
+
schema: {},
|
|
12
|
+
handler: async () => {
|
|
13
|
+
const info = getPaymentModeInfo();
|
|
14
|
+
if (!info.enabled) {
|
|
15
|
+
return ('x402 payment is not active in this session, so there is no channel balance to refund. ' +
|
|
16
|
+
'Refunds apply only when paying per-call via x402 (set X402_PRIVATE_KEY to a funded Base wallet). ' +
|
|
17
|
+
'With an API key (ONESOURCE_API_KEY), calls are covered by your plan and no x402 payment is made.');
|
|
18
|
+
}
|
|
19
|
+
const res = await refundBatchChannel();
|
|
20
|
+
return res.message;
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=refund.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"refund.js","sourceRoot":"","sources":["../../../src/tools/chain/refund.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEvE,MAAM,CAAC,MAAM,IAAI,GAAY;IAC3B,IAAI,EAAE,WAAW;IACjB,WAAW,EACT,0FAA0F;QAC1F,6FAA6F;QAC7F,yDAAyD;QACzD,6FAA6F;QAC7F,mGAAmG;QACnG,0JAA0J;IAC5J,QAAQ,EAAE,OAAO;IACjB,MAAM,EAAE,EAAE;IACV,OAAO,EAAE,KAAK,IAAI,EAAE;QAClB,MAAM,IAAI,GAAG,kBAAkB,EAAE,CAAC;QAClC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO,CACL,wFAAwF;gBACxF,mGAAmG;gBACnG,kGAAkG,CACnG,CAAC;QACJ,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,kBAAkB,EAAE,CAAC;QACvC,OAAO,GAAG,CAAC,OAAO,CAAC;IACrB,CAAC;CACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAiC3C,eAAO,MAAM,QAAQ,EAAE,OAAO,EA+B7B,CAAC"}
|
package/dist/tools/index.js
CHANGED
|
@@ -11,7 +11,7 @@ import { tool as nftMetadataLive } from './live/nft-metadata.js';
|
|
|
11
11
|
import { tool as nftOwnerLive } from './live/nft-owner.js';
|
|
12
12
|
import { tool as totalSupplyLive } from './live/total-supply.js';
|
|
13
13
|
import { tool as txDetailsLive } from './live/tx-details.js';
|
|
14
|
-
// --- Chain utilities (
|
|
14
|
+
// --- Chain utilities (15 tools) ---
|
|
15
15
|
import { tool as blockByNumber } from './chain/block-by-number.js';
|
|
16
16
|
import { tool as blockNumber } from './chain/block-number.js';
|
|
17
17
|
import { tool as chainId } from './chain/chain-id.js';
|
|
@@ -23,6 +23,7 @@ import { tool as nonce } from './chain/nonce.js';
|
|
|
23
23
|
import { tool as paymentMode } from './chain/payment-mode.js';
|
|
24
24
|
import { tool as pendingBlock } from './chain/pending-block.js';
|
|
25
25
|
import { tool as proxyDetect } from './chain/proxy-detect.js';
|
|
26
|
+
import { tool as refund } from './chain/refund.js';
|
|
26
27
|
import { tool as simulateCall } from './chain/simulate-call.js';
|
|
27
28
|
import { tool as storageRead } from './chain/storage-read.js';
|
|
28
29
|
import { tool as txReceipt } from './chain/tx-receipt.js';
|
|
@@ -52,6 +53,7 @@ export const allTools = [
|
|
|
52
53
|
paymentMode,
|
|
53
54
|
pendingBlock,
|
|
54
55
|
proxyDetect,
|
|
56
|
+
refund,
|
|
55
57
|
simulateCall,
|
|
56
58
|
storageRead,
|
|
57
59
|
txReceipt,
|
package/dist/tools/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAMA,qCAAqC;AACrC,OAAO,EAAE,IAAI,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,IAAI,IAAI,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,IAAI,IAAI,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,IAAI,IAAI,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,IAAI,IAAI,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,IAAI,IAAI,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,IAAI,IAAI,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,IAAI,IAAI,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,IAAI,IAAI,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,IAAI,IAAI,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,IAAI,IAAI,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,IAAI,IAAI,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE7D,qCAAqC;AACrC,OAAO,EAAE,IAAI,IAAI,aAAa,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,IAAI,IAAI,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,IAAI,IAAI,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,IAAI,IAAI,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,IAAI,IAAI,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,IAAI,IAAI,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,IAAI,IAAI,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,IAAI,IAAI,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,IAAI,IAAI,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,IAAI,IAAI,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,IAAI,IAAI,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,IAAI,IAAI,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,IAAI,IAAI,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,IAAI,IAAI,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAE1D,MAAM,CAAC,MAAM,QAAQ,GAAc;IACjC,kBAAkB;IAClB,aAAa;IACb,gBAAgB;IAChB,kBAAkB;IAClB,gBAAgB;IAChB,kBAAkB;IAClB,gBAAgB;IAChB,UAAU;IACV,gBAAgB;IAChB,eAAe;IACf,YAAY;IACZ,eAAe;IACf,aAAa;IAEb,kBAAkB;IAClB,aAAa;IACb,WAAW;IACX,OAAO;IACP,YAAY;IACZ,UAAU;IACV,WAAW;IACX,WAAW;IACX,KAAK;IACL,WAAW;IACX,YAAY;IACZ,WAAW;IACX,YAAY;IACZ,WAAW;IACX,SAAS;CACV,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAMA,qCAAqC;AACrC,OAAO,EAAE,IAAI,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,IAAI,IAAI,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,IAAI,IAAI,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,IAAI,IAAI,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,IAAI,IAAI,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,IAAI,IAAI,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,IAAI,IAAI,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,IAAI,IAAI,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,IAAI,IAAI,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,IAAI,IAAI,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,IAAI,IAAI,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,IAAI,IAAI,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE7D,qCAAqC;AACrC,OAAO,EAAE,IAAI,IAAI,aAAa,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,IAAI,IAAI,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,IAAI,IAAI,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,IAAI,IAAI,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,IAAI,IAAI,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,IAAI,IAAI,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,IAAI,IAAI,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,IAAI,IAAI,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,IAAI,IAAI,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,IAAI,IAAI,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,IAAI,IAAI,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,IAAI,IAAI,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,IAAI,IAAI,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,IAAI,IAAI,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,IAAI,IAAI,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAE1D,MAAM,CAAC,MAAM,QAAQ,GAAc;IACjC,kBAAkB;IAClB,aAAa;IACb,gBAAgB;IAChB,kBAAkB;IAClB,gBAAgB;IAChB,kBAAkB;IAClB,gBAAgB;IAChB,UAAU;IACV,gBAAgB;IAChB,eAAe;IACf,YAAY;IACZ,eAAe;IACf,aAAa;IAEb,kBAAkB;IAClB,aAAa;IACb,WAAW;IACX,OAAO;IACP,YAAY;IACZ,UAAU;IACV,WAAW;IACX,WAAW;IACX,KAAK;IACL,WAAW;IACX,YAAY;IACZ,WAAW;IACX,MAAM;IACN,YAAY;IACZ,WAAW;IACX,SAAS;CACV,CAAC"}
|
package/dist/x402.d.ts
CHANGED
|
@@ -24,4 +24,23 @@ export declare function getPaymentMode(): PaymentMode;
|
|
|
24
24
|
export declare function setPaymentMode(mode: PaymentMode): PaymentMode;
|
|
25
25
|
/** Snapshot of payment state for the 1s_payment_mode tool. */
|
|
26
26
|
export declare function getPaymentModeInfo(): PaymentModeInfo;
|
|
27
|
+
export interface RefundResult {
|
|
28
|
+
ok: boolean;
|
|
29
|
+
/** Human-readable outcome, safe to surface directly to the user. */
|
|
30
|
+
message: string;
|
|
31
|
+
/** Refund transaction hash, when the receiver settled one. */
|
|
32
|
+
transaction?: string;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Cooperatively refund the unused balance of the current batch payment channel
|
|
36
|
+
* back to the payer wallet. Probes {@link REFUND_PROBE_PATH} for the channel
|
|
37
|
+
* requirements, then asks the receiver (via its receiverAuthorizer) to sign and
|
|
38
|
+
* submit the on-chain refund. Always a full refund of the remaining escrow.
|
|
39
|
+
*
|
|
40
|
+
* Returns a structured result rather than throwing, so the calling tool can
|
|
41
|
+
* surface a clear message for the common "nothing to refund" / "no channel"
|
|
42
|
+
* cases. Uses the unwrapped global fetch (the SDK attaches the refund payload
|
|
43
|
+
* itself; the payment-wrapping fetch would wrongly try to pay the 402 probe).
|
|
44
|
+
*/
|
|
45
|
+
export declare function refundBatchChannel(): Promise<RefundResult>;
|
|
27
46
|
//# sourceMappingURL=x402.d.ts.map
|
package/dist/x402.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"x402.d.ts","sourceRoot":"","sources":["../src/x402.ts"],"names":[],"mappings":"AA6BA,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,OAAO,CAAC;AAc5C,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACjC;AAED,MAAM,WAAW,eAAe;IAC9B,6DAA6D;IAC7D,OAAO,EAAE,OAAO,CAAC;IACjB,8BAA8B;IAC9B,IAAI,EAAE,WAAW,CAAC;IAClB,0CAA0C;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6EAA6E;IAC7E,cAAc,EAAE,OAAO,CAAC;CACzB;
|
|
1
|
+
{"version":3,"file":"x402.d.ts","sourceRoot":"","sources":["../src/x402.ts"],"names":[],"mappings":"AA6BA,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,OAAO,CAAC;AAc5C,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACjC;AAED,MAAM,WAAW,eAAe;IAC9B,6DAA6D;IAC7D,OAAO,EAAE,OAAO,CAAC;IACjB,8BAA8B;IAC9B,IAAI,EAAE,WAAW,CAAC;IAClB,0CAA0C;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6EAA6E;IAC7E,cAAc,EAAE,OAAO,CAAC;CACzB;AA0BD,wBAAgB,SAAS,IAAI,eAAe,CA6D3C;AAED,8BAA8B;AAC9B,wBAAgB,cAAc,IAAI,WAAW,CAE5C;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,WAAW,CAK7D;AAED,8DAA8D;AAC9D,wBAAgB,kBAAkB,IAAI,eAAe,CAEpD;AAmBD,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,OAAO,CAAC;IACZ,oEAAoE;IACpE,OAAO,EAAE,MAAM,CAAC;IAChB,8DAA8D;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAWD;;;;;;;;;;GAUG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,YAAY,CAAC,CA0ChE"}
|
package/dist/x402.js
CHANGED
|
@@ -45,6 +45,9 @@ let _enabled = false;
|
|
|
45
45
|
let _address;
|
|
46
46
|
let _mode = 'exact';
|
|
47
47
|
let _batchAvailable = false;
|
|
48
|
+
// The batch-settlement client scheme, retained at module scope so the
|
|
49
|
+
// `1s_refund` tool can call its cooperative-refund flow after setup.
|
|
50
|
+
let _batchScheme;
|
|
48
51
|
function initialMode() {
|
|
49
52
|
return process.env.X402_PAYMENT_MODE?.trim().toLowerCase() === 'batch'
|
|
50
53
|
? 'batch'
|
|
@@ -91,6 +94,7 @@ export function setupX402() {
|
|
|
91
94
|
batchClient.register('eip155:*', batchScheme);
|
|
92
95
|
batchFetch = wrapFetchWithPayment(fetch, batchClient);
|
|
93
96
|
_batchAvailable = true;
|
|
97
|
+
_batchScheme = batchScheme;
|
|
94
98
|
}
|
|
95
99
|
catch (err) {
|
|
96
100
|
_batchAvailable = false;
|
|
@@ -137,5 +141,69 @@ export function resetX402() {
|
|
|
137
141
|
_address = undefined;
|
|
138
142
|
_mode = 'exact';
|
|
139
143
|
_batchAvailable = false;
|
|
144
|
+
_batchScheme = undefined;
|
|
145
|
+
}
|
|
146
|
+
// A batch-eligible (/api/chain/*) endpoint the refund flow probes for the
|
|
147
|
+
// channel's payment requirements (receiver, asset, receiverAuthorizer) — it's
|
|
148
|
+
// a plain unpaid GET that the gateway answers with a 402 challenge, so any
|
|
149
|
+
// such route works and the specific one is irrelevant to the wallet/channel.
|
|
150
|
+
const REFUND_PROBE_PATH = '/api/chain/block-number';
|
|
151
|
+
function atomicToUsdc(atomic) {
|
|
152
|
+
try {
|
|
153
|
+
const n = Number(BigInt(atomic)) / 1e6;
|
|
154
|
+
return n.toFixed(6).replace(/\.?0+$/, '');
|
|
155
|
+
}
|
|
156
|
+
catch {
|
|
157
|
+
return atomic;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Cooperatively refund the unused balance of the current batch payment channel
|
|
162
|
+
* back to the payer wallet. Probes {@link REFUND_PROBE_PATH} for the channel
|
|
163
|
+
* requirements, then asks the receiver (via its receiverAuthorizer) to sign and
|
|
164
|
+
* submit the on-chain refund. Always a full refund of the remaining escrow.
|
|
165
|
+
*
|
|
166
|
+
* Returns a structured result rather than throwing, so the calling tool can
|
|
167
|
+
* surface a clear message for the common "nothing to refund" / "no channel"
|
|
168
|
+
* cases. Uses the unwrapped global fetch (the SDK attaches the refund payload
|
|
169
|
+
* itself; the payment-wrapping fetch would wrongly try to pay the 402 probe).
|
|
170
|
+
*/
|
|
171
|
+
export async function refundBatchChannel() {
|
|
172
|
+
if (!_enabled) {
|
|
173
|
+
return { ok: false, message: 'x402 payment is not active in this session (set X402_PRIVATE_KEY).' };
|
|
174
|
+
}
|
|
175
|
+
if (!_batchScheme) {
|
|
176
|
+
return { ok: false, message: 'Batch payment channels are unavailable in this session, so there is nothing to refund.' };
|
|
177
|
+
}
|
|
178
|
+
const base = (process.env.ONESOURCE_BASE_URL ?? 'https://skills.onesource.io').replace(/\/+$/, '');
|
|
179
|
+
const probeUrl = base + REFUND_PROBE_PATH;
|
|
180
|
+
try {
|
|
181
|
+
const settle = (await _batchScheme.refund(probeUrl));
|
|
182
|
+
const tx = settle?.transaction;
|
|
183
|
+
const balance = settle?.extra?.channelState?.balance;
|
|
184
|
+
const remaining = typeof balance === 'string' ? ` Remaining channel balance: ${atomicToUsdc(balance)} USDC.` : '';
|
|
185
|
+
return {
|
|
186
|
+
ok: true,
|
|
187
|
+
transaction: tx,
|
|
188
|
+
message: `Refund submitted${tx ? ` (tx ${tx})` : ''}.${remaining} ` +
|
|
189
|
+
`Unused channel escrow is being returned to ${_address ?? 'your wallet'} on Base.`,
|
|
190
|
+
};
|
|
191
|
+
}
|
|
192
|
+
catch (err) {
|
|
193
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
194
|
+
if (/no remaining balance/i.test(msg)) {
|
|
195
|
+
return {
|
|
196
|
+
ok: false,
|
|
197
|
+
message: 'Nothing to refund — the channel has no unused balance (everything deposited has been spent or already refunded).',
|
|
198
|
+
};
|
|
199
|
+
}
|
|
200
|
+
if (/existing channel record/i.test(msg)) {
|
|
201
|
+
return {
|
|
202
|
+
ok: false,
|
|
203
|
+
message: 'No payment channel found for this wallet. Open one by making a call in batch mode first (1s_payment_mode → batch).',
|
|
204
|
+
};
|
|
205
|
+
}
|
|
206
|
+
return { ok: false, message: `Refund failed: ${msg}` };
|
|
207
|
+
}
|
|
140
208
|
}
|
|
141
209
|
//# sourceMappingURL=x402.js.map
|
package/dist/x402.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"x402.js","sourceRoot":"","sources":["../src/x402.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAE,wBAAwB,EAAE,MAAM,gDAAgD,CAAC;AAC1F,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAInC,MAAM,SAAS,GAAG,KAAK,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAW,CAAC;AACjD,8EAA8E;AAC9E,6EAA6E;AAC7E,6EAA6E;AAC7E,6EAA6E;AAC7E,6EAA6E;AAC7E,8EAA8E;AAC9E,8EAA8E;AAC9E,2EAA2E;AAC3E,oEAAoE;AACpE,MAAM,0BAA0B,GAAG,EAAE,CAAC;AAmBtC,IAAI,QAAQ,GAAG,KAAK,CAAC;AACrB,IAAI,aAA0C,CAAC;AAE/C,+EAA+E;AAC/E,8CAA8C;AAC9C,IAAI,QAAQ,GAAG,KAAK,CAAC;AACrB,IAAI,QAA4B,CAAC;AACjC,IAAI,KAAK,GAAgB,OAAO,CAAC;AACjC,IAAI,eAAe,GAAG,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"x402.js","sourceRoot":"","sources":["../src/x402.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@one-source/api-mcp",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.3.0",
|
|
4
4
|
"type": "module",
|
|
5
|
-
"description": "MCP server for OneSource blockchain data —
|
|
5
|
+
"description": "MCP server for OneSource blockchain data — 27 named tools for balances, NFTs, transactions, events, live chain queries, and x402 payment-mode + refund control via x402",
|
|
6
6
|
"bin": {
|
|
7
7
|
"onesource-api-mcp": "./dist/cli.js"
|
|
8
8
|
},
|