@nosana/kit 2.0.46 → 2.0.50

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 (32) hide show
  1. package/dist/index.d.ts +30 -2
  2. package/dist/index.js.map +1 -1
  3. package/dist/services/programs/jobs/JobsProgram.d.ts +33 -5
  4. package/dist/services/programs/jobs/JobsProgram.js +32 -2
  5. package/dist/services/programs/jobs/JobsProgram.js.map +1 -1
  6. package/dist/services/programs/jobs/instructions/assign.d.ts +13 -0
  7. package/dist/services/programs/jobs/instructions/assign.js +40 -0
  8. package/dist/services/programs/jobs/instructions/assign.js.map +1 -0
  9. package/dist/services/programs/jobs/instructions/complete.d.ts +10 -0
  10. package/dist/services/programs/jobs/instructions/complete.js +17 -0
  11. package/dist/services/programs/jobs/instructions/complete.js.map +1 -0
  12. package/dist/services/programs/jobs/instructions/finish.d.ts +14 -0
  13. package/dist/services/programs/jobs/instructions/finish.js +63 -0
  14. package/dist/services/programs/jobs/instructions/finish.js.map +1 -0
  15. package/dist/services/programs/jobs/instructions/index.d.ts +8 -1
  16. package/dist/services/programs/jobs/instructions/index.js +8 -1
  17. package/dist/services/programs/jobs/instructions/index.js.map +1 -1
  18. package/dist/services/programs/jobs/instructions/list.d.ts +12 -0
  19. package/dist/services/programs/jobs/instructions/{post.js → list.js} +6 -4
  20. package/dist/services/programs/jobs/instructions/list.js.map +1 -0
  21. package/dist/services/programs/jobs/instructions/quit.d.ts +9 -0
  22. package/dist/services/programs/jobs/instructions/quit.js +25 -0
  23. package/dist/services/programs/jobs/instructions/quit.js.map +1 -0
  24. package/dist/services/programs/jobs/instructions/stop.d.ts +10 -0
  25. package/dist/services/programs/jobs/instructions/stop.js +23 -0
  26. package/dist/services/programs/jobs/instructions/stop.js.map +1 -0
  27. package/dist/services/programs/jobs/instructions/work.d.ts +10 -0
  28. package/dist/services/programs/jobs/instructions/work.js +61 -0
  29. package/dist/services/programs/jobs/instructions/work.js.map +1 -0
  30. package/package.json +2 -2
  31. package/dist/services/programs/jobs/instructions/post.d.ts +0 -13
  32. package/dist/services/programs/jobs/instructions/post.js.map +0 -1
package/dist/index.d.ts CHANGED
@@ -21,7 +21,11 @@ export type { JobsProgram, Job, Market, Run } from './services/programs/jobs/ind
21
21
  /**
22
22
  * @group @nosana/kit
23
23
  */
24
- export type { Post, PostParams, PostInstruction, } from './services/programs/jobs/instructions/post.js';
24
+ export type { List, ListParams, ListInstruction, } from './services/programs/jobs/instructions/list.js';
25
+ /**
26
+ * @group @nosana/kit
27
+ */
28
+ export type { Assign, AssignParams, AssignInstruction, } from './services/programs/jobs/instructions/assign.js';
25
29
  /**
26
30
  * @group @nosana/kit
27
31
  */
@@ -30,6 +34,30 @@ export type { Extend, ExtendParams, ExtendInstruction, } from './services/progra
30
34
  * @group @nosana/kit
31
35
  */
32
36
  export type { Delist, DelistParams, DelistInstruction, } from './services/programs/jobs/instructions/delist.js';
37
+ /**
38
+ * @group @nosana/kit
39
+ */
40
+ export type { Work, WorkParams, WorkInstruction, } from './services/programs/jobs/instructions/work.js';
41
+ /**
42
+ * @group @nosana/kit
43
+ */
44
+ export type { Finish, FinishParams, FinishInstruction, FinishInstructions, } from './services/programs/jobs/instructions/finish.js';
45
+ /**
46
+ * @group @nosana/kit
47
+ */
48
+ export type { Complete, CompleteParams, CompleteInstruction, } from './services/programs/jobs/instructions/complete.js';
49
+ /**
50
+ * @group @nosana/kit
51
+ */
52
+ export type { Quit, QuitParams, QuitInstruction, } from './services/programs/jobs/instructions/quit.js';
53
+ /**
54
+ * @group @nosana/kit
55
+ */
56
+ export type { Stop, StopParams, StopInstruction, } from './services/programs/jobs/instructions/stop.js';
57
+ /**
58
+ * @group @nosana/kit
59
+ */
60
+ export type { PostParams, PostInstruction } from './services/programs/jobs/index.js';
33
61
  /**
34
62
  * @group @nosana/kit
35
63
  */
@@ -77,7 +105,7 @@ export type { SolanaService, SolanaServiceDeps } from './services/solana/SolanaS
77
105
  /**
78
106
  * @group @nosana/kit
79
107
  */
80
- export { DEFAULT_CONFIGS, getNosanaConfig, type ClientConfig, type PartialClientConfig, type SolanaConfig, type ProgramConfig, type APIConfig, type SolanaClusterMoniker, type SolanaCommitment, } from './config/index.js';
108
+ export { DEFAULT_CONFIGS, getNosanaConfig, type ClientConfig, type PartialClientConfig, type AuthorizationConfig, type SolanaConfig, type ProgramConfig, type APIConfig, type SolanaClusterMoniker, type SolanaCommitment, } from './config/index.js';
81
109
  /**
82
110
  * @group @nosana/kit
83
111
  */
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -28,6 +28,8 @@ export type Run = ConvertTypesForDb<programClient.RunAccountArgs> & {
28
28
  };
29
29
  export { MonitorEventType } from './monitor/index.js';
30
30
  export type { SimpleMonitorEvent, MonitorEvent } from './monitor/index.js';
31
+ export type PostParams = Instructions.ListParams | Instructions.AssignParams;
32
+ export type PostInstruction = Instructions.ListInstruction | Instructions.AssignInstruction;
31
33
  /**
32
34
  * Jobs program interface
33
35
  * @group @nosana/kit
@@ -70,9 +72,17 @@ export interface JobsProgram {
70
72
  */
71
73
  markets(): Promise<Market[]>;
72
74
  /**
73
- * Post a new job to the marketplace
75
+ * List a new job to the marketplace
74
76
  */
75
- post: Instructions.Post;
77
+ list: Instructions.List;
78
+ /**
79
+ * Post a new job to the marketplace (can list or assign based on params)
80
+ */
81
+ post(params: Instructions.ListParams | Instructions.AssignParams): Promise<Instructions.ListInstruction | Instructions.AssignInstruction>;
82
+ /**
83
+ * Assign a job directly to a host node
84
+ */
85
+ assign: Instructions.Assign;
76
86
  /**
77
87
  * Extend an existing job's timeout
78
88
  */
