@paylobster/cli 4.3.0 → 4.3.1
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"treasury.d.ts","sourceRoot":"","sources":["../../../src/commands/treasury.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"treasury.d.ts","sourceRoot":"","sources":["../../../src/commands/treasury.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoUpC;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,OAAO,CAo8B/C"}
|
|
@@ -177,6 +177,52 @@ const TREASURY_ABI = [
|
|
|
177
177
|
],
|
|
178
178
|
stateMutability: 'view',
|
|
179
179
|
},
|
|
180
|
+
{
|
|
181
|
+
type: 'function',
|
|
182
|
+
name: 'revokeRole',
|
|
183
|
+
inputs: [{ name: 'account', type: 'address' }],
|
|
184
|
+
outputs: [],
|
|
185
|
+
stateMutability: 'nonpayable',
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
type: 'function',
|
|
189
|
+
name: 'setReserveLock',
|
|
190
|
+
inputs: [{ name: 'newLockBps', type: 'uint256' }],
|
|
191
|
+
outputs: [],
|
|
192
|
+
stateMutability: 'nonpayable',
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
type: 'function',
|
|
196
|
+
name: 'approveSpender',
|
|
197
|
+
inputs: [
|
|
198
|
+
{ name: 'token', type: 'address' },
|
|
199
|
+
{ name: 'spender', type: 'address' },
|
|
200
|
+
{ name: 'amount', type: 'uint256' },
|
|
201
|
+
],
|
|
202
|
+
outputs: [],
|
|
203
|
+
stateMutability: 'nonpayable',
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
type: 'function',
|
|
207
|
+
name: 'setIntegration',
|
|
208
|
+
inputs: [
|
|
209
|
+
{ name: 'integrationName', type: 'string' },
|
|
210
|
+
{ name: 'addr', type: 'address' },
|
|
211
|
+
],
|
|
212
|
+
outputs: [],
|
|
213
|
+
stateMutability: 'nonpayable',
|
|
214
|
+
},
|
|
215
|
+
{
|
|
216
|
+
type: 'function',
|
|
217
|
+
name: 'withdrawETH',
|
|
218
|
+
inputs: [
|
|
219
|
+
{ name: 'to', type: 'address' },
|
|
220
|
+
{ name: 'amount', type: 'uint256' },
|
|
221
|
+
{ name: 'reason', type: 'string' },
|
|
222
|
+
],
|
|
223
|
+
outputs: [],
|
|
224
|
+
stateMutability: 'nonpayable',
|
|
225
|
+
},
|
|
180
226
|
];
|
|
181
227
|
const ERC20_ABI = [
|
|
182
228
|
{
|
|
@@ -776,6 +822,277 @@ function createTreasuryCommand() {
|
|
|
776
822
|
process.exit(1);
|
|
777
823
|
}
|
|
778
824
|
});
|
|
825
|
+
// Revoke role
|
|
826
|
+
cmd
|
|
827
|
+
.command('revoke')
|
|
828
|
+
.description('Revoke role from an address')
|
|
829
|
+
.requiredOption('--address <addr>', 'Address to revoke role from')
|
|
830
|
+
.option('--json', 'Output as JSON')
|
|
831
|
+
.action(async (options) => {
|
|
832
|
+
try {
|
|
833
|
+
const accountAddress = options.address;
|
|
834
|
+
const treasuryAddress = await getTreasuryAddress();
|
|
835
|
+
const { client, account } = await (0, wallet_1.loadWallet)();
|
|
836
|
+
const publicClient = (0, contracts_1.getPublicClient)('mainnet');
|
|
837
|
+
const hash = await (0, display_1.withSpinner)('Revoking role...', async () => client.writeContract({
|
|
838
|
+
address: treasuryAddress,
|
|
839
|
+
abi: TREASURY_ABI,
|
|
840
|
+
functionName: 'revokeRole',
|
|
841
|
+
args: [accountAddress],
|
|
842
|
+
account,
|
|
843
|
+
chain: chains_1.base,
|
|
844
|
+
}));
|
|
845
|
+
await publicClient.waitForTransactionReceipt({ hash });
|
|
846
|
+
if ((0, display_1.outputJSON)({
|
|
847
|
+
address: accountAddress,
|
|
848
|
+
transactionHash: hash,
|
|
849
|
+
}, options)) {
|
|
850
|
+
return;
|
|
851
|
+
}
|
|
852
|
+
console.log();
|
|
853
|
+
(0, display_1.success)('Role revoked successfully!');
|
|
854
|
+
console.log();
|
|
855
|
+
console.log(' Address: ', chalk_1.default.gray(accountAddress));
|
|
856
|
+
console.log(' Tx Hash: ', chalk_1.default.gray(hash));
|
|
857
|
+
console.log();
|
|
858
|
+
}
|
|
859
|
+
catch (err) {
|
|
860
|
+
(0, display_1.error)(`Failed to revoke role: ${err}`);
|
|
861
|
+
process.exit(1);
|
|
862
|
+
}
|
|
863
|
+
});
|
|
864
|
+
// Set reserve lock
|
|
865
|
+
cmd
|
|
866
|
+
.command('reserve')
|
|
867
|
+
.description('Set reserve lock percentage (0-5000 bps)')
|
|
868
|
+
.requiredOption('--lock <bps>', 'Reserve lock in basis points (0-5000)')
|
|
869
|
+
.option('--json', 'Output as JSON')
|
|
870
|
+
.action(async (options) => {
|
|
871
|
+
try {
|
|
872
|
+
const lockBps = BigInt(options.lock);
|
|
873
|
+
if (lockBps < 0n || lockBps > 5000n) {
|
|
874
|
+
throw new Error('Reserve lock must be between 0 and 5000 bps (0-50%)');
|
|
875
|
+
}
|
|
876
|
+
const treasuryAddress = await getTreasuryAddress();
|
|
877
|
+
const { client, account } = await (0, wallet_1.loadWallet)();
|
|
878
|
+
const publicClient = (0, contracts_1.getPublicClient)('mainnet');
|
|
879
|
+
const hash = await (0, display_1.withSpinner)('Setting reserve lock...', async () => client.writeContract({
|
|
880
|
+
address: treasuryAddress,
|
|
881
|
+
abi: TREASURY_ABI,
|
|
882
|
+
functionName: 'setReserveLock',
|
|
883
|
+
args: [lockBps],
|
|
884
|
+
account,
|
|
885
|
+
chain: chains_1.base,
|
|
886
|
+
}));
|
|
887
|
+
await publicClient.waitForTransactionReceipt({ hash });
|
|
888
|
+
if ((0, display_1.outputJSON)({
|
|
889
|
+
lockBps: Number(lockBps),
|
|
890
|
+
lockPercent: Number(lockBps) / 100,
|
|
891
|
+
transactionHash: hash,
|
|
892
|
+
}, options)) {
|
|
893
|
+
return;
|
|
894
|
+
}
|
|
895
|
+
console.log();
|
|
896
|
+
(0, display_1.success)('Reserve lock set successfully!');
|
|
897
|
+
console.log();
|
|
898
|
+
console.log(' Lock: ', chalk_1.default.white.bold(`${Number(lockBps) / 100}%`));
|
|
899
|
+
console.log(' Tx Hash: ', chalk_1.default.gray(hash));
|
|
900
|
+
console.log();
|
|
901
|
+
}
|
|
902
|
+
catch (err) {
|
|
903
|
+
(0, display_1.error)(`Failed to set reserve lock: ${err}`);
|
|
904
|
+
process.exit(1);
|
|
905
|
+
}
|
|
906
|
+
});
|
|
907
|
+
// Approve spender
|
|
908
|
+
cmd
|
|
909
|
+
.command('approve')
|
|
910
|
+
.description('Approve token spender')
|
|
911
|
+
.requiredOption('--token <addr>', 'Token address')
|
|
912
|
+
.requiredOption('--spender <addr>', 'Spender address')
|
|
913
|
+
.requiredOption('--amount <amount>', 'Amount to approve')
|
|
914
|
+
.option('--json', 'Output as JSON')
|
|
915
|
+
.action(async (options) => {
|
|
916
|
+
try {
|
|
917
|
+
const tokenAddress = options.token;
|
|
918
|
+
const spenderAddress = options.spender;
|
|
919
|
+
const treasuryAddress = await getTreasuryAddress();
|
|
920
|
+
const { client, account } = await (0, wallet_1.loadWallet)();
|
|
921
|
+
const publicClient = (0, contracts_1.getPublicClient)('mainnet');
|
|
922
|
+
// Get token decimals
|
|
923
|
+
const decimals = await publicClient.readContract({
|
|
924
|
+
address: tokenAddress,
|
|
925
|
+
abi: ERC20_ABI,
|
|
926
|
+
functionName: 'decimals',
|
|
927
|
+
});
|
|
928
|
+
const amount = (0, viem_1.parseUnits)(options.amount, decimals);
|
|
929
|
+
const hash = await (0, display_1.withSpinner)('Approving spender...', async () => client.writeContract({
|
|
930
|
+
address: treasuryAddress,
|
|
931
|
+
abi: TREASURY_ABI,
|
|
932
|
+
functionName: 'approveSpender',
|
|
933
|
+
args: [tokenAddress, spenderAddress, amount],
|
|
934
|
+
account,
|
|
935
|
+
chain: chains_1.base,
|
|
936
|
+
}));
|
|
937
|
+
await publicClient.waitForTransactionReceipt({ hash });
|
|
938
|
+
if ((0, display_1.outputJSON)({
|
|
939
|
+
token: tokenAddress,
|
|
940
|
+
spender: spenderAddress,
|
|
941
|
+
amount: options.amount,
|
|
942
|
+
transactionHash: hash,
|
|
943
|
+
}, options)) {
|
|
944
|
+
return;
|
|
945
|
+
}
|
|
946
|
+
console.log();
|
|
947
|
+
(0, display_1.success)('Spender approved successfully!');
|
|
948
|
+
console.log();
|
|
949
|
+
console.log(' Token: ', chalk_1.default.gray(tokenAddress));
|
|
950
|
+
console.log(' Spender: ', chalk_1.default.gray(spenderAddress));
|
|
951
|
+
console.log(' Amount: ', chalk_1.default.white.bold(options.amount));
|
|
952
|
+
console.log(' Tx Hash: ', chalk_1.default.gray(hash));
|
|
953
|
+
console.log();
|
|
954
|
+
}
|
|
955
|
+
catch (err) {
|
|
956
|
+
(0, display_1.error)(`Failed to approve spender: ${err}`);
|
|
957
|
+
process.exit(1);
|
|
958
|
+
}
|
|
959
|
+
});
|
|
960
|
+
// Set integration
|
|
961
|
+
cmd
|
|
962
|
+
.command('integrate')
|
|
963
|
+
.description('Set integration contract')
|
|
964
|
+
.requiredOption('--name <name>', 'Integration name (spendingMandate|policyRegistry|crossRailLedger)')
|
|
965
|
+
.requiredOption('--address <addr>', 'Integration contract address')
|
|
966
|
+
.option('--json', 'Output as JSON')
|
|
967
|
+
.action(async (options) => {
|
|
968
|
+
try {
|
|
969
|
+
const validNames = ['spendingMandate', 'policyRegistry', 'crossRailLedger'];
|
|
970
|
+
if (!validNames.includes(options.name)) {
|
|
971
|
+
throw new Error(`Invalid integration name. Must be one of: ${validNames.join(', ')}`);
|
|
972
|
+
}
|
|
973
|
+
const integrationAddress = options.address;
|
|
974
|
+
const treasuryAddress = await getTreasuryAddress();
|
|
975
|
+
const { client, account } = await (0, wallet_1.loadWallet)();
|
|
976
|
+
const publicClient = (0, contracts_1.getPublicClient)('mainnet');
|
|
977
|
+
const hash = await (0, display_1.withSpinner)('Setting integration...', async () => client.writeContract({
|
|
978
|
+
address: treasuryAddress,
|
|
979
|
+
abi: TREASURY_ABI,
|
|
980
|
+
functionName: 'setIntegration',
|
|
981
|
+
args: [options.name, integrationAddress],
|
|
982
|
+
account,
|
|
983
|
+
chain: chains_1.base,
|
|
984
|
+
}));
|
|
985
|
+
await publicClient.waitForTransactionReceipt({ hash });
|
|
986
|
+
if ((0, display_1.outputJSON)({
|
|
987
|
+
name: options.name,
|
|
988
|
+
address: integrationAddress,
|
|
989
|
+
transactionHash: hash,
|
|
990
|
+
}, options)) {
|
|
991
|
+
return;
|
|
992
|
+
}
|
|
993
|
+
console.log();
|
|
994
|
+
(0, display_1.success)('Integration set successfully!');
|
|
995
|
+
console.log();
|
|
996
|
+
console.log(' Name: ', chalk_1.default.white.bold(options.name));
|
|
997
|
+
console.log(' Address: ', chalk_1.default.gray(integrationAddress));
|
|
998
|
+
console.log(' Tx Hash: ', chalk_1.default.gray(hash));
|
|
999
|
+
console.log();
|
|
1000
|
+
}
|
|
1001
|
+
catch (err) {
|
|
1002
|
+
(0, display_1.error)(`Failed to set integration: ${err}`);
|
|
1003
|
+
process.exit(1);
|
|
1004
|
+
}
|
|
1005
|
+
});
|
|
1006
|
+
// Withdraw ETH
|
|
1007
|
+
cmd
|
|
1008
|
+
.command('withdraw-eth')
|
|
1009
|
+
.description('Withdraw ETH from treasury')
|
|
1010
|
+
.requiredOption('--to <addr>', 'Recipient address')
|
|
1011
|
+
.requiredOption('--amount <amount>', 'Amount in ETH')
|
|
1012
|
+
.requiredOption('--reason <string>', 'Withdrawal reason')
|
|
1013
|
+
.option('--json', 'Output as JSON')
|
|
1014
|
+
.action(async (options) => {
|
|
1015
|
+
try {
|
|
1016
|
+
const toAddress = options.to;
|
|
1017
|
+
const treasuryAddress = await getTreasuryAddress();
|
|
1018
|
+
const { client, account } = await (0, wallet_1.loadWallet)();
|
|
1019
|
+
const publicClient = (0, contracts_1.getPublicClient)('mainnet');
|
|
1020
|
+
const amount = (0, viem_1.parseUnits)(options.amount, 18);
|
|
1021
|
+
const hash = await (0, display_1.withSpinner)('Withdrawing ETH...', async () => client.writeContract({
|
|
1022
|
+
address: treasuryAddress,
|
|
1023
|
+
abi: TREASURY_ABI,
|
|
1024
|
+
functionName: 'withdrawETH',
|
|
1025
|
+
args: [toAddress, amount, options.reason],
|
|
1026
|
+
account,
|
|
1027
|
+
chain: chains_1.base,
|
|
1028
|
+
}));
|
|
1029
|
+
await publicClient.waitForTransactionReceipt({ hash });
|
|
1030
|
+
if ((0, display_1.outputJSON)({
|
|
1031
|
+
to: toAddress,
|
|
1032
|
+
amount: options.amount,
|
|
1033
|
+
reason: options.reason,
|
|
1034
|
+
transactionHash: hash,
|
|
1035
|
+
}, options)) {
|
|
1036
|
+
return;
|
|
1037
|
+
}
|
|
1038
|
+
console.log();
|
|
1039
|
+
(0, display_1.success)('ETH withdrawn successfully!');
|
|
1040
|
+
console.log();
|
|
1041
|
+
console.log(' Amount: ', chalk_1.default.white.bold(`${options.amount} ETH`));
|
|
1042
|
+
console.log(' To: ', chalk_1.default.gray(toAddress));
|
|
1043
|
+
console.log(' Reason: ', chalk_1.default.white(options.reason));
|
|
1044
|
+
console.log(' Tx Hash: ', chalk_1.default.gray(hash));
|
|
1045
|
+
console.log();
|
|
1046
|
+
}
|
|
1047
|
+
catch (err) {
|
|
1048
|
+
(0, display_1.error)(`Failed to withdraw ETH: ${err}`);
|
|
1049
|
+
process.exit(1);
|
|
1050
|
+
}
|
|
1051
|
+
});
|
|
1052
|
+
// Get spend limits
|
|
1053
|
+
cmd
|
|
1054
|
+
.command('limits')
|
|
1055
|
+
.description('View spend limits for an operator')
|
|
1056
|
+
.requiredOption('--address <addr>', 'Operator address')
|
|
1057
|
+
.option('--json', 'Output as JSON')
|
|
1058
|
+
.action(async (address, options) => {
|
|
1059
|
+
try {
|
|
1060
|
+
const operatorAddress = options.address;
|
|
1061
|
+
const treasuryAddress = await getTreasuryAddress();
|
|
1062
|
+
const publicClient = (0, contracts_1.getPublicClient)('mainnet');
|
|
1063
|
+
const limits = await (0, display_1.withSpinner)('Fetching spend limits...', async () => publicClient.readContract({
|
|
1064
|
+
address: treasuryAddress,
|
|
1065
|
+
abi: TREASURY_ABI,
|
|
1066
|
+
functionName: 'spendLimits',
|
|
1067
|
+
args: [operatorAddress],
|
|
1068
|
+
}));
|
|
1069
|
+
const [maxPerTx, maxPerDay, spentToday, dayStart] = limits;
|
|
1070
|
+
if ((0, display_1.outputJSON)({
|
|
1071
|
+
operator: operatorAddress,
|
|
1072
|
+
maxPerTx: (0, viem_1.formatUnits)(maxPerTx, 6),
|
|
1073
|
+
maxPerDay: (0, viem_1.formatUnits)(maxPerDay, 6),
|
|
1074
|
+
spentToday: (0, viem_1.formatUnits)(spentToday, 6),
|
|
1075
|
+
dayStart: Number(dayStart),
|
|
1076
|
+
remainingToday: (0, viem_1.formatUnits)(maxPerDay - spentToday, 6),
|
|
1077
|
+
}, options)) {
|
|
1078
|
+
return;
|
|
1079
|
+
}
|
|
1080
|
+
console.log();
|
|
1081
|
+
console.log(chalk_1.default.bold.cyan('💳 Spend Limits'));
|
|
1082
|
+
console.log();
|
|
1083
|
+
console.log(' Operator: ', chalk_1.default.gray(operatorAddress));
|
|
1084
|
+
console.log(' Max Per Tx: ', chalk_1.default.white.bold(`$${(0, viem_1.formatUnits)(maxPerTx, 6)}`));
|
|
1085
|
+
console.log(' Max Per Day: ', chalk_1.default.white.bold(`$${(0, viem_1.formatUnits)(maxPerDay, 6)}`));
|
|
1086
|
+
console.log(' Spent Today: ', chalk_1.default.yellow(`$${(0, viem_1.formatUnits)(spentToday, 6)}`));
|
|
1087
|
+
console.log(' Remaining Today: ', chalk_1.default.green(`$${(0, viem_1.formatUnits)(maxPerDay - spentToday, 6)}`));
|
|
1088
|
+
console.log(' Day Start: ', chalk_1.default.gray(new Date(Number(dayStart) * 1000).toLocaleString()));
|
|
1089
|
+
console.log();
|
|
1090
|
+
}
|
|
1091
|
+
catch (err) {
|
|
1092
|
+
(0, display_1.error)(`Failed to get spend limits: ${err}`);
|
|
1093
|
+
process.exit(1);
|
|
1094
|
+
}
|
|
1095
|
+
});
|
|
779
1096
|
return cmd;
|
|
780
1097
|
}
|
|
781
1098
|
//# sourceMappingURL=treasury.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"treasury.js","sourceRoot":"","sources":["../../../src/commands/treasury.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"treasury.js","sourceRoot":"","sources":["../../../src/commands/treasury.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/commands/treasury.ts
CHANGED
|
@@ -176,6 +176,52 @@ const TREASURY_ABI = [
|
|
|
176
176
|
],
|
|
177
177
|
stateMutability: 'view',
|
|
178
178
|
},
|
|
179
|
+
{
|
|
180
|
+
type: 'function',
|
|
181
|
+
name: 'revokeRole',
|
|
182
|
+
inputs: [{ name: 'account', type: 'address' }],
|
|
183
|
+
outputs: [],
|
|
184
|
+
stateMutability: 'nonpayable',
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
type: 'function',
|
|
188
|
+
name: 'setReserveLock',
|
|
189
|
+
inputs: [{ name: 'newLockBps', type: 'uint256' }],
|
|
190
|
+
outputs: [],
|
|
191
|
+
stateMutability: 'nonpayable',
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
type: 'function',
|
|
195
|
+
name: 'approveSpender',
|
|
196
|
+
inputs: [
|
|
197
|
+
{ name: 'token', type: 'address' },
|
|
198
|
+
{ name: 'spender', type: 'address' },
|
|
199
|
+
{ name: 'amount', type: 'uint256' },
|
|
200
|
+
],
|
|
201
|
+
outputs: [],
|
|
202
|
+
stateMutability: 'nonpayable',
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
type: 'function',
|
|
206
|
+
name: 'setIntegration',
|
|
207
|
+
inputs: [
|
|
208
|
+
{ name: 'integrationName', type: 'string' },
|
|
209
|
+
{ name: 'addr', type: 'address' },
|
|
210
|
+
],
|
|
211
|
+
outputs: [],
|
|
212
|
+
stateMutability: 'nonpayable',
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
type: 'function',
|
|
216
|
+
name: 'withdrawETH',
|
|
217
|
+
inputs: [
|
|
218
|
+
{ name: 'to', type: 'address' },
|
|
219
|
+
{ name: 'amount', type: 'uint256' },
|
|
220
|
+
{ name: 'reason', type: 'string' },
|
|
221
|
+
],
|
|
222
|
+
outputs: [],
|
|
223
|
+
stateMutability: 'nonpayable',
|
|
224
|
+
},
|
|
179
225
|
] as const;
|
|
180
226
|
|
|
181
227
|
const ERC20_ABI = [
|
|
@@ -903,5 +949,344 @@ export function createTreasuryCommand(): Command {
|
|
|
903
949
|
}
|
|
904
950
|
});
|
|
905
951
|
|
|
952
|
+
// Revoke role
|
|
953
|
+
cmd
|
|
954
|
+
.command('revoke')
|
|
955
|
+
.description('Revoke role from an address')
|
|
956
|
+
.requiredOption('--address <addr>', 'Address to revoke role from')
|
|
957
|
+
.option('--json', 'Output as JSON')
|
|
958
|
+
.action(async (options: {
|
|
959
|
+
address: string;
|
|
960
|
+
} & OutputOptions) => {
|
|
961
|
+
try {
|
|
962
|
+
const accountAddress = options.address as Address;
|
|
963
|
+
const treasuryAddress = await getTreasuryAddress();
|
|
964
|
+
const { client, account } = await loadWallet();
|
|
965
|
+
const publicClient = getPublicClient('mainnet');
|
|
966
|
+
|
|
967
|
+
const hash = await withSpinner(
|
|
968
|
+
'Revoking role...',
|
|
969
|
+
async () =>
|
|
970
|
+
client.writeContract({
|
|
971
|
+
address: treasuryAddress,
|
|
972
|
+
abi: TREASURY_ABI,
|
|
973
|
+
functionName: 'revokeRole',
|
|
974
|
+
args: [accountAddress],
|
|
975
|
+
account,
|
|
976
|
+
chain: base,
|
|
977
|
+
})
|
|
978
|
+
);
|
|
979
|
+
|
|
980
|
+
await publicClient.waitForTransactionReceipt({ hash });
|
|
981
|
+
|
|
982
|
+
if (outputJSON({
|
|
983
|
+
address: accountAddress,
|
|
984
|
+
transactionHash: hash,
|
|
985
|
+
}, options)) {
|
|
986
|
+
return;
|
|
987
|
+
}
|
|
988
|
+
|
|
989
|
+
console.log();
|
|
990
|
+
success('Role revoked successfully!');
|
|
991
|
+
console.log();
|
|
992
|
+
console.log(' Address: ', chalk.gray(accountAddress));
|
|
993
|
+
console.log(' Tx Hash: ', chalk.gray(hash));
|
|
994
|
+
console.log();
|
|
995
|
+
} catch (err) {
|
|
996
|
+
error(`Failed to revoke role: ${err}`);
|
|
997
|
+
process.exit(1);
|
|
998
|
+
}
|
|
999
|
+
});
|
|
1000
|
+
|
|
1001
|
+
// Set reserve lock
|
|
1002
|
+
cmd
|
|
1003
|
+
.command('reserve')
|
|
1004
|
+
.description('Set reserve lock percentage (0-5000 bps)')
|
|
1005
|
+
.requiredOption('--lock <bps>', 'Reserve lock in basis points (0-5000)')
|
|
1006
|
+
.option('--json', 'Output as JSON')
|
|
1007
|
+
.action(async (options: {
|
|
1008
|
+
lock: string;
|
|
1009
|
+
} & OutputOptions) => {
|
|
1010
|
+
try {
|
|
1011
|
+
const lockBps = BigInt(options.lock);
|
|
1012
|
+
if (lockBps < 0n || lockBps > 5000n) {
|
|
1013
|
+
throw new Error('Reserve lock must be between 0 and 5000 bps (0-50%)');
|
|
1014
|
+
}
|
|
1015
|
+
|
|
1016
|
+
const treasuryAddress = await getTreasuryAddress();
|
|
1017
|
+
const { client, account } = await loadWallet();
|
|
1018
|
+
const publicClient = getPublicClient('mainnet');
|
|
1019
|
+
|
|
1020
|
+
const hash = await withSpinner(
|
|
1021
|
+
'Setting reserve lock...',
|
|
1022
|
+
async () =>
|
|
1023
|
+
client.writeContract({
|
|
1024
|
+
address: treasuryAddress,
|
|
1025
|
+
abi: TREASURY_ABI,
|
|
1026
|
+
functionName: 'setReserveLock',
|
|
1027
|
+
args: [lockBps],
|
|
1028
|
+
account,
|
|
1029
|
+
chain: base,
|
|
1030
|
+
})
|
|
1031
|
+
);
|
|
1032
|
+
|
|
1033
|
+
await publicClient.waitForTransactionReceipt({ hash });
|
|
1034
|
+
|
|
1035
|
+
if (outputJSON({
|
|
1036
|
+
lockBps: Number(lockBps),
|
|
1037
|
+
lockPercent: Number(lockBps) / 100,
|
|
1038
|
+
transactionHash: hash,
|
|
1039
|
+
}, options)) {
|
|
1040
|
+
return;
|
|
1041
|
+
}
|
|
1042
|
+
|
|
1043
|
+
console.log();
|
|
1044
|
+
success('Reserve lock set successfully!');
|
|
1045
|
+
console.log();
|
|
1046
|
+
console.log(' Lock: ', chalk.white.bold(`${Number(lockBps) / 100}%`));
|
|
1047
|
+
console.log(' Tx Hash: ', chalk.gray(hash));
|
|
1048
|
+
console.log();
|
|
1049
|
+
} catch (err) {
|
|
1050
|
+
error(`Failed to set reserve lock: ${err}`);
|
|
1051
|
+
process.exit(1);
|
|
1052
|
+
}
|
|
1053
|
+
});
|
|
1054
|
+
|
|
1055
|
+
// Approve spender
|
|
1056
|
+
cmd
|
|
1057
|
+
.command('approve')
|
|
1058
|
+
.description('Approve token spender')
|
|
1059
|
+
.requiredOption('--token <addr>', 'Token address')
|
|
1060
|
+
.requiredOption('--spender <addr>', 'Spender address')
|
|
1061
|
+
.requiredOption('--amount <amount>', 'Amount to approve')
|
|
1062
|
+
.option('--json', 'Output as JSON')
|
|
1063
|
+
.action(async (options: {
|
|
1064
|
+
token: string;
|
|
1065
|
+
spender: string;
|
|
1066
|
+
amount: string;
|
|
1067
|
+
} & OutputOptions) => {
|
|
1068
|
+
try {
|
|
1069
|
+
const tokenAddress = options.token as Address;
|
|
1070
|
+
const spenderAddress = options.spender as Address;
|
|
1071
|
+
const treasuryAddress = await getTreasuryAddress();
|
|
1072
|
+
const { client, account } = await loadWallet();
|
|
1073
|
+
const publicClient = getPublicClient('mainnet');
|
|
1074
|
+
|
|
1075
|
+
// Get token decimals
|
|
1076
|
+
const decimals = await publicClient.readContract({
|
|
1077
|
+
address: tokenAddress,
|
|
1078
|
+
abi: ERC20_ABI,
|
|
1079
|
+
functionName: 'decimals',
|
|
1080
|
+
});
|
|
1081
|
+
|
|
1082
|
+
const amount = parseUnits(options.amount, decimals);
|
|
1083
|
+
|
|
1084
|
+
const hash = await withSpinner(
|
|
1085
|
+
'Approving spender...',
|
|
1086
|
+
async () =>
|
|
1087
|
+
client.writeContract({
|
|
1088
|
+
address: treasuryAddress,
|
|
1089
|
+
abi: TREASURY_ABI,
|
|
1090
|
+
functionName: 'approveSpender',
|
|
1091
|
+
args: [tokenAddress, spenderAddress, amount],
|
|
1092
|
+
account,
|
|
1093
|
+
chain: base,
|
|
1094
|
+
})
|
|
1095
|
+
);
|
|
1096
|
+
|
|
1097
|
+
await publicClient.waitForTransactionReceipt({ hash });
|
|
1098
|
+
|
|
1099
|
+
if (outputJSON({
|
|
1100
|
+
token: tokenAddress,
|
|
1101
|
+
spender: spenderAddress,
|
|
1102
|
+
amount: options.amount,
|
|
1103
|
+
transactionHash: hash,
|
|
1104
|
+
}, options)) {
|
|
1105
|
+
return;
|
|
1106
|
+
}
|
|
1107
|
+
|
|
1108
|
+
console.log();
|
|
1109
|
+
success('Spender approved successfully!');
|
|
1110
|
+
console.log();
|
|
1111
|
+
console.log(' Token: ', chalk.gray(tokenAddress));
|
|
1112
|
+
console.log(' Spender: ', chalk.gray(spenderAddress));
|
|
1113
|
+
console.log(' Amount: ', chalk.white.bold(options.amount));
|
|
1114
|
+
console.log(' Tx Hash: ', chalk.gray(hash));
|
|
1115
|
+
console.log();
|
|
1116
|
+
} catch (err) {
|
|
1117
|
+
error(`Failed to approve spender: ${err}`);
|
|
1118
|
+
process.exit(1);
|
|
1119
|
+
}
|
|
1120
|
+
});
|
|
1121
|
+
|
|
1122
|
+
// Set integration
|
|
1123
|
+
cmd
|
|
1124
|
+
.command('integrate')
|
|
1125
|
+
.description('Set integration contract')
|
|
1126
|
+
.requiredOption('--name <name>', 'Integration name (spendingMandate|policyRegistry|crossRailLedger)')
|
|
1127
|
+
.requiredOption('--address <addr>', 'Integration contract address')
|
|
1128
|
+
.option('--json', 'Output as JSON')
|
|
1129
|
+
.action(async (options: {
|
|
1130
|
+
name: string;
|
|
1131
|
+
address: string;
|
|
1132
|
+
} & OutputOptions) => {
|
|
1133
|
+
try {
|
|
1134
|
+
const validNames = ['spendingMandate', 'policyRegistry', 'crossRailLedger'];
|
|
1135
|
+
if (!validNames.includes(options.name)) {
|
|
1136
|
+
throw new Error(`Invalid integration name. Must be one of: ${validNames.join(', ')}`);
|
|
1137
|
+
}
|
|
1138
|
+
|
|
1139
|
+
const integrationAddress = options.address as Address;
|
|
1140
|
+
const treasuryAddress = await getTreasuryAddress();
|
|
1141
|
+
const { client, account } = await loadWallet();
|
|
1142
|
+
const publicClient = getPublicClient('mainnet');
|
|
1143
|
+
|
|
1144
|
+
const hash = await withSpinner(
|
|
1145
|
+
'Setting integration...',
|
|
1146
|
+
async () =>
|
|
1147
|
+
client.writeContract({
|
|
1148
|
+
address: treasuryAddress,
|
|
1149
|
+
abi: TREASURY_ABI,
|
|
1150
|
+
functionName: 'setIntegration',
|
|
1151
|
+
args: [options.name, integrationAddress],
|
|
1152
|
+
account,
|
|
1153
|
+
chain: base,
|
|
1154
|
+
})
|
|
1155
|
+
);
|
|
1156
|
+
|
|
1157
|
+
await publicClient.waitForTransactionReceipt({ hash });
|
|
1158
|
+
|
|
1159
|
+
if (outputJSON({
|
|
1160
|
+
name: options.name,
|
|
1161
|
+
address: integrationAddress,
|
|
1162
|
+
transactionHash: hash,
|
|
1163
|
+
}, options)) {
|
|
1164
|
+
return;
|
|
1165
|
+
}
|
|
1166
|
+
|
|
1167
|
+
console.log();
|
|
1168
|
+
success('Integration set successfully!');
|
|
1169
|
+
console.log();
|
|
1170
|
+
console.log(' Name: ', chalk.white.bold(options.name));
|
|
1171
|
+
console.log(' Address: ', chalk.gray(integrationAddress));
|
|
1172
|
+
console.log(' Tx Hash: ', chalk.gray(hash));
|
|
1173
|
+
console.log();
|
|
1174
|
+
} catch (err) {
|
|
1175
|
+
error(`Failed to set integration: ${err}`);
|
|
1176
|
+
process.exit(1);
|
|
1177
|
+
}
|
|
1178
|
+
});
|
|
1179
|
+
|
|
1180
|
+
// Withdraw ETH
|
|
1181
|
+
cmd
|
|
1182
|
+
.command('withdraw-eth')
|
|
1183
|
+
.description('Withdraw ETH from treasury')
|
|
1184
|
+
.requiredOption('--to <addr>', 'Recipient address')
|
|
1185
|
+
.requiredOption('--amount <amount>', 'Amount in ETH')
|
|
1186
|
+
.requiredOption('--reason <string>', 'Withdrawal reason')
|
|
1187
|
+
.option('--json', 'Output as JSON')
|
|
1188
|
+
.action(async (options: {
|
|
1189
|
+
to: string;
|
|
1190
|
+
amount: string;
|
|
1191
|
+
reason: string;
|
|
1192
|
+
} & OutputOptions) => {
|
|
1193
|
+
try {
|
|
1194
|
+
const toAddress = options.to as Address;
|
|
1195
|
+
const treasuryAddress = await getTreasuryAddress();
|
|
1196
|
+
const { client, account } = await loadWallet();
|
|
1197
|
+
const publicClient = getPublicClient('mainnet');
|
|
1198
|
+
|
|
1199
|
+
const amount = parseUnits(options.amount, 18);
|
|
1200
|
+
|
|
1201
|
+
const hash = await withSpinner(
|
|
1202
|
+
'Withdrawing ETH...',
|
|
1203
|
+
async () =>
|
|
1204
|
+
client.writeContract({
|
|
1205
|
+
address: treasuryAddress,
|
|
1206
|
+
abi: TREASURY_ABI,
|
|
1207
|
+
functionName: 'withdrawETH',
|
|
1208
|
+
args: [toAddress, amount, options.reason],
|
|
1209
|
+
account,
|
|
1210
|
+
chain: base,
|
|
1211
|
+
})
|
|
1212
|
+
);
|
|
1213
|
+
|
|
1214
|
+
await publicClient.waitForTransactionReceipt({ hash });
|
|
1215
|
+
|
|
1216
|
+
if (outputJSON({
|
|
1217
|
+
to: toAddress,
|
|
1218
|
+
amount: options.amount,
|
|
1219
|
+
reason: options.reason,
|
|
1220
|
+
transactionHash: hash,
|
|
1221
|
+
}, options)) {
|
|
1222
|
+
return;
|
|
1223
|
+
}
|
|
1224
|
+
|
|
1225
|
+
console.log();
|
|
1226
|
+
success('ETH withdrawn successfully!');
|
|
1227
|
+
console.log();
|
|
1228
|
+
console.log(' Amount: ', chalk.white.bold(`${options.amount} ETH`));
|
|
1229
|
+
console.log(' To: ', chalk.gray(toAddress));
|
|
1230
|
+
console.log(' Reason: ', chalk.white(options.reason));
|
|
1231
|
+
console.log(' Tx Hash: ', chalk.gray(hash));
|
|
1232
|
+
console.log();
|
|
1233
|
+
} catch (err) {
|
|
1234
|
+
error(`Failed to withdraw ETH: ${err}`);
|
|
1235
|
+
process.exit(1);
|
|
1236
|
+
}
|
|
1237
|
+
});
|
|
1238
|
+
|
|
1239
|
+
// Get spend limits
|
|
1240
|
+
cmd
|
|
1241
|
+
.command('limits')
|
|
1242
|
+
.description('View spend limits for an operator')
|
|
1243
|
+
.requiredOption('--address <addr>', 'Operator address')
|
|
1244
|
+
.option('--json', 'Output as JSON')
|
|
1245
|
+
.action(async (address: string, options: OutputOptions & { address: string }) => {
|
|
1246
|
+
try {
|
|
1247
|
+
const operatorAddress = options.address as Address;
|
|
1248
|
+
const treasuryAddress = await getTreasuryAddress();
|
|
1249
|
+
const publicClient = getPublicClient('mainnet');
|
|
1250
|
+
|
|
1251
|
+
const limits = await withSpinner(
|
|
1252
|
+
'Fetching spend limits...',
|
|
1253
|
+
async () =>
|
|
1254
|
+
publicClient.readContract({
|
|
1255
|
+
address: treasuryAddress,
|
|
1256
|
+
abi: TREASURY_ABI,
|
|
1257
|
+
functionName: 'spendLimits',
|
|
1258
|
+
args: [operatorAddress],
|
|
1259
|
+
})
|
|
1260
|
+
);
|
|
1261
|
+
|
|
1262
|
+
const [maxPerTx, maxPerDay, spentToday, dayStart] = limits;
|
|
1263
|
+
|
|
1264
|
+
if (outputJSON({
|
|
1265
|
+
operator: operatorAddress,
|
|
1266
|
+
maxPerTx: formatUnits(maxPerTx, 6),
|
|
1267
|
+
maxPerDay: formatUnits(maxPerDay, 6),
|
|
1268
|
+
spentToday: formatUnits(spentToday, 6),
|
|
1269
|
+
dayStart: Number(dayStart),
|
|
1270
|
+
remainingToday: formatUnits(maxPerDay - spentToday, 6),
|
|
1271
|
+
}, options)) {
|
|
1272
|
+
return;
|
|
1273
|
+
}
|
|
1274
|
+
|
|
1275
|
+
console.log();
|
|
1276
|
+
console.log(chalk.bold.cyan('💳 Spend Limits'));
|
|
1277
|
+
console.log();
|
|
1278
|
+
console.log(' Operator: ', chalk.gray(operatorAddress));
|
|
1279
|
+
console.log(' Max Per Tx: ', chalk.white.bold(`$${formatUnits(maxPerTx, 6)}`));
|
|
1280
|
+
console.log(' Max Per Day: ', chalk.white.bold(`$${formatUnits(maxPerDay, 6)}`));
|
|
1281
|
+
console.log(' Spent Today: ', chalk.yellow(`$${formatUnits(spentToday, 6)}`));
|
|
1282
|
+
console.log(' Remaining Today: ', chalk.green(`$${formatUnits(maxPerDay - spentToday, 6)}`));
|
|
1283
|
+
console.log(' Day Start: ', chalk.gray(new Date(Number(dayStart) * 1000).toLocaleString()));
|
|
1284
|
+
console.log();
|
|
1285
|
+
} catch (err) {
|
|
1286
|
+
error(`Failed to get spend limits: ${err}`);
|
|
1287
|
+
process.exit(1);
|
|
1288
|
+
}
|
|
1289
|
+
});
|
|
1290
|
+
|
|
906
1291
|
return cmd;
|
|
907
1292
|
}
|