@paylobster/cli 4.0.2 → 4.2.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.
Files changed (64) hide show
  1. package/IMPLEMENTATION_SUMMARY.md +288 -0
  2. package/NEW_FEATURES.md +228 -0
  3. package/dist/src/commands/bridge.d.ts +6 -0
  4. package/dist/src/commands/bridge.d.ts.map +1 -0
  5. package/dist/src/commands/bridge.js +273 -0
  6. package/dist/src/commands/bridge.js.map +1 -0
  7. package/dist/src/commands/cascade.d.ts +3 -0
  8. package/dist/src/commands/cascade.d.ts.map +1 -0
  9. package/dist/src/commands/cascade.js +242 -0
  10. package/dist/src/commands/cascade.js.map +1 -0
  11. package/dist/src/commands/compliance.d.ts +3 -0
  12. package/dist/src/commands/compliance.d.ts.map +1 -0
  13. package/dist/src/commands/compliance.js +121 -0
  14. package/dist/src/commands/compliance.js.map +1 -0
  15. package/dist/src/commands/credit-score.d.ts +3 -0
  16. package/dist/src/commands/credit-score.d.ts.map +1 -0
  17. package/dist/src/commands/credit-score.js +174 -0
  18. package/dist/src/commands/credit-score.js.map +1 -0
  19. package/dist/src/commands/dispute.d.ts +3 -0
  20. package/dist/src/commands/dispute.d.ts.map +1 -0
  21. package/dist/src/commands/dispute.js +241 -0
  22. package/dist/src/commands/dispute.js.map +1 -0
  23. package/dist/src/commands/intent.d.ts +3 -0
  24. package/dist/src/commands/intent.d.ts.map +1 -0
  25. package/dist/src/commands/intent.js +227 -0
  26. package/dist/src/commands/intent.js.map +1 -0
  27. package/dist/src/commands/oracle.d.ts +3 -0
  28. package/dist/src/commands/oracle.d.ts.map +1 -0
  29. package/dist/src/commands/oracle.js +114 -0
  30. package/dist/src/commands/oracle.js.map +1 -0
  31. package/dist/src/commands/portfolio.d.ts +6 -0
  32. package/dist/src/commands/portfolio.d.ts.map +1 -0
  33. package/dist/src/commands/portfolio.js +179 -0
  34. package/dist/src/commands/portfolio.js.map +1 -0
  35. package/dist/src/commands/revenue-share.d.ts +3 -0
  36. package/dist/src/commands/revenue-share.d.ts.map +1 -0
  37. package/dist/src/commands/revenue-share.js +185 -0
  38. package/dist/src/commands/revenue-share.js.map +1 -0
  39. package/dist/src/commands/stream.d.ts +3 -0
  40. package/dist/src/commands/stream.d.ts.map +1 -0
  41. package/dist/src/commands/stream.js +213 -0
  42. package/dist/src/commands/stream.js.map +1 -0
  43. package/dist/src/commands/swap.d.ts +6 -0
  44. package/dist/src/commands/swap.d.ts.map +1 -0
  45. package/dist/src/commands/swap.js +278 -0
  46. package/dist/src/commands/swap.js.map +1 -0
  47. package/dist/src/index.js +23 -1
  48. package/dist/src/index.js.map +1 -1
  49. package/dist/src/lib/types.d.ts +1 -0
  50. package/dist/src/lib/types.d.ts.map +1 -1
  51. package/package.json +1 -1
  52. package/src/commands/bridge.ts +443 -0
  53. package/src/commands/cascade.ts +280 -0
  54. package/src/commands/compliance.ts +123 -0
  55. package/src/commands/credit-score.ts +193 -0
  56. package/src/commands/dispute.ts +274 -0
  57. package/src/commands/intent.ts +261 -0
  58. package/src/commands/oracle.ts +116 -0
  59. package/src/commands/portfolio.ts +227 -0
  60. package/src/commands/revenue-share.ts +213 -0
  61. package/src/commands/stream.ts +244 -0
  62. package/src/commands/swap.ts +365 -0
  63. package/src/index.ts +23 -1
  64. package/src/lib/types.ts +1 -0
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createComplianceCommand = createComplianceCommand;
7
+ const commander_1 = require("commander");
8
+ const display_1 = require("../lib/display");
9
+ const chalk_1 = __importDefault(require("chalk"));
10
+ function createComplianceCommand() {
11
+ const cmd = new commander_1.Command('compliance')
12
+ .description('Check compliance and policy status');
13
+ // plob compliance check
14
+ cmd
15
+ .command('check')
16
+ .description('Check compliance status for an address')
17
+ .argument('<address>', 'Address to check')
18
+ .option('--json', 'Output as JSON')
19
+ .action(async (address, options) => {
20
+ try {
21
+ if (!address.startsWith('0x') || address.length !== 42) {
22
+ (0, display_1.error)('Invalid address format');
23
+ process.exit(1);
24
+ }
25
+ (0, display_1.info)(`Checking compliance for ${(0, display_1.formatAddress)(address)}`);
26
+ // Placeholder data
27
+ const compliance = {
28
+ address,
29
+ approved: true,
30
+ sanctioned: false,
31
+ kycVerified: true,
32
+ riskLevel: 'low',
33
+ jurisdiction: 'US',
34
+ lastChecked: new Date().toISOString(),
35
+ policies: [
36
+ { id: 1, name: 'AML Policy', compliant: true },
37
+ { id: 2, name: 'KYC Policy', compliant: true },
38
+ { id: 3, name: 'Sanctions Screening', compliant: true },
39
+ ],
40
+ };
41
+ if ((0, display_1.outputJSON)(compliance, options)) {
42
+ return;
43
+ }
44
+ console.log();
45
+ console.log(chalk_1.default.bold.cyan('🦞 Compliance Check'));
46
+ console.log(chalk_1.default.gray('─'.repeat(50)));
47
+ console.log('Address: ', compliance.address);
48
+ console.log('Approved: ', (0, display_1.formatBoolean)(compliance.approved));
49
+ console.log('Sanctioned: ', (0, display_1.formatBoolean)(compliance.sanctioned));
50
+ console.log('KYC Verified: ', (0, display_1.formatBoolean)(compliance.kycVerified));
51
+ console.log('Risk Level: ', compliance.riskLevel === 'low' ? chalk_1.default.green(compliance.riskLevel) : chalk_1.default.yellow(compliance.riskLevel));
52
+ console.log('Jurisdiction: ', compliance.jurisdiction);
53
+ console.log('Last Checked: ', compliance.lastChecked);
54
+ console.log();
55
+ console.log(chalk_1.default.bold('Policy Compliance:'));
56
+ compliance.policies.forEach(policy => {
57
+ console.log(` ${(0, display_1.formatBoolean)(policy.compliant)} ${policy.name}`);
58
+ });
59
+ console.log();
60
+ if (!compliance.approved) {
61
+ (0, display_1.warning)('This address is NOT approved for transactions');
62
+ }
63
+ else {
64
+ (0, display_1.success)('Address is compliant');
65
+ }
66
+ }
67
+ catch (err) {
68
+ (0, display_1.error)(`Failed to check compliance: ${err}`);
69
+ process.exit(1);
70
+ }
71
+ });
72
+ // plob compliance policy
73
+ cmd
74
+ .command('policy')
75
+ .description('Get policy details')
76
+ .argument('<policyId>', 'Policy ID')
77
+ .option('--json', 'Output as JSON')
78
+ .action(async (policyId, options) => {
79
+ try {
80
+ // Placeholder data
81
+ const policy = {
82
+ id: policyId,
83
+ name: 'AML Policy',
84
+ version: '1.2.0',
85
+ description: 'Anti-Money Laundering compliance policy',
86
+ requirements: [
87
+ 'Transaction monitoring',
88
+ 'Suspicious activity reporting',
89
+ 'Record keeping (5 years)',
90
+ 'Customer due diligence',
91
+ ],
92
+ effectiveDate: '2024-01-01',
93
+ jurisdiction: 'Global',
94
+ };
95
+ if ((0, display_1.outputJSON)(policy, options)) {
96
+ return;
97
+ }
98
+ console.log();
99
+ console.log(chalk_1.default.bold.cyan('🦞 Policy Details'));
100
+ console.log(chalk_1.default.gray('─'.repeat(50)));
101
+ console.log('Policy ID: ', policy.id);
102
+ console.log('Name: ', policy.name);
103
+ console.log('Version: ', policy.version);
104
+ console.log('Description: ', policy.description);
105
+ console.log('Effective Date: ', policy.effectiveDate);
106
+ console.log('Jurisdiction: ', policy.jurisdiction);
107
+ console.log();
108
+ console.log(chalk_1.default.bold('Requirements:'));
109
+ policy.requirements.forEach(req => {
110
+ console.log(` • ${req}`);
111
+ });
112
+ console.log();
113
+ }
114
+ catch (err) {
115
+ (0, display_1.error)(`Failed to get policy: ${err}`);
116
+ process.exit(1);
117
+ }
118
+ });
119
+ return cmd;
120
+ }
121
+ //# sourceMappingURL=compliance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compliance.js","sourceRoot":"","sources":["../../../src/commands/compliance.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function createCreditScoreCommand(): Command;
3
+ //# sourceMappingURL=credit-score.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credit-score.d.ts","sourceRoot":"","sources":["../../../src/commands/credit-score.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,wBAAgB,wBAAwB,IAAI,OAAO,CA0LlD"}
@@ -0,0 +1,174 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createCreditScoreCommand = createCreditScoreCommand;
7
+ const commander_1 = require("commander");
8
+ const display_1 = require("../lib/display");
9
+ const wallet_1 = require("../lib/wallet");
10
+ const chalk_1 = __importDefault(require("chalk"));
11
+ function createCreditScoreCommand() {
12
+ const cmd = new commander_1.Command('credit-score')
13
+ .description('Check credit scores and manage credit lines')
14
+ .argument('[address]', 'Address to check (optional, defaults to your address)')
15
+ .option('--json', 'Output as JSON')
16
+ .action(async (address, options) => {
17
+ try {
18
+ const targetAddress = address || (0, wallet_1.getWalletAddress)();
19
+ if (address && (!address.startsWith('0x') || address.length !== 42)) {
20
+ (0, display_1.error)('Invalid address format');
21
+ process.exit(1);
22
+ }
23
+ // Placeholder data
24
+ const creditData = {
25
+ address: targetAddress,
26
+ score: 750,
27
+ creditLine: '5000 USDC',
28
+ availableCredit: '3500 USDC',
29
+ usedCredit: '1500 USDC',
30
+ paymentHistory: 'Excellent',
31
+ onTimePayments: 45,
32
+ latePayments: 2,
33
+ totalTransactions: 47,
34
+ };
35
+ if ((0, display_1.outputJSON)(creditData, options)) {
36
+ return;
37
+ }
38
+ console.log();
39
+ console.log(chalk_1.default.bold.cyan('🦞 Credit Score Report'));
40
+ console.log(chalk_1.default.gray('─'.repeat(50)));
41
+ console.log('Address: ', (0, display_1.formatAddress)(creditData.address));
42
+ console.log('Credit Score: ', (0, display_1.printReputation)(creditData.score / 10)); // Convert to 0-100 scale
43
+ console.log();
44
+ console.log(chalk_1.default.bold('Credit Line'));
45
+ console.log(' Total: ', creditData.creditLine);
46
+ console.log(' Available: ', chalk_1.default.green(creditData.availableCredit));
47
+ console.log(' Used: ', chalk_1.default.yellow(creditData.usedCredit));
48
+ console.log();
49
+ console.log(chalk_1.default.bold('Payment History'));
50
+ console.log(' On-time: ', chalk_1.default.green(creditData.onTimePayments));
51
+ console.log(' Late: ', chalk_1.default.red(creditData.latePayments));
52
+ console.log(' Total: ', creditData.totalTransactions);
53
+ console.log(' Rating: ', chalk_1.default.green(creditData.paymentHistory));
54
+ console.log();
55
+ }
56
+ catch (err) {
57
+ (0, display_1.error)(`Failed to get credit score: ${err}`);
58
+ process.exit(1);
59
+ }
60
+ });
61
+ // plob credit-score request
62
+ cmd
63
+ .command('request')
64
+ .description('Request a credit line')
65
+ .requiredOption('--amount <amount>', 'Credit line amount in USDC')
66
+ .option('--json', 'Output as JSON')
67
+ .action(async (options) => {
68
+ try {
69
+ const amount = parseFloat(options.amount);
70
+ if (isNaN(amount) || amount <= 0) {
71
+ (0, display_1.error)('Invalid amount. Must be a positive number');
72
+ process.exit(1);
73
+ }
74
+ (0, display_1.info)(`Requesting credit line: ${options.amount} USDC`);
75
+ const requestId = Math.floor(Math.random() * 1000000);
76
+ const txHash = await (0, display_1.withSpinner)('Submitting credit line request...', async () => {
77
+ // Placeholder - implement actual contract call
78
+ await new Promise(resolve => setTimeout(resolve, 2000));
79
+ return '0x' + Math.random().toString(16).substring(2, 66);
80
+ });
81
+ if ((0, display_1.outputJSON)({
82
+ requestId,
83
+ amount: options.amount,
84
+ txHash,
85
+ }, options)) {
86
+ return;
87
+ }
88
+ (0, display_1.success)('Credit line request submitted!');
89
+ (0, display_1.info)(`Request ID: ${requestId}`);
90
+ (0, display_1.info)(`Amount: ${options.amount} USDC`);
91
+ (0, display_1.info)(`Transaction: ${txHash}`);
92
+ console.log();
93
+ (0, display_1.warning)('Credit requests are subject to approval based on your credit score.');
94
+ }
95
+ catch (err) {
96
+ (0, display_1.error)(`Failed to request credit line: ${err}`);
97
+ process.exit(1);
98
+ }
99
+ });
100
+ // plob credit-score draw
101
+ cmd
102
+ .command('draw')
103
+ .description('Draw from credit line')
104
+ .argument('<creditLineId>', 'Credit line ID')
105
+ .requiredOption('--amount <amount>', 'Amount to draw in USDC')
106
+ .option('--json', 'Output as JSON')
107
+ .action(async (creditLineId, options) => {
108
+ try {
109
+ const amount = parseFloat(options.amount);
110
+ if (isNaN(amount) || amount <= 0) {
111
+ (0, display_1.error)('Invalid amount. Must be a positive number');
112
+ process.exit(1);
113
+ }
114
+ const txHash = await (0, display_1.withSpinner)(`Drawing ${options.amount} USDC from credit line...`, async () => {
115
+ // Placeholder - implement actual contract call
116
+ await new Promise(resolve => setTimeout(resolve, 1500));
117
+ return '0x' + Math.random().toString(16).substring(2, 66);
118
+ });
119
+ if ((0, display_1.outputJSON)({
120
+ creditLineId,
121
+ amount: options.amount,
122
+ txHash,
123
+ }, options)) {
124
+ return;
125
+ }
126
+ (0, display_1.success)('Credit drawn successfully!');
127
+ (0, display_1.info)(`Credit Line ID: ${creditLineId}`);
128
+ (0, display_1.info)(`Amount: ${options.amount} USDC`);
129
+ (0, display_1.info)(`Transaction: ${txHash}`);
130
+ }
131
+ catch (err) {
132
+ (0, display_1.error)(`Failed to draw credit: ${err}`);
133
+ process.exit(1);
134
+ }
135
+ });
136
+ // plob credit-score repay
137
+ cmd
138
+ .command('repay')
139
+ .description('Repay credit line')
140
+ .argument('<creditLineId>', 'Credit line ID')
141
+ .requiredOption('--amount <amount>', 'Amount to repay in USDC')
142
+ .option('--json', 'Output as JSON')
143
+ .action(async (creditLineId, options) => {
144
+ try {
145
+ const amount = parseFloat(options.amount);
146
+ if (isNaN(amount) || amount <= 0) {
147
+ (0, display_1.error)('Invalid amount. Must be a positive number');
148
+ process.exit(1);
149
+ }
150
+ const txHash = await (0, display_1.withSpinner)(`Repaying ${options.amount} USDC to credit line...`, async () => {
151
+ // Placeholder - implement actual contract call
152
+ await new Promise(resolve => setTimeout(resolve, 1500));
153
+ return '0x' + Math.random().toString(16).substring(2, 66);
154
+ });
155
+ if ((0, display_1.outputJSON)({
156
+ creditLineId,
157
+ amount: options.amount,
158
+ txHash,
159
+ }, options)) {
160
+ return;
161
+ }
162
+ (0, display_1.success)('Repayment successful!');
163
+ (0, display_1.info)(`Credit Line ID: ${creditLineId}`);
164
+ (0, display_1.info)(`Amount: ${options.amount} USDC`);
165
+ (0, display_1.info)(`Transaction: ${txHash}`);
166
+ }
167
+ catch (err) {
168
+ (0, display_1.error)(`Failed to repay credit: ${err}`);
169
+ process.exit(1);
170
+ }
171
+ });
172
+ return cmd;
173
+ }
174
+ //# sourceMappingURL=credit-score.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credit-score.js","sourceRoot":"","sources":["../../../src/commands/credit-score.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function createDisputeCommand(): Command;
3
+ //# sourceMappingURL=dispute.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispute.d.ts","sourceRoot":"","sources":["../../../src/commands/dispute.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,wBAAgB,oBAAoB,IAAI,OAAO,CA2Q9C"}
@@ -0,0 +1,241 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createDisputeCommand = createDisputeCommand;
7
+ const commander_1 = require("commander");
8
+ const display_1 = require("../lib/display");
9
+ const promises_1 = __importDefault(require("fs/promises"));
10
+ const path_1 = __importDefault(require("path"));
11
+ function createDisputeCommand() {
12
+ const cmd = new commander_1.Command('dispute')
13
+ .description('Manage escrow disputes');
14
+ // plob dispute open
15
+ cmd
16
+ .command('open')
17
+ .description('Open a dispute for an escrow')
18
+ .requiredOption('--escrow <id>', 'Escrow ID')
19
+ .requiredOption('--reason <reason>', 'Dispute reason')
20
+ .option('--evidence <file>', 'Evidence file path')
21
+ .option('--json', 'Output as JSON')
22
+ .action(async (options) => {
23
+ try {
24
+ let evidenceHash = null;
25
+ // Handle evidence file if provided
26
+ if (options.evidence) {
27
+ const evidencePath = path_1.default.resolve(options.evidence);
28
+ try {
29
+ const evidenceData = await promises_1.default.readFile(evidencePath);
30
+ (0, display_1.info)(`Evidence file loaded: ${path_1.default.basename(evidencePath)} (${evidenceData.length} bytes)`);
31
+ // Placeholder: Upload to IPFS or similar
32
+ evidenceHash = '0x' + Math.random().toString(16).substring(2, 66);
33
+ (0, display_1.info)(`Evidence uploaded: ${evidenceHash}`);
34
+ }
35
+ catch (err) {
36
+ (0, display_1.error)(`Failed to read evidence file: ${err}`);
37
+ process.exit(1);
38
+ }
39
+ }
40
+ const disputeId = Math.floor(Math.random() * 1000000);
41
+ const txHash = await (0, display_1.withSpinner)('Opening dispute...', async () => {
42
+ // Placeholder - implement actual contract call
43
+ await new Promise(resolve => setTimeout(resolve, 2000));
44
+ return '0x' + Math.random().toString(16).substring(2, 66);
45
+ });
46
+ if ((0, display_1.outputJSON)({
47
+ disputeId,
48
+ escrowId: options.escrow,
49
+ reason: options.reason,
50
+ evidenceHash,
51
+ txHash,
52
+ }, options)) {
53
+ return;
54
+ }
55
+ (0, display_1.success)('Dispute opened!');
56
+ (0, display_1.info)(`Dispute ID: ${disputeId}`);
57
+ (0, display_1.info)(`Escrow ID: ${options.escrow}`);
58
+ (0, display_1.info)(`Reason: ${options.reason}`);
59
+ if (evidenceHash) {
60
+ (0, display_1.info)(`Evidence: ${evidenceHash}`);
61
+ }
62
+ (0, display_1.info)(`Transaction: ${txHash}`);
63
+ }
64
+ catch (err) {
65
+ (0, display_1.error)(`Failed to open dispute: ${err}`);
66
+ process.exit(1);
67
+ }
68
+ });
69
+ // plob dispute submit
70
+ cmd
71
+ .command('submit')
72
+ .description('Submit additional evidence for a dispute')
73
+ .argument('<disputeId>', 'Dispute ID')
74
+ .requiredOption('--evidence <file>', 'Evidence file path')
75
+ .option('--json', 'Output as JSON')
76
+ .action(async (disputeId, options) => {
77
+ try {
78
+ const evidencePath = path_1.default.resolve(options.evidence);
79
+ const evidenceData = await promises_1.default.readFile(evidencePath);
80
+ (0, display_1.info)(`Submitting evidence: ${path_1.default.basename(evidencePath)} (${evidenceData.length} bytes)`);
81
+ const evidenceHash = '0x' + Math.random().toString(16).substring(2, 66);
82
+ const txHash = await (0, display_1.withSpinner)('Submitting evidence...', async () => {
83
+ // Placeholder - implement actual contract call
84
+ await new Promise(resolve => setTimeout(resolve, 1500));
85
+ return '0x' + Math.random().toString(16).substring(2, 66);
86
+ });
87
+ if ((0, display_1.outputJSON)({
88
+ disputeId,
89
+ evidenceHash,
90
+ txHash,
91
+ }, options)) {
92
+ return;
93
+ }
94
+ (0, display_1.success)('Evidence submitted!');
95
+ (0, display_1.info)(`Dispute ID: ${disputeId}`);
96
+ (0, display_1.info)(`Evidence: ${evidenceHash}`);
97
+ (0, display_1.info)(`Transaction: ${txHash}`);
98
+ }
99
+ catch (err) {
100
+ (0, display_1.error)(`Failed to submit evidence: ${err}`);
101
+ process.exit(1);
102
+ }
103
+ });
104
+ // plob dispute get
105
+ cmd
106
+ .command('get')
107
+ .description('Get dispute details')
108
+ .argument('<disputeId>', 'Dispute ID')
109
+ .option('--json', 'Output as JSON')
110
+ .action(async (disputeId, options) => {
111
+ try {
112
+ // Placeholder data
113
+ const dispute = {
114
+ id: disputeId,
115
+ escrowId: '123',
116
+ plaintiff: '0x1234567890123456789012345678901234567890',
117
+ defendant: '0x0987654321098765432109876543210987654321',
118
+ reason: 'Service not delivered as agreed',
119
+ status: 'pending',
120
+ evidence: [
121
+ '0xabcd1234...',
122
+ '0xef567890...',
123
+ ],
124
+ createdAt: new Date().toISOString(),
125
+ };
126
+ if ((0, display_1.outputJSON)(dispute, options)) {
127
+ return;
128
+ }
129
+ console.log();
130
+ console.log('Dispute ID: ', dispute.id);
131
+ console.log('Escrow ID: ', dispute.escrowId);
132
+ console.log('Plaintiff: ', dispute.plaintiff);
133
+ console.log('Defendant: ', dispute.defendant);
134
+ console.log('Reason: ', dispute.reason);
135
+ console.log('Status: ', (0, display_1.formatStatus)(dispute.status));
136
+ console.log('Evidence: ', dispute.evidence.length, 'file(s)');
137
+ console.log('Created: ', dispute.createdAt);
138
+ console.log();
139
+ }
140
+ catch (err) {
141
+ (0, display_1.error)(`Failed to get dispute: ${err}`);
142
+ process.exit(1);
143
+ }
144
+ });
145
+ // plob dispute settle
146
+ cmd
147
+ .command('settle')
148
+ .description('Settle a dispute')
149
+ .argument('<disputeId>', 'Dispute ID')
150
+ .requiredOption('--terms <terms>', 'Settlement terms')
151
+ .option('--yes', 'Skip confirmation')
152
+ .option('--json', 'Output as JSON')
153
+ .action(async (disputeId, options) => {
154
+ try {
155
+ if (!options.yes) {
156
+ console.log();
157
+ console.log('Settlement terms:', options.terms);
158
+ console.log();
159
+ const confirmed = await (0, display_1.confirm)(`Settle dispute ${disputeId}?`);
160
+ if (!confirmed) {
161
+ (0, display_1.info)('Cancelled');
162
+ process.exit(0);
163
+ }
164
+ }
165
+ const txHash = await (0, display_1.withSpinner)('Settling dispute...', async () => {
166
+ // Placeholder - implement actual contract call
167
+ await new Promise(resolve => setTimeout(resolve, 2000));
168
+ return '0x' + Math.random().toString(16).substring(2, 66);
169
+ });
170
+ if ((0, display_1.outputJSON)({
171
+ disputeId,
172
+ terms: options.terms,
173
+ txHash,
174
+ }, options)) {
175
+ return;
176
+ }
177
+ (0, display_1.success)('Dispute settled!');
178
+ (0, display_1.info)(`Dispute ID: ${disputeId}`);
179
+ (0, display_1.info)(`Terms: ${options.terms}`);
180
+ (0, display_1.info)(`Transaction: ${txHash}`);
181
+ }
182
+ catch (err) {
183
+ (0, display_1.error)(`Failed to settle dispute: ${err}`);
184
+ process.exit(1);
185
+ }
186
+ });
187
+ // plob dispute list
188
+ cmd
189
+ .command('list')
190
+ .description('List disputes')
191
+ .option('--json', 'Output as JSON')
192
+ .action(async (options) => {
193
+ try {
194
+ // Placeholder data
195
+ const disputes = [
196
+ {
197
+ id: 1,
198
+ escrowId: 123,
199
+ plaintiff: '0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb',
200
+ defendant: '0x8626f6940E2eb28930eFb4CeF49B2d1F2C9C1199',
201
+ reason: 'Service not delivered',
202
+ status: 'pending',
203
+ },
204
+ {
205
+ id: 2,
206
+ escrowId: 456,
207
+ plaintiff: '0x1234567890123456789012345678901234567890',
208
+ defendant: '0x0987654321098765432109876543210987654321',
209
+ reason: 'Quality issues',
210
+ status: 'settled',
211
+ },
212
+ ];
213
+ if ((0, display_1.outputJSON)(disputes, options)) {
214
+ return;
215
+ }
216
+ if (disputes.length === 0) {
217
+ (0, display_1.info)('No disputes found');
218
+ return;
219
+ }
220
+ const table = (0, display_1.createTable)({
221
+ head: ['ID', 'Escrow', 'Plaintiff', 'Defendant', 'Status'],
222
+ });
223
+ for (const dispute of disputes) {
224
+ table.push([
225
+ dispute.id,
226
+ dispute.escrowId,
227
+ (0, display_1.formatAddress)(dispute.plaintiff),
228
+ (0, display_1.formatAddress)(dispute.defendant),
229
+ (0, display_1.formatStatus)(dispute.status),
230
+ ]);
231
+ }
232
+ console.log(table.toString());
233
+ }
234
+ catch (err) {
235
+ (0, display_1.error)(`Failed to list disputes: ${err}`);
236
+ process.exit(1);
237
+ }
238
+ });
239
+ return cmd;
240
+ }
241
+ //# sourceMappingURL=dispute.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispute.js","sourceRoot":"","sources":["../../../src/commands/dispute.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function createIntentCommand(): Command;
3
+ //# sourceMappingURL=intent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intent.d.ts","sourceRoot":"","sources":["../../../src/commands/intent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAgB,mBAAmB,IAAI,OAAO,CAgQ7C"}