@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/index311.js CHANGED
@@ -1,56 +1,47 @@
1
- import { Inputs as c } from "./index310.js";
2
- import { bcs as o } from "./index320.js";
3
- import { jsonRpcClientResolveTransactionPlugin as f } from "./index321.js";
4
- function l(n, e) {
5
- return !!(n.inputs.some((r) => r.UnresolvedObject || r.UnresolvedPure) || !e.onlyTransactionKind && (!n.gasConfig.price || !n.gasConfig.budget || !n.gasConfig.payment));
6
- }
7
- async function w(n, e, r) {
8
- var s;
9
- if (a(n), !l(n, e))
10
- return await t(n), r();
11
- const i = d(e);
12
- return (((s = i.core) == null ? void 0 : s.resolveTransactionPlugin()) ?? f(i))(n, e, async () => {
13
- await t(n), await r();
14
- });
15
- }
16
- function t(n) {
17
- n.inputs.forEach((e, r) => {
18
- if (e.$kind !== "Object" && e.$kind !== "Pure")
19
- throw new Error(
20
- `Input at index ${r} has not been resolved. Expected a Pure or Object input, but found ${JSON.stringify(
21
- e
22
- )}`
23
- );
24
- });
25
- }
26
- function d(n) {
27
- if (!n.client)
28
- throw new Error(
29
- "No sui client passed to Transaction#build, but transaction data was not sufficient to build offline."
1
+ import { Inputs as d } from "./index309.js";
2
+ function l(b) {
3
+ function e(t) {
4
+ return b(t);
5
+ }
6
+ return e.system = (t) => {
7
+ const r = t == null ? void 0 : t.mutable;
8
+ return e(
9
+ r !== void 0 ? d.SharedObjectRef({
10
+ objectId: "0x5",
11
+ initialSharedVersion: 1,
12
+ mutable: r
13
+ }) : {
14
+ $kind: "UnresolvedObject",
15
+ UnresolvedObject: {
16
+ objectId: "0x5",
17
+ initialSharedVersion: 1
18
+ }
19
+ }
30
20
  );
31
- return n.client;
32
- }
33
- function a(n) {
34
- for (const e of n.commands)
35
- switch (e.$kind) {
36
- case "SplitCoins":
37
- e.SplitCoins.amounts.forEach((r) => {
38
- u(r, o.U64, n);
39
- });
40
- break;
41
- case "TransferObjects":
42
- u(e.TransferObjects.address, o.Address, n);
43
- break;
21
+ }, e.clock = () => e(
22
+ d.SharedObjectRef({
23
+ objectId: "0x6",
24
+ initialSharedVersion: 1,
25
+ mutable: !1
26
+ })
27
+ ), e.random = () => e({
28
+ $kind: "UnresolvedObject",
29
+ UnresolvedObject: {
30
+ objectId: "0x8",
31
+ mutable: !1
44
32
  }
45
- }
46
- function u(n, e, r) {
47
- if (n.$kind !== "Input")
48
- return;
49
- const i = r.inputs[n.Input];
50
- i.$kind === "UnresolvedPure" && (r.inputs[n.Input] = c.Pure(e.serialize(i.UnresolvedPure.value)));
33
+ }), e.denyList = (t) => e({
34
+ $kind: "UnresolvedObject",
35
+ UnresolvedObject: {
36
+ objectId: "0x403",
37
+ mutable: t == null ? void 0 : t.mutable
38
+ }
39
+ }), e.option = ({ type: t, value: r }) => (n) => n.moveCall({
40
+ typeArguments: [t],
41
+ target: `0x1::option::${r === null ? "none" : "some"}`,
42
+ arguments: r === null ? [] : [n.object(r)]
43
+ }), e;
51
44
  }
52
45
  export {
53
- d as getClient,
54
- l as needsTransactionResolution,
55
- w as resolveTransactionPlugin
46
+ l as createObjectMethods
56
47
  };
package/dist/index312.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("./index310.cjs");function b(d){function e(t){return d(t)}return e.system=t=>{const r=t==null?void 0:t.mutable;return e(r!==void 0?c.Inputs.SharedObjectRef({objectId:"0x5",initialSharedVersion:1,mutable:r}):{$kind:"UnresolvedObject",UnresolvedObject:{objectId:"0x5",initialSharedVersion:1}})},e.clock=()=>e(c.Inputs.SharedObjectRef({objectId:"0x6",initialSharedVersion:1,mutable:!1})),e.random=()=>e({$kind:"UnresolvedObject",UnresolvedObject:{objectId:"0x8",mutable:!1}}),e.denyList=t=>e({$kind:"UnresolvedObject",UnresolvedObject:{objectId:"0x403",mutable:t==null?void 0:t.mutable}}),e.option=({type:t,value:r})=>n=>n.moveCall({typeArguments:[t],target:`0x1::option::${r===null?"none":"some"}`,arguments:r===null?[]:[n.object(r)]}),e}exports.createObjectMethods=b;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./index303.cjs"),i=require("./index319.cjs"),t=require("./index366.cjs");function n(r){function e(s,c){if(typeof s=="string")return r(t.pureBcsSchemaFromTypeName(s).serialize(c));if(s instanceof Uint8Array||o.isSerializedBcs(s))return r(s);throw new Error("tx.pure must be called either a bcs type name, or a serialized bcs value")}return e.u8=s=>r(i.bcs.U8.serialize(s)),e.u16=s=>r(i.bcs.U16.serialize(s)),e.u32=s=>r(i.bcs.U32.serialize(s)),e.u64=s=>r(i.bcs.U64.serialize(s)),e.u128=s=>r(i.bcs.U128.serialize(s)),e.u256=s=>r(i.bcs.U256.serialize(s)),e.bool=s=>r(i.bcs.Bool.serialize(s)),e.string=s=>r(i.bcs.String.serialize(s)),e.address=s=>r(i.bcs.Address.serialize(s)),e.id=e.address,e.vector=(s,c)=>r(i.bcs.vector(t.pureBcsSchemaFromTypeName(s)).serialize(c)),e.option=(s,c)=>r(i.bcs.option(t.pureBcsSchemaFromTypeName(s)).serialize(c)),e}exports.createPure=n;
package/dist/index312.js CHANGED
@@ -1,47 +1,18 @@
1
- import { Inputs as d } from "./index310.js";
2
- function l(b) {
3
- function e(t) {
4
- return b(t);
1
+ import { isSerializedBcs as e } from "./index303.js";
2
+ import { bcs as o } from "./index319.js";
3
+ import { pureBcsSchemaFromTypeName as n } from "./index366.js";
4
+ function f(s) {
5
+ function r(i, t) {
6
+ if (typeof i == "string")
7
+ return s(n(i).serialize(t));
8
+ if (i instanceof Uint8Array || e(i))
9
+ return s(i);
10
+ throw new Error("tx.pure must be called either a bcs type name, or a serialized bcs value");
5
11
  }
6
- return e.system = (t) => {
7
- const r = t == null ? void 0 : t.mutable;
8
- return e(
9
- r !== void 0 ? d.SharedObjectRef({
10
- objectId: "0x5",
11
- initialSharedVersion: 1,
12
- mutable: r
13
- }) : {
14
- $kind: "UnresolvedObject",
15
- UnresolvedObject: {
16
- objectId: "0x5",
17
- initialSharedVersion: 1
18
- }
19
- }
20
- );
21
- }, e.clock = () => e(
22
- d.SharedObjectRef({
23
- objectId: "0x6",
24
- initialSharedVersion: 1,
25
- mutable: !1
26
- })
27
- ), e.random = () => e({
28
- $kind: "UnresolvedObject",
29
- UnresolvedObject: {
30
- objectId: "0x8",
31
- mutable: !1
32
- }
33
- }), e.denyList = (t) => e({
34
- $kind: "UnresolvedObject",
35
- UnresolvedObject: {
36
- objectId: "0x403",
37
- mutable: t == null ? void 0 : t.mutable
38
- }
39
- }), e.option = ({ type: t, value: r }) => (n) => n.moveCall({
40
- typeArguments: [t],
41
- target: `0x1::option::${r === null ? "none" : "some"}`,
42
- arguments: r === null ? [] : [n.object(r)]
43
- }), e;
12
+ return r.u8 = (i) => s(o.U8.serialize(i)), r.u16 = (i) => s(o.U16.serialize(i)), r.u32 = (i) => s(o.U32.serialize(i)), r.u64 = (i) => s(o.U64.serialize(i)), r.u128 = (i) => s(o.U128.serialize(i)), r.u256 = (i) => s(o.U256.serialize(i)), r.bool = (i) => s(o.Bool.serialize(i)), r.string = (i) => s(o.String.serialize(i)), r.address = (i) => s(o.Address.serialize(i)), r.id = r.address, r.vector = (i, t) => s(
13
+ o.vector(n(i)).serialize(t)
14
+ ), r.option = (i, t) => s(o.option(n(i)).serialize(t)), r;
44
15
  }
45
16
  export {
46
- l as createObjectMethods
17
+ f as createPure
47
18
  };
package/dist/index313.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./index304.cjs"),i=require("./index320.cjs"),t=require("./index368.cjs");function n(r){function e(s,c){if(typeof s=="string")return r(t.pureBcsSchemaFromTypeName(s).serialize(c));if(s instanceof Uint8Array||o.isSerializedBcs(s))return r(s);throw new Error("tx.pure must be called either a bcs type name, or a serialized bcs value")}return e.u8=s=>r(i.bcs.U8.serialize(s)),e.u16=s=>r(i.bcs.U16.serialize(s)),e.u32=s=>r(i.bcs.U32.serialize(s)),e.u64=s=>r(i.bcs.U64.serialize(s)),e.u128=s=>r(i.bcs.U128.serialize(s)),e.u256=s=>r(i.bcs.U256.serialize(s)),e.bool=s=>r(i.bcs.Bool.serialize(s)),e.string=s=>r(i.bcs.String.serialize(s)),e.address=s=>r(i.bcs.Address.serialize(s)),e.id=e.address,e.vector=(s,c)=>r(i.bcs.vector(t.pureBcsSchemaFromTypeName(s)).serialize(c)),e.option=(s,c)=>r(i.bcs.option(t.pureBcsSchemaFromTypeName(s)).serialize(c)),e}exports.createPure=n;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const j=require("./index113.cjs"),h=require("./index304.cjs"),b=require("./index319.cjs"),d=require("./index117.cjs"),g=require("./index306.cjs"),y=require("./index307.cjs"),R=require("./index367.cjs"),w=require("./index314.cjs");function k(O){return d.normalizeSuiAddress(O).replace("0x","")}class c{constructor(t){this.version=2,this.sender=(t==null?void 0:t.sender)??null,this.expiration=(t==null?void 0:t.expiration)??null,this.inputs=(t==null?void 0:t.inputs)??[],this.commands=(t==null?void 0:t.commands)??[],this.gasData=(t==null?void 0:t.gasData)??{budget:null,price:null,owner:null,payment:null}}static fromKindBytes(t){const e=b.bcs.TransactionKind.parse(t).ProgrammableTransaction;if(!e)throw new Error("Unable to deserialize from bytes.");return c.restore({version:2,sender:null,expiration:null,gasData:{budget:null,owner:null,payment:null,price:null},inputs:e.inputs,commands:e.commands})}static fromBytes(t){const s=b.bcs.TransactionData.parse(t),e=s==null?void 0:s.V1,i=e.kind.ProgrammableTransaction;if(!e||!i)throw new Error("Unable to deserialize from bytes.");return c.restore({version:2,sender:e.sender,expiration:e.expiration,gasData:e.gasData,inputs:i.inputs,commands:i.commands})}static restore(t){return t.version===2?new c(h.parse(g.TransactionDataSchema,t)):new c(h.parse(g.TransactionDataSchema,y.transactionDataFromV1(t)))}static getDigestFromBytes(t){const s=R.hashTypedData("TransactionData",t);return j.toBase58(s)}get gasConfig(){return this.gasData}set gasConfig(t){this.gasData=t}build({maxSizeBytes:t=1/0,overrides:s,onlyTransactionKind:e}={}){const i=this.inputs,n=this.commands,r={ProgrammableTransaction:{inputs:i,commands:n}};if(e)return b.bcs.TransactionKind.serialize(r,{maxSize:t}).toBytes();const u=(s==null?void 0:s.expiration)??this.expiration,m=(s==null?void 0:s.sender)??this.sender,a={...this.gasData,...s==null?void 0:s.gasConfig,...s==null?void 0:s.gasData};if(!m)throw new Error("Missing transaction sender");if(!a.budget)throw new Error("Missing gas budget");if(!a.payment)throw new Error("Missing gas payment");if(!a.price)throw new Error("Missing gas price");const o={sender:k(m),expiration:u||{None:!0},gasData:{payment:a.payment,owner:k(this.gasData.owner??m),price:BigInt(a.price),budget:BigInt(a.budget)},kind:{ProgrammableTransaction:{inputs:i,commands:n}}};return b.bcs.TransactionData.serialize({V1:o},{maxSize:t}).toBytes()}addInput(t,s){const e=this.inputs.length;return this.inputs.push(s),{Input:e,type:t,$kind:"Input"}}getInputUses(t,s){this.mapArguments((e,i)=>(e.$kind==="Input"&&e.Input===t&&s(e,i),e))}mapCommandArguments(t,s){const e=this.commands[t];switch(e.$kind){case"MoveCall":e.MoveCall.arguments=e.MoveCall.arguments.map(n=>s(n,e,t));break;case"TransferObjects":e.TransferObjects.objects=e.TransferObjects.objects.map(n=>s(n,e,t)),e.TransferObjects.address=s(e.TransferObjects.address,e,t);break;case"SplitCoins":e.SplitCoins.coin=s(e.SplitCoins.coin,e,t),e.SplitCoins.amounts=e.SplitCoins.amounts.map(n=>s(n,e,t));break;case"MergeCoins":e.MergeCoins.destination=s(e.MergeCoins.destination,e,t),e.MergeCoins.sources=e.MergeCoins.sources.map(n=>s(n,e,t));break;case"MakeMoveVec":e.MakeMoveVec.elements=e.MakeMoveVec.elements.map(n=>s(n,e,t));break;case"Upgrade":e.Upgrade.ticket=s(e.Upgrade.ticket,e,t);break;case"$Intent":const i=e.$Intent.inputs;e.$Intent.inputs={};for(const[n,r]of Object.entries(i))e.$Intent.inputs[n]=Array.isArray(r)?r.map(u=>s(u,e,t)):s(r,e,t);break;case"Publish":break;default:throw new Error(`Unexpected transaction kind: ${e.$kind}`)}}mapArguments(t){for(const s of this.commands.keys())this.mapCommandArguments(s,t)}replaceCommand(t,s,e=t){if(!Array.isArray(s)){this.commands[t]=s;return}const i=s.length-1;this.commands.splice(t,1,...structuredClone(s)),this.mapArguments((n,r,u)=>{if(u<t+s.length)return n;if(typeof e!="number"&&(n.$kind==="Result"&&n.Result===t||n.$kind==="NestedResult"&&n.NestedResult[0]===t)){if(!("NestedResult"in n)||n.NestedResult[1]===0)return h.parse(g.ArgumentSchema,structuredClone(e));throw new Error(`Cannot replace command ${t} with a specific result type: NestedResult[${t}, ${n.NestedResult[1]}] references a nested element that cannot be mapped to the replacement result`)}switch(n.$kind){case"Result":n.Result===t&&typeof e=="number"&&(n.Result=e),n.Result>t&&(n.Result+=i);break;case"NestedResult":if(n.NestedResult[0]===t&&typeof e=="number")return{$kind:"NestedResult",NestedResult:[e,n.NestedResult[1]]};n.NestedResult[0]>t&&(n.NestedResult[0]+=i);break}return n})}replaceCommandWithTransaction(t,s,e){if(e.$kind!=="Result"&&e.$kind!=="NestedResult")throw new Error("Result must be of kind Result or NestedResult");this.insertTransaction(t,s),this.replaceCommand(t+s.commands.length,[],"Result"in e?{NestedResult:[e.Result+t,0]}:{NestedResult:[e.NestedResult[0]+t,e.NestedResult[1]]})}insertTransaction(t,s){var u,m;const e=new Map,i=new Map;for(let a=0;a<s.inputs.length;a++){const o=s.inputs[a],p=w.getIdFromCallArg(o);let l=-1;if(p!==void 0&&(l=this.inputs.findIndex(f=>w.getIdFromCallArg(f)===p),l!==-1&&((u=this.inputs[l].Object)!=null&&u.SharedObject)&&((m=o.Object)!=null&&m.SharedObject)&&(this.inputs[l].Object.SharedObject.mutable=this.inputs[l].Object.SharedObject.mutable||o.Object.SharedObject.mutable)),l!==-1)e.set(a,l);else{const f=this.inputs.length;this.inputs.push(o),e.set(a,f)}}for(let a=0;a<s.commands.length;a++)i.set(a,t+a);const n=[];for(let a=0;a<s.commands.length;a++){const o=structuredClone(s.commands[a]);w.remapCommandArguments(o,e,i),n.push(o)}this.commands.splice(t,0,...n);const r=n.length;r>0&&this.mapArguments((a,o,p)=>{if(p>=t&&p<t+n.length)return a;switch(a.$kind){case"Result":a.Result>=t&&(a.Result+=r);break;case"NestedResult":a.NestedResult[0]>=t&&(a.NestedResult[0]+=r);break}return a})}getDigest(){const t=this.build({onlyTransactionKind:!1});return c.getDigestFromBytes(t)}snapshot(){return h.parse(g.TransactionDataSchema,this)}shallowClone(){return new c({version:this.version,sender:this.sender,expiration:this.expiration,gasData:{...this.gasData},inputs:[...this.inputs],commands:[...this.commands]})}applyResolvedData(t){this.sender||(this.sender=t.sender??null),this.expiration||(this.expiration=t.expiration??null),this.gasData.budget||(this.gasData.budget=t.gasData.budget),this.gasData.owner||(this.gasData.owner=t.gasData.owner??null),this.gasData.payment||(this.gasData.payment=t.gasData.payment),this.gasData.price||(this.gasData.price=t.gasData.price);for(let s=0;s<this.inputs.length;s++){const e=this.inputs[s],i=t.inputs[s];switch(e.$kind){case"UnresolvedPure":if(i.$kind!=="Pure")throw new Error(`Expected input at index ${s} to resolve to a Pure argument, but got ${JSON.stringify(i)}`);this.inputs[s]=i;break;case"UnresolvedObject":if(i.$kind!=="Object")throw new Error(`Expected input at index ${s} to resolve to an Object argument, but got ${JSON.stringify(i)}`);if(i.Object.$kind==="ImmOrOwnedObject"||i.Object.$kind==="Receiving"){const n=e.UnresolvedObject,r=i.Object.ImmOrOwnedObject??i.Object.Receiving;if(d.normalizeSuiAddress(n.objectId)!==d.normalizeSuiAddress(r.objectId)||n.version!=null&&n.version!==r.version||n.digest!=null&&n.digest!==r.digest||n.mutable!=null||n.initialSharedVersion!=null)throw new Error(`Input at index ${s} did not match unresolved object. ${JSON.stringify(n)} is not compatible with ${JSON.stringify(r)}`)}else if(i.Object.$kind==="SharedObject"){const n=e.UnresolvedObject,r=i.Object.SharedObject;if(d.normalizeSuiAddress(n.objectId)!==d.normalizeSuiAddress(r.objectId)||n.initialSharedVersion!=null&&n.initialSharedVersion!==r.initialSharedVersion||n.mutable!=null&&n.mutable!==r.mutable||n.version!=null||n.digest!=null)throw new Error(`Input at index ${s} did not match unresolved object. ${JSON.stringify(n)} is not compatible with ${JSON.stringify(r)}`)}else throw new Error(`Input at index ${s} resolved to an unexpected Object kind: ${JSON.stringify(i.Object)}`);this.inputs[s]=i;break}}}}exports.TransactionDataBuilder=c;
package/dist/index313.js CHANGED
@@ -1,18 +1,320 @@
1
- import { isSerializedBcs as e } from "./index304.js";
2
- import { bcs as o } from "./index320.js";
3
- import { pureBcsSchemaFromTypeName as n } from "./index368.js";
4
- function f(s) {
5
- function r(i, t) {
6
- if (typeof i == "string")
7
- return s(n(i).serialize(t));
8
- if (i instanceof Uint8Array || e(i))
9
- return s(i);
10
- throw new Error("tx.pure must be called either a bcs type name, or a serialized bcs value");
11
- }
12
- return r.u8 = (i) => s(o.U8.serialize(i)), r.u16 = (i) => s(o.U16.serialize(i)), r.u32 = (i) => s(o.U32.serialize(i)), r.u64 = (i) => s(o.U64.serialize(i)), r.u128 = (i) => s(o.U128.serialize(i)), r.u256 = (i) => s(o.U256.serialize(i)), r.bool = (i) => s(o.Bool.serialize(i)), r.string = (i) => s(o.String.serialize(i)), r.address = (i) => s(o.Address.serialize(i)), r.id = r.address, r.vector = (i, t) => s(
13
- o.vector(n(i)).serialize(t)
14
- ), r.option = (i, t) => s(o.option(n(i)).serialize(t)), r;
1
+ import { toBase58 as j } from "./index113.js";
2
+ import { parse as h } from "./index304.js";
3
+ import { bcs as b } from "./index319.js";
4
+ import { normalizeSuiAddress as d } from "./index117.js";
5
+ import { TransactionDataSchema as f, ArgumentSchema as R } from "./index306.js";
6
+ import { transactionDataFromV1 as y } from "./index307.js";
7
+ import { hashTypedData as $ } from "./index367.js";
8
+ import { getIdFromCallArg as w, remapCommandArguments as D } from "./index314.js";
9
+ function k(O) {
10
+ return d(O).replace("0x", "");
11
+ }
12
+ class m {
13
+ constructor(t) {
14
+ this.version = 2, this.sender = (t == null ? void 0 : t.sender) ?? null, this.expiration = (t == null ? void 0 : t.expiration) ?? null, this.inputs = (t == null ? void 0 : t.inputs) ?? [], this.commands = (t == null ? void 0 : t.commands) ?? [], this.gasData = (t == null ? void 0 : t.gasData) ?? {
15
+ budget: null,
16
+ price: null,
17
+ owner: null,
18
+ payment: null
19
+ };
20
+ }
21
+ static fromKindBytes(t) {
22
+ const e = b.TransactionKind.parse(t).ProgrammableTransaction;
23
+ if (!e)
24
+ throw new Error("Unable to deserialize from bytes.");
25
+ return m.restore({
26
+ version: 2,
27
+ sender: null,
28
+ expiration: null,
29
+ gasData: {
30
+ budget: null,
31
+ owner: null,
32
+ payment: null,
33
+ price: null
34
+ },
35
+ inputs: e.inputs,
36
+ commands: e.commands
37
+ });
38
+ }
39
+ static fromBytes(t) {
40
+ const s = b.TransactionData.parse(t), e = s == null ? void 0 : s.V1, i = e.kind.ProgrammableTransaction;
41
+ if (!e || !i)
42
+ throw new Error("Unable to deserialize from bytes.");
43
+ return m.restore({
44
+ version: 2,
45
+ sender: e.sender,
46
+ expiration: e.expiration,
47
+ gasData: e.gasData,
48
+ inputs: i.inputs,
49
+ commands: i.commands
50
+ });
51
+ }
52
+ static restore(t) {
53
+ return t.version === 2 ? new m(h(f, t)) : new m(h(f, y(t)));
54
+ }
55
+ /**
56
+ * Generate transaction digest.
57
+ *
58
+ * @param bytes BCS serialized transaction data
59
+ * @returns transaction digest.
60
+ */
61
+ static getDigestFromBytes(t) {
62
+ const s = $("TransactionData", t);
63
+ return j(s);
64
+ }
65
+ // @deprecated use gasData instead
66
+ get gasConfig() {
67
+ return this.gasData;
68
+ }
69
+ // @deprecated use gasData instead
70
+ set gasConfig(t) {
71
+ this.gasData = t;
72
+ }
73
+ build({
74
+ maxSizeBytes: t = 1 / 0,
75
+ overrides: s,
76
+ onlyTransactionKind: e
77
+ } = {}) {
78
+ const i = this.inputs, n = this.commands, r = {
79
+ ProgrammableTransaction: {
80
+ inputs: i,
81
+ commands: n
82
+ }
83
+ };
84
+ if (e)
85
+ return b.TransactionKind.serialize(r, { maxSize: t }).toBytes();
86
+ const u = (s == null ? void 0 : s.expiration) ?? this.expiration, p = (s == null ? void 0 : s.sender) ?? this.sender, a = { ...this.gasData, ...s == null ? void 0 : s.gasConfig, ...s == null ? void 0 : s.gasData };
87
+ if (!p)
88
+ throw new Error("Missing transaction sender");
89
+ if (!a.budget)
90
+ throw new Error("Missing gas budget");
91
+ if (!a.payment)
92
+ throw new Error("Missing gas payment");
93
+ if (!a.price)
94
+ throw new Error("Missing gas price");
95
+ const o = {
96
+ sender: k(p),
97
+ expiration: u || { None: !0 },
98
+ gasData: {
99
+ payment: a.payment,
100
+ owner: k(this.gasData.owner ?? p),
101
+ price: BigInt(a.price),
102
+ budget: BigInt(a.budget)
103
+ },
104
+ kind: {
105
+ ProgrammableTransaction: {
106
+ inputs: i,
107
+ commands: n
108
+ }
109
+ }
110
+ };
111
+ return b.TransactionData.serialize(
112
+ { V1: o },
113
+ { maxSize: t }
114
+ ).toBytes();
115
+ }
116
+ addInput(t, s) {
117
+ const e = this.inputs.length;
118
+ return this.inputs.push(s), { Input: e, type: t, $kind: "Input" };
119
+ }
120
+ getInputUses(t, s) {
121
+ this.mapArguments((e, i) => (e.$kind === "Input" && e.Input === t && s(e, i), e));
122
+ }
123
+ mapCommandArguments(t, s) {
124
+ const e = this.commands[t];
125
+ switch (e.$kind) {
126
+ case "MoveCall":
127
+ e.MoveCall.arguments = e.MoveCall.arguments.map(
128
+ (n) => s(n, e, t)
129
+ );
130
+ break;
131
+ case "TransferObjects":
132
+ e.TransferObjects.objects = e.TransferObjects.objects.map(
133
+ (n) => s(n, e, t)
134
+ ), e.TransferObjects.address = s(e.TransferObjects.address, e, t);
135
+ break;
136
+ case "SplitCoins":
137
+ e.SplitCoins.coin = s(e.SplitCoins.coin, e, t), e.SplitCoins.amounts = e.SplitCoins.amounts.map(
138
+ (n) => s(n, e, t)
139
+ );
140
+ break;
141
+ case "MergeCoins":
142
+ e.MergeCoins.destination = s(e.MergeCoins.destination, e, t), e.MergeCoins.sources = e.MergeCoins.sources.map(
143
+ (n) => s(n, e, t)
144
+ );
145
+ break;
146
+ case "MakeMoveVec":
147
+ e.MakeMoveVec.elements = e.MakeMoveVec.elements.map(
148
+ (n) => s(n, e, t)
149
+ );
150
+ break;
151
+ case "Upgrade":
152
+ e.Upgrade.ticket = s(e.Upgrade.ticket, e, t);
153
+ break;
154
+ case "$Intent":
155
+ const i = e.$Intent.inputs;
156
+ e.$Intent.inputs = {};
157
+ for (const [n, r] of Object.entries(i))
158
+ e.$Intent.inputs[n] = Array.isArray(r) ? r.map((u) => s(u, e, t)) : s(r, e, t);
159
+ break;
160
+ case "Publish":
161
+ break;
162
+ default:
163
+ throw new Error(`Unexpected transaction kind: ${e.$kind}`);
164
+ }
165
+ }
166
+ mapArguments(t) {
167
+ for (const s of this.commands.keys())
168
+ this.mapCommandArguments(s, t);
169
+ }
170
+ replaceCommand(t, s, e = t) {
171
+ if (!Array.isArray(s)) {
172
+ this.commands[t] = s;
173
+ return;
174
+ }
175
+ const i = s.length - 1;
176
+ this.commands.splice(t, 1, ...structuredClone(s)), this.mapArguments((n, r, u) => {
177
+ if (u < t + s.length)
178
+ return n;
179
+ if (typeof e != "number" && (n.$kind === "Result" && n.Result === t || n.$kind === "NestedResult" && n.NestedResult[0] === t)) {
180
+ if (!("NestedResult" in n) || n.NestedResult[1] === 0)
181
+ return h(R, structuredClone(e));
182
+ throw new Error(
183
+ `Cannot replace command ${t} with a specific result type: NestedResult[${t}, ${n.NestedResult[1]}] references a nested element that cannot be mapped to the replacement result`
184
+ );
185
+ }
186
+ switch (n.$kind) {
187
+ case "Result":
188
+ n.Result === t && typeof e == "number" && (n.Result = e), n.Result > t && (n.Result += i);
189
+ break;
190
+ case "NestedResult":
191
+ if (n.NestedResult[0] === t && typeof e == "number")
192
+ return {
193
+ $kind: "NestedResult",
194
+ NestedResult: [e, n.NestedResult[1]]
195
+ };
196
+ n.NestedResult[0] > t && (n.NestedResult[0] += i);
197
+ break;
198
+ }
199
+ return n;
200
+ });
201
+ }
202
+ replaceCommandWithTransaction(t, s, e) {
203
+ if (e.$kind !== "Result" && e.$kind !== "NestedResult")
204
+ throw new Error("Result must be of kind Result or NestedResult");
205
+ this.insertTransaction(t, s), this.replaceCommand(
206
+ t + s.commands.length,
207
+ [],
208
+ "Result" in e ? { NestedResult: [e.Result + t, 0] } : {
209
+ NestedResult: [
210
+ e.NestedResult[0] + t,
211
+ e.NestedResult[1]
212
+ ]
213
+ }
214
+ );
215
+ }
216
+ insertTransaction(t, s) {
217
+ var u, p;
218
+ const e = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Map();
219
+ for (let a = 0; a < s.inputs.length; a++) {
220
+ const o = s.inputs[a], l = w(o);
221
+ let c = -1;
222
+ if (l !== void 0 && (c = this.inputs.findIndex((g) => w(g) === l), c !== -1 && ((u = this.inputs[c].Object) != null && u.SharedObject) && ((p = o.Object) != null && p.SharedObject) && (this.inputs[c].Object.SharedObject.mutable = this.inputs[c].Object.SharedObject.mutable || o.Object.SharedObject.mutable)), c !== -1)
223
+ e.set(a, c);
224
+ else {
225
+ const g = this.inputs.length;
226
+ this.inputs.push(o), e.set(a, g);
227
+ }
228
+ }
229
+ for (let a = 0; a < s.commands.length; a++)
230
+ i.set(a, t + a);
231
+ const n = [];
232
+ for (let a = 0; a < s.commands.length; a++) {
233
+ const o = structuredClone(s.commands[a]);
234
+ D(o, e, i), n.push(o);
235
+ }
236
+ this.commands.splice(t, 0, ...n);
237
+ const r = n.length;
238
+ r > 0 && this.mapArguments((a, o, l) => {
239
+ if (l >= t && l < t + n.length)
240
+ return a;
241
+ switch (a.$kind) {
242
+ case "Result":
243
+ a.Result >= t && (a.Result += r);
244
+ break;
245
+ case "NestedResult":
246
+ a.NestedResult[0] >= t && (a.NestedResult[0] += r);
247
+ break;
248
+ }
249
+ return a;
250
+ });
251
+ }
252
+ getDigest() {
253
+ const t = this.build({ onlyTransactionKind: !1 });
254
+ return m.getDigestFromBytes(t);
255
+ }
256
+ snapshot() {
257
+ return h(f, this);
258
+ }
259
+ shallowClone() {
260
+ return new m({
261
+ version: this.version,
262
+ sender: this.sender,
263
+ expiration: this.expiration,
264
+ gasData: {
265
+ ...this.gasData
266
+ },
267
+ inputs: [...this.inputs],
268
+ commands: [...this.commands]
269
+ });
270
+ }
271
+ applyResolvedData(t) {
272
+ this.sender || (this.sender = t.sender ?? null), this.expiration || (this.expiration = t.expiration ?? null), this.gasData.budget || (this.gasData.budget = t.gasData.budget), this.gasData.owner || (this.gasData.owner = t.gasData.owner ?? null), this.gasData.payment || (this.gasData.payment = t.gasData.payment), this.gasData.price || (this.gasData.price = t.gasData.price);
273
+ for (let s = 0; s < this.inputs.length; s++) {
274
+ const e = this.inputs[s], i = t.inputs[s];
275
+ switch (e.$kind) {
276
+ case "UnresolvedPure":
277
+ if (i.$kind !== "Pure")
278
+ throw new Error(
279
+ `Expected input at index ${s} to resolve to a Pure argument, but got ${JSON.stringify(
280
+ i
281
+ )}`
282
+ );
283
+ this.inputs[s] = i;
284
+ break;
285
+ case "UnresolvedObject":
286
+ if (i.$kind !== "Object")
287
+ throw new Error(
288
+ `Expected input at index ${s} to resolve to an Object argument, but got ${JSON.stringify(
289
+ i
290
+ )}`
291
+ );
292
+ if (i.Object.$kind === "ImmOrOwnedObject" || i.Object.$kind === "Receiving") {
293
+ const n = e.UnresolvedObject, r = i.Object.ImmOrOwnedObject ?? i.Object.Receiving;
294
+ if (d(n.objectId) !== d(r.objectId) || n.version != null && n.version !== r.version || n.digest != null && n.digest !== r.digest || // Objects with shared object properties should not resolve to owned objects
295
+ n.mutable != null || n.initialSharedVersion != null)
296
+ throw new Error(
297
+ `Input at index ${s} did not match unresolved object. ${JSON.stringify(n)} is not compatible with ${JSON.stringify(r)}`
298
+ );
299
+ } else if (i.Object.$kind === "SharedObject") {
300
+ const n = e.UnresolvedObject, r = i.Object.SharedObject;
301
+ if (d(n.objectId) !== d(r.objectId) || n.initialSharedVersion != null && n.initialSharedVersion !== r.initialSharedVersion || n.mutable != null && n.mutable !== r.mutable || // Objects with owned object properties should not resolve to shared objects
302
+ n.version != null || n.digest != null)
303
+ throw new Error(
304
+ `Input at index ${s} did not match unresolved object. ${JSON.stringify(n)} is not compatible with ${JSON.stringify(r)}`
305
+ );
306
+ } else
307
+ throw new Error(
308
+ `Input at index ${s} resolved to an unexpected Object kind: ${JSON.stringify(
309
+ i.Object
310
+ )}`
311
+ );
312
+ this.inputs[s] = i;
313
+ break;
314
+ }
315
+ }
316
+ }
15
317
  }
16
318
  export {
17
- f as createPure
319
+ m as TransactionDataBuilder
18
320
  };
package/dist/index314.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const j=require("./index113.cjs"),h=require("./index305.cjs"),b=require("./index320.cjs"),d=require("./index117.cjs"),g=require("./index307.cjs"),y=require("./index308.cjs"),R=require("./index369.cjs"),w=require("./index315.cjs");function k(O){return d.normalizeSuiAddress(O).replace("0x","")}class c{constructor(t){this.version=2,this.sender=(t==null?void 0:t.sender)??null,this.expiration=(t==null?void 0:t.expiration)??null,this.inputs=(t==null?void 0:t.inputs)??[],this.commands=(t==null?void 0:t.commands)??[],this.gasData=(t==null?void 0:t.gasData)??{budget:null,price:null,owner:null,payment:null}}static fromKindBytes(t){const e=b.bcs.TransactionKind.parse(t).ProgrammableTransaction;if(!e)throw new Error("Unable to deserialize from bytes.");return c.restore({version:2,sender:null,expiration:null,gasData:{budget:null,owner:null,payment:null,price:null},inputs:e.inputs,commands:e.commands})}static fromBytes(t){const s=b.bcs.TransactionData.parse(t),e=s==null?void 0:s.V1,i=e.kind.ProgrammableTransaction;if(!e||!i)throw new Error("Unable to deserialize from bytes.");return c.restore({version:2,sender:e.sender,expiration:e.expiration,gasData:e.gasData,inputs:i.inputs,commands:i.commands})}static restore(t){return t.version===2?new c(h.parse(g.TransactionDataSchema,t)):new c(h.parse(g.TransactionDataSchema,y.transactionDataFromV1(t)))}static getDigestFromBytes(t){const s=R.hashTypedData("TransactionData",t);return j.toBase58(s)}get gasConfig(){return this.gasData}set gasConfig(t){this.gasData=t}build({maxSizeBytes:t=1/0,overrides:s,onlyTransactionKind:e}={}){const i=this.inputs,n=this.commands,r={ProgrammableTransaction:{inputs:i,commands:n}};if(e)return b.bcs.TransactionKind.serialize(r,{maxSize:t}).toBytes();const u=(s==null?void 0:s.expiration)??this.expiration,m=(s==null?void 0:s.sender)??this.sender,a={...this.gasData,...s==null?void 0:s.gasConfig,...s==null?void 0:s.gasData};if(!m)throw new Error("Missing transaction sender");if(!a.budget)throw new Error("Missing gas budget");if(!a.payment)throw new Error("Missing gas payment");if(!a.price)throw new Error("Missing gas price");const o={sender:k(m),expiration:u||{None:!0},gasData:{payment:a.payment,owner:k(this.gasData.owner??m),price:BigInt(a.price),budget:BigInt(a.budget)},kind:{ProgrammableTransaction:{inputs:i,commands:n}}};return b.bcs.TransactionData.serialize({V1:o},{maxSize:t}).toBytes()}addInput(t,s){const e=this.inputs.length;return this.inputs.push(s),{Input:e,type:t,$kind:"Input"}}getInputUses(t,s){this.mapArguments((e,i)=>(e.$kind==="Input"&&e.Input===t&&s(e,i),e))}mapCommandArguments(t,s){const e=this.commands[t];switch(e.$kind){case"MoveCall":e.MoveCall.arguments=e.MoveCall.arguments.map(n=>s(n,e,t));break;case"TransferObjects":e.TransferObjects.objects=e.TransferObjects.objects.map(n=>s(n,e,t)),e.TransferObjects.address=s(e.TransferObjects.address,e,t);break;case"SplitCoins":e.SplitCoins.coin=s(e.SplitCoins.coin,e,t),e.SplitCoins.amounts=e.SplitCoins.amounts.map(n=>s(n,e,t));break;case"MergeCoins":e.MergeCoins.destination=s(e.MergeCoins.destination,e,t),e.MergeCoins.sources=e.MergeCoins.sources.map(n=>s(n,e,t));break;case"MakeMoveVec":e.MakeMoveVec.elements=e.MakeMoveVec.elements.map(n=>s(n,e,t));break;case"Upgrade":e.Upgrade.ticket=s(e.Upgrade.ticket,e,t);break;case"$Intent":const i=e.$Intent.inputs;e.$Intent.inputs={};for(const[n,r]of Object.entries(i))e.$Intent.inputs[n]=Array.isArray(r)?r.map(u=>s(u,e,t)):s(r,e,t);break;case"Publish":break;default:throw new Error(`Unexpected transaction kind: ${e.$kind}`)}}mapArguments(t){for(const s of this.commands.keys())this.mapCommandArguments(s,t)}replaceCommand(t,s,e=t){if(!Array.isArray(s)){this.commands[t]=s;return}const i=s.length-1;this.commands.splice(t,1,...structuredClone(s)),this.mapArguments((n,r,u)=>{if(u<t+s.length)return n;if(typeof e!="number"&&(n.$kind==="Result"&&n.Result===t||n.$kind==="NestedResult"&&n.NestedResult[0]===t)){if(!("NestedResult"in n)||n.NestedResult[1]===0)return h.parse(g.ArgumentSchema,structuredClone(e));throw new Error(`Cannot replace command ${t} with a specific result type: NestedResult[${t}, ${n.NestedResult[1]}] references a nested element that cannot be mapped to the replacement result`)}switch(n.$kind){case"Result":n.Result===t&&typeof e=="number"&&(n.Result=e),n.Result>t&&(n.Result+=i);break;case"NestedResult":if(n.NestedResult[0]===t&&typeof e=="number")return{$kind:"NestedResult",NestedResult:[e,n.NestedResult[1]]};n.NestedResult[0]>t&&(n.NestedResult[0]+=i);break}return n})}replaceCommandWithTransaction(t,s,e){if(e.$kind!=="Result"&&e.$kind!=="NestedResult")throw new Error("Result must be of kind Result or NestedResult");this.insertTransaction(t,s),this.replaceCommand(t+s.commands.length,[],"Result"in e?{NestedResult:[e.Result+t,0]}:{NestedResult:[e.NestedResult[0]+t,e.NestedResult[1]]})}insertTransaction(t,s){var u,m;const e=new Map,i=new Map;for(let a=0;a<s.inputs.length;a++){const o=s.inputs[a],p=w.getIdFromCallArg(o);let l=-1;if(p!==void 0&&(l=this.inputs.findIndex(f=>w.getIdFromCallArg(f)===p),l!==-1&&((u=this.inputs[l].Object)!=null&&u.SharedObject)&&((m=o.Object)!=null&&m.SharedObject)&&(this.inputs[l].Object.SharedObject.mutable=this.inputs[l].Object.SharedObject.mutable||o.Object.SharedObject.mutable)),l!==-1)e.set(a,l);else{const f=this.inputs.length;this.inputs.push(o),e.set(a,f)}}for(let a=0;a<s.commands.length;a++)i.set(a,t+a);const n=[];for(let a=0;a<s.commands.length;a++){const o=structuredClone(s.commands[a]);w.remapCommandArguments(o,e,i),n.push(o)}this.commands.splice(t,0,...n);const r=n.length;r>0&&this.mapArguments((a,o,p)=>{if(p>=t&&p<t+n.length)return a;switch(a.$kind){case"Result":a.Result>=t&&(a.Result+=r);break;case"NestedResult":a.NestedResult[0]>=t&&(a.NestedResult[0]+=r);break}return a})}getDigest(){const t=this.build({onlyTransactionKind:!1});return c.getDigestFromBytes(t)}snapshot(){return h.parse(g.TransactionDataSchema,this)}shallowClone(){return new c({version:this.version,sender:this.sender,expiration:this.expiration,gasData:{...this.gasData},inputs:[...this.inputs],commands:[...this.commands]})}applyResolvedData(t){this.sender||(this.sender=t.sender??null),this.expiration||(this.expiration=t.expiration??null),this.gasData.budget||(this.gasData.budget=t.gasData.budget),this.gasData.owner||(this.gasData.owner=t.gasData.owner??null),this.gasData.payment||(this.gasData.payment=t.gasData.payment),this.gasData.price||(this.gasData.price=t.gasData.price);for(let s=0;s<this.inputs.length;s++){const e=this.inputs[s],i=t.inputs[s];switch(e.$kind){case"UnresolvedPure":if(i.$kind!=="Pure")throw new Error(`Expected input at index ${s} to resolve to a Pure argument, but got ${JSON.stringify(i)}`);this.inputs[s]=i;break;case"UnresolvedObject":if(i.$kind!=="Object")throw new Error(`Expected input at index ${s} to resolve to an Object argument, but got ${JSON.stringify(i)}`);if(i.Object.$kind==="ImmOrOwnedObject"||i.Object.$kind==="Receiving"){const n=e.UnresolvedObject,r=i.Object.ImmOrOwnedObject??i.Object.Receiving;if(d.normalizeSuiAddress(n.objectId)!==d.normalizeSuiAddress(r.objectId)||n.version!=null&&n.version!==r.version||n.digest!=null&&n.digest!==r.digest||n.mutable!=null||n.initialSharedVersion!=null)throw new Error(`Input at index ${s} did not match unresolved object. ${JSON.stringify(n)} is not compatible with ${JSON.stringify(r)}`)}else if(i.Object.$kind==="SharedObject"){const n=e.UnresolvedObject,r=i.Object.SharedObject;if(d.normalizeSuiAddress(n.objectId)!==d.normalizeSuiAddress(r.objectId)||n.initialSharedVersion!=null&&n.initialSharedVersion!==r.initialSharedVersion||n.mutable!=null&&n.mutable!==r.mutable||n.version!=null||n.digest!=null)throw new Error(`Input at index ${s} did not match unresolved object. ${JSON.stringify(n)} is not compatible with ${JSON.stringify(r)}`)}else throw new Error(`Input at index ${s} resolved to an unexpected Object kind: ${JSON.stringify(i.Object)}`);this.inputs[s]=i;break}}}}exports.TransactionDataBuilder=c;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./index117.cjs");function l(e){if(typeof e=="string")return r.normalizeSuiAddress(e);if(e.Object)return e.Object.ImmOrOwnedObject?r.normalizeSuiAddress(e.Object.ImmOrOwnedObject.objectId):e.Object.Receiving?r.normalizeSuiAddress(e.Object.Receiving.objectId):r.normalizeSuiAddress(e.Object.SharedObject.objectId);if(e.UnresolvedObject)return r.normalizeSuiAddress(e.UnresolvedObject.objectId)}function c(e,o,u){const s=t=>{switch(t.$kind){case"Input":{const n=o.get(t.Input);if(n===void 0)throw new Error(`Input ${t.Input} not found in input mapping`);return{...t,Input:n}}case"Result":{const n=u.get(t.Result);return n!==void 0?{...t,Result:n}:t}case"NestedResult":{const n=u.get(t.NestedResult[0]);return n!==void 0?{...t,NestedResult:[n,t.NestedResult[1]]}:t}default:return t}};switch(e.$kind){case"MoveCall":e.MoveCall.arguments=e.MoveCall.arguments.map(s);break;case"TransferObjects":e.TransferObjects.objects=e.TransferObjects.objects.map(s),e.TransferObjects.address=s(e.TransferObjects.address);break;case"SplitCoins":e.SplitCoins.coin=s(e.SplitCoins.coin),e.SplitCoins.amounts=e.SplitCoins.amounts.map(s);break;case"MergeCoins":e.MergeCoins.destination=s(e.MergeCoins.destination),e.MergeCoins.sources=e.MergeCoins.sources.map(s);break;case"MakeMoveVec":e.MakeMoveVec.elements=e.MakeMoveVec.elements.map(s);break;case"Upgrade":e.Upgrade.ticket=s(e.Upgrade.ticket);break;case"$Intent":{const t=e.$Intent.inputs;e.$Intent.inputs={};for(const[n,i]of Object.entries(t))e.$Intent.inputs[n]=Array.isArray(i)?i.map(s):s(i);break}}}exports.getIdFromCallArg=l;exports.remapCommandArguments=c;