@gardenfi/swap 0.0.2-beta.1 → 0.0.2-beta.2

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 (179) hide show
  1. package/dist/index104.cjs +1 -1
  2. package/dist/index104.js +4 -4
  3. package/dist/index106.cjs +1 -1
  4. package/dist/index106.js +3 -3
  5. package/dist/index107.cjs +1 -1
  6. package/dist/index107.js +3 -3
  7. package/dist/index116.cjs +1 -1
  8. package/dist/index116.js +1 -1
  9. package/dist/index117.cjs +1 -1
  10. package/dist/index117.js +1 -1
  11. package/dist/index120.cjs +1 -1
  12. package/dist/index120.js +2 -2
  13. package/dist/index121.cjs +1 -1
  14. package/dist/index121.js +7 -7
  15. package/dist/index132.cjs +1 -1
  16. package/dist/index132.js +1 -1
  17. package/dist/index133.cjs +1 -1
  18. package/dist/index133.js +1 -1
  19. package/dist/index134.cjs +1 -1
  20. package/dist/index134.js +1 -1
  21. package/dist/index135.cjs +1 -1
  22. package/dist/index135.js +1 -1
  23. package/dist/index138.cjs +1 -1
  24. package/dist/index138.js +2 -2
  25. package/dist/index161.cjs +1 -1
  26. package/dist/index161.js +2 -2
  27. package/dist/index167.cjs +1 -1
  28. package/dist/index167.js +2 -2
  29. package/dist/index168.cjs +1 -1
  30. package/dist/index168.js +2 -2
  31. package/dist/index169.cjs +1 -1
  32. package/dist/index169.js +2 -2
  33. package/dist/index170.cjs +1 -1
  34. package/dist/index170.js +2 -2
  35. package/dist/index171.cjs +1 -1
  36. package/dist/index171.js +2 -2
  37. package/dist/index172.cjs +1 -1
  38. package/dist/index172.js +2 -2
  39. package/dist/index181.cjs +1 -1
  40. package/dist/index181.js +1 -1
  41. package/dist/index272.cjs +1 -1
  42. package/dist/index272.js +174 -9
  43. package/dist/index273.cjs +2 -1
  44. package/dist/index273.js +91 -30
  45. package/dist/index274.cjs +1 -1
  46. package/dist/index274.js +41 -2
  47. package/dist/index275.cjs +1 -1
  48. package/dist/index275.js +4 -47
  49. package/dist/index276.cjs +1 -1
  50. package/dist/index276.js +9 -11
  51. package/dist/index277.cjs +1 -1
  52. package/dist/index277.js +30 -174
  53. package/dist/index278.cjs +1 -2
  54. package/dist/index278.js +2 -92
  55. package/dist/index279.cjs +1 -1
  56. package/dist/index279.js +45 -38
  57. package/dist/index280.cjs +1 -1
  58. package/dist/index280.js +11 -4
  59. package/dist/index281.cjs +1 -1
  60. package/dist/index281.js +3 -3
  61. package/dist/index299.cjs +1 -1
  62. package/dist/index299.js +7 -37
  63. package/dist/index300.cjs +1 -1
  64. package/dist/index300.js +36 -14
  65. package/dist/index301.cjs +1 -1
  66. package/dist/index301.js +15 -8
  67. package/dist/index302.cjs +1 -1
  68. package/dist/index302.js +43 -8
  69. package/dist/index303.cjs +1 -1
  70. package/dist/index303.js +317 -39
  71. package/dist/index304.cjs +1 -1
  72. package/dist/index304.js +586 -301
  73. package/dist/index305.cjs +1 -1
  74. package/dist/index305.js +107 -603
  75. package/dist/index306.cjs +1 -1
  76. package/dist/index306.js +168 -110
  77. package/dist/index307.cjs +1 -1
  78. package/dist/index307.js +299 -165
  79. package/dist/index308.cjs +1 -1
  80. package/dist/index308.js +92 -300
  81. package/dist/index309.cjs +1 -1
  82. package/dist/index309.js +56 -93
  83. package/dist/index310.cjs +1 -1
  84. package/dist/index310.js +52 -55
  85. package/dist/index311.cjs +1 -1
  86. package/dist/index311.js +42 -51
  87. package/dist/index312.cjs +1 -1
  88. package/dist/index312.js +14 -43
  89. package/dist/index313.cjs +1 -1
  90. package/dist/index313.js +317 -15
  91. package/dist/index314.cjs +1 -1
  92. package/dist/index314.js +53 -311
  93. package/dist/index315.cjs +1 -1
  94. package/dist/index315.js +19 -59
  95. package/dist/index316.cjs +1 -1
  96. package/dist/index316.js +29 -19
  97. package/dist/index317.cjs +1 -1
  98. package/dist/index317.js +3 -29
  99. package/dist/index318.cjs +7 -1
  100. package/dist/index318.js +237 -3
  101. package/dist/index319.cjs +1 -7
  102. package/dist/index319.js +48 -238
  103. package/dist/index320.cjs +1 -1
  104. package/dist/index320.js +213 -48
  105. package/dist/index321.cjs +1 -1
  106. package/dist/index321.js +75 -206
  107. package/dist/index322.cjs +1 -1
  108. package/dist/index322.js +26 -78
  109. package/dist/index323.cjs +1 -1
  110. package/dist/index323.js +73 -26
  111. package/dist/index324.cjs +1 -1
  112. package/dist/index324.js +7 -75
  113. package/dist/index326.cjs +1 -1
  114. package/dist/index326.js +1 -1
  115. package/dist/index327.cjs +1 -1
  116. package/dist/index327.js +1 -1
  117. package/dist/index333.cjs +1 -1
  118. package/dist/index333.js +2 -2
  119. package/dist/index334.cjs +1 -1
  120. package/dist/index334.js +2 -2
  121. package/dist/index346.cjs +1 -1
  122. package/dist/index346.js +1 -1
  123. package/dist/index347.cjs +1 -1
  124. package/dist/index347.js +1 -1
  125. package/dist/index348.cjs +1 -1
  126. package/dist/index348.js +3 -3
  127. package/dist/index349.cjs +2 -1
  128. package/dist/index349.js +193 -4
  129. package/dist/index350.cjs +1 -2
  130. package/dist/index350.js +52 -168
  131. package/dist/index351.cjs +1 -1
  132. package/dist/index351.js +331 -65
  133. package/dist/index352.cjs +1 -1
  134. package/dist/index352.js +149 -332
  135. package/dist/index353.cjs +1 -1
  136. package/dist/index353.js +5 -161
  137. package/dist/index354.cjs +1 -1
  138. package/dist/index354.js +5 -5
  139. package/dist/index357.cjs +1 -1
  140. package/dist/index357.js +205 -8
  141. package/dist/index359.cjs +1 -1
  142. package/dist/index359.js +8 -205
  143. package/dist/index363.cjs +1 -1
  144. package/dist/index363.js +1 -1
  145. package/dist/index364.cjs +1 -1
  146. package/dist/index364.js +1 -1
  147. package/dist/index365.cjs +1 -1
  148. package/dist/index365.js +73 -3
  149. package/dist/index366.cjs +1 -1
  150. package/dist/index366.js +29 -138
  151. package/dist/index367.cjs +1 -1
  152. package/dist/index367.js +5 -73
  153. package/dist/index368.cjs +1 -1
  154. package/dist/index368.js +2 -30
  155. package/dist/index369.cjs +1 -1
  156. package/dist/index369.js +140 -5
  157. package/dist/index370.cjs +1 -1
  158. package/dist/index370.js +1 -1
  159. package/dist/index373.cjs +1 -1
  160. package/dist/index373.js +1 -1
  161. package/dist/index374.cjs +1 -1
  162. package/dist/index374.js +1 -1
  163. package/dist/index375.cjs +1 -1
  164. package/dist/index375.js +2 -2
  165. package/dist/index379.cjs +1 -1
  166. package/dist/index379.js +1 -1
  167. package/dist/index380.cjs +1 -1
  168. package/dist/index380.js +1 -1
  169. package/dist/index381.cjs +1 -1
  170. package/dist/index381.js +22 -2
  171. package/dist/index382.cjs +1 -1
  172. package/dist/index382.js +2 -22
  173. package/dist/index385.cjs +1 -1
  174. package/dist/index385.js +2 -2
  175. package/dist/index77.cjs +1 -1
  176. package/dist/index77.js +13 -13
  177. package/dist/index99.cjs +1 -1
  178. package/dist/index99.js +1 -1
  179. package/package.json +5 -5
