n8n-nodes-cronos-paytech 0.1.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/LICENSE +21 -0
- package/README.md +77 -0
- package/dist/credentials/CronosWalletCredentialsApi.credentials.d.ts +9 -0
- package/dist/credentials/CronosWalletCredentialsApi.credentials.js +44 -0
- package/dist/credentials/CronosWalletCredentialsApi.credentials.js.map +1 -0
- package/dist/credentials/cronosX402.svg +25 -0
- package/dist/nodes/CronosX402/CronosX402.node.d.ts +5 -0
- package/dist/nodes/CronosX402/CronosX402.node.js +521 -0
- package/dist/nodes/CronosX402/CronosX402.node.js.map +1 -0
- package/dist/nodes/CronosX402/cronosX402.svg +25 -0
- package/dist/nodes/CronosX402/utils/actions.d.ts +124 -0
- package/dist/nodes/CronosX402/utils/actions.js +299 -0
- package/dist/nodes/CronosX402/utils/actions.js.map +1 -0
- package/dist/package.json +63 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +63 -0
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { ethers } from 'ethers';
|
|
2
|
+
import { CronosNetwork } from '@crypto.com/facilitator-client';
|
|
3
|
+
export interface PayParams {
|
|
4
|
+
wallet: ethers.Wallet | ethers.HDNodeWallet;
|
|
5
|
+
tokenAddress: string;
|
|
6
|
+
recipient: string;
|
|
7
|
+
amount: string;
|
|
8
|
+
chainId: number;
|
|
9
|
+
provider?: ethers.JsonRpcProvider;
|
|
10
|
+
}
|
|
11
|
+
export interface VerifyParams {
|
|
12
|
+
paymentHeader: string;
|
|
13
|
+
expectedRecipient: string;
|
|
14
|
+
expectedAmount: string;
|
|
15
|
+
network?: CronosNetwork;
|
|
16
|
+
provider?: ethers.JsonRpcProvider;
|
|
17
|
+
wallet?: ethers.Wallet | ethers.HDNodeWallet;
|
|
18
|
+
shouldSettle?: boolean;
|
|
19
|
+
}
|
|
20
|
+
export interface ChallengeParams {
|
|
21
|
+
recipient: string;
|
|
22
|
+
amount: string;
|
|
23
|
+
tokenAddress: string;
|
|
24
|
+
chainId: number;
|
|
25
|
+
}
|
|
26
|
+
export interface NotarizeParams {
|
|
27
|
+
wallet: ethers.Wallet | ethers.HDNodeWallet;
|
|
28
|
+
data: string;
|
|
29
|
+
provider?: ethers.JsonRpcProvider;
|
|
30
|
+
}
|
|
31
|
+
export interface GetEventLogsParams {
|
|
32
|
+
provider: ethers.JsonRpcProvider;
|
|
33
|
+
address: string;
|
|
34
|
+
topics: (string | null)[];
|
|
35
|
+
fromBlock: string | number;
|
|
36
|
+
toBlock: string | number;
|
|
37
|
+
}
|
|
38
|
+
export declare function actionGetEventLogs(params: GetEventLogsParams): Promise<{
|
|
39
|
+
success: boolean;
|
|
40
|
+
logs: {
|
|
41
|
+
transactionHash: string;
|
|
42
|
+
blockNumber: number;
|
|
43
|
+
blockHash: string;
|
|
44
|
+
data: string;
|
|
45
|
+
dataDecimal: string;
|
|
46
|
+
topics: readonly string[];
|
|
47
|
+
args: Record<string, string>;
|
|
48
|
+
address: string;
|
|
49
|
+
timestamp: string;
|
|
50
|
+
}[];
|
|
51
|
+
maxBlockChecked: number;
|
|
52
|
+
lastBlockQueried: number;
|
|
53
|
+
fromBlock: string | number;
|
|
54
|
+
toBlock: string | number;
|
|
55
|
+
warning: string | undefined;
|
|
56
|
+
}>;
|
|
57
|
+
export declare function actionPayFromWallet(params: PayParams): Promise<{
|
|
58
|
+
success: boolean;
|
|
59
|
+
paymentId: any;
|
|
60
|
+
x402Header: string;
|
|
61
|
+
x402HeaderJSON: any;
|
|
62
|
+
message: string;
|
|
63
|
+
txHash: any;
|
|
64
|
+
blockNumber: any;
|
|
65
|
+
}>;
|
|
66
|
+
export declare function actionGenerateChallenge(params: ChallengeParams): {
|
|
67
|
+
status: number;
|
|
68
|
+
challenge: {
|
|
69
|
+
payTo: string;
|
|
70
|
+
maxAmountRequired: string;
|
|
71
|
+
asset: {
|
|
72
|
+
address: string;
|
|
73
|
+
chainId: number;
|
|
74
|
+
name: string;
|
|
75
|
+
version: string;
|
|
76
|
+
verifyingContract: string;
|
|
77
|
+
};
|
|
78
|
+
description: string;
|
|
79
|
+
};
|
|
80
|
+
payTo: string;
|
|
81
|
+
amount: string;
|
|
82
|
+
token: string;
|
|
83
|
+
chainId: number;
|
|
84
|
+
message: string;
|
|
85
|
+
};
|
|
86
|
+
export declare function actionVerifyPayment(params: VerifyParams): Promise<{
|
|
87
|
+
valid: boolean;
|
|
88
|
+
nonceStatus: string;
|
|
89
|
+
nonceStateCode: number;
|
|
90
|
+
settled: boolean;
|
|
91
|
+
verification: import("@crypto.com/facilitator-client").X402VerifyResponse;
|
|
92
|
+
settlement: {
|
|
93
|
+
txHash?: string | undefined;
|
|
94
|
+
blockNumber?: number | undefined;
|
|
95
|
+
status?: string | undefined;
|
|
96
|
+
error?: string | undefined;
|
|
97
|
+
details?: string | undefined;
|
|
98
|
+
} | null;
|
|
99
|
+
}>;
|
|
100
|
+
export declare function actionNotarize(params: NotarizeParams): Promise<{
|
|
101
|
+
action: string;
|
|
102
|
+
dataHex: string;
|
|
103
|
+
originalData: string;
|
|
104
|
+
message: string;
|
|
105
|
+
to: string;
|
|
106
|
+
value: number;
|
|
107
|
+
txHash: string | null;
|
|
108
|
+
blockNumber: number | undefined;
|
|
109
|
+
}>;
|
|
110
|
+
export declare function actionSignMessage(wallet: ethers.Wallet | ethers.HDNodeWallet, message: string): Promise<{
|
|
111
|
+
action: string;
|
|
112
|
+
message: string;
|
|
113
|
+
signature: string;
|
|
114
|
+
signer: string;
|
|
115
|
+
info: string;
|
|
116
|
+
}>;
|
|
117
|
+
export declare function actionRecoverAddress(message: string, signature: string): {
|
|
118
|
+
action: string;
|
|
119
|
+
message: string;
|
|
120
|
+
signature: string;
|
|
121
|
+
recoveredAddress: string | null;
|
|
122
|
+
valid: boolean;
|
|
123
|
+
info: string;
|
|
124
|
+
};
|
|
@@ -0,0 +1,299 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.actionRecoverAddress = exports.actionSignMessage = exports.actionNotarize = exports.actionVerifyPayment = exports.actionGenerateChallenge = exports.actionPayFromWallet = exports.actionGetEventLogs = void 0;
|
|
4
|
+
const ethers_1 = require("ethers");
|
|
5
|
+
const facilitator_client_1 = require("@crypto.com/facilitator-client");
|
|
6
|
+
const payment_header_1 = require("@crypto.com/facilitator-client/dist/lib/utils/payment.header");
|
|
7
|
+
async function broadcastTransferWithAuthorization(wallet, x402Header, provider) {
|
|
8
|
+
const decodedJson = (0, payment_header_1.decodePaymentHeader)(x402Header);
|
|
9
|
+
const headerObj = JSON.parse(decodedJson);
|
|
10
|
+
const p = headerObj.payload;
|
|
11
|
+
const { v, r, s } = ethers_1.ethers.Signature.from(p.signature);
|
|
12
|
+
const connectedWallet = provider ? wallet.connect(provider) : wallet;
|
|
13
|
+
const tokenContract = new ethers_1.ethers.Contract(p.asset, [
|
|
14
|
+
"function transferWithAuthorization(address from, address to, uint256 value, uint256 validAfter, uint256 validBefore, bytes32 nonce, uint8 v, bytes32 r, bytes32 s) external"
|
|
15
|
+
], connectedWallet);
|
|
16
|
+
let txHash = null;
|
|
17
|
+
let receipt = null;
|
|
18
|
+
try {
|
|
19
|
+
let gasLimit = BigInt(200000);
|
|
20
|
+
try {
|
|
21
|
+
const estimated = await tokenContract.transferWithAuthorization.estimateGas(p.from, p.to, p.value, p.validAfter, p.validBefore, p.nonce, v, r, s);
|
|
22
|
+
gasLimit = (estimated * BigInt(120)) / BigInt(100);
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
}
|
|
26
|
+
const tx = await tokenContract.transferWithAuthorization(p.from, p.to, p.value, p.validAfter, p.validBefore, p.nonce, v, r, s, { gasLimit });
|
|
27
|
+
txHash = tx.hash;
|
|
28
|
+
receipt = await tx.wait();
|
|
29
|
+
return { success: true, txHash, blockNumber: receipt === null || receipt === void 0 ? void 0 : receipt.blockNumber };
|
|
30
|
+
}
|
|
31
|
+
catch (error) {
|
|
32
|
+
throw new Error(error.message);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
async function actionGetEventLogs(params) {
|
|
36
|
+
const { provider, address, topics, fromBlock, toBlock } = params;
|
|
37
|
+
let logs = [];
|
|
38
|
+
let usedToBlock = toBlock;
|
|
39
|
+
let warning = undefined;
|
|
40
|
+
let resolvedFrom = 0;
|
|
41
|
+
try {
|
|
42
|
+
const currentBlock = await provider.getBlockNumber();
|
|
43
|
+
const resolveTag = (val, current) => {
|
|
44
|
+
if (val === 'latest' || val === 'pending')
|
|
45
|
+
return current;
|
|
46
|
+
if (val === 'earliest')
|
|
47
|
+
return 0;
|
|
48
|
+
if (typeof val === 'string' && val.startsWith('0x'))
|
|
49
|
+
return parseInt(val, 16);
|
|
50
|
+
if (typeof val === 'string')
|
|
51
|
+
return parseInt(val, 10);
|
|
52
|
+
return val;
|
|
53
|
+
};
|
|
54
|
+
resolvedFrom = resolveTag(fromBlock, currentBlock);
|
|
55
|
+
let resolvedTo = resolveTag(toBlock, currentBlock);
|
|
56
|
+
const RPC_LIMIT = 2000;
|
|
57
|
+
if ((resolvedTo - resolvedFrom) > RPC_LIMIT) {
|
|
58
|
+
resolvedTo = resolvedFrom + RPC_LIMIT;
|
|
59
|
+
usedToBlock = resolvedTo;
|
|
60
|
+
warning = `Block range exceeded ${RPC_LIMIT}. Capped search at block ${resolvedTo}.`;
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
usedToBlock = resolvedTo;
|
|
64
|
+
}
|
|
65
|
+
logs = await provider.getLogs({
|
|
66
|
+
address: address,
|
|
67
|
+
topics: topics,
|
|
68
|
+
fromBlock: resolvedFrom,
|
|
69
|
+
toBlock: usedToBlock
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
throw new Error(error.message);
|
|
74
|
+
}
|
|
75
|
+
let maxBlock = -1;
|
|
76
|
+
const formattedLogs = logs.map(log => {
|
|
77
|
+
if (log.blockNumber > maxBlock)
|
|
78
|
+
maxBlock = log.blockNumber;
|
|
79
|
+
let dataDecimal = '0';
|
|
80
|
+
try {
|
|
81
|
+
if (log.data && log.data !== '0x') {
|
|
82
|
+
dataDecimal = BigInt(log.data).toString();
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
catch { }
|
|
86
|
+
let args = {};
|
|
87
|
+
if (log.topics.length === 3 && log.topics[0] === '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef') {
|
|
88
|
+
try {
|
|
89
|
+
const strip = (val) => `0x${val.slice(26)}`;
|
|
90
|
+
args = {
|
|
91
|
+
from: strip(log.topics[1]),
|
|
92
|
+
to: strip(log.topics[2]),
|
|
93
|
+
value: dataDecimal
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
catch { }
|
|
97
|
+
}
|
|
98
|
+
return {
|
|
99
|
+
transactionHash: log.transactionHash,
|
|
100
|
+
blockNumber: log.blockNumber,
|
|
101
|
+
blockHash: log.blockHash,
|
|
102
|
+
data: log.data,
|
|
103
|
+
dataDecimal: dataDecimal,
|
|
104
|
+
topics: log.topics,
|
|
105
|
+
args: args,
|
|
106
|
+
address: log.address,
|
|
107
|
+
timestamp: new Date().toISOString()
|
|
108
|
+
};
|
|
109
|
+
});
|
|
110
|
+
const checkoutBlock = maxBlock > -1 ? maxBlock : (typeof usedToBlock === 'number' ? usedToBlock : -1);
|
|
111
|
+
return {
|
|
112
|
+
success: true,
|
|
113
|
+
logs: formattedLogs,
|
|
114
|
+
maxBlockChecked: checkoutBlock,
|
|
115
|
+
lastBlockQueried: usedToBlock,
|
|
116
|
+
fromBlock,
|
|
117
|
+
toBlock: toBlock,
|
|
118
|
+
warning
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
exports.actionGetEventLogs = actionGetEventLogs;
|
|
122
|
+
async function actionPayFromWallet(params) {
|
|
123
|
+
const { wallet, tokenAddress, recipient, amount, chainId, provider } = params;
|
|
124
|
+
let network = facilitator_client_1.CronosNetwork.CronosTestnet;
|
|
125
|
+
if (chainId === 25)
|
|
126
|
+
network = facilitator_client_1.CronosNetwork.CronosMainnet;
|
|
127
|
+
const x402Header = await (0, payment_header_1.generateCronosPaymentHeader)({
|
|
128
|
+
signer: wallet,
|
|
129
|
+
network: network,
|
|
130
|
+
to: recipient,
|
|
131
|
+
value: amount,
|
|
132
|
+
asset: tokenAddress
|
|
133
|
+
});
|
|
134
|
+
let broadcastResult = null;
|
|
135
|
+
if (provider) {
|
|
136
|
+
const result = await broadcastTransferWithAuthorization(wallet, x402Header, provider);
|
|
137
|
+
broadcastResult = result;
|
|
138
|
+
}
|
|
139
|
+
const headerObj = JSON.parse((0, payment_header_1.decodePaymentHeader)(x402Header));
|
|
140
|
+
return {
|
|
141
|
+
success: true,
|
|
142
|
+
paymentId: headerObj.payload.nonce,
|
|
143
|
+
x402Header: x402Header,
|
|
144
|
+
x402HeaderJSON: headerObj,
|
|
145
|
+
message: (broadcastResult === null || broadcastResult === void 0 ? void 0 : broadcastResult.txHash) ? "Payment Broadcasted to Blockchain" : "Signed EIP-3009 Payment (Offline)",
|
|
146
|
+
txHash: broadcastResult === null || broadcastResult === void 0 ? void 0 : broadcastResult.txHash,
|
|
147
|
+
blockNumber: broadcastResult === null || broadcastResult === void 0 ? void 0 : broadcastResult.blockNumber
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
exports.actionPayFromWallet = actionPayFromWallet;
|
|
151
|
+
function actionGenerateChallenge(params) {
|
|
152
|
+
return {
|
|
153
|
+
status: 402,
|
|
154
|
+
challenge: {
|
|
155
|
+
payTo: params.recipient,
|
|
156
|
+
maxAmountRequired: params.amount,
|
|
157
|
+
asset: {
|
|
158
|
+
address: params.tokenAddress,
|
|
159
|
+
chainId: params.chainId,
|
|
160
|
+
name: 'USDC',
|
|
161
|
+
version: '1',
|
|
162
|
+
verifyingContract: params.tokenAddress,
|
|
163
|
+
},
|
|
164
|
+
description: "Payment Required for n8n Workflow",
|
|
165
|
+
},
|
|
166
|
+
payTo: params.recipient,
|
|
167
|
+
amount: params.amount,
|
|
168
|
+
token: params.tokenAddress,
|
|
169
|
+
chainId: params.chainId,
|
|
170
|
+
message: "Please sign this payment request.",
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
exports.actionGenerateChallenge = actionGenerateChallenge;
|
|
174
|
+
async function actionVerifyPayment(params) {
|
|
175
|
+
const facilitator = new facilitator_client_1.Facilitator({
|
|
176
|
+
network: params.network || facilitator_client_1.CronosNetwork.CronosTestnet,
|
|
177
|
+
signer: params.wallet
|
|
178
|
+
});
|
|
179
|
+
const reqs = facilitator.generatePaymentRequirements({
|
|
180
|
+
payTo: params.expectedRecipient,
|
|
181
|
+
maxAmountRequired: params.expectedAmount,
|
|
182
|
+
description: "n8n verified payment",
|
|
183
|
+
});
|
|
184
|
+
const body = facilitator.buildVerifyRequest(params.paymentHeader, reqs);
|
|
185
|
+
const verifyResult = await facilitator.verifyPayment(body);
|
|
186
|
+
let nonceStatus = "unknown";
|
|
187
|
+
let onChainState = -1;
|
|
188
|
+
if (params.provider) {
|
|
189
|
+
try {
|
|
190
|
+
const decodedJson = (0, payment_header_1.decodePaymentHeader)(params.paymentHeader);
|
|
191
|
+
const headerObj = JSON.parse(decodedJson);
|
|
192
|
+
const p = headerObj.payload;
|
|
193
|
+
const tokenContract = new ethers_1.ethers.Contract(p.asset, [
|
|
194
|
+
"function authorizationState(address authorizer, bytes32 nonce) external view returns (uint8)"
|
|
195
|
+
], params.provider);
|
|
196
|
+
const state = await tokenContract.authorizationState(p.from, p.nonce);
|
|
197
|
+
onChainState = Number(state);
|
|
198
|
+
if (onChainState === 0)
|
|
199
|
+
nonceStatus = "Unused (Ready to Settle)";
|
|
200
|
+
if (onChainState === 1)
|
|
201
|
+
nonceStatus = "Used (Already Settled)";
|
|
202
|
+
if (onChainState === 2)
|
|
203
|
+
nonceStatus = "Canceled";
|
|
204
|
+
}
|
|
205
|
+
catch {
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
let settleResult = null;
|
|
209
|
+
if (verifyResult.isValid && params.shouldSettle && params.wallet) {
|
|
210
|
+
try {
|
|
211
|
+
settleResult = await facilitator.settlePayment(body);
|
|
212
|
+
}
|
|
213
|
+
catch (e) {
|
|
214
|
+
throw new Error("Settlement failed: " + e.message);
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
return {
|
|
218
|
+
valid: verifyResult.isValid,
|
|
219
|
+
nonceStatus: nonceStatus,
|
|
220
|
+
nonceStateCode: onChainState,
|
|
221
|
+
settled: (!!settleResult && !settleResult.error) || onChainState === 1,
|
|
222
|
+
verification: verifyResult,
|
|
223
|
+
settlement: settleResult,
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
exports.actionVerifyPayment = actionVerifyPayment;
|
|
227
|
+
async function actionNotarize(params) {
|
|
228
|
+
let hexData = params.data;
|
|
229
|
+
if (!hexData.startsWith('0x')) {
|
|
230
|
+
hexData = ethers_1.ethers.hexlify(ethers_1.ethers.toUtf8Bytes(params.data));
|
|
231
|
+
}
|
|
232
|
+
let txHash = null;
|
|
233
|
+
let receipt = null;
|
|
234
|
+
if (params.provider) {
|
|
235
|
+
const connectedWallet = params.wallet.connect(params.provider);
|
|
236
|
+
let gasLimit = BigInt(100000);
|
|
237
|
+
try {
|
|
238
|
+
const estimated = await connectedWallet.estimateGas({
|
|
239
|
+
to: params.wallet.address,
|
|
240
|
+
value: 0,
|
|
241
|
+
data: hexData
|
|
242
|
+
});
|
|
243
|
+
gasLimit = (estimated * BigInt(120)) / BigInt(100);
|
|
244
|
+
}
|
|
245
|
+
catch {
|
|
246
|
+
}
|
|
247
|
+
const tx = await connectedWallet.sendTransaction({
|
|
248
|
+
to: params.wallet.address,
|
|
249
|
+
value: 0,
|
|
250
|
+
data: hexData,
|
|
251
|
+
gasLimit: gasLimit
|
|
252
|
+
});
|
|
253
|
+
txHash = tx.hash;
|
|
254
|
+
receipt = await tx.wait();
|
|
255
|
+
}
|
|
256
|
+
return {
|
|
257
|
+
action: "notarize",
|
|
258
|
+
dataHex: hexData,
|
|
259
|
+
originalData: params.data,
|
|
260
|
+
message: txHash ? "Notarization Broadcasted" : "Payload ready for transaction",
|
|
261
|
+
to: params.wallet.address,
|
|
262
|
+
value: 0,
|
|
263
|
+
txHash,
|
|
264
|
+
blockNumber: receipt === null || receipt === void 0 ? void 0 : receipt.blockNumber
|
|
265
|
+
};
|
|
266
|
+
}
|
|
267
|
+
exports.actionNotarize = actionNotarize;
|
|
268
|
+
async function actionSignMessage(wallet, message) {
|
|
269
|
+
const signature = await wallet.signMessage(message);
|
|
270
|
+
const address = await wallet.getAddress();
|
|
271
|
+
return {
|
|
272
|
+
action: "signMessage",
|
|
273
|
+
message: message,
|
|
274
|
+
signature: signature,
|
|
275
|
+
signer: address,
|
|
276
|
+
info: "This signature can be used for Off-Chain Authentication (SIWE) or proving ownership."
|
|
277
|
+
};
|
|
278
|
+
}
|
|
279
|
+
exports.actionSignMessage = actionSignMessage;
|
|
280
|
+
function actionRecoverAddress(message, signature) {
|
|
281
|
+
let recovered = null;
|
|
282
|
+
let isValid = false;
|
|
283
|
+
try {
|
|
284
|
+
recovered = ethers_1.ethers.verifyMessage(message, signature);
|
|
285
|
+
isValid = true;
|
|
286
|
+
}
|
|
287
|
+
catch {
|
|
288
|
+
}
|
|
289
|
+
return {
|
|
290
|
+
action: "recoverAddress",
|
|
291
|
+
message,
|
|
292
|
+
signature,
|
|
293
|
+
recoveredAddress: recovered,
|
|
294
|
+
valid: isValid,
|
|
295
|
+
info: "Use 'recoveredAddress' to match against your whitelist of allowed agents."
|
|
296
|
+
};
|
|
297
|
+
}
|
|
298
|
+
exports.actionRecoverAddress = actionRecoverAddress;
|
|
299
|
+
//# sourceMappingURL=actions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"actions.js","sourceRoot":"","sources":["../../../../nodes/CronosX402/utils/actions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "n8n-nodes-cronos-paytech",
|
|
3
|
+
"version": "0.1.1",
|
|
4
|
+
"description": "n8n node for Cronos x402 Agentic Payments",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"n8n-community-node-package"
|
|
7
|
+
],
|
|
8
|
+
"license": "MIT",
|
|
9
|
+
"homepage": "",
|
|
10
|
+
"author": {
|
|
11
|
+
"name": "Ainun",
|
|
12
|
+
"email": "ai@algo.fit"
|
|
13
|
+
},
|
|
14
|
+
"repository": {
|
|
15
|
+
"type": "git",
|
|
16
|
+
"url": "git+https://github.com/ec2ainun/n8n-nodes-cronos-paytech.git"
|
|
17
|
+
},
|
|
18
|
+
"main": "index.js",
|
|
19
|
+
"scripts": {
|
|
20
|
+
"build": "n8n-node build",
|
|
21
|
+
"dev": "n8n-node dev",
|
|
22
|
+
"format": "prettier --write .",
|
|
23
|
+
"lint": "n8n-node lint",
|
|
24
|
+
"lint:fix": "n8n-node lint --fix",
|
|
25
|
+
"prepublishOnly": "n8n-node prerelease",
|
|
26
|
+
"release": "n8n-node release",
|
|
27
|
+
"test": "jest"
|
|
28
|
+
},
|
|
29
|
+
"files": [
|
|
30
|
+
"dist"
|
|
31
|
+
],
|
|
32
|
+
"n8n": {
|
|
33
|
+
"n8nNodesApiVersion": 1,
|
|
34
|
+
"strict": false,
|
|
35
|
+
"nodes": [
|
|
36
|
+
"dist/nodes/CronosX402/CronosX402.node.js"
|
|
37
|
+
],
|
|
38
|
+
"credentials": [
|
|
39
|
+
"dist/credentials/CronosWalletCredentialsApi.credentials.js"
|
|
40
|
+
]
|
|
41
|
+
},
|
|
42
|
+
"devDependencies": {
|
|
43
|
+
"@n8n/node-cli": "^0.18.0",
|
|
44
|
+
"@types/express": "^4.17.6",
|
|
45
|
+
"@types/jest": "^29.5.12",
|
|
46
|
+
"@types/node": "^20.11.24",
|
|
47
|
+
"@types/request-promise-native": "~1.0.15",
|
|
48
|
+
"copyfiles": "^2.4.1",
|
|
49
|
+
"eslint": "^9.0.0",
|
|
50
|
+
"jest": "^29.7.0",
|
|
51
|
+
"n8n-core": "*",
|
|
52
|
+
"prettier": "^3.2.5",
|
|
53
|
+
"ts-jest": "^29.1.2",
|
|
54
|
+
"typescript": "~5.3.3"
|
|
55
|
+
},
|
|
56
|
+
"peerDependencies": {
|
|
57
|
+
"n8n-workflow": "*"
|
|
58
|
+
},
|
|
59
|
+
"dependencies": {
|
|
60
|
+
"@crypto.com/facilitator-client": "^1.0.4",
|
|
61
|
+
"ethers": "^6.11.1"
|
|
62
|
+
}
|
|
63
|
+
}
|