@trixter-osec/core 0.40.4

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 (487) hide show
  1. package/README.md +10 -0
  2. package/dist/browser/index.js +7217 -0
  3. package/dist/browser/index.js.map +1 -0
  4. package/dist/browser/src/coder/borsh/accounts.d.ts +27 -0
  5. package/dist/browser/src/coder/borsh/accounts.d.ts.map +1 -0
  6. package/dist/browser/src/coder/borsh/event.d.ts +14 -0
  7. package/dist/browser/src/coder/borsh/event.d.ts.map +1 -0
  8. package/dist/browser/src/coder/borsh/idl.d.ts +32 -0
  9. package/dist/browser/src/coder/borsh/idl.d.ts.map +1 -0
  10. package/dist/browser/src/coder/borsh/index.d.ts +33 -0
  11. package/dist/browser/src/coder/borsh/index.d.ts.map +1 -0
  12. package/dist/browser/src/coder/borsh/instruction.d.ts +42 -0
  13. package/dist/browser/src/coder/borsh/instruction.d.ts.map +1 -0
  14. package/dist/browser/src/coder/borsh/types.d.ts +16 -0
  15. package/dist/browser/src/coder/borsh/types.d.ts.map +1 -0
  16. package/dist/browser/src/coder/index.d.ts +43 -0
  17. package/dist/browser/src/coder/index.d.ts.map +1 -0
  18. package/dist/browser/src/coder/system/accounts.d.ts +12 -0
  19. package/dist/browser/src/coder/system/accounts.d.ts.map +1 -0
  20. package/dist/browser/src/coder/system/events.d.ts +9 -0
  21. package/dist/browser/src/coder/system/events.d.ts.map +1 -0
  22. package/dist/browser/src/coder/system/index.d.ts +17 -0
  23. package/dist/browser/src/coder/system/index.d.ts.map +1 -0
  24. package/dist/browser/src/coder/system/instruction.d.ts +8 -0
  25. package/dist/browser/src/coder/system/instruction.d.ts.map +1 -0
  26. package/dist/browser/src/coder/system/types.d.ts +8 -0
  27. package/dist/browser/src/coder/system/types.d.ts.map +1 -0
  28. package/dist/browser/src/error.d.ts +128 -0
  29. package/dist/browser/src/error.d.ts.map +1 -0
  30. package/dist/browser/src/idl.d.ts +215 -0
  31. package/dist/browser/src/idl.d.ts.map +1 -0
  32. package/dist/browser/src/index.d.ts +16 -0
  33. package/dist/browser/src/index.d.ts.map +1 -0
  34. package/dist/browser/src/native/index.d.ts +7 -0
  35. package/dist/browser/src/native/index.d.ts.map +1 -0
  36. package/dist/browser/src/native/system.d.ts +390 -0
  37. package/dist/browser/src/native/system.d.ts.map +1 -0
  38. package/dist/browser/src/nodewallet.d.ts +14 -0
  39. package/dist/browser/src/nodewallet.d.ts.map +1 -0
  40. package/dist/browser/src/program/accounts-resolver.d.ts +63 -0
  41. package/dist/browser/src/program/accounts-resolver.d.ts.map +1 -0
  42. package/dist/browser/src/program/common.d.ts +20 -0
  43. package/dist/browser/src/program/common.d.ts.map +1 -0
  44. package/dist/browser/src/program/context.d.ts +63 -0
  45. package/dist/browser/src/program/context.d.ts.map +1 -0
  46. package/dist/browser/src/program/event.d.ts +59 -0
  47. package/dist/browser/src/program/event.d.ts.map +1 -0
  48. package/dist/browser/src/program/index.d.ts +272 -0
  49. package/dist/browser/src/program/index.d.ts.map +1 -0
  50. package/dist/browser/src/program/namespace/account.d.ts +146 -0
  51. package/dist/browser/src/program/namespace/account.d.ts.map +1 -0
  52. package/dist/browser/src/program/namespace/index.d.ts +35 -0
  53. package/dist/browser/src/program/namespace/index.d.ts.map +1 -0
  54. package/dist/browser/src/program/namespace/instruction.d.ts +57 -0
  55. package/dist/browser/src/program/namespace/instruction.d.ts.map +1 -0
  56. package/dist/browser/src/program/namespace/methods.d.ts +206 -0
  57. package/dist/browser/src/program/namespace/methods.d.ts.map +1 -0
  58. package/dist/browser/src/program/namespace/rpc.d.ts +49 -0
  59. package/dist/browser/src/program/namespace/rpc.d.ts.map +1 -0
  60. package/dist/browser/src/program/namespace/simulate.d.ts +57 -0
  61. package/dist/browser/src/program/namespace/simulate.d.ts.map +1 -0
  62. package/dist/browser/src/program/namespace/transaction.d.ts +42 -0
  63. package/dist/browser/src/program/namespace/transaction.d.ts.map +1 -0
  64. package/dist/browser/src/program/namespace/types.d.ts +153 -0
  65. package/dist/browser/src/program/namespace/types.d.ts.map +1 -0
  66. package/dist/browser/src/program/namespace/views.d.ts +15 -0
  67. package/dist/browser/src/program/namespace/views.d.ts.map +1 -0
  68. package/dist/browser/src/program/token-account-layout.d.ts +2 -0
  69. package/dist/browser/src/program/token-account-layout.d.ts.map +1 -0
  70. package/dist/browser/src/provider.d.ts +104 -0
  71. package/dist/browser/src/provider.d.ts.map +1 -0
  72. package/dist/browser/src/utils/bytes/base64.d.ts +4 -0
  73. package/dist/browser/src/utils/bytes/base64.d.ts.map +1 -0
  74. package/dist/browser/src/utils/bytes/bs58.d.ts +3 -0
  75. package/dist/browser/src/utils/bytes/bs58.d.ts.map +1 -0
  76. package/dist/browser/src/utils/bytes/hex.d.ts +4 -0
  77. package/dist/browser/src/utils/bytes/hex.d.ts.map +1 -0
  78. package/dist/browser/src/utils/bytes/index.d.ts +5 -0
  79. package/dist/browser/src/utils/bytes/index.d.ts.map +1 -0
  80. package/dist/browser/src/utils/bytes/utf8.d.ts +3 -0
  81. package/dist/browser/src/utils/bytes/utf8.d.ts.map +1 -0
  82. package/dist/browser/src/utils/common.d.ts +22 -0
  83. package/dist/browser/src/utils/common.d.ts.map +1 -0
  84. package/dist/browser/src/utils/features.d.ts +3 -0
  85. package/dist/browser/src/utils/features.d.ts.map +1 -0
  86. package/dist/browser/src/utils/index.d.ts +8 -0
  87. package/dist/browser/src/utils/index.d.ts.map +1 -0
  88. package/dist/browser/src/utils/pubkey.d.ts +3 -0
  89. package/dist/browser/src/utils/pubkey.d.ts.map +1 -0
  90. package/dist/browser/src/utils/registry.d.ts +34 -0
  91. package/dist/browser/src/utils/registry.d.ts.map +1 -0
  92. package/dist/browser/src/utils/rpc.d.ts +21 -0
  93. package/dist/browser/src/utils/rpc.d.ts.map +1 -0
  94. package/dist/browser/src/utils/sha256.d.ts +2 -0
  95. package/dist/browser/src/utils/sha256.d.ts.map +1 -0
  96. package/dist/browser/src/utils/token.d.ts +8 -0
  97. package/dist/browser/src/utils/token.d.ts.map +1 -0
  98. package/dist/browser/src/workspace.d.ts +14 -0
  99. package/dist/browser/src/workspace.d.ts.map +1 -0
  100. package/dist/cjs/coder/borsh/accounts.d.ts +27 -0
  101. package/dist/cjs/coder/borsh/accounts.d.ts.map +1 -0
  102. package/dist/cjs/coder/borsh/accounts.js +103 -0
  103. package/dist/cjs/coder/borsh/accounts.js.map +1 -0
  104. package/dist/cjs/coder/borsh/event.d.ts +14 -0
  105. package/dist/cjs/coder/borsh/event.d.ts.map +1 -0
  106. package/dist/cjs/coder/borsh/event.js +78 -0
  107. package/dist/cjs/coder/borsh/event.js.map +1 -0
  108. package/dist/cjs/coder/borsh/idl.d.ts +32 -0
  109. package/dist/cjs/coder/borsh/idl.d.ts.map +1 -0
  110. package/dist/cjs/coder/borsh/idl.js +419 -0
  111. package/dist/cjs/coder/borsh/idl.js.map +1 -0
  112. package/dist/cjs/coder/borsh/index.d.ts +33 -0
  113. package/dist/cjs/coder/borsh/index.d.ts.map +1 -0
  114. package/dist/cjs/coder/borsh/index.js +27 -0
  115. package/dist/cjs/coder/borsh/index.js.map +1 -0
  116. package/dist/cjs/coder/borsh/instruction.d.ts +42 -0
  117. package/dist/cjs/coder/borsh/instruction.d.ts.map +1 -0
  118. package/dist/cjs/coder/borsh/instruction.js +274 -0
  119. package/dist/cjs/coder/borsh/instruction.js.map +1 -0
  120. package/dist/cjs/coder/borsh/types.d.ts +16 -0
  121. package/dist/cjs/coder/borsh/types.d.ts.map +1 -0
  122. package/dist/cjs/coder/borsh/types.js +42 -0
  123. package/dist/cjs/coder/borsh/types.js.map +1 -0
  124. package/dist/cjs/coder/index.d.ts +43 -0
  125. package/dist/cjs/coder/index.d.ts.map +1 -0
  126. package/dist/cjs/coder/index.js +19 -0
  127. package/dist/cjs/coder/index.js.map +1 -0
  128. package/dist/cjs/coder/system/accounts.d.ts +12 -0
  129. package/dist/cjs/coder/system/accounts.d.ts.map +1 -0
  130. package/dist/cjs/coder/system/accounts.js +107 -0
  131. package/dist/cjs/coder/system/accounts.js.map +1 -0
  132. package/dist/cjs/coder/system/events.d.ts +9 -0
  133. package/dist/cjs/coder/system/events.d.ts.map +1 -0
  134. package/dist/cjs/coder/system/events.js +11 -0
  135. package/dist/cjs/coder/system/events.js.map +1 -0
  136. package/dist/cjs/coder/system/index.d.ts +17 -0
  137. package/dist/cjs/coder/system/index.d.ts.map +1 -0
  138. package/dist/cjs/coder/system/index.js +20 -0
  139. package/dist/cjs/coder/system/index.js.map +1 -0
  140. package/dist/cjs/coder/system/instruction.d.ts +8 -0
  141. package/dist/cjs/coder/system/instruction.d.ts.map +1 -0
  142. package/dist/cjs/coder/system/instruction.js +242 -0
  143. package/dist/cjs/coder/system/instruction.js.map +1 -0
  144. package/dist/cjs/coder/system/types.d.ts +8 -0
  145. package/dist/cjs/coder/system/types.d.ts.map +1 -0
  146. package/dist/cjs/coder/system/types.js +14 -0
  147. package/dist/cjs/coder/system/types.js.map +1 -0
  148. package/dist/cjs/error.d.ts +128 -0
  149. package/dist/cjs/error.d.ts.map +1 -0
  150. package/dist/cjs/error.js +568 -0
  151. package/dist/cjs/error.js.map +1 -0
  152. package/dist/cjs/idl.d.ts +215 -0
  153. package/dist/cjs/idl.d.ts.map +1 -0
  154. package/dist/cjs/idl.js +112 -0
  155. package/dist/cjs/idl.js.map +1 -0
  156. package/dist/cjs/index.d.ts +16 -0
  157. package/dist/cjs/index.d.ts.map +1 -0
  158. package/dist/cjs/index.js +51 -0
  159. package/dist/cjs/index.js.map +1 -0
  160. package/dist/cjs/native/index.d.ts +7 -0
  161. package/dist/cjs/native/index.d.ts.map +1 -0
  162. package/dist/cjs/native/index.js +11 -0
  163. package/dist/cjs/native/index.js.map +1 -0
  164. package/dist/cjs/native/system.d.ts +390 -0
  165. package/dist/cjs/native/system.d.ts.map +1 -0
  166. package/dist/cjs/native/system.js +394 -0
  167. package/dist/cjs/native/system.js.map +1 -0
  168. package/dist/cjs/nodewallet.d.ts +14 -0
  169. package/dist/cjs/nodewallet.d.ts.map +1 -0
  170. package/dist/cjs/nodewallet.js +48 -0
  171. package/dist/cjs/nodewallet.js.map +1 -0
  172. package/dist/cjs/program/accounts-resolver.d.ts +63 -0
  173. package/dist/cjs/program/accounts-resolver.d.ts.map +1 -0
  174. package/dist/cjs/program/accounts-resolver.js +437 -0
  175. package/dist/cjs/program/accounts-resolver.js.map +1 -0
  176. package/dist/cjs/program/common.d.ts +20 -0
  177. package/dist/cjs/program/common.d.ts.map +1 -0
  178. package/dist/cjs/program/common.js +49 -0
  179. package/dist/cjs/program/common.js.map +1 -0
  180. package/dist/cjs/program/context.d.ts +63 -0
  181. package/dist/cjs/program/context.d.ts.map +1 -0
  182. package/dist/cjs/program/context.js +16 -0
  183. package/dist/cjs/program/context.js.map +1 -0
  184. package/dist/cjs/program/event.d.ts +59 -0
  185. package/dist/cjs/program/event.d.ts.map +1 -0
  186. package/dist/cjs/program/event.js +227 -0
  187. package/dist/cjs/program/event.js.map +1 -0
  188. package/dist/cjs/program/index.d.ts +272 -0
  189. package/dist/cjs/program/index.d.ts.map +1 -0
  190. package/dist/cjs/program/index.js +177 -0
  191. package/dist/cjs/program/index.js.map +1 -0
  192. package/dist/cjs/program/namespace/account.d.ts +146 -0
  193. package/dist/cjs/program/namespace/account.d.ts.map +1 -0
  194. package/dist/cjs/program/namespace/account.js +257 -0
  195. package/dist/cjs/program/namespace/account.js.map +1 -0
  196. package/dist/cjs/program/namespace/index.d.ts +35 -0
  197. package/dist/cjs/program/namespace/index.d.ts.map +1 -0
  198. package/dist/cjs/program/namespace/index.js +63 -0
  199. package/dist/cjs/program/namespace/index.js.map +1 -0
  200. package/dist/cjs/program/namespace/instruction.d.ts +57 -0
  201. package/dist/cjs/program/namespace/instruction.d.ts.map +1 -0
  202. package/dist/cjs/program/namespace/instruction.js +94 -0
  203. package/dist/cjs/program/namespace/instruction.js.map +1 -0
  204. package/dist/cjs/program/namespace/methods.d.ts +206 -0
  205. package/dist/cjs/program/namespace/methods.d.ts.map +1 -0
  206. package/dist/cjs/program/namespace/methods.js +309 -0
  207. package/dist/cjs/program/namespace/methods.js.map +1 -0
  208. package/dist/cjs/program/namespace/rpc.d.ts +49 -0
  209. package/dist/cjs/program/namespace/rpc.d.ts.map +1 -0
  210. package/dist/cjs/program/namespace/rpc.js +25 -0
  211. package/dist/cjs/program/namespace/rpc.js.map +1 -0
  212. package/dist/cjs/program/namespace/simulate.d.ts +57 -0
  213. package/dist/cjs/program/namespace/simulate.d.ts.map +1 -0
  214. package/dist/cjs/program/namespace/simulate.js +42 -0
  215. package/dist/cjs/program/namespace/simulate.js.map +1 -0
  216. package/dist/cjs/program/namespace/transaction.d.ts +42 -0
  217. package/dist/cjs/program/namespace/transaction.d.ts.map +1 -0
  218. package/dist/cjs/program/namespace/transaction.js +24 -0
  219. package/dist/cjs/program/namespace/transaction.js.map +1 -0
  220. package/dist/cjs/program/namespace/types.d.ts +153 -0
  221. package/dist/cjs/program/namespace/types.d.ts.map +1 -0
  222. package/dist/cjs/program/namespace/types.js +3 -0
  223. package/dist/cjs/program/namespace/types.js.map +1 -0
  224. package/dist/cjs/program/namespace/views.d.ts +15 -0
  225. package/dist/cjs/program/namespace/views.d.ts.map +1 -0
  226. package/dist/cjs/program/namespace/views.js +30 -0
  227. package/dist/cjs/program/namespace/views.js.map +1 -0
  228. package/dist/cjs/program/token-account-layout.d.ts +2 -0
  229. package/dist/cjs/program/token-account-layout.d.ts.map +1 -0
  230. package/dist/cjs/program/token-account-layout.js +136 -0
  231. package/dist/cjs/program/token-account-layout.js.map +1 -0
  232. package/dist/cjs/provider.d.ts +104 -0
  233. package/dist/cjs/provider.d.ts.map +1 -0
  234. package/dist/cjs/provider.js +312 -0
  235. package/dist/cjs/provider.js.map +1 -0
  236. package/dist/cjs/utils/bytes/base64.d.ts +4 -0
  237. package/dist/cjs/utils/bytes/base64.d.ts.map +1 -0
  238. package/dist/cjs/utils/bytes/base64.js +12 -0
  239. package/dist/cjs/utils/bytes/base64.js.map +1 -0
  240. package/dist/cjs/utils/bytes/bs58.d.ts +3 -0
  241. package/dist/cjs/utils/bytes/bs58.d.ts.map +1 -0
  242. package/dist/cjs/utils/bytes/bs58.js +15 -0
  243. package/dist/cjs/utils/bytes/bs58.js.map +1 -0
  244. package/dist/cjs/utils/bytes/hex.d.ts +4 -0
  245. package/dist/cjs/utils/bytes/hex.d.ts.map +1 -0
  246. package/dist/cjs/utils/bytes/hex.js +22 -0
  247. package/dist/cjs/utils/bytes/hex.js.map +1 -0
  248. package/dist/cjs/utils/bytes/index.d.ts +5 -0
  249. package/dist/cjs/utils/bytes/index.d.ts.map +1 -0
  250. package/dist/cjs/utils/bytes/index.js +31 -0
  251. package/dist/cjs/utils/bytes/index.js.map +1 -0
  252. package/dist/cjs/utils/bytes/utf8.d.ts +3 -0
  253. package/dist/cjs/utils/bytes/utf8.d.ts.map +1 -0
  254. package/dist/cjs/utils/bytes/utf8.js +18 -0
  255. package/dist/cjs/utils/bytes/utf8.js.map +1 -0
  256. package/dist/cjs/utils/common.d.ts +22 -0
  257. package/dist/cjs/utils/common.d.ts.map +1 -0
  258. package/dist/cjs/utils/common.js +32 -0
  259. package/dist/cjs/utils/common.js.map +1 -0
  260. package/dist/cjs/utils/features.d.ts +3 -0
  261. package/dist/cjs/utils/features.d.ts.map +1 -0
  262. package/dist/cjs/utils/features.js +16 -0
  263. package/dist/cjs/utils/features.js.map +1 -0
  264. package/dist/cjs/utils/index.d.ts +8 -0
  265. package/dist/cjs/utils/index.d.ts.map +1 -0
  266. package/dist/cjs/utils/index.js +34 -0
  267. package/dist/cjs/utils/index.js.map +1 -0
  268. package/dist/cjs/utils/pubkey.d.ts +3 -0
  269. package/dist/cjs/utils/pubkey.d.ts.map +1 -0
  270. package/dist/cjs/utils/pubkey.js +16 -0
  271. package/dist/cjs/utils/pubkey.js.map +1 -0
  272. package/dist/cjs/utils/registry.d.ts +34 -0
  273. package/dist/cjs/utils/registry.d.ts.map +1 -0
  274. package/dist/cjs/utils/registry.js +88 -0
  275. package/dist/cjs/utils/registry.js.map +1 -0
  276. package/dist/cjs/utils/rpc.d.ts +21 -0
  277. package/dist/cjs/utils/rpc.d.ts.map +1 -0
  278. package/dist/cjs/utils/rpc.js +167 -0
  279. package/dist/cjs/utils/rpc.js.map +1 -0
  280. package/dist/cjs/utils/sha256.d.ts +2 -0
  281. package/dist/cjs/utils/sha256.d.ts.map +1 -0
  282. package/dist/cjs/utils/sha256.js +8 -0
  283. package/dist/cjs/utils/sha256.js.map +1 -0
  284. package/dist/cjs/utils/token.d.ts +8 -0
  285. package/dist/cjs/utils/token.d.ts.map +1 -0
  286. package/dist/cjs/utils/token.js +11 -0
  287. package/dist/cjs/utils/token.js.map +1 -0
  288. package/dist/cjs/workspace.d.ts +14 -0
  289. package/dist/cjs/workspace.d.ts.map +1 -0
  290. package/dist/cjs/workspace.js +98 -0
  291. package/dist/cjs/workspace.js.map +1 -0
  292. package/dist/esm/coder/borsh/accounts.d.ts +27 -0
  293. package/dist/esm/coder/borsh/accounts.d.ts.map +1 -0
  294. package/dist/esm/coder/borsh/accounts.js +96 -0
  295. package/dist/esm/coder/borsh/accounts.js.map +1 -0
  296. package/dist/esm/coder/borsh/event.d.ts +14 -0
  297. package/dist/esm/coder/borsh/event.d.ts.map +1 -0
  298. package/dist/esm/coder/borsh/event.js +51 -0
  299. package/dist/esm/coder/borsh/event.js.map +1 -0
  300. package/dist/esm/coder/borsh/idl.d.ts +32 -0
  301. package/dist/esm/coder/borsh/idl.d.ts.map +1 -0
  302. package/dist/esm/coder/borsh/idl.js +392 -0
  303. package/dist/esm/coder/borsh/idl.js.map +1 -0
  304. package/dist/esm/coder/borsh/index.d.ts +33 -0
  305. package/dist/esm/coder/borsh/index.d.ts.map +1 -0
  306. package/dist/esm/coder/borsh/index.js +20 -0
  307. package/dist/esm/coder/borsh/index.js.map +1 -0
  308. package/dist/esm/coder/borsh/instruction.d.ts +42 -0
  309. package/dist/esm/coder/borsh/instruction.d.ts.map +1 -0
  310. package/dist/esm/coder/borsh/instruction.js +244 -0
  311. package/dist/esm/coder/borsh/instruction.js.map +1 -0
  312. package/dist/esm/coder/borsh/types.d.ts +16 -0
  313. package/dist/esm/coder/borsh/types.d.ts.map +1 -0
  314. package/dist/esm/coder/borsh/types.js +38 -0
  315. package/dist/esm/coder/borsh/types.js.map +1 -0
  316. package/dist/esm/coder/index.d.ts +43 -0
  317. package/dist/esm/coder/index.d.ts.map +1 -0
  318. package/dist/esm/coder/index.js +3 -0
  319. package/dist/esm/coder/index.js.map +1 -0
  320. package/dist/esm/coder/system/accounts.d.ts +12 -0
  321. package/dist/esm/coder/system/accounts.d.ts.map +1 -0
  322. package/dist/esm/coder/system/accounts.js +80 -0
  323. package/dist/esm/coder/system/accounts.js.map +1 -0
  324. package/dist/esm/coder/system/events.d.ts +9 -0
  325. package/dist/esm/coder/system/events.d.ts.map +1 -0
  326. package/dist/esm/coder/system/events.js +7 -0
  327. package/dist/esm/coder/system/events.js.map +1 -0
  328. package/dist/esm/coder/system/index.d.ts +17 -0
  329. package/dist/esm/coder/system/index.d.ts.map +1 -0
  330. package/dist/esm/coder/system/index.js +16 -0
  331. package/dist/esm/coder/system/index.js.map +1 -0
  332. package/dist/esm/coder/system/instruction.d.ts +8 -0
  333. package/dist/esm/coder/system/instruction.d.ts.map +1 -0
  334. package/dist/esm/coder/system/instruction.js +212 -0
  335. package/dist/esm/coder/system/instruction.js.map +1 -0
  336. package/dist/esm/coder/system/types.d.ts +8 -0
  337. package/dist/esm/coder/system/types.d.ts.map +1 -0
  338. package/dist/esm/coder/system/types.js +10 -0
  339. package/dist/esm/coder/system/types.js.map +1 -0
  340. package/dist/esm/error.d.ts +128 -0
  341. package/dist/esm/error.d.ts.map +1 -0
  342. package/dist/esm/error.js +537 -0
  343. package/dist/esm/error.js.map +1 -0
  344. package/dist/esm/idl.d.ts +215 -0
  345. package/dist/esm/idl.d.ts.map +1 -0
  346. package/dist/esm/idl.js +77 -0
  347. package/dist/esm/idl.js.map +1 -0
  348. package/dist/esm/index.d.ts +16 -0
  349. package/dist/esm/index.d.ts.map +1 -0
  350. package/dist/esm/index.js +15 -0
  351. package/dist/esm/index.js.map +1 -0
  352. package/dist/esm/native/index.d.ts +7 -0
  353. package/dist/esm/native/index.d.ts.map +1 -0
  354. package/dist/esm/native/index.js +7 -0
  355. package/dist/esm/native/index.js.map +1 -0
  356. package/dist/esm/native/system.d.ts +390 -0
  357. package/dist/esm/native/system.d.ts.map +1 -0
  358. package/dist/esm/native/system.js +389 -0
  359. package/dist/esm/native/system.js.map +1 -0
  360. package/dist/esm/nodewallet.d.ts +14 -0
  361. package/dist/esm/nodewallet.d.ts.map +1 -0
  362. package/dist/esm/nodewallet.js +45 -0
  363. package/dist/esm/nodewallet.js.map +1 -0
  364. package/dist/esm/program/accounts-resolver.d.ts +63 -0
  365. package/dist/esm/program/accounts-resolver.d.ts.map +1 -0
  366. package/dist/esm/program/accounts-resolver.js +429 -0
  367. package/dist/esm/program/accounts-resolver.js.map +1 -0
  368. package/dist/esm/program/common.d.ts +20 -0
  369. package/dist/esm/program/common.d.ts.map +1 -0
  370. package/dist/esm/program/common.js +43 -0
  371. package/dist/esm/program/common.js.map +1 -0
  372. package/dist/esm/program/context.d.ts +63 -0
  373. package/dist/esm/program/context.d.ts.map +1 -0
  374. package/dist/esm/program/context.js +13 -0
  375. package/dist/esm/program/context.js.map +1 -0
  376. package/dist/esm/program/event.d.ts +59 -0
  377. package/dist/esm/program/event.d.ts.map +1 -0
  378. package/dist/esm/program/event.js +222 -0
  379. package/dist/esm/program/event.js.map +1 -0
  380. package/dist/esm/program/index.d.ts +272 -0
  381. package/dist/esm/program/index.d.ts.map +1 -0
  382. package/dist/esm/program/index.js +156 -0
  383. package/dist/esm/program/index.js.map +1 -0
  384. package/dist/esm/program/namespace/account.d.ts +146 -0
  385. package/dist/esm/program/namespace/account.d.ts.map +1 -0
  386. package/dist/esm/program/namespace/account.js +226 -0
  387. package/dist/esm/program/namespace/account.js.map +1 -0
  388. package/dist/esm/program/namespace/index.d.ts +35 -0
  389. package/dist/esm/program/namespace/index.d.ts.map +1 -0
  390. package/dist/esm/program/namespace/index.js +54 -0
  391. package/dist/esm/program/namespace/index.js.map +1 -0
  392. package/dist/esm/program/namespace/instruction.d.ts +57 -0
  393. package/dist/esm/program/namespace/instruction.d.ts.map +1 -0
  394. package/dist/esm/program/namespace/instruction.js +68 -0
  395. package/dist/esm/program/namespace/instruction.js.map +1 -0
  396. package/dist/esm/program/namespace/methods.d.ts +206 -0
  397. package/dist/esm/program/namespace/methods.d.ts.map +1 -0
  398. package/dist/esm/program/namespace/methods.js +302 -0
  399. package/dist/esm/program/namespace/methods.js.map +1 -0
  400. package/dist/esm/program/namespace/rpc.d.ts +49 -0
  401. package/dist/esm/program/namespace/rpc.d.ts.map +1 -0
  402. package/dist/esm/program/namespace/rpc.js +22 -0
  403. package/dist/esm/program/namespace/rpc.js.map +1 -0
  404. package/dist/esm/program/namespace/simulate.d.ts +57 -0
  405. package/dist/esm/program/namespace/simulate.d.ts.map +1 -0
  406. package/dist/esm/program/namespace/simulate.js +39 -0
  407. package/dist/esm/program/namespace/simulate.js.map +1 -0
  408. package/dist/esm/program/namespace/transaction.d.ts +42 -0
  409. package/dist/esm/program/namespace/transaction.d.ts.map +1 -0
  410. package/dist/esm/program/namespace/transaction.js +21 -0
  411. package/dist/esm/program/namespace/transaction.js.map +1 -0
  412. package/dist/esm/program/namespace/types.d.ts +153 -0
  413. package/dist/esm/program/namespace/types.d.ts.map +1 -0
  414. package/dist/esm/program/namespace/types.js +2 -0
  415. package/dist/esm/program/namespace/types.js.map +1 -0
  416. package/dist/esm/program/namespace/views.d.ts +15 -0
  417. package/dist/esm/program/namespace/views.d.ts.map +1 -0
  418. package/dist/esm/program/namespace/views.js +27 -0
  419. package/dist/esm/program/namespace/views.js.map +1 -0
  420. package/dist/esm/program/token-account-layout.d.ts +2 -0
  421. package/dist/esm/program/token-account-layout.d.ts.map +1 -0
  422. package/dist/esm/program/token-account-layout.js +107 -0
  423. package/dist/esm/program/token-account-layout.js.map +1 -0
  424. package/dist/esm/provider.d.ts +104 -0
  425. package/dist/esm/provider.d.ts.map +1 -0
  426. package/dist/esm/provider.js +306 -0
  427. package/dist/esm/provider.js.map +1 -0
  428. package/dist/esm/utils/bytes/base64.d.ts +4 -0
  429. package/dist/esm/utils/bytes/base64.d.ts.map +1 -0
  430. package/dist/esm/utils/bytes/base64.js +8 -0
  431. package/dist/esm/utils/bytes/base64.js.map +1 -0
  432. package/dist/esm/utils/bytes/bs58.d.ts +3 -0
  433. package/dist/esm/utils/bytes/bs58.d.ts.map +1 -0
  434. package/dist/esm/utils/bytes/bs58.js +8 -0
  435. package/dist/esm/utils/bytes/bs58.js.map +1 -0
  436. package/dist/esm/utils/bytes/hex.d.ts +4 -0
  437. package/dist/esm/utils/bytes/hex.d.ts.map +1 -0
  438. package/dist/esm/utils/bytes/hex.js +18 -0
  439. package/dist/esm/utils/bytes/hex.js.map +1 -0
  440. package/dist/esm/utils/bytes/index.d.ts +5 -0
  441. package/dist/esm/utils/bytes/index.d.ts.map +1 -0
  442. package/dist/esm/utils/bytes/index.js +5 -0
  443. package/dist/esm/utils/bytes/index.js.map +1 -0
  444. package/dist/esm/utils/bytes/utf8.d.ts +3 -0
  445. package/dist/esm/utils/bytes/utf8.d.ts.map +1 -0
  446. package/dist/esm/utils/bytes/utf8.js +14 -0
  447. package/dist/esm/utils/bytes/utf8.js.map +1 -0
  448. package/dist/esm/utils/common.d.ts +22 -0
  449. package/dist/esm/utils/common.d.ts.map +1 -0
  450. package/dist/esm/utils/common.js +27 -0
  451. package/dist/esm/utils/common.js.map +1 -0
  452. package/dist/esm/utils/features.d.ts +3 -0
  453. package/dist/esm/utils/features.d.ts.map +1 -0
  454. package/dist/esm/utils/features.js +12 -0
  455. package/dist/esm/utils/features.js.map +1 -0
  456. package/dist/esm/utils/index.d.ts +8 -0
  457. package/dist/esm/utils/index.d.ts.map +1 -0
  458. package/dist/esm/utils/index.js +8 -0
  459. package/dist/esm/utils/index.js.map +1 -0
  460. package/dist/esm/utils/pubkey.d.ts +3 -0
  461. package/dist/esm/utils/pubkey.d.ts.map +1 -0
  462. package/dist/esm/utils/pubkey.js +13 -0
  463. package/dist/esm/utils/pubkey.js.map +1 -0
  464. package/dist/esm/utils/registry.d.ts +34 -0
  465. package/dist/esm/utils/registry.d.ts.map +1 -0
  466. package/dist/esm/utils/registry.js +57 -0
  467. package/dist/esm/utils/registry.js.map +1 -0
  468. package/dist/esm/utils/rpc.d.ts +21 -0
  469. package/dist/esm/utils/rpc.d.ts.map +1 -0
  470. package/dist/esm/utils/rpc.js +161 -0
  471. package/dist/esm/utils/rpc.js.map +1 -0
  472. package/dist/esm/utils/sha256.d.ts +2 -0
  473. package/dist/esm/utils/sha256.d.ts.map +1 -0
  474. package/dist/esm/utils/sha256.js +5 -0
  475. package/dist/esm/utils/sha256.js.map +1 -0
  476. package/dist/esm/utils/token.d.ts +8 -0
  477. package/dist/esm/utils/token.d.ts.map +1 -0
  478. package/dist/esm/utils/token.js +7 -0
  479. package/dist/esm/utils/token.js.map +1 -0
  480. package/dist/esm/workspace.d.ts +14 -0
  481. package/dist/esm/workspace.d.ts.map +1 -0
  482. package/dist/esm/workspace.js +70 -0
  483. package/dist/esm/workspace.js.map +1 -0
  484. package/dist/tsconfig.cjs.tsbuildinfo +1 -0
  485. package/dist/tsconfig.tsbuildinfo +1 -0
  486. package/package.json +84 -0
  487. package/types/buffer-layout/index.d.ts +88 -0