package/dist/index320.js CHANGED
@@ -1,50 +1,215 @@
1
- import { bcs as t } from "./index364.js";
2
- import { TransactionKind as a, TransactionData as e, TypeTag as n, TransactionExpiration as r, TransactionDataV1 as i, SuiObjectRef as o, StructTag as s, SharedObjectRef as c, SenderSignedTransaction as u, SenderSignedData as g, PublicKey as l, ProgrammableTransaction as m, ProgrammableMoveCall as S, PasskeyAuthenticator as b, Owner as d, ObjectDigest as p, ObjectArg as T, MultiSigPublicKey as f, MultiSigPkMap as U, MultiSig as A, IntentVersion as M, IntentScope as P, IntentMessage as D, Intent as I, GasData as O, CompressedSignature as j, Command as y, CallArg as C, Argument as B, AppId as E, Address as K } from "./index370.js";
3
- import { TransactionEffects as h } from "./index371.js";
4
- const V = {
5
- ...t,
6
- U8: t.u8(),
7
- U16: t.u16(),
8
- U32: t.u32(),
9
- U64: t.u64(),
10
- U128: t.u128(),
11
- U256: t.u256(),
12
- ULEB128: t.uleb128(),
13
- Bool: t.bool(),
14
- String: t.string(),
15
- Address: K,
16
- AppId: E,
17
- Argument: B,
18
- CallArg: C,
19
- Command: y,
20
- CompressedSignature: j,
21
- GasData: O,
22
- Intent: I,
23
- IntentMessage: D,
24
- IntentScope: P,
25
- IntentVersion: M,
26
- MultiSig: A,
27
- MultiSigPkMap: U,
28
- MultiSigPublicKey: f,
29
- ObjectArg: T,
30
- ObjectDigest: p,
31
- Owner: d,
32
- PasskeyAuthenticator: b,
33
- ProgrammableMoveCall: S,
34
- ProgrammableTransaction: m,
35
- PublicKey: l,
36
- SenderSignedData: g,
37
- SenderSignedTransaction: u,
38
- SharedObjectRef: c,
39
- StructTag: s,
40
- SuiObjectRef: o,
41
- TransactionData: e,
42
- TransactionDataV1: i,
43
- TransactionEffects: h,
44
- TransactionExpiration: r,
45
- TransactionKind: a,
46
- TypeTag: n
47
- };
1
+ import { parse as C } from "./index304.js";
2
+ import { normalizeSuiObjectId as w, normalizeSuiAddress as I } from "./index117.js";
3
+ import { SUI_TYPE_ARG as j } from "./index372.js";
4
+ import { ObjectRefSchema as U } from "./index306.js";
5
+ import { Inputs as m } from "./index309.js";
6
+ import { normalizedTypeToMoveTypeSignature as M, isTxContext as S, getPureBcsSchema as T } from "./index373.js";
7
+ import { chunk as R } from "./index317.js";
8
+ const $ = 50, _ = 1000n, k = 5e10;
9
+ function Y(n) {
10
+ return async function(o, a, t) {
11
+ return await V(o, n), await B(o, n), a.onlyTransactionKind || (await E(o, n), await P(o, n), await A(o, n)), await t();
12
+ };
13
+ }
14
+ async function E(n, l) {
15
+ n.gasConfig.price || (n.gasConfig.price = String(await l.getReferenceGasPrice()));
16
+ }
17
+ async function P(n, l) {
18
+ if (n.gasConfig.budget)
19
+ return;
20
+ const o = await l.dryRunTransactionBlock({
21
+ transactionBlock: n.build({
22
+ overrides: {
23
+ gasData: {
24
+ budget: String(k),
25
+ payment: []
26
+ }
27
+ }
28
+ })
29
+ });
30
+ if (o.effects.status.status !== "success")
31
+ throw new Error(
32
+ `Dry run failed, could not automatically determine a budget: ${o.effects.status.error}`,
33
+ { cause: o }
34
+ );
35
+ const a = _ * BigInt(n.gasConfig.price || 1n), t = BigInt(o.effects.gasUsed.computationCost) + a, c = t + BigInt(o.effects.gasUsed.storageCost) - BigInt(o.effects.gasUsed.storageRebate);
36
+ n.gasConfig.budget = String(
37
+ c > t ? c : t
38
+ );
39
+ }
40
+ async function A(n, l) {
41
+ if (!n.gasConfig.payment) {
42
+ const a = (await l.getCoins({
43
+ owner: n.gasConfig.owner || n.sender,
44
+ coinType: j
45
+ })).data.filter((t) => !n.inputs.find((g) => {
46
+ var i;
47
+ return (i = g.Object) != null && i.ImmOrOwnedObject ? t.coinObjectId === g.Object.ImmOrOwnedObject.objectId : !1;
48
+ })).map((t) => ({
49
+ objectId: t.coinObjectId,
50
+ digest: t.digest,
51
+ version: t.version
52
+ }));
53
+ if (!a.length)
54
+ throw new Error("No valid gas coins found for the transaction.");
55
+ n.gasConfig.payment = a.map(
56
+ (t) => C(U, t)
57
+ );
58
+ }
59
+ }
60
+ async function B(n, l) {
61
+ const o = n.inputs.filter((e) => {
62
+ var s;
63
+ return e.UnresolvedObject && !(e.UnresolvedObject.version || (s = e.UnresolvedObject) != null && s.initialSharedVersion);
64
+ }), a = [
65
+ ...new Set(
66
+ o.map((e) => w(e.UnresolvedObject.objectId))
67
+ )
68
+ ], t = a.length ? R(a, $) : [], c = (await Promise.all(
69
+ t.map(
70
+ (e) => l.multiGetObjects({
71
+ ids: e,
72
+ options: { showOwner: !0 }
73
+ })
74
+ )
75
+ )).flat(), g = new Map(
76
+ a.map((e, s) => [e, c[s]])
77
+ ), i = Array.from(g).filter(([e, s]) => s.error).map(([e, s]) => JSON.stringify(s.error));
78
+ if (i.length)
79
+ throw new Error(`The following input objects are invalid: ${i.join(", ")}`);
80
+ const d = c.map((e) => {
81
+ if (e.error || !e.data)
82
+ throw new Error(`Failed to fetch object: ${e.error}`);
83
+ const s = e.data.owner, f = s && typeof s == "object" ? "Shared" in s ? s.Shared.initial_shared_version : "ConsensusAddressOwner" in s ? s.ConsensusAddressOwner.start_version : null : null;
84
+ return {
85
+ objectId: e.data.objectId,
86
+ digest: e.data.digest,
87
+ version: e.data.version,
88
+ initialSharedVersion: f
89
+ };
90
+ }), p = new Map(
91
+ a.map((e, s) => [e, d[s]])
92
+ );
93
+ for (const [e, s] of n.inputs.entries()) {
94
+ if (!s.UnresolvedObject)
95
+ continue;
96
+ let f;
97
+ const u = I(s.UnresolvedObject.objectId), r = p.get(u);
98
+ s.UnresolvedObject.initialSharedVersion ?? (r == null ? void 0 : r.initialSharedVersion) ? f = m.SharedObjectRef({
99
+ objectId: u,
100
+ initialSharedVersion: s.UnresolvedObject.initialSharedVersion || (r == null ? void 0 : r.initialSharedVersion),
101
+ mutable: s.UnresolvedObject.mutable || G(n, e)
102
+ }) : z(n, e) && (f = m.ReceivingRef(
103
+ {
104
+ objectId: u,
105
+ digest: s.UnresolvedObject.digest ?? (r == null ? void 0 : r.digest),
106
+ version: s.UnresolvedObject.version ?? (r == null ? void 0 : r.version)
107
+ }
108
+ )), n.inputs[n.inputs.indexOf(s)] = f ?? m.ObjectRef({
109
+ objectId: u,
110
+ digest: s.UnresolvedObject.digest ?? (r == null ? void 0 : r.digest),
111
+ version: s.UnresolvedObject.version ?? (r == null ? void 0 : r.version)
112
+ });
113
+ }
114
+ }
115
+ async function V(n, l) {
116
+ const { inputs: o, commands: a } = n, t = [], c = /* @__PURE__ */ new Set();
117
+ a.forEach((i) => {
118
+ if (i.MoveCall) {
119
+ if (i.MoveCall._argumentTypes)
120
+ return;
121
+ if (i.MoveCall.arguments.map((e) => e.$kind === "Input" ? n.inputs[e.Input] : null).some(
122
+ (e) => (e == null ? void 0 : e.UnresolvedPure) || (e == null ? void 0 : e.UnresolvedObject) && typeof (e == null ? void 0 : e.UnresolvedObject.mutable) != "boolean"
123
+ )) {
124
+ const e = `${i.MoveCall.package}::${i.MoveCall.module}::${i.MoveCall.function}`;
125
+ c.add(e), t.push(i.MoveCall);
126
+ }
127
+ }
128
+ });
129
+ const g = /* @__PURE__ */ new Map();
130
+ c.size > 0 && await Promise.all(
131
+ [...c].map(async (i) => {
132
+ const [d, p, e] = i.split("::"), s = await l.getNormalizedMoveFunction({
133
+ package: d,
134
+ module: p,
135
+ function: e
136
+ });
137
+ g.set(
138
+ i,
139
+ s.parameters.map((f) => M(f))
140
+ );
141
+ })
142
+ ), t.length && await Promise.all(
143
+ t.map(async (i) => {
144
+ const d = g.get(
145
+ `${i.package}::${i.module}::${i.function}`
146
+ );
147
+ if (!d)
148
+ return;
149
+ const e = d.length > 0 && S(d.at(-1)) ? d.slice(0, d.length - 1) : d;
150
+ i._argumentTypes = e;
151
+ })
152
+ ), a.forEach((i) => {
153
+ if (!i.MoveCall)
154
+ return;
155
+ const d = i.MoveCall, p = `${d.package}::${d.module}::${d.function}`, e = d._argumentTypes;
156
+ if (e) {
157
+ if (e.length !== i.MoveCall.arguments.length)
158
+ throw new Error(`Incorrect number of arguments for ${p}`);
159
+ e.forEach((s, f) => {
160
+ var O, y;
161
+ const u = d.arguments[f];
162
+ if (u.$kind !== "Input") return;
163
+ const r = o[u.Input];
164
+ if (!r.UnresolvedPure && !r.UnresolvedObject)
165
+ return;
166
+ const v = ((O = r.UnresolvedPure) == null ? void 0 : O.value) ?? ((y = r.UnresolvedObject) == null ? void 0 : y.objectId), b = T(s.body);
167
+ if (b) {
168
+ u.type = "pure", o[o.indexOf(r)] = m.Pure(b.serialize(v));
169
+ return;
170
+ }
171
+ if (typeof v != "string")
172
+ throw new Error(
173
+ `Expect the argument to be an object id string, got ${JSON.stringify(
174
+ v,
175
+ null,
176
+ 2
177
+ )}`
178
+ );
179
+ u.type = "object";
180
+ const h = r.UnresolvedPure ? {
181
+ $kind: "UnresolvedObject",
182
+ UnresolvedObject: {
183
+ objectId: v
184
+ }
185
+ } : r;
186
+ o[u.Input] = h;
187
+ });
188
+ }
189
+ });
190
+ }
191
+ function G(n, l) {
192
+ let o = !1;
193
+ return n.getInputUses(l, (a, t) => {
194
+ if (t.MoveCall && t.MoveCall._argumentTypes) {
195
+ const c = t.MoveCall.arguments.indexOf(a);
196
+ o = t.MoveCall._argumentTypes[c].ref !== "&" || o;
197
+ }
198
+ (t.$kind === "MakeMoveVec" || t.$kind === "MergeCoins" || t.$kind === "SplitCoins" || t.$kind === "TransferObjects") && (o = !0);
199
+ }), o;
200
+ }
201
+ function z(n, l) {
202
+ let o = !1;
203
+ return n.getInputUses(l, (a, t) => {
204
+ if (t.MoveCall && t.MoveCall._argumentTypes) {
205
+ const c = t.MoveCall.arguments.indexOf(a);
206
+ o = x(t.MoveCall._argumentTypes[c]) || o;
207
+ }
208
+ }), o;
209
+ }
210
+ function x(n) {
211
+ return typeof n.body != "object" || !("datatype" in n.body) ? !1 : n.body.datatype.package === "0x2" && n.body.datatype.module === "transfer" && n.body.datatype.type === "Receiving";
212
+ }
48
213
  export {
49
- V as bcs
214
+ Y as jsonRpcClientResolveTransactionPlugin
50
215
  };