@@ -84,9 +94,27 @@ export interface JobsProgram {
84
94
  /**
85
95
  * Stop a running job
86
96
  */
87
- end(params: {
88
- job: Address;
89
- }): Promise<ReturnType<typeof programClient.getEndInstruction>>;
97
+ end: Instructions.End;
98
+ /**
99
+ * Enters the MarketAccount queue, or create a RunAccount.
100
+ */
101
+ work: Instructions.Work;
102
+ /**
103
+ * Complete a job that has been stopped.
104
+ */
105
+ finish: Instructions.Finish;
106
+ /**
107
+ * Post the result for a JobAccount to finish it and get paid.
108
+ */
109
+ complete: Instructions.Complete;
110
+ /**
111
+ * Quit a JobAccount that you have started.
112
+ */
113
+ quit: Instructions.Quit;
114
+ /**
115
+ * Exit the node queue
116
+ */
117
+ stop: Instructions.Stop;
90
118
  /**
91
119
  * Monitor program account updates using async iterators.
92
120
  * Automatically merges run account data into job account updates.
@@ -400,10 +400,25 @@ export function createJobsProgram(deps, config) {
400
400
  }
401
401
  },
402
402
  /**
403
- * Post a new job to the marketplace
403
+ * List a new job to the marketplace
404
+ */
405
+ async list(params) {
406
+ return Instructions.list(params, createInstructionsHelper(this.get, this.runs));
407
+ },
408
+ /**
409
+ * Post a new job to the marketplace (can list or assign based on params)
404
410
  */
405
411
  async post(params) {
406
- return Instructions.post(params, createInstructionsHelper(this.get, this.runs));
412
+ const helperParams = createInstructionsHelper(this.get, this.runs);
413
+ // If node is provided, it's an assign operation
414
+ if ('node' in params) {
415
+ return Instructions.assign(params, helperParams);
416
+ }
417
+ // Otherwise, it's a list operation
418
+ return Instructions.list(params, helperParams);
419
+ },
420
+ async assign(params) {
421
+ return Instructions.assign(params, createInstructionsHelper(this.get, this.runs));
407
422
  },
408
423
  async extend(params) {
409
424
  return Instructions.extend(params, createInstructionsHelper(this.get, this.runs));
@@ -414,6 +429,21 @@ export function createJobsProgram(deps, config) {
414
429
  async end(params) {
415
430
  return Instructions.end(params, createInstructionsHelper(this.get, this.runs));
416
431
  },
432
+ async finish(params) {
433
+ return Instructions.finish(params, createInstructionsHelper(this.get, this.runs));
434
+ },
435
+ async complete(params) {
436
+ return Instructions.complete(params, createInstructionsHelper(this.get, this.runs));
437
+ },
438
+ async quit(params) {
439
+ return Instructions.quit(params, createInstructionsHelper(this.get, this.runs));
440
+ },
441
+ async stop(params) {
442
+ return Instructions.stop(params, createInstructionsHelper(this.get, this.runs));
443
+ },
444
+ async work(params) {
445
+ return Instructions.work(params, createInstructionsHelper(this.get, this.runs));
446
+ },
417
447
  /**
418
448
  * Monitor program account updates using async iterators.
419
449
  * Automatically merges run account data into job account updates.
@@ -1 +1 @@
1
- {"version":3,"file":"JobsProgram.js","sourceRoot":"","sources":["../../../../src/services/programs/jobs/JobsProgram.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAA0B,MAAM,yBAAyB,CAAC;AAUxF,OAAO,EACL,iBAAiB,IAAI,mBAAmB,GAEzC,MAAM,qCAAqC,CAAC;AAI7C,OAAO,KAAK,YAAY,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,aAAa,MAAM,0CAA0C,CAAC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAG5D,MAAM,CAAN,IAAY,QAKX;AALD,WAAY,QAAQ;IAClB,2CAAU,CAAA;IACV,6CAAW,CAAA;IACX,iDAAa,CAAA;IACb,6CAAW,CAAA;AACb,CAAC,EALW,QAAQ,KAAR,QAAQ,QAKnB;AAED,MAAM,CAAN,IAAY,eAGX;AAHD,WAAY,eAAe;IACzB,+DAAa,CAAA;IACb,iEAAc,CAAA;AAChB,CAAC,EAHW,eAAe,KAAf,eAAe,QAG1B;AAcD,0CAA0C;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAkHtD;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,MAAM,UAAU,iBAAiB,CAAC,IAAiB,EAAE,MAAqB;IACxE,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC;IACrC,MAAM,MAAM,GAAG,aAAa,CAAC;IAE7B,0CAA0C;IAC1C,MAAM,mBAAmB,GAAkE,EAAE,CAAC;IAE9F;;OAEG;IACH;;OAEG;IACH,SAAS,wBAAwB,CAAC,SAA6B;QAC7D,MAAM,MAAM,GAAG,uBAAuB,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QAC9D,uCAAuC;QACvC,IAAI,MAAM,KAAK,gDAAgD,EAAE,CAAC;YAChE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,SAAS,mBAAmB,CAAC,UAA6C;QACxE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,GAAG,cAAc,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC;QAEhE,MAAM,SAAS,GAAG,qBAAqB,CAAC,cAAc,CAAC,CAAC;QACxD,OAAO;YACL,OAAO,EAAE,UAAU,CAAC,OAAO;YAC3B,GAAG,SAAS;YACZ,OAAO,EAAE,wBAAwB,CAAC,cAAc,CAAC,OAAO,CAAC;YACzD,UAAU,EAAE,wBAAwB,CAAC,cAAc,CAAC,UAAU,CAAC;YAC/D,KAAK,EAAE,SAAS,CAAC,KAAiB;SACnC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,SAAS,mBAAmB,CAAC,UAA6C;QACxE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,GAAG,cAAc,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC;QAEhE,OAAO;YACL,OAAO,EAAE,UAAU,CAAC,OAAO;YAC3B,GAAG,qBAAqB,CAAC,cAAc,CAAC;SACzC,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,SAAS,eAAe,CAAC,GAAQ,EAAE,GAAQ;QACzC,OAAO;YACL,GAAG,GAAG;YACN,KAAK,EAAE,QAAQ,CAAC,OAAO;YACvB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,SAAS,EAAE,GAAG,CAAC,IAAI;SACpB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,SAAS,sBAAsB,CAAC,aAAmD;QACjF,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,GAAG,iBAAiB,EAAE,GAAG,aAAa,CAAC,IAAI,CAAC;QAEtE,MAAM,SAAS,GAAG,qBAAqB,CAAC,iBAAiB,CAAC,CAAC;QAC3D,OAAO;YACL,OAAO,EAAE,aAAa,CAAC,OAAO;YAC9B,GAAG,SAAS;YACZ,SAAS,EAAE,SAAS,CAAC,SAA4B;SAClD,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,SAAS,iBAAiB;QACxB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAChC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,WAAW,CAAC,uCAAuC,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;QACvF,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,SAAS,iBAAiB;QACxB,OAAO,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IACvE,CAAC;IAED,SAAS,wBAAwB,CAC/B,GAAuB,EACvB,OAA4B;QAE5B,OAAO;YACL,IAAI;YACJ,MAAM;YACN,MAAM;YACN,GAAG;YACH,OAAO;YACP,iBAAiB;YACjB,iBAAiB;YACjB,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM;SAC3B,CAAC;IACJ,CAAC;IAED,OAAO;QACL;;WAEG;QACH,KAAK,CAAC,GAAG,CAAC,IAAa,EAAE,WAAoB,IAAI;YAC/C,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBACvE,MAAM,GAAG,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;gBAC5C,IAAI,QAAQ,IAAI,GAAG,CAAC,KAAK,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC;oBAC9C,gEAAgE;oBAChE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;oBACnD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACpB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;wBACpB,GAAG,CAAC,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC;wBAC7B,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC;wBACzB,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;oBACtB,CAAC;gBACH,CAAC;gBACD,OAAO,GAAG,CAAC;YACb,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,GAAG,EAAE,CAAC,CAAC;gBAChD,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;QAED;;WAEG;QACH,KAAK,CAAC,GAAG,CAAC,IAAa;YACrB,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBACvE,MAAM,GAAG,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;gBAC5C,OAAO,GAAG,CAAC;YACb,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,GAAG,EAAE,CAAC,CAAC;gBAChD,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;QAED;;WAEG;QACH,KAAK,CAAC,MAAM,CAAC,IAAa;YACxB,IAAI,CAAC;gBACH,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBAC7E,MAAM,MAAM,GAAG,sBAAsB,CAAC,aAAa,CAAC,CAAC;gBACrD,OAAO,MAAM,CAAC;YAChB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,GAAG,EAAE,CAAC,CAAC;gBACnD,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;QAED;;WAEG;QACH,KAAK,CAAC,QAAQ,CAAC,SAAoB,EAAE,YAAqB,KAAK;YAC7D,IAAI,CAAC;gBACH,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;gBAChF,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,CAAC;gBAC9E,IAAI,SAAS,EAAE,CAAC;oBACd,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;oBAC/B,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;wBACnB,IAAI,GAAG,CAAC,KAAK,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC;4BAClC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC;4BACxD,IAAI,GAAG,EAAE,CAAC;gCACR,GAAG,CAAC,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC;gCAC7B,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC;gCACzB,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;4BACtB,CAAC;wBACH,CAAC;oBACH,CAAC,CAAC,CAAC;gBACL,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,GAAG,EAAE,CAAC,CAAC;gBAChD,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;QAED;;WAEG;QACH,KAAK,CAAC,GAAG,CACP,OAKC,EACD,YAAqB,KAAK;YAE1B,IAAI,CAAC;gBACH,MAAM,eAAe,GAAqC,EAAE,CAAC;gBAC7D,IAAI,OAAO,EAAE,CAAC;oBACZ,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;wBACtC,eAAe,CAAC,IAAI,CAAC;4BACnB,MAAM,EAAE;gCACN,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC;gCACnB,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAuB;gCACtE,QAAQ,EAAE,QAAQ;6BACnB;yBACF,CAAC,CAAC;oBACL,CAAC;oBACD,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;wBACpB,eAAe,CAAC,IAAI,CAAC;4BACnB,MAAM,EAAE;gCACN,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC;gCACnB,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAwB;gCACvD,QAAQ,EAAE,QAAQ;6BACnB;yBACF,CAAC,CAAC;oBACL,CAAC;oBACD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;wBACjB,eAAe,CAAC,IAAI,CAAC;4BACnB,MAAM,EAAE;gCACN,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC;gCACnB,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAwB;gCACpD,QAAQ,EAAE,QAAQ;6BACnB;yBACF,CAAC,CAAC;oBACL,CAAC;oBACD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;wBACnB,eAAe,CAAC,IAAI,CAAC;4BACnB,MAAM,EAAE;gCACN,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;gCAClB,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAwB;gCACtD,QAAQ,EAAE,QAAQ;6BACnB;yBACF,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;gBACD,MAAM,0BAA0B,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG;qBACrD,kBAAkB,CAAC,SAAS,EAAE;oBAC7B,QAAQ,EAAE,QAAQ;oBAClB,OAAO,EAAE;wBACP;4BACE,MAAM,EAAE;gCACN,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;gCACjB,KAAK,EAAE,IAAI,CAAC,MAAM,CAChB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,yBAAyB,CAAC,CACxB;gCACvB,QAAQ,EAAE,QAAQ;6BACnB;yBACF;wBACD,GAAG,eAAe;qBACnB;iBACF,CAAC;qBACD,IAAI,EAAE,CAAC;gBAEV,MAAM,IAAI,GAAU,0BAA0B;qBAC3C,GAAG,CAAC,CAAC,MAA8C,EAAE,EAAE;oBACtD,IAAI,CAAC;wBACH,MAAM,UAAU,GAAG,MAAM,CAAC,gBAAgB,CACxC,qBAAqB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CACrD,CAAC;wBACF,OAAO,mBAAmB,CAAC,UAAU,CAAC,CAAC;oBACzC,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,GAAG,EAAE,CAAC,CAAC;wBACjD,OAAO,IAAI,CAAC;oBACd,CAAC;gBACH,CAAC,CAAC;qBACD,MAAM,CAAC,CAAC,OAAmB,EAAkB,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC;gBACrE,IAAI,SAAS,EAAE,CAAC;oBACd,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;oBAC/B,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;wBACnB,IAAI,GAAG,CAAC,KAAK,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC;4BAClC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC;4BACxD,IAAI,GAAG,EAAE,CAAC;gCACR,GAAG,CAAC,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC;gCAC7B,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC;gCACzB,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;4BACtB,CAAC;wBACH,CAAC;oBACH,CAAC,CAAC,CAAC;gBACL,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,GAAG,EAAE,CAAC,CAAC;gBACrD,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;QAED;;WAEG;QACH,KAAK,CAAC,IAAI,CAAC,OAA2C;YACpD,IAAI,CAAC;gBACH,MAAM,eAAe,GAAqC,EAAE,CAAC;gBAC7D,IAAI,OAAO,EAAE,CAAC;oBACZ,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;wBACjB,eAAe,CAAC,IAAI,CAAC;4BACnB,MAAM,EAAE;gCACN,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;gCAClB,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAwB;gCACpD,QAAQ,EAAE,QAAQ;6BACnB;yBACF,CAAC,CAAC;oBACL,CAAC;oBACD,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;wBAChB,eAAe,CAAC,IAAI,CAAC;4BACnB,MAAM,EAAE;gCACN,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;gCACjB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAwB;gCACnD,QAAQ,EAAE,QAAQ;6BACnB;yBACF,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;gBACD,MAAM,0BAA0B,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG;qBACrD,kBAAkB,CAAC,SAAS,EAAE;oBAC7B,QAAQ,EAAE,QAAQ;oBAClB,OAAO,EAAE;wBACP;4BACE,MAAM,EAAE;gCACN,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;gCACjB,KAAK,EAAE,IAAI,CAAC,MAAM,CAChB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,yBAAyB,CAAC,CACxB;gCACvB,QAAQ,EAAE,QAAQ;6BACnB;yBACF;wBACD,GAAG,eAAe;qBACnB;iBACF,CAAC;qBACD,IAAI,EAAE,CAAC;gBAEV,MAAM,WAAW,GAAU,0BAA0B;qBAClD,GAAG,CAAC,CAAC,MAA8C,EAAE,EAAE;oBACtD,IAAI,CAAC;wBACH,MAAM,UAAU,GAAG,MAAM,CAAC,gBAAgB,CACxC,qBAAqB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CACrD,CAAC;wBACF,OAAO,mBAAmB,CAAC,UAAU,CAAC,CAAC;oBACzC,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,GAAG,EAAE,CAAC,CAAC;wBACjD,OAAO,IAAI,CAAC;oBACd,CAAC;gBACH,CAAC,CAAC;qBACD,MAAM,CAAC,CAAC,OAAmB,EAAkB,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC;gBACrE,OAAO,WAAW,CAAC;YACrB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,GAAG,EAAE,CAAC,CAAC;gBACrD,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;QAED;;WAEG;QACH,KAAK,CAAC,OAAO;YACX,IAAI,CAAC;gBACH,MAAM,0BAA0B,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG;qBACrD,kBAAkB,CAAC,SAAS,EAAE;oBAC7B,QAAQ,EAAE,QAAQ;oBAClB,OAAO,EAAE;wBACP;4BACE,MAAM,EAAE;gCACN,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;gCACjB,KAAK,EAAE,IAAI,CAAC,MAAM,CAChB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,4BAA4B,CAAC,CAC3B;gCACvB,QAAQ,EAAE,QAAQ;6BACnB;yBACF;qBACF;iBACF,CAAC;qBACD,IAAI,EAAE,CAAC;gBAEV,MAAM,cAAc,GAAa,0BAA0B;qBACxD,GAAG,CAAC,CAAC,MAA8C,EAAE,EAAE;oBACtD,IAAI,CAAC;wBACH,MAAM,aAAa,GAAG,MAAM,CAAC,mBAAmB,CAC9C,qBAAqB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CACrD,CAAC;wBACF,OAAO,sBAAsB,CAAC,aAAa,CAAC,CAAC;oBAC/C,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,GAAG,EAAE,CAAC,CAAC;wBACpD,OAAO,IAAI,CAAC;oBACd,CAAC;gBACH,CAAC,CAAC;qBACD,MAAM,CAAC,CAAC,OAAsB,EAAqB,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC;gBAC3E,OAAO,cAAc,CAAC;YACxB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,GAAG,EAAE,CAAC,CAAC;gBACxD,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;QACD;;WAEG;QACH,KAAK,CAAC,IAAI,CAAC,MAAM;YACf,OAAO,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,wBAAwB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAClF,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,MAAM;YACjB,OAAO,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACpF,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,MAAM;YACjB,OAAO,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACpF,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,MAAM;YACd,OAAO,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,wBAAwB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACjF,CAAC;QACD;;;;;;;;;;;;;;;;;;;;;;WAsBG;QACH,KAAK,CAAC,OAAO;YACX,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE;gBACnE,IAAI;gBACJ,MAAM;gBACN,MAAM;gBACN,mBAAmB;gBACnB,mBAAmB;gBACnB,sBAAsB;gBACtB,eAAe;aAChB,CAAC,CAAC;YACH,OAAO,gBAAgB,CAAC,OAAO,EAAE,CAAC;QACpC,CAAC;QACD;;;;;;;;;;;;;;;;;;;;;;;;;;;WA2BG;QACH,KAAK,CAAC,eAAe;YACnB,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE;gBACnE,IAAI;gBACJ,MAAM;gBACN,MAAM;gBACN,mBAAmB;gBACnB,mBAAmB;gBACnB,sBAAsB;gBACtB,eAAe;aAChB,CAAC,CAAC;YACH,OAAO,gBAAgB,CAAC,eAAe,EAAE,CAAC;QAC5C,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"JobsProgram.js","sourceRoot":"","sources":["../../../../src/services/programs/jobs/JobsProgram.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { type Address, type TransactionSigner } from '@solana/kit';
2
+ import type { getAssignInstruction } from '../../../../generated_clients/jobs/index.js';
3
+ import type { InstructionsHelperParams } from './types.js';
4
+ export type AssignParams = {
5
+ market: Address;
6
+ timeout: number | bigint;
7
+ ipfsHash: string;
8
+ node: Address;
9
+ payer?: TransactionSigner;
10
+ };
11
+ export type AssignInstruction = ReturnType<typeof getAssignInstruction>;
12
+ export type Assign = (params: AssignParams) => Promise<AssignInstruction>;
13
+ export declare function assign({ market, timeout, ipfsHash, node, payer }: AssignParams, { config, deps, client, getRequiredWallet, getStaticAccounts, getNosATA, }: InstructionsHelperParams): Promise<AssignInstruction>;
@@ -0,0 +1,40 @@
1
+ import { ipfsHashToSolBytesArray } from '@nosana/ipfs';
2
+ import { generateKeyPairSigner } from '@solana/kit';
3
+ export async function assign({ market, timeout, ipfsHash, node, payer }, { config, deps, client, getRequiredWallet, getStaticAccounts, getNosATA, }) {
4
+ try {
5
+ const wallet = getRequiredWallet();
6
+ // Use provided payer or fall back to wallet
7
+ const nosPayer = payer ?? wallet;
8
+ // Generate new keypairs for job and run
9
+ const [jobKey, runKey, associatedTokenAddress, { jobsProgram, ...staticAccounts }] = await Promise.all([
10
+ generateKeyPairSigner(),
11
+ generateKeyPairSigner(),
12
+ getNosATA(nosPayer.address),
13
+ getStaticAccounts(),
14
+ ]);
15
+ const vault = await deps.solana.pda([market, config.nosTokenAddress], jobsProgram);
16
+ // Convert IPFS hash to Solana bytes array
17
+ const ipfsJobBytes = ipfsHashToSolBytesArray(ipfsHash);
18
+ return client.getAssignInstruction({
19
+ job: jobKey,
20
+ run: runKey,
21
+ node,
22
+ market,
23
+ ipfsJob: new Uint8Array(ipfsJobBytes),
24
+ timeout,
25
+ user: associatedTokenAddress,
26
+ vault: vault,
27
+ payer: nosPayer,
28
+ authority: wallet,
29
+ ...staticAccounts,
30
+ }, {
31
+ programAddress: jobsProgram,
32
+ });
33
+ }
34
+ catch (err) {
35
+ const errorMessage = `Failed to create assign instruction: ${err instanceof Error ? err.message : String(err)}`;
36
+ deps.logger.error(errorMessage);
37
+ throw new Error(errorMessage);
38
+ }
39
+ }
40
+ //# sourceMappingURL=assign.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assign.js","sourceRoot":"","sources":["../../../../../src/services/programs/jobs/instructions/assign.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAwC,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAgB1F,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAgB,EACxD,EACE,MAAM,EACN,IAAI,EACJ,MAAM,EACN,iBAAiB,EACjB,iBAAiB,EACjB,SAAS,GACgB;IAE3B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;QACnC,4CAA4C;QAC5C,MAAM,QAAQ,GAAG,KAAK,IAAI,MAAM,CAAC;QAEjC,wCAAwC;QACxC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,sBAAsB,EAAE,EAAE,WAAW,EAAE,GAAG,cAAc,EAAE,CAAC,GAChF,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,qBAAqB,EAAE;YACvB,qBAAqB,EAAE;YACvB,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC3B,iBAAiB,EAAE;SACpB,CAAC,CAAC;QACL,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe,CAAC,EAAE,WAAW,CAAC,CAAC;QAEnF,0CAA0C;QAC1C,MAAM,YAAY,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC;QAEvD,OAAO,MAAM,CAAC,oBAAoB,CAChC;YACE,GAAG,EAAE,MAAM;YACX,GAAG,EAAE,MAAM;YACX,IAAI;YACJ,MAAM;YACN,OAAO,EAAE,IAAI,UAAU,CAAC,YAAY,CAAC;YACrC,OAAO;YACP,IAAI,EAAE,sBAAsB;YAC5B,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,QAAQ;YACf,SAAS,EAAE,MAAM;YACjB,GAAG,cAAc;SAClB,EACD;YACE,cAAc,EAAE,WAAW;SAC5B,CACF,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,YAAY,GAAG,wCAAwC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QAChH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;IAChC,CAAC;AACH,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { Address } from '@solana/kit';
2
+ import type { getCompleteInstruction } from '../../../../generated_clients/jobs/index.js';
3
+ import type { InstructionsHelperParams } from './types.js';
4
+ export type CompleteParams = {
5
+ job: Address;
6
+ ipfsResultsHash: string;
7
+ };
8
+ export type CompleteInstruction = ReturnType<typeof getCompleteInstruction>;
9
+ export type Complete = (params: CompleteParams) => Promise<CompleteInstruction>;
10
+ export declare function complete({ job, ipfsResultsHash }: CompleteParams, { client, get, getRequiredWallet }: InstructionsHelperParams): Promise<CompleteInstruction>;
@@ -0,0 +1,17 @@
1
+ import { ipfsHashToSolBytesArray } from '@nosana/ipfs';
2
+ import { JobState } from '../JobsProgram.js';
3
+ export async function complete({ job, ipfsResultsHash }, { client, get, getRequiredWallet }) {
4
+ const wallet = getRequiredWallet();
5
+ const jobAccount = await get(job);
6
+ if (jobAccount.state !== JobState.COMPLETED)
7
+ throw new Error(`Cannot complete a job that is not in state COMPLETED. Current state: ${JobState[jobAccount.state]}`);
8
+ if (jobAccount.ipfsResult !== null) {
9
+ throw new Error('Job has already been completed.');
10
+ }
11
+ return client.getCompleteInstruction({
12
+ job,
13
+ ipfsResult: new Uint8Array(ipfsHashToSolBytesArray(ipfsResultsHash)),
14
+ authority: wallet,
15
+ });
16
+ }
17
+ //# sourceMappingURL=complete.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"complete.js","sourceRoot":"","sources":["../../../../../src/services/programs/jobs/instructions/complete.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAIvD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAW7C,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,EAAE,GAAG,EAAE,eAAe,EAAkB,EACxC,EAAE,MAAM,EAAE,GAAG,EAAE,iBAAiB,EAA4B;IAE5D,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;IACnC,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;IAElC,IAAI,UAAU,CAAC,KAAK,KAAK,QAAQ,CAAC,SAAS;QACzC,MAAM,IAAI,KAAK,CACb,wEAAwE,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CACrG,CAAC;IAEJ,IAAI,UAAU,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IAED,OAAO,MAAM,CAAC,sBAAsB,CAAC;QACnC,GAAG;QACH,UAAU,EAAE,IAAI,UAAU,CAAC,uBAAuB,CAAC,eAAe,CAAC,CAAC;QACpE,SAAS,EAAE,MAAM;KAClB,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { Address } from '@solana/kit';
2
+ import { getCreateAssociatedTokenIdempotentInstructionAsync } from '@solana-program/token';
3
+ import type { getFinishInstruction } from '../../../../generated_clients/jobs/index.js';
4
+ import type { InstructionsHelperParams } from './types.js';
5
+ type CreateATAInstruction = Awaited<ReturnType<typeof getCreateAssociatedTokenIdempotentInstructionAsync>>;
6
+ export type FinishParams = {
7
+ job: Address;
8
+ ipfsResultsHash: string;
9
+ };
10
+ export type FinishInstruction = ReturnType<typeof getFinishInstruction>;
11
+ export type FinishInstructions = [FinishInstruction] | [CreateATAInstruction, FinishInstruction] | [CreateATAInstruction, CreateATAInstruction, FinishInstruction];
12
+ export type Finish = (params: FinishParams) => Promise<FinishInstructions>;
13
+ export declare function finish({ job, ipfsResultsHash }: FinishParams, { config, deps, client, get, getRuns, getRequiredWallet, getStaticAccounts, getNosATA, }: InstructionsHelperParams): Promise<FinishInstructions>;
14
+ export {};
@@ -0,0 +1,63 @@
1
+ import { ipfsHashToSolBytesArray } from '@nosana/ipfs';
2
+ export async function finish({ job, ipfsResultsHash }, { config, deps, client, get, getRuns, getRequiredWallet, getStaticAccounts, getNosATA, }) {
3
+ try {
4
+ const wallet = getRequiredWallet();
5
+ // Get required accounts in parallel
6
+ const [jobAccount, [run], { jobsProgram, ...staticAccounts }] = await Promise.all([
7
+ get(job, false),
8
+ getRuns({ job }),
9
+ getStaticAccounts(),
10
+ ]);
11
+ if (!run) {
12
+ throw new Error('No job run account found for the specified job');
13
+ }
14
+ // Derive vault PDA and get user ATA in parallel
15
+ const [vault, nodeATA] = await Promise.all([
16
+ deps.solana.pda([jobAccount.market, config.nosTokenAddress], jobsProgram),
17
+ getNosATA(run.node), // ATA for the node (user)
18
+ ]);
19
+ // Determine deposit account: if job.price > 0, use job payer's ATA, otherwise use vault
20
+ const deposit = jobAccount.price > 0 ? await getNosATA(jobAccount.payer) : vault;
21
+ // Convert IPFS result hash to Solana bytes array
22
+ const ipfsResult = new Uint8Array(ipfsHashToSolBytesArray(ipfsResultsHash));
23
+ // Create the finish instruction
24
+ const finishInstruction = client.getFinishInstruction({
25
+ job,
26
+ run: run.address,
27
+ market: jobAccount.market,
28
+ vault,
29
+ deposit,
30
+ user: nodeATA,
31
+ payerJob: jobAccount.payer,
32
+ payerRun: run.payer,
33
+ project: jobAccount.project,
34
+ authority: wallet,
35
+ ipfsResult,
36
+ ...staticAccounts,
37
+ }, {
38
+ programAddress: jobsProgram,
39
+ });
40
+ // Check if ATA accounts exist and create instructions if needed
41
+ const preInstructions = [];
42
+ // Check if node ATA exists, if not create it
43
+ const createNodeATAInstruction = await deps.solana.getCreateATAInstructionIfNeeded(nodeATA, config.nosTokenAddress, run.node, wallet);
44
+ if (createNodeATAInstruction) {
45
+ preInstructions.push(createNodeATAInstruction);
46
+ }
47
+ // Check if deposit ATA exists (only if job.price > 0)
48
+ if (jobAccount.price > 0) {
49
+ const createDepositATAInstruction = await deps.solana.getCreateATAInstructionIfNeeded(deposit, config.nosTokenAddress, jobAccount.payer, wallet);
50
+ if (createDepositATAInstruction) {
51
+ preInstructions.push(createDepositATAInstruction);
52
+ }
53
+ }
54
+ // Return tuple with pre-instructions (if any) followed by finish instruction
55
+ return [...preInstructions, finishInstruction];
56
+ }
57
+ catch (err) {
58
+ const errorMessage = `Failed to create finish instruction: ${err instanceof Error ? err.message : String(err)}`;
59
+ deps.logger.error(errorMessage);
60
+ throw new Error(errorMessage);
61
+ }
62
+ }
63
+ //# sourceMappingURL=finish.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"finish.js","sourceRoot":"","sources":["../../../../../src/services/programs/jobs/instructions/finish.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,11 @@
1
+ export * from './assign.js';
2
+ export * from './complete.js';
1
3
  export * from './delist.js';
2
4
  export * from './end.js';
3
5
  export * from './extend.js';
4
- export * from './post.js';
6
+ export * from './list.js';
7
+ export * from './complete.js';
8
+ export * from './finish.js';
9
+ export * from './quit.js';
10
+ export * from './work.js';
11
+ export * from './stop.js';
@@ -1,5 +1,12 @@
1
+ export * from './assign.js';
2
+ export * from './complete.js';
1
3
  export * from './delist.js';
2
4
  export * from './end.js';
3
5
  export * from './extend.js';
4
- export * from './post.js';
6
+ export * from './list.js';
7
+ export * from './complete.js';
8
+ export * from './finish.js';
9
+ export * from './quit.js';
10
+ export * from './work.js';
11
+ export * from './stop.js';
5
12
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/programs/jobs/instructions/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/programs/jobs/instructions/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { type Address, type TransactionSigner } from '@solana/kit';
2
+ import type { getListInstruction } from '../../../../generated_clients/jobs/index.js';
3
+ import type { InstructionsHelperParams } from './types.js';
4
+ export type ListParams = {
5
+ market: Address;
6
+ timeout: number | bigint;
7
+ ipfsHash: string;
8
+ payer?: TransactionSigner;
9
+ };
10
+ export type ListInstruction = ReturnType<typeof getListInstruction>;
11
+ export type List = (params: ListParams) => Promise<ListInstruction>;
12
+ export declare function list({ market, timeout, ipfsHash, payer }: ListParams, { config, deps, client, getRequiredWallet, getStaticAccounts, getNosATA, }: InstructionsHelperParams): Promise<ListInstruction>;
@@ -1,6 +1,6 @@
1
- import bs58 from 'bs58';
1
+ import { ipfsHashToSolBytesArray } from '@nosana/ipfs';
2
2
  import { generateKeyPairSigner } from '@solana/kit';
3
- export async function post({ market, timeout, ipfsHash, payer }, { config, deps, client, getRequiredWallet, getStaticAccounts, getNosATA, }) {
3
+ export async function list({ market, timeout, ipfsHash, payer }, { config, deps, client, getRequiredWallet, getStaticAccounts, getNosATA, }) {
4
4
  try {
5
5
  const wallet = getRequiredWallet();
6
6
  // Use provided payer or fall back to wallet
@@ -13,12 +13,14 @@ export async function post({ market, timeout, ipfsHash, payer }, { config, deps,
13
13
  getStaticAccounts(),
14
14
  ]);
15
15
  const vault = await deps.solana.pda([market, config.nosTokenAddress], jobsProgram);
16
+ // Convert IPFS hash to Solana bytes array
17
+ const ipfsJobBytes = ipfsHashToSolBytesArray(ipfsHash);
16
18
  // Create the list instruction
17
19
  return client.getListInstruction({
18
20
  job: jobKey,
19
21
  run: runKey,
20
22
  market,
21
- ipfsJob: bs58.decode(ipfsHash).subarray(2),
23
+ ipfsJob: new Uint8Array(ipfsJobBytes),
22
24
  timeout,
23
25
  user: associatedTokenAddress,
24
26
  vault: vault,
@@ -35,4 +37,4 @@ export async function post({ market, timeout, ipfsHash, payer }, { config, deps,
35
37
  throw new Error(errorMessage);
36
38
  }
37
39
  }
38
- //# sourceMappingURL=post.js.map
40
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../../src/services/programs/jobs/instructions/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAwC,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAgB1F,MAAM,CAAC,KAAK,UAAU,IAAI,CACxB,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAc,EAChD,EACE,MAAM,EACN,IAAI,EACJ,MAAM,EACN,iBAAiB,EACjB,iBAAiB,EACjB,SAAS,GACgB;IAE3B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;QACnC,4CAA4C;QAC5C,MAAM,QAAQ,GAAG,KAAK,IAAI,MAAM,CAAC;QAEjC,wCAAwC;QACxC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,sBAAsB,EAAE,EAAE,WAAW,EAAE,GAAG,cAAc,EAAE,CAAC,GAChF,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,qBAAqB,EAAE;YACvB,qBAAqB,EAAE;YACvB,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC3B,iBAAiB,EAAE;SACpB,CAAC,CAAC;QACL,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe,CAAC,EAAE,WAAW,CAAC,CAAC;QAEnF,0CAA0C;QAC1C,MAAM,YAAY,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC;QAEvD,8BAA8B;QAC9B,OAAO,MAAM,CAAC,kBAAkB,CAC9B;YACE,GAAG,EAAE,MAAM;YACX,GAAG,EAAE,MAAM;YACX,MAAM;YACN,OAAO,EAAE,IAAI,UAAU,CAAC,YAAY,CAAC;YACrC,OAAO;YACP,IAAI,EAAE,sBAAsB;YAC5B,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,QAAQ;YACf,SAAS,EAAE,MAAM;YACjB,GAAG,cAAc;SAClB,EACD;YACE,cAAc,EAAE,WAAW;SAC5B,CACF,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,YAAY,GAAG,sCAAsC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9G,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;IAChC,CAAC;AACH,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { Address } from '@solana/kit';
2
+ import type { getQuitInstruction } from '../../../../generated_clients/jobs/index.js';
3
+ import type { InstructionsHelperParams } from './types.js';
4
+ export type QuitParams = {
5
+ run: Address;
6
+ };
7
+ export type QuitInstruction = ReturnType<typeof getQuitInstruction>;
8
+ export type Quit = (params: QuitParams) => Promise<QuitInstruction>;
9
+ export declare function quit({ run }: QuitParams, { deps, client, getRequiredWallet, getStaticAccounts }: InstructionsHelperParams): Promise<QuitInstruction>;
@@ -0,0 +1,25 @@
1
+ export async function quit({ run }, { deps, client, getRequiredWallet, getStaticAccounts }) {
2
+ try {
3
+ const wallet = getRequiredWallet();
4
+ // Fetch run account and get static accounts in parallel
5
+ const [runAccount, { jobsProgram, ...staticAccounts }] = await Promise.all([
6
+ client.fetchRunAccount(deps.solana.rpc, run),
7
+ getStaticAccounts(),
8
+ ]);
9
+ return client.getQuitInstruction({
10
+ job: runAccount.data.job,
11
+ run,
12
+ payer: runAccount.data.payer,
13
+ authority: wallet,
14
+ ...staticAccounts,
15
+ }, {
16
+ programAddress: jobsProgram,
17
+ });
18
+ }
19
+ catch (err) {
20
+ const errorMessage = `Failed to create quit instruction: ${err instanceof Error ? err.message : String(err)}`;
21
+ deps.logger.error(errorMessage);
22
+ throw new Error(errorMessage);
23
+ }
24
+ }
25
+ //# sourceMappingURL=quit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quit.js","sourceRoot":"","sources":["../../../../../src/services/programs/jobs/instructions/quit.ts"],"names":[],"mappings":"AAaA,MAAM,CAAC,KAAK,UAAU,IAAI,CACxB,EAAE,GAAG,EAAc,EACnB,EAAE,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAA4B;IAEhF,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;QAEnC,wDAAwD;QACxD,MAAM,CAAC,UAAU,EAAE,EAAE,WAAW,EAAE,GAAG,cAAc,EAAE,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACzE,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC;YAC5C,iBAAiB,EAAE;SACpB,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC,kBAAkB,CAC9B;YACE,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG;YACxB,GAAG;YACH,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,KAAK;YAC5B,SAAS,EAAE,MAAM;YACjB,GAAG,cAAc;SAClB,EACD;YACE,cAAc,EAAE,WAAW;SAC5B,CACF,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,YAAY,GAAG,sCAAsC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9G,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;IAChC,CAAC;AACH,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { Address } from '@solana/kit';
2
+ import type { getStopInstruction } from '../../../../generated_clients/jobs/index.js';
3
+ import type { InstructionsHelperParams } from './types.js';
4
+ export type StopParams = {
5
+ market: Address;
6
+ node?: Address;
7
+ };
8
+ export type StopInstruction = ReturnType<typeof getStopInstruction>;
9
+ export type Stop = (params: StopParams) => Promise<StopInstruction>;
10
+ export declare function stop({ market, node }: StopParams, { deps, client, getRequiredWallet, getStaticAccounts }: InstructionsHelperParams): Promise<StopInstruction>;
@@ -0,0 +1,23 @@
1
+ export async function stop({ market, node }, { deps, client, getRequiredWallet, getStaticAccounts }) {
2
+ try {
3
+ const wallet = getRequiredWallet();
4
+ // Get static accounts
5
+ const { jobsProgram, ...staticAccounts } = await getStaticAccounts();
6
+ // Use provided node or default to wallet address
7
+ const nodeAddress = node ?? wallet.address;
8
+ return client.getStopInstruction({
9
+ market,
10
+ node: nodeAddress,
11
+ authority: wallet,
12
+ ...staticAccounts,
13
+ }, {
14
+ programAddress: jobsProgram,
15
+ });
16
+ }
17
+ catch (err) {
18
+ const errorMessage = `Failed to create stop instruction: ${err instanceof Error ? err.message : String(err)}`;
19
+ deps.logger.error(errorMessage);
20
+ throw new Error(errorMessage);
21
+ }
22
+ }
23
+ //# sourceMappingURL=stop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stop.js","sourceRoot":"","sources":["../../../../../src/services/programs/jobs/instructions/stop.ts"],"names":[],"mappings":"AAcA,MAAM,CAAC,KAAK,UAAU,IAAI,CACxB,EAAE,MAAM,EAAE,IAAI,EAAc,EAC5B,EAAE,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAA4B;IAEhF,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;QAEnC,sBAAsB;QACtB,MAAM,EAAE,WAAW,EAAE,GAAG,cAAc,EAAE,GAAG,MAAM,iBAAiB,EAAE,CAAC;QAErE,iDAAiD;QACjD,MAAM,WAAW,GAAG,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC;QAE3C,OAAO,MAAM,CAAC,kBAAkB,CAC9B;YACE,MAAM;YACN,IAAI,EAAE,WAAW;YACjB,SAAS,EAAE,MAAM;YACjB,GAAG,cAAc;SAClB,EACD;YACE,cAAc,EAAE,WAAW;SAC5B,CACF,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,YAAY,GAAG,sCAAsC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9G,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;IAChC,CAAC;AACH,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { type Address } from '@solana/kit';
2
+ import { getWorkInstruction } from '../../../../generated_clients/jobs/index.js';
3
+ import { InstructionsHelperParams } from './types.js';
4
+ export type WorkParams = {
5
+ market: Address;
6
+ nft?: Address;
7
+ };
8
+ export type WorkInstruction = ReturnType<typeof getWorkInstruction>;
9
+ export type Work = (params: WorkParams) => Promise<WorkInstruction>;
10
+ export declare function work({ market, nft }: WorkParams, { config, deps, client, getRequiredWallet, getStaticAccounts, getNosATA, }: InstructionsHelperParams): Promise<WorkInstruction>;
@@ -0,0 +1,61 @@
1
+ import { generateKeyPairSigner } from '@solana/kit';
2
+ import { findAssociatedTokenPda, TOKEN_PROGRAM_ADDRESS } from '@solana-program/token';
3
+ import { SYSTEM_PROGRAM_ADDRESS } from '@solana-program/system';
4
+ // Metaplex Token Metadata Program ID
5
+ const METADATA_PROGRAM_ID = 'metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s';
6
+ export async function work({ market, nft }, { config, deps, client, getRequiredWallet, getStaticAccounts, getNosATA, }) {
7
+ try {
8
+ const wallet = getRequiredWallet();
9
+ // Parallelize independent async operations
10
+ const [runKey, { jobsProgram, ...staticAccounts }, stake, nosAta] = await Promise.all([
11
+ generateKeyPairSigner(),
12
+ getStaticAccounts(),
13
+ // Derive stake PDA: ["stake", nosTokenAddress, wallet.address]
14
+ deps.solana.pda(['stake', config.nosTokenAddress, wallet.address], config.stakeAddress),
15
+ // Get NOS ATA (needed if no NFT provided)
16
+ getNosATA(wallet.address),
17
+ ]);
18
+ // Handle NFT: if no NFT provided, use NOS token ATA; otherwise use NFT ATA
19
+ let nftAta;
20
+ let metadata;
21
+ if (!nft) {
22
+ // No NFT: use NOS token ATA for wallet
23
+ nftAta = nosAta;
24
+ // Use system program as placeholder for metadata
25
+ metadata = SYSTEM_PROGRAM_ADDRESS;
26
+ }
27
+ else {
28
+ // NFT provided: parallelize NFT ATA and metadata PDA derivation
29
+ const [nftAtaPda, metadataPda] = await Promise.all([
30
+ findAssociatedTokenPda({
31
+ mint: nft,
32
+ owner: wallet.address,
33
+ tokenProgram: TOKEN_PROGRAM_ADDRESS,
34
+ }).then(([pda]) => pda),
35
+ // Derive Metaplex metadata PDA: ["metadata", METADATA_PROGRAM_ID, MINT_ADDRESS]
36
+ deps.solana.pda(['metadata', METADATA_PROGRAM_ID, nft], METADATA_PROGRAM_ID),
37
+ ]);
38
+ nftAta = nftAtaPda;
39
+ metadata = metadataPda;
40
+ }
41
+ // Create the work instruction
42
+ return client.getWorkInstruction({
43
+ run: runKey,
44
+ market,
45
+ payer: wallet,
46
+ stake,
47
+ nft: nftAta,
48
+ metadata,
49
+ authority: wallet,
50
+ ...staticAccounts,
51
+ }, {
52
+ programAddress: jobsProgram,
53
+ });
54
+ }
55
+ catch (err) {
56
+ const errorMessage = `Failed to create work instruction: ${err instanceof Error ? err.message : String(err)}`;
57
+ deps.logger.error(errorMessage);
58
+ throw new Error(errorMessage);
59
+ }
60
+ }
61
+ //# sourceMappingURL=work.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"work.js","sourceRoot":"","sources":["../../../../../src/services/programs/jobs/instructions/work.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAKhE,qCAAqC;AACrC,MAAM,mBAAmB,GACvB,6CAAuG,CAAC;AAW1G,MAAM,CAAC,KAAK,UAAU,IAAI,CACxB,EAAE,MAAM,EAAE,GAAG,EAAc,EAC3B,EACE,MAAM,EACN,IAAI,EACJ,MAAM,EACN,iBAAiB,EACjB,iBAAiB,EACjB,SAAS,GACgB;IAE3B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;QAEnC,2CAA2C;QAC3C,MAAM,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,GAAG,cAAc,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACpF,qBAAqB,EAAE;YACvB,iBAAiB,EAAE;YACnB,+DAA+D;YAC/D,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC;YACvF,0CAA0C;YAC1C,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC;SAC1B,CAAC,CAAC;QAEH,2EAA2E;QAC3E,IAAI,MAAe,CAAC;QACpB,IAAI,QAAiB,CAAC;QAEtB,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,uCAAuC;YACvC,MAAM,GAAG,MAAM,CAAC;YAChB,iDAAiD;YACjD,QAAQ,GAAG,sBAAsB,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,gEAAgE;YAChE,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBACjD,sBAAsB,CAAC;oBACrB,IAAI,EAAE,GAAG;oBACT,KAAK,EAAE,MAAM,CAAC,OAAO;oBACrB,YAAY,EAAE,qBAAqB;iBACpC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC;gBACvB,gFAAgF;gBAChF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,mBAAmB,EAAE,GAAG,CAAC,EAAE,mBAAmB,CAAC;aAC7E,CAAC,CAAC;YACH,MAAM,GAAG,SAAS,CAAC;YACnB,QAAQ,GAAG,WAAW,CAAC;QACzB,CAAC;QAED,8BAA8B;QAC9B,OAAO,MAAM,CAAC,kBAAkB,CAC9B;YACE,GAAG,EAAE,MAAM;YACX,MAAM;YACN,KAAK,EAAE,MAAM;YACb,KAAK;YACL,GAAG,EAAE,MAAM;YACX,QAAQ;YACR,SAAS,EAAE,MAAM;YACjB,GAAG,cAAc;SAClB,EACD;YACE,cAAc,EAAE,WAAW;SAC5B,CACF,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,YAAY,GAAG,sCAAsC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9G,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;IAChC,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nosana/kit",
3
- "version": "2.0.46",
3
+ "version": "2.0.50",
4
4
  "description": "Nosana KIT",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -43,7 +43,7 @@
43
43
  "prettier": "^3.7.4",
44
44
  "sass-embedded": "^1.97.2",
45
45
  "ts-node": "^10.9.2",
46
- "typedoc": "^0.28.14",
46
+ "typedoc": "0.28.16",
47
47
  "typedoc-plugin-frontmatter": "^1.3.1",
48
48
  "typedoc-plugin-markdown": "^4.9.0",
49
49
  "typedoc-plugin-mdn-links": "^5.0.10",
@@ -1,13 +0,0 @@
1
- import { type Address, type TransactionSigner } from '@solana/kit';
2
- import type { getListInstruction } from '../../../../generated_clients/jobs/index.js';
3
- import type { InstructionsHelperParams } from './types.js';
4
- export type PostParams = {
5
- market: Address;
6
- timeout: number | bigint;
7
- ipfsHash: string;
8
- node?: Address;
9
- payer?: TransactionSigner;
10
- };
11
- export type PostInstruction = ReturnType<typeof getListInstruction>;
12
- export type Post = (params: PostParams) => Promise<PostInstruction>;
13
- export declare function post({ market, timeout, ipfsHash, payer }: PostParams, { config, deps, client, getRequiredWallet, getStaticAccounts, getNosATA, }: InstructionsHelperParams): Promise<PostInstruction>;
@@ -1 +0,0 @@
1
- {"version":3,"file":"post.js","sourceRoot":"","sources":["../../../../../src/services/programs/jobs/instructions/post.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAwC,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAgB1F,MAAM,CAAC,KAAK,UAAU,IAAI,CACxB,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAc,EAChD,EACE,MAAM,EACN,IAAI,EACJ,MAAM,EACN,iBAAiB,EACjB,iBAAiB,EACjB,SAAS,GACgB;IAE3B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;QACnC,4CAA4C;QAC5C,MAAM,QAAQ,GAAG,KAAK,IAAI,MAAM,CAAC;QAEjC,wCAAwC;QACxC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,sBAAsB,EAAE,EAAE,WAAW,EAAE,GAAG,cAAc,EAAE,CAAC,GAChF,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,qBAAqB,EAAE;YACvB,qBAAqB,EAAE;YACvB,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC3B,iBAAiB,EAAE;SACpB,CAAC,CAAC;QACL,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe,CAAC,EAAE,WAAW,CAAC,CAAC;QAEnF,8BAA8B;QAC9B,OAAO,MAAM,CAAC,kBAAkB,CAC9B;YACE,GAAG,EAAE,MAAM;YACX,GAAG,EAAE,MAAM;YACX,MAAM;YACN,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC1C,OAAO;YACP,IAAI,EAAE,sBAAsB;YAC5B,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,QAAQ;YACf,SAAS,EAAE,MAAM;YACjB,GAAG,cAAc;SAClB,EACD;YACE,cAAc,EAAE,WAAW;SAC5B,CACF,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,YAAY,GAAG,sCAAsC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9G,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;IAChC,CAAC;AACH,CAAC"}