@rebelfi/agent-sdk 1.0.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.
Files changed (243) hide show
  1. package/README.md +337 -0
  2. package/dist/amount-utils.d.ts +9 -0
  3. package/dist/amount-utils.js +80 -0
  4. package/dist/amount-utils.js.map +1 -0
  5. package/dist/cjs/amount-utils.js +87 -0
  6. package/dist/cjs/amount-utils.js.map +1 -0
  7. package/dist/cjs/cli.js +189 -0
  8. package/dist/cjs/cli.js.map +1 -0
  9. package/dist/cjs/client.js +49 -0
  10. package/dist/cjs/client.js.map +1 -0
  11. package/dist/cjs/commands/account.js +250 -0
  12. package/dist/cjs/commands/account.js.map +1 -0
  13. package/dist/cjs/commands/auth.js +78 -0
  14. package/dist/cjs/commands/auth.js.map +1 -0
  15. package/dist/cjs/commands/balance.js +15 -0
  16. package/dist/cjs/commands/balance.js.map +1 -0
  17. package/dist/cjs/commands/cancel.js +34 -0
  18. package/dist/cjs/commands/cancel.js.map +1 -0
  19. package/dist/cjs/commands/chat.js +15 -0
  20. package/dist/cjs/commands/chat.js.map +1 -0
  21. package/dist/cjs/commands/claim.js +34 -0
  22. package/dist/cjs/commands/claim.js.map +1 -0
  23. package/dist/cjs/commands/config.js +29 -0
  24. package/dist/cjs/commands/config.js.map +1 -0
  25. package/dist/cjs/commands/contacts.js +29 -0
  26. package/dist/cjs/commands/contacts.js.map +1 -0
  27. package/dist/cjs/commands/init.js +43 -0
  28. package/dist/cjs/commands/init.js.map +1 -0
  29. package/dist/cjs/commands/orders.js +167 -0
  30. package/dist/cjs/commands/orders.js.map +1 -0
  31. package/dist/cjs/commands/pay.js +41 -0
  32. package/dist/cjs/commands/pay.js.map +1 -0
  33. package/dist/cjs/commands/payments.js +27 -0
  34. package/dist/cjs/commands/payments.js.map +1 -0
  35. package/dist/cjs/commands/wallet.js +69 -0
  36. package/dist/cjs/commands/wallet.js.map +1 -0
  37. package/dist/cjs/config.js +91 -0
  38. package/dist/cjs/config.js.map +1 -0
  39. package/dist/cjs/contacts.js +87 -0
  40. package/dist/cjs/contacts.js.map +1 -0
  41. package/dist/cjs/errors.js +93 -0
  42. package/dist/cjs/errors.js.map +1 -0
  43. package/dist/cjs/index.js +64 -0
  44. package/dist/cjs/index.js.map +1 -0
  45. package/dist/cjs/intent/chains.js +29 -0
  46. package/dist/cjs/intent/chains.js.map +1 -0
  47. package/dist/cjs/intent/constraints.js +46 -0
  48. package/dist/cjs/intent/constraints.js.map +1 -0
  49. package/dist/cjs/intent/helpers.js +34 -0
  50. package/dist/cjs/intent/helpers.js.map +1 -0
  51. package/dist/cjs/intent/index.js +99 -0
  52. package/dist/cjs/intent/index.js.map +1 -0
  53. package/dist/cjs/intent/matcher.js +119 -0
  54. package/dist/cjs/intent/matcher.js.map +1 -0
  55. package/dist/cjs/intent/program-registry.js +68 -0
  56. package/dist/cjs/intent/program-registry.js.map +1 -0
  57. package/dist/cjs/intent/token-registry.js +99 -0
  58. package/dist/cjs/intent/token-registry.js.map +1 -0
  59. package/dist/cjs/intent/types.js +3 -0
  60. package/dist/cjs/intent/types.js.map +1 -0
  61. package/dist/cjs/orders/evaluate.js +168 -0
  62. package/dist/cjs/orders/evaluate.js.map +1 -0
  63. package/dist/cjs/orders/index.js +14 -0
  64. package/dist/cjs/orders/index.js.map +1 -0
  65. package/dist/cjs/orders/store.js +47 -0
  66. package/dist/cjs/orders/store.js.map +1 -0
  67. package/dist/cjs/orders/sugar.js +35 -0
  68. package/dist/cjs/orders/sugar.js.map +1 -0
  69. package/dist/cjs/orders/types.js +3 -0
  70. package/dist/cjs/orders/types.js.map +1 -0
  71. package/dist/cjs/output.js +47 -0
  72. package/dist/cjs/output.js.map +1 -0
  73. package/dist/cjs/package.json +1 -0
  74. package/dist/cjs/transfers.js +15 -0
  75. package/dist/cjs/transfers.js.map +1 -0
  76. package/dist/cjs/validate.js +77 -0
  77. package/dist/cjs/validate.js.map +1 -0
  78. package/dist/cjs/verify/decoders/ata.js +19 -0
  79. package/dist/cjs/verify/decoders/ata.js.map +1 -0
  80. package/dist/cjs/verify/decoders/compute-budget.js +32 -0
  81. package/dist/cjs/verify/decoders/compute-budget.js.map +1 -0
  82. package/dist/cjs/verify/decoders/handshake.js +180 -0
  83. package/dist/cjs/verify/decoders/handshake.js.map +1 -0
  84. package/dist/cjs/verify/decoders/jupiter.js +39 -0
  85. package/dist/cjs/verify/decoders/jupiter.js.map +1 -0
  86. package/dist/cjs/verify/decoders/memo.js +12 -0
  87. package/dist/cjs/verify/decoders/memo.js.map +1 -0
  88. package/dist/cjs/verify/decoders/silkysig.js +162 -0
  89. package/dist/cjs/verify/decoders/silkysig.js.map +1 -0
  90. package/dist/cjs/verify/decoders/spl-token.js +125 -0
  91. package/dist/cjs/verify/decoders/spl-token.js.map +1 -0
  92. package/dist/cjs/verify/decoders/system.js +87 -0
  93. package/dist/cjs/verify/decoders/system.js.map +1 -0
  94. package/dist/cjs/verify/flags.js +87 -0
  95. package/dist/cjs/verify/flags.js.map +1 -0
  96. package/dist/cjs/verify/index.js +384 -0
  97. package/dist/cjs/verify/index.js.map +1 -0
  98. package/dist/cjs/verify/registry.js +24 -0
  99. package/dist/cjs/verify/registry.js.map +1 -0
  100. package/dist/cjs/verify/rpc.js +52 -0
  101. package/dist/cjs/verify/rpc.js.map +1 -0
  102. package/dist/cli.d.ts +2 -0
  103. package/dist/cli.js +224 -0
  104. package/dist/cli.js.map +1 -0
  105. package/dist/client.d.ts +7 -0
  106. package/dist/client.js +43 -0
  107. package/dist/client.js.map +1 -0
  108. package/dist/commands/account.d.ts +21 -0
  109. package/dist/commands/account.js +239 -0
  110. package/dist/commands/account.js.map +1 -0
  111. package/dist/commands/auth.d.ts +5 -0
  112. package/dist/commands/auth.js +70 -0
  113. package/dist/commands/auth.js.map +1 -0
  114. package/dist/commands/balance.d.ts +3 -0
  115. package/dist/commands/balance.js +12 -0
  116. package/dist/commands/balance.js.map +1 -0
  117. package/dist/commands/cancel.d.ts +3 -0
  118. package/dist/commands/cancel.js +28 -0
  119. package/dist/commands/cancel.js.map +1 -0
  120. package/dist/commands/chat.d.ts +1 -0
  121. package/dist/commands/chat.js +12 -0
  122. package/dist/commands/chat.js.map +1 -0
  123. package/dist/commands/claim.d.ts +3 -0
  124. package/dist/commands/claim.js +28 -0
  125. package/dist/commands/claim.js.map +1 -0
  126. package/dist/commands/config.d.ts +3 -0
  127. package/dist/commands/config.js +24 -0
  128. package/dist/commands/config.js.map +1 -0
  129. package/dist/commands/contacts.d.ts +4 -0
  130. package/dist/commands/contacts.js +23 -0
  131. package/dist/commands/contacts.js.map +1 -0
  132. package/dist/commands/init.d.ts +1 -0
  133. package/dist/commands/init.js +37 -0
  134. package/dist/commands/init.js.map +1 -0
  135. package/dist/commands/orders.d.ts +19 -0
  136. package/dist/commands/orders.js +157 -0
  137. package/dist/commands/orders.js.map +1 -0
  138. package/dist/commands/pay.d.ts +4 -0
  139. package/dist/commands/pay.js +35 -0
  140. package/dist/commands/pay.js.map +1 -0
  141. package/dist/commands/payments.d.ts +4 -0
  142. package/dist/commands/payments.js +23 -0
  143. package/dist/commands/payments.js.map +1 -0
  144. package/dist/commands/wallet.d.ts +7 -0
  145. package/dist/commands/wallet.js +61 -0
  146. package/dist/commands/wallet.js.map +1 -0
  147. package/dist/config.d.ts +40 -0
  148. package/dist/config.js +74 -0
  149. package/dist/config.js.map +1 -0
  150. package/dist/contacts.d.ts +15 -0
  151. package/dist/contacts.js +74 -0
  152. package/dist/contacts.js.map +1 -0
  153. package/dist/errors.d.ts +14 -0
  154. package/dist/errors.js +87 -0
  155. package/dist/errors.js.map +1 -0
  156. package/dist/index.d.ts +18 -0
  157. package/dist/index.js +14 -0
  158. package/dist/index.js.map +1 -0
  159. package/dist/intent/chains.d.ts +7 -0
  160. package/dist/intent/chains.js +24 -0
  161. package/dist/intent/chains.js.map +1 -0
  162. package/dist/intent/constraints.d.ts +8 -0
  163. package/dist/intent/constraints.js +43 -0
  164. package/dist/intent/constraints.js.map +1 -0
  165. package/dist/intent/helpers.d.ts +6 -0
  166. package/dist/intent/helpers.js +27 -0
  167. package/dist/intent/helpers.js.map +1 -0
  168. package/dist/intent/index.d.ts +11 -0
  169. package/dist/intent/index.js +87 -0
  170. package/dist/intent/index.js.map +1 -0
  171. package/dist/intent/matcher.d.ts +8 -0
  172. package/dist/intent/matcher.js +116 -0
  173. package/dist/intent/matcher.js.map +1 -0
  174. package/dist/intent/program-registry.d.ts +13 -0
  175. package/dist/intent/program-registry.js +65 -0
  176. package/dist/intent/program-registry.js.map +1 -0
  177. package/dist/intent/token-registry.d.ts +17 -0
  178. package/dist/intent/token-registry.js +96 -0
  179. package/dist/intent/token-registry.js.map +1 -0
  180. package/dist/intent/types.d.ts +89 -0
  181. package/dist/intent/types.js +2 -0
  182. package/dist/intent/types.js.map +1 -0
  183. package/dist/orders/evaluate.d.ts +28 -0
  184. package/dist/orders/evaluate.js +165 -0
  185. package/dist/orders/evaluate.js.map +1 -0
  186. package/dist/orders/index.d.ts +7 -0
  187. package/dist/orders/index.js +4 -0
  188. package/dist/orders/index.js.map +1 -0
  189. package/dist/orders/store.d.ts +9 -0
  190. package/dist/orders/store.js +37 -0
  191. package/dist/orders/store.js.map +1 -0
  192. package/dist/orders/sugar.d.ts +13 -0
  193. package/dist/orders/sugar.js +32 -0
  194. package/dist/orders/sugar.js.map +1 -0
  195. package/dist/orders/types.d.ts +37 -0
  196. package/dist/orders/types.js +2 -0
  197. package/dist/orders/types.js.map +1 -0
  198. package/dist/output.d.ts +4 -0
  199. package/dist/output.js +42 -0
  200. package/dist/output.js.map +1 -0
  201. package/dist/transfers.d.ts +32 -0
  202. package/dist/transfers.js +12 -0
  203. package/dist/transfers.js.map +1 -0
  204. package/dist/validate.d.ts +8 -0
  205. package/dist/validate.js +69 -0
  206. package/dist/validate.js.map +1 -0
  207. package/dist/verify/decoders/ata.d.ts +5 -0
  208. package/dist/verify/decoders/ata.js +16 -0
  209. package/dist/verify/decoders/ata.js.map +1 -0
  210. package/dist/verify/decoders/compute-budget.d.ts +5 -0
  211. package/dist/verify/decoders/compute-budget.js +29 -0
  212. package/dist/verify/decoders/compute-budget.js.map +1 -0
  213. package/dist/verify/decoders/handshake.d.ts +5 -0
  214. package/dist/verify/decoders/handshake.js +177 -0
  215. package/dist/verify/decoders/handshake.js.map +1 -0
  216. package/dist/verify/decoders/jupiter.d.ts +5 -0
  217. package/dist/verify/decoders/jupiter.js +36 -0
  218. package/dist/verify/decoders/jupiter.js.map +1 -0
  219. package/dist/verify/decoders/memo.d.ts +5 -0
  220. package/dist/verify/decoders/memo.js +9 -0
  221. package/dist/verify/decoders/memo.js.map +1 -0
  222. package/dist/verify/decoders/silkysig.d.ts +5 -0
  223. package/dist/verify/decoders/silkysig.js +159 -0
  224. package/dist/verify/decoders/silkysig.js.map +1 -0
  225. package/dist/verify/decoders/spl-token.d.ts +5 -0
  226. package/dist/verify/decoders/spl-token.js +122 -0
  227. package/dist/verify/decoders/spl-token.js.map +1 -0
  228. package/dist/verify/decoders/system.d.ts +5 -0
  229. package/dist/verify/decoders/system.js +84 -0
  230. package/dist/verify/decoders/system.js.map +1 -0
  231. package/dist/verify/flags.d.ts +3 -0
  232. package/dist/verify/flags.js +83 -0
  233. package/dist/verify/flags.js.map +1 -0
  234. package/dist/verify/index.d.ts +75 -0
  235. package/dist/verify/index.js +380 -0
  236. package/dist/verify/index.js.map +1 -0
  237. package/dist/verify/registry.d.ts +13 -0
  238. package/dist/verify/registry.js +21 -0
  239. package/dist/verify/registry.js.map +1 -0
  240. package/dist/verify/rpc.d.ts +14 -0
  241. package/dist/verify/rpc.js +48 -0
  242. package/dist/verify/rpc.js.map +1 -0
  243. package/package.json +85 -0