@@ -0,0 +1,57 @@
1
+ import { AccountMeta, PublicKey, TransactionInstruction } from "@solana/web3.js";
2
+ import { Idl, IdlInstructionAccountItem, IdlInstruction } from "../../idl.js";
3
+ import { Accounts } from "../context.js";
4
+ import { AllInstructions, AllInstructionsMap, InstructionContextFn, MakeInstructionsNamespace } from "./types.js";
5
+ export default class InstructionNamespaceFactory {
6
+ static build<IDL extends Idl, I extends AllInstructions<IDL>>(idlIx: I, encodeFn: InstructionEncodeFn<I>, programId: PublicKey): InstructionFn<IDL, I>;
7
+ static accountsArray(ctx: Accounts | undefined, accounts: readonly IdlInstructionAccountItem[], programId: PublicKey, ixName?: string): AccountMeta[];
8
+ }
9
+ /**
10
+ * The namespace provides functions to build [[TransactionInstruction]]
11
+ * objects for each method of a program.
12
+ *
13
+ * ## Usage
14
+ *
15
+ * ```javascript
16
+ * instruction.<method>(...args, ctx);
17
+ * ```
18
+ *
19
+ * ## Parameters
20
+ *
21
+ * 1. `args` - The positional arguments for the program. The type and number
22
+ * of these arguments depend on the program being used.
23
+ * 2. `ctx` - [[Context]] non-argument parameters to pass to the method.
24
+ * Always the last parameter in the method call.
25
+ *
26
+ * ## Example
27
+ *
28
+ * To create an instruction for the `increment` method above,
29
+ *
30
+ * ```javascript
31
+ * const tx = await program.instruction.increment({
32
+ * accounts: {
33
+ * counter,
34
+ * },
35
+ * });
36
+ * ```
37
+ */
38
+ export type InstructionNamespace<IDL extends Idl = Idl, I extends IdlInstruction = AllInstructions<IDL>> = MakeInstructionsNamespace<IDL, I, TransactionInstruction, {
39
+ [M in keyof AllInstructionsMap<IDL>]: {
40
+ accounts: (ctx: Accounts<AllInstructionsMap<IDL>[M]["accounts"][number]>) => unknown;
41
+ };
42
+ }>;
43
+ /**
44
+ * Function to create a `TransactionInstruction` generated from an IDL.
45
+ * Additionally it provides an `accounts` utility method, returning a list
46
+ * of ordered accounts for the instruction.
47
+ */
48
+ export type InstructionFn<IDL extends Idl = Idl, I extends AllInstructions<IDL> = AllInstructions<IDL>> = InstructionContextFn<IDL, I, TransactionInstruction> & IxProps<Accounts<I["accounts"][number]>>;
49
+ type IxProps<A extends Accounts> = {
50
+ /**
51
+ * Returns an ordered list of accounts associated with the instruction.
52
+ */
53
+ accounts: (ctx: A) => AccountMeta[];
54
+ };
55
+ export type InstructionEncodeFn<I extends IdlInstruction = IdlInstruction> = (ixName: I["name"], ix: any) => Buffer;
56
+ export {};
57
+ //# sourceMappingURL=instruction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instruction.d.ts","sourceRoot":"","sources":["../../../../src/program/namespace/instruction.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,SAAS,EACT,sBAAsB,EACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,GAAG,EACH,yBAAyB,EAEzB,cAAc,EAEf,MAAM,cAAc,CAAC;AAQtB,OAAO,EAAE,QAAQ,EAAmB,MAAM,eAAe,CAAC;AAE1D,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EAEpB,yBAAyB,EAC1B,MAAM,YAAY,CAAC;AAEpB,MAAM,CAAC,OAAO,OAAO,2BAA2B;WAChC,KAAK,CAAC,GAAG,SAAS,GAAG,EAAE,CAAC,SAAS,eAAe,CAAC,GAAG,CAAC,EACjE,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAChC,SAAS,EAAE,SAAS,GACnB,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC;WA0CV,aAAa,CACzB,GAAG,EAAE,QAAQ,GAAG,SAAS,EACzB,QAAQ,EAAE,SAAS,yBAAyB,EAAE,EAC9C,SAAS,EAAE,SAAS,EACpB,MAAM,CAAC,EAAE,MAAM,GACd,WAAW,EAAE;CAyCjB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,MAAM,oBAAoB,CAC9B,GAAG,SAAS,GAAG,GAAG,GAAG,EACrB,CAAC,SAAS,cAAc,GAAG,eAAe,CAAC,GAAG,CAAC,IAC7C,yBAAyB,CAC3B,GAAG,EACH,CAAC,EACD,sBAAsB,EACtB;KACG,CAAC,IAAI,MAAM,kBAAkB,CAAC,GAAG,CAAC,GAAG;QACpC,QAAQ,EAAE,CACR,GAAG,EAAE,QAAQ,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,KAC1D,OAAO,CAAC;KACd;CACF,CACF,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,aAAa,CACvB,GAAG,SAAS,GAAG,GAAG,GAAG,EACrB,CAAC,SAAS,eAAe,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC,GAAG,CAAC,IACnD,oBAAoB,CAAC,GAAG,EAAE,CAAC,EAAE,sBAAsB,CAAC,GACtD,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAE3C,KAAK,OAAO,CAAC,CAAC,SAAS,QAAQ,IAAI;IACjC;;OAEG;IACH,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,WAAW,EAAE,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,IAAI,CAC3E,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EACjB,EAAE,EAAE,GAAG,KACJ,MAAM,CAAC"}
@@ -0,0 +1,68 @@
1
+ import { TransactionInstruction, } from "@solana/web3.js";
2
+ import { isCompositeAccounts, } from "../../idl.js";
3
+ import { IdlError } from "../../error.js";
4
+ import { toInstruction, translateAddress, validateAccounts, } from "../common.js";
5
+ import { splitArgsAndCtx } from "../context.js";
6
+ import * as features from "../../utils/features.js";
7
+ export default class InstructionNamespaceFactory {
8
+ static build(idlIx, encodeFn, programId) {
9
+ if (idlIx.name === "_inner") {
10
+ throw new IdlError("the _inner name is reserved");
11
+ }
12
+ const ix = (...args) => {
13
+ const [ixArgs, ctx] = splitArgsAndCtx(idlIx, [...args]);
14
+ validateAccounts(idlIx.accounts, ctx.accounts);
15
+ validateInstruction(idlIx, ...args);
16
+ const keys = ix.accounts(ctx.accounts);
17
+ if (ctx.remainingAccounts !== undefined) {
18
+ keys.push(...ctx.remainingAccounts);
19
+ }
20
+ if (features.isSet("debug-logs")) {
21
+ console.log("Outgoing account metas:", keys);
22
+ }
23
+ return new TransactionInstruction({
24
+ keys,
25
+ programId,
26
+ data: encodeFn(idlIx.name, toInstruction(idlIx, ...ixArgs)),
27
+ });
28
+ };
29
+ // Utility fn for ordering the accounts for this instruction.
30
+ ix["accounts"] = (accs) => {
31
+ return InstructionNamespaceFactory.accountsArray(accs, idlIx.accounts, programId, idlIx.name);
32
+ };
33
+ return ix;
34
+ }
35
+ static accountsArray(ctx, accounts, programId, ixName) {
36
+ if (!ctx) {
37
+ return [];
38
+ }
39
+ return accounts
40
+ .map((acc) => {
41
+ if (isCompositeAccounts(acc)) {
42
+ const rpcAccs = ctx[acc.name];
43
+ return InstructionNamespaceFactory.accountsArray(rpcAccs, acc.accounts, programId, ixName).flat();
44
+ }
45
+ let pubkey;
46
+ try {
47
+ pubkey = translateAddress(ctx[acc.name]);
48
+ }
49
+ catch (err) {
50
+ throw new Error(`Wrong input type for account "${acc.name}" in the instruction accounts object${ixName !== undefined ? ' for instruction "' + ixName + '"' : ""}. Expected PublicKey or string.`);
51
+ }
52
+ const isOptional = acc.optional && pubkey.equals(programId);
53
+ const isWritable = Boolean(acc.writable && !isOptional);
54
+ const isSigner = Boolean(acc.signer && !isOptional);
55
+ return {
56
+ pubkey,
57
+ isWritable,
58
+ isSigner,
59
+ };
60
+ })
61
+ .flat();
62
+ }
63
+ }
64
+ // Throws error if any argument required for the `ix` is not given.
65
+ function validateInstruction(ix, ...args) {
66
+ // todo
67
+ }
68
+ //# sourceMappingURL=instruction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instruction.js","sourceRoot":"","sources":["../../../../src/program/namespace/instruction.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,sBAAsB,GACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAKL,mBAAmB,GACpB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAEL,aAAa,EACb,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAY,eAAe,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,KAAK,QAAQ,MAAM,yBAAyB,CAAC;AASpD,MAAM,CAAC,OAAO,OAAO,2BAA2B;IACvC,MAAM,CAAC,KAAK,CACjB,KAAQ,EACR,QAAgC,EAChC,SAAoB;QAEpB,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC5B,MAAM,IAAI,QAAQ,CAAC,6BAA6B,CAAC,CAAC;QACpD,CAAC;QAED,MAAM,EAAE,GAAG,CACT,GAAG,IAAsC,EACjB,EAAE;YAC1B,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,eAAe,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;YACxD,gBAAgB,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC/C,mBAAmB,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;YAEpC,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAEvC,IAAI,GAAG,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;gBACxC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,iBAAiB,CAAC,CAAC;YACtC,CAAC;YAED,IAAI,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;gBACjC,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,IAAI,CAAC,CAAC;YAC/C,CAAC;YAED,OAAO,IAAI,sBAAsB,CAAC;gBAChC,IAAI;gBACJ,SAAS;gBACT,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,aAAa,CAAC,KAAK,EAAE,GAAG,MAAM,CAAC,CAAC;aAC5D,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,6DAA6D;QAC7D,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAiD,EAAE,EAAE;YACrE,OAAO,2BAA2B,CAAC,aAAa,CAC9C,IAAI,EACJ,KAAK,CAAC,QAAQ,EACd,SAAS,EACT,KAAK,CAAC,IAAI,CACX,CAAC;QACJ,CAAC,CAAC;QAEF,OAAO,EAAE,CAAC;IACZ,CAAC;IAEM,MAAM,CAAC,aAAa,CACzB,GAAyB,EACzB,QAA8C,EAC9C,SAAoB,EACpB,MAAe;QAEf,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO,QAAQ;aACZ,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACX,IAAI,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC7B,MAAM,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAa,CAAC;gBAC1C,OAAO,2BAA2B,CAAC,aAAa,CAC9C,OAAO,EACN,GAA8B,CAAC,QAAQ,EACxC,SAAS,EACT,MAAM,CACP,CAAC,IAAI,EAAE,CAAC;YACX,CAAC;YAED,IAAI,MAAiB,CAAC;YACtB,IAAI,CAAC;gBACH,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAY,CAAC,CAAC;YACtD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CACb,iCACE,GAAG,CAAC,IACN,uCACE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,oBAAoB,GAAG,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,EAC/D,iCAAiC,CAClC,CAAC;YACJ,CAAC;YAED,MAAM,UAAU,GAAG,GAAG,CAAC,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC5D,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,UAAU,CAAC,CAAC;YACxD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC;YACpD,OAAO;gBACL,MAAM;gBACN,UAAU;gBACV,QAAQ;aACT,CAAC;QACJ,CAAC,CAAC;aACD,IAAI,EAAE,CAAC;IACZ,CAAC;CACF;AAsED,mEAAmE;AACnE,SAAS,mBAAmB,CAAC,EAAkB,EAAE,GAAG,IAAW;IAC7D,OAAO;AACT,CAAC"}
@@ -0,0 +1,206 @@
1
+ import { AccountMeta, ConfirmOptions, PublicKey, Signer, Transaction, TransactionInstruction, TransactionSignature } from "@solana/web3.js";
2
+ import { Idl, IdlInstructionAccount, IdlInstructionAccountItem, IdlInstructionAccounts, IdlTypeDef } from "../../idl.js";
3
+ import Provider from "../../provider.js";
4
+ import { AccountsGeneric, CustomAccountResolver } from "../accounts-resolver.js";
5
+ import { Address } from "../common.js";
6
+ import { Accounts } from "../context.js";
7
+ import { AccountNamespace } from "./account.js";
8
+ import { InstructionFn } from "./instruction.js";
9
+ import { RpcFn } from "./rpc.js";
10
+ import { SimulateFn, SimulateResponse } from "./simulate.js";
11
+ import { TransactionFn } from "./transaction.js";
12
+ import { AllInstructions, InstructionAccountAddresses, MakeMethodsNamespace, MethodsFn } from "./types.js";
13
+ import { ViewFn } from "./views.js";
14
+ export type MethodsNamespace<IDL extends Idl = Idl, I extends AllInstructions<IDL> = AllInstructions<IDL>> = MakeMethodsNamespace<IDL, I>;
15
+ export declare class MethodsBuilderFactory {
16
+ static build<IDL extends Idl, I extends AllInstructions<IDL>>(provider: Provider, programId: PublicKey, idlIx: AllInstructions<IDL>, ixFn: InstructionFn<IDL>, txFn: TransactionFn<IDL>, rpcFn: RpcFn<IDL>, simulateFn: SimulateFn<IDL>, viewFn: ViewFn<IDL> | undefined, accountNamespace: AccountNamespace<IDL>, idlTypes: IdlTypeDef[], customResolver?: CustomAccountResolver<IDL>): MethodsFn<IDL, I, MethodsBuilder<IDL, I>>;
17
+ }
18
+ type ResolvedAccounts<A extends IdlInstructionAccountItem = IdlInstructionAccountItem> = PartialUndefined<ResolvedAccountsRecursive<A>>;
19
+ type ResolvedAccountsRecursive<A extends IdlInstructionAccountItem = IdlInstructionAccountItem> = OmitNever<{
20
+ [N in A["name"]]: ResolvedAccount<A & {
21
+ name: N;
22
+ }>;
23
+ }>;
24
+ type ResolvedAccount<A extends IdlInstructionAccountItem = IdlInstructionAccountItem> = A extends IdlInstructionAccounts ? ResolvedAccountsRecursive<A["accounts"][number]> : A extends NonNullable<Pick<IdlInstructionAccount, "address">> ? never : A extends NonNullable<Pick<IdlInstructionAccount, "pda">> ? never : A extends NonNullable<Pick<IdlInstructionAccount, "relations">> ? never : A extends {
25
+ signer: true;
26
+ } ? Address | undefined : PartialAccount<A>;
27
+ type PartialUndefined<T, P extends keyof T = {
28
+ [K in keyof T]: undefined extends T[K] ? K : never;
29
+ }[keyof T]> = Partial<Pick<T, P>> & Pick<T, Exclude<keyof T, P>>;
30
+ type OmitNever<T extends Record<string, any>> = {
31
+ [K in keyof T as T[K] extends never ? never : K]: T[K];
32
+ };
33
+ export type PartialAccounts<A extends IdlInstructionAccountItem = IdlInstructionAccountItem> = Partial<{
34
+ [N in A["name"]]: PartialAccount<A & {
35
+ name: N;
36
+ }>;
37
+ }>;
38
+ type PartialAccount<A extends IdlInstructionAccountItem = IdlInstructionAccountItem> = A extends IdlInstructionAccounts ? PartialAccounts<A["accounts"][number]> : A extends {
39
+ optional: true;
40
+ } ? Address | null : Address;
41
+ export declare function isPartialAccounts(partialAccount: any): partialAccount is PartialAccounts;
42
+ export declare function flattenPartialAccounts<A extends IdlInstructionAccountItem>(partialAccounts: PartialAccounts<A>, throwOnNull: boolean): AccountsGeneric;
43
+ export declare class MethodsBuilder<IDL extends Idl, I extends AllInstructions<IDL>, A extends I["accounts"][number] = I["accounts"][number]> {
44
+ private _args;
45
+ private _ixFn;
46
+ private _txFn;
47
+ private _rpcFn;
48
+ private _simulateFn;
49
+ private _viewFn;
50
+ private _accounts;
51
+ private _remainingAccounts;
52
+ private _signers;
53
+ private _preInstructions;
54
+ private _postInstructions;
55
+ private _accountsResolver;
56
+ private _resolveAccounts;
57
+ constructor(_args: Array<any>, _ixFn: InstructionFn<IDL>, _txFn: TransactionFn<IDL>, _rpcFn: RpcFn<IDL>, _simulateFn: SimulateFn<IDL>, _viewFn: ViewFn<IDL> | undefined, provider: Provider, programId: PublicKey, idlIx: AllInstructions<IDL>, accountNamespace: AccountNamespace<IDL>, idlTypes: IdlTypeDef[], customResolver?: CustomAccountResolver<IDL>);
58
+ args(args: Array<any>): void;
59
+ /**
60
+ * Set instruction accounts with account resolution.
61
+ *
62
+ * This method only accepts accounts that cannot be resolved.
63
+ *
64
+ * See {@link accountsPartial} for overriding the account resolution or
65
+ * {@link accountsStrict} for strictly specifying all accounts.
66
+ */
67
+ accounts(accounts: ResolvedAccounts<A>): this;
68
+ /**
69
+ * Set instruction accounts with account resolution.
70
+ *
71
+ * There is no functional difference between this method and {@link accounts}
72
+ * method, the only difference is this method allows specifying all accounts
73
+ * even if they can be resolved. On the other hand, {@link accounts} method
74
+ * doesn't accept accounts that can be resolved.
75
+ */
76
+ accountsPartial(accounts: PartialAccounts<A>): this;
77
+ /**
78
+ * Set instruction accounts without account resolution.
79
+ *
80
+ * All accounts strictly need to be specified when this method is used.
81
+ *
82
+ * See {@link accounts} and {@link accountsPartial} methods for automatically
83
+ * resolving accounts.
84
+ *
85
+ * @param accounts instruction accounts
86
+ */
87
+ accountsStrict(accounts: Accounts<A>): this;
88
+ /**
89
+ * Set instruction signers.
90
+ *
91
+ * Note that calling this method appends the given signers to the existing
92
+ * signers (instead of overriding them).
93
+ *
94
+ * @param signers signers to append
95
+ */
96
+ signers(signers: Array<Signer>): this;
97
+ /**
98
+ * Set remaining accounts.
99
+ *
100
+ * Note that calling this method appends the given accounts to the existing
101
+ * remaining accounts (instead of overriding them).
102
+ *
103
+ * @param accounts remaining accounts
104
+ */
105
+ remainingAccounts(accounts: Array<AccountMeta>): this;
106
+ /**
107
+ * Set previous instructions.
108
+ *
109
+ * See {@link postInstructions} to set the post instructions instead.
110
+ *
111
+ * @param ixs instructions
112
+ * @param prepend whether to prepend to the existing previous instructions
113
+ */
114
+ preInstructions(ixs: Array<TransactionInstruction>, prepend?: boolean): this;
115
+ /**
116
+ * Set post instructions.
117
+ *
118
+ * See {@link preInstructions} to set the previous instructions instead.
119
+ *
120
+ * @param ixs instructions
121
+ */
122
+ postInstructions(ixs: Array<TransactionInstruction>): this;
123
+ /**
124
+ * Get the public keys of the instruction accounts.
125
+ *
126
+ * The return type is an object with account names as keys and their public
127
+ * keys as their values.
128
+ *
129
+ * Note that an account key is `undefined` if the account hasn't yet been
130
+ * specified or resolved.
131
+ */
132
+ pubkeys(): Promise<Partial<InstructionAccountAddresses<IDL, I>>>;
133
+ /**
134
+ * Create an instruction based on the current configuration.
135
+ *
136
+ * See {@link transaction} to create a transaction instead.
137
+ *
138
+ * @returns the transaction instruction
139
+ */
140
+ instruction(): Promise<TransactionInstruction>;
141
+ /**
142
+ * Create a transaction based on the current configuration.
143
+ *
144
+ * This method doesn't send the created transaction. Use {@link rpc} method
145
+ * to conveniently send an confirm the configured transaction.
146
+ *
147
+ * See {@link instruction} to only create an instruction instead.
148
+ *
149
+ * @returns the transaction
150
+ */
151
+ transaction(): Promise<Transaction>;
152
+ /**
153
+ * Simulate the configured transaction.
154
+ *
155
+ * @param options confirmation options
156
+ * @returns the simulation response
157
+ */
158
+ simulate(options?: ConfirmOptions): Promise<SimulateResponse>;
159
+ /**
160
+ * View the configured transaction.
161
+ *
162
+ * Note that to use this method, the instruction needs to return a value and
163
+ * all its accounts must be read-only.
164
+ *
165
+ * @param options confirmation options
166
+ * @returns the return value of the instruction
167
+ */
168
+ view(options?: ConfirmOptions): Promise<any>;
169
+ /**
170
+ * Send and confirm the configured transaction.
171
+ *
172
+ * See {@link rpcAndKeys} to both send the transaction and get the resolved
173
+ * account public keys.
174
+ *
175
+ * @param options confirmation options
176
+ * @returns the transaction signature
177
+ */
178
+ rpc(options?: ConfirmOptions): Promise<TransactionSignature>;
179
+ /**
180
+ * Conveniently call both {@link rpc} and {@link pubkeys} methods.
181
+ *
182
+ * @param options confirmation options
183
+ * @returns the transaction signature and account public keys
184
+ */
185
+ rpcAndKeys(options?: ConfirmOptions): Promise<{
186
+ signature: TransactionSignature;
187
+ pubkeys: InstructionAccountAddresses<IDL, I>;
188
+ }>;
189
+ /**
190
+ * Get instruction information necessary to include the instruction inside a
191
+ * transaction.
192
+ *
193
+ * # Example
194
+ *
195
+ * ```ts
196
+ * const { instruction, signers, pubkeys } = await method.prepare();
197
+ * ```
198
+ */
199
+ prepare(): Promise<{
200
+ instruction: TransactionInstruction;
201
+ signers: Signer[];
202
+ pubkeys: Partial<InstructionAccountAddresses<IDL, I>>;
203
+ }>;
204
+ }
205
+ export {};
206
+ //# sourceMappingURL=methods.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"methods.d.ts","sourceRoot":"","sources":["../../../../src/program/namespace/methods.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,302 @@
1
+ import { AccountsResolver, } from "../accounts-resolver.js";
2
+ import { translateAddress } from "../common.js";
3
+ export class MethodsBuilderFactory {
4
+ static build(provider, programId, idlIx, ixFn, txFn, rpcFn, simulateFn, viewFn, accountNamespace, idlTypes, customResolver) {
5
+ return (...args) => new MethodsBuilder(args, ixFn, txFn, rpcFn, simulateFn, viewFn, provider, programId, idlIx, accountNamespace, idlTypes, customResolver);
6
+ }
7
+ }
8
+ export function isPartialAccounts(partialAccount) {
9
+ return (typeof partialAccount === "object" &&
10
+ partialAccount !== null &&
11
+ !("_bn" in partialAccount) // Ensures not a pubkey
12
+ );
13
+ }
14
+ export function flattenPartialAccounts(partialAccounts, throwOnNull) {
15
+ const toReturn = {};
16
+ for (const accountName in partialAccounts) {
17
+ const account = partialAccounts[accountName];
18
+ if (account === null) {
19
+ if (throwOnNull)
20
+ throw new Error("Failed to resolve optionals due to IDL type mismatch with input accounts!");
21
+ continue;
22
+ }
23
+ toReturn[accountName] = isPartialAccounts(account)
24
+ ? flattenPartialAccounts(account, true)
25
+ : translateAddress(account);
26
+ }
27
+ return toReturn;
28
+ }
29
+ export class MethodsBuilder {
30
+ constructor(_args, _ixFn, _txFn, _rpcFn, _simulateFn, _viewFn, provider, programId, idlIx, accountNamespace, idlTypes, customResolver) {
31
+ this._args = _args;
32
+ this._ixFn = _ixFn;
33
+ this._txFn = _txFn;
34
+ this._rpcFn = _rpcFn;
35
+ this._simulateFn = _simulateFn;
36
+ this._viewFn = _viewFn;
37
+ this._accounts = {};
38
+ this._remainingAccounts = [];
39
+ this._signers = [];
40
+ this._preInstructions = [];
41
+ this._postInstructions = [];
42
+ this._resolveAccounts = true;
43
+ this._accountsResolver = new AccountsResolver(_args, this._accounts, provider, programId, idlIx, accountNamespace, idlTypes, customResolver);
44
+ }
45
+ args(args) {
46
+ this._args = args;
47
+ this._accountsResolver.args(args);
48
+ }
49
+ /**
50
+ * Set instruction accounts with account resolution.
51
+ *
52
+ * This method only accepts accounts that cannot be resolved.
53
+ *
54
+ * See {@link accountsPartial} for overriding the account resolution or
55
+ * {@link accountsStrict} for strictly specifying all accounts.
56
+ */
57
+ accounts(accounts) {
58
+ // @ts-ignore
59
+ return this.accountsPartial(accounts);
60
+ }
61
+ /**
62
+ * Set instruction accounts with account resolution.
63
+ *
64
+ * There is no functional difference between this method and {@link accounts}
65
+ * method, the only difference is this method allows specifying all accounts
66
+ * even if they can be resolved. On the other hand, {@link accounts} method
67
+ * doesn't accept accounts that can be resolved.
68
+ */
69
+ accountsPartial(accounts) {
70
+ this._resolveAccounts = true;
71
+ this._accountsResolver.resolveOptionals(accounts);
72
+ return this;
73
+ }
74
+ /**
75
+ * Set instruction accounts without account resolution.
76
+ *
77
+ * All accounts strictly need to be specified when this method is used.
78
+ *
79
+ * See {@link accounts} and {@link accountsPartial} methods for automatically
80
+ * resolving accounts.
81
+ *
82
+ * @param accounts instruction accounts
83
+ */
84
+ accountsStrict(accounts) {
85
+ this._resolveAccounts = false;
86
+ this._accountsResolver.resolveOptionals(accounts);
87
+ return this;
88
+ }
89
+ /**
90
+ * Set instruction signers.
91
+ *
92
+ * Note that calling this method appends the given signers to the existing
93
+ * signers (instead of overriding them).
94
+ *
95
+ * @param signers signers to append
96
+ */
97
+ signers(signers) {
98
+ this._signers = this._signers.concat(signers);
99
+ return this;
100
+ }
101
+ /**
102
+ * Set remaining accounts.
103
+ *
104
+ * Note that calling this method appends the given accounts to the existing
105
+ * remaining accounts (instead of overriding them).
106
+ *
107
+ * @param accounts remaining accounts
108
+ */
109
+ remainingAccounts(accounts) {
110
+ this._remainingAccounts = this._remainingAccounts.concat(accounts);
111
+ return this;
112
+ }
113
+ /**
114
+ * Set previous instructions.
115
+ *
116
+ * See {@link postInstructions} to set the post instructions instead.
117
+ *
118
+ * @param ixs instructions
119
+ * @param prepend whether to prepend to the existing previous instructions
120
+ */
121
+ preInstructions(ixs, prepend = false) {
122
+ if (prepend) {
123
+ this._preInstructions = ixs.concat(this._preInstructions);
124
+ }
125
+ else {
126
+ this._preInstructions = this._preInstructions.concat(ixs);
127
+ }
128
+ return this;
129
+ }
130
+ /**
131
+ * Set post instructions.
132
+ *
133
+ * See {@link preInstructions} to set the previous instructions instead.
134
+ *
135
+ * @param ixs instructions
136
+ */
137
+ postInstructions(ixs) {
138
+ this._postInstructions = this._postInstructions.concat(ixs);
139
+ return this;
140
+ }
141
+ /**
142
+ * Get the public keys of the instruction accounts.
143
+ *
144
+ * The return type is an object with account names as keys and their public
145
+ * keys as their values.
146
+ *
147
+ * Note that an account key is `undefined` if the account hasn't yet been
148
+ * specified or resolved.
149
+ */
150
+ async pubkeys() {
151
+ if (this._resolveAccounts) {
152
+ await this._accountsResolver.resolve();
153
+ }
154
+ // @ts-ignore
155
+ return this._accounts;
156
+ }
157
+ /**
158
+ * Create an instruction based on the current configuration.
159
+ *
160
+ * See {@link transaction} to create a transaction instead.
161
+ *
162
+ * @returns the transaction instruction
163
+ */
164
+ async instruction() {
165
+ if (this._resolveAccounts) {
166
+ await this._accountsResolver.resolve();
167
+ }
168
+ // @ts-ignore
169
+ return this._ixFn(...this._args, {
170
+ accounts: this._accounts,
171
+ signers: this._signers,
172
+ remainingAccounts: this._remainingAccounts,
173
+ preInstructions: this._preInstructions,
174
+ postInstructions: this._postInstructions,
175
+ });
176
+ }
177
+ /**
178
+ * Create a transaction based on the current configuration.
179
+ *
180
+ * This method doesn't send the created transaction. Use {@link rpc} method
181
+ * to conveniently send an confirm the configured transaction.
182
+ *
183
+ * See {@link instruction} to only create an instruction instead.
184
+ *
185
+ * @returns the transaction
186
+ */
187
+ async transaction() {
188
+ if (this._resolveAccounts) {
189
+ await this._accountsResolver.resolve();
190
+ }
191
+ // @ts-ignore
192
+ return this._txFn(...this._args, {
193
+ accounts: this._accounts,
194
+ signers: this._signers,
195
+ remainingAccounts: this._remainingAccounts,
196
+ preInstructions: this._preInstructions,
197
+ postInstructions: this._postInstructions,
198
+ });
199
+ }
200
+ /**
201
+ * Simulate the configured transaction.
202
+ *
203
+ * @param options confirmation options
204
+ * @returns the simulation response
205
+ */
206
+ async simulate(options) {
207
+ if (this._resolveAccounts) {
208
+ await this._accountsResolver.resolve();
209
+ }
210
+ // @ts-ignore
211
+ return this._simulateFn(...this._args, {
212
+ accounts: this._accounts,
213
+ signers: this._signers,
214
+ remainingAccounts: this._remainingAccounts,
215
+ preInstructions: this._preInstructions,
216
+ postInstructions: this._postInstructions,
217
+ options,
218
+ });
219
+ }
220
+ /**
221
+ * View the configured transaction.
222
+ *
223
+ * Note that to use this method, the instruction needs to return a value and
224
+ * all its accounts must be read-only.
225
+ *
226
+ * @param options confirmation options
227
+ * @returns the return value of the instruction
228
+ */
229
+ async view(options) {
230
+ if (this._resolveAccounts) {
231
+ await this._accountsResolver.resolve();
232
+ }
233
+ if (!this._viewFn) {
234
+ throw new Error([
235
+ "Method does not support views.",
236
+ "The instruction should return a value, and its accounts must be read-only",
237
+ ].join(" "));
238
+ }
239
+ // @ts-ignore
240
+ return this._viewFn(...this._args, {
241
+ accounts: this._accounts,
242
+ signers: this._signers,
243
+ remainingAccounts: this._remainingAccounts,
244
+ preInstructions: this._preInstructions,
245
+ postInstructions: this._postInstructions,
246
+ options,
247
+ });
248
+ }
249
+ /**
250
+ * Send and confirm the configured transaction.
251
+ *
252
+ * See {@link rpcAndKeys} to both send the transaction and get the resolved
253
+ * account public keys.
254
+ *
255
+ * @param options confirmation options
256
+ * @returns the transaction signature
257
+ */
258
+ async rpc(options) {
259
+ if (this._resolveAccounts) {
260
+ await this._accountsResolver.resolve();
261
+ }
262
+ // @ts-ignore
263
+ return this._rpcFn(...this._args, {
264
+ accounts: this._accounts,
265
+ signers: this._signers,
266
+ remainingAccounts: this._remainingAccounts,
267
+ preInstructions: this._preInstructions,
268
+ postInstructions: this._postInstructions,
269
+ options,
270
+ });
271
+ }
272
+ /**
273
+ * Conveniently call both {@link rpc} and {@link pubkeys} methods.
274
+ *
275
+ * @param options confirmation options
276
+ * @returns the transaction signature and account public keys
277
+ */
278
+ async rpcAndKeys(options) {
279
+ return {
280
+ signature: await this.rpc(options),
281
+ pubkeys: (await this.pubkeys()),
282
+ };
283
+ }
284
+ /**
285
+ * Get instruction information necessary to include the instruction inside a
286
+ * transaction.
287
+ *
288
+ * # Example
289
+ *
290
+ * ```ts
291
+ * const { instruction, signers, pubkeys } = await method.prepare();
292
+ * ```
293
+ */
294
+ async prepare() {
295
+ return {
296
+ instruction: await this.instruction(),
297
+ signers: this._signers,
298
+ pubkeys: await this.pubkeys(),
299
+ };
300
+ }
301
+ }
302
+ //# sourceMappingURL=methods.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"methods.js","sourceRoot":"","sources":["../../../../src/program/namespace/methods.ts"],"names":[],"mappings":"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"}