@layerzerolabs/onesig-stellar-sdk 0.2.101 → 0.2.102
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.
- package/dist/{F6ZSIYGU.mjs → DPYAZNJF.mjs} +24 -4
- package/dist/DPYAZNJF.mjs.map +1 -0
- package/dist/{VRQXZL3G.mjs → YVY2ANOR.mjs} +2 -2
- package/dist/YVY2ANOR.mjs.map +1 -0
- package/dist/calls.d.ts +25 -1
- package/dist/calls.d.ts.map +1 -1
- package/dist/calls.mjs +1 -1
- package/dist/index.mjs +2 -2
- package/dist/leafGenerator.d.ts +11 -0
- package/dist/leafGenerator.d.ts.map +1 -1
- package/dist/leafGenerator.mjs +1 -1
- package/package.json +12 -11
- package/dist/F6ZSIYGU.mjs.map +0 -1
- package/dist/VRQXZL3G.mjs.map +0 -1
|
@@ -1,6 +1,26 @@
|
|
|
1
1
|
import { __name } from './YYM473VY.mjs';
|
|
2
|
-
import { xdr } from '@stellar/stellar-sdk';
|
|
2
|
+
import { xdr, Address } from '@stellar/stellar-sdk';
|
|
3
3
|
|
|
4
|
+
var scMapEntry = /* @__PURE__ */ __name((key, val) => new xdr.ScMapEntry({
|
|
5
|
+
key: xdr.ScVal.scvSymbol(key),
|
|
6
|
+
val
|
|
7
|
+
}), "scMapEntry");
|
|
8
|
+
function createExecuteTransactionCall(oneSigAddress, calls) {
|
|
9
|
+
const callsScVal = xdr.ScVal.scvVec(calls.map((call) => xdr.ScVal.scvMap([
|
|
10
|
+
scMapEntry("args", xdr.ScVal.scvVec(call.args)),
|
|
11
|
+
scMapEntry("func", xdr.ScVal.scvSymbol(call.func)),
|
|
12
|
+
scMapEntry("sub_invocations", xdr.ScVal.scvVec(call.sub_invocations)),
|
|
13
|
+
scMapEntry("to", Address.fromString(call.to).toScVal())
|
|
14
|
+
])));
|
|
15
|
+
return {
|
|
16
|
+
contractAddress: oneSigAddress,
|
|
17
|
+
functionName: "execute_transaction",
|
|
18
|
+
args: [
|
|
19
|
+
callsScVal
|
|
20
|
+
]
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
__name(createExecuteTransactionCall, "createExecuteTransactionCall");
|
|
4
24
|
function createSetSeedCall(newSeed, contractAddress) {
|
|
5
25
|
return {
|
|
6
26
|
contractAddress,
|
|
@@ -54,6 +74,6 @@ function createSetSignerCall(signerAddress, active, contractAddress) {
|
|
|
54
74
|
}
|
|
55
75
|
__name(createSetSignerCall, "createSetSignerCall");
|
|
56
76
|
|
|
57
|
-
export { createSetExecutorCall, createSetExecutorRequiredCall, createSetSeedCall, createSetSignerCall, createSetThresholdCall };
|
|
58
|
-
//# sourceMappingURL=
|
|
59
|
-
//# sourceMappingURL=
|
|
77
|
+
export { createExecuteTransactionCall, createSetExecutorCall, createSetExecutorRequiredCall, createSetSeedCall, createSetSignerCall, createSetThresholdCall };
|
|
78
|
+
//# sourceMappingURL=DPYAZNJF.mjs.map
|
|
79
|
+
//# sourceMappingURL=DPYAZNJF.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/calls.ts"],"names":["scMapEntry","key","val","xdr","ScMapEntry","ScVal","scvSymbol","createExecuteTransactionCall","oneSigAddress","calls","callsScVal","scvVec","map","call","scvMap","args","func","sub_invocations","Address","fromString","to","toScVal","contractAddress","functionName","createSetSeedCall","newSeed","scvBytes","createSetExecutorCall","executor","active","scvBool","createSetExecutorRequiredCall","required","createSetThresholdCall","newThreshold","scvU32","createSetSignerCall","signerAddress"],"mappings":"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","file":"DPYAZNJF.mjs","sourcesContent":["import { Address, xdr } from '@stellar/stellar-sdk';\n\nimport { type Call } from './generated/index';\nimport { type StellarCall } from './leafGenerator';\n\n/** Build an `(symbol => value)` ScMap entry. */\nconst scMapEntry = (key: string, val: xdr.ScVal) =>\n new xdr.ScMapEntry({ key: xdr.ScVal.scvSymbol(key), val });\n\n/**\n * Bundle multiple external calls into a single `execute_transaction` self-call\n * (the OneSig multicall path).\n *\n * A OneSig merkle leaf authorizes exactly one self-call on the OneSig contract.\n * To dispatch several external calls under one leaf, wrap them as the `calls`\n * argument of `execute_transaction`; the OneSig contract is the direct invoker\n * of each, so they need no separate OneSig auth.\n *\n * The inner calls use the generated {@link Call} type so they mirror the\n * contract's `Call` struct exactly (`to`, `func`, `args`, `sub_invocations`).\n * Each `Call` is encoded as an ScMap by hand rather than via `nativeToScVal`,\n * because the spec cannot serialize the `InvokerContractAuthEntry` values in\n * `sub_invocations`; the hand-rolled encoding is byte-identical to what the\n * generated client submits, and additionally supports nested pre-authorization.\n *\n * The returned {@link StellarCall} is consumed by the leaf generator's\n * `encodeCalls` exactly like any other self-call.\n *\n * @param oneSigAddress - The OneSig contract address (C...); the wrapper's target.\n * @param calls - External calls to execute atomically inside `execute_transaction`.\n */\nexport function createExecuteTransactionCall(oneSigAddress: string, calls: Call[]): StellarCall {\n // ScMap keys must be sorted; Call fields are alphabetical: args, func, sub_invocations, to.\n const callsScVal = xdr.ScVal.scvVec(\n calls.map((call) =>\n xdr.ScVal.scvMap([\n scMapEntry('args', xdr.ScVal.scvVec(call.args)),\n scMapEntry('func', xdr.ScVal.scvSymbol(call.func)),\n scMapEntry('sub_invocations', xdr.ScVal.scvVec(call.sub_invocations)),\n scMapEntry('to', Address.fromString(call.to).toScVal()),\n ]),\n ),\n );\n\n return {\n contractAddress: oneSigAddress,\n functionName: 'execute_transaction',\n args: [callsScVal],\n };\n}\n\n/**\n * Create a call to set the seed value\n */\nexport function createSetSeedCall(newSeed: Buffer, contractAddress: string): StellarCall {\n return {\n contractAddress,\n functionName: 'set_seed',\n args: [xdr.ScVal.scvBytes(newSeed)],\n };\n}\n\n/**\n * Create a call to set an executor\n */\nexport function createSetExecutorCall(\n executor: Buffer,\n active: boolean,\n contractAddress: string,\n): StellarCall {\n return {\n contractAddress,\n functionName: 'set_executor',\n args: [xdr.ScVal.scvBytes(executor), xdr.ScVal.scvBool(active)],\n };\n}\n\n/**\n * Create a call to set executor required flag\n */\nexport function createSetExecutorRequiredCall(\n required: boolean,\n contractAddress: string,\n): StellarCall {\n return {\n contractAddress,\n functionName: 'set_executor_required',\n args: [xdr.ScVal.scvBool(required)],\n };\n}\n\n/**\n * Create a call to set the threshold\n */\nexport function createSetThresholdCall(newThreshold: number, contractAddress: string): StellarCall {\n return {\n contractAddress,\n functionName: 'set_threshold',\n args: [xdr.ScVal.scvU32(newThreshold)],\n };\n}\n\n/**\n * Create a call to set a signer\n */\nexport function createSetSignerCall(\n signerAddress: Buffer,\n active: boolean,\n contractAddress: string,\n): StellarCall {\n return {\n contractAddress,\n functionName: 'set_signer',\n args: [xdr.ScVal.scvBytes(signerAddress), xdr.ScVal.scvBool(active)],\n };\n}\n"]}
|
|
@@ -47,5 +47,5 @@ function stellarLeafGenerator(leafs) {
|
|
|
47
47
|
__name(stellarLeafGenerator, "stellarLeafGenerator");
|
|
48
48
|
|
|
49
49
|
export { stellarLeafGenerator };
|
|
50
|
-
//# sourceMappingURL=
|
|
51
|
-
//# sourceMappingURL=
|
|
50
|
+
//# sourceMappingURL=YVY2ANOR.mjs.map
|
|
51
|
+
//# sourceMappingURL=YVY2ANOR.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/leafGenerator.ts"],"names":["ONE_SIG_SPEC","Client","contractId","rpcUrl","networkPassphrase","allowHttp","spec","callInput","getFunc","inputs","find","input","name","toString","Error","CALL_TYPE","type","stellarLeafGenerator","leafs","encodeAddress","address","StrKey","decodeContract","encodeCalls","calls","length","call","callObject","to","Address","fromString","contractAddress","func","functionName","args","sub_invocations","nativeToScVal","toXDR"],"mappings":";;;;AAQA,IAAMA,YAAAA,GAAe,IAAIC,MAAAA,CAAO;EAC5BC,UAAAA,EAAY,EAAA;EACZC,MAAAA,EAAQ,EAAA;EACRC,iBAAAA,EAAmB,EAAA;EACnBC,SAAAA,EAAW;AACf,CAAA,CAAA,CAAGC,IAAAA;AACH,IAAMC,SAAAA,GAAYP,YAAAA,CAAaQ,OAAAA,CAAQ,aAAA,EAClCC,MAAAA,EAAM,CACNC,IAAAA,CAAK,CAACC,UAAqCA,KAAAA,CAAMC,IAAAA,EAAI,CAAGC,QAAAA,OAAe,MAAA,CAAA;AAC5E,IAAI,CAACN,SAAAA,EAAW,MAAM,IAAIO,MAAM,uDAAA,CAAA;AAChC,IAAMC,SAAAA,GAAYR,UAAUS,IAAAA,EAAI;AA4BzB,SAASC,qBACZC,KAAAA,EAAwB;AAExB,EAAA,OAAO;AACHA,IAAAA,KAAAA;;AAGAC,IAAAA,aAAAA,CAAcC,OAAAA,EAAe;AACzB,MAAA,IAAI;AACA,QAAA,OAAOC,MAAAA,CAAOC,eAAeF,OAAAA,CAAAA;MACjC,CAAA,CAAA,MAAQ;AACJ,QAAA,MAAM,IAAIN,KAAAA,CAAM,CAAA,iCAAA,EAAoCM,OAAAA,CAAAA,gBAAAA,CAAyB,CAAA;AACjF,MAAA;AACJ,IAAA,CAAA;;;;;;;;AASAG,IAAAA,WAAAA,CAAYC,KAAAA,EAAoB;AAC5B,MAAA,IAAIA,KAAAA,CAAMC,WAAW,CAAA,EAAG;AACpB,QAAA,MAAM,IAAIX,MACN,sIACI,CAAA;AAEZ,MAAA;AAEA,MAAA,MAAMY,IAAAA,GAAOF,MAAM,CAAA,CAAA;AACnB,MAAA,MAAMG,UAAAA,GAAa;QACfC,EAAAA,EAAIC,OAAAA,CAAQC,UAAAA,CAAWJ,IAAAA,CAAKK,eAAe,CAAA;AAC3CC,QAAAA,IAAAA,EAAMN,IAAAA,CAAKO,YAAAA;AACXC,QAAAA,IAAAA,EAAMR,IAAAA,CAAKQ,IAAAA;AACXC,QAAAA,eAAAA,EAAiB;AACrB,OAAA;AAEA,MAAA,OAAOnC,YAAAA,CAAaoC,aAAAA,CAAcT,UAAAA,EAAYZ,SAAAA,EAAWsB,KAAAA,EAAK;AAClE,IAAA;AACJ,GAAA;AACJ;AAzCgBpB,MAAAA,CAAAA,oBAAAA,EAAAA,sBAAAA,CAAAA","file":"YVY2ANOR.mjs","sourcesContent":["import type { xdr } from '@stellar/stellar-sdk';\nimport { Address, StrKey } from '@stellar/stellar-sdk';\n\nimport { type BaseLeafData, type GenerateLeafsResult } from '@layerzerolabs/onesig-core';\n\nimport { Client } from './generated/index';\n\n// Get the contract spec and Call type at module load\nconst ONE_SIG_SPEC = new Client({\n contractId: '',\n rpcUrl: '',\n networkPassphrase: '',\n allowHttp: true,\n}).spec;\nconst callInput = ONE_SIG_SPEC.getFunc('encode_leaf')\n .inputs()\n .find((input: xdr.ScSpecFunctionInputV0) => input.name().toString() === 'call');\nif (!callInput) throw new Error('Could not find call parameter in encode_leaf function');\nconst CALL_TYPE = callInput.type();\n\n/**\n * Stellar contract call data structure\n *\n * Arguments are provided as pre-encoded ScVal[] matching the contract function's parameter types.\n * The entire Call struct (to, func, args) is encoded using nativeToScVal for XDR encoding.\n *\n * A OneSig merkle leaf authorizes exactly ONE self-call on the OneSig contract\n * (see `encodeCalls`, which rejects more than one). This is not a multicall type:\n * each `StellarCall` is a single `(contract, function, args)` invocation.\n *\n * To execute multiple calls under one leaf, you do NOT pass several `StellarCall`s.\n * Instead you make a single `execute_transaction` self-call and put the batch of\n * calls *inside* its `args`: the `calls: Vec<Call>` parameter carries them, and the\n * OneSig contract dispatches each in turn. Use `createExecuteTransactionCall` to\n * build that wrapper. So multicall lives one level down — in the `args` of a single\n * `execute_transaction` call — not in the number of `StellarCall`s per leaf.\n */\nexport interface StellarCall {\n contractAddress: string; // Soroban contract address (C...)\n functionName: string; // Function name to call\n args: xdr.ScVal[]; // Function arguments as ScVal[] matching contract parameters\n}\n\nexport type StellarLeafData = BaseLeafData<string, StellarCall>;\n\n/** Generates Stellar leaf data for OneSig Merkle tree */\nexport function stellarLeafGenerator(\n leafs: StellarLeafData[],\n): GenerateLeafsResult<StellarLeafData> {\n return {\n leafs,\n\n /** Encode OneSig contract address (C...) to 32-byte buffer */\n encodeAddress(address: string): Buffer {\n try {\n return StrKey.decodeContract(address);\n } catch {\n throw new Error(`Invalid OneSig contract address: ${address}. Expected: C...`);\n }\n },\n\n /**\n * Encode a single self-call to XDR buffer using Call encoding.\n *\n * Each leaf contains exactly one self-call (e.g. `set_seed`, `execute_transaction`).\n * To dispatch multiple external contract calls, use a single `execute_transaction`\n * call whose args carry the list of external calls.\n */\n encodeCalls(calls: StellarCall[]): Buffer {\n if (calls.length !== 1) {\n throw new Error(\n 'Stellar leaf must have exactly one self-call. ' +\n 'For multiple external calls, use execute_transaction whose args contain the call list.',\n );\n }\n\n const call = calls[0];\n const callObject = {\n to: Address.fromString(call.contractAddress),\n func: call.functionName,\n args: call.args,\n sub_invocations: [],\n };\n\n return ONE_SIG_SPEC.nativeToScVal(callObject, CALL_TYPE).toXDR();\n },\n };\n}\n"]}
|
package/dist/calls.d.ts
CHANGED
|
@@ -1,4 +1,28 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type Call } from './generated/index';
|
|
2
|
+
import { type StellarCall } from './leafGenerator';
|
|
3
|
+
/**
|
|
4
|
+
* Bundle multiple external calls into a single `execute_transaction` self-call
|
|
5
|
+
* (the OneSig multicall path).
|
|
6
|
+
*
|
|
7
|
+
* A OneSig merkle leaf authorizes exactly one self-call on the OneSig contract.
|
|
8
|
+
* To dispatch several external calls under one leaf, wrap them as the `calls`
|
|
9
|
+
* argument of `execute_transaction`; the OneSig contract is the direct invoker
|
|
10
|
+
* of each, so they need no separate OneSig auth.
|
|
11
|
+
*
|
|
12
|
+
* The inner calls use the generated {@link Call} type so they mirror the
|
|
13
|
+
* contract's `Call` struct exactly (`to`, `func`, `args`, `sub_invocations`).
|
|
14
|
+
* Each `Call` is encoded as an ScMap by hand rather than via `nativeToScVal`,
|
|
15
|
+
* because the spec cannot serialize the `InvokerContractAuthEntry` values in
|
|
16
|
+
* `sub_invocations`; the hand-rolled encoding is byte-identical to what the
|
|
17
|
+
* generated client submits, and additionally supports nested pre-authorization.
|
|
18
|
+
*
|
|
19
|
+
* The returned {@link StellarCall} is consumed by the leaf generator's
|
|
20
|
+
* `encodeCalls` exactly like any other self-call.
|
|
21
|
+
*
|
|
22
|
+
* @param oneSigAddress - The OneSig contract address (C...); the wrapper's target.
|
|
23
|
+
* @param calls - External calls to execute atomically inside `execute_transaction`.
|
|
24
|
+
*/
|
|
25
|
+
export declare function createExecuteTransactionCall(oneSigAddress: string, calls: Call[]): StellarCall;
|
|
2
26
|
/**
|
|
3
27
|
* Create a call to set the seed value
|
|
4
28
|
*/
|
package/dist/calls.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calls.d.ts","sourceRoot":"","sources":["../src/calls.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"calls.d.ts","sourceRoot":"","sources":["../src/calls.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAMnD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,4BAA4B,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,WAAW,CAkB9F;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,WAAW,CAMvF;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACjC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,OAAO,EACf,eAAe,EAAE,MAAM,GACxB,WAAW,CAMb;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CACzC,QAAQ,EAAE,OAAO,EACjB,eAAe,EAAE,MAAM,GACxB,WAAW,CAMb;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,WAAW,CAMjG;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAC/B,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,OAAO,EACf,eAAe,EAAE,MAAM,GACxB,WAAW,CAMb"}
|
package/dist/calls.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { createSetExecutorCall, createSetExecutorRequiredCall, createSetSeedCall, createSetSignerCall, createSetThresholdCall } from './
|
|
1
|
+
export { createExecuteTransactionCall, createSetExecutorCall, createSetExecutorRequiredCall, createSetSeedCall, createSetSignerCall, createSetThresholdCall } from './DPYAZNJF.mjs';
|
|
2
2
|
import './YYM473VY.mjs';
|
|
3
3
|
//# sourceMappingURL=calls.mjs.map
|
|
4
4
|
//# sourceMappingURL=calls.mjs.map
|
package/dist/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { createSetExecutorCall, createSetExecutorRequiredCall, createSetSeedCall, createSetSignerCall, createSetThresholdCall } from './
|
|
2
|
-
export { stellarLeafGenerator } from './
|
|
1
|
+
export { createExecuteTransactionCall, createSetExecutorCall, createSetExecutorRequiredCall, createSetSeedCall, createSetSignerCall, createSetThresholdCall } from './DPYAZNJF.mjs';
|
|
2
|
+
export { stellarLeafGenerator } from './YVY2ANOR.mjs';
|
|
3
3
|
export { AuthError, BufferReaderError, BufferWriterError, BytesExtError, Client, MultiSigError, OneSigError, OwnableError, RbacError, TtlConfigurableError, UpgradeableError, WASM_BASE64, WASM_HASH, contract, getWasmBuffer, rpc } from './PGY5OPBA.mjs';
|
|
4
4
|
import './YYM473VY.mjs';
|
|
5
5
|
//# sourceMappingURL=index.mjs.map
|
package/dist/leafGenerator.d.ts
CHANGED
|
@@ -5,6 +5,17 @@ import { type BaseLeafData, type GenerateLeafsResult } from '@layerzerolabs/ones
|
|
|
5
5
|
*
|
|
6
6
|
* Arguments are provided as pre-encoded ScVal[] matching the contract function's parameter types.
|
|
7
7
|
* The entire Call struct (to, func, args) is encoded using nativeToScVal for XDR encoding.
|
|
8
|
+
*
|
|
9
|
+
* A OneSig merkle leaf authorizes exactly ONE self-call on the OneSig contract
|
|
10
|
+
* (see `encodeCalls`, which rejects more than one). This is not a multicall type:
|
|
11
|
+
* each `StellarCall` is a single `(contract, function, args)` invocation.
|
|
12
|
+
*
|
|
13
|
+
* To execute multiple calls under one leaf, you do NOT pass several `StellarCall`s.
|
|
14
|
+
* Instead you make a single `execute_transaction` self-call and put the batch of
|
|
15
|
+
* calls *inside* its `args`: the `calls: Vec<Call>` parameter carries them, and the
|
|
16
|
+
* OneSig contract dispatches each in turn. Use `createExecuteTransactionCall` to
|
|
17
|
+
* build that wrapper. So multicall lives one level down — in the `args` of a single
|
|
18
|
+
* `execute_transaction` call — not in the number of `StellarCall`s per leaf.
|
|
8
19
|
*/
|
|
9
20
|
export interface StellarCall {
|
|
10
21
|
contractAddress: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"leafGenerator.d.ts","sourceRoot":"","sources":["../src/leafGenerator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAGhD,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAiBzF
|
|
1
|
+
{"version":3,"file":"leafGenerator.d.ts","sourceRoot":"","sources":["../src/leafGenerator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAGhD,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAiBzF;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,WAAW;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;CACrB;AAED,MAAM,MAAM,eAAe,GAAG,YAAY,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAEhE,yDAAyD;AACzD,wBAAgB,oBAAoB,CAChC,KAAK,EAAE,eAAe,EAAE,GACzB,mBAAmB,CAAC,eAAe,CAAC,CAuCtC"}
|
package/dist/leafGenerator.mjs
CHANGED
package/package.json
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@layerzerolabs/onesig-stellar-sdk",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.102",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "TypeScript SDK for OneSig Stellar contract",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"exports": {
|
|
8
8
|
"types": "./dist/index.d.ts",
|
|
9
|
-
"require": "./dist/index.js",
|
|
10
9
|
"import": "./dist/index.mjs",
|
|
11
|
-
"
|
|
10
|
+
"require": "./dist/index.mjs",
|
|
11
|
+
"default": "./dist/index.mjs"
|
|
12
12
|
},
|
|
13
|
-
"main": "./dist/index.
|
|
13
|
+
"main": "./dist/index.mjs",
|
|
14
14
|
"module": "./dist/index.mjs",
|
|
15
15
|
"types": "./dist/index.d.ts",
|
|
16
16
|
"files": [
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
],
|
|
19
19
|
"dependencies": {
|
|
20
20
|
"@stellar/stellar-sdk": "^14.1.1",
|
|
21
|
-
"@layerzerolabs/onesig-core": "0.2.
|
|
21
|
+
"@layerzerolabs/onesig-core": "0.2.102"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
24
|
"@types/node": "^22.18.6",
|
|
@@ -26,10 +26,10 @@
|
|
|
26
26
|
"tsup": "^8.4.0",
|
|
27
27
|
"typescript": "^5.8.2",
|
|
28
28
|
"vitest": "^3.2.3",
|
|
29
|
-
"@layerzerolabs/onesig-stellar": "0.2.
|
|
30
|
-
"@layerzerolabs/tsup-configuration": "0.2.
|
|
31
|
-
"@layerzerolabs/
|
|
32
|
-
"@layerzerolabs/
|
|
29
|
+
"@layerzerolabs/onesig-stellar": "0.2.102",
|
|
30
|
+
"@layerzerolabs/tsup-configuration": "0.2.102",
|
|
31
|
+
"@layerzerolabs/typescript-configuration": "0.2.102",
|
|
32
|
+
"@layerzerolabs/vm-tooling-stellar": "0.2.102"
|
|
33
33
|
},
|
|
34
34
|
"publishConfig": {
|
|
35
35
|
"access": "public",
|
|
@@ -48,7 +48,8 @@
|
|
|
48
48
|
"compile:sdk": "cd .. && pnpm compile:sdk",
|
|
49
49
|
"build": "pnpm build:contract && pnpm compile:sdk && tsup",
|
|
50
50
|
"clean": "rm -rf dist .turbo",
|
|
51
|
-
"test": "vitest --run --pass-with-no-tests --typecheck --exclude test/integration.test.ts",
|
|
52
|
-
"test:integration": "cd .. && pnpm build:mocks && pnpm start:stellar && cd sdk && vitest run test/integration.test.ts; cd .. && pnpm stop:stellar"
|
|
51
|
+
"test": "vitest --run --pass-with-no-tests --typecheck --exclude test/integration.test.ts --exclude test/offchainWorkflow.test.ts",
|
|
52
|
+
"test:integration": "cd .. && pnpm build:mocks && pnpm start:stellar && cd sdk && vitest run --no-file-parallelism test/integration.test.ts test/offchainWorkflow.test.ts; cd .. && pnpm stop:stellar",
|
|
53
|
+
"test:offchain:workflow": "cd .. && pnpm build:contract && pnpm start:stellar && cd sdk && vitest run test/offchainWorkflow.test.ts; cd .. && pnpm stop:stellar"
|
|
53
54
|
}
|
|
54
55
|
}
|
package/dist/F6ZSIYGU.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/calls.ts"],"names":["createSetSeedCall","newSeed","contractAddress","functionName","args","xdr","ScVal","scvBytes","createSetExecutorCall","executor","active","scvBool","createSetExecutorRequiredCall","required","createSetThresholdCall","newThreshold","scvU32","createSetSignerCall","signerAddress"],"mappings":";;;AAOO,SAASA,iBAAAA,CAAkBC,SAAiBC,eAAAA,EAAuB;AACtE,EAAA,OAAO;AACHA,IAAAA,eAAAA;IACAC,YAAAA,EAAc,UAAA;IACdC,IAAAA,EAAM;MAACC,GAAAA,CAAIC,KAAAA,CAAMC,SAASN,OAAAA;;AAC9B,GAAA;AACJ;AANgBD,MAAAA,CAAAA,iBAAAA,EAAAA,mBAAAA,CAAAA;AAWT,SAASQ,qBAAAA,CACZC,QAAAA,EACAC,MAAAA,EACAR,eAAAA,EAAuB;AAEvB,EAAA,OAAO;AACHA,IAAAA,eAAAA;IACAC,YAAAA,EAAc,cAAA;IACdC,IAAAA,EAAM;MAACC,GAAAA,CAAIC,KAAAA,CAAMC,SAASE,QAAAA,CAAAA;MAAWJ,GAAAA,CAAIC,KAAAA,CAAMK,QAAQD,MAAAA;;AAC3D,GAAA;AACJ;AAVgBF,MAAAA,CAAAA,qBAAAA,EAAAA,uBAAAA,CAAAA;AAeT,SAASI,6BAAAA,CACZC,UACAX,eAAAA,EAAuB;AAEvB,EAAA,OAAO;AACHA,IAAAA,eAAAA;IACAC,YAAAA,EAAc,uBAAA;IACdC,IAAAA,EAAM;MAACC,GAAAA,CAAIC,KAAAA,CAAMK,QAAQE,QAAAA;;AAC7B,GAAA;AACJ;AATgBD,MAAAA,CAAAA,6BAAAA,EAAAA,+BAAAA,CAAAA;AAcT,SAASE,sBAAAA,CAAuBC,cAAsBb,eAAAA,EAAuB;AAChF,EAAA,OAAO;AACHA,IAAAA,eAAAA;IACAC,YAAAA,EAAc,eAAA;IACdC,IAAAA,EAAM;MAACC,GAAAA,CAAIC,KAAAA,CAAMU,OAAOD,YAAAA;;AAC5B,GAAA;AACJ;AANgBD,MAAAA,CAAAA,sBAAAA,EAAAA,wBAAAA,CAAAA;AAWT,SAASG,mBAAAA,CACZC,aAAAA,EACAR,MAAAA,EACAR,eAAAA,EAAuB;AAEvB,EAAA,OAAO;AACHA,IAAAA,eAAAA;IACAC,YAAAA,EAAc,YAAA;IACdC,IAAAA,EAAM;MAACC,GAAAA,CAAIC,KAAAA,CAAMC,SAASW,aAAAA,CAAAA;MAAgBb,GAAAA,CAAIC,KAAAA,CAAMK,QAAQD,MAAAA;;AAChE,GAAA;AACJ;AAVgBO,MAAAA,CAAAA,mBAAAA,EAAAA,qBAAAA,CAAAA","file":"F6ZSIYGU.mjs","sourcesContent":["import { xdr } from '@stellar/stellar-sdk';\n\nimport type { StellarCall } from './leafGenerator';\n\n/**\n * Create a call to set the seed value\n */\nexport function createSetSeedCall(newSeed: Buffer, contractAddress: string): StellarCall {\n return {\n contractAddress,\n functionName: 'set_seed',\n args: [xdr.ScVal.scvBytes(newSeed)],\n };\n}\n\n/**\n * Create a call to set an executor\n */\nexport function createSetExecutorCall(\n executor: Buffer,\n active: boolean,\n contractAddress: string,\n): StellarCall {\n return {\n contractAddress,\n functionName: 'set_executor',\n args: [xdr.ScVal.scvBytes(executor), xdr.ScVal.scvBool(active)],\n };\n}\n\n/**\n * Create a call to set executor required flag\n */\nexport function createSetExecutorRequiredCall(\n required: boolean,\n contractAddress: string,\n): StellarCall {\n return {\n contractAddress,\n functionName: 'set_executor_required',\n args: [xdr.ScVal.scvBool(required)],\n };\n}\n\n/**\n * Create a call to set the threshold\n */\nexport function createSetThresholdCall(newThreshold: number, contractAddress: string): StellarCall {\n return {\n contractAddress,\n functionName: 'set_threshold',\n args: [xdr.ScVal.scvU32(newThreshold)],\n };\n}\n\n/**\n * Create a call to set a signer\n */\nexport function createSetSignerCall(\n signerAddress: Buffer,\n active: boolean,\n contractAddress: string,\n): StellarCall {\n return {\n contractAddress,\n functionName: 'set_signer',\n args: [xdr.ScVal.scvBytes(signerAddress), xdr.ScVal.scvBool(active)],\n };\n}\n"]}
|
package/dist/VRQXZL3G.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/leafGenerator.ts"],"names":["ONE_SIG_SPEC","Client","contractId","rpcUrl","networkPassphrase","allowHttp","spec","callInput","getFunc","inputs","find","input","name","toString","Error","CALL_TYPE","type","stellarLeafGenerator","leafs","encodeAddress","address","StrKey","decodeContract","encodeCalls","calls","length","call","callObject","to","Address","fromString","contractAddress","func","functionName","args","sub_invocations","nativeToScVal","toXDR"],"mappings":";;;;AAQA,IAAMA,YAAAA,GAAe,IAAIC,MAAAA,CAAO;EAC5BC,UAAAA,EAAY,EAAA;EACZC,MAAAA,EAAQ,EAAA;EACRC,iBAAAA,EAAmB,EAAA;EACnBC,SAAAA,EAAW;AACf,CAAA,CAAA,CAAGC,IAAAA;AACH,IAAMC,SAAAA,GAAYP,YAAAA,CAAaQ,OAAAA,CAAQ,aAAA,EAClCC,MAAAA,EAAM,CACNC,IAAAA,CAAK,CAACC,UAAqCA,KAAAA,CAAMC,IAAAA,EAAI,CAAGC,QAAAA,OAAe,MAAA,CAAA;AAC5E,IAAI,CAACN,SAAAA,EAAW,MAAM,IAAIO,MAAM,uDAAA,CAAA;AAChC,IAAMC,SAAAA,GAAYR,UAAUS,IAAAA,EAAI;AAiBzB,SAASC,qBACZC,KAAAA,EAAwB;AAExB,EAAA,OAAO;AACHA,IAAAA,KAAAA;;AAGAC,IAAAA,aAAAA,CAAcC,OAAAA,EAAe;AACzB,MAAA,IAAI;AACA,QAAA,OAAOC,MAAAA,CAAOC,eAAeF,OAAAA,CAAAA;MACjC,CAAA,CAAA,MAAQ;AACJ,QAAA,MAAM,IAAIN,KAAAA,CAAM,CAAA,iCAAA,EAAoCM,OAAAA,CAAAA,gBAAAA,CAAyB,CAAA;AACjF,MAAA;AACJ,IAAA,CAAA;;;;;;;;AASAG,IAAAA,WAAAA,CAAYC,KAAAA,EAAoB;AAC5B,MAAA,IAAIA,KAAAA,CAAMC,WAAW,CAAA,EAAG;AACpB,QAAA,MAAM,IAAIX,MACN,sIACI,CAAA;AAEZ,MAAA;AAEA,MAAA,MAAMY,IAAAA,GAAOF,MAAM,CAAA,CAAA;AACnB,MAAA,MAAMG,UAAAA,GAAa;QACfC,EAAAA,EAAIC,OAAAA,CAAQC,UAAAA,CAAWJ,IAAAA,CAAKK,eAAe,CAAA;AAC3CC,QAAAA,IAAAA,EAAMN,IAAAA,CAAKO,YAAAA;AACXC,QAAAA,IAAAA,EAAMR,IAAAA,CAAKQ,IAAAA;AACXC,QAAAA,eAAAA,EAAiB;AACrB,OAAA;AAEA,MAAA,OAAOnC,YAAAA,CAAaoC,aAAAA,CAAcT,UAAAA,EAAYZ,SAAAA,EAAWsB,KAAAA,EAAK;AAClE,IAAA;AACJ,GAAA;AACJ;AAzCgBpB,MAAAA,CAAAA,oBAAAA,EAAAA,sBAAAA,CAAAA","file":"VRQXZL3G.mjs","sourcesContent":["import type { xdr } from '@stellar/stellar-sdk';\nimport { Address, StrKey } from '@stellar/stellar-sdk';\n\nimport { type BaseLeafData, type GenerateLeafsResult } from '@layerzerolabs/onesig-core';\n\nimport { Client } from './generated/index';\n\n// Get the contract spec and Call type at module load\nconst ONE_SIG_SPEC = new Client({\n contractId: '',\n rpcUrl: '',\n networkPassphrase: '',\n allowHttp: true,\n}).spec;\nconst callInput = ONE_SIG_SPEC.getFunc('encode_leaf')\n .inputs()\n .find((input: xdr.ScSpecFunctionInputV0) => input.name().toString() === 'call');\nif (!callInput) throw new Error('Could not find call parameter in encode_leaf function');\nconst CALL_TYPE = callInput.type();\n\n/**\n * Stellar contract call data structure\n *\n * Arguments are provided as pre-encoded ScVal[] matching the contract function's parameter types.\n * The entire Call struct (to, func, args) is encoded using nativeToScVal for XDR encoding.\n */\nexport interface StellarCall {\n contractAddress: string; // Soroban contract address (C...)\n functionName: string; // Function name to call\n args: xdr.ScVal[]; // Function arguments as ScVal[] matching contract parameters\n}\n\nexport type StellarLeafData = BaseLeafData<string, StellarCall>;\n\n/** Generates Stellar leaf data for OneSig Merkle tree */\nexport function stellarLeafGenerator(\n leafs: StellarLeafData[],\n): GenerateLeafsResult<StellarLeafData> {\n return {\n leafs,\n\n /** Encode OneSig contract address (C...) to 32-byte buffer */\n encodeAddress(address: string): Buffer {\n try {\n return StrKey.decodeContract(address);\n } catch {\n throw new Error(`Invalid OneSig contract address: ${address}. Expected: C...`);\n }\n },\n\n /**\n * Encode a single self-call to XDR buffer using Call encoding.\n *\n * Each leaf contains exactly one self-call (e.g. `set_seed`, `execute_transaction`).\n * To dispatch multiple external contract calls, use a single `execute_transaction`\n * call whose args carry the list of external calls.\n */\n encodeCalls(calls: StellarCall[]): Buffer {\n if (calls.length !== 1) {\n throw new Error(\n 'Stellar leaf must have exactly one self-call. ' +\n 'For multiple external calls, use execute_transaction whose args contain the call list.',\n );\n }\n\n const call = calls[0];\n const callObject = {\n to: Address.fromString(call.contractAddress),\n func: call.functionName,\n args: call.args,\n sub_invocations: [],\n };\n\n return ONE_SIG_SPEC.nativeToScVal(callObject, CALL_TYPE).toXDR();\n },\n };\n}\n"]}
|