package/dist/index321.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const j=require("./index305.cjs"),I=require("./index117.cjs"),w=require("./index372.cjs"),M=require("./index307.cjs"),b=require("./index310.cjs"),m=require("./index373.cjs"),U=require("./index318.cjs"),S=50,T=1000n,R=5e10;function $(n){return async function(r,a,s){return await A(r,n),await E(r,n),a.onlyTransactionKind||(await _(r,n),await k(r,n),await P(r,n)),await s()}}async function _(n,c){n.gasConfig.price||(n.gasConfig.price=String(await c.getReferenceGasPrice()))}async function k(n,c){if(n.gasConfig.budget)return;const r=await c.dryRunTransactionBlock({transactionBlock:n.build({overrides:{gasData:{budget:String(R),payment:[]}}})});if(r.effects.status.status!=="success")throw new Error(`Dry run failed, could not automatically determine a budget: ${r.effects.status.error}`,{cause:r});const a=T*BigInt(n.gasConfig.price||1n),s=BigInt(r.effects.gasUsed.computationCost)+a,d=s+BigInt(r.effects.gasUsed.storageCost)-BigInt(r.effects.gasUsed.storageRebate);n.gasConfig.budget=String(d>s?d:s)}async function P(n,c){if(!n.gasConfig.payment){const a=(await c.getCoins({owner:n.gasConfig.owner||n.sender,coinType:w.SUI_TYPE_ARG})).data.filter(s=>!n.inputs.find(g=>{var i;return(i=g.Object)!=null&&i.ImmOrOwnedObject?s.coinObjectId===g.Object.ImmOrOwnedObject.objectId:!1})).map(s=>({objectId:s.coinObjectId,digest:s.digest,version:s.version}));if(!a.length)throw new Error("No valid gas coins found for the transaction.");n.gasConfig.payment=a.map(s=>j.parse(M.ObjectRefSchema,s))}}async function E(n,c){const r=n.inputs.filter(e=>{var t;return e.UnresolvedObject&&!(e.UnresolvedObject.version||(t=e.UnresolvedObject)!=null&&t.initialSharedVersion)}),a=[...new Set(r.map(e=>I.normalizeSuiObjectId(e.UnresolvedObject.objectId)))],s=a.length?U.chunk(a,S):[],d=(await Promise.all(s.map(e=>c.multiGetObjects({ids:e,options:{showOwner:!0}})))).flat(),g=new Map(a.map((e,t)=>[e,d[t]])),i=Array.from(g).filter(([e,t])=>t.error).map(([e,t])=>JSON.stringify(t.error));if(i.length)throw new Error(`The following input objects are invalid: ${i.join(", ")}`);const l=d.map(e=>{if(e.error||!e.data)throw new Error(`Failed to fetch object: ${e.error}`);const t=e.data.owner,f=t&&typeof t=="object"?"Shared"in t?t.Shared.initial_shared_version:"ConsensusAddressOwner"in t?t.ConsensusAddressOwner.start_version:null:null;return{objectId:e.data.objectId,digest:e.data.digest,version:e.data.version,initialSharedVersion:f}}),v=new Map(a.map((e,t)=>[e,l[t]]));for(const[e,t]of n.inputs.entries()){if(!t.UnresolvedObject)continue;let f;const u=I.normalizeSuiAddress(t.UnresolvedObject.objectId),o=v.get(u);t.UnresolvedObject.initialSharedVersion??(o==null?void 0:o.initialSharedVersion)?f=b.Inputs.SharedObjectRef({objectId:u,initialSharedVersion:t.UnresolvedObject.initialSharedVersion||(o==null?void 0:o.initialSharedVersion),mutable:t.UnresolvedObject.mutable||B(n,e)}):V(n,e)&&(f=b.Inputs.ReceivingRef({objectId:u,digest:t.UnresolvedObject.digest??(o==null?void 0:o.digest),version:t.UnresolvedObject.version??(o==null?void 0:o.version)})),n.inputs[n.inputs.indexOf(t)]=f??b.Inputs.ObjectRef({objectId:u,digest:t.UnresolvedObject.digest??(o==null?void 0:o.digest),version:t.UnresolvedObject.version??(o==null?void 0:o.version)})}}async function A(n,c){const{inputs:r,commands:a}=n,s=[],d=new Set;a.forEach(i=>{if(i.MoveCall){if(i.MoveCall._argumentTypes)return;if(i.MoveCall.arguments.map(e=>e.$kind==="Input"?n.inputs[e.Input]:null).some(e=>(e==null?void 0:e.UnresolvedPure)||(e==null?void 0:e.UnresolvedObject)&&typeof(e==null?void 0:e.UnresolvedObject.mutable)!="boolean")){const e=`${i.MoveCall.package}::${i.MoveCall.module}::${i.MoveCall.function}`;d.add(e),s.push(i.MoveCall)}}});const g=new Map;d.size>0&&await Promise.all([...d].map(async i=>{const[l,v,e]=i.split("::"),t=await c.getNormalizedMoveFunction({package:l,module:v,function:e});g.set(i,t.parameters.map(f=>m.normalizedTypeToMoveTypeSignature(f)))})),s.length&&await Promise.all(s.map(async i=>{const l=g.get(`${i.package}::${i.module}::${i.function}`);if(!l)return;const e=l.length>0&&m.isTxContext(l.at(-1))?l.slice(0,l.length-1):l;i._argumentTypes=e})),a.forEach(i=>{if(!i.MoveCall)return;const l=i.MoveCall,v=`${l.package}::${l.module}::${l.function}`,e=l._argumentTypes;if(e){if(e.length!==i.MoveCall.arguments.length)throw new Error(`Incorrect number of arguments for ${v}`);e.forEach((t,f)=>{var y,h;const u=l.arguments[f];if(u.$kind!=="Input")return;const o=r[u.Input];if(!o.UnresolvedPure&&!o.UnresolvedObject)return;const p=((y=o.UnresolvedPure)==null?void 0:y.value)??((h=o.UnresolvedObject)==null?void 0:h.objectId),O=m.getPureBcsSchema(t.body);if(O){u.type="pure",r[r.indexOf(o)]=b.Inputs.Pure(O.serialize(p));return}if(typeof p!="string")throw new Error(`Expect the argument to be an object id string, got ${JSON.stringify(p,null,2)}`);u.type="object";const C=o.UnresolvedPure?{$kind:"UnresolvedObject",UnresolvedObject:{objectId:p}}:o;r[u.Input]=C})}})}function B(n,c){let r=!1;return n.getInputUses(c,(a,s)=>{if(s.MoveCall&&s.MoveCall._argumentTypes){const d=s.MoveCall.arguments.indexOf(a);r=s.MoveCall._argumentTypes[d].ref!=="&"||r}(s.$kind==="MakeMoveVec"||s.$kind==="MergeCoins"||s.$kind==="SplitCoins"||s.$kind==="TransferObjects")&&(r=!0)}),r}function V(n,c){let r=!1;return n.getInputUses(c,(a,s)=>{if(s.MoveCall&&s.MoveCall._argumentTypes){const d=s.MoveCall.arguments.indexOf(a);r=z(s.MoveCall._argumentTypes[d])||r}}),r}function z(n){return typeof n.body!="object"||!("datatype"in n.body)?!1:n.body.datatype.package==="0x2"&&n.body.datatype.module==="transfer"&&n.body.datatype.type==="Receiving"}exports.jsonRpcClientResolveTransactionPlugin=$;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./index365.cjs"),m=require("./index374.cjs"),n=require("./index117.cjs"),l=require("./index116.cjs"),y=require("./index120.cjs"),d={mainnet:"https://mainnet.mvr.mystenlabs.com",testnet:"https://testnet.mvr.mystenlabs.com"};class p extends l.Experimental_BaseClient{constructor(e){var a,r,t;super(e),this.core=this,this.mvr=new y.MvrClient({cache:this.cache.scope("core.mvr"),url:((a=e.mvr)==null?void 0:a.url)??d[this.network],pageSize:(r=e.mvr)==null?void 0:r.pageSize,overrides:(t=e.mvr)==null?void 0:t.overrides})}async getObject(e){const{objectId:a}=e,{objects:[r]}=await this.getObjects({objectIds:[a],signal:e.signal});if(r instanceof Error)throw r;return{object:r}}async getDynamicField(e){const a=o.TypeTagSerializer.parseFromStr((await this.core.mvr.resolveType({type:e.name.type})).type),r=m.deriveDynamicFieldID(e.parentId,a,e.name.bcs),{objects:[t]}=await this.getObjects({objectIds:[r],signal:e.signal});if(t instanceof Error)throw t;const s=n.parseStructTag(t.type),i=await t.content;return{dynamicField:{id:t.id,digest:t.digest,version:t.version,type:t.type,previousTransaction:t.previousTransaction,name:{type:typeof s.typeParams[0]=="string"?s.typeParams[0]:n.normalizeStructTag(s.typeParams[0]),bcs:e.name.bcs},value:{type:typeof s.typeParams[1]=="string"?s.typeParams[1]:n.normalizeStructTag(s.typeParams[1]),bcs:i.slice(n.SUI_ADDRESS_LENGTH+e.name.bcs.length)}}}}async waitForTransaction({signal:e,timeout:a=60*1e3,...r}){const t=e?AbortSignal.any([AbortSignal.timeout(a),e]):AbortSignal.timeout(a),s=new Promise((i,c)=>{t.addEventListener("abort",()=>c(t.reason))});for(s.catch(()=>{});;){t.throwIfAborted();try{return await this.getTransaction({...r,signal:t})}catch{await Promise.race([new Promise(i=>setTimeout(i,2e3)),s])}}}}exports.Experimental_CoreClient=p;
package/dist/index321.js CHANGED
@@ -1,215 +1,84 @@
1
- import { parse as C } from "./index305.js";
2
- import { normalizeSuiObjectId as w, normalizeSuiAddress as I } from "./index117.js";
3
- import { SUI_TYPE_ARG as j } from "./index372.js";
4
- import { ObjectRefSchema as U } from "./index307.js";
5
- import { Inputs as m } from "./index310.js";
6
- import { normalizedTypeToMoveTypeSignature as M, isTxContext as S, getPureBcsSchema as T } from "./index373.js";
7
- import { chunk as R } from "./index318.js";
8
- const $ = 50, _ = 1000n, k = 5e10;
9
- function Y(n) {
10
- return async function(o, a, t) {
11
- return await V(o, n), await B(o, n), a.onlyTransactionKind || (await E(o, n), await P(o, n), await A(o, n)), await t();
12
- };
13
- }
14
- async function E(n, l) {
15
- n.gasConfig.price || (n.gasConfig.price = String(await l.getReferenceGasPrice()));
16
- }
17
- async function P(n, l) {
18
- if (n.gasConfig.budget)
19
- return;
20
- const o = await l.dryRunTransactionBlock({
21
- transactionBlock: n.build({
22
- overrides: {
23
- gasData: {
24
- budget: String(k),
25
- payment: []
26
- }
27
- }
28
- })
29
- });
30
- if (o.effects.status.status !== "success")
31
- throw new Error(
32
- `Dry run failed, could not automatically determine a budget: ${o.effects.status.error}`,
33
- { cause: o }
34
- );
35
- const a = _ * BigInt(n.gasConfig.price || 1n), t = BigInt(o.effects.gasUsed.computationCost) + a, c = t + BigInt(o.effects.gasUsed.storageCost) - BigInt(o.effects.gasUsed.storageRebate);
36
- n.gasConfig.budget = String(
37
- c > t ? c : t
38
- );
39
- }
40
- async function A(n, l) {
41
- if (!n.gasConfig.payment) {
42
- const a = (await l.getCoins({
43
- owner: n.gasConfig.owner || n.sender,
44
- coinType: j
45
- })).data.filter((t) => !n.inputs.find((g) => {
46
- var i;
47
- return (i = g.Object) != null && i.ImmOrOwnedObject ? t.coinObjectId === g.Object.ImmOrOwnedObject.objectId : !1;
48
- })).map((t) => ({
49
- objectId: t.coinObjectId,
50
- digest: t.digest,
51
- version: t.version
52
- }));
53
- if (!a.length)
54
- throw new Error("No valid gas coins found for the transaction.");
55
- n.gasConfig.payment = a.map(
56
- (t) => C(U, t)
57
- );
1
+ import { TypeTagSerializer as o } from "./index365.js";
2
+ import { deriveDynamicFieldID as m } from "./index374.js";
3
+ import { parseStructTag as l, normalizeStructTag as n, SUI_ADDRESS_LENGTH as p } from "./index117.js";
4
+ import { Experimental_BaseClient as y } from "./index116.js";
5
+ import { MvrClient as b } from "./index120.js";
6
+ const d = {
7
+ mainnet: "https://mainnet.mvr.mystenlabs.com",
8
+ testnet: "https://testnet.mvr.mystenlabs.com"
9
+ };
10
+ class S extends y {
11
+ constructor(e) {
12
+ var a, r, t;
13
+ super(e), this.core = this, this.mvr = new b({
14
+ cache: this.cache.scope("core.mvr"),
15
+ url: ((a = e.mvr) == null ? void 0 : a.url) ?? d[this.network],
16
+ pageSize: (r = e.mvr) == null ? void 0 : r.pageSize,
17
+ overrides: (t = e.mvr) == null ? void 0 : t.overrides
18
+ });
58
19
  }
59
- }
60
- async function B(n, l) {
61
- const o = n.inputs.filter((e) => {
62
- var s;
63
- return e.UnresolvedObject && !(e.UnresolvedObject.version || (s = e.UnresolvedObject) != null && s.initialSharedVersion);
64
- }), a = [
65
- ...new Set(
66
- o.map((e) => w(e.UnresolvedObject.objectId))
67
- )
68
- ], t = a.length ? R(a, $) : [], c = (await Promise.all(
69
- t.map(
70
- (e) => l.multiGetObjects({
71
- ids: e,
72
- options: { showOwner: !0 }
73
- })
74
- )
75
- )).flat(), g = new Map(
76
- a.map((e, s) => [e, c[s]])
77
- ), i = Array.from(g).filter(([e, s]) => s.error).map(([e, s]) => JSON.stringify(s.error));
78
- if (i.length)
79
- throw new Error(`The following input objects are invalid: ${i.join(", ")}`);
80
- const d = c.map((e) => {
81
- if (e.error || !e.data)
82
- throw new Error(`Failed to fetch object: ${e.error}`);
83
- const s = e.data.owner, f = s && typeof s == "object" ? "Shared" in s ? s.Shared.initial_shared_version : "ConsensusAddressOwner" in s ? s.ConsensusAddressOwner.start_version : null : null;
20
+ async getObject(e) {
21
+ const { objectId: a } = e, {
22
+ objects: [r]
23
+ } = await this.getObjects({ objectIds: [a], signal: e.signal });
24
+ if (r instanceof Error)
25
+ throw r;
26
+ return { object: r };
27
+ }
28
+ async getDynamicField(e) {
29
+ const a = o.parseFromStr(
30
+ (await this.core.mvr.resolveType({
31
+ type: e.name.type
32
+ })).type
33
+ ), r = m(e.parentId, a, e.name.bcs), {
34
+ objects: [t]
35
+ } = await this.getObjects({
36
+ objectIds: [r],
37
+ signal: e.signal
38
+ });
39
+ if (t instanceof Error)
40
+ throw t;
41
+ const s = l(t.type), i = await t.content;
84
42
  return {
85
- objectId: e.data.objectId,
86
- digest: e.data.digest,
87
- version: e.data.version,
88
- initialSharedVersion: f
89
- };
90
- }), p = new Map(
91
- a.map((e, s) => [e, d[s]])
92
- );
93
- for (const [e, s] of n.inputs.entries()) {
94
- if (!s.UnresolvedObject)
95
- continue;
96
- let f;
97
- const u = I(s.UnresolvedObject.objectId), r = p.get(u);
98
- s.UnresolvedObject.initialSharedVersion ?? (r == null ? void 0 : r.initialSharedVersion) ? f = m.SharedObjectRef({
99
- objectId: u,
100
- initialSharedVersion: s.UnresolvedObject.initialSharedVersion || (r == null ? void 0 : r.initialSharedVersion),
101
- mutable: s.UnresolvedObject.mutable || G(n, e)
102
- }) : z(n, e) && (f = m.ReceivingRef(
103
- {
104
- objectId: u,
105
- digest: s.UnresolvedObject.digest ?? (r == null ? void 0 : r.digest),
106
- version: s.UnresolvedObject.version ?? (r == null ? void 0 : r.version)
43
+ dynamicField: {
44
+ id: t.id,
45
+ digest: t.digest,
46
+ version: t.version,
47
+ type: t.type,
48
+ previousTransaction: t.previousTransaction,
49
+ name: {
50
+ type: typeof s.typeParams[0] == "string" ? s.typeParams[0] : n(s.typeParams[0]),
51
+ bcs: e.name.bcs
52
+ },
53
+ value: {
54
+ type: typeof s.typeParams[1] == "string" ? s.typeParams[1] : n(s.typeParams[1]),
55
+ bcs: i.slice(p + e.name.bcs.length)
56
+ }
107
57
  }
108
- )), n.inputs[n.inputs.indexOf(s)] = f ?? m.ObjectRef({
109
- objectId: u,
110
- digest: s.UnresolvedObject.digest ?? (r == null ? void 0 : r.digest),
111
- version: s.UnresolvedObject.version ?? (r == null ? void 0 : r.version)
112
- });
58
+ };
113
59
  }
114
- }
115
- async function V(n, l) {
116
- const { inputs: o, commands: a } = n, t = [], c = /* @__PURE__ */ new Set();
117
- a.forEach((i) => {
118
- if (i.MoveCall) {
119
- if (i.MoveCall._argumentTypes)
120
- return;
121
- if (i.MoveCall.arguments.map((e) => e.$kind === "Input" ? n.inputs[e.Input] : null).some(
122
- (e) => (e == null ? void 0 : e.UnresolvedPure) || (e == null ? void 0 : e.UnresolvedObject) && typeof (e == null ? void 0 : e.UnresolvedObject.mutable) != "boolean"
123
- )) {
124
- const e = `${i.MoveCall.package}::${i.MoveCall.module}::${i.MoveCall.function}`;
125
- c.add(e), t.push(i.MoveCall);
60
+ async waitForTransaction({
61
+ signal: e,
62
+ timeout: a = 60 * 1e3,
63
+ ...r
64
+ }) {
65
+ const t = e ? AbortSignal.any([AbortSignal.timeout(a), e]) : AbortSignal.timeout(a), s = new Promise((i, c) => {
66
+ t.addEventListener("abort", () => c(t.reason));
67
+ });
68
+ for (s.catch(() => {
69
+ }); ; ) {
70
+ t.throwIfAborted();
71
+ try {
72
+ return await this.getTransaction({
73
+ ...r,
74
+ signal: t
75
+ });
76
+ } catch {
77
+ await Promise.race([new Promise((i) => setTimeout(i, 2e3)), s]);
126
78
  }
127
79
  }
128
- });
129
- const g = /* @__PURE__ */ new Map();
130
- c.size > 0 && await Promise.all(
131
- [...c].map(async (i) => {
132
- const [d, p, e] = i.split("::"), s = await l.getNormalizedMoveFunction({
133
- package: d,
134
- module: p,
135
- function: e
136
- });
137
- g.set(
138
- i,
139
- s.parameters.map((f) => M(f))
140
- );
141
- })
142
- ), t.length && await Promise.all(
143
- t.map(async (i) => {
144
- const d = g.get(
145
- `${i.package}::${i.module}::${i.function}`
146
- );
147
- if (!d)
148
- return;
149
- const e = d.length > 0 && S(d.at(-1)) ? d.slice(0, d.length - 1) : d;
150
- i._argumentTypes = e;
151
- })
152
- ), a.forEach((i) => {
153
- if (!i.MoveCall)
154
- return;
155
- const d = i.MoveCall, p = `${d.package}::${d.module}::${d.function}`, e = d._argumentTypes;
156
- if (e) {
157
- if (e.length !== i.MoveCall.arguments.length)
158
- throw new Error(`Incorrect number of arguments for ${p}`);
159
- e.forEach((s, f) => {
160
- var O, y;
161
- const u = d.arguments[f];
162
- if (u.$kind !== "Input") return;
163
- const r = o[u.Input];
164
- if (!r.UnresolvedPure && !r.UnresolvedObject)
165
- return;
166
- const v = ((O = r.UnresolvedPure) == null ? void 0 : O.value) ?? ((y = r.UnresolvedObject) == null ? void 0 : y.objectId), b = T(s.body);
167
- if (b) {
168
- u.type = "pure", o[o.indexOf(r)] = m.Pure(b.serialize(v));
169
- return;
170
- }
171
- if (typeof v != "string")
172
- throw new Error(
173
- `Expect the argument to be an object id string, got ${JSON.stringify(
174
- v,
175
- null,
176
- 2
177
- )}`
178
- );
179
- u.type = "object";
180
- const h = r.UnresolvedPure ? {
181
- $kind: "UnresolvedObject",
182
- UnresolvedObject: {
183
- objectId: v
184
- }
185
- } : r;
186
- o[u.Input] = h;
187
- });
188
- }
189
- });
190
- }
191
- function G(n, l) {
192
- let o = !1;
193
- return n.getInputUses(l, (a, t) => {
194
- if (t.MoveCall && t.MoveCall._argumentTypes) {
195
- const c = t.MoveCall.arguments.indexOf(a);
196
- o = t.MoveCall._argumentTypes[c].ref !== "&" || o;
197
- }
198
- (t.$kind === "MakeMoveVec" || t.$kind === "MergeCoins" || t.$kind === "SplitCoins" || t.$kind === "TransferObjects") && (o = !0);
199
- }), o;
200
- }
201
- function z(n, l) {
202
- let o = !1;
203
- return n.getInputUses(l, (a, t) => {
204
- if (t.MoveCall && t.MoveCall._argumentTypes) {
205
- const c = t.MoveCall.arguments.indexOf(a);
206
- o = x(t.MoveCall._argumentTypes[c]) || o;
207
- }
208
- }), o;
209
- }
210
- function x(n) {
211
- return typeof n.body != "object" || !("datatype" in n.body) ? !1 : n.body.datatype.package === "0x2" && n.body.datatype.module === "transfer" && n.body.datatype.type === "Receiving";
80
+ }
212
81
  }
213
82
  export {
214
- Y as jsonRpcClientResolveTransactionPlugin
83
+ S as Experimental_CoreClient
215
84
  };
package/dist/index322.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./index367.cjs"),m=require("./index374.cjs"),n=require("./index117.cjs"),l=require("./index116.cjs"),y=require("./index120.cjs"),d={mainnet:"https://mainnet.mvr.mystenlabs.com",testnet:"https://testnet.mvr.mystenlabs.com"};class p extends l.Experimental_BaseClient{constructor(e){var a,r,t;super(e),this.core=this,this.mvr=new y.MvrClient({cache:this.cache.scope("core.mvr"),url:((a=e.mvr)==null?void 0:a.url)??d[this.network],pageSize:(r=e.mvr)==null?void 0:r.pageSize,overrides:(t=e.mvr)==null?void 0:t.overrides})}async getObject(e){const{objectId:a}=e,{objects:[r]}=await this.getObjects({objectIds:[a],signal:e.signal});if(r instanceof Error)throw r;return{object:r}}async getDynamicField(e){const a=o.TypeTagSerializer.parseFromStr((await this.core.mvr.resolveType({type:e.name.type})).type),r=m.deriveDynamicFieldID(e.parentId,a,e.name.bcs),{objects:[t]}=await this.getObjects({objectIds:[r],signal:e.signal});if(t instanceof Error)throw t;const s=n.parseStructTag(t.type),i=await t.content;return{dynamicField:{id:t.id,digest:t.digest,version:t.version,type:t.type,previousTransaction:t.previousTransaction,name:{type:typeof s.typeParams[0]=="string"?s.typeParams[0]:n.normalizeStructTag(s.typeParams[0]),bcs:e.name.bcs},value:{type:typeof s.typeParams[1]=="string"?s.typeParams[1]:n.normalizeStructTag(s.typeParams[1]),bcs:i.slice(n.SUI_ADDRESS_LENGTH+e.name.bcs.length)}}}}async waitForTransaction({signal:e,timeout:a=60*1e3,...r}){const t=e?AbortSignal.any([AbortSignal.timeout(a),e]):AbortSignal.timeout(a),s=new Promise((i,c)=>{t.addEventListener("abort",()=>c(t.reason))});for(s.catch(()=>{});;){t.throwIfAborted();try{return await this.getTransaction({...r,signal:t})}catch{await Promise.race([new Promise(i=>setTimeout(i,2e3)),s])}}}}exports.Experimental_CoreClient=p;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});class c extends Error{}class t extends c{constructor(e,d){super(d),this.code=e}static fromResponse(e,d){switch(e.code){case"notExists":return new t(e.code,`Object ${e.object_id} does not exist`);case"dynamicFieldNotFound":return new t(e.code,`Dynamic field not found for object ${e.parent_object_id}`);case"deleted":return new t(e.code,`Object ${e.object_id} has been deleted`);case"displayError":return new t(e.code,`Display error: ${e.error}`);case"unknown":default:return new t(e.code,`Unknown error while loading object${d?` ${d}`:""}`)}}}exports.ObjectError=t;exports.SuiClientError=c;