@@ -0,0 +1,189 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ const node_module_1 = require("node:module");
5
+ const commander_1 = require("commander");
6
+ const wallet_js_1 = require("./commands/wallet.js");
7
+ const auth_js_1 = require("./commands/auth.js");
8
+ const require = (0, node_module_1.createRequire)(import.meta.url);
9
+ const { version } = require('../package.json');
10
+ const balance_js_1 = require("./commands/balance.js");
11
+ const pay_js_1 = require("./commands/pay.js");
12
+ const claim_js_1 = require("./commands/claim.js");
13
+ const cancel_js_1 = require("./commands/cancel.js");
14
+ const payments_js_1 = require("./commands/payments.js");
15
+ const config_js_1 = require("./commands/config.js");
16
+ const account_js_1 = require("./commands/account.js");
17
+ const contacts_js_1 = require("./commands/contacts.js");
18
+ const chat_js_1 = require("./commands/chat.js");
19
+ const init_js_1 = require("./commands/init.js");
20
+ const output_js_1 = require("./output.js");
21
+ const program = new commander_1.Command();
22
+ program
23
+ .name('silky')
24
+ .description('SilkyWay SDK — Agent banking and payments on Solana')
25
+ .version(version)
26
+ .option('--human', 'Human-readable output');
27
+ // init
28
+ program
29
+ .command('init')
30
+ .description('Initialize Silk CLI (create default wallet and agent ID)')
31
+ .action((0, output_js_1.wrapCommand)(init_js_1.init));
32
+ // auth commands
33
+ const auth = program.command('auth').description('Manage API key authentication');
34
+ auth
35
+ .command('register')
36
+ .option('--wallet <label>', 'Wallet to sign the challenge with')
37
+ .description('Register and receive an API key via Solana signature')
38
+ .action((0, output_js_1.wrapCommand)(auth_js_1.authRegister));
39
+ auth
40
+ .command('status')
41
+ .description('Show API key status')
42
+ .action((0, output_js_1.wrapCommand)(auth_js_1.authStatus));
43
+ auth
44
+ .command('revoke')
45
+ .description('Revoke the current API key')
46
+ .action((0, output_js_1.wrapCommand)(auth_js_1.authRevoke));
47
+ // wallet commands
48
+ const wallet = program.command('wallet').description('Manage wallets');
49
+ wallet
50
+ .command('create')
51
+ .argument('[label]', 'wallet label', 'main')
52
+ .description('Create a new wallet')
53
+ .action((0, output_js_1.wrapCommand)(wallet_js_1.walletCreate));
54
+ wallet
55
+ .command('list')
56
+ .description('List all wallets')
57
+ .action((0, output_js_1.wrapCommand)(wallet_js_1.walletList));
58
+ wallet
59
+ .command('fund')
60
+ .option('--sol', 'Request SOL only')
61
+ .option('--usdc', 'Request USDC only')
62
+ .option('--wallet <label>', 'Wallet to fund')
63
+ .description('Fund wallet from devnet faucet (devnet only)')
64
+ .action((0, output_js_1.wrapCommand)(wallet_js_1.walletFund));
65
+ // balance
66
+ program
67
+ .command('balance')
68
+ .option('--wallet <label>', 'Wallet to check')
69
+ .description('Check wallet balances')
70
+ .action((0, output_js_1.wrapCommand)(balance_js_1.balance));
71
+ // pay
72
+ program
73
+ .command('pay')
74
+ .argument('<recipient>', 'Recipient wallet address')
75
+ .argument('<amount>', 'Amount in USDC')
76
+ .option('--memo <text>', 'Payment memo')
77
+ .option('--wallet <label>', 'Sender wallet')
78
+ .description('Send a USDC payment')
79
+ .action((0, output_js_1.wrapCommand)(pay_js_1.pay));
80
+ // claim
81
+ program
82
+ .command('claim')
83
+ .argument('<transferPda>', 'Transfer PDA to claim')
84
+ .option('--wallet <label>', 'Wallet to claim with')
85
+ .description('Claim a received payment')
86
+ .action((0, output_js_1.wrapCommand)(claim_js_1.claim));
87
+ // cancel
88
+ program
89
+ .command('cancel')
90
+ .argument('<transferPda>', 'Transfer PDA to cancel')
91
+ .option('--wallet <label>', 'Wallet to cancel with')
92
+ .description('Cancel a sent payment')
93
+ .action((0, output_js_1.wrapCommand)(cancel_js_1.cancel));
94
+ // payments
95
+ const payments = program.command('payments').description('View payment history');
96
+ payments
97
+ .command('list')
98
+ .option('--wallet <label>', 'Wallet to query')
99
+ .description('List transfers')
100
+ .action((0, output_js_1.wrapCommand)(payments_js_1.paymentsList));
101
+ payments
102
+ .command('get')
103
+ .argument('<transferPda>', 'Transfer PDA')
104
+ .description('Get transfer details')
105
+ .action((0, output_js_1.wrapCommand)(payments_js_1.paymentsGet));
106
+ // config
107
+ const config = program.command('config').description('SDK configuration');
108
+ config
109
+ .command('set-cluster')
110
+ .argument('<cluster>', 'Cluster: mainnet-beta or devnet')
111
+ .description('Set the Solana cluster')
112
+ .action((0, output_js_1.wrapCommand)(config_js_1.configSetCluster));
113
+ config
114
+ .command('get-cluster')
115
+ .description('Show the current Solana cluster')
116
+ .action((0, output_js_1.wrapCommand)(config_js_1.configGetCluster));
117
+ config
118
+ .command('reset-cluster')
119
+ .description('Reset cluster to default (mainnet-beta)')
120
+ .action((0, output_js_1.wrapCommand)(config_js_1.configResetCluster));
121
+ // account commands
122
+ const account = program.command('account').description('Manage Silkysig account');
123
+ account
124
+ .command('sync')
125
+ .option('--wallet <label>', 'Wallet to sync')
126
+ .option('--account <pda>', 'Sync a specific account by PDA')
127
+ .description('Discover and sync your account')
128
+ .action((0, output_js_1.wrapCommand)(account_js_1.accountSync));
129
+ account
130
+ .command('status')
131
+ .option('--wallet <label>', 'Wallet to check')
132
+ .description('Show account balance and policy')
133
+ .action((0, output_js_1.wrapCommand)(account_js_1.accountStatus));
134
+ account
135
+ .command('events')
136
+ .option('--type <eventType>', 'Filter by event type')
137
+ .option('--wallet <label>', 'Wallet to check')
138
+ .description('List account events')
139
+ .action((0, output_js_1.wrapCommand)(account_js_1.accountEvents));
140
+ account
141
+ .command('deposit')
142
+ .argument('<amount>', 'Amount in USDC')
143
+ .option('--wallet <label>', 'Wallet to deposit from')
144
+ .description('Deposit into account')
145
+ .action((0, output_js_1.wrapCommand)(account_js_1.accountDeposit));
146
+ account
147
+ .command('withdraw')
148
+ .argument('<amount>', 'Amount in USDC')
149
+ .option('--wallet <label>', 'Wallet to withdraw to')
150
+ .description('Withdraw from account to your wallet')
151
+ .action((0, output_js_1.wrapCommand)(account_js_1.accountWithdraw));
152
+ account
153
+ .command('send')
154
+ .argument('<recipient>', 'Recipient wallet address')
155
+ .argument('<amount>', 'Amount in USDC')
156
+ .option('--memo <text>', 'Payment memo')
157
+ .option('--wallet <label>', 'Sender wallet')
158
+ .description('Send from account (policy-enforced)')
159
+ .action((0, output_js_1.wrapCommand)(account_js_1.accountSend));
160
+ // contacts commands
161
+ const contacts = program.command('contacts').description('Manage address book');
162
+ contacts
163
+ .command('add')
164
+ .argument('<name>', 'Contact name')
165
+ .argument('<address>', 'Solana wallet address')
166
+ .description('Add a contact')
167
+ .action((0, output_js_1.wrapCommand)(contacts_js_1.contactsAdd));
168
+ contacts
169
+ .command('remove')
170
+ .argument('<name>', 'Contact name')
171
+ .description('Remove a contact')
172
+ .action((0, output_js_1.wrapCommand)(contacts_js_1.contactsRemove));
173
+ contacts
174
+ .command('list')
175
+ .description('List all contacts')
176
+ .action((0, output_js_1.wrapCommand)(contacts_js_1.contactsList));
177
+ contacts
178
+ .command('get')
179
+ .argument('<name>', 'Contact name')
180
+ .description('Get a contact address')
181
+ .action((0, output_js_1.wrapCommand)(contacts_js_1.contactsGet));
182
+ // chat
183
+ program
184
+ .command('chat')
185
+ .argument('<message>', 'Message to send to support')
186
+ .description('Chat with SilkyWay support agent')
187
+ .action((0, output_js_1.wrapCommand)(chat_js_1.chat));
188
+ program.parse();
189
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":";;;AACA,6CAA4C;AAC5C,yCAAoC;AACpC,oDAA4E;AAC5E,gDAA0E;AAE1E,MAAM,OAAO,GAAG,IAAA,2BAAa,EAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAC/C,sDAAgD;AAChD,8CAAwC;AACxC,kDAA4C;AAC5C,oDAA8C;AAC9C,wDAAmE;AACnE,oDAA8F;AAC9F,sDAAgI;AAChI,wDAAgG;AAChG,gDAA0C;AAC1C,gDAA0C;AAC1C,2CAA0C;AAE1C,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAC9B,OAAO;KACJ,IAAI,CAAC,OAAO,CAAC;KACb,WAAW,CAAC,qDAAqD,CAAC;KAClE,OAAO,CAAC,OAAO,CAAC;KAChB,MAAM,CAAC,SAAS,EAAE,uBAAuB,CAAC,CAAC;AAE9C,OAAO;AACP,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,0DAA0D,CAAC;KACvE,MAAM,CAAC,IAAA,uBAAW,EAAC,cAAI,CAAC,CAAC,CAAC;AAE7B,gBAAgB;AAChB,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,+BAA+B,CAAC,CAAC;AAClF,IAAI;KACD,OAAO,CAAC,UAAU,CAAC;KACnB,MAAM,CAAC,kBAAkB,EAAE,mCAAmC,CAAC;KAC/D,WAAW,CAAC,sDAAsD,CAAC;KACnE,MAAM,CAAC,IAAA,uBAAW,EAAC,sBAAY,CAAC,CAAC,CAAC;AACrC,IAAI;KACD,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,qBAAqB,CAAC;KAClC,MAAM,CAAC,IAAA,uBAAW,EAAC,oBAAU,CAAC,CAAC,CAAC;AACnC,IAAI;KACD,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,4BAA4B,CAAC;KACzC,MAAM,CAAC,IAAA,uBAAW,EAAC,oBAAU,CAAC,CAAC,CAAC;AAEnC,kBAAkB;AAClB,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;AACvE,MAAM;KACH,OAAO,CAAC,QAAQ,CAAC;KACjB,QAAQ,CAAC,SAAS,EAAE,cAAc,EAAE,MAAM,CAAC;KAC3C,WAAW,CAAC,qBAAqB,CAAC;KAClC,MAAM,CAAC,IAAA,uBAAW,EAAC,wBAAY,CAAC,CAAC,CAAC;AACrC,MAAM;KACH,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,kBAAkB,CAAC;KAC/B,MAAM,CAAC,IAAA,uBAAW,EAAC,sBAAU,CAAC,CAAC,CAAC;AACnC,MAAM;KACH,OAAO,CAAC,MAAM,CAAC;KACf,MAAM,CAAC,OAAO,EAAE,kBAAkB,CAAC;KACnC,MAAM,CAAC,QAAQ,EAAE,mBAAmB,CAAC;KACrC,MAAM,CAAC,kBAAkB,EAAE,gBAAgB,CAAC;KAC5C,WAAW,CAAC,8CAA8C,CAAC;KAC3D,MAAM,CAAC,IAAA,uBAAW,EAAC,sBAAU,CAAC,CAAC,CAAC;AAEnC,UAAU;AACV,OAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,MAAM,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;KAC7C,WAAW,CAAC,uBAAuB,CAAC;KACpC,MAAM,CAAC,IAAA,uBAAW,EAAC,oBAAO,CAAC,CAAC,CAAC;AAEhC,MAAM;AACN,OAAO;KACJ,OAAO,CAAC,KAAK,CAAC;KACd,QAAQ,CAAC,aAAa,EAAE,0BAA0B,CAAC;KACnD,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;KACtC,MAAM,CAAC,eAAe,EAAE,cAAc,CAAC;KACvC,MAAM,CAAC,kBAAkB,EAAE,eAAe,CAAC;KAC3C,WAAW,CAAC,qBAAqB,CAAC;KAClC,MAAM,CAAC,IAAA,uBAAW,EAAC,YAAG,CAAC,CAAC,CAAC;AAE5B,QAAQ;AACR,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,QAAQ,CAAC,eAAe,EAAE,uBAAuB,CAAC;KAClD,MAAM,CAAC,kBAAkB,EAAE,sBAAsB,CAAC;KAClD,WAAW,CAAC,0BAA0B,CAAC;KACvC,MAAM,CAAC,IAAA,uBAAW,EAAC,gBAAK,CAAC,CAAC,CAAC;AAE9B,SAAS;AACT,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,QAAQ,CAAC,eAAe,EAAE,wBAAwB,CAAC;KACnD,MAAM,CAAC,kBAAkB,EAAE,uBAAuB,CAAC;KACnD,WAAW,CAAC,uBAAuB,CAAC;KACpC,MAAM,CAAC,IAAA,uBAAW,EAAC,kBAAM,CAAC,CAAC,CAAC;AAE/B,WAAW;AACX,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC;AACjF,QAAQ;KACL,OAAO,CAAC,MAAM,CAAC;KACf,MAAM,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;KAC7C,WAAW,CAAC,gBAAgB,CAAC;KAC7B,MAAM,CAAC,IAAA,uBAAW,EAAC,0BAAY,CAAC,CAAC,CAAC;AACrC,QAAQ;KACL,OAAO,CAAC,KAAK,CAAC;KACd,QAAQ,CAAC,eAAe,EAAE,cAAc,CAAC;KACzC,WAAW,CAAC,sBAAsB,CAAC;KACnC,MAAM,CAAC,IAAA,uBAAW,EAAC,yBAAW,CAAC,CAAC,CAAC;AAEpC,SAAS;AACT,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;AAC1E,MAAM;KACH,OAAO,CAAC,aAAa,CAAC;KACtB,QAAQ,CAAC,WAAW,EAAE,iCAAiC,CAAC;KACxD,WAAW,CAAC,wBAAwB,CAAC;KACrC,MAAM,CAAC,IAAA,uBAAW,EAAC,4BAAgB,CAAC,CAAC,CAAC;AACzC,MAAM;KACH,OAAO,CAAC,aAAa,CAAC;KACtB,WAAW,CAAC,iCAAiC,CAAC;KAC9C,MAAM,CAAC,IAAA,uBAAW,EAAC,4BAAgB,CAAC,CAAC,CAAC;AACzC,MAAM;KACH,OAAO,CAAC,eAAe,CAAC;KACxB,WAAW,CAAC,yCAAyC,CAAC;KACtD,MAAM,CAAC,IAAA,uBAAW,EAAC,8BAAkB,CAAC,CAAC,CAAC;AAE3C,mBAAmB;AACnB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,yBAAyB,CAAC,CAAC;AAClF,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,MAAM,CAAC,kBAAkB,EAAE,gBAAgB,CAAC;KAC5C,MAAM,CAAC,iBAAiB,EAAE,gCAAgC,CAAC;KAC3D,WAAW,CAAC,gCAAgC,CAAC;KAC7C,MAAM,CAAC,IAAA,uBAAW,EAAC,wBAAW,CAAC,CAAC,CAAC;AACpC,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,MAAM,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;KAC7C,WAAW,CAAC,iCAAiC,CAAC;KAC9C,MAAM,CAAC,IAAA,uBAAW,EAAC,0BAAa,CAAC,CAAC,CAAC;AACtC,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,MAAM,CAAC,oBAAoB,EAAE,sBAAsB,CAAC;KACpD,MAAM,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;KAC7C,WAAW,CAAC,qBAAqB,CAAC;KAClC,MAAM,CAAC,IAAA,uBAAW,EAAC,0BAAa,CAAC,CAAC,CAAC;AACtC,OAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;KACtC,MAAM,CAAC,kBAAkB,EAAE,wBAAwB,CAAC;KACpD,WAAW,CAAC,sBAAsB,CAAC;KACnC,MAAM,CAAC,IAAA,uBAAW,EAAC,2BAAc,CAAC,CAAC,CAAC;AACvC,OAAO;KACJ,OAAO,CAAC,UAAU,CAAC;KACnB,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;KACtC,MAAM,CAAC,kBAAkB,EAAE,uBAAuB,CAAC;KACnD,WAAW,CAAC,sCAAsC,CAAC;KACnD,MAAM,CAAC,IAAA,uBAAW,EAAC,4BAAe,CAAC,CAAC,CAAC;AACxC,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,QAAQ,CAAC,aAAa,EAAE,0BAA0B,CAAC;KACnD,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;KACtC,MAAM,CAAC,eAAe,EAAE,cAAc,CAAC;KACvC,MAAM,CAAC,kBAAkB,EAAE,eAAe,CAAC;KAC3C,WAAW,CAAC,qCAAqC,CAAC;KAClD,MAAM,CAAC,IAAA,uBAAW,EAAC,wBAAW,CAAC,CAAC,CAAC;AAEpC,oBAAoB;AACpB,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC;AAChF,QAAQ;KACL,OAAO,CAAC,KAAK,CAAC;KACd,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;KAClC,QAAQ,CAAC,WAAW,EAAE,uBAAuB,CAAC;KAC9C,WAAW,CAAC,eAAe,CAAC;KAC5B,MAAM,CAAC,IAAA,uBAAW,EAAC,yBAAW,CAAC,CAAC,CAAC;AACpC,QAAQ;KACL,OAAO,CAAC,QAAQ,CAAC;KACjB,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;KAClC,WAAW,CAAC,kBAAkB,CAAC;KAC/B,MAAM,CAAC,IAAA,uBAAW,EAAC,4BAAc,CAAC,CAAC,CAAC;AACvC,QAAQ;KACL,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,mBAAmB,CAAC;KAChC,MAAM,CAAC,IAAA,uBAAW,EAAC,0BAAY,CAAC,CAAC,CAAC;AACrC,QAAQ;KACL,OAAO,CAAC,KAAK,CAAC;KACd,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;KAClC,WAAW,CAAC,uBAAuB,CAAC;KACpC,MAAM,CAAC,IAAA,uBAAW,EAAC,yBAAW,CAAC,CAAC,CAAC;AAEpC,OAAO;AACP,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,QAAQ,CAAC,WAAW,EAAE,4BAA4B,CAAC;KACnD,WAAW,CAAC,kCAAkC,CAAC;KAC/C,MAAM,CAAC,IAAA,uBAAW,EAAC,cAAI,CAAC,CAAC,CAAC;AAE7B,OAAO,CAAC,KAAK,EAAE,CAAC"}
@@ -0,0 +1,49 @@
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.createHttpClient = createHttpClient;
7
+ const axios_1 = __importDefault(require("axios"));
8
+ const errors_js_1 = require("./errors.js");
9
+ const DEFAULT_TIMEOUT = 30000;
10
+ function createHttpClient(config = {}) {
11
+ const headers = { 'Content-Type': 'application/json' };
12
+ if (config.apiKey) {
13
+ headers['Authorization'] = `Bearer ${config.apiKey}`;
14
+ }
15
+ const client = axios_1.default.create({
16
+ baseURL: config.baseUrl || 'http://localhost:3000',
17
+ timeout: config.timeout || DEFAULT_TIMEOUT,
18
+ headers,
19
+ });
20
+ client.interceptors.response.use((response) => response, (error) => {
21
+ if (error.response?.status === 401) {
22
+ throw new errors_js_1.SdkError('UNAUTHORIZED', 'API key required or invalid. Run `silky auth register` to get an API key.');
23
+ }
24
+ if (error.response?.data?.error) {
25
+ const apiCode = error.response.data.error;
26
+ const apiMessage = error.response.data.message || 'Unknown API error';
27
+ if (apiCode === 'TX_FAILED') {
28
+ const hexMatch = apiMessage.match(/0x([0-9a-fA-F]+)/);
29
+ if (hexMatch) {
30
+ const errorCode = parseInt(hexMatch[1], 16);
31
+ const anchor = errors_js_1.ANCHOR_ERROR_MAP[errorCode];
32
+ if (anchor) {
33
+ throw new errors_js_1.SdkError(anchor.code, anchor.message);
34
+ }
35
+ }
36
+ }
37
+ throw new errors_js_1.SdkError(apiCode, apiMessage);
38
+ }
39
+ if (error.response?.data?.message) {
40
+ throw new errors_js_1.SdkError('API_ERROR', error.response.data.message);
41
+ }
42
+ if (error.code === 'ECONNABORTED') {
43
+ throw new errors_js_1.SdkError('TIMEOUT', 'Request timeout — is the SilkyWay server running?');
44
+ }
45
+ throw new errors_js_1.SdkError('NETWORK_ERROR', 'Network error — is the SilkyWay server running?');
46
+ });
47
+ return client;
48
+ }
49
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":";;;;;AAWA,4CAiDC;AA5DD,kDAAyD;AACzD,2CAAyD;AAEzD,MAAM,eAAe,GAAG,KAAK,CAAC;AAQ9B,SAAgB,gBAAgB,CAAC,SAAuB,EAAE;IACxD,MAAM,OAAO,GAA2B,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;IAC/E,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,MAAM,CAAC,MAAM,EAAE,CAAC;IACvD,CAAC;IAED,MAAM,MAAM,GAAG,eAAK,CAAC,MAAM,CAAC;QAC1B,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,uBAAuB;QAClD,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,eAAe;QAC1C,OAAO;KACR,CAAC,CAAC;IAEH,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAC9B,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,EACtB,CAAC,KAAoE,EAAE,EAAE;QACvE,IAAI,KAAK,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;YACnC,MAAM,IAAI,oBAAQ,CAChB,cAAc,EACd,2EAA2E,CAC5E,CAAC;QACJ,CAAC;QACD,IAAI,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;YAChC,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;YAC1C,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,IAAI,mBAAmB,CAAC;YAEtE,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;gBAC5B,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;gBACtD,IAAI,QAAQ,EAAE,CAAC;oBACb,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC5C,MAAM,MAAM,GAAG,4BAAgB,CAAC,SAAS,CAAC,CAAC;oBAC3C,IAAI,MAAM,EAAE,CAAC;wBACX,MAAM,IAAI,oBAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;oBAClD,CAAC;gBACH,CAAC;YACH,CAAC;YAED,MAAM,IAAI,oBAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAC1C,CAAC;QACD,IAAI,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;YAClC,MAAM,IAAI,oBAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YAClC,MAAM,IAAI,oBAAQ,CAAC,SAAS,EAAE,mDAAmD,CAAC,CAAC;QACrF,CAAC;QACD,MAAM,IAAI,oBAAQ,CAAC,eAAe,EAAE,iDAAiD,CAAC,CAAC;IACzF,CAAC,CACF,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,250 @@
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.accountSync = accountSync;
7
+ exports.accountStatus = accountStatus;
8
+ exports.accountEvents = accountEvents;
9
+ exports.accountDeposit = accountDeposit;
10
+ exports.accountWithdraw = accountWithdraw;
11
+ exports.accountSend = accountSend;
12
+ const web3_js_1 = require("@solana/web3.js");
13
+ const bs58_1 = __importDefault(require("bs58"));
14
+ const config_js_1 = require("../config.js");
15
+ const client_js_1 = require("../client.js");
16
+ const output_js_1 = require("../output.js");
17
+ const errors_js_1 = require("../errors.js");
18
+ const validate_js_1 = require("../validate.js");
19
+ const contacts_js_1 = require("../contacts.js");
20
+ async function accountSync(opts) {
21
+ const config = (0, config_js_1.loadConfig)();
22
+ const wallet = (0, config_js_1.getWallet)(config, opts.wallet);
23
+ const client = (0, client_js_1.createHttpClient)({ baseUrl: (0, config_js_1.getApiUrl)(config), apiKey: (0, config_js_1.getApiKey)(config) });
24
+ if (opts.account) {
25
+ // Direct PDA sync
26
+ (0, validate_js_1.validateAddress)(opts.account, 'account');
27
+ const res = await client.get(`/api/account/${opts.account}`);
28
+ const acct = res.data.data;
29
+ // Verify wallet is an operator on this account
30
+ const op = acct.operators.find((o) => o.pubkey === wallet.address);
31
+ if (!op) {
32
+ throw new errors_js_1.SdkError('NOT_OPERATOR', `Wallet "${wallet.label}" (${wallet.address}) is not an operator on account ${opts.account}`);
33
+ }
34
+ const accountInfo = {
35
+ pda: acct.pda,
36
+ owner: acct.owner,
37
+ mint: acct.mint,
38
+ mintDecimals: acct.mintDecimals,
39
+ operatorIndex: op.index,
40
+ perTxLimit: Number(op.perTxLimit),
41
+ syncedAt: new Date().toISOString(),
42
+ };
43
+ config.account = accountInfo;
44
+ (0, config_js_1.saveConfig)(config);
45
+ const balanceHuman = acct.mintDecimals > 0 ? acct.balance / 10 ** acct.mintDecimals : acct.balance;
46
+ const perTxLimitHuman = acct.mintDecimals > 0 ? Number(op.perTxLimit) / 10 ** acct.mintDecimals : Number(op.perTxLimit);
47
+ (0, output_js_1.outputSuccess)({
48
+ action: 'sync',
49
+ pda: acct.pda,
50
+ owner: acct.owner,
51
+ balance: balanceHuman,
52
+ perTxLimit: perTxLimitHuman,
53
+ mint: acct.mint,
54
+ });
55
+ return;
56
+ }
57
+ // Discover by operator
58
+ const res = await client.get(`/api/account/by-operator/${wallet.address}`);
59
+ const accounts = res.data.data.accounts;
60
+ if (accounts.length === 0) {
61
+ (0, output_js_1.outputSuccess)({
62
+ action: 'sync',
63
+ found: 0,
64
+ message: `No account found for wallet "${wallet.label}" (${wallet.address}).`,
65
+ hint: `Ask your human to set up your account at:\n ${(0, config_js_1.getSetupUrl)(config, wallet.address)}`,
66
+ });
67
+ return;
68
+ }
69
+ // Deterministic selection: sort by PDA so the same account is always picked
70
+ accounts.sort((a, b) => a.pda.localeCompare(b.pda));
71
+ const selected = accounts[0];
72
+ const slot = selected.operatorSlot;
73
+ const accountInfo = {
74
+ pda: selected.pda,
75
+ owner: selected.owner,
76
+ mint: selected.mint,
77
+ mintDecimals: selected.mintDecimals,
78
+ operatorIndex: slot.index,
79
+ perTxLimit: Number(slot.perTxLimit),
80
+ syncedAt: new Date().toISOString(),
81
+ };
82
+ config.account = accountInfo;
83
+ (0, config_js_1.saveConfig)(config);
84
+ const formatBalance = (bal, decimals) => decimals > 0 ? bal / 10 ** decimals : bal;
85
+ const formatLimit = (limit, decimals) => decimals > 0 ? Number(limit) / 10 ** decimals : Number(limit);
86
+ if (accounts.length === 1) {
87
+ (0, output_js_1.outputSuccess)({
88
+ action: 'sync',
89
+ pda: selected.pda,
90
+ owner: selected.owner,
91
+ balance: formatBalance(selected.balance, selected.mintDecimals),
92
+ perTxLimit: formatLimit(slot.perTxLimit, selected.mintDecimals),
93
+ mint: selected.mint,
94
+ });
95
+ }
96
+ else {
97
+ (0, output_js_1.outputSuccess)({
98
+ action: 'sync',
99
+ pda: selected.pda,
100
+ owner: selected.owner,
101
+ balance: formatBalance(selected.balance, selected.mintDecimals),
102
+ perTxLimit: formatLimit(slot.perTxLimit, selected.mintDecimals),
103
+ mint: selected.mint,
104
+ warning: `This wallet is operator on ${accounts.length} accounts. Using ${selected.pda}. The SDK currently supports one account at a time. To target a specific account: silky account sync --account <pda>`,
105
+ allAccounts: accounts.map((a) => ({
106
+ pda: a.pda,
107
+ owner: a.owner,
108
+ balance: formatBalance(a.balance, a.mintDecimals),
109
+ })),
110
+ });
111
+ }
112
+ }
113
+ async function accountStatus(opts) {
114
+ const config = (0, config_js_1.loadConfig)();
115
+ (0, config_js_1.getWallet)(config, opts.wallet); // validate wallet exists
116
+ if (!config.account) {
117
+ throw new errors_js_1.SdkError('NO_ACCOUNT', 'No account synced. Run: silky account sync');
118
+ }
119
+ const client = (0, client_js_1.createHttpClient)({ baseUrl: (0, config_js_1.getApiUrl)(config), apiKey: (0, config_js_1.getApiKey)(config) });
120
+ const res = await client.get(`/api/account/${config.account.pda}`);
121
+ const acct = res.data.data;
122
+ const op = acct.operators.find((o) => o.index === config.account.operatorIndex);
123
+ const perTxLimit = op ? Number(op.perTxLimit) : config.account.perTxLimit;
124
+ const perTxLimitHuman = acct.mintDecimals > 0 ? perTxLimit / 10 ** acct.mintDecimals : perTxLimit;
125
+ const balanceHuman = acct.mintDecimals > 0 ? acct.balance / 10 ** acct.mintDecimals : acct.balance;
126
+ (0, output_js_1.outputSuccess)({
127
+ action: 'status',
128
+ pda: acct.pda,
129
+ owner: acct.owner,
130
+ balance: balanceHuman,
131
+ mint: acct.mint,
132
+ isPaused: acct.isPaused,
133
+ operatorIndex: config.account.operatorIndex,
134
+ perTxLimit: perTxLimitHuman,
135
+ });
136
+ }
137
+ async function accountEvents(opts) {
138
+ const config = (0, config_js_1.loadConfig)();
139
+ (0, config_js_1.getWallet)(config, opts.wallet); // validate wallet exists
140
+ if (!config.account) {
141
+ throw new errors_js_1.SdkError('NO_ACCOUNT', 'No account synced. Run: silky account sync');
142
+ }
143
+ const client = (0, client_js_1.createHttpClient)({ baseUrl: (0, config_js_1.getApiUrl)(config), apiKey: (0, config_js_1.getApiKey)(config) });
144
+ const params = opts.type ? `?eventType=${opts.type}` : '';
145
+ const res = await client.get(`/api/account/${config.account.pda}/events${params}`);
146
+ const events = res.data.data;
147
+ (0, output_js_1.outputSuccess)({ action: 'events', pda: config.account.pda, events });
148
+ }
149
+ async function accountDeposit(amount, opts) {
150
+ const config = (0, config_js_1.loadConfig)();
151
+ const wallet = (0, config_js_1.getWallet)(config, opts.wallet);
152
+ if (!config.account) {
153
+ throw new errors_js_1.SdkError('NO_ACCOUNT', 'No account synced. Run: silky account sync');
154
+ }
155
+ const amountNum = (0, validate_js_1.validateAmount)(amount);
156
+ const amountRaw = Math.round(amountNum * 10 ** config.account.mintDecimals);
157
+ const client = (0, client_js_1.createHttpClient)({ baseUrl: (0, config_js_1.getApiUrl)(config), apiKey: (0, config_js_1.getApiKey)(config) });
158
+ // 1. Build unsigned transaction
159
+ const buildRes = await client.post('/api/account/deposit', {
160
+ depositor: wallet.address,
161
+ accountPda: config.account.pda,
162
+ amount: amountRaw,
163
+ });
164
+ const { transaction: txBase64 } = buildRes.data.data;
165
+ // 2. Sign the transaction
166
+ const tx = web3_js_1.Transaction.from(Buffer.from(txBase64, 'base64'));
167
+ const keypair = web3_js_1.Keypair.fromSecretKey(bs58_1.default.decode(wallet.privateKey));
168
+ tx.sign(keypair);
169
+ // 3. Submit signed transaction
170
+ try {
171
+ const submitRes = await client.post('/api/tx/submit', {
172
+ signedTx: tx.serialize().toString('base64'),
173
+ });
174
+ const { txid } = submitRes.data.data;
175
+ (0, output_js_1.outputSuccess)({ action: 'deposit', txid, amount: amountNum });
176
+ }
177
+ catch (err) {
178
+ throw (0, errors_js_1.toSilkysigError)(err);
179
+ }
180
+ }
181
+ async function accountWithdraw(amount, opts) {
182
+ const config = (0, config_js_1.loadConfig)();
183
+ const wallet = (0, config_js_1.getWallet)(config, opts.wallet);
184
+ if (!config.account) {
185
+ throw new errors_js_1.SdkError('NO_ACCOUNT', 'No account synced. Run: silky account sync');
186
+ }
187
+ const amountNum = (0, validate_js_1.validateAmount)(amount);
188
+ const amountRaw = Math.round(amountNum * 10 ** config.account.mintDecimals);
189
+ const client = (0, client_js_1.createHttpClient)({ baseUrl: (0, config_js_1.getApiUrl)(config), apiKey: (0, config_js_1.getApiKey)(config) });
190
+ // 1. Build unsigned transaction (transfer back to own wallet)
191
+ const buildRes = await client.post('/api/account/transfer', {
192
+ signer: wallet.address,
193
+ accountPda: config.account.pda,
194
+ recipient: wallet.address,
195
+ amount: amountRaw,
196
+ });
197
+ const { transaction: txBase64 } = buildRes.data.data;
198
+ // 2. Sign the transaction
199
+ const tx = web3_js_1.Transaction.from(Buffer.from(txBase64, 'base64'));
200
+ const keypair = web3_js_1.Keypair.fromSecretKey(bs58_1.default.decode(wallet.privateKey));
201
+ tx.sign(keypair);
202
+ // 3. Submit signed transaction
203
+ try {
204
+ const submitRes = await client.post('/api/tx/submit', {
205
+ signedTx: tx.serialize().toString('base64'),
206
+ });
207
+ const { txid } = submitRes.data.data;
208
+ (0, output_js_1.outputSuccess)({ action: 'withdraw', txid, amount: amountNum });
209
+ }
210
+ catch (err) {
211
+ throw (0, errors_js_1.toSilkysigError)(err);
212
+ }
213
+ }
214
+ async function accountSend(recipient, amount, opts) {
215
+ recipient = (0, contacts_js_1.resolveRecipient)(recipient);
216
+ const config = (0, config_js_1.loadConfig)();
217
+ const wallet = (0, config_js_1.getWallet)(config, opts.wallet);
218
+ if (!config.account) {
219
+ throw new errors_js_1.SdkError('NO_ACCOUNT', 'No account synced. Run: silky account sync');
220
+ }
221
+ (0, validate_js_1.validateAddress)(recipient, 'recipient');
222
+ const amountNum = (0, validate_js_1.validateAmount)(amount);
223
+ // Convert to smallest units
224
+ const amountRaw = Math.round(amountNum * 10 ** config.account.mintDecimals);
225
+ const client = (0, client_js_1.createHttpClient)({ baseUrl: (0, config_js_1.getApiUrl)(config), apiKey: (0, config_js_1.getApiKey)(config) });
226
+ // 1. Build unsigned transaction
227
+ const buildRes = await client.post('/api/account/transfer', {
228
+ signer: wallet.address,
229
+ accountPda: config.account.pda,
230
+ recipient,
231
+ amount: amountRaw,
232
+ });
233
+ const { transaction: txBase64 } = buildRes.data.data;
234
+ // 2. Sign the transaction
235
+ const tx = web3_js_1.Transaction.from(Buffer.from(txBase64, 'base64'));
236
+ const keypair = web3_js_1.Keypair.fromSecretKey(bs58_1.default.decode(wallet.privateKey));
237
+ tx.sign(keypair);
238
+ // 3. Submit signed transaction
239
+ try {
240
+ const submitRes = await client.post('/api/tx/submit', {
241
+ signedTx: tx.serialize().toString('base64'),
242
+ });
243
+ const { txid } = submitRes.data.data;
244
+ (0, output_js_1.outputSuccess)({ action: 'send', txid, amount: amountNum, recipient });
245
+ }
246
+ catch (err) {
247
+ throw (0, errors_js_1.toSilkysigError)(err);
248
+ }
249
+ }
250
+ //# sourceMappingURL=account.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account.js","sourceRoot":"","sources":["../../../src/commands/account.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,78 @@
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.authRegister = authRegister;
7
+ exports.authStatus = authStatus;
8
+ exports.authRevoke = authRevoke;
9
+ const web3_js_1 = require("@solana/web3.js");
10
+ const bs58_1 = __importDefault(require("bs58"));
11
+ const ed25519_1 = require("@noble/curves/ed25519");
12
+ const config_js_1 = require("../config.js");
13
+ const client_js_1 = require("../client.js");
14
+ const output_js_1 = require("../output.js");
15
+ const errors_js_1 = require("../errors.js");
16
+ async function authRegister(opts) {
17
+ const config = (0, config_js_1.loadConfig)();
18
+ const wallet = (0, config_js_1.getWallet)(config, opts.wallet);
19
+ const keypair = web3_js_1.Keypair.fromSecretKey(bs58_1.default.decode(wallet.privateKey));
20
+ // Use unauthenticated client for challenge/register
21
+ const client = (0, client_js_1.createHttpClient)({ baseUrl: (0, config_js_1.getApiUrl)(config) });
22
+ // 1. Get challenge nonce
23
+ const challengeRes = await client.get(`/api/auth/challenge?pubkey=${wallet.address}`);
24
+ const { nonce } = challengeRes.data.data;
25
+ // 2. Sign nonce (noble/curves expects 32-byte seed, not Solana's 64-byte combined format)
26
+ const signature = ed25519_1.ed25519.sign(Buffer.from(nonce, 'utf-8'), keypair.secretKey.slice(0, 32));
27
+ const signatureBase64 = Buffer.from(signature).toString('base64');
28
+ // 3. Register and receive API key
29
+ const registerRes = await client.post('/api/auth/register', {
30
+ pubkey: wallet.address,
31
+ signature: signatureBase64,
32
+ });
33
+ const { apiKey } = registerRes.data.data;
34
+ config.apiKey = apiKey;
35
+ (0, config_js_1.saveConfig)(config);
36
+ (0, output_js_1.outputSuccess)({ action: 'auth_register', message: 'API key registered and saved.' });
37
+ }
38
+ async function authStatus() {
39
+ const config = (0, config_js_1.loadConfig)();
40
+ const apiKey = (0, config_js_1.getApiKey)(config);
41
+ if (!apiKey) {
42
+ (0, output_js_1.outputSuccess)({
43
+ action: 'auth_status',
44
+ configured: false,
45
+ hint: 'Run `silky auth register` to get an API key.',
46
+ });
47
+ return;
48
+ }
49
+ const source = config.apiKey ? 'config' : 'SILKY_API_KEY env var';
50
+ const fingerprint = apiKey.slice(0, 9);
51
+ (0, output_js_1.outputSuccess)({
52
+ action: 'auth_status',
53
+ configured: true,
54
+ source,
55
+ fingerprint: `${fingerprint}...`,
56
+ });
57
+ }
58
+ async function authRevoke() {
59
+ const config = (0, config_js_1.loadConfig)();
60
+ const apiKey = (0, config_js_1.getApiKey)(config);
61
+ if (!apiKey) {
62
+ throw new errors_js_1.SdkError('NO_API_KEY', 'No API key configured. Run `silky auth register` first.');
63
+ }
64
+ const client = (0, client_js_1.createHttpClient)({ baseUrl: (0, config_js_1.getApiUrl)(config), apiKey });
65
+ try {
66
+ await client.post('/api/auth/revoke', {});
67
+ }
68
+ catch (err) {
69
+ if (err.code === 'UNAUTHORIZED') {
70
+ throw new errors_js_1.SdkError('UNAUTHORIZED', 'API key is already invalid or expired.');
71
+ }
72
+ throw err;
73
+ }
74
+ (0, config_js_1.clearApiKey)(config);
75
+ (0, config_js_1.saveConfig)(config);
76
+ (0, output_js_1.outputSuccess)({ action: 'auth_revoke', message: 'API key revoked and removed from config.' });
77
+ }
78
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/commands/auth.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.balance = balance;
4
+ const config_js_1 = require("../config.js");
5
+ const client_js_1 = require("../client.js");
6
+ const output_js_1 = require("../output.js");
7
+ async function balance(opts) {
8
+ const config = (0, config_js_1.loadConfig)();
9
+ const wallet = (0, config_js_1.getWallet)(config, opts.wallet);
10
+ const client = (0, client_js_1.createHttpClient)({ baseUrl: (0, config_js_1.getApiUrl)(config), apiKey: (0, config_js_1.getApiKey)(config) });
11
+ const res = await client.get(`/api/wallet/${wallet.address}/balance`);
12
+ const data = res.data.data;
13
+ (0, output_js_1.outputSuccess)({ wallet: wallet.label, address: wallet.address, sol: data.sol, tokens: data.tokens });
14
+ }
15
+ //# sourceMappingURL=balance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"balance.js","sourceRoot":"","sources":["../../../src/commands/balance.ts"],"names":[],"mappings":";;AAIA,0BASC;AAbD,4CAA2E;AAC3E,4CAAgD;AAChD,4CAA6C;AAEtC,KAAK,UAAU,OAAO,CAAC,IAAyB;IACrD,MAAM,MAAM,GAAG,IAAA,sBAAU,GAAE,CAAC;IAC5B,MAAM,MAAM,GAAG,IAAA,qBAAS,EAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,IAAA,4BAAgB,EAAC,EAAE,OAAO,EAAE,IAAA,qBAAS,EAAC,MAAM,CAAC,EAAE,MAAM,EAAE,IAAA,qBAAS,EAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAE3F,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,OAAO,UAAU,CAAC,CAAC;IACtE,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;IAE3B,IAAA,yBAAa,EAAC,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;AACvG,CAAC"}