@digitalworld/digital-world-sdk 16.0.0 → 16.0.1
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/README.md +5 -5
- package/dist/digital-world-sdk-axios.js +52 -47
- package/dist/digital-world-sdk-axios.js.map +1 -1
- package/dist/digital-world-sdk-axios.min.js +1 -1
- package/dist/digital-world-sdk-axios.min.js.map +1 -1
- package/dist/digital-world-sdk.js +52 -47
- package/dist/digital-world-sdk.js.map +1 -1
- package/dist/digital-world-sdk.min.js +6 -6
- package/dist/digital-world-sdk.min.js.map +1 -1
- package/lib/axios/cjs/base/contract.js +2 -2
- package/lib/axios/cjs/base/contract.js.map +1 -1
- package/lib/axios/cjs/base/invocation.js.map +1 -1
- package/lib/axios/cjs/base/numbers/sc_int.js +1 -1
- package/lib/axios/cjs/base/numbers/sc_int.js.map +1 -1
- package/lib/axios/cjs/base/operation.js +1 -1
- package/lib/axios/cjs/base/operation.js.map +1 -1
- package/lib/axios/cjs/base/operations/invoke_host_function.js +2 -2
- package/lib/axios/cjs/base/operations/invoke_host_function.js.map +1 -1
- package/lib/axios/cjs/base/operations/revoke_sponsorship.js.map +1 -1
- package/lib/axios/cjs/bindings/config.js +4 -4
- package/lib/axios/cjs/bindings/config.js.map +1 -1
- package/lib/axios/cjs/bindings/generator.js +4 -4
- package/lib/axios/cjs/bindings/generator.js.map +1 -1
- package/lib/axios/cjs/bindings/types.js.map +1 -1
- package/lib/axios/cjs/bindings/utils.js +2 -2
- package/lib/axios/cjs/bindings/utils.js.map +1 -1
- package/lib/axios/cjs/bindings/wasm_fetcher.js +2 -2
- package/lib/axios/cjs/bindings/wasm_fetcher.js.map +1 -1
- package/lib/axios/cjs/contract/assembled_transaction.js.map +1 -1
- package/lib/axios/cjs/contract/spec.js +1 -1
- package/lib/axios/cjs/contract/spec.js.map +1 -1
- package/lib/axios/cjs/contract/types.js.map +1 -1
- package/lib/axios/cjs/gateway/gateway_axios_client.js +1 -1
- package/lib/axios/cjs/gateway/server_api.js.map +1 -1
- package/lib/axios/cjs/rpc/api.js.map +1 -1
- package/lib/axios/cjs/rpc/axios.js +1 -1
- package/lib/axios/cjs/rpc/server.js +32 -27
- package/lib/axios/cjs/rpc/server.js.map +1 -1
- package/lib/axios/cjs/webauth/utils.js.map +1 -1
- package/lib/axios/esm/base/contract.d.ts +4 -4
- package/lib/axios/esm/base/contract.js +2 -2
- package/lib/axios/esm/base/contract.js.map +1 -1
- package/lib/axios/esm/base/invocation.d.ts +2 -2
- package/lib/axios/esm/base/invocation.js.map +1 -1
- package/lib/axios/esm/base/numbers/sc_int.d.ts +2 -2
- package/lib/axios/esm/base/numbers/sc_int.js +1 -1
- package/lib/axios/esm/base/numbers/sc_int.js.map +1 -1
- package/lib/axios/esm/base/operation.d.ts +2 -2
- package/lib/axios/esm/base/operation.js +2 -2
- package/lib/axios/esm/base/operation.js.map +1 -1
- package/lib/axios/esm/base/operations/index.d.ts +1 -1
- package/lib/axios/esm/base/operations/invoke_host_function.d.ts +5 -5
- package/lib/axios/esm/base/operations/invoke_host_function.js +2 -2
- package/lib/axios/esm/base/operations/invoke_host_function.js.map +1 -1
- package/lib/axios/esm/base/operations/revoke_sponsorship.d.ts +1 -1
- package/lib/axios/esm/base/operations/revoke_sponsorship.js.map +1 -1
- package/lib/axios/esm/base/operations/types.d.ts +2 -2
- package/lib/axios/esm/bindings/config.js +4 -4
- package/lib/axios/esm/bindings/config.js.map +1 -1
- package/lib/axios/esm/bindings/generator.d.ts +7 -7
- package/lib/axios/esm/bindings/generator.js +4 -4
- package/lib/axios/esm/bindings/generator.js.map +1 -1
- package/lib/axios/esm/bindings/types.d.ts +1 -1
- package/lib/axios/esm/bindings/types.js.map +1 -1
- package/lib/axios/esm/bindings/utils.d.ts +4 -4
- package/lib/axios/esm/bindings/utils.js +2 -2
- package/lib/axios/esm/bindings/utils.js.map +1 -1
- package/lib/axios/esm/bindings/wasm_fetcher.js +2 -2
- package/lib/axios/esm/bindings/wasm_fetcher.js.map +1 -1
- package/lib/axios/esm/contract/assembled_transaction.d.ts +1 -1
- package/lib/axios/esm/contract/assembled_transaction.js.map +1 -1
- package/lib/axios/esm/contract/spec.js +1 -1
- package/lib/axios/esm/contract/spec.js.map +1 -1
- package/lib/axios/esm/contract/types.d.ts +2 -2
- package/lib/axios/esm/contract/types.js.map +1 -1
- package/lib/axios/esm/gateway/gateway_axios_client.js +1 -1
- package/lib/axios/esm/gateway/server_api.d.ts +2 -2
- package/lib/axios/esm/gateway/server_api.js.map +1 -1
- package/lib/axios/esm/rpc/api.d.ts +1 -1
- package/lib/axios/esm/rpc/api.js.map +1 -1
- package/lib/axios/esm/rpc/axios.js +1 -1
- package/lib/axios/esm/rpc/browser.d.ts +1 -1
- package/lib/axios/esm/rpc/server.d.ts +26 -26
- package/lib/axios/esm/rpc/server.js +32 -27
- package/lib/axios/esm/rpc/server.js.map +1 -1
- package/lib/axios/esm/webauth/utils.d.ts +2 -2
- package/lib/axios/esm/webauth/utils.js.map +1 -1
- package/lib/cjs/base/contract.js +2 -2
- package/lib/cjs/base/contract.js.map +1 -1
- package/lib/cjs/base/invocation.js.map +1 -1
- package/lib/cjs/base/numbers/sc_int.js +1 -1
- package/lib/cjs/base/numbers/sc_int.js.map +1 -1
- package/lib/cjs/base/operation.js +1 -1
- package/lib/cjs/base/operation.js.map +1 -1
- package/lib/cjs/base/operations/invoke_host_function.js +2 -2
- package/lib/cjs/base/operations/invoke_host_function.js.map +1 -1
- package/lib/cjs/base/operations/revoke_sponsorship.js.map +1 -1
- package/lib/cjs/bindings/config.js +4 -4
- package/lib/cjs/bindings/config.js.map +1 -1
- package/lib/cjs/bindings/generator.js +4 -4
- package/lib/cjs/bindings/generator.js.map +1 -1
- package/lib/cjs/bindings/types.js.map +1 -1
- package/lib/cjs/bindings/utils.js +2 -2
- package/lib/cjs/bindings/utils.js.map +1 -1
- package/lib/cjs/bindings/wasm_fetcher.js +2 -2
- package/lib/cjs/bindings/wasm_fetcher.js.map +1 -1
- package/lib/cjs/contract/assembled_transaction.js.map +1 -1
- package/lib/cjs/contract/spec.js +1 -1
- package/lib/cjs/contract/spec.js.map +1 -1
- package/lib/cjs/contract/types.js.map +1 -1
- package/lib/cjs/gateway/gateway_axios_client.js +1 -1
- package/lib/cjs/gateway/server_api.js.map +1 -1
- package/lib/cjs/rpc/api.js.map +1 -1
- package/lib/cjs/rpc/axios.js +1 -1
- package/lib/cjs/rpc/server.js +32 -27
- package/lib/cjs/rpc/server.js.map +1 -1
- package/lib/cjs/webauth/utils.js.map +1 -1
- package/lib/esm/base/contract.d.ts +4 -4
- package/lib/esm/base/contract.js +2 -2
- package/lib/esm/base/contract.js.map +1 -1
- package/lib/esm/base/invocation.d.ts +2 -2
- package/lib/esm/base/invocation.js.map +1 -1
- package/lib/esm/base/numbers/sc_int.d.ts +2 -2
- package/lib/esm/base/numbers/sc_int.js +1 -1
- package/lib/esm/base/numbers/sc_int.js.map +1 -1
- package/lib/esm/base/operation.d.ts +2 -2
- package/lib/esm/base/operation.js +2 -2
- package/lib/esm/base/operation.js.map +1 -1
- package/lib/esm/base/operations/index.d.ts +1 -1
- package/lib/esm/base/operations/invoke_host_function.d.ts +5 -5
- package/lib/esm/base/operations/invoke_host_function.js +2 -2
- package/lib/esm/base/operations/invoke_host_function.js.map +1 -1
- package/lib/esm/base/operations/revoke_sponsorship.d.ts +1 -1
- package/lib/esm/base/operations/revoke_sponsorship.js.map +1 -1
- package/lib/esm/base/operations/types.d.ts +2 -2
- package/lib/esm/bindings/config.js +4 -4
- package/lib/esm/bindings/config.js.map +1 -1
- package/lib/esm/bindings/generator.d.ts +7 -7
- package/lib/esm/bindings/generator.js +4 -4
- package/lib/esm/bindings/generator.js.map +1 -1
- package/lib/esm/bindings/types.d.ts +1 -1
- package/lib/esm/bindings/types.js.map +1 -1
- package/lib/esm/bindings/utils.d.ts +4 -4
- package/lib/esm/bindings/utils.js +2 -2
- package/lib/esm/bindings/utils.js.map +1 -1
- package/lib/esm/bindings/wasm_fetcher.js +2 -2
- package/lib/esm/bindings/wasm_fetcher.js.map +1 -1
- package/lib/esm/contract/assembled_transaction.d.ts +1 -1
- package/lib/esm/contract/assembled_transaction.js.map +1 -1
- package/lib/esm/contract/spec.js +1 -1
- package/lib/esm/contract/spec.js.map +1 -1
- package/lib/esm/contract/types.d.ts +2 -2
- package/lib/esm/contract/types.js.map +1 -1
- package/lib/esm/gateway/gateway_axios_client.js +1 -1
- package/lib/esm/gateway/server_api.d.ts +2 -2
- package/lib/esm/gateway/server_api.js.map +1 -1
- package/lib/esm/rpc/api.d.ts +1 -1
- package/lib/esm/rpc/api.js.map +1 -1
- package/lib/esm/rpc/axios.js +1 -1
- package/lib/esm/rpc/browser.d.ts +1 -1
- package/lib/esm/rpc/server.d.ts +26 -26
- package/lib/esm/rpc/server.js +32 -27
- package/lib/esm/rpc/server.js.map +1 -1
- package/lib/esm/webauth/utils.d.ts +2 -2
- package/lib/esm/webauth/utils.js.map +1 -1
- package/package.json +41 -39
|
@@ -19,7 +19,7 @@ class Contract {
|
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
21
|
/**
|
|
22
|
-
* Returns
|
|
22
|
+
* Returns Digital World contract ID as a strkey, ex.
|
|
23
23
|
* `CA3D5KRYM6CB7OWQ6TWYRR3Z4T7GNZLKERYNZGGA5SOAOPIFY6YQGAXE`.
|
|
24
24
|
*/
|
|
25
25
|
contractId() {
|
|
@@ -42,7 +42,7 @@ class Contract {
|
|
|
42
42
|
* @see Operation.invokeHostFunction
|
|
43
43
|
* @see Operation.invokeContractFunction
|
|
44
44
|
* @see Operation.createCustomContract
|
|
45
|
-
* @see Operation.
|
|
45
|
+
* @see Operation.createDigitalWorldAssetContract
|
|
46
46
|
* @see Operation.uploadContractWasm
|
|
47
47
|
*/
|
|
48
48
|
call(method, ...params) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.js","sources":["../../../../src/base/contract.ts"],"sourcesContent":["import { Address } from \"./address.js\";\nimport { Operation } from \"./operation.js\";\nimport xdr from \"./xdr.js\";\nimport { StrKey } from \"./strkey.js\";\n\n/**\n * Create a new Contract object.\n *\n * `Contract` represents a single contract in the
|
|
1
|
+
{"version":3,"file":"contract.js","sources":["../../../../src/base/contract.ts"],"sourcesContent":["import { Address } from \"./address.js\";\nimport { Operation } from \"./operation.js\";\nimport xdr from \"./xdr.js\";\nimport { StrKey } from \"./strkey.js\";\n\n/**\n * Create a new Contract object.\n *\n * `Contract` represents a single contract in the Digital World network, embodying the\n * interface of the contract. See\n * [Contracts](https://soroban.stellar.org/docs/learn/interacting-with-contracts)\n * for more information about how contracts work in Digital World.\n */\nexport class Contract {\n private _id: Buffer;\n\n /**\n * @param contractId - ID of the contract (ex.\n * `CA3D5KRYM6CB7OWQ6TWYRR3Z4T7GNZLKERYNZGGA5SOAOPIFY6YQGAXE`).\n */\n constructor(contractId: string) {\n try {\n // First, try it as a strkey\n this._id = StrKey.decodeContract(contractId);\n } catch {\n throw new Error(`Invalid contract ID: ${contractId}`);\n }\n }\n\n /**\n * Returns Digital World contract ID as a strkey, ex.\n * `CA3D5KRYM6CB7OWQ6TWYRR3Z4T7GNZLKERYNZGGA5SOAOPIFY6YQGAXE`.\n */\n contractId(): string {\n return StrKey.encodeContract(this._id);\n }\n\n /** Returns the ID as a strkey (C...). */\n toString(): string {\n return this.contractId();\n }\n\n /** Returns the wrapped address of this contract. */\n address(): Address {\n return Address.contract(this._id);\n }\n\n /**\n * Returns an operation that will invoke this contract call.\n *\n * @param method - name of the method to call\n * @param params - arguments to pass to the method, as an array of xdr.ScVal\n *\n * @see Operation.invokeHostFunction\n * @see Operation.invokeContractFunction\n * @see Operation.createCustomContract\n * @see Operation.createDigitalWorldAssetContract\n * @see Operation.uploadContractWasm\n */\n call(\n method: string,\n ...params: xdr.ScVal[]\n ): xdr.Operation<Operation.InvokeHostFunction> {\n return Operation.invokeContractFunction({\n contract: this.address().toString(),\n function: method,\n args: params,\n });\n }\n\n /**\n * Returns the read-only footprint entries necessary for any invocations to\n * this contract, for convenience when manually adding it to your\n * transaction's overall footprint or doing bump/restore operations.\n */\n getFootprint(): xdr.LedgerKey {\n return xdr.LedgerKey.contractData(\n new xdr.LedgerKeyContractData({\n contract: this.address().toScAddress(),\n key: xdr.ScVal.scvLedgerKeyContractInstance(),\n durability: xdr.ContractDataDurability.persistent(),\n }),\n );\n }\n}\n"],"names":["StrKey","Address","Operation","xdr"],"mappings":";;;;;;;AAaO,MAAM,QAAA,CAAS;AAAA,EACZ,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMR,YAAY,UAAA,EAAoB;AAC9B,IAAA,IAAI;AAEF,MAAA,IAAA,CAAK,GAAA,GAAMA,aAAA,CAAO,cAAA,CAAe,UAAU,CAAA;AAAA,IAC7C,CAAA,CAAA,MAAQ;AACN,MAAA,MAAM,IAAI,KAAA,CAAM,CAAA,qBAAA,EAAwB,UAAU,CAAA,CAAE,CAAA;AAAA,IACtD;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,UAAA,GAAqB;AACnB,IAAA,OAAOA,aAAA,CAAO,cAAA,CAAe,IAAA,CAAK,GAAG,CAAA;AAAA,EACvC;AAAA;AAAA,EAGA,QAAA,GAAmB;AACjB,IAAA,OAAO,KAAK,UAAA,EAAW;AAAA,EACzB;AAAA;AAAA,EAGA,OAAA,GAAmB;AACjB,IAAA,OAAOC,eAAA,CAAQ,QAAA,CAAS,IAAA,CAAK,GAAG,CAAA;AAAA,EAClC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAcA,IAAA,CACE,WACG,MAAA,EAC0C;AAC7C,IAAA,OAAOC,oBAAU,sBAAA,CAAuB;AAAA,MACtC,QAAA,EAAU,IAAA,CAAK,OAAA,EAAQ,CAAE,QAAA,EAAS;AAAA,MAClC,QAAA,EAAU,MAAA;AAAA,MACV,IAAA,EAAM;AAAA,KACP,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,YAAA,GAA8B;AAC5B,IAAA,OAAOC,uBAAI,SAAA,CAAU,YAAA;AAAA,MACnB,IAAIA,uBAAI,qBAAA,CAAsB;AAAA,QAC5B,QAAA,EAAU,IAAA,CAAK,OAAA,EAAQ,CAAE,WAAA,EAAY;AAAA,QACrC,GAAA,EAAKA,sBAAA,CAAI,KAAA,CAAM,4BAAA,EAA6B;AAAA,QAC5C,UAAA,EAAYA,sBAAA,CAAI,sBAAA,CAAuB,UAAA;AAAW,OACnD;AAAA,KACH;AAAA,EACF;AACF;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invocation.js","sources":["../../../../src/base/invocation.ts"],"sourcesContent":["import xdr from \"./xdr.js\";\nimport { Asset } from \"./asset.js\";\nimport { Address } from \"./address.js\";\nimport { scValToNative } from \"./scval.js\";\n\nexport interface WasmCreateDetails {\n hash: string;\n address: string;\n salt: string;\n\n constructorArgs?: any[];\n}\n\n/**\n * Details about a contract creation invocation.\n *\n * - `type` indicates if this creation was a custom contract (`'wasm'`) or a\n * wrapping of an existing Stellar asset (`'sac'`)\n * - `asset` is set when `type=='sac'`, containing the canonical {@link Asset}\n * being wrapped by this Stellar Asset Contract\n * - `wasm` is set when `type=='wasm'`, containing additional creation parameters\n */\nexport interface CreateInvocation {\n type: \"sac\" | \"wasm\";\n asset?: string;\n wasm?: WasmCreateDetails;\n}\n\n/**\n * Details about a contract function execution invocation.\n *\n * - `source` is the strkey of the contract (`C...`) being invoked\n * - `function` is the name of the function being invoked\n * - `args` are the natively-represented parameters to the function invocation\n * (see {@link scValToNative} for rules on how they're represented as JS types)\n */\nexport interface ExecuteInvocation {\n source: string;\n function: string;\n\n args: any[];\n}\n\n/**\n * A node in the invocation tree.\n *\n * - `type` is the type of invocation occurring, either contract creation or\n * host function execution\n * - `args` are the parameters to the invocation, depending on the type\n * - `invocations` are any sub-invocations that may occur as a result of this\n * invocation (i.e. a tree of call stacks)\n */\nexport interface InvocationTree {\n type: \"create\" | \"execute\";\n args: CreateInvocation | ExecuteInvocation;\n invocations: InvocationTree[];\n}\n\n/**\n * A callback used when walking an invocation tree.\n *\n * Returning exactly `false` is a hint to stop exploring deeper from this node;\n * other return values are ignored.\n *\n * @param node - the currently explored node\n * @param depth - the depth of the tree this node is occurring at (the\n * root starts at a depth of 1)\n * @param parent - this node's parent node, if any (i.e. this doesn't\n * exist at the root)\n */\nexport type InvocationWalker = (\n node: xdr.SorobanAuthorizedInvocation,\n depth: number,\n parent?: xdr.SorobanAuthorizedInvocation,\n) => boolean | null | void;\n\n/**\n * Turns a raw invocation tree into a human-readable format.\n *\n * This is designed to make the invocation tree easier to understand in order to\n * inform users about the side-effects of their contract calls. This will help\n * make informed decisions about whether or not a particular invocation will\n * result in what you expect it to.\n *\n * @param root - the raw XDR of the invocation,\n * likely acquired from transaction simulation. this is either from the\n * {@link Operation.invokeHostFunction} itself (the `func` field), or from\n * the authorization entries ({@link xdr.SorobanAuthorizationEntry}, the\n * `rootInvocation` field)\n *\n * @example\n * Here, we show a browser modal after simulating an arbitrary transaction,\n * `tx`, which we assume has an `Operation.invokeHostFunction` inside of it:\n *\n * ```ts\n * import { Server, buildInvocationTree } from '@stellar/stellar-sdk';\n *\n * const s = new Server(\"fill in accordingly\");\n *\n * s.simulateTransaction(tx).then(\n * (resp: SorobanRpc.SimulateTransactionResponse) => {\n * if (SorobanRpc.isSuccessfulSim(resp) && resp.result) {\n * // bold assumption: there's a valid result with an auth entry\n * const auth = resp.result.auth;\n * if (auth && auth.length > 0) {\n * alert(\n * \"You are authorizing the following invocation:\\n\" +\n * JSON.stringify(\n * buildInvocationTree(auth[0].rootInvocation()),\n * null,\n * 2\n * )\n * );\n * }\n * }\n * }\n * );\n * ```\n */\nexport function buildInvocationTree(\n root: xdr.SorobanAuthorizedInvocation,\n): InvocationTree {\n const fn = root.function();\n\n const output: Partial<InvocationTree> = {};\n const inner = fn.value();\n\n switch (fn.switch().value) {\n // sorobanAuthorizedFunctionTypeContractFn\n case 0: {\n const invokeArgs = fn.contractFn();\n output.type = \"execute\";\n output.args = {\n source: Address.fromScAddress(invokeArgs.contractAddress()).toString(),\n function: invokeArgs.functionName().toString(),\n\n args: invokeArgs.args().map((arg) => scValToNative(arg)),\n };\n break;\n }\n\n // sorobanAuthorizedFunctionTypeCreateContractHostFn\n // sorobanAuthorizedFunctionTypeCreateContractV2HostFn\n case 1: // fallthrough: just no ctor args in V1\n case 2: {\n const createArgs = inner as\n | xdr.CreateContractArgs\n | xdr.CreateContractArgsV2;\n const createV2 = fn.switch().value === 2;\n output.type = \"create\";\n const createInvocation: Partial<CreateInvocation> = {};\n\n // If the executable is a WASM, the preimage MUST be an address. If it's a\n // token, the preimage MUST be an asset. This is a cheeky way to check\n // that, because wasm=0, token=1 and address=0, asset=1 in the XDR switch\n // values.\n //\n // The first part may not be true in V2, but we'd need to update this code\n // anyway so it can still be an error.\n const [exec, preimage] = [\n createArgs.executable(),\n createArgs.contractIdPreimage(),\n ];\n if (!!exec.switch().value !== !!preimage.switch().value) {\n throw new Error(\n `creation function appears invalid: ${JSON.stringify(\n inner,\n )} (should be wasm+address or token+asset)`,\n );\n }\n\n switch (exec.switch().value) {\n // contractExecutableWasm\n case 0: {\n const details = preimage.fromAddress();\n\n createInvocation.type = \"wasm\";\n createInvocation.wasm = {\n salt: Buffer.from(details.salt()).toString(\"hex\"),\n hash: exec.wasmHash().toString(\"hex\"),\n address: Address.fromScAddress(details.address()).toString(),\n // only apply constructor args for WASM+CreateV2 scenario\n ...(createV2 && {\n constructorArgs: (inner as xdr.CreateContractArgsV2)\n .constructorArgs()\n\n .map((arg) => scValToNative(arg)),\n }), // empty indicates V2 and no ctor, undefined indicates V1\n };\n break;\n }\n\n // contractExecutableStellarAsset\n case 1:\n createInvocation.type = \"sac\";\n createInvocation.asset = Asset.fromOperation(\n preimage.fromAsset(),\n ).toString();\n break;\n\n default:\n throw new Error(`unknown creation type: ${JSON.stringify(exec)}`);\n }\n\n output.args = createInvocation as CreateInvocation;\n break;\n }\n\n default:\n throw new Error(\n `unknown invocation type (${fn.switch().value}): ${JSON.stringify(fn)}`,\n );\n }\n\n output.invocations = root.subInvocations().map((i) => buildInvocationTree(i));\n return output as InvocationTree;\n}\n\n/**\n * Executes a callback function on each node in the tree until stopped.\n *\n * Nodes are walked in a depth-first order. Returning `false` from the callback\n * stops further depth exploration at that node, but it does not stop the walk\n * in a \"global\" view.\n *\n * @param root - the tree to explore\n * @param callback - the callback to execute for each node\n */\nexport function walkInvocationTree(\n root: xdr.SorobanAuthorizedInvocation,\n callback: InvocationWalker,\n): void {\n walkHelper(root, 1, callback);\n}\n\nfunction walkHelper(\n node: xdr.SorobanAuthorizedInvocation,\n depth: number,\n callback: InvocationWalker,\n parent?: xdr.SorobanAuthorizedInvocation,\n): void {\n if (callback(node, depth, parent) === false /* allow void rv */) {\n return;\n }\n\n node\n .subInvocations()\n .forEach((i) => walkHelper(i, depth + 1, callback, node));\n}\n"],"names":["Address","scValToNative","Buffer","Asset"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"invocation.js","sources":["../../../../src/base/invocation.ts"],"sourcesContent":["import xdr from \"./xdr.js\";\nimport { Asset } from \"./asset.js\";\nimport { Address } from \"./address.js\";\nimport { scValToNative } from \"./scval.js\";\n\nexport interface WasmCreateDetails {\n hash: string;\n address: string;\n salt: string;\n\n constructorArgs?: any[];\n}\n\n/**\n * Details about a contract creation invocation.\n *\n * - `type` indicates if this creation was a custom contract (`'wasm'`) or a\n * wrapping of an existing Digital World asset (`'sac'`)\n * - `asset` is set when `type=='sac'`, containing the canonical {@link Asset}\n * being wrapped by this Digital World Asset Contract\n * - `wasm` is set when `type=='wasm'`, containing additional creation parameters\n */\nexport interface CreateInvocation {\n type: \"sac\" | \"wasm\";\n asset?: string;\n wasm?: WasmCreateDetails;\n}\n\n/**\n * Details about a contract function execution invocation.\n *\n * - `source` is the strkey of the contract (`C...`) being invoked\n * - `function` is the name of the function being invoked\n * - `args` are the natively-represented parameters to the function invocation\n * (see {@link scValToNative} for rules on how they're represented as JS types)\n */\nexport interface ExecuteInvocation {\n source: string;\n function: string;\n\n args: any[];\n}\n\n/**\n * A node in the invocation tree.\n *\n * - `type` is the type of invocation occurring, either contract creation or\n * host function execution\n * - `args` are the parameters to the invocation, depending on the type\n * - `invocations` are any sub-invocations that may occur as a result of this\n * invocation (i.e. a tree of call stacks)\n */\nexport interface InvocationTree {\n type: \"create\" | \"execute\";\n args: CreateInvocation | ExecuteInvocation;\n invocations: InvocationTree[];\n}\n\n/**\n * A callback used when walking an invocation tree.\n *\n * Returning exactly `false` is a hint to stop exploring deeper from this node;\n * other return values are ignored.\n *\n * @param node - the currently explored node\n * @param depth - the depth of the tree this node is occurring at (the\n * root starts at a depth of 1)\n * @param parent - this node's parent node, if any (i.e. this doesn't\n * exist at the root)\n */\nexport type InvocationWalker = (\n node: xdr.SorobanAuthorizedInvocation,\n depth: number,\n parent?: xdr.SorobanAuthorizedInvocation,\n) => boolean | null | void;\n\n/**\n * Turns a raw invocation tree into a human-readable format.\n *\n * This is designed to make the invocation tree easier to understand in order to\n * inform users about the side-effects of their contract calls. This will help\n * make informed decisions about whether or not a particular invocation will\n * result in what you expect it to.\n *\n * @param root - the raw XDR of the invocation,\n * likely acquired from transaction simulation. this is either from the\n * {@link Operation.invokeHostFunction} itself (the `func` field), or from\n * the authorization entries ({@link xdr.SorobanAuthorizationEntry}, the\n * `rootInvocation` field)\n *\n * @example\n * Here, we show a browser modal after simulating an arbitrary transaction,\n * `tx`, which we assume has an `Operation.invokeHostFunction` inside of it:\n *\n * ```ts\n * import { Server, buildInvocationTree } from '@stellar/stellar-sdk';\n *\n * const s = new Server(\"fill in accordingly\");\n *\n * s.simulateTransaction(tx).then(\n * (resp: SorobanRpc.SimulateTransactionResponse) => {\n * if (SorobanRpc.isSuccessfulSim(resp) && resp.result) {\n * // bold assumption: there's a valid result with an auth entry\n * const auth = resp.result.auth;\n * if (auth && auth.length > 0) {\n * alert(\n * \"You are authorizing the following invocation:\\n\" +\n * JSON.stringify(\n * buildInvocationTree(auth[0].rootInvocation()),\n * null,\n * 2\n * )\n * );\n * }\n * }\n * }\n * );\n * ```\n */\nexport function buildInvocationTree(\n root: xdr.SorobanAuthorizedInvocation,\n): InvocationTree {\n const fn = root.function();\n\n const output: Partial<InvocationTree> = {};\n const inner = fn.value();\n\n switch (fn.switch().value) {\n // sorobanAuthorizedFunctionTypeContractFn\n case 0: {\n const invokeArgs = fn.contractFn();\n output.type = \"execute\";\n output.args = {\n source: Address.fromScAddress(invokeArgs.contractAddress()).toString(),\n function: invokeArgs.functionName().toString(),\n\n args: invokeArgs.args().map((arg) => scValToNative(arg)),\n };\n break;\n }\n\n // sorobanAuthorizedFunctionTypeCreateContractHostFn\n // sorobanAuthorizedFunctionTypeCreateContractV2HostFn\n case 1: // fallthrough: just no ctor args in V1\n case 2: {\n const createArgs = inner as\n | xdr.CreateContractArgs\n | xdr.CreateContractArgsV2;\n const createV2 = fn.switch().value === 2;\n output.type = \"create\";\n const createInvocation: Partial<CreateInvocation> = {};\n\n // If the executable is a WASM, the preimage MUST be an address. If it's a\n // token, the preimage MUST be an asset. This is a cheeky way to check\n // that, because wasm=0, token=1 and address=0, asset=1 in the XDR switch\n // values.\n //\n // The first part may not be true in V2, but we'd need to update this code\n // anyway so it can still be an error.\n const [exec, preimage] = [\n createArgs.executable(),\n createArgs.contractIdPreimage(),\n ];\n if (!!exec.switch().value !== !!preimage.switch().value) {\n throw new Error(\n `creation function appears invalid: ${JSON.stringify(\n inner,\n )} (should be wasm+address or token+asset)`,\n );\n }\n\n switch (exec.switch().value) {\n // contractExecutableWasm\n case 0: {\n const details = preimage.fromAddress();\n\n createInvocation.type = \"wasm\";\n createInvocation.wasm = {\n salt: Buffer.from(details.salt()).toString(\"hex\"),\n hash: exec.wasmHash().toString(\"hex\"),\n address: Address.fromScAddress(details.address()).toString(),\n // only apply constructor args for WASM+CreateV2 scenario\n ...(createV2 && {\n constructorArgs: (inner as xdr.CreateContractArgsV2)\n .constructorArgs()\n\n .map((arg) => scValToNative(arg)),\n }), // empty indicates V2 and no ctor, undefined indicates V1\n };\n break;\n }\n\n // contractExecutableStellarAsset\n case 1:\n createInvocation.type = \"sac\";\n createInvocation.asset = Asset.fromOperation(\n preimage.fromAsset(),\n ).toString();\n break;\n\n default:\n throw new Error(`unknown creation type: ${JSON.stringify(exec)}`);\n }\n\n output.args = createInvocation as CreateInvocation;\n break;\n }\n\n default:\n throw new Error(\n `unknown invocation type (${fn.switch().value}): ${JSON.stringify(fn)}`,\n );\n }\n\n output.invocations = root.subInvocations().map((i) => buildInvocationTree(i));\n return output as InvocationTree;\n}\n\n/**\n * Executes a callback function on each node in the tree until stopped.\n *\n * Nodes are walked in a depth-first order. Returning `false` from the callback\n * stops further depth exploration at that node, but it does not stop the walk\n * in a \"global\" view.\n *\n * @param root - the tree to explore\n * @param callback - the callback to execute for each node\n */\nexport function walkInvocationTree(\n root: xdr.SorobanAuthorizedInvocation,\n callback: InvocationWalker,\n): void {\n walkHelper(root, 1, callback);\n}\n\nfunction walkHelper(\n node: xdr.SorobanAuthorizedInvocation,\n depth: number,\n callback: InvocationWalker,\n parent?: xdr.SorobanAuthorizedInvocation,\n): void {\n if (callback(node, depth, parent) === false /* allow void rv */) {\n return;\n }\n\n node\n .subInvocations()\n .forEach((i) => walkHelper(i, depth + 1, callback, node));\n}\n"],"names":["Address","scValToNative","Buffer","Asset"],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ var xdr_large_int = require('./xdr_large_int.js');
|
|
|
5
5
|
class ScInt extends xdr_large_int.XdrLargeInt {
|
|
6
6
|
/**
|
|
7
7
|
* @param value - a single, integer-like value which will
|
|
8
|
-
* be interpreted in the smallest appropriate XDR type supported by
|
|
8
|
+
* be interpreted in the smallest appropriate XDR type supported by Digital World
|
|
9
9
|
* (64, 128, or 256 bit integer values). signed values are supported, though
|
|
10
10
|
* they are sanity-checked against `opts.type`. if you need 32-bit values,
|
|
11
11
|
* you can construct them directly without needing this wrapper, e.g.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sc_int.js","sources":["../../../../../src/base/numbers/sc_int.ts"],"sourcesContent":["import { XdrLargeInt, type ScIntType } from \"./xdr_large_int.js\";\n\n/**\n * Provides an easier way to manipulate large numbers for
|
|
1
|
+
{"version":3,"file":"sc_int.js","sources":["../../../../../src/base/numbers/sc_int.ts"],"sourcesContent":["import { XdrLargeInt, type ScIntType } from \"./xdr_large_int.js\";\n\n/**\n * Provides an easier way to manipulate large numbers for Digital World operations.\n *\n * You can instantiate this \"**s**mart **c**ontract integer\" value either from\n * bigints, strings, or numbers (whole numbers, or this will throw).\n *\n * If you need to create a native BigInt from a list of integer \"parts\" (for\n * example, you have a series of encoded 32-bit integers that represent a larger\n * value), you can use the lower level abstraction {@link XdrLargeInt}. For\n * example, you could do `new XdrLargeInt('u128', bytes...).toBigInt()`.\n *\n * @example\n * ```ts\n * import { xdr, ScInt, scValToBigInt } from \"@stellar/stellar-base\";\n *\n * // You have an ScVal from a contract and want to parse it into JS native.\n * const value = xdr.ScVal.fromXDR(someXdr, \"base64\");\n * const bigi = scValToBigInt(value); // grab it as a BigInt\n * let sci = new ScInt(bigi);\n *\n * sci.toNumber(); // gives native JS type (w/ size check)\n * sci.toBigInt(); // gives the native BigInt value\n * sci.toU64(); // gives ScValType-specific XDR constructs (with size checks)\n *\n * // You have a number and want to shove it into a contract.\n * sci = new ScInt(0xdeadcafebabe);\n * sci.toBigInt() // returns 244838016400062n\n * sci.toNumber() // throws: too large\n *\n * // Pass any to e.g. a Contract.call(), conversion happens automatically\n * // regardless of the initial type.\n * const scValU128 = sci.toU128();\n * const scValI256 = sci.toI256();\n * const scValU64 = sci.toU64();\n *\n * // Lots of ways to initialize:\n * new ScInt(\"123456789123456789\")\n * new ScInt(123456789123456789n);\n * new ScInt(1n << 140n);\n * new ScInt(-42);\n * new ScInt(scValToBigInt(scValU128)); // from above\n *\n * // If you know the type ahead of time (accessing `.raw` is faster than\n * // conversions), you can specify the type directly (otherwise, it's\n * // interpreted from the numbers you pass in):\n * const i = new ScInt(123456789n, { type: \"u256\" });\n *\n * // For example, you can use the underlying `sdk.U256` and convert it to an\n * // `xdr.ScVal` directly like so:\n * const scv = new xdr.ScVal.scvU256(i.raw);\n *\n * // Or reinterpret it as a different type (size permitting):\n * const scv = i.toI64();\n * ```\n *\n * @throws if the `value` is invalid (e.g. floating point), too\n * large (i.e. exceeds a 256-bit value), doesn't fit in the `opts.type`,\n * the signedness of `opts.type` doesn't match the input `value`, or a\n * string `value` can't be parsed as a big integer\n */\nexport class ScInt extends XdrLargeInt {\n /**\n * @param value - a single, integer-like value which will\n * be interpreted in the smallest appropriate XDR type supported by Digital World\n * (64, 128, or 256 bit integer values). signed values are supported, though\n * they are sanity-checked against `opts.type`. if you need 32-bit values,\n * you can construct them directly without needing this wrapper, e.g.\n * `xdr.ScVal.scvU32(1234)`.\n * @param opts - an optional object controlling optional parameters\n * - `type`: specify a type ('i64', 'u64', 'i128', 'u128', 'i256',\n * or 'u256') to override the default type selection. If not specified, the\n * smallest type that fits the value is used.\n */\n constructor(\n value: bigint | number | string,\n opts?: { type?: ScIntType; [key: string]: unknown },\n ) {\n const bigValue = BigInt(value);\n const signed = bigValue < 0n;\n\n let type = opts?.type ?? \"\";\n if (type.startsWith(\"u\") && signed) {\n throw TypeError(`specified type ${opts?.type} yet negative (${value})`);\n }\n\n // If unspecified, we make a best guess at the type based on the bit length\n // of the value, treating 64 as a minimum and 256 as a maximum.\n if (type === \"\") {\n type = signed ? \"i\" : \"u\";\n const bitlen = nearestBigIntSize(bigValue);\n\n switch (bitlen) {\n case 64:\n case 128:\n case 256:\n type += bitlen.toString();\n break;\n\n default:\n throw RangeError(\n `expected 64/128/256 bits for input (${value}), got ${bitlen}`,\n );\n }\n }\n\n super(type as ScIntType, bigValue);\n }\n}\n\nfunction nearestBigIntSize(bigI: bigint): number {\n if (bigI < 0n) {\n // Two's complement: N bits represent -(2^(N-1)) to 2^(N-1)-1.\n // For negative values, compute the signed bit width as\n // (bitlen of abs-1) + 1 to account for the sign bit. This correctly\n // classifies -(2^63) as 64 bits (fits i64) and -(2^63)-1 as 65 bits\n // (needs i128).\n const abs = -bigI;\n const bitlen = (abs - 1n).toString(2).length + 1;\n return [64, 128, 256].find((len) => bitlen <= len) ?? bitlen;\n }\n\n const bitlen = bigI.toString(2).length;\n return [64, 128, 256].find((len) => bitlen <= len) ?? bitlen;\n}\n"],"names":["XdrLargeInt","bitlen"],"mappings":";;;;AA8DO,MAAM,cAAcA,yBAAA,CAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAarC,WAAA,CACE,OACA,IAAA,EACA;AACA,IAAA,MAAM,QAAA,GAAW,OAAO,KAAK,CAAA;AAC7B,IAAA,MAAM,SAAS,QAAA,GAAW,EAAA;AAE1B,IAAA,IAAI,IAAA,GAAO,MAAM,IAAA,IAAQ,EAAA;AACzB,IAAA,IAAI,IAAA,CAAK,UAAA,CAAW,GAAG,CAAA,IAAK,MAAA,EAAQ;AAClC,MAAA,MAAM,UAAU,CAAA,eAAA,EAAkB,IAAA,EAAM,IAAI,CAAA,eAAA,EAAkB,KAAK,CAAA,CAAA,CAAG,CAAA;AAAA,IACxE;AAIA,IAAA,IAAI,SAAS,EAAA,EAAI;AACf,MAAA,IAAA,GAAO,SAAS,GAAA,GAAM,GAAA;AACtB,MAAA,MAAM,MAAA,GAAS,kBAAkB,QAAQ,CAAA;AAEzC,MAAA,QAAQ,MAAA;AAAQ,QACd,KAAK,EAAA;AAAA,QACL,KAAK,GAAA;AAAA,QACL,KAAK,GAAA;AACH,UAAA,IAAA,IAAQ,OAAO,QAAA,EAAS;AACxB,UAAA;AAAA,QAEF;AACE,UAAA,MAAM,UAAA;AAAA,YACJ,CAAA,oCAAA,EAAuC,KAAK,CAAA,OAAA,EAAU,MAAM,CAAA;AAAA,WAC9D;AAAA;AACJ,IACF;AAEA,IAAA,KAAA,CAAM,MAAmB,QAAQ,CAAA;AAAA,EACnC;AACF;AAEA,SAAS,kBAAkB,IAAA,EAAsB;AAC/C,EAAA,IAAI,OAAO,EAAA,EAAI;AAMb,IAAA,MAAM,MAAM,CAAC,IAAA;AACb,IAAA,MAAMC,WAAU,GAAA,GAAM,EAAA,EAAI,QAAA,CAAS,CAAC,EAAE,MAAA,GAAS,CAAA;AAC/C,IAAA,OAAO,CAAC,EAAA,EAAI,GAAA,EAAK,GAAG,CAAA,CAAE,KAAK,CAAC,GAAA,KAAQA,OAAAA,IAAU,GAAG,CAAA,IAAKA,OAAAA;AAAA,EACxD;AAEA,EAAA,MAAM,MAAA,GAAS,IAAA,CAAK,QAAA,CAAS,CAAC,CAAA,CAAE,MAAA;AAChC,EAAA,OAAO,CAAC,EAAA,EAAI,GAAA,EAAK,GAAG,CAAA,CAAE,KAAK,CAAC,GAAA,KAAQ,MAAA,IAAU,GAAG,CAAA,IAAK,MAAA;AACxD;;;;"}
|
|
@@ -343,7 +343,7 @@ class Operation {
|
|
|
343
343
|
static restoreFootprint = restore_footprint.restoreFootprint;
|
|
344
344
|
// These are not `xdr.Operation`s directly, but proxies for common
|
|
345
345
|
// versions of `Operation.invokeHostFunction`
|
|
346
|
-
static
|
|
346
|
+
static createDigitalWorldAssetContract = invoke_host_function.createDigitalWorldAssetContract;
|
|
347
347
|
static invokeContractFunction = invoke_host_function.invokeContractFunction;
|
|
348
348
|
static createCustomContract = invoke_host_function.createCustomContract;
|
|
349
349
|
static uploadContractWasm = invoke_host_function.uploadContractWasm;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operation.js","sources":["../../../../src/base/operation.ts"],"sourcesContent":["import { Asset } from \"./asset.js\";\nimport { LiquidityPoolAsset } from \"./liquidity_pool_asset.js\";\nimport { Claimant } from \"./claimant.js\";\nimport { StrKey } from \"./strkey.js\";\nimport { LiquidityPoolId } from \"./liquidity_pool_id.js\";\nimport xdr from \"./xdr.js\";\n\nimport { trimEnd } from \"./util/util.js\";\nimport { encodeMuxedAccountToAddress } from \"./util/decode_encode_muxed_account.js\";\n\nimport * as ops from \"./operations/index.js\";\nimport type {\n OperationRecord,\n OperationType as _OperationType,\n BaseOperation as _BaseOperation,\n CreateAccountResult,\n PaymentResult,\n PathPaymentStrictReceiveResult,\n PathPaymentStrictSendResult,\n CreatePassiveSellOfferResult,\n ManageSellOfferResult,\n ManageBuyOfferResult,\n SetOptionsResult,\n ChangeTrustResult,\n AllowTrustResult,\n AccountMergeResult,\n InflationResult,\n ManageDataResult,\n BumpSequenceResult,\n CreateClaimableBalanceResult,\n ClaimClaimableBalanceResult,\n BeginSponsoringFutureReservesResult,\n EndSponsoringFutureReservesResult,\n RevokeAccountSponsorshipResult,\n RevokeTrustlineSponsorshipResult,\n RevokeOfferSponsorshipResult,\n RevokeDataSponsorshipResult,\n RevokeClaimableBalanceSponsorshipResult,\n RevokeLiquidityPoolSponsorshipResult,\n RevokeSignerSponsorshipResult,\n ClawbackResult,\n ClawbackClaimableBalanceResult,\n SetTrustLineFlagsResult,\n LiquidityPoolDepositResult,\n LiquidityPoolWithdrawResult,\n InvokeHostFunctionResult,\n ExtendFootprintTTLResult,\n RestoreFootprintResult,\n Signer,\n} from \"./operations/types.js\";\nimport { fromXDRAmount, fromXDRPrice } from \"./util/operations.js\";\n\n/**\n * When set using `{@link Operation.setOptions}` option, requires the issuing\n * account to give other accounts permission before they can hold the issuing\n * account’s credit.\n *\n * @see [Account flags](https://docs.digitalworld.global/docs/glossary/accounts/#flags)\n */\nexport const AuthRequiredFlag = 1 << 0;\n/**\n * When set using `{@link Operation.setOptions}` option, allows the issuing\n * account to revoke its credit held by other accounts.\n *\n * @see [Account flags](https://docs.digitalworld.global/docs/glossary/accounts/#flags)\n */\nexport const AuthRevocableFlag = 1 << 1;\n/**\n * When set using `{@link Operation.setOptions}` option, then none of the\n * authorization flags can be set and the account can never be deleted.\n *\n * @see [Account flags](https://docs.digitalworld.global/docs/glossary/accounts/#flags)\n */\nexport const AuthImmutableFlag = 1 << 2;\n\n/**\n * When set using `{@link Operation.setOptions}` option, then any trustlines\n * created by this account can have a ClawbackOp operation submitted for the\n * corresponding asset.\n *\n * @see [Account flags](https://docs.digitalworld.global/docs/glossary/accounts/#flags)\n */\nexport const AuthClawbackEnabledFlag = 1 << 3;\n\n/**\n * `Operation` class represents\n * [operations](https://docs.digitalworld.global/docs/glossary/operations/) in\n * Digital World Network.\n *\n * Use one of static methods to create operations:\n * * `{@link Operation.createAccount}`\n * * `{@link Operation.payment}`\n * * `{@link Operation.pathPaymentStrictReceive}`\n * * `{@link Operation.pathPaymentStrictSend}`\n * * `{@link Operation.manageSellOffer}`\n * * `{@link Operation.manageBuyOffer}`\n * * `{@link Operation.createPassiveSellOffer}`\n * * `{@link Operation.setOptions}`\n * * `{@link Operation.changeTrust}`\n * * `{@link Operation.allowTrust}`\n * * `{@link Operation.accountMerge}`\n * * `{@link Operation.inflation}`\n * * `{@link Operation.manageData}`\n * * `{@link Operation.bumpSequence}`\n * * `{@link Operation.createClaimableBalance}`\n * * `{@link Operation.claimClaimableBalance}`\n * * `{@link Operation.beginSponsoringFutureReserves}`\n * * `{@link Operation.endSponsoringFutureReserves}`\n * * `{@link Operation.revokeAccountSponsorship}`\n * * `{@link Operation.revokeTrustlineSponsorship}`\n * * `{@link Operation.revokeOfferSponsorship}`\n * * `{@link Operation.revokeDataSponsorship}`\n * * `{@link Operation.revokeClaimableBalanceSponsorship}`\n * * `{@link Operation.revokeLiquidityPoolSponsorship}`\n * * `{@link Operation.revokeSignerSponsorship}`\n * * `{@link Operation.clawback}`\n * * `{@link Operation.clawbackClaimableBalance}`\n * * `{@link Operation.setTrustLineFlags}`\n * * `{@link Operation.liquidityPoolDeposit}`\n * * `{@link Operation.liquidityPoolWithdraw}`\n * * `{@link Operation.invokeHostFunction}`, which has the following additional\n * \"pseudo-operations\" that make building host functions easier:\n * - `{@link Operation.createStellarAssetContract}`\n * - `{@link Operation.invokeContractFunction}`\n * - `{@link Operation.createCustomContract}`\n * - `{@link Operation.uploadContractWasm}`\n * * `{@link Operation.extendFootprintTtlOp}`\n * * `{@link Operation.restoreFootprint}`\n *\n */\nexport class Operation {\n /**\n * Deconstructs the raw XDR operation object into the structured object that\n * was used to create the operation (i.e. the `opts` parameter to most ops).\n *\n * @param operation - An XDR Operation.\n */\n\n static fromXDRObject<T extends OperationRecord = OperationRecord>(\n operation: xdr.Operation<T>,\n ): T {\n const result: Record<string, unknown> = {};\n const sourceAccount = operation.sourceAccount();\n\n if (sourceAccount) {\n result.source = encodeMuxedAccountToAddress(sourceAccount);\n }\n\n const attrs: any = operation.body().value();\n const operationName: string = operation.body().switch().name;\n\n switch (operationName) {\n case \"createAccount\": {\n result.type = \"createAccount\";\n result.destination = accountIdtoAddress(attrs.destination());\n result.startingBalance = fromXDRAmount(attrs.startingBalance());\n break;\n }\n case \"payment\": {\n result.type = \"payment\";\n result.destination = encodeMuxedAccountToAddress(attrs.destination());\n result.asset = Asset.fromOperation(attrs.asset());\n result.amount = fromXDRAmount(attrs.amount());\n break;\n }\n case \"pathPaymentStrictReceive\": {\n result.type = \"pathPaymentStrictReceive\";\n result.sendAsset = Asset.fromOperation(attrs.sendAsset());\n result.sendMax = fromXDRAmount(attrs.sendMax());\n result.destination = encodeMuxedAccountToAddress(attrs.destination());\n result.destAsset = Asset.fromOperation(attrs.destAsset());\n result.destAmount = fromXDRAmount(attrs.destAmount());\n result.path = [];\n\n const path = attrs.path();\n\n Object.keys(path).forEach((pathKey) => {\n (result.path as Asset[]).push(Asset.fromOperation(path[pathKey]));\n });\n break;\n }\n case \"pathPaymentStrictSend\": {\n result.type = \"pathPaymentStrictSend\";\n result.sendAsset = Asset.fromOperation(attrs.sendAsset());\n result.sendAmount = fromXDRAmount(attrs.sendAmount());\n result.destination = encodeMuxedAccountToAddress(attrs.destination());\n result.destAsset = Asset.fromOperation(attrs.destAsset());\n result.destMin = fromXDRAmount(attrs.destMin());\n result.path = [];\n\n const path = attrs.path();\n\n Object.keys(path).forEach((pathKey) => {\n (result.path as Asset[]).push(Asset.fromOperation(path[pathKey]));\n });\n break;\n }\n case \"changeTrust\": {\n result.type = \"changeTrust\";\n\n switch (attrs.line().switch()) {\n case xdr.AssetType.assetTypePoolShare():\n result.line = LiquidityPoolAsset.fromOperation(attrs.line());\n break;\n default:\n result.line = Asset.fromOperation(attrs.line());\n break;\n }\n\n result.limit = fromXDRAmount(attrs.limit());\n break;\n }\n case \"allowTrust\": {\n result.type = \"allowTrust\";\n result.trustor = accountIdtoAddress(attrs.trustor());\n result.assetCode = attrs.asset().value().toString();\n result.assetCode = trimEnd(result.assetCode as string, \"\\0\");\n result.authorize = attrs.authorize();\n break;\n }\n case \"setOptions\": {\n result.type = \"setOptions\";\n\n if (attrs.inflationDest()) {\n result.inflationDest = accountIdtoAddress(attrs.inflationDest());\n }\n\n result.clearFlags = attrs.clearFlags();\n result.setFlags = attrs.setFlags();\n result.masterWeight = attrs.masterWeight();\n result.lowThreshold = attrs.lowThreshold();\n result.medThreshold = attrs.medThreshold();\n result.highThreshold = attrs.highThreshold();\n // home_domain is checked by iscntrl in stellar-core\n result.homeDomain =\n attrs.homeDomain() !== undefined\n ? attrs.homeDomain().toString(\"ascii\")\n : undefined;\n\n if (attrs.signer()) {\n const signer: Record<string, unknown> = {};\n const arm = attrs.signer().key().arm();\n\n if (arm === \"ed25519\") {\n signer.ed25519PublicKey = accountIdtoAddress(attrs.signer().key());\n } else if (arm === \"preAuthTx\") {\n signer.preAuthTx = attrs.signer().key().preAuthTx();\n } else if (arm === \"hashX\") {\n signer.sha256Hash = attrs.signer().key().hashX();\n } else if (arm === \"ed25519SignedPayload\") {\n const signedPayload = attrs.signer().key().ed25519SignedPayload();\n signer.ed25519SignedPayload = StrKey.encodeSignedPayload(\n signedPayload.toXDR(),\n );\n }\n\n signer.weight = attrs.signer().weight();\n result.signer = signer;\n }\n break;\n }\n // the next case intentionally falls through!\n case \"manageOffer\":\n case \"manageSellOffer\": {\n result.type = \"manageSellOffer\";\n result.selling = Asset.fromOperation(attrs.selling());\n result.buying = Asset.fromOperation(attrs.buying());\n result.amount = fromXDRAmount(attrs.amount());\n result.price = fromXDRPrice(attrs.price());\n result.offerId = attrs.offerId().toString();\n break;\n }\n case \"manageBuyOffer\": {\n result.type = \"manageBuyOffer\";\n result.selling = Asset.fromOperation(attrs.selling());\n result.buying = Asset.fromOperation(attrs.buying());\n result.buyAmount = fromXDRAmount(attrs.buyAmount());\n result.price = fromXDRPrice(attrs.price());\n result.offerId = attrs.offerId().toString();\n break;\n }\n // the next case intentionally falls through!\n case \"createPassiveOffer\":\n case \"createPassiveSellOffer\": {\n result.type = \"createPassiveSellOffer\";\n result.selling = Asset.fromOperation(attrs.selling());\n result.buying = Asset.fromOperation(attrs.buying());\n result.amount = fromXDRAmount(attrs.amount());\n result.price = fromXDRPrice(attrs.price());\n break;\n }\n case \"accountMerge\": {\n result.type = \"accountMerge\";\n result.destination = encodeMuxedAccountToAddress(attrs);\n break;\n }\n case \"manageData\": {\n result.type = \"manageData\";\n // manage_data.name is checked by iscntrl in stellar-core\n result.name = attrs.dataName().toString(\"ascii\");\n result.value = attrs.dataValue();\n break;\n }\n case \"inflation\": {\n result.type = \"inflation\";\n break;\n }\n case \"bumpSequence\": {\n result.type = \"bumpSequence\";\n result.bumpTo = attrs.bumpTo().toString();\n break;\n }\n case \"createClaimableBalance\": {\n result.type = \"createClaimableBalance\";\n result.asset = Asset.fromOperation(attrs.asset());\n result.amount = fromXDRAmount(attrs.amount());\n result.claimants = [];\n\n attrs.claimants().forEach((claimant: xdr.Claimant) => {\n (result.claimants as Claimant[]).push(Claimant.fromXDR(claimant));\n });\n break;\n }\n case \"claimClaimableBalance\": {\n result.type = \"claimClaimableBalance\";\n result.balanceId = attrs.toXDR(\"hex\");\n break;\n }\n case \"beginSponsoringFutureReserves\": {\n result.type = \"beginSponsoringFutureReserves\";\n result.sponsoredId = accountIdtoAddress(attrs.sponsoredId());\n break;\n }\n case \"endSponsoringFutureReserves\": {\n result.type = \"endSponsoringFutureReserves\";\n break;\n }\n case \"revokeSponsorship\": {\n extractRevokeSponshipDetails(attrs, result);\n break;\n }\n case \"clawback\": {\n result.type = \"clawback\";\n result.amount = fromXDRAmount(attrs.amount());\n result.from = encodeMuxedAccountToAddress(attrs.from());\n result.asset = Asset.fromOperation(attrs.asset());\n break;\n }\n case \"clawbackClaimableBalance\": {\n result.type = \"clawbackClaimableBalance\";\n result.balanceId = attrs.toXDR(\"hex\");\n break;\n }\n case \"setTrustLineFlags\": {\n result.type = \"setTrustLineFlags\";\n result.asset = Asset.fromOperation(attrs.asset());\n result.trustor = accountIdtoAddress(attrs.trustor());\n\n // Convert from the integer-bitwised flag into a sensible object that\n // indicates true/false for each flag that's on/off.\n const clears = attrs.clearFlags();\n const sets = attrs.setFlags();\n\n const mapping: Record<string, xdr.TrustLineFlags> = {\n authorized: xdr.TrustLineFlags.authorizedFlag(),\n authorizedToMaintainLiabilities:\n xdr.TrustLineFlags.authorizedToMaintainLiabilitiesFlag(),\n clawbackEnabled: xdr.TrustLineFlags.trustlineClawbackEnabledFlag(),\n };\n\n const getFlagValue = (key: string) => {\n const bit = mapping[key]?.value ?? 0;\n\n if (sets & bit) {\n return true;\n }\n\n if (clears & bit) {\n return false;\n }\n\n return undefined;\n };\n\n const flags: Record<string, boolean | undefined> = {};\n\n Object.keys(mapping).forEach((flagName) => {\n flags[flagName] = getFlagValue(flagName);\n });\n\n result.flags = flags;\n\n break;\n }\n case \"liquidityPoolDeposit\": {\n result.type = \"liquidityPoolDeposit\";\n result.liquidityPoolId = attrs.liquidityPoolId().toString(\"hex\");\n result.maxAmountA = fromXDRAmount(attrs.maxAmountA());\n result.maxAmountB = fromXDRAmount(attrs.maxAmountB());\n result.minPrice = fromXDRPrice(attrs.minPrice());\n result.maxPrice = fromXDRPrice(attrs.maxPrice());\n break;\n }\n case \"liquidityPoolWithdraw\": {\n result.type = \"liquidityPoolWithdraw\";\n result.liquidityPoolId = attrs.liquidityPoolId().toString(\"hex\");\n result.amount = fromXDRAmount(attrs.amount());\n result.minAmountA = fromXDRAmount(attrs.minAmountA());\n result.minAmountB = fromXDRAmount(attrs.minAmountB());\n break;\n }\n case \"invokeHostFunction\": {\n result.type = \"invokeHostFunction\";\n result.func = attrs.hostFunction();\n result.auth = attrs.auth() ?? [];\n break;\n }\n case \"extendFootprintTtl\": {\n result.type = \"extendFootprintTtl\";\n result.extendTo = attrs.extendTo();\n break;\n }\n case \"restoreFootprint\": {\n result.type = \"restoreFootprint\";\n break;\n }\n default: {\n throw new Error(`Unknown operation: ${operationName}`);\n }\n }\n\n return result as unknown as T;\n }\n\n // Attach all imported operations as static methods on the Operation class\n static accountMerge = ops.accountMerge;\n static allowTrust = ops.allowTrust;\n static bumpSequence = ops.bumpSequence;\n static changeTrust = ops.changeTrust;\n static createAccount = ops.createAccount;\n static createClaimableBalance = ops.createClaimableBalance;\n static claimClaimableBalance = ops.claimClaimableBalance;\n static clawbackClaimableBalance = ops.clawbackClaimableBalance;\n static createPassiveSellOffer = ops.createPassiveSellOffer;\n static inflation = ops.inflation;\n static manageData = ops.manageData;\n static manageSellOffer = ops.manageSellOffer;\n static manageBuyOffer = ops.manageBuyOffer;\n static pathPaymentStrictReceive = ops.pathPaymentStrictReceive;\n static pathPaymentStrictSend = ops.pathPaymentStrictSend;\n static payment = ops.payment;\n static setOptions = ops.setOptions;\n static beginSponsoringFutureReserves = ops.beginSponsoringFutureReserves;\n static endSponsoringFutureReserves = ops.endSponsoringFutureReserves;\n static revokeAccountSponsorship = ops.revokeAccountSponsorship;\n static revokeTrustlineSponsorship = ops.revokeTrustlineSponsorship;\n static revokeOfferSponsorship = ops.revokeOfferSponsorship;\n static revokeDataSponsorship = ops.revokeDataSponsorship;\n static revokeClaimableBalanceSponsorship =\n ops.revokeClaimableBalanceSponsorship;\n static revokeLiquidityPoolSponsorship = ops.revokeLiquidityPoolSponsorship;\n static revokeSignerSponsorship = ops.revokeSignerSponsorship;\n static clawback = ops.clawback;\n static setTrustLineFlags = ops.setTrustLineFlags;\n static liquidityPoolDeposit = ops.liquidityPoolDeposit;\n static liquidityPoolWithdraw = ops.liquidityPoolWithdraw;\n static invokeHostFunction = ops.invokeHostFunction;\n static extendFootprintTtl = ops.extendFootprintTtl;\n static restoreFootprint = ops.restoreFootprint;\n\n // These are not `xdr.Operation`s directly, but proxies for common\n // versions of `Operation.invokeHostFunction`\n static createStellarAssetContract = ops.createStellarAssetContract;\n static invokeContractFunction = ops.invokeContractFunction;\n static createCustomContract = ops.createCustomContract;\n static uploadContractWasm = ops.uploadContractWasm;\n}\n\nfunction extractRevokeSponshipDetails(\n attrs: any,\n result: Record<string, unknown>,\n) {\n switch (attrs.switch().name) {\n case \"revokeSponsorshipLedgerEntry\": {\n const ledgerKey = attrs.ledgerKey();\n\n switch (ledgerKey.switch().name) {\n case xdr.LedgerEntryType.account().name: {\n result.type = \"revokeAccountSponsorship\";\n result.account = accountIdtoAddress(ledgerKey.account().accountId());\n break;\n }\n case xdr.LedgerEntryType.trustline().name: {\n result.type = \"revokeTrustlineSponsorship\";\n result.account = accountIdtoAddress(\n ledgerKey.trustLine().accountId(),\n );\n const xdrAsset = ledgerKey.trustLine().asset();\n switch (xdrAsset.switch()) {\n case xdr.AssetType.assetTypePoolShare():\n result.asset = LiquidityPoolId.fromOperation(xdrAsset);\n break;\n default:\n result.asset = Asset.fromOperation(xdrAsset);\n break;\n }\n break;\n }\n case xdr.LedgerEntryType.offer().name: {\n result.type = \"revokeOfferSponsorship\";\n result.seller = accountIdtoAddress(ledgerKey.offer().sellerId());\n result.offerId = ledgerKey.offer().offerId().toString();\n break;\n }\n case xdr.LedgerEntryType.data().name: {\n result.type = \"revokeDataSponsorship\";\n result.account = accountIdtoAddress(ledgerKey.data().accountId());\n result.name = ledgerKey.data().dataName().toString(\"ascii\");\n break;\n }\n case xdr.LedgerEntryType.claimableBalance().name: {\n result.type = \"revokeClaimableBalanceSponsorship\";\n result.balanceId = ledgerKey\n .claimableBalance()\n .balanceId()\n .toXDR(\"hex\");\n break;\n }\n case xdr.LedgerEntryType.liquidityPool().name: {\n result.type = \"revokeLiquidityPoolSponsorship\";\n result.liquidityPoolId = ledgerKey\n .liquidityPool()\n .liquidityPoolId()\n .toString(\"hex\");\n break;\n }\n default: {\n throw new Error(`Unknown ledgerKey: ${attrs.switch().name}`);\n }\n }\n break;\n }\n case \"revokeSponsorshipSigner\": {\n result.type = \"revokeSignerSponsorship\";\n result.account = accountIdtoAddress(attrs.signer().accountId());\n result.signer = convertXDRSignerKeyToObject(attrs.signer().signerKey());\n break;\n }\n default: {\n throw new Error(`Unknown revokeSponsorship: ${attrs.switch().name}`);\n }\n }\n}\n\nfunction convertXDRSignerKeyToObject(\n signerKey: xdr.SignerKey,\n): Record<string, unknown> {\n const attrs: Record<string, unknown> = {};\n\n switch (signerKey.switch().name) {\n case xdr.SignerKeyType.signerKeyTypeEd25519().name: {\n attrs.ed25519PublicKey = StrKey.encodeEd25519PublicKey(\n signerKey.ed25519(),\n );\n break;\n }\n case xdr.SignerKeyType.signerKeyTypePreAuthTx().name: {\n attrs.preAuthTx = signerKey.preAuthTx().toString(\"hex\");\n break;\n }\n case xdr.SignerKeyType.signerKeyTypeHashX().name: {\n attrs.sha256Hash = signerKey.hashX().toString(\"hex\");\n break;\n }\n case xdr.SignerKeyType.signerKeyTypeEd25519SignedPayload().name: {\n const signedPayload = signerKey.ed25519SignedPayload();\n\n attrs.ed25519SignedPayload = StrKey.encodeSignedPayload(\n signedPayload.toXDR(),\n );\n break;\n }\n default: {\n throw new Error(`Unknown signerKey: ${signerKey.switch().name}`);\n }\n }\n\n return attrs;\n}\n\nfunction accountIdtoAddress(accountId: xdr.AccountId): string {\n return StrKey.encodeEd25519PublicKey(accountId.ed25519());\n}\n\n// Namespace merged with the Operation class to expose operation result types as\n// `Operation.CreateAccount`, `Operation.Payment`, etc. — matching the public API\n// declared in types/index.d.ts.\n// The static methods (e.g. Operation.createAccount) are defined on the class above.\n\nexport namespace Operation {\n export type BaseOperation<T extends _OperationType = _OperationType> =\n _BaseOperation<T>;\n export type CreateAccount = CreateAccountResult;\n export type Payment = PaymentResult;\n export type PathPaymentStrictReceive = PathPaymentStrictReceiveResult;\n export type PathPaymentStrictSend = PathPaymentStrictSendResult;\n export type CreatePassiveSellOffer = CreatePassiveSellOfferResult;\n export type ManageSellOffer = ManageSellOfferResult;\n export type ManageBuyOffer = ManageBuyOfferResult;\n export type SetOptions = SetOptionsResult<Signer>;\n export type ChangeTrust = ChangeTrustResult;\n export type AllowTrust = AllowTrustResult;\n export type AccountMerge = AccountMergeResult;\n export type Inflation = InflationResult;\n export type ManageData = ManageDataResult;\n export type BumpSequence = BumpSequenceResult;\n export type CreateClaimableBalance = CreateClaimableBalanceResult;\n export type ClaimClaimableBalance = ClaimClaimableBalanceResult;\n export type BeginSponsoringFutureReserves =\n BeginSponsoringFutureReservesResult;\n export type EndSponsoringFutureReserves = EndSponsoringFutureReservesResult;\n export type RevokeAccountSponsorship = RevokeAccountSponsorshipResult;\n export type RevokeTrustlineSponsorship = RevokeTrustlineSponsorshipResult;\n export type RevokeOfferSponsorship = RevokeOfferSponsorshipResult;\n export type RevokeDataSponsorship = RevokeDataSponsorshipResult;\n export type RevokeClaimableBalanceSponsorship =\n RevokeClaimableBalanceSponsorshipResult;\n export type RevokeLiquidityPoolSponsorship =\n RevokeLiquidityPoolSponsorshipResult;\n export type RevokeSignerSponsorship = RevokeSignerSponsorshipResult;\n export type Clawback = ClawbackResult;\n export type ClawbackClaimableBalance = ClawbackClaimableBalanceResult;\n export type SetTrustLineFlags = SetTrustLineFlagsResult;\n export type LiquidityPoolDeposit = LiquidityPoolDepositResult;\n export type LiquidityPoolWithdraw = LiquidityPoolWithdrawResult;\n export type InvokeHostFunction = InvokeHostFunctionResult;\n export type ExtendFootprintTTL = ExtendFootprintTTLResult;\n export type RestoreFootprint = RestoreFootprintResult;\n}\n"],"names":["encodeMuxedAccountToAddress","fromXDRAmount","Asset","xdr","LiquidityPoolAsset","trimEnd","StrKey","fromXDRPrice","claimant","Claimant","ops.accountMerge","ops.allowTrust","ops.bumpSequence","ops.changeTrust","ops.createAccount","ops.createClaimableBalance","ops.claimClaimableBalance","ops.clawbackClaimableBalance","ops.createPassiveSellOffer","ops.inflation","ops.manageData","ops.manageSellOffer","ops.manageBuyOffer","ops.pathPaymentStrictReceive","ops.pathPaymentStrictSend","ops.payment","ops.setOptions","ops.beginSponsoringFutureReserves","ops.endSponsoringFutureReserves","ops.revokeAccountSponsorship","ops.revokeTrustlineSponsorship","ops.revokeOfferSponsorship","ops.revokeDataSponsorship","ops.revokeClaimableBalanceSponsorship","ops.revokeLiquidityPoolSponsorship","ops.revokeSignerSponsorship","ops.clawback","ops.setTrustLineFlags","ops.liquidityPoolDeposit","ops.liquidityPoolWithdraw","ops.invokeHostFunction","ops.extendFootprintTtl","ops.restoreFootprint","ops.createStellarAssetContract","ops.invokeContractFunction","ops.createCustomContract","ops.uploadContractWasm","LiquidityPoolId"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"operation.js","sources":["../../../../src/base/operation.ts"],"sourcesContent":["import { Asset } from \"./asset.js\";\nimport { LiquidityPoolAsset } from \"./liquidity_pool_asset.js\";\nimport { Claimant } from \"./claimant.js\";\nimport { StrKey } from \"./strkey.js\";\nimport { LiquidityPoolId } from \"./liquidity_pool_id.js\";\nimport xdr from \"./xdr.js\";\n\nimport { trimEnd } from \"./util/util.js\";\nimport { encodeMuxedAccountToAddress } from \"./util/decode_encode_muxed_account.js\";\n\nimport * as ops from \"./operations/index.js\";\nimport type {\n OperationRecord,\n OperationType as _OperationType,\n BaseOperation as _BaseOperation,\n CreateAccountResult,\n PaymentResult,\n PathPaymentStrictReceiveResult,\n PathPaymentStrictSendResult,\n CreatePassiveSellOfferResult,\n ManageSellOfferResult,\n ManageBuyOfferResult,\n SetOptionsResult,\n ChangeTrustResult,\n AllowTrustResult,\n AccountMergeResult,\n InflationResult,\n ManageDataResult,\n BumpSequenceResult,\n CreateClaimableBalanceResult,\n ClaimClaimableBalanceResult,\n BeginSponsoringFutureReservesResult,\n EndSponsoringFutureReservesResult,\n RevokeAccountSponsorshipResult,\n RevokeTrustlineSponsorshipResult,\n RevokeOfferSponsorshipResult,\n RevokeDataSponsorshipResult,\n RevokeClaimableBalanceSponsorshipResult,\n RevokeLiquidityPoolSponsorshipResult,\n RevokeSignerSponsorshipResult,\n ClawbackResult,\n ClawbackClaimableBalanceResult,\n SetTrustLineFlagsResult,\n LiquidityPoolDepositResult,\n LiquidityPoolWithdrawResult,\n InvokeHostFunctionResult,\n ExtendFootprintTTLResult,\n RestoreFootprintResult,\n Signer,\n} from \"./operations/types.js\";\nimport { fromXDRAmount, fromXDRPrice } from \"./util/operations.js\";\n\n/**\n * When set using `{@link Operation.setOptions}` option, requires the issuing\n * account to give other accounts permission before they can hold the issuing\n * account’s credit.\n *\n * @see [Account flags](https://docs.digitalworld.global/docs/glossary/accounts/#flags)\n */\nexport const AuthRequiredFlag = 1 << 0;\n/**\n * When set using `{@link Operation.setOptions}` option, allows the issuing\n * account to revoke its credit held by other accounts.\n *\n * @see [Account flags](https://docs.digitalworld.global/docs/glossary/accounts/#flags)\n */\nexport const AuthRevocableFlag = 1 << 1;\n/**\n * When set using `{@link Operation.setOptions}` option, then none of the\n * authorization flags can be set and the account can never be deleted.\n *\n * @see [Account flags](https://docs.digitalworld.global/docs/glossary/accounts/#flags)\n */\nexport const AuthImmutableFlag = 1 << 2;\n\n/**\n * When set using `{@link Operation.setOptions}` option, then any trustlines\n * created by this account can have a ClawbackOp operation submitted for the\n * corresponding asset.\n *\n * @see [Account flags](https://docs.digitalworld.global/docs/glossary/accounts/#flags)\n */\nexport const AuthClawbackEnabledFlag = 1 << 3;\n\n/**\n * `Operation` class represents\n * [operations](https://docs.digitalworld.global/docs/glossary/operations/) in\n * Digital World Network.\n *\n * Use one of static methods to create operations:\n * * `{@link Operation.createAccount}`\n * * `{@link Operation.payment}`\n * * `{@link Operation.pathPaymentStrictReceive}`\n * * `{@link Operation.pathPaymentStrictSend}`\n * * `{@link Operation.manageSellOffer}`\n * * `{@link Operation.manageBuyOffer}`\n * * `{@link Operation.createPassiveSellOffer}`\n * * `{@link Operation.setOptions}`\n * * `{@link Operation.changeTrust}`\n * * `{@link Operation.allowTrust}`\n * * `{@link Operation.accountMerge}`\n * * `{@link Operation.inflation}`\n * * `{@link Operation.manageData}`\n * * `{@link Operation.bumpSequence}`\n * * `{@link Operation.createClaimableBalance}`\n * * `{@link Operation.claimClaimableBalance}`\n * * `{@link Operation.beginSponsoringFutureReserves}`\n * * `{@link Operation.endSponsoringFutureReserves}`\n * * `{@link Operation.revokeAccountSponsorship}`\n * * `{@link Operation.revokeTrustlineSponsorship}`\n * * `{@link Operation.revokeOfferSponsorship}`\n * * `{@link Operation.revokeDataSponsorship}`\n * * `{@link Operation.revokeClaimableBalanceSponsorship}`\n * * `{@link Operation.revokeLiquidityPoolSponsorship}`\n * * `{@link Operation.revokeSignerSponsorship}`\n * * `{@link Operation.clawback}`\n * * `{@link Operation.clawbackClaimableBalance}`\n * * `{@link Operation.setTrustLineFlags}`\n * * `{@link Operation.liquidityPoolDeposit}`\n * * `{@link Operation.liquidityPoolWithdraw}`\n * * `{@link Operation.invokeHostFunction}`, which has the following additional\n * \"pseudo-operations\" that make building host functions easier:\n * - `{@link Operation.createDigitalWorldAssetContract}`\n * - `{@link Operation.invokeContractFunction}`\n * - `{@link Operation.createCustomContract}`\n * - `{@link Operation.uploadContractWasm}`\n * * `{@link Operation.extendFootprintTtlOp}`\n * * `{@link Operation.restoreFootprint}`\n *\n */\nexport class Operation {\n /**\n * Deconstructs the raw XDR operation object into the structured object that\n * was used to create the operation (i.e. the `opts` parameter to most ops).\n *\n * @param operation - An XDR Operation.\n */\n\n static fromXDRObject<T extends OperationRecord = OperationRecord>(\n operation: xdr.Operation<T>,\n ): T {\n const result: Record<string, unknown> = {};\n const sourceAccount = operation.sourceAccount();\n\n if (sourceAccount) {\n result.source = encodeMuxedAccountToAddress(sourceAccount);\n }\n\n const attrs: any = operation.body().value();\n const operationName: string = operation.body().switch().name;\n\n switch (operationName) {\n case \"createAccount\": {\n result.type = \"createAccount\";\n result.destination = accountIdtoAddress(attrs.destination());\n result.startingBalance = fromXDRAmount(attrs.startingBalance());\n break;\n }\n case \"payment\": {\n result.type = \"payment\";\n result.destination = encodeMuxedAccountToAddress(attrs.destination());\n result.asset = Asset.fromOperation(attrs.asset());\n result.amount = fromXDRAmount(attrs.amount());\n break;\n }\n case \"pathPaymentStrictReceive\": {\n result.type = \"pathPaymentStrictReceive\";\n result.sendAsset = Asset.fromOperation(attrs.sendAsset());\n result.sendMax = fromXDRAmount(attrs.sendMax());\n result.destination = encodeMuxedAccountToAddress(attrs.destination());\n result.destAsset = Asset.fromOperation(attrs.destAsset());\n result.destAmount = fromXDRAmount(attrs.destAmount());\n result.path = [];\n\n const path = attrs.path();\n\n Object.keys(path).forEach((pathKey) => {\n (result.path as Asset[]).push(Asset.fromOperation(path[pathKey]));\n });\n break;\n }\n case \"pathPaymentStrictSend\": {\n result.type = \"pathPaymentStrictSend\";\n result.sendAsset = Asset.fromOperation(attrs.sendAsset());\n result.sendAmount = fromXDRAmount(attrs.sendAmount());\n result.destination = encodeMuxedAccountToAddress(attrs.destination());\n result.destAsset = Asset.fromOperation(attrs.destAsset());\n result.destMin = fromXDRAmount(attrs.destMin());\n result.path = [];\n\n const path = attrs.path();\n\n Object.keys(path).forEach((pathKey) => {\n (result.path as Asset[]).push(Asset.fromOperation(path[pathKey]));\n });\n break;\n }\n case \"changeTrust\": {\n result.type = \"changeTrust\";\n\n switch (attrs.line().switch()) {\n case xdr.AssetType.assetTypePoolShare():\n result.line = LiquidityPoolAsset.fromOperation(attrs.line());\n break;\n default:\n result.line = Asset.fromOperation(attrs.line());\n break;\n }\n\n result.limit = fromXDRAmount(attrs.limit());\n break;\n }\n case \"allowTrust\": {\n result.type = \"allowTrust\";\n result.trustor = accountIdtoAddress(attrs.trustor());\n result.assetCode = attrs.asset().value().toString();\n result.assetCode = trimEnd(result.assetCode as string, \"\\0\");\n result.authorize = attrs.authorize();\n break;\n }\n case \"setOptions\": {\n result.type = \"setOptions\";\n\n if (attrs.inflationDest()) {\n result.inflationDest = accountIdtoAddress(attrs.inflationDest());\n }\n\n result.clearFlags = attrs.clearFlags();\n result.setFlags = attrs.setFlags();\n result.masterWeight = attrs.masterWeight();\n result.lowThreshold = attrs.lowThreshold();\n result.medThreshold = attrs.medThreshold();\n result.highThreshold = attrs.highThreshold();\n // home_domain is checked by iscntrl in stellar-core\n result.homeDomain =\n attrs.homeDomain() !== undefined\n ? attrs.homeDomain().toString(\"ascii\")\n : undefined;\n\n if (attrs.signer()) {\n const signer: Record<string, unknown> = {};\n const arm = attrs.signer().key().arm();\n\n if (arm === \"ed25519\") {\n signer.ed25519PublicKey = accountIdtoAddress(attrs.signer().key());\n } else if (arm === \"preAuthTx\") {\n signer.preAuthTx = attrs.signer().key().preAuthTx();\n } else if (arm === \"hashX\") {\n signer.sha256Hash = attrs.signer().key().hashX();\n } else if (arm === \"ed25519SignedPayload\") {\n const signedPayload = attrs.signer().key().ed25519SignedPayload();\n signer.ed25519SignedPayload = StrKey.encodeSignedPayload(\n signedPayload.toXDR(),\n );\n }\n\n signer.weight = attrs.signer().weight();\n result.signer = signer;\n }\n break;\n }\n // the next case intentionally falls through!\n case \"manageOffer\":\n case \"manageSellOffer\": {\n result.type = \"manageSellOffer\";\n result.selling = Asset.fromOperation(attrs.selling());\n result.buying = Asset.fromOperation(attrs.buying());\n result.amount = fromXDRAmount(attrs.amount());\n result.price = fromXDRPrice(attrs.price());\n result.offerId = attrs.offerId().toString();\n break;\n }\n case \"manageBuyOffer\": {\n result.type = \"manageBuyOffer\";\n result.selling = Asset.fromOperation(attrs.selling());\n result.buying = Asset.fromOperation(attrs.buying());\n result.buyAmount = fromXDRAmount(attrs.buyAmount());\n result.price = fromXDRPrice(attrs.price());\n result.offerId = attrs.offerId().toString();\n break;\n }\n // the next case intentionally falls through!\n case \"createPassiveOffer\":\n case \"createPassiveSellOffer\": {\n result.type = \"createPassiveSellOffer\";\n result.selling = Asset.fromOperation(attrs.selling());\n result.buying = Asset.fromOperation(attrs.buying());\n result.amount = fromXDRAmount(attrs.amount());\n result.price = fromXDRPrice(attrs.price());\n break;\n }\n case \"accountMerge\": {\n result.type = \"accountMerge\";\n result.destination = encodeMuxedAccountToAddress(attrs);\n break;\n }\n case \"manageData\": {\n result.type = \"manageData\";\n // manage_data.name is checked by iscntrl in stellar-core\n result.name = attrs.dataName().toString(\"ascii\");\n result.value = attrs.dataValue();\n break;\n }\n case \"inflation\": {\n result.type = \"inflation\";\n break;\n }\n case \"bumpSequence\": {\n result.type = \"bumpSequence\";\n result.bumpTo = attrs.bumpTo().toString();\n break;\n }\n case \"createClaimableBalance\": {\n result.type = \"createClaimableBalance\";\n result.asset = Asset.fromOperation(attrs.asset());\n result.amount = fromXDRAmount(attrs.amount());\n result.claimants = [];\n\n attrs.claimants().forEach((claimant: xdr.Claimant) => {\n (result.claimants as Claimant[]).push(Claimant.fromXDR(claimant));\n });\n break;\n }\n case \"claimClaimableBalance\": {\n result.type = \"claimClaimableBalance\";\n result.balanceId = attrs.toXDR(\"hex\");\n break;\n }\n case \"beginSponsoringFutureReserves\": {\n result.type = \"beginSponsoringFutureReserves\";\n result.sponsoredId = accountIdtoAddress(attrs.sponsoredId());\n break;\n }\n case \"endSponsoringFutureReserves\": {\n result.type = \"endSponsoringFutureReserves\";\n break;\n }\n case \"revokeSponsorship\": {\n extractRevokeSponshipDetails(attrs, result);\n break;\n }\n case \"clawback\": {\n result.type = \"clawback\";\n result.amount = fromXDRAmount(attrs.amount());\n result.from = encodeMuxedAccountToAddress(attrs.from());\n result.asset = Asset.fromOperation(attrs.asset());\n break;\n }\n case \"clawbackClaimableBalance\": {\n result.type = \"clawbackClaimableBalance\";\n result.balanceId = attrs.toXDR(\"hex\");\n break;\n }\n case \"setTrustLineFlags\": {\n result.type = \"setTrustLineFlags\";\n result.asset = Asset.fromOperation(attrs.asset());\n result.trustor = accountIdtoAddress(attrs.trustor());\n\n // Convert from the integer-bitwised flag into a sensible object that\n // indicates true/false for each flag that's on/off.\n const clears = attrs.clearFlags();\n const sets = attrs.setFlags();\n\n const mapping: Record<string, xdr.TrustLineFlags> = {\n authorized: xdr.TrustLineFlags.authorizedFlag(),\n authorizedToMaintainLiabilities:\n xdr.TrustLineFlags.authorizedToMaintainLiabilitiesFlag(),\n clawbackEnabled: xdr.TrustLineFlags.trustlineClawbackEnabledFlag(),\n };\n\n const getFlagValue = (key: string) => {\n const bit = mapping[key]?.value ?? 0;\n\n if (sets & bit) {\n return true;\n }\n\n if (clears & bit) {\n return false;\n }\n\n return undefined;\n };\n\n const flags: Record<string, boolean | undefined> = {};\n\n Object.keys(mapping).forEach((flagName) => {\n flags[flagName] = getFlagValue(flagName);\n });\n\n result.flags = flags;\n\n break;\n }\n case \"liquidityPoolDeposit\": {\n result.type = \"liquidityPoolDeposit\";\n result.liquidityPoolId = attrs.liquidityPoolId().toString(\"hex\");\n result.maxAmountA = fromXDRAmount(attrs.maxAmountA());\n result.maxAmountB = fromXDRAmount(attrs.maxAmountB());\n result.minPrice = fromXDRPrice(attrs.minPrice());\n result.maxPrice = fromXDRPrice(attrs.maxPrice());\n break;\n }\n case \"liquidityPoolWithdraw\": {\n result.type = \"liquidityPoolWithdraw\";\n result.liquidityPoolId = attrs.liquidityPoolId().toString(\"hex\");\n result.amount = fromXDRAmount(attrs.amount());\n result.minAmountA = fromXDRAmount(attrs.minAmountA());\n result.minAmountB = fromXDRAmount(attrs.minAmountB());\n break;\n }\n case \"invokeHostFunction\": {\n result.type = \"invokeHostFunction\";\n result.func = attrs.hostFunction();\n result.auth = attrs.auth() ?? [];\n break;\n }\n case \"extendFootprintTtl\": {\n result.type = \"extendFootprintTtl\";\n result.extendTo = attrs.extendTo();\n break;\n }\n case \"restoreFootprint\": {\n result.type = \"restoreFootprint\";\n break;\n }\n default: {\n throw new Error(`Unknown operation: ${operationName}`);\n }\n }\n\n return result as unknown as T;\n }\n\n // Attach all imported operations as static methods on the Operation class\n static accountMerge = ops.accountMerge;\n static allowTrust = ops.allowTrust;\n static bumpSequence = ops.bumpSequence;\n static changeTrust = ops.changeTrust;\n static createAccount = ops.createAccount;\n static createClaimableBalance = ops.createClaimableBalance;\n static claimClaimableBalance = ops.claimClaimableBalance;\n static clawbackClaimableBalance = ops.clawbackClaimableBalance;\n static createPassiveSellOffer = ops.createPassiveSellOffer;\n static inflation = ops.inflation;\n static manageData = ops.manageData;\n static manageSellOffer = ops.manageSellOffer;\n static manageBuyOffer = ops.manageBuyOffer;\n static pathPaymentStrictReceive = ops.pathPaymentStrictReceive;\n static pathPaymentStrictSend = ops.pathPaymentStrictSend;\n static payment = ops.payment;\n static setOptions = ops.setOptions;\n static beginSponsoringFutureReserves = ops.beginSponsoringFutureReserves;\n static endSponsoringFutureReserves = ops.endSponsoringFutureReserves;\n static revokeAccountSponsorship = ops.revokeAccountSponsorship;\n static revokeTrustlineSponsorship = ops.revokeTrustlineSponsorship;\n static revokeOfferSponsorship = ops.revokeOfferSponsorship;\n static revokeDataSponsorship = ops.revokeDataSponsorship;\n static revokeClaimableBalanceSponsorship =\n ops.revokeClaimableBalanceSponsorship;\n static revokeLiquidityPoolSponsorship = ops.revokeLiquidityPoolSponsorship;\n static revokeSignerSponsorship = ops.revokeSignerSponsorship;\n static clawback = ops.clawback;\n static setTrustLineFlags = ops.setTrustLineFlags;\n static liquidityPoolDeposit = ops.liquidityPoolDeposit;\n static liquidityPoolWithdraw = ops.liquidityPoolWithdraw;\n static invokeHostFunction = ops.invokeHostFunction;\n static extendFootprintTtl = ops.extendFootprintTtl;\n static restoreFootprint = ops.restoreFootprint;\n\n // These are not `xdr.Operation`s directly, but proxies for common\n // versions of `Operation.invokeHostFunction`\n static createDigitalWorldAssetContract = ops.createDigitalWorldAssetContract;\n static invokeContractFunction = ops.invokeContractFunction;\n static createCustomContract = ops.createCustomContract;\n static uploadContractWasm = ops.uploadContractWasm;\n}\n\nfunction extractRevokeSponshipDetails(\n attrs: any,\n result: Record<string, unknown>,\n) {\n switch (attrs.switch().name) {\n case \"revokeSponsorshipLedgerEntry\": {\n const ledgerKey = attrs.ledgerKey();\n\n switch (ledgerKey.switch().name) {\n case xdr.LedgerEntryType.account().name: {\n result.type = \"revokeAccountSponsorship\";\n result.account = accountIdtoAddress(ledgerKey.account().accountId());\n break;\n }\n case xdr.LedgerEntryType.trustline().name: {\n result.type = \"revokeTrustlineSponsorship\";\n result.account = accountIdtoAddress(\n ledgerKey.trustLine().accountId(),\n );\n const xdrAsset = ledgerKey.trustLine().asset();\n switch (xdrAsset.switch()) {\n case xdr.AssetType.assetTypePoolShare():\n result.asset = LiquidityPoolId.fromOperation(xdrAsset);\n break;\n default:\n result.asset = Asset.fromOperation(xdrAsset);\n break;\n }\n break;\n }\n case xdr.LedgerEntryType.offer().name: {\n result.type = \"revokeOfferSponsorship\";\n result.seller = accountIdtoAddress(ledgerKey.offer().sellerId());\n result.offerId = ledgerKey.offer().offerId().toString();\n break;\n }\n case xdr.LedgerEntryType.data().name: {\n result.type = \"revokeDataSponsorship\";\n result.account = accountIdtoAddress(ledgerKey.data().accountId());\n result.name = ledgerKey.data().dataName().toString(\"ascii\");\n break;\n }\n case xdr.LedgerEntryType.claimableBalance().name: {\n result.type = \"revokeClaimableBalanceSponsorship\";\n result.balanceId = ledgerKey\n .claimableBalance()\n .balanceId()\n .toXDR(\"hex\");\n break;\n }\n case xdr.LedgerEntryType.liquidityPool().name: {\n result.type = \"revokeLiquidityPoolSponsorship\";\n result.liquidityPoolId = ledgerKey\n .liquidityPool()\n .liquidityPoolId()\n .toString(\"hex\");\n break;\n }\n default: {\n throw new Error(`Unknown ledgerKey: ${attrs.switch().name}`);\n }\n }\n break;\n }\n case \"revokeSponsorshipSigner\": {\n result.type = \"revokeSignerSponsorship\";\n result.account = accountIdtoAddress(attrs.signer().accountId());\n result.signer = convertXDRSignerKeyToObject(attrs.signer().signerKey());\n break;\n }\n default: {\n throw new Error(`Unknown revokeSponsorship: ${attrs.switch().name}`);\n }\n }\n}\n\nfunction convertXDRSignerKeyToObject(\n signerKey: xdr.SignerKey,\n): Record<string, unknown> {\n const attrs: Record<string, unknown> = {};\n\n switch (signerKey.switch().name) {\n case xdr.SignerKeyType.signerKeyTypeEd25519().name: {\n attrs.ed25519PublicKey = StrKey.encodeEd25519PublicKey(\n signerKey.ed25519(),\n );\n break;\n }\n case xdr.SignerKeyType.signerKeyTypePreAuthTx().name: {\n attrs.preAuthTx = signerKey.preAuthTx().toString(\"hex\");\n break;\n }\n case xdr.SignerKeyType.signerKeyTypeHashX().name: {\n attrs.sha256Hash = signerKey.hashX().toString(\"hex\");\n break;\n }\n case xdr.SignerKeyType.signerKeyTypeEd25519SignedPayload().name: {\n const signedPayload = signerKey.ed25519SignedPayload();\n\n attrs.ed25519SignedPayload = StrKey.encodeSignedPayload(\n signedPayload.toXDR(),\n );\n break;\n }\n default: {\n throw new Error(`Unknown signerKey: ${signerKey.switch().name}`);\n }\n }\n\n return attrs;\n}\n\nfunction accountIdtoAddress(accountId: xdr.AccountId): string {\n return StrKey.encodeEd25519PublicKey(accountId.ed25519());\n}\n\n// Namespace merged with the Operation class to expose operation result types as\n// `Operation.CreateAccount`, `Operation.Payment`, etc. — matching the public API\n// declared in types/index.d.ts.\n// The static methods (e.g. Operation.createAccount) are defined on the class above.\n\nexport namespace Operation {\n export type BaseOperation<T extends _OperationType = _OperationType> =\n _BaseOperation<T>;\n export type CreateAccount = CreateAccountResult;\n export type Payment = PaymentResult;\n export type PathPaymentStrictReceive = PathPaymentStrictReceiveResult;\n export type PathPaymentStrictSend = PathPaymentStrictSendResult;\n export type CreatePassiveSellOffer = CreatePassiveSellOfferResult;\n export type ManageSellOffer = ManageSellOfferResult;\n export type ManageBuyOffer = ManageBuyOfferResult;\n export type SetOptions = SetOptionsResult<Signer>;\n export type ChangeTrust = ChangeTrustResult;\n export type AllowTrust = AllowTrustResult;\n export type AccountMerge = AccountMergeResult;\n export type Inflation = InflationResult;\n export type ManageData = ManageDataResult;\n export type BumpSequence = BumpSequenceResult;\n export type CreateClaimableBalance = CreateClaimableBalanceResult;\n export type ClaimClaimableBalance = ClaimClaimableBalanceResult;\n export type BeginSponsoringFutureReserves =\n BeginSponsoringFutureReservesResult;\n export type EndSponsoringFutureReserves = EndSponsoringFutureReservesResult;\n export type RevokeAccountSponsorship = RevokeAccountSponsorshipResult;\n export type RevokeTrustlineSponsorship = RevokeTrustlineSponsorshipResult;\n export type RevokeOfferSponsorship = RevokeOfferSponsorshipResult;\n export type RevokeDataSponsorship = RevokeDataSponsorshipResult;\n export type RevokeClaimableBalanceSponsorship =\n RevokeClaimableBalanceSponsorshipResult;\n export type RevokeLiquidityPoolSponsorship =\n RevokeLiquidityPoolSponsorshipResult;\n export type RevokeSignerSponsorship = RevokeSignerSponsorshipResult;\n export type Clawback = ClawbackResult;\n export type ClawbackClaimableBalance = ClawbackClaimableBalanceResult;\n export type SetTrustLineFlags = SetTrustLineFlagsResult;\n export type LiquidityPoolDeposit = LiquidityPoolDepositResult;\n export type LiquidityPoolWithdraw = LiquidityPoolWithdrawResult;\n export type InvokeHostFunction = InvokeHostFunctionResult;\n export type ExtendFootprintTTL = ExtendFootprintTTLResult;\n export type RestoreFootprint = RestoreFootprintResult;\n}\n"],"names":["encodeMuxedAccountToAddress","fromXDRAmount","Asset","xdr","LiquidityPoolAsset","trimEnd","StrKey","fromXDRPrice","claimant","Claimant","ops.accountMerge","ops.allowTrust","ops.bumpSequence","ops.changeTrust","ops.createAccount","ops.createClaimableBalance","ops.claimClaimableBalance","ops.clawbackClaimableBalance","ops.createPassiveSellOffer","ops.inflation","ops.manageData","ops.manageSellOffer","ops.manageBuyOffer","ops.pathPaymentStrictReceive","ops.pathPaymentStrictSend","ops.payment","ops.setOptions","ops.beginSponsoringFutureReserves","ops.endSponsoringFutureReserves","ops.revokeAccountSponsorship","ops.revokeTrustlineSponsorship","ops.revokeOfferSponsorship","ops.revokeDataSponsorship","ops.revokeClaimableBalanceSponsorship","ops.revokeLiquidityPoolSponsorship","ops.revokeSignerSponsorship","ops.clawback","ops.setTrustLineFlags","ops.liquidityPoolDeposit","ops.liquidityPoolWithdraw","ops.invokeHostFunction","ops.extendFootprintTtl","ops.restoreFootprint","ops.createDigitalWorldAssetContract","ops.invokeContractFunction","ops.createCustomContract","ops.uploadContractWasm","LiquidityPoolId"],"mappings":"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"}
|
|
@@ -91,7 +91,7 @@ function createCustomContract(opts) {
|
|
|
91
91
|
...opts.auth !== void 0 && { auth: opts.auth }
|
|
92
92
|
});
|
|
93
93
|
}
|
|
94
|
-
function
|
|
94
|
+
function createDigitalWorldAssetContract(opts) {
|
|
95
95
|
let asset$1 = opts.asset;
|
|
96
96
|
if (typeof asset$1 === "string") {
|
|
97
97
|
const parts = asset$1.split(":");
|
|
@@ -136,7 +136,7 @@ function getSalty() {
|
|
|
136
136
|
}
|
|
137
137
|
|
|
138
138
|
exports.createCustomContract = createCustomContract;
|
|
139
|
-
exports.
|
|
139
|
+
exports.createDigitalWorldAssetContract = createDigitalWorldAssetContract;
|
|
140
140
|
exports.invokeContractFunction = invokeContractFunction;
|
|
141
141
|
exports.invokeHostFunction = invokeHostFunction;
|
|
142
142
|
exports.uploadContractWasm = uploadContractWasm;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invoke_host_function.js","sources":["../../../../../src/base/operations/invoke_host_function.ts"],"sourcesContent":["import xdr from \"../xdr.js\";\n\nimport { Keypair } from \"../keypair.js\";\nimport { Address } from \"../address.js\";\nimport { Asset } from \"../asset.js\";\nimport {\n CreateCustomContractOpts,\n CreateStellarAssetContractOpts,\n InvokeContractFunctionOpts,\n InvokeHostFunctionOpts,\n InvokeHostFunctionResult,\n OperationAttributes,\n UploadContractWasmOpts,\n} from \"./types.js\";\nimport { setSourceAccount } from \"../util/operations.js\";\n\n/**\n * Invokes a single smart contract host function.\n *\n *\n * @param opts - options object\n * - `func`: host function to execute (with its wrapped parameters)\n * - `auth`: list outlining the tree of authorizations required for the call\n * - `source`: an optional source account\n *\n * @see https://soroban.stellar.org/docs/fundamentals-and-concepts/invoking-contracts-with-transactions#function\n * @see Operation.invokeContractFunction\n * @see Operation.createCustomContract\n * @see Operation.createStellarAssetContract\n * @see Operation.uploadContractWasm\n * @see Contract.call\n */\nexport function invokeHostFunction(\n opts: InvokeHostFunctionOpts,\n): xdr.Operation<InvokeHostFunctionResult> {\n if (!opts.func) {\n throw new TypeError(\n `host function invocation ('func') required (got ${JSON.stringify(opts)})`,\n );\n }\n\n if (\n opts.func.switch().value ===\n xdr.HostFunctionType.hostFunctionTypeInvokeContract().value\n ) {\n // Ensure that there are no claimable balance or liquidity pool IDs in the\n // invocation because those are not allowed.\n opts.func\n .invokeContract()\n .args()\n .forEach((arg) => {\n let scv: Address;\n try {\n scv = Address.fromScVal(arg);\n } catch {\n // swallow non-Address errors\n return;\n }\n\n switch (scv.type) {\n case \"claimableBalance\":\n case \"liquidityPool\":\n throw new TypeError(\n `claimable balances and liquidity pools cannot be arguments to invokeHostFunction`,\n );\n default:\n }\n });\n }\n\n const invokeHostFunctionOp = new xdr.InvokeHostFunctionOp({\n hostFunction: opts.func,\n auth: opts.auth || [],\n });\n\n const opAttributes: OperationAttributes = {\n sourceAccount: null,\n body: xdr.OperationBody.invokeHostFunction(invokeHostFunctionOp),\n };\n setSourceAccount(opAttributes, opts);\n\n return new xdr.Operation(opAttributes);\n}\n\n/**\n * Returns an operation that invokes a contract function.\n *\n *\n * @param opts - the set of parameters\n * - `contract`: a strkey-fied contract address (`C...`)\n * - `function`: the name of the contract fn to invoke\n * - `args`: parameters to pass to the function invocation\n * - `auth`: an optional list outlining the tree of authorizations required for the call\n * - `source`: an optional source account\n *\n * @see Operation.invokeHostFunction\n * @see Contract.call\n * @see Address\n */\nexport function invokeContractFunction(\n opts: InvokeContractFunctionOpts,\n): xdr.Operation<InvokeHostFunctionResult> {\n const c = new Address(opts.contract);\n\n if (c.type !== \"contract\") {\n throw new TypeError(\n `expected contract strkey instance, got ${c.toString()}`,\n );\n }\n\n return invokeHostFunction({\n func: xdr.HostFunction.hostFunctionTypeInvokeContract(\n new xdr.InvokeContractArgs({\n contractAddress: c.toScAddress(),\n functionName: opts.function,\n args: opts.args,\n }),\n ),\n ...(opts.source !== undefined && { source: opts.source }),\n ...(opts.auth !== undefined && { auth: opts.auth }),\n });\n}\n\n/**\n * Returns an operation that creates a custom WASM contract and atomically\n * invokes its constructor.\n *\n *\n * @param opts - the set of parameters\n * - `address`: the contract uploader address\n * - `wasmHash`: the SHA-256 hash of the contract WASM you're uploading\n * - `constructorArgs`: the optional parameters to pass to the constructor\n * - `salt`: an optional, 32-byte salt to distinguish deployment instances\n * - `auth`: an optional list outlining the tree of authorizations required for the call\n * - `source`: an optional source account\n *\n * @see https://soroban.stellar.org/docs/fundamentals-and-concepts/invoking-contracts-with-transactions#function\n */\nexport function createCustomContract(\n opts: CreateCustomContractOpts,\n): xdr.Operation<InvokeHostFunctionResult> {\n const salt = Buffer.from(opts.salt || getSalty());\n\n if (!opts.wasmHash || opts.wasmHash.length !== 32) {\n throw new TypeError(\n `expected hash(contract WASM) in 'opts.wasmHash', got ${String(opts.wasmHash)}`,\n );\n }\n\n if (salt.length !== 32) {\n throw new TypeError(\n `expected 32-byte salt in 'opts.salt', got ${String(opts.salt)}`,\n );\n }\n\n return invokeHostFunction({\n func: xdr.HostFunction.hostFunctionTypeCreateContractV2(\n new xdr.CreateContractArgsV2({\n executable: xdr.ContractExecutable.contractExecutableWasm(\n Buffer.from(opts.wasmHash),\n ),\n contractIdPreimage:\n xdr.ContractIdPreimage.contractIdPreimageFromAddress(\n new xdr.ContractIdPreimageFromAddress({\n address: opts.address.toScAddress(),\n salt,\n }),\n ),\n constructorArgs: opts.constructorArgs ?? [],\n }),\n ),\n ...(opts.source !== undefined && { source: opts.source }),\n ...(opts.auth !== undefined && { auth: opts.auth }),\n });\n}\n\n/**\n * Returns an operation that wraps a Stellar asset into a token contract.\n *\n *\n * @param opts - the set of parameters\n * - `asset`: the Stellar asset to wrap, either as an {@link Asset} object or in canonical form (SEP-11, `code:issuer`)\n * - `auth`: an optional list outlining the tree of authorizations required for the upload\n * - `source`: an optional source account\n *\n * @see https://stellar.org/protocol/sep-11#alphanum4-alphanum12\n * @see https://soroban.stellar.org/docs/fundamentals-and-concepts/invoking-contracts-with-transactions\n * @see https://soroban.stellar.org/docs/advanced-tutorials/stellar-asset-contract\n * @see Operation.invokeHostFunction\n */\nexport function createStellarAssetContract(\n opts: CreateStellarAssetContractOpts,\n): xdr.Operation<InvokeHostFunctionResult> {\n let asset = opts.asset;\n\n if (typeof asset === \"string\") {\n const parts = asset.split(\":\");\n const code = parts[0];\n if (code === undefined) {\n throw new TypeError(\n `expected Asset in 'opts.asset', got ${String(opts.asset)}`,\n );\n }\n asset = new Asset(code, parts[1]); // handles 'xlm' by default\n }\n\n if (!(asset instanceof Asset)) {\n throw new TypeError(\n `expected Asset in 'opts.asset', got ${String(opts.asset)}`,\n );\n }\n\n return invokeHostFunction({\n func: xdr.HostFunction.hostFunctionTypeCreateContract(\n new xdr.CreateContractArgs({\n executable: xdr.ContractExecutable.contractExecutableStellarAsset(),\n contractIdPreimage: xdr.ContractIdPreimage.contractIdPreimageFromAsset(\n asset.toXDRObject(),\n ),\n }),\n ),\n auth: opts.auth || [],\n ...(opts.source !== undefined && { source: opts.source }),\n });\n}\n\n/**\n * Returns an operation that uploads WASM for a contract.\n *\n *\n * @param opts - the set of parameters\n * - `wasm`: a WASM blob to upload to the ledger\n * - `auth`: an optional list outlining the tree of authorizations required for the upload\n * - `source`: an optional source account\n *\n * @see https://soroban.stellar.org/docs/fundamentals-and-concepts/invoking-contracts-with-transactions#function\n */\nexport function uploadContractWasm(\n opts: UploadContractWasmOpts,\n): xdr.Operation<InvokeHostFunctionResult> {\n return invokeHostFunction({\n func: xdr.HostFunction.hostFunctionTypeUploadContractWasm(\n Buffer.from(opts.wasm), // coalesce so we can drop `Buffer` someday\n ),\n auth: opts.auth || [],\n ...(opts.source !== undefined && { source: opts.source }),\n });\n}\n\n/* Returns a random 256-bit \"salt\" value. */\nfunction getSalty(): Buffer {\n return Keypair.random().xdrPublicKey().value(); // ed25519 is 256 bits, too\n}\n"],"names":["xdr","Address","setSourceAccount","Buffer","asset","Asset","Keypair"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"invoke_host_function.js","sources":["../../../../../src/base/operations/invoke_host_function.ts"],"sourcesContent":["import xdr from \"../xdr.js\";\n\nimport { Keypair } from \"../keypair.js\";\nimport { Address } from \"../address.js\";\nimport { Asset } from \"../asset.js\";\nimport {\n CreateCustomContractOpts,\n CreateDigitalWorldAssetContractOpts,\n InvokeContractFunctionOpts,\n InvokeHostFunctionOpts,\n InvokeHostFunctionResult,\n OperationAttributes,\n UploadContractWasmOpts,\n} from \"./types.js\";\nimport { setSourceAccount } from \"../util/operations.js\";\n\n/**\n * Invokes a single smart contract host function.\n *\n *\n * @param opts - options object\n * - `func`: host function to execute (with its wrapped parameters)\n * - `auth`: list outlining the tree of authorizations required for the call\n * - `source`: an optional source account\n *\n * @see https://soroban.stellar.org/docs/fundamentals-and-concepts/invoking-contracts-with-transactions#function\n * @see Operation.invokeContractFunction\n * @see Operation.createCustomContract\n * @see Operation.createDigitalWorldAssetContract\n * @see Operation.uploadContractWasm\n * @see Contract.call\n */\nexport function invokeHostFunction(\n opts: InvokeHostFunctionOpts,\n): xdr.Operation<InvokeHostFunctionResult> {\n if (!opts.func) {\n throw new TypeError(\n `host function invocation ('func') required (got ${JSON.stringify(opts)})`,\n );\n }\n\n if (\n opts.func.switch().value ===\n xdr.HostFunctionType.hostFunctionTypeInvokeContract().value\n ) {\n // Ensure that there are no claimable balance or liquidity pool IDs in the\n // invocation because those are not allowed.\n opts.func\n .invokeContract()\n .args()\n .forEach((arg) => {\n let scv: Address;\n try {\n scv = Address.fromScVal(arg);\n } catch {\n // swallow non-Address errors\n return;\n }\n\n switch (scv.type) {\n case \"claimableBalance\":\n case \"liquidityPool\":\n throw new TypeError(\n `claimable balances and liquidity pools cannot be arguments to invokeHostFunction`,\n );\n default:\n }\n });\n }\n\n const invokeHostFunctionOp = new xdr.InvokeHostFunctionOp({\n hostFunction: opts.func,\n auth: opts.auth || [],\n });\n\n const opAttributes: OperationAttributes = {\n sourceAccount: null,\n body: xdr.OperationBody.invokeHostFunction(invokeHostFunctionOp),\n };\n setSourceAccount(opAttributes, opts);\n\n return new xdr.Operation(opAttributes);\n}\n\n/**\n * Returns an operation that invokes a contract function.\n *\n *\n * @param opts - the set of parameters\n * - `contract`: a strkey-fied contract address (`C...`)\n * - `function`: the name of the contract fn to invoke\n * - `args`: parameters to pass to the function invocation\n * - `auth`: an optional list outlining the tree of authorizations required for the call\n * - `source`: an optional source account\n *\n * @see Operation.invokeHostFunction\n * @see Contract.call\n * @see Address\n */\nexport function invokeContractFunction(\n opts: InvokeContractFunctionOpts,\n): xdr.Operation<InvokeHostFunctionResult> {\n const c = new Address(opts.contract);\n\n if (c.type !== \"contract\") {\n throw new TypeError(\n `expected contract strkey instance, got ${c.toString()}`,\n );\n }\n\n return invokeHostFunction({\n func: xdr.HostFunction.hostFunctionTypeInvokeContract(\n new xdr.InvokeContractArgs({\n contractAddress: c.toScAddress(),\n functionName: opts.function,\n args: opts.args,\n }),\n ),\n ...(opts.source !== undefined && { source: opts.source }),\n ...(opts.auth !== undefined && { auth: opts.auth }),\n });\n}\n\n/**\n * Returns an operation that creates a custom WASM contract and atomically\n * invokes its constructor.\n *\n *\n * @param opts - the set of parameters\n * - `address`: the contract uploader address\n * - `wasmHash`: the SHA-256 hash of the contract WASM you're uploading\n * - `constructorArgs`: the optional parameters to pass to the constructor\n * - `salt`: an optional, 32-byte salt to distinguish deployment instances\n * - `auth`: an optional list outlining the tree of authorizations required for the call\n * - `source`: an optional source account\n *\n * @see https://soroban.stellar.org/docs/fundamentals-and-concepts/invoking-contracts-with-transactions#function\n */\nexport function createCustomContract(\n opts: CreateCustomContractOpts,\n): xdr.Operation<InvokeHostFunctionResult> {\n const salt = Buffer.from(opts.salt || getSalty());\n\n if (!opts.wasmHash || opts.wasmHash.length !== 32) {\n throw new TypeError(\n `expected hash(contract WASM) in 'opts.wasmHash', got ${String(opts.wasmHash)}`,\n );\n }\n\n if (salt.length !== 32) {\n throw new TypeError(\n `expected 32-byte salt in 'opts.salt', got ${String(opts.salt)}`,\n );\n }\n\n return invokeHostFunction({\n func: xdr.HostFunction.hostFunctionTypeCreateContractV2(\n new xdr.CreateContractArgsV2({\n executable: xdr.ContractExecutable.contractExecutableWasm(\n Buffer.from(opts.wasmHash),\n ),\n contractIdPreimage:\n xdr.ContractIdPreimage.contractIdPreimageFromAddress(\n new xdr.ContractIdPreimageFromAddress({\n address: opts.address.toScAddress(),\n salt,\n }),\n ),\n constructorArgs: opts.constructorArgs ?? [],\n }),\n ),\n ...(opts.source !== undefined && { source: opts.source }),\n ...(opts.auth !== undefined && { auth: opts.auth }),\n });\n}\n\n/**\n * Returns an operation that wraps a Digital World asset into a token contract.\n *\n *\n * @param opts - the set of parameters\n * - `asset`: the Digital World asset to wrap, either as an {@link Asset} object or in canonical form (SEP-11, `code:issuer`)\n * - `auth`: an optional list outlining the tree of authorizations required for the upload\n * - `source`: an optional source account\n *\n * @see https://stellar.org/protocol/sep-11#alphanum4-alphanum12\n * @see https://soroban.stellar.org/docs/fundamentals-and-concepts/invoking-contracts-with-transactions\n * @see https://soroban.stellar.org/docs/advanced-tutorials/stellar-asset-contract\n * @see Operation.invokeHostFunction\n */\nexport function createDigitalWorldAssetContract(\n opts: CreateDigitalWorldAssetContractOpts,\n): xdr.Operation<InvokeHostFunctionResult> {\n let asset = opts.asset;\n\n if (typeof asset === \"string\") {\n const parts = asset.split(\":\");\n const code = parts[0];\n if (code === undefined) {\n throw new TypeError(\n `expected Asset in 'opts.asset', got ${String(opts.asset)}`,\n );\n }\n asset = new Asset(code, parts[1]); // handles 'xlm' by default\n }\n\n if (!(asset instanceof Asset)) {\n throw new TypeError(\n `expected Asset in 'opts.asset', got ${String(opts.asset)}`,\n );\n }\n\n return invokeHostFunction({\n func: xdr.HostFunction.hostFunctionTypeCreateContract(\n new xdr.CreateContractArgs({\n executable: xdr.ContractExecutable.contractExecutableStellarAsset(),\n contractIdPreimage: xdr.ContractIdPreimage.contractIdPreimageFromAsset(\n asset.toXDRObject(),\n ),\n }),\n ),\n auth: opts.auth || [],\n ...(opts.source !== undefined && { source: opts.source }),\n });\n}\n\n/**\n * Returns an operation that uploads WASM for a contract.\n *\n *\n * @param opts - the set of parameters\n * - `wasm`: a WASM blob to upload to the ledger\n * - `auth`: an optional list outlining the tree of authorizations required for the upload\n * - `source`: an optional source account\n *\n * @see https://soroban.stellar.org/docs/fundamentals-and-concepts/invoking-contracts-with-transactions#function\n */\nexport function uploadContractWasm(\n opts: UploadContractWasmOpts,\n): xdr.Operation<InvokeHostFunctionResult> {\n return invokeHostFunction({\n func: xdr.HostFunction.hostFunctionTypeUploadContractWasm(\n Buffer.from(opts.wasm), // coalesce so we can drop `Buffer` someday\n ),\n auth: opts.auth || [],\n ...(opts.source !== undefined && { source: opts.source }),\n });\n}\n\n/* Returns a random 256-bit \"salt\" value. */\nfunction getSalty(): Buffer {\n return Keypair.random().xdrPublicKey().value(); // ed25519 is 256 bits, too\n}\n"],"names":["xdr","Address","setSourceAccount","Buffer","asset","Asset","Keypair"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"revoke_sponsorship.js","sources":["../../../../../src/base/operations/revoke_sponsorship.ts"],"sourcesContent":["import xdr from \"../xdr.js\";\nimport { StrKey } from \"../strkey.js\";\nimport { Keypair } from \"../keypair.js\";\nimport { Asset } from \"../asset.js\";\nimport { LiquidityPoolId } from \"../liquidity_pool_id.js\";\nimport {\n RevokeAccountSponsorshipOpts,\n RevokeAccountSponsorshipResult,\n RevokeTrustlineSponsorshipOpts,\n RevokeTrustlineSponsorshipResult,\n RevokeOfferSponsorshipOpts,\n RevokeOfferSponsorshipResult,\n RevokeDataSponsorshipOpts,\n RevokeDataSponsorshipResult,\n RevokeClaimableBalanceSponsorshipOpts,\n RevokeClaimableBalanceSponsorshipResult,\n RevokeLiquidityPoolSponsorshipOpts,\n RevokeLiquidityPoolSponsorshipResult,\n RevokeSignerSponsorshipOpts,\n RevokeSignerSponsorshipResult,\n OperationAttributes,\n} from \"./types.js\";\nimport { setSourceAccount } from \"../util/operations.js\";\n\n/**\n * Create a \"revoke sponsorship\" operation for an account.\n *\n * @param opts - Options object\n * - `account`: The sponsored account ID.\n * - `source`: The source account for the operation. Defaults to the transaction's source account.\n *\n * @example\n * ```ts\n * const op = Operation.revokeAccountSponsorship({\n * account: 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7'\n * });\n * ```\n */\nexport function revokeAccountSponsorship(\n opts: RevokeAccountSponsorshipOpts = {} as RevokeAccountSponsorshipOpts,\n): xdr.Operation<RevokeAccountSponsorshipResult> {\n if (!StrKey.isValidEd25519PublicKey(opts.account)) {\n throw new Error(\"account is invalid\");\n }\n\n const ledgerKey = xdr.LedgerKey.account(\n new xdr.LedgerKeyAccount({\n accountId: Keypair.fromPublicKey(opts.account).xdrAccountId(),\n }),\n );\n const op = xdr.RevokeSponsorshipOp.revokeSponsorshipLedgerEntry(ledgerKey);\n\n const opAttributes: OperationAttributes = {\n sourceAccount: null,\n body: xdr.OperationBody.revokeSponsorship(op),\n };\n setSourceAccount(opAttributes, opts);\n\n return new xdr.Operation(opAttributes);\n}\n\n/**\n * Create a \"revoke sponsorship\" operation for a trustline.\n *\n * @param opts - Options object\n * - `account`: The account ID which owns the trustline.\n * - `asset`: The trustline asset.\n * - `source`: The source account for the operation. Defaults to the transaction's source account.\n *\n * @example\n * ```ts\n * const op = Operation.revokeTrustlineSponsorship({\n * account: 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7',\n * asset: new StellarBase.LiquidityPoolId(\n * 'USDUSD',\n * 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7'\n * )\n * });\n * ```\n */\nexport function revokeTrustlineSponsorship(\n opts: RevokeTrustlineSponsorshipOpts = {} as RevokeTrustlineSponsorshipOpts,\n): xdr.Operation<RevokeTrustlineSponsorshipResult> {\n if (!StrKey.isValidEd25519PublicKey(opts.account)) {\n throw new Error(\"account is invalid\");\n }\n\n let asset: xdr.TrustLineAsset;\n\n if (opts.asset instanceof Asset) {\n asset = opts.asset.toTrustLineXDRObject();\n } else if (opts.asset instanceof LiquidityPoolId) {\n asset = opts.asset.toXDRObject();\n } else {\n throw new TypeError(\"asset must be an Asset or LiquidityPoolId\");\n }\n\n const ledgerKey = xdr.LedgerKey.trustline(\n new xdr.LedgerKeyTrustLine({\n accountId: Keypair.fromPublicKey(opts.account).xdrAccountId(),\n asset,\n }),\n );\n const op = xdr.RevokeSponsorshipOp.revokeSponsorshipLedgerEntry(ledgerKey);\n\n const opAttributes: OperationAttributes = {\n sourceAccount: null,\n body: xdr.OperationBody.revokeSponsorship(op),\n };\n setSourceAccount(opAttributes, opts);\n\n return new xdr.Operation(opAttributes);\n}\n\n/**\n * Create a \"revoke sponsorship\" operation for an offer.\n *\n * @param opts - Options object\n * - `seller`: The account ID which created the offer.\n * - `offerId`: The offer ID.\n * - `source`: The source account for the operation. Defaults to the transaction's source account.\n *\n * @example\n * ```ts\n * const op = Operation.revokeOfferSponsorship({\n * seller: 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7',\n * offerId: '1234'\n * });\n * ```\n */\nexport function revokeOfferSponsorship(\n opts: RevokeOfferSponsorshipOpts = {} as RevokeOfferSponsorshipOpts,\n): xdr.Operation<RevokeOfferSponsorshipResult> {\n if (!StrKey.isValidEd25519PublicKey(opts.seller)) {\n throw new Error(\"seller is invalid\");\n }\n\n if (typeof opts.offerId !== \"string\") {\n throw new Error(\"offerId is invalid\");\n }\n\n const ledgerKey = xdr.LedgerKey.offer(\n new xdr.LedgerKeyOffer({\n sellerId: Keypair.fromPublicKey(opts.seller).xdrAccountId(),\n offerId: xdr.Int64.fromString(opts.offerId),\n }),\n );\n const op = xdr.RevokeSponsorshipOp.revokeSponsorshipLedgerEntry(ledgerKey);\n\n const opAttributes: OperationAttributes = {\n sourceAccount: null,\n body: xdr.OperationBody.revokeSponsorship(op),\n };\n setSourceAccount(opAttributes, opts);\n\n return new xdr.Operation(opAttributes);\n}\n\n/**\n * Create a \"revoke sponsorship\" operation for a data entry.\n *\n * @param opts - Options object\n * - `account`: The account ID which owns the data entry.\n * - `name`: The name of the data entry.\n * - `source`: The source account for the operation. Defaults to the transaction's source account.\n *\n * @example\n * ```ts\n * const op = Operation.revokeDataSponsorship({\n * account: 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7',\n * name: 'foo'\n * });\n * ```\n */\nexport function revokeDataSponsorship(\n opts: RevokeDataSponsorshipOpts = {} as RevokeDataSponsorshipOpts,\n): xdr.Operation<RevokeDataSponsorshipResult> {\n if (!StrKey.isValidEd25519PublicKey(opts.account)) {\n throw new Error(\"account is invalid\");\n }\n\n if (typeof opts.name !== \"string\" || opts.name.length > 64) {\n throw new Error(\"name must be a string, up to 64 characters\");\n }\n\n const ledgerKey = xdr.LedgerKey.data(\n new xdr.LedgerKeyData({\n accountId: Keypair.fromPublicKey(opts.account).xdrAccountId(),\n dataName: opts.name,\n }),\n );\n const op = xdr.RevokeSponsorshipOp.revokeSponsorshipLedgerEntry(ledgerKey);\n\n const opAttributes: OperationAttributes = {\n sourceAccount: null,\n body: xdr.OperationBody.revokeSponsorship(op),\n };\n setSourceAccount(opAttributes, opts);\n\n return new xdr.Operation(opAttributes);\n}\n\n/**\n * Create a \"revoke sponsorship\" operation for a claimable balance.\n *\n * @param opts - Options object\n * - `balanceId`: The sponsored claimable balance ID.\n * - `source`: The source account for the operation. Defaults to the transaction's source account.\n *\n * @example\n * ```ts\n * const op = Operation.revokeClaimableBalanceSponsorship({\n * balanceId: '00000000da0d57da7d4850e7fc10d2a9d0ebc731f7afb40574c03395b17d49149b91f5be',\n * });\n * ```\n */\nexport function revokeClaimableBalanceSponsorship(\n opts: RevokeClaimableBalanceSponsorshipOpts = {} as RevokeClaimableBalanceSponsorshipOpts,\n): xdr.Operation<RevokeClaimableBalanceSponsorshipResult> {\n if (typeof opts.balanceId !== \"string\") {\n throw new Error(\"balanceId is invalid\");\n }\n\n const ledgerKey = xdr.LedgerKey.claimableBalance(\n new xdr.LedgerKeyClaimableBalance({\n balanceId: xdr.ClaimableBalanceId.fromXDR(opts.balanceId, \"hex\"),\n }),\n );\n const op = xdr.RevokeSponsorshipOp.revokeSponsorshipLedgerEntry(ledgerKey);\n\n const opAttributes: OperationAttributes = {\n sourceAccount: null,\n body: xdr.OperationBody.revokeSponsorship(op),\n };\n setSourceAccount(opAttributes, opts);\n\n return new xdr.Operation(opAttributes);\n}\n\n/**\n * Creates a \"revoke sponsorship\" operation for a liquidity pool.\n *\n * @param opts - Options object.\n * - `liquidityPoolId`: The sponsored liquidity pool ID in 'hex' string.\n * - `source`: The source account for the operation. Defaults to the transaction's source account.\n *\n * @example\n * ```ts\n * const op = Operation.revokeLiquidityPoolSponsorship({\n * liquidityPoolId: 'dd7b1ab831c273310ddbec6f97870aa83c2fbd78ce22aded37ecbf4f3380fac7',\n * });\n * ```\n */\nexport function revokeLiquidityPoolSponsorship(\n opts: RevokeLiquidityPoolSponsorshipOpts = {} as RevokeLiquidityPoolSponsorshipOpts,\n): xdr.Operation<RevokeLiquidityPoolSponsorshipResult> {\n if (typeof opts.liquidityPoolId !== \"string\") {\n throw new Error(\"liquidityPoolId is invalid\");\n }\n\n const ledgerKey = xdr.LedgerKey.liquidityPool(\n new xdr.LedgerKeyLiquidityPool({\n liquidityPoolId: Buffer.from(\n opts.liquidityPoolId,\n \"hex\",\n ) as unknown as xdr.PoolId,\n }),\n );\n const op = xdr.RevokeSponsorshipOp.revokeSponsorshipLedgerEntry(ledgerKey);\n\n const opAttributes: OperationAttributes = {\n sourceAccount: null,\n body: xdr.OperationBody.revokeSponsorship(op),\n };\n setSourceAccount(opAttributes, opts);\n\n return new xdr.Operation(opAttributes);\n}\n\n/**\n * Create a \"revoke sponsorship\" operation for a signer.\n *\n * @param opts - Options object\n * - `account`: The account ID where the signer sponsorship is being removed from.\n * - `signer`: The signer whose sponsorship is being removed. Exactly one of the following must be set:\n * - `signer.ed25519PublicKey`: (optional) The ed25519 public key of the signer.\n * - `signer.sha256Hash`: (optional) sha256 hash (Buffer or hex string).\n * - `signer.preAuthTx`: (optional) Hash (Buffer or hex string) of transaction.\n * - `signer.ed25519SignedPayload`: (optional) Signed payload signer (StrKey P... address).\n * - `source`: The source account for the operation. Defaults to the transaction's source account.\n *\n * @example\n * ```ts\n * const op = Operation.revokeSignerSponsorship({\n * account: 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7',\n * signer: {\n * ed25519PublicKey: 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ'\n * }\n * })\n * ```\n */\nexport function revokeSignerSponsorship(\n opts: RevokeSignerSponsorshipOpts = {} as RevokeSignerSponsorshipOpts,\n): xdr.Operation<RevokeSignerSponsorshipResult> {\n if (!StrKey.isValidEd25519PublicKey(opts.account)) {\n throw new Error(\"account is invalid\");\n }\n\n let key: xdr.SignerKey;\n\n if (opts.signer.ed25519PublicKey) {\n if (!StrKey.isValidEd25519PublicKey(opts.signer.ed25519PublicKey)) {\n throw new Error(\"signer.ed25519PublicKey is invalid.\");\n }\n const rawKey = StrKey.decodeEd25519PublicKey(opts.signer.ed25519PublicKey);\n key = xdr.SignerKey.signerKeyTypeEd25519(rawKey);\n } else if (opts.signer.preAuthTx) {\n let buffer: Buffer;\n\n if (typeof opts.signer.preAuthTx === \"string\") {\n buffer = Buffer.from(opts.signer.preAuthTx, \"hex\");\n } else {\n buffer = opts.signer.preAuthTx;\n }\n\n if (!(Buffer.isBuffer(buffer) && buffer.length === 32)) {\n throw new Error(\"signer.preAuthTx must be 32 bytes Buffer.\");\n }\n\n key = xdr.SignerKey.signerKeyTypePreAuthTx(buffer);\n } else if (opts.signer.sha256Hash) {\n let buffer: Buffer;\n\n if (typeof opts.signer.sha256Hash === \"string\") {\n buffer = Buffer.from(opts.signer.sha256Hash, \"hex\");\n } else {\n buffer = opts.signer.sha256Hash;\n }\n\n if (!(Buffer.isBuffer(buffer) && buffer.length === 32)) {\n throw new Error(\"signer.sha256Hash must be 32 bytes Buffer.\");\n }\n\n key = xdr.SignerKey.signerKeyTypeHashX(buffer);\n } else if (opts.signer.ed25519SignedPayload) {\n if (!StrKey.isValidSignedPayload(opts.signer.ed25519SignedPayload)) {\n throw new Error(\"signer.ed25519SignedPayload is invalid.\");\n }\n\n const rawPayload = StrKey.decodeSignedPayload(\n opts.signer.ed25519SignedPayload,\n );\n\n const signedPayloadXdr =\n xdr.SignerKeyEd25519SignedPayload.fromXDR(rawPayload);\n\n key = xdr.SignerKey.signerKeyTypeEd25519SignedPayload(signedPayloadXdr);\n } else {\n throw new Error(\"signer is invalid\");\n }\n\n const signer = new xdr.RevokeSponsorshipOpSigner({\n accountId: Keypair.fromPublicKey(opts.account).xdrAccountId(),\n signerKey: key,\n });\n\n const op = xdr.RevokeSponsorshipOp.revokeSponsorshipSigner(signer);\n\n const opAttributes: OperationAttributes = {\n sourceAccount: null,\n body: xdr.OperationBody.revokeSponsorship(op),\n };\n setSourceAccount(opAttributes, opts);\n\n return new xdr.Operation(opAttributes);\n}\n"],"names":["StrKey","xdr","Keypair","setSourceAccount","asset","Asset","LiquidityPoolId","Buffer","buffer"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"revoke_sponsorship.js","sources":["../../../../../src/base/operations/revoke_sponsorship.ts"],"sourcesContent":["import xdr from \"../xdr.js\";\nimport { StrKey } from \"../strkey.js\";\nimport { Keypair } from \"../keypair.js\";\nimport { Asset } from \"../asset.js\";\nimport { LiquidityPoolId } from \"../liquidity_pool_id.js\";\nimport {\n RevokeAccountSponsorshipOpts,\n RevokeAccountSponsorshipResult,\n RevokeTrustlineSponsorshipOpts,\n RevokeTrustlineSponsorshipResult,\n RevokeOfferSponsorshipOpts,\n RevokeOfferSponsorshipResult,\n RevokeDataSponsorshipOpts,\n RevokeDataSponsorshipResult,\n RevokeClaimableBalanceSponsorshipOpts,\n RevokeClaimableBalanceSponsorshipResult,\n RevokeLiquidityPoolSponsorshipOpts,\n RevokeLiquidityPoolSponsorshipResult,\n RevokeSignerSponsorshipOpts,\n RevokeSignerSponsorshipResult,\n OperationAttributes,\n} from \"./types.js\";\nimport { setSourceAccount } from \"../util/operations.js\";\n\n/**\n * Create a \"revoke sponsorship\" operation for an account.\n *\n * @param opts - Options object\n * - `account`: The sponsored account ID.\n * - `source`: The source account for the operation. Defaults to the transaction's source account.\n *\n * @example\n * ```ts\n * const op = Operation.revokeAccountSponsorship({\n * account: 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7'\n * });\n * ```\n */\nexport function revokeAccountSponsorship(\n opts: RevokeAccountSponsorshipOpts = {} as RevokeAccountSponsorshipOpts,\n): xdr.Operation<RevokeAccountSponsorshipResult> {\n if (!StrKey.isValidEd25519PublicKey(opts.account)) {\n throw new Error(\"account is invalid\");\n }\n\n const ledgerKey = xdr.LedgerKey.account(\n new xdr.LedgerKeyAccount({\n accountId: Keypair.fromPublicKey(opts.account).xdrAccountId(),\n }),\n );\n const op = xdr.RevokeSponsorshipOp.revokeSponsorshipLedgerEntry(ledgerKey);\n\n const opAttributes: OperationAttributes = {\n sourceAccount: null,\n body: xdr.OperationBody.revokeSponsorship(op),\n };\n setSourceAccount(opAttributes, opts);\n\n return new xdr.Operation(opAttributes);\n}\n\n/**\n * Create a \"revoke sponsorship\" operation for a trustline.\n *\n * @param opts - Options object\n * - `account`: The account ID which owns the trustline.\n * - `asset`: The trustline asset.\n * - `source`: The source account for the operation. Defaults to the transaction's source account.\n *\n * @example\n * ```ts\n * const op = Operation.revokeTrustlineSponsorship({\n * account: 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7',\n * asset: new DigitalWorldBase.LiquidityPoolId(\n * 'USDUSD',\n * 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7'\n * )\n * });\n * ```\n */\nexport function revokeTrustlineSponsorship(\n opts: RevokeTrustlineSponsorshipOpts = {} as RevokeTrustlineSponsorshipOpts,\n): xdr.Operation<RevokeTrustlineSponsorshipResult> {\n if (!StrKey.isValidEd25519PublicKey(opts.account)) {\n throw new Error(\"account is invalid\");\n }\n\n let asset: xdr.TrustLineAsset;\n\n if (opts.asset instanceof Asset) {\n asset = opts.asset.toTrustLineXDRObject();\n } else if (opts.asset instanceof LiquidityPoolId) {\n asset = opts.asset.toXDRObject();\n } else {\n throw new TypeError(\"asset must be an Asset or LiquidityPoolId\");\n }\n\n const ledgerKey = xdr.LedgerKey.trustline(\n new xdr.LedgerKeyTrustLine({\n accountId: Keypair.fromPublicKey(opts.account).xdrAccountId(),\n asset,\n }),\n );\n const op = xdr.RevokeSponsorshipOp.revokeSponsorshipLedgerEntry(ledgerKey);\n\n const opAttributes: OperationAttributes = {\n sourceAccount: null,\n body: xdr.OperationBody.revokeSponsorship(op),\n };\n setSourceAccount(opAttributes, opts);\n\n return new xdr.Operation(opAttributes);\n}\n\n/**\n * Create a \"revoke sponsorship\" operation for an offer.\n *\n * @param opts - Options object\n * - `seller`: The account ID which created the offer.\n * - `offerId`: The offer ID.\n * - `source`: The source account for the operation. Defaults to the transaction's source account.\n *\n * @example\n * ```ts\n * const op = Operation.revokeOfferSponsorship({\n * seller: 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7',\n * offerId: '1234'\n * });\n * ```\n */\nexport function revokeOfferSponsorship(\n opts: RevokeOfferSponsorshipOpts = {} as RevokeOfferSponsorshipOpts,\n): xdr.Operation<RevokeOfferSponsorshipResult> {\n if (!StrKey.isValidEd25519PublicKey(opts.seller)) {\n throw new Error(\"seller is invalid\");\n }\n\n if (typeof opts.offerId !== \"string\") {\n throw new Error(\"offerId is invalid\");\n }\n\n const ledgerKey = xdr.LedgerKey.offer(\n new xdr.LedgerKeyOffer({\n sellerId: Keypair.fromPublicKey(opts.seller).xdrAccountId(),\n offerId: xdr.Int64.fromString(opts.offerId),\n }),\n );\n const op = xdr.RevokeSponsorshipOp.revokeSponsorshipLedgerEntry(ledgerKey);\n\n const opAttributes: OperationAttributes = {\n sourceAccount: null,\n body: xdr.OperationBody.revokeSponsorship(op),\n };\n setSourceAccount(opAttributes, opts);\n\n return new xdr.Operation(opAttributes);\n}\n\n/**\n * Create a \"revoke sponsorship\" operation for a data entry.\n *\n * @param opts - Options object\n * - `account`: The account ID which owns the data entry.\n * - `name`: The name of the data entry.\n * - `source`: The source account for the operation. Defaults to the transaction's source account.\n *\n * @example\n * ```ts\n * const op = Operation.revokeDataSponsorship({\n * account: 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7',\n * name: 'foo'\n * });\n * ```\n */\nexport function revokeDataSponsorship(\n opts: RevokeDataSponsorshipOpts = {} as RevokeDataSponsorshipOpts,\n): xdr.Operation<RevokeDataSponsorshipResult> {\n if (!StrKey.isValidEd25519PublicKey(opts.account)) {\n throw new Error(\"account is invalid\");\n }\n\n if (typeof opts.name !== \"string\" || opts.name.length > 64) {\n throw new Error(\"name must be a string, up to 64 characters\");\n }\n\n const ledgerKey = xdr.LedgerKey.data(\n new xdr.LedgerKeyData({\n accountId: Keypair.fromPublicKey(opts.account).xdrAccountId(),\n dataName: opts.name,\n }),\n );\n const op = xdr.RevokeSponsorshipOp.revokeSponsorshipLedgerEntry(ledgerKey);\n\n const opAttributes: OperationAttributes = {\n sourceAccount: null,\n body: xdr.OperationBody.revokeSponsorship(op),\n };\n setSourceAccount(opAttributes, opts);\n\n return new xdr.Operation(opAttributes);\n}\n\n/**\n * Create a \"revoke sponsorship\" operation for a claimable balance.\n *\n * @param opts - Options object\n * - `balanceId`: The sponsored claimable balance ID.\n * - `source`: The source account for the operation. Defaults to the transaction's source account.\n *\n * @example\n * ```ts\n * const op = Operation.revokeClaimableBalanceSponsorship({\n * balanceId: '00000000da0d57da7d4850e7fc10d2a9d0ebc731f7afb40574c03395b17d49149b91f5be',\n * });\n * ```\n */\nexport function revokeClaimableBalanceSponsorship(\n opts: RevokeClaimableBalanceSponsorshipOpts = {} as RevokeClaimableBalanceSponsorshipOpts,\n): xdr.Operation<RevokeClaimableBalanceSponsorshipResult> {\n if (typeof opts.balanceId !== \"string\") {\n throw new Error(\"balanceId is invalid\");\n }\n\n const ledgerKey = xdr.LedgerKey.claimableBalance(\n new xdr.LedgerKeyClaimableBalance({\n balanceId: xdr.ClaimableBalanceId.fromXDR(opts.balanceId, \"hex\"),\n }),\n );\n const op = xdr.RevokeSponsorshipOp.revokeSponsorshipLedgerEntry(ledgerKey);\n\n const opAttributes: OperationAttributes = {\n sourceAccount: null,\n body: xdr.OperationBody.revokeSponsorship(op),\n };\n setSourceAccount(opAttributes, opts);\n\n return new xdr.Operation(opAttributes);\n}\n\n/**\n * Creates a \"revoke sponsorship\" operation for a liquidity pool.\n *\n * @param opts - Options object.\n * - `liquidityPoolId`: The sponsored liquidity pool ID in 'hex' string.\n * - `source`: The source account for the operation. Defaults to the transaction's source account.\n *\n * @example\n * ```ts\n * const op = Operation.revokeLiquidityPoolSponsorship({\n * liquidityPoolId: 'dd7b1ab831c273310ddbec6f97870aa83c2fbd78ce22aded37ecbf4f3380fac7',\n * });\n * ```\n */\nexport function revokeLiquidityPoolSponsorship(\n opts: RevokeLiquidityPoolSponsorshipOpts = {} as RevokeLiquidityPoolSponsorshipOpts,\n): xdr.Operation<RevokeLiquidityPoolSponsorshipResult> {\n if (typeof opts.liquidityPoolId !== \"string\") {\n throw new Error(\"liquidityPoolId is invalid\");\n }\n\n const ledgerKey = xdr.LedgerKey.liquidityPool(\n new xdr.LedgerKeyLiquidityPool({\n liquidityPoolId: Buffer.from(\n opts.liquidityPoolId,\n \"hex\",\n ) as unknown as xdr.PoolId,\n }),\n );\n const op = xdr.RevokeSponsorshipOp.revokeSponsorshipLedgerEntry(ledgerKey);\n\n const opAttributes: OperationAttributes = {\n sourceAccount: null,\n body: xdr.OperationBody.revokeSponsorship(op),\n };\n setSourceAccount(opAttributes, opts);\n\n return new xdr.Operation(opAttributes);\n}\n\n/**\n * Create a \"revoke sponsorship\" operation for a signer.\n *\n * @param opts - Options object\n * - `account`: The account ID where the signer sponsorship is being removed from.\n * - `signer`: The signer whose sponsorship is being removed. Exactly one of the following must be set:\n * - `signer.ed25519PublicKey`: (optional) The ed25519 public key of the signer.\n * - `signer.sha256Hash`: (optional) sha256 hash (Buffer or hex string).\n * - `signer.preAuthTx`: (optional) Hash (Buffer or hex string) of transaction.\n * - `signer.ed25519SignedPayload`: (optional) Signed payload signer (StrKey P... address).\n * - `source`: The source account for the operation. Defaults to the transaction's source account.\n *\n * @example\n * ```ts\n * const op = Operation.revokeSignerSponsorship({\n * account: 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7',\n * signer: {\n * ed25519PublicKey: 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ'\n * }\n * })\n * ```\n */\nexport function revokeSignerSponsorship(\n opts: RevokeSignerSponsorshipOpts = {} as RevokeSignerSponsorshipOpts,\n): xdr.Operation<RevokeSignerSponsorshipResult> {\n if (!StrKey.isValidEd25519PublicKey(opts.account)) {\n throw new Error(\"account is invalid\");\n }\n\n let key: xdr.SignerKey;\n\n if (opts.signer.ed25519PublicKey) {\n if (!StrKey.isValidEd25519PublicKey(opts.signer.ed25519PublicKey)) {\n throw new Error(\"signer.ed25519PublicKey is invalid.\");\n }\n const rawKey = StrKey.decodeEd25519PublicKey(opts.signer.ed25519PublicKey);\n key = xdr.SignerKey.signerKeyTypeEd25519(rawKey);\n } else if (opts.signer.preAuthTx) {\n let buffer: Buffer;\n\n if (typeof opts.signer.preAuthTx === \"string\") {\n buffer = Buffer.from(opts.signer.preAuthTx, \"hex\");\n } else {\n buffer = opts.signer.preAuthTx;\n }\n\n if (!(Buffer.isBuffer(buffer) && buffer.length === 32)) {\n throw new Error(\"signer.preAuthTx must be 32 bytes Buffer.\");\n }\n\n key = xdr.SignerKey.signerKeyTypePreAuthTx(buffer);\n } else if (opts.signer.sha256Hash) {\n let buffer: Buffer;\n\n if (typeof opts.signer.sha256Hash === \"string\") {\n buffer = Buffer.from(opts.signer.sha256Hash, \"hex\");\n } else {\n buffer = opts.signer.sha256Hash;\n }\n\n if (!(Buffer.isBuffer(buffer) && buffer.length === 32)) {\n throw new Error(\"signer.sha256Hash must be 32 bytes Buffer.\");\n }\n\n key = xdr.SignerKey.signerKeyTypeHashX(buffer);\n } else if (opts.signer.ed25519SignedPayload) {\n if (!StrKey.isValidSignedPayload(opts.signer.ed25519SignedPayload)) {\n throw new Error(\"signer.ed25519SignedPayload is invalid.\");\n }\n\n const rawPayload = StrKey.decodeSignedPayload(\n opts.signer.ed25519SignedPayload,\n );\n\n const signedPayloadXdr =\n xdr.SignerKeyEd25519SignedPayload.fromXDR(rawPayload);\n\n key = xdr.SignerKey.signerKeyTypeEd25519SignedPayload(signedPayloadXdr);\n } else {\n throw new Error(\"signer is invalid\");\n }\n\n const signer = new xdr.RevokeSponsorshipOpSigner({\n accountId: Keypair.fromPublicKey(opts.account).xdrAccountId(),\n signerKey: key,\n });\n\n const op = xdr.RevokeSponsorshipOp.revokeSponsorshipSigner(signer);\n\n const opAttributes: OperationAttributes = {\n sourceAccount: null,\n body: xdr.OperationBody.revokeSponsorship(op),\n };\n setSourceAccount(opAttributes, opts);\n\n return new xdr.Operation(opAttributes);\n}\n"],"names":["StrKey","xdr","Keypair","setSourceAccount","asset","Asset","LiquidityPoolId","Buffer","buffer"],"mappings":"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"}
|
|
@@ -20,7 +20,7 @@ class ConfigGenerator {
|
|
|
20
20
|
const generatedPackageJson = {
|
|
21
21
|
name: contractName.toLowerCase().replace(/[^a-z0-9-]/g, "-"),
|
|
22
22
|
version: "0.0.1",
|
|
23
|
-
description: `Generated TypeScript bindings for ${contractName}
|
|
23
|
+
description: `Generated TypeScript bindings for ${contractName} Digital World contract`,
|
|
24
24
|
type: "module",
|
|
25
25
|
main: "dist/index.js",
|
|
26
26
|
types: "dist/index.d.ts",
|
|
@@ -28,7 +28,7 @@ class ConfigGenerator {
|
|
|
28
28
|
build: "tsc"
|
|
29
29
|
},
|
|
30
30
|
dependencies: {
|
|
31
|
-
"@stellar/stellar-sdk": `^${"16.0.
|
|
31
|
+
"@stellar/stellar-sdk": `^${"16.0.1"}`,
|
|
32
32
|
buffer: "6.0.3"
|
|
33
33
|
},
|
|
34
34
|
devDependencies: {
|
|
@@ -92,7 +92,7 @@ class ConfigGenerator {
|
|
|
92
92
|
const readme = [
|
|
93
93
|
`# ${contractName} Contract Bindings`,
|
|
94
94
|
"",
|
|
95
|
-
`TypeScript bindings for the ${contractName}
|
|
95
|
+
`TypeScript bindings for the ${contractName} Digital World smart contract.`,
|
|
96
96
|
"",
|
|
97
97
|
"## Installation",
|
|
98
98
|
"",
|
|
@@ -129,7 +129,7 @@ class ConfigGenerator {
|
|
|
129
129
|
"- `tsconfig.json` - TypeScript configuration",
|
|
130
130
|
"- `package.json` - NPM package configuration",
|
|
131
131
|
"",
|
|
132
|
-
"This package was generated using the
|
|
132
|
+
"This package was generated using the Digital World JS SDK contract binding generator."
|
|
133
133
|
].join("\n");
|
|
134
134
|
return readme;
|
|
135
135
|
}
|