@layerzerolabs/common-canton 1.2.70 → 1.2.71
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{A7U4VVQK.js → 3TB6JU2S.js} +3 -3
- package/dist/{A7U4VVQK.js.map → 3TB6JU2S.js.map} +1 -1
- package/dist/{O26WXLAL.js → 4TSDR3IG.js} +4 -4
- package/dist/{O26WXLAL.js.map → 4TSDR3IG.js.map} +1 -1
- package/dist/{XINHRIWA.js → 5BIIW37A.js} +3 -3
- package/dist/{XINHRIWA.js.map → 5BIIW37A.js.map} +1 -1
- package/dist/{ODJN4O2R.js → 5QCQRBF2.js} +16 -6
- package/dist/5QCQRBF2.js.map +1 -0
- package/dist/{EITKKRM7.js → 66C2UKUB.js} +3 -3
- package/dist/{EITKKRM7.js.map → 66C2UKUB.js.map} +1 -1
- package/dist/{LS6TAA3S.js → 6GU7J47E.js} +3 -3
- package/dist/{LS6TAA3S.js.map → 6GU7J47E.js.map} +1 -1
- package/dist/{MI3L7BKC.js → 6NR67X2L.js} +4 -4
- package/dist/{MI3L7BKC.js.map → 6NR67X2L.js.map} +1 -1
- package/dist/{IHOOPR5Q.js → 74GXIV45.js} +4 -4
- package/dist/{IHOOPR5Q.js.map → 74GXIV45.js.map} +1 -1
- package/dist/{TAI7WDMG.js → 7PHM6HLD.js} +3 -3
- package/dist/{TAI7WDMG.js.map → 7PHM6HLD.js.map} +1 -1
- package/dist/{HCWCELIY.js → A3YRP3CP.js} +3 -3
- package/dist/{HCWCELIY.js.map → A3YRP3CP.js.map} +1 -1
- package/dist/{LCM7LWM5.js → A7FFE5B3.js} +3 -3
- package/dist/{LCM7LWM5.js.map → A7FFE5B3.js.map} +1 -1
- package/dist/{7STDATVZ.js → A7VF3ZJF.js} +3 -3
- package/dist/{7STDATVZ.js.map → A7VF3ZJF.js.map} +1 -1
- package/dist/{HLEDC536.js → AAYMVMGA.js} +4 -4
- package/dist/{HLEDC536.js.map → AAYMVMGA.js.map} +1 -1
- package/dist/{VNAH76JJ.js → ACTUREBJ.js} +4 -4
- package/dist/{VNAH76JJ.js.map → ACTUREBJ.js.map} +1 -1
- package/dist/{ZILWPZLS.js → AE56UC5I.js} +3 -3
- package/dist/{ZILWPZLS.js.map → AE56UC5I.js.map} +1 -1
- package/dist/{SUQRZQJZ.js → AGAXQJWB.js} +4 -4
- package/dist/{SUQRZQJZ.js.map → AGAXQJWB.js.map} +1 -1
- package/dist/{PXHLNX4K.js → BQWTGHOG.js} +5 -5
- package/dist/BQWTGHOG.js.map +1 -0
- package/dist/{WLHCBBAJ.js → BSVJEBKM.js} +5 -5
- package/dist/BSVJEBKM.js.map +1 -0
- package/dist/{AXXLRBOT.js → BZPOVFBV.js} +3 -3
- package/dist/{AXXLRBOT.js.map → BZPOVFBV.js.map} +1 -1
- package/dist/{VWP2ORHR.js → C4O6KF4R.js} +4 -4
- package/dist/{VWP2ORHR.js.map → C4O6KF4R.js.map} +1 -1
- package/dist/{WRPKZZ4E.js → CC2PLAKT.js} +3 -3
- package/dist/{WRPKZZ4E.js.map → CC2PLAKT.js.map} +1 -1
- package/dist/{KCRFOKIB.js → CJNH6ICZ.js} +3 -3
- package/dist/{KCRFOKIB.js.map → CJNH6ICZ.js.map} +1 -1
- package/dist/{5N5IZWFQ.js → CMO2N5J7.js} +92 -45
- package/dist/CMO2N5J7.js.map +1 -0
- package/dist/{5RZS7DZN.js → CVQHQLYE.js} +3 -3
- package/dist/{5RZS7DZN.js.map → CVQHQLYE.js.map} +1 -1
- package/dist/{5LBZE3FZ.js → CXV5NOWI.js} +3 -3
- package/dist/{5LBZE3FZ.js.map → CXV5NOWI.js.map} +1 -1
- package/dist/{F7DI4SRR.js → DCTO6JNO.js} +8 -7
- package/dist/DCTO6JNO.js.map +1 -0
- package/dist/{42L4RKH6.js → DDDXBNRD.js} +8 -8
- package/dist/DDDXBNRD.js.map +1 -0
- package/dist/{2NZC3LBF.js → DSOC63CO.js} +3 -3
- package/dist/{2NZC3LBF.js.map → DSOC63CO.js.map} +1 -1
- package/dist/{OR2CV5NU.js → EPHLTMJZ.js} +3 -3
- package/dist/{OR2CV5NU.js.map → EPHLTMJZ.js.map} +1 -1
- package/dist/{C46IODEA.js → FA5HJRNC.js} +3 -3
- package/dist/{C46IODEA.js.map → FA5HJRNC.js.map} +1 -1
- package/dist/{HGLH54M2.js → FCOOEGLV.js} +3 -3
- package/dist/{HGLH54M2.js.map → FCOOEGLV.js.map} +1 -1
- package/dist/{T5O5EZO2.js → FYF3KCTO.js} +3 -3
- package/dist/{T5O5EZO2.js.map → FYF3KCTO.js.map} +1 -1
- package/dist/{B42Y5JOK.js → GJFARMTH.js} +39 -39
- package/dist/{B42Y5JOK.js.map → GJFARMTH.js.map} +1 -1
- package/dist/{VBS2IYYS.js → GN3EMRUZ.js} +3 -3
- package/dist/{VBS2IYYS.js.map → GN3EMRUZ.js.map} +1 -1
- package/dist/{MLPZRNZP.js → H5WF7YON.js} +3 -3
- package/dist/{MLPZRNZP.js.map → H5WF7YON.js.map} +1 -1
- package/dist/HFTJEW3A.js +3 -0
- package/dist/HFTJEW3A.js.map +1 -0
- package/dist/{FXR2Z54G.js → HPOEKKSQ.js} +3 -3
- package/dist/{FXR2Z54G.js.map → HPOEKKSQ.js.map} +1 -1
- package/dist/{4MFKSIYK.js → HU7X7G5L.js} +3 -3
- package/dist/{4MFKSIYK.js.map → HU7X7G5L.js.map} +1 -1
- package/dist/{HF5HP2EX.js → I5ERUZDD.js} +5 -6
- package/dist/I5ERUZDD.js.map +1 -0
- package/dist/{XFM6ATM3.js → IQJ5FFO2.js} +3 -3
- package/dist/{XFM6ATM3.js.map → IQJ5FFO2.js.map} +1 -1
- package/dist/{SPMIXP6R.js → JDIEWLND.js} +3 -3
- package/dist/{SPMIXP6R.js.map → JDIEWLND.js.map} +1 -1
- package/dist/{J26F3LZM.js → K3RKYYAJ.js} +3 -3
- package/dist/{J26F3LZM.js.map → K3RKYYAJ.js.map} +1 -1
- package/dist/{34I4OGQK.js → KA2OXQFA.js} +3 -3
- package/dist/{34I4OGQK.js.map → KA2OXQFA.js.map} +1 -1
- package/dist/{JRFMLEIC.js → KS4JT7HC.js} +3 -3
- package/dist/{JRFMLEIC.js.map → KS4JT7HC.js.map} +1 -1
- package/dist/{ZQ2F7HPB.js → LYW3PRU5.js} +3 -3
- package/dist/{ZQ2F7HPB.js.map → LYW3PRU5.js.map} +1 -1
- package/dist/{5GUS3R4R.js → MANSIJ5E.js} +4 -4
- package/dist/{5GUS3R4R.js.map → MANSIJ5E.js.map} +1 -1
- package/dist/{NMK4KJVK.js → MOQL7EDE.js} +3 -3
- package/dist/{NMK4KJVK.js.map → MOQL7EDE.js.map} +1 -1
- package/dist/{JKQLMXRN.js → NFLUJSFO.js} +3 -3
- package/dist/{JKQLMXRN.js.map → NFLUJSFO.js.map} +1 -1
- package/dist/{5N747JZQ.js → NKSFRE2D.js} +3 -3
- package/dist/{5N747JZQ.js.map → NKSFRE2D.js.map} +1 -1
- package/dist/{5O7CQ3B5.js → NRS4DZPT.js} +3 -3
- package/dist/{5O7CQ3B5.js.map → NRS4DZPT.js.map} +1 -1
- package/dist/{OU6ZGOI7.js → NVM727ES.js} +3 -3
- package/dist/{OU6ZGOI7.js.map → NVM727ES.js.map} +1 -1
- package/dist/{UOJYTAJA.js → NZ7JRTF5.js} +3 -3
- package/dist/{UOJYTAJA.js.map → NZ7JRTF5.js.map} +1 -1
- package/dist/{S5X72W5R.js → OC2GKSCZ.js} +3 -3
- package/dist/{S5X72W5R.js.map → OC2GKSCZ.js.map} +1 -1
- package/dist/{2PMOI5F3.js → OUSDBPTI.js} +3 -3
- package/dist/{2PMOI5F3.js.map → OUSDBPTI.js.map} +1 -1
- package/dist/{MZMRFQTR.js → PW7NJ3JL.js} +3 -3
- package/dist/{MZMRFQTR.js.map → PW7NJ3JL.js.map} +1 -1
- package/dist/{UZTJVHNP.js → PWHGLCTH.js} +3 -3
- package/dist/{UZTJVHNP.js.map → PWHGLCTH.js.map} +1 -1
- package/dist/{QSQZYJB6.js → PWKI6T6A.js} +3 -4
- package/dist/PWKI6T6A.js.map +1 -0
- package/dist/{SEKD553P.js → QEE5QCHB.js} +4 -4
- package/dist/QEE5QCHB.js.map +1 -0
- package/dist/{BA56KCNU.js → QYKMFCVF.js} +3 -3
- package/dist/{BA56KCNU.js.map → QYKMFCVF.js.map} +1 -1
- package/dist/{QZJONP6W.js → QZKEWDGH.js} +3 -3
- package/dist/{QZJONP6W.js.map → QZKEWDGH.js.map} +1 -1
- package/dist/{KYQVWBET.js → RGSLEGIT.js} +3 -3
- package/dist/{KYQVWBET.js.map → RGSLEGIT.js.map} +1 -1
- package/dist/{P6RLTY4Q.js → SFKNDB45.js} +4 -4
- package/dist/{P6RLTY4Q.js.map → SFKNDB45.js.map} +1 -1
- package/dist/{CPODYNES.js → TIKYUQ7Z.js} +3 -3
- package/dist/{CPODYNES.js.map → TIKYUQ7Z.js.map} +1 -1
- package/dist/{CM3AEJH2.js → TV3E6NFT.js} +4 -4
- package/dist/{CM3AEJH2.js.map → TV3E6NFT.js.map} +1 -1
- package/dist/{JG3CGXAA.js → U64PVM2G.js} +3 -3
- package/dist/{JG3CGXAA.js.map → U64PVM2G.js.map} +1 -1
- package/dist/{NAKXSYHE.js → U7QJUV2C.js} +3 -3
- package/dist/{NAKXSYHE.js.map → U7QJUV2C.js.map} +1 -1
- package/dist/{7QVLLG7J.js → UNTLGCGB.js} +3 -3
- package/dist/{7QVLLG7J.js.map → UNTLGCGB.js.map} +1 -1
- package/dist/{X5Q5IDTX.js → V6WKCZKX.js} +3 -3
- package/dist/{X5Q5IDTX.js.map → V6WKCZKX.js.map} +1 -1
- package/dist/{6GAFSKMN.js → VDBQAUSY.js} +3 -3
- package/dist/{6GAFSKMN.js.map → VDBQAUSY.js.map} +1 -1
- package/dist/{TKPU3I2P.js → VIVHP4ZR.js} +3 -3
- package/dist/{TKPU3I2P.js.map → VIVHP4ZR.js.map} +1 -1
- package/dist/{RELCLANB.js → VKQ3WBCW.js} +3 -3
- package/dist/{RELCLANB.js.map → VKQ3WBCW.js.map} +1 -1
- package/dist/{H2QNCZZP.js → WEOR7EMZ.js} +4 -4
- package/dist/{H2QNCZZP.js.map → WEOR7EMZ.js.map} +1 -1
- package/dist/{CYUO5SRQ.js → WH4AALW7.js} +3 -3
- package/dist/{CYUO5SRQ.js.map → WH4AALW7.js.map} +1 -1
- package/dist/{WS55YOW3.js → WLN7SJMS.js} +3 -3
- package/dist/{WS55YOW3.js.map → WLN7SJMS.js.map} +1 -1
- package/dist/XEYUU6QF.js +3 -0
- package/dist/XEYUU6QF.js.map +1 -0
- package/dist/{42XERBT4.js → XUUV67AB.js} +3 -3
- package/dist/{42XERBT4.js.map → XUUV67AB.js.map} +1 -1
- package/dist/{Z2TOQ5RW.js → YCNGW63C.js} +3 -3
- package/dist/{Z2TOQ5RW.js.map → YCNGW63C.js.map} +1 -1
- package/dist/{DAP5XJGH.js → Z6XV6V6U.js} +3 -3
- package/dist/{DAP5XJGH.js.map → Z6XV6V6U.js.map} +1 -1
- package/dist/{JEVZBCKB.js → Z74KDZ47.js} +3 -3
- package/dist/{JEVZBCKB.js.map → Z74KDZ47.js.map} +1 -1
- package/dist/{JRALW2JZ.js → ZCFOFDYY.js} +3 -3
- package/dist/{JRALW2JZ.js.map → ZCFOFDYY.js.map} +1 -1
- package/dist/{XPBJWESZ.js → ZKWD7SP2.js} +3 -3
- package/dist/{XPBJWESZ.js.map → ZKWD7SP2.js.map} +1 -1
- package/dist/{NXLM7ANC.js → ZYOH5EDV.js} +3 -3
- package/dist/{NXLM7ANC.js.map → ZYOH5EDV.js.map} +1 -1
- package/dist/address.js +2 -2
- package/dist/browser.js +2 -2
- package/dist/client/amulet.d.ts.map +1 -1
- package/dist/client/amulet.js +1 -1
- package/dist/client/canton-client.js +100 -100
- package/dist/client/index.js +100 -100
- package/dist/deferredValue.d.ts.map +1 -1
- package/dist/deferredValue.js +1 -1
- package/dist/events.js +5 -5
- package/dist/index.js +114 -113
- package/dist/open-api/apis/DefaultApi.js +98 -98
- package/dist/open-api/apis/index.js +98 -98
- package/dist/open-api/index.js +98 -98
- package/dist/open-api/models/Command.js +3 -3
- package/dist/open-api/models/Completion.js +6 -6
- package/dist/open-api/models/Completion1.js +5 -5
- package/dist/open-api/models/CompletionResponse.js +9 -9
- package/dist/open-api/models/CompletionResponseOneOf.js +7 -7
- package/dist/open-api/models/CompletionStreamResponse.js +10 -10
- package/dist/open-api/models/CreateUserRequest.js +6 -6
- package/dist/open-api/models/CumulativeFilter.js +5 -5
- package/dist/open-api/models/DeduplicationPeriod.js +3 -3
- package/dist/open-api/models/DeduplicationPeriod1.js +3 -3
- package/dist/open-api/models/Event.js +3 -3
- package/dist/open-api/models/EventFormat.js +7 -7
- package/dist/open-api/models/ExperimentalFeatures.js +2 -2
- package/dist/open-api/models/FeaturesDescriptor.js +3 -3
- package/dist/open-api/models/Filters.js +6 -6
- package/dist/open-api/models/GetActiveContractsRequest.js +9 -9
- package/dist/open-api/models/GetEventsByContractIdRequest.js +8 -8
- package/dist/open-api/models/GetLedgerApiVersionResponse.js +4 -4
- package/dist/open-api/models/GetTransactionByIdRequest.js +9 -9
- package/dist/open-api/models/GetTransactionByOffsetRequest.js +9 -9
- package/dist/open-api/models/GetUpdateByIdRequest.js +10 -10
- package/dist/open-api/models/GetUpdateByOffsetRequest.js +10 -10
- package/dist/open-api/models/GetUpdatesRequest.js +11 -11
- package/dist/open-api/models/GrantUserRightsRequest.js +6 -6
- package/dist/open-api/models/GrantUserRightsResponse.js +6 -6
- package/dist/open-api/models/IdentifierFilter.js +4 -4
- package/dist/open-api/models/JsCommands.js +7 -7
- package/dist/open-api/models/JsContractEntry.js +5 -5
- package/dist/open-api/models/JsExecuteSubmissionAndWaitForTransactionRequest.js +13 -13
- package/dist/open-api/models/JsExecuteSubmissionAndWaitForTransactionResponse.js +5 -5
- package/dist/open-api/models/JsExecuteSubmissionAndWaitRequest.js +5 -5
- package/dist/open-api/models/JsExecuteSubmissionRequest.js +5 -5
- package/dist/open-api/models/JsGetActiveContractsResponse.js +6 -6
- package/dist/open-api/models/JsGetTransactionResponse.js +5 -5
- package/dist/open-api/models/JsGetTransactionTreeResponse.js +4 -4
- package/dist/open-api/models/JsGetUpdateResponse.js +9 -9
- package/dist/open-api/models/JsGetUpdateTreesResponse.js +7 -7
- package/dist/open-api/models/JsGetUpdatesResponse.js +9 -9
- package/dist/open-api/models/JsPrepareSubmissionRequest.js +8 -8
- package/dist/open-api/models/JsSubmitAndWaitForTransactionRequest.js +16 -16
- package/dist/open-api/models/JsSubmitAndWaitForTransactionResponse.js +5 -5
- package/dist/open-api/models/JsSubmitAndWaitForTransactionTreeResponse.js +4 -4
- package/dist/open-api/models/JsTransaction.js +4 -4
- package/dist/open-api/models/JsTransactionTree.js +3 -3
- package/dist/open-api/models/Kind.js +4 -4
- package/dist/open-api/models/ListUserRightsResponse.js +6 -6
- package/dist/open-api/models/MinLedgerTime.js +4 -4
- package/dist/open-api/models/PriorTopologySerial.js +3 -3
- package/dist/open-api/models/RevokeUserRightsRequest.js +6 -6
- package/dist/open-api/models/RevokeUserRightsResponse.js +6 -6
- package/dist/open-api/models/Right.js +5 -5
- package/dist/open-api/models/Serial.js +2 -2
- package/dist/open-api/models/SubmitAndWaitForReassignmentRequest.js +8 -8
- package/dist/open-api/models/Time.js +3 -3
- package/dist/open-api/models/Transaction.js +5 -5
- package/dist/open-api/models/TransactionFilter.js +7 -7
- package/dist/open-api/models/TransactionFormat.js +8 -8
- package/dist/open-api/models/TransactionTree.js +4 -4
- package/dist/open-api/models/TreeEvent.js +2 -2
- package/dist/open-api/models/Update.js +8 -8
- package/dist/open-api/models/Update1.js +6 -6
- package/dist/open-api/models/Update1OneOf2.js +5 -5
- package/dist/open-api/models/UpdateFormat.js +9 -9
- package/dist/open-api/models/UpdateOneOf3.js +6 -6
- package/dist/open-api/models/UpdateVettedPackagesRequest.js +4 -4
- package/dist/open-api/models/index.js +97 -97
- package/dist/provider.js +101 -101
- package/dist/refresh/address-resolver.d.ts.map +1 -1
- package/dist/refresh/address-resolver.js +2 -2
- package/dist/refresh/deployment-address.d.ts.map +1 -1
- package/dist/refresh/deployment-address.js +2 -2
- package/dist/refresh/index.d.ts +1 -0
- package/dist/refresh/index.d.ts.map +1 -1
- package/dist/refresh/index.js +11 -10
- package/dist/refresh/onesig-execution.d.ts +18 -0
- package/dist/refresh/onesig-execution.d.ts.map +1 -0
- package/dist/refresh/onesig-execution.js +3 -0
- package/dist/refresh/onesig-execution.js.map +1 -0
- package/dist/refresh/plan.d.ts +15 -0
- package/dist/refresh/plan.d.ts.map +1 -1
- package/dist/refresh/plan.js +2 -2
- package/dist/refresh/resolve-plan.d.ts +2 -0
- package/dist/refresh/resolve-plan.d.ts.map +1 -1
- package/dist/refresh/resolve-plan.js +3 -3
- package/dist/refresh/resolve.d.ts +3 -1
- package/dist/refresh/resolve.d.ts.map +1 -1
- package/dist/refresh/resolve.js +6 -6
- package/dist/refresh/reverse-substitute.d.ts.map +1 -1
- package/dist/refresh/reverse-substitute.js +2 -2
- package/dist/refresh/wrapped-lz-sdk.d.ts.map +1 -1
- package/dist/refresh/wrapped-lz-sdk.js +3 -3
- package/dist/transaction.d.ts +35 -0
- package/dist/transaction.d.ts.map +1 -1
- package/dist/transaction.js +3 -3
- package/package.json +10 -10
- package/dist/42L4RKH6.js.map +0 -1
- package/dist/5N5IZWFQ.js.map +0 -1
- package/dist/6UDREB6T.js +0 -3
- package/dist/6UDREB6T.js.map +0 -1
- package/dist/F7DI4SRR.js.map +0 -1
- package/dist/HF5HP2EX.js.map +0 -1
- package/dist/ODJN4O2R.js.map +0 -1
- package/dist/PXHLNX4K.js.map +0 -1
- package/dist/QSQZYJB6.js.map +0 -1
- package/dist/SEKD553P.js.map +0 -1
- package/dist/WLHCBBAJ.js.map +0 -1
|
@@ -1,29 +1,26 @@
|
|
|
1
|
-
import { createContractAddressResolver } from './
|
|
1
|
+
import { createContractAddressResolver } from './DDDXBNRD.js';
|
|
2
2
|
import { getCreateArgumentField } from './SWY4QT4I.js';
|
|
3
|
-
import { isCantonDeferredSender, isCantonDeferredSentinel } from './
|
|
3
|
+
import { isCantonDeferredSender, isCantonDeferredSentinel } from './PWKI6T6A.js';
|
|
4
4
|
import { __name } from './VUOMXK5T.js';
|
|
5
|
-
import { NonRetryableError } from '@layerzerolabs/common-error-utils';
|
|
6
5
|
|
|
6
|
+
// src/refresh/resolve-plan.ts
|
|
7
7
|
var DAML_DECIMAL_SCALE = 10n ** 10n;
|
|
8
8
|
var MAX_SELECTED_CONTRACTS = 100;
|
|
9
9
|
var CANTON_TIME_PATTERN = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,9})?Z$/;
|
|
10
|
-
var nonRetryable = /* @__PURE__ */ __name((message) => {
|
|
11
|
-
throw new NonRetryableError(message);
|
|
12
|
-
}, "nonRetryable");
|
|
13
10
|
var resolveParty = /* @__PURE__ */ __name((partyRef, senderParty, label) => {
|
|
14
11
|
if (!isCantonDeferredSender(partyRef)) return partyRef.party;
|
|
15
12
|
if (!senderParty) {
|
|
16
|
-
|
|
13
|
+
throw new Error(`${label} requires a resolved sender party`);
|
|
17
14
|
}
|
|
18
15
|
return senderParty;
|
|
19
16
|
}, "resolveParty");
|
|
20
17
|
var parseDamlDecimal = /* @__PURE__ */ __name((value, label) => {
|
|
21
18
|
if (typeof value !== "string") {
|
|
22
|
-
|
|
19
|
+
throw new Error(`${label} must be a DAML Decimal string`);
|
|
23
20
|
}
|
|
24
21
|
const match = /^([+-]?)(\d+)(?:\.(\d{0,10}))?$/.exec(value);
|
|
25
22
|
if (!match) {
|
|
26
|
-
|
|
23
|
+
throw new Error(`${label} is not a valid DAML Decimal: ${value}`);
|
|
27
24
|
}
|
|
28
25
|
const sign = match[1] === "-" ? -1n : 1n;
|
|
29
26
|
const whole = BigInt(match[2]);
|
|
@@ -38,7 +35,7 @@ var getContractNumericField = /* @__PURE__ */ __name((contract, field) => {
|
|
|
38
35
|
var selectContractsByGte = /* @__PURE__ */ __name((contracts, field, requestedValue) => {
|
|
39
36
|
const requested = parseDamlDecimal(requestedValue, "Requested contract value");
|
|
40
37
|
if (requested <= 0n) {
|
|
41
|
-
|
|
38
|
+
throw new Error("Requested contract value must be positive");
|
|
42
39
|
}
|
|
43
40
|
const candidates = contracts.map((contract) => ({
|
|
44
41
|
contract,
|
|
@@ -52,10 +49,10 @@ var selectContractsByGte = /* @__PURE__ */ __name((contracts, field, requestedVa
|
|
|
52
49
|
if (total >= requested) break;
|
|
53
50
|
}
|
|
54
51
|
if (total < requested) {
|
|
55
|
-
|
|
52
|
+
throw new Error(`Insufficient contract value in field ${field}: requested ${requestedValue}, found ${total.toString()} base units`);
|
|
56
53
|
}
|
|
57
54
|
if (selected.length > MAX_SELECTED_CONTRACTS) {
|
|
58
|
-
|
|
55
|
+
throw new Error(`Selection needs ${selected.length} contracts, exceeding the ${MAX_SELECTED_CONTRACTS} input limit`);
|
|
59
56
|
}
|
|
60
57
|
return selected;
|
|
61
58
|
}, "selectContractsByGte");
|
|
@@ -69,11 +66,11 @@ var makeActiveContractRef = /* @__PURE__ */ __name((selector) => ({
|
|
|
69
66
|
var resolveContractValue = /* @__PURE__ */ __name(async (resolver, source) => {
|
|
70
67
|
const contracts = await resolver.resolveActiveContracts(makeActiveContractRef(source.selector));
|
|
71
68
|
if (contracts.length !== 1) {
|
|
72
|
-
|
|
69
|
+
throw new Error(`Active contract value matched ${contracts.length} contracts, expected exactly one`);
|
|
73
70
|
}
|
|
74
71
|
const value = getCreateArgumentField(contracts[0].createdEvent.createArgument, source.field);
|
|
75
72
|
if (parseDamlDecimal(value, `Contract value ${source.field}`) <= 0n) {
|
|
76
|
-
|
|
73
|
+
throw new Error(`Contract value ${source.field} must be positive`);
|
|
77
74
|
}
|
|
78
75
|
return value;
|
|
79
76
|
}, "resolveContractValue");
|
|
@@ -81,7 +78,7 @@ var selectActiveContracts = /* @__PURE__ */ __name(async (contracts, selection,
|
|
|
81
78
|
switch (selection.kind) {
|
|
82
79
|
case "exactlyOne":
|
|
83
80
|
if (contracts.length !== 1) {
|
|
84
|
-
|
|
81
|
+
throw new Error(`Active contract selection matched ${contracts.length} contracts, expected exactly one`);
|
|
85
82
|
}
|
|
86
83
|
return contracts;
|
|
87
84
|
case "all":
|
|
@@ -119,7 +116,7 @@ var replaceAtPath = /* @__PURE__ */ __name((root, path, value) => {
|
|
|
119
116
|
const isLast = position === path.length - 1;
|
|
120
117
|
if ("field" in segment) {
|
|
121
118
|
if (!isRecord(current) || !(segment.field in current)) {
|
|
122
|
-
|
|
119
|
+
throw new Error(`Refresh target field "${segment.field}" does not exist`);
|
|
123
120
|
}
|
|
124
121
|
if (isLast) {
|
|
125
122
|
current[segment.field] = value;
|
|
@@ -130,7 +127,7 @@ var replaceAtPath = /* @__PURE__ */ __name((root, path, value) => {
|
|
|
130
127
|
}
|
|
131
128
|
if ("index" in segment) {
|
|
132
129
|
if (!Array.isArray(current) || segment.index >= current.length) {
|
|
133
|
-
|
|
130
|
+
throw new Error(`Refresh target array index ${segment.index} does not exist`);
|
|
134
131
|
}
|
|
135
132
|
if (isLast) {
|
|
136
133
|
current[segment.index] = value;
|
|
@@ -140,11 +137,11 @@ var replaceAtPath = /* @__PURE__ */ __name((root, path, value) => {
|
|
|
140
137
|
continue;
|
|
141
138
|
}
|
|
142
139
|
if (!Array.isArray(current)) {
|
|
143
|
-
|
|
140
|
+
throw new Error(`Refresh target DAML map "${segment.damlMapKey}" is not an array`);
|
|
144
141
|
}
|
|
145
142
|
const matches = current.filter((entry) => Array.isArray(entry) && entry.length === 2 && entry[0] === segment.damlMapKey);
|
|
146
143
|
if (matches.length !== 1) {
|
|
147
|
-
|
|
144
|
+
throw new Error(`Refresh target DAML map key "${segment.damlMapKey}" matched ${matches.length} entries`);
|
|
148
145
|
}
|
|
149
146
|
if (isLast) {
|
|
150
147
|
matches[0][1] = value;
|
|
@@ -159,24 +156,24 @@ var readAtPath = /* @__PURE__ */ __name((root, path) => {
|
|
|
159
156
|
for (const segment of path) {
|
|
160
157
|
if ("field" in segment) {
|
|
161
158
|
if (!isRecord(current) || !(segment.field in current)) {
|
|
162
|
-
|
|
159
|
+
throw new Error(`Refresh target field "${segment.field}" does not exist`);
|
|
163
160
|
}
|
|
164
161
|
current = current[segment.field];
|
|
165
162
|
continue;
|
|
166
163
|
}
|
|
167
164
|
if ("index" in segment) {
|
|
168
165
|
if (!Array.isArray(current) || segment.index >= current.length) {
|
|
169
|
-
|
|
166
|
+
throw new Error(`Refresh target array index ${segment.index} does not exist`);
|
|
170
167
|
}
|
|
171
168
|
current = current[segment.index];
|
|
172
169
|
continue;
|
|
173
170
|
}
|
|
174
171
|
if (!Array.isArray(current)) {
|
|
175
|
-
|
|
172
|
+
throw new Error(`Refresh target DAML map "${segment.damlMapKey}" is not an array`);
|
|
176
173
|
}
|
|
177
174
|
const matches = current.filter((entry) => Array.isArray(entry) && entry.length === 2 && entry[0] === segment.damlMapKey);
|
|
178
175
|
if (matches.length !== 1) {
|
|
179
|
-
|
|
176
|
+
throw new Error(`Refresh target DAML map key "${segment.damlMapKey}" matched ${matches.length} entries`);
|
|
180
177
|
}
|
|
181
178
|
current = matches[0][1];
|
|
182
179
|
}
|
|
@@ -185,45 +182,45 @@ var readAtPath = /* @__PURE__ */ __name((root, path) => {
|
|
|
185
182
|
var readTarget = /* @__PURE__ */ __name((commands, target, path) => {
|
|
186
183
|
const command = commands[target.commandIndex];
|
|
187
184
|
if (!command) {
|
|
188
|
-
|
|
185
|
+
throw new Error(`Refresh command index ${target.commandIndex} does not exist`);
|
|
189
186
|
}
|
|
190
187
|
if (target.command === "exercise") {
|
|
191
188
|
if (!("exerciseCommand" in command)) {
|
|
192
|
-
|
|
189
|
+
throw new Error(`Refresh command index ${target.commandIndex} is not an exercise`);
|
|
193
190
|
}
|
|
194
191
|
if (command.exerciseCommand.choice !== target.choice) {
|
|
195
|
-
|
|
192
|
+
throw new Error(`Refresh command index ${target.commandIndex} expected choice ${target.choice}, found ${command.exerciseCommand.choice}`);
|
|
196
193
|
}
|
|
197
194
|
return readAtPath(command.exerciseCommand.choiceArgument, path);
|
|
198
195
|
}
|
|
199
196
|
if (!("createCommand" in command)) {
|
|
200
|
-
|
|
197
|
+
throw new Error(`Refresh command index ${target.commandIndex} is not a create`);
|
|
201
198
|
}
|
|
202
199
|
if (command.createCommand.templateId !== target.template) {
|
|
203
|
-
|
|
200
|
+
throw new Error(`Refresh command index ${target.commandIndex} expected template ${target.template}, found ${command.createCommand.templateId}`);
|
|
204
201
|
}
|
|
205
202
|
return readAtPath(command.createCommand.createArguments, path);
|
|
206
203
|
}, "readTarget");
|
|
207
204
|
var applyPatch = /* @__PURE__ */ __name((commands, target, path, value) => {
|
|
208
205
|
const command = commands[target.commandIndex];
|
|
209
206
|
if (!command) {
|
|
210
|
-
|
|
207
|
+
throw new Error(`Refresh command index ${target.commandIndex} does not exist`);
|
|
211
208
|
}
|
|
212
209
|
if (target.command === "exercise") {
|
|
213
210
|
if (!("exerciseCommand" in command)) {
|
|
214
|
-
|
|
211
|
+
throw new Error(`Refresh command index ${target.commandIndex} is not an exercise`);
|
|
215
212
|
}
|
|
216
213
|
if (command.exerciseCommand.choice !== target.choice) {
|
|
217
|
-
|
|
214
|
+
throw new Error(`Refresh command index ${target.commandIndex} expected choice ${target.choice}, found ${command.exerciseCommand.choice}`);
|
|
218
215
|
}
|
|
219
216
|
command.exerciseCommand.choiceArgument = replaceAtPath(command.exerciseCommand.choiceArgument, path, value);
|
|
220
217
|
return;
|
|
221
218
|
}
|
|
222
219
|
if (!("createCommand" in command)) {
|
|
223
|
-
|
|
220
|
+
throw new Error(`Refresh command index ${target.commandIndex} is not a create`);
|
|
224
221
|
}
|
|
225
222
|
if (command.createCommand.templateId !== target.template) {
|
|
226
|
-
|
|
223
|
+
throw new Error(`Refresh command index ${target.commandIndex} expected template ${target.template}, found ${command.createCommand.templateId}`);
|
|
227
224
|
}
|
|
228
225
|
command.createCommand.createArguments = replaceAtPath(command.createCommand.createArguments, path, value);
|
|
229
226
|
}, "applyPatch");
|
|
@@ -231,13 +228,13 @@ var applyTarget = /* @__PURE__ */ __name((commands, target, value) => {
|
|
|
231
228
|
if ("field" in target) {
|
|
232
229
|
const command = commands[target.commandIndex];
|
|
233
230
|
if (!command) {
|
|
234
|
-
|
|
231
|
+
throw new Error(`Refresh command index ${target.commandIndex} does not exist`);
|
|
235
232
|
}
|
|
236
233
|
if (!("exerciseCommand" in command)) {
|
|
237
|
-
|
|
234
|
+
throw new Error(`Refresh command index ${target.commandIndex} is not an exercise`);
|
|
238
235
|
}
|
|
239
236
|
if (typeof value !== "string") {
|
|
240
|
-
|
|
237
|
+
throw new Error("Exercise contract ID refresh must resolve to a string");
|
|
241
238
|
}
|
|
242
239
|
command.exerciseCommand.contractId = value;
|
|
243
240
|
return;
|
|
@@ -256,14 +253,27 @@ var containsDeferredSentinel = /* @__PURE__ */ __name((value, key) => {
|
|
|
256
253
|
var disclosuresEqual = /* @__PURE__ */ __name((left, right) => left.contractId === right.contractId && left.templateId === right.templateId && left.createdEventBlob === right.createdEventBlob && left.synchronizerId === right.synchronizerId, "disclosuresEqual");
|
|
257
254
|
var resolveCantonRefreshPlan = /* @__PURE__ */ __name(async (args) => {
|
|
258
255
|
if (containsDeferredSentinel(args.unresolvedCommands) || containsDeferredSentinel(args.unresolvedDisclosedContracts)) {
|
|
259
|
-
|
|
256
|
+
throw new Error("Canton refreshPlan cannot be combined with deferred sentinels");
|
|
257
|
+
}
|
|
258
|
+
if (args.refreshPlan.oneSigExecution) {
|
|
259
|
+
const operationIndex = args.refreshPlan.oneSigExecution.commandIndex;
|
|
260
|
+
for (const refresh of args.refreshPlan.commands) for (const target of refresh.targets) {
|
|
261
|
+
if (!("commandIndex" in target) || target.commandIndex !== operationIndex) continue;
|
|
262
|
+
if ("field" in target || target.command !== "exercise" || target.choice !== "OneSig_ExecuteTransaction" || target.arguments.some(({ path }) => path.length !== 1 || !("field" in path[0]) || ![
|
|
263
|
+
"configCid",
|
|
264
|
+
"amuletCids",
|
|
265
|
+
"amuletContext"
|
|
266
|
+
].includes(path[0].field))) {
|
|
267
|
+
throw new Error("OneSig refresh cannot modify signed fields or its pinned anchor");
|
|
268
|
+
}
|
|
269
|
+
}
|
|
260
270
|
}
|
|
261
271
|
const commands = structuredClone(args.unresolvedCommands);
|
|
262
272
|
const baselineDisclosureCids = new Set(args.unresolvedDisclosedContracts.map(({ contractId }) => contractId));
|
|
263
273
|
const originalCids = new Set(args.refreshPlan.disclosures?.originalCids ?? []);
|
|
264
274
|
for (const contractId of originalCids) {
|
|
265
275
|
if (!baselineDisclosureCids.has(contractId)) {
|
|
266
|
-
|
|
276
|
+
throw new Error(`Original disclosure ${contractId} cannot be refreshed: it is not present in unresolvedDisclosedContracts`);
|
|
267
277
|
}
|
|
268
278
|
}
|
|
269
279
|
const disclosureMap = /* @__PURE__ */ new Map();
|
|
@@ -271,7 +281,7 @@ var resolveCantonRefreshPlan = /* @__PURE__ */ __name(async (args) => {
|
|
|
271
281
|
for (const disclosure of disclosures) {
|
|
272
282
|
const existing = disclosureMap.get(disclosure.contractId);
|
|
273
283
|
if (existing && !disclosuresEqual(existing, disclosure)) {
|
|
274
|
-
|
|
284
|
+
throw new Error(`Conflicting disclosures for contract ${disclosure.contractId}`);
|
|
275
285
|
}
|
|
276
286
|
disclosureMap.set(disclosure.contractId, disclosure);
|
|
277
287
|
}
|
|
@@ -309,6 +319,36 @@ var resolveCantonRefreshPlan = /* @__PURE__ */ __name(async (args) => {
|
|
|
309
319
|
}
|
|
310
320
|
}
|
|
311
321
|
}
|
|
322
|
+
const operation = args.refreshPlan.oneSigExecution;
|
|
323
|
+
if (operation) {
|
|
324
|
+
if (!args.resolveOneSigExecution) throw new Error("OneSig context resolver is required");
|
|
325
|
+
const command = commands[operation.commandIndex];
|
|
326
|
+
if (!command || !("exerciseCommand" in command) || command.exerciseCommand.choice !== "OneSig_ExecuteTransaction") {
|
|
327
|
+
throw new Error("OneSig refresh requires OneSig_ExecuteTransaction");
|
|
328
|
+
}
|
|
329
|
+
const argument = command.exerciseCommand.choiceArgument;
|
|
330
|
+
if (!isRecord(argument) || !isRecord(argument.transaction) || !Array.isArray(argument.transaction.calls)) {
|
|
331
|
+
throw new Error("Malformed OneSig transaction calls");
|
|
332
|
+
}
|
|
333
|
+
const calls = argument.transaction.calls;
|
|
334
|
+
const resolved = await args.resolveOneSigExecution({
|
|
335
|
+
policy: operation,
|
|
336
|
+
command: structuredClone(command.exerciseCommand),
|
|
337
|
+
client: args.client,
|
|
338
|
+
senderParty: args.senderParty
|
|
339
|
+
});
|
|
340
|
+
if (resolved.contexts.length !== calls.length) {
|
|
341
|
+
throw new Error("OneSig refreshed context count does not match signed calls");
|
|
342
|
+
}
|
|
343
|
+
for (const [index, entry] of calls.entries()) {
|
|
344
|
+
const context = resolved.contexts[index];
|
|
345
|
+
if (!isRecord(entry) || !isRecord(entry.context) || context.tag !== entry.context.tag) {
|
|
346
|
+
throw new Error(`OneSig context variant changed at call ${index}`);
|
|
347
|
+
}
|
|
348
|
+
entry.context = structuredClone(context);
|
|
349
|
+
}
|
|
350
|
+
appendDisclosures(resolved.disclosedContracts);
|
|
351
|
+
}
|
|
312
352
|
const now = /* @__PURE__ */ new Date();
|
|
313
353
|
for (const refresh of args.refreshPlan.commands) {
|
|
314
354
|
if (!isTimestampRefresh(refresh)) continue;
|
|
@@ -316,10 +356,17 @@ var resolveCantonRefreshPlan = /* @__PURE__ */ __name(async (args) => {
|
|
|
316
356
|
for (const { path, offsetMs = 0 } of target.arguments) {
|
|
317
357
|
const iso = new Date(now.getTime() + offsetMs).toISOString();
|
|
318
358
|
const current = readTarget(commands, target, path);
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
value
|
|
322
|
-
}
|
|
359
|
+
let value;
|
|
360
|
+
if (isCantonTime(current)) {
|
|
361
|
+
value = iso;
|
|
362
|
+
} else if (isRecord(current) && current.tag === "AV_Time" && isCantonTime(current.value)) {
|
|
363
|
+
value = {
|
|
364
|
+
...current,
|
|
365
|
+
value: iso
|
|
366
|
+
};
|
|
367
|
+
} else {
|
|
368
|
+
throw new Error("Timestamp refresh target must contain a Canton Time value");
|
|
369
|
+
}
|
|
323
370
|
applyPatch(commands, target, path, value);
|
|
324
371
|
}
|
|
325
372
|
}
|
|
@@ -333,5 +380,5 @@ var resolveCantonRefreshPlan = /* @__PURE__ */ __name(async (args) => {
|
|
|
333
380
|
}, "resolveCantonRefreshPlan");
|
|
334
381
|
|
|
335
382
|
export { resolveCantonActiveContracts, resolveCantonRefreshPlan, selectContractsByGte };
|
|
336
|
-
//# sourceMappingURL=
|
|
337
|
-
//# sourceMappingURL=
|
|
383
|
+
//# sourceMappingURL=CMO2N5J7.js.map
|
|
384
|
+
//# sourceMappingURL=CMO2N5J7.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/refresh/resolve-plan.ts"],"names":["DAML_DECIMAL_SCALE","MAX_SELECTED_CONTRACTS","CANTON_TIME_PATTERN","resolveParty","partyRef","senderParty","label","isCantonDeferredSender","party","Error","parseDamlDecimal","value","match","exec","sign","whole","BigInt","fraction","padEnd","getContractNumericField","contract","field","raw","getCreateArgumentField","createdEvent","createArgument","initialAmount","contractId","selectContractsByGte","contracts","requestedValue","requested","candidates","map","amount","filter","sort","left","right","localeCompare","selected","total","candidate","push","toString","length","makeActiveContractRef","selector","type","partyToFilter","queryAs","expectedSignatories","templateId","contractStateFilter","stateFilter","resolveContractValue","resolver","source","resolveActiveContracts","selectActiveContracts","selection","kind","resolveCantonActiveContracts","args","queryParty","ref","createContractAddressResolver","client","signingParties","appendDisclosures","undefined","contractIds","isRecord","Array","isArray","isCantonTime","test","Number","isFinite","Date","parse","isActiveContractRefresh","refresh","isActiveContractValueRefresh","isAmuletContextRefresh","isTimestampRefresh","replaceAtPath","root","path","current","position","segment","entries","isLast","index","damlMapKey","matches","entry","readAtPath","readTarget","commands","target","command","commandIndex","exerciseCommand","choice","choiceArgument","createCommand","template","createArguments","applyPatch","applyTarget","argument","arguments","containsDeferredSentinel","key","isCantonDeferredSentinel","some","item","Object","childKey","child","disclosuresEqual","createdEventBlob","synchronizerId","resolveCantonRefreshPlan","unresolvedCommands","unresolvedDisclosedContracts","refreshPlan","oneSigExecution","operationIndex","targets","includes","structuredClone","baselineDisclosureCids","Set","originalCids","disclosures","has","disclosureMap","Map","disclosure","existing","get","set","discloseActiveContracts","resolved","bundle","getAmuletContextWithExternalRules","admin","dsoParty","id","disclosedContracts","amuletContext","operation","resolveOneSigExecution","transaction","calls","policy","contexts","context","tag","now","offsetMs","iso","getTime","toISOString","values"],"mappings":"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","file":"CMO2N5J7.js","sourcesContent":["import type { ICantonClient } from '../client/interface';\nimport {\n type CantonRefreshPartyFilter,\n isCantonDeferredSender,\n isCantonDeferredSentinel,\n} from '../deferredValue';\nimport type { JsActiveContract } from '../open-api/models';\nimport type {\n CantonCommands,\n CantonDisclosedContracts,\n CantonUnresolvedCommands,\n} from '../transaction';\nimport { getCreateArgumentField } from '../trusted-origin';\nimport { type ActiveContractRef, createContractAddressResolver } from './address-resolver';\nimport type { ResolveCantonOneSigExecution } from './onesig-execution';\nimport type {\n CantonActiveContractRefresh,\n CantonActiveContractSelection,\n CantonActiveContractValue,\n CantonActiveContractValueRefresh,\n CantonAmuletContextRefresh,\n CantonArgumentRefreshTarget,\n CantonContractSelector,\n CantonRefresh,\n CantonRefreshPath,\n CantonRefreshPlan,\n CantonRefreshTarget,\n CantonTimestampRefresh,\n} from './plan';\n\nconst DAML_DECIMAL_SCALE = 10n ** 10n;\nconst MAX_SELECTED_CONTRACTS = 100;\nconst CANTON_TIME_PATTERN = /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,9})?Z$/;\n\nconst resolveParty = (\n partyRef: CantonRefreshPartyFilter,\n senderParty: string | undefined,\n label: string,\n): string => {\n if (!isCantonDeferredSender(partyRef)) return partyRef.party;\n if (!senderParty) {\n throw new Error(`${label} requires a resolved sender party`);\n }\n return senderParty;\n};\n\nconst parseDamlDecimal = (value: unknown, label: string): bigint => {\n if (typeof value !== 'string') {\n throw new Error(`${label} must be a DAML Decimal string`);\n }\n const match = /^([+-]?)(\\d+)(?:\\.(\\d{0,10}))?$/.exec(value);\n if (!match) {\n throw new Error(`${label} is not a valid DAML Decimal: ${value}`);\n }\n const sign = match[1] === '-' ? -1n : 1n;\n const whole = BigInt(match[2]!);\n const fraction = BigInt((match[3] ?? '').padEnd(10, '0'));\n return sign * (whole * DAML_DECIMAL_SCALE + fraction);\n};\n\nconst getContractNumericField = (contract: JsActiveContract, field: string): bigint => {\n const raw = getCreateArgumentField(contract.createdEvent.createArgument, field);\n const value =\n raw !== null && typeof raw === 'object' && 'initialAmount' in raw\n ? (raw as { initialAmount?: unknown }).initialAmount\n : raw;\n return parseDamlDecimal(\n value,\n `Contract ${contract.createdEvent.contractId} numeric field ${field}`,\n );\n};\n\nexport const selectContractsByGte = (\n contracts: JsActiveContract[],\n field: string,\n requestedValue: string,\n): JsActiveContract[] => {\n const requested = parseDamlDecimal(requestedValue, 'Requested contract value');\n if (requested <= 0n) {\n throw new Error('Requested contract value must be positive');\n }\n\n const candidates = contracts\n .map((contract) => ({\n contract,\n amount: getContractNumericField(contract, field),\n }))\n .filter(({ amount }) => amount > 0n)\n .sort((left, right) =>\n left.amount === right.amount\n ? left.contract.createdEvent.contractId.localeCompare(\n right.contract.createdEvent.contractId,\n )\n : left.amount > right.amount\n ? -1\n : 1,\n );\n\n const selected: JsActiveContract[] = [];\n let total = 0n;\n for (const candidate of candidates) {\n selected.push(candidate.contract);\n total += candidate.amount;\n if (total >= requested) break;\n }\n\n if (total < requested) {\n throw new Error(\n `Insufficient contract value in field ${field}: requested ${requestedValue}, found ${total.toString()} base units`,\n );\n }\n if (selected.length > MAX_SELECTED_CONTRACTS) {\n throw new Error(\n `Selection needs ${selected.length} contracts, exceeding the ${MAX_SELECTED_CONTRACTS} input limit`,\n );\n }\n return selected;\n};\n\nconst makeActiveContractRef = (selector: CantonContractSelector): ActiveContractRef => ({\n type: 'activeContractIds',\n partyToFilter: selector.queryAs,\n expectedSignatories: selector.expectedSignatories,\n templateId: selector.templateId,\n contractStateFilter: selector.stateFilter,\n});\n\nconst resolveContractValue = async (\n resolver: ReturnType<typeof createContractAddressResolver>,\n source: CantonActiveContractValue,\n): Promise<string> => {\n const contracts = await resolver.resolveActiveContracts(makeActiveContractRef(source.selector));\n if (contracts.length !== 1) {\n throw new Error(\n `Active contract value matched ${contracts.length} contracts, expected exactly one`,\n );\n }\n const value = getCreateArgumentField(contracts[0]!.createdEvent.createArgument, source.field);\n if (parseDamlDecimal(value, `Contract value ${source.field}`) <= 0n) {\n throw new Error(`Contract value ${source.field} must be positive`);\n }\n return value as string;\n};\n\nconst selectActiveContracts = async (\n contracts: JsActiveContract[],\n selection: CantonActiveContractSelection,\n resolver: ReturnType<typeof createContractAddressResolver>,\n): Promise<JsActiveContract[]> => {\n switch (selection.kind) {\n case 'exactlyOne':\n if (contracts.length !== 1) {\n throw new Error(\n `Active contract selection matched ${contracts.length} contracts, expected exactly one`,\n );\n }\n return contracts;\n case 'all':\n return contracts;\n case 'gte':\n return selectContractsByGte(\n contracts,\n selection.field,\n typeof selection.value === 'string'\n ? selection.value\n : await resolveContractValue(resolver, selection.value),\n );\n }\n};\n\nexport const resolveCantonActiveContracts = async (args: {\n client: ICantonClient;\n selector: CantonContractSelector;\n selection: CantonActiveContractSelection;\n senderParty?: string;\n}): Promise<{ contractIds: string[] }> => {\n const queryParty = resolveParty(\n args.selector.queryAs,\n args.senderParty,\n 'Active contract selection',\n );\n const ref = makeActiveContractRef(args.selector);\n const resolver = createContractAddressResolver({\n client: args.client,\n senderParty: args.senderParty,\n signingParties: [queryParty],\n appendDisclosures: () => undefined,\n });\n const selected = await selectActiveContracts(\n await resolver.resolveActiveContracts(ref),\n args.selection,\n resolver,\n );\n return {\n contractIds: selected.map(({ createdEvent }) => createdEvent.contractId),\n };\n};\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n value !== null && typeof value === 'object' && !Array.isArray(value);\n\nconst isCantonTime = (value: unknown): value is string =>\n typeof value === 'string' &&\n CANTON_TIME_PATTERN.test(value) &&\n Number.isFinite(Date.parse(value));\n\nconst isActiveContractRefresh = (refresh: CantonRefresh): refresh is CantonActiveContractRefresh =>\n refresh.resolver.type === 'activeContract';\n\nconst isActiveContractValueRefresh = (\n refresh: CantonRefresh,\n): refresh is CantonActiveContractValueRefresh => refresh.resolver.type === 'activeContractValue';\n\nconst isAmuletContextRefresh = (refresh: CantonRefresh): refresh is CantonAmuletContextRefresh =>\n refresh.resolver.type === 'amuletContext';\n\nconst isTimestampRefresh = (refresh: CantonRefresh): refresh is CantonTimestampRefresh =>\n refresh.resolver.type === 'timestamp';\n\nconst replaceAtPath = (root: unknown, path: CantonRefreshPath, value: unknown): unknown => {\n if (path.length === 0) return value;\n\n let current = root;\n for (const [position, segment] of path.entries()) {\n const isLast = position === path.length - 1;\n if ('field' in segment) {\n if (!isRecord(current) || !(segment.field in current)) {\n throw new Error(`Refresh target field \"${segment.field}\" does not exist`);\n }\n if (isLast) {\n current[segment.field] = value;\n return root;\n }\n current = current[segment.field];\n continue;\n }\n if ('index' in segment) {\n if (!Array.isArray(current) || segment.index >= current.length) {\n throw new Error(`Refresh target array index ${segment.index} does not exist`);\n }\n if (isLast) {\n current[segment.index] = value;\n return root;\n }\n current = current[segment.index];\n continue;\n }\n\n if (!Array.isArray(current)) {\n throw new Error(`Refresh target DAML map \"${segment.damlMapKey}\" is not an array`);\n }\n const matches = current.filter(\n (entry): entry is [string, unknown] =>\n Array.isArray(entry) && entry.length === 2 && entry[0] === segment.damlMapKey,\n );\n if (matches.length !== 1) {\n throw new Error(\n `Refresh target DAML map key \"${segment.damlMapKey}\" matched ${matches.length} entries`,\n );\n }\n if (isLast) {\n matches[0]![1] = value;\n return root;\n }\n current = matches[0]![1];\n }\n return root;\n};\n\nconst readAtPath = (root: unknown, path: CantonRefreshPath): unknown => {\n let current = root;\n for (const segment of path) {\n if ('field' in segment) {\n if (!isRecord(current) || !(segment.field in current)) {\n throw new Error(`Refresh target field \"${segment.field}\" does not exist`);\n }\n current = current[segment.field];\n continue;\n }\n if ('index' in segment) {\n if (!Array.isArray(current) || segment.index >= current.length) {\n throw new Error(`Refresh target array index ${segment.index} does not exist`);\n }\n current = current[segment.index];\n continue;\n }\n\n if (!Array.isArray(current)) {\n throw new Error(`Refresh target DAML map \"${segment.damlMapKey}\" is not an array`);\n }\n const matches = current.filter(\n (entry): entry is [string, unknown] =>\n Array.isArray(entry) && entry.length === 2 && entry[0] === segment.damlMapKey,\n );\n if (matches.length !== 1) {\n throw new Error(\n `Refresh target DAML map key \"${segment.damlMapKey}\" matched ${matches.length} entries`,\n );\n }\n current = matches[0]![1];\n }\n return current;\n};\n\nconst readTarget = (\n commands: CantonUnresolvedCommands,\n target: CantonArgumentRefreshTarget,\n path: CantonRefreshPath,\n): unknown => {\n const command = commands[target.commandIndex];\n if (!command) {\n throw new Error(`Refresh command index ${target.commandIndex} does not exist`);\n }\n\n if (target.command === 'exercise') {\n if (!('exerciseCommand' in command)) {\n throw new Error(`Refresh command index ${target.commandIndex} is not an exercise`);\n }\n if (command.exerciseCommand.choice !== target.choice) {\n throw new Error(\n `Refresh command index ${target.commandIndex} expected choice ${target.choice}, found ${command.exerciseCommand.choice}`,\n );\n }\n return readAtPath(command.exerciseCommand.choiceArgument, path);\n }\n\n if (!('createCommand' in command)) {\n throw new Error(`Refresh command index ${target.commandIndex} is not a create`);\n }\n if (command.createCommand.templateId !== target.template) {\n throw new Error(\n `Refresh command index ${target.commandIndex} expected template ${target.template}, found ${command.createCommand.templateId}`,\n );\n }\n return readAtPath(command.createCommand.createArguments, path);\n};\n\nconst applyPatch = (\n commands: CantonUnresolvedCommands,\n target: CantonArgumentRefreshTarget,\n path: CantonRefreshPath,\n value: unknown,\n): void => {\n const command = commands[target.commandIndex];\n if (!command) {\n throw new Error(`Refresh command index ${target.commandIndex} does not exist`);\n }\n\n if (target.command === 'exercise') {\n if (!('exerciseCommand' in command)) {\n throw new Error(`Refresh command index ${target.commandIndex} is not an exercise`);\n }\n if (command.exerciseCommand.choice !== target.choice) {\n throw new Error(\n `Refresh command index ${target.commandIndex} expected choice ${target.choice}, found ${command.exerciseCommand.choice}`,\n );\n }\n command.exerciseCommand.choiceArgument = replaceAtPath(\n command.exerciseCommand.choiceArgument,\n path,\n value,\n );\n return;\n }\n\n if (!('createCommand' in command)) {\n throw new Error(`Refresh command index ${target.commandIndex} is not a create`);\n }\n if (command.createCommand.templateId !== target.template) {\n throw new Error(\n `Refresh command index ${target.commandIndex} expected template ${target.template}, found ${command.createCommand.templateId}`,\n );\n }\n command.createCommand.createArguments = replaceAtPath(\n command.createCommand.createArguments,\n path,\n value,\n );\n};\n\nconst applyTarget = (\n commands: CantonUnresolvedCommands,\n target: CantonRefreshTarget,\n value: unknown,\n): void => {\n if ('field' in target) {\n const command = commands[target.commandIndex];\n if (!command) {\n throw new Error(`Refresh command index ${target.commandIndex} does not exist`);\n }\n if (!('exerciseCommand' in command)) {\n throw new Error(`Refresh command index ${target.commandIndex} is not an exercise`);\n }\n if (typeof value !== 'string') {\n throw new Error('Exercise contract ID refresh must resolve to a string');\n }\n command.exerciseCommand.contractId = value;\n return;\n }\n\n for (const argument of target.arguments) {\n applyPatch(commands, target, argument.path, value);\n }\n};\n\nconst containsDeferredSentinel = (value: unknown, key?: string): boolean => {\n if (key === 'createdEventBlob') return false;\n if (isCantonDeferredSentinel(value)) return true;\n if (Array.isArray(value)) return value.some((item) => containsDeferredSentinel(item));\n if (!isRecord(value)) return false;\n return Object.entries(value).some(([childKey, child]) =>\n containsDeferredSentinel(child, childKey),\n );\n};\n\nconst disclosuresEqual = (\n left: CantonDisclosedContracts[number],\n right: CantonDisclosedContracts[number],\n): boolean =>\n left.contractId === right.contractId &&\n left.templateId === right.templateId &&\n left.createdEventBlob === right.createdEventBlob &&\n left.synchronizerId === right.synchronizerId;\n\nexport const resolveCantonRefreshPlan = async (args: {\n unresolvedCommands: CantonUnresolvedCommands;\n unresolvedDisclosedContracts: CantonDisclosedContracts;\n refreshPlan: CantonRefreshPlan;\n resolveOneSigExecution?: ResolveCantonOneSigExecution;\n senderParty?: string;\n signingParties: string[];\n client: ICantonClient;\n}): Promise<{ commands: CantonCommands; disclosedContracts: CantonDisclosedContracts }> => {\n if (\n containsDeferredSentinel(args.unresolvedCommands) ||\n containsDeferredSentinel(args.unresolvedDisclosedContracts)\n ) {\n throw new Error('Canton refreshPlan cannot be combined with deferred sentinels');\n }\n\n if (args.refreshPlan.oneSigExecution) {\n const operationIndex = args.refreshPlan.oneSigExecution.commandIndex;\n for (const refresh of args.refreshPlan.commands)\n for (const target of refresh.targets) {\n if (!('commandIndex' in target) || target.commandIndex !== operationIndex) continue;\n if (\n 'field' in target ||\n target.command !== 'exercise' ||\n target.choice !== 'OneSig_ExecuteTransaction' ||\n target.arguments.some(\n ({ path }) =>\n path.length !== 1 ||\n !('field' in path[0]!) ||\n !['configCid', 'amuletCids', 'amuletContext'].includes(path[0]!.field),\n )\n ) {\n throw new Error(\n 'OneSig refresh cannot modify signed fields or its pinned anchor',\n );\n }\n }\n }\n\n const commands = structuredClone(args.unresolvedCommands);\n const baselineDisclosureCids = new Set(\n args.unresolvedDisclosedContracts.map(({ contractId }) => contractId),\n );\n const originalCids = new Set(args.refreshPlan.disclosures?.originalCids ?? []);\n for (const contractId of originalCids) {\n if (!baselineDisclosureCids.has(contractId)) {\n throw new Error(\n `Original disclosure ${contractId} cannot be refreshed: it is not present in unresolvedDisclosedContracts`,\n );\n }\n }\n const disclosureMap = new Map<string, CantonDisclosedContracts[number]>();\n const appendDisclosures = (disclosures: CantonDisclosedContracts): void => {\n for (const disclosure of disclosures) {\n const existing = disclosureMap.get(disclosure.contractId);\n if (existing && !disclosuresEqual(existing, disclosure)) {\n throw new Error(`Conflicting disclosures for contract ${disclosure.contractId}`);\n }\n disclosureMap.set(disclosure.contractId, disclosure);\n }\n };\n appendDisclosures(\n args.unresolvedDisclosedContracts.filter(({ contractId }) => !originalCids.has(contractId)),\n );\n\n const resolver = createContractAddressResolver({\n client: args.client,\n senderParty: args.senderParty,\n signingParties: args.signingParties,\n appendDisclosures,\n });\n\n for (const refresh of args.refreshPlan.commands) {\n if (isActiveContractRefresh(refresh)) {\n const ref = makeActiveContractRef(refresh.resolver.selector);\n const selected = await selectActiveContracts(\n await resolver.resolveActiveContracts(ref),\n refresh.resolver.selection,\n resolver,\n );\n await resolver.discloseActiveContracts(ref, selected);\n const contractIds = selected.map(({ createdEvent }) => createdEvent.contractId);\n const resolved =\n refresh.resolver.selection.kind === 'exactlyOne' ? contractIds[0]! : contractIds;\n for (const target of refresh.targets) applyTarget(commands, target, resolved);\n continue;\n }\n\n if (isActiveContractValueRefresh(refresh)) {\n const value = await resolveContractValue(resolver, refresh.resolver);\n for (const target of refresh.targets) applyTarget(commands, target, value);\n continue;\n }\n\n if (isAmuletContextRefresh(refresh)) {\n const bundle = await args.client.getAmuletContextWithExternalRules({\n admin: refresh.resolver.dsoParty,\n id: 'Amulet',\n });\n appendDisclosures(bundle.disclosedContracts);\n for (const target of refresh.targets) {\n applyTarget(commands, target, bundle.amuletContext);\n }\n }\n }\n\n const operation = args.refreshPlan.oneSigExecution;\n if (operation) {\n if (!args.resolveOneSigExecution) throw new Error('OneSig context resolver is required');\n const command = commands[operation.commandIndex];\n if (\n !command ||\n !('exerciseCommand' in command) ||\n command.exerciseCommand.choice !== 'OneSig_ExecuteTransaction'\n ) {\n throw new Error('OneSig refresh requires OneSig_ExecuteTransaction');\n }\n const argument = command.exerciseCommand.choiceArgument;\n if (\n !isRecord(argument) ||\n !isRecord(argument.transaction) ||\n !Array.isArray(argument.transaction.calls)\n ) {\n throw new Error('Malformed OneSig transaction calls');\n }\n const calls = argument.transaction.calls;\n const resolved = await args.resolveOneSigExecution({\n policy: operation,\n command: structuredClone(command.exerciseCommand),\n client: args.client,\n senderParty: args.senderParty,\n });\n if (resolved.contexts.length !== calls.length) {\n throw new Error('OneSig refreshed context count does not match signed calls');\n }\n for (const [index, entry] of calls.entries()) {\n const context = resolved.contexts[index]!;\n if (!isRecord(entry) || !isRecord(entry.context) || context.tag !== entry.context.tag) {\n throw new Error(`OneSig context variant changed at call ${index}`);\n }\n entry.context = structuredClone(context);\n }\n appendDisclosures(resolved.disclosedContracts);\n }\n\n // Timestamp refreshes run after all external reads so their shared instant is\n // as close as possible to prepareForSigning, regardless of declaration order.\n const now = new Date();\n for (const refresh of args.refreshPlan.commands) {\n if (!isTimestampRefresh(refresh)) continue;\n\n for (const target of refresh.targets) {\n for (const { path, offsetMs = 0 } of target.arguments) {\n const iso = new Date(now.getTime() + offsetMs).toISOString();\n const current = readTarget(commands, target, path);\n let value: unknown;\n if (isCantonTime(current)) {\n value = iso;\n } else if (\n isRecord(current) &&\n current.tag === 'AV_Time' &&\n isCantonTime(current.value)\n ) {\n value = { ...current, value: iso };\n } else {\n throw new Error('Timestamp refresh target must contain a Canton Time value');\n }\n applyPatch(commands, target, path, value);\n }\n }\n }\n\n return {\n commands: commands as CantonCommands,\n disclosedContracts: [...disclosureMap.values()],\n };\n};\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { TransactionFromJSON, TransactionToJSON } from './
|
|
1
|
+
import { TransactionFromJSON, TransactionToJSON } from './NKSFRE2D.js';
|
|
2
2
|
import { __name } from './VUOMXK5T.js';
|
|
3
3
|
|
|
4
4
|
// src/open-api/models/UpdateOneOf3.ts
|
|
@@ -35,5 +35,5 @@ function UpdateOneOf3ToJSONTyped(value, ignoreDiscriminator = false) {
|
|
|
35
35
|
__name(UpdateOneOf3ToJSONTyped, "UpdateOneOf3ToJSONTyped");
|
|
36
36
|
|
|
37
37
|
export { UpdateOneOf3FromJSON, UpdateOneOf3FromJSONTyped, UpdateOneOf3ToJSON, UpdateOneOf3ToJSONTyped, instanceOfUpdateOneOf3 };
|
|
38
|
-
//# sourceMappingURL=
|
|
39
|
-
//# sourceMappingURL=
|
|
38
|
+
//# sourceMappingURL=CVQHQLYE.js.map
|
|
39
|
+
//# sourceMappingURL=CVQHQLYE.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/open-api/models/UpdateOneOf3.ts"],"names":["instanceOfUpdateOneOf3","value","undefined","UpdateOneOf3FromJSON","json","UpdateOneOf3FromJSONTyped","ignoreDiscriminator","TransactionFromJSON","UpdateOneOf3ToJSON","UpdateOneOf3ToJSONTyped","TransactionToJSON"],"mappings":";;;;AAwCO,SAASA,uBAAuBC,KAAAA,EAAa;AAChD,EAAA,IAAI,EAAE,aAAA,IAAiBA,KAAAA,CAAAA,IAAUA,MAAM,aAAA,CAAA,KAAmBC,QAAW,OAAO,KAAA;AAC5E,EAAA,OAAO,IAAA;AACX;AAHgBF,MAAAA,CAAAA,sBAAAA,EAAAA,wBAAAA,CAAAA;AAKT,SAASG,qBAAqBC,IAAAA,EAAS;AAC1C,EAAA,OAAOC,yBAAAA,CAA0BD,IAAM,CAAA;AAC3C;AAFgBD,MAAAA,CAAAA,oBAAAA,EAAAA,sBAAAA,CAAAA;AAIT,SAASE,yBAAAA,CAA0BD,MAAWE,mBAAAA,EAA4B;AAC7E,EAAA,IAAIF,QAAQ,IAAA,EAAM;AACd,IAAA,OAAOA,IAAAA;AACX,EAAA;AACA,EAAA,OAAO;IAEH,aAAA,EAAeG,mBAAAA,CAAoBH,IAAAA,CAAK,aAAA,CAAc;AAC1D,GAAA;AACJ;AARgBC,MAAAA,CAAAA,yBAAAA,EAAAA,2BAAAA,CAAAA;AAUT,SAASG,mBAAmBJ,IAAAA,EAAS;AACxC,EAAA,OAAOK,uBAAAA,CAAwBL,MAAM,KAAA,CAAA;AACzC;AAFgBI,MAAAA,CAAAA,kBAAAA,EAAAA,oBAAAA,CAAAA;AAIT,SAASC,uBAAAA,CAAwBR,KAAAA,EAA6BK,mBAAAA,GAA+B,KAAA,EAAK;AACrG,EAAA,IAAIL,SAAS,IAAA,EAAM;AACf,IAAA,OAAOA,KAAAA;AACX,EAAA;AAEA,EAAA,OAAO;IAEH,aAAA,EAAeS,iBAAAA,CAAkBT,KAAAA,CAAM,aAAA,CAAc;AACzD,GAAA;AACJ;AATgBQ,MAAAA,CAAAA,uBAAAA,EAAAA,yBAAAA,CAAAA","file":"
|
|
1
|
+
{"version":3,"sources":["../src/open-api/models/UpdateOneOf3.ts"],"names":["instanceOfUpdateOneOf3","value","undefined","UpdateOneOf3FromJSON","json","UpdateOneOf3FromJSONTyped","ignoreDiscriminator","TransactionFromJSON","UpdateOneOf3ToJSON","UpdateOneOf3ToJSONTyped","TransactionToJSON"],"mappings":";;;;AAwCO,SAASA,uBAAuBC,KAAAA,EAAa;AAChD,EAAA,IAAI,EAAE,aAAA,IAAiBA,KAAAA,CAAAA,IAAUA,MAAM,aAAA,CAAA,KAAmBC,QAAW,OAAO,KAAA;AAC5E,EAAA,OAAO,IAAA;AACX;AAHgBF,MAAAA,CAAAA,sBAAAA,EAAAA,wBAAAA,CAAAA;AAKT,SAASG,qBAAqBC,IAAAA,EAAS;AAC1C,EAAA,OAAOC,yBAAAA,CAA0BD,IAAM,CAAA;AAC3C;AAFgBD,MAAAA,CAAAA,oBAAAA,EAAAA,sBAAAA,CAAAA;AAIT,SAASE,yBAAAA,CAA0BD,MAAWE,mBAAAA,EAA4B;AAC7E,EAAA,IAAIF,QAAQ,IAAA,EAAM;AACd,IAAA,OAAOA,IAAAA;AACX,EAAA;AACA,EAAA,OAAO;IAEH,aAAA,EAAeG,mBAAAA,CAAoBH,IAAAA,CAAK,aAAA,CAAc;AAC1D,GAAA;AACJ;AARgBC,MAAAA,CAAAA,yBAAAA,EAAAA,2BAAAA,CAAAA;AAUT,SAASG,mBAAmBJ,IAAAA,EAAS;AACxC,EAAA,OAAOK,uBAAAA,CAAwBL,MAAM,KAAA,CAAA;AACzC;AAFgBI,MAAAA,CAAAA,kBAAAA,EAAAA,oBAAAA,CAAAA;AAIT,SAASC,uBAAAA,CAAwBR,KAAAA,EAA6BK,mBAAAA,GAA+B,KAAA,EAAK;AACrG,EAAA,IAAIL,SAAS,IAAA,EAAM;AACf,IAAA,OAAOA,KAAAA;AACX,EAAA;AAEA,EAAA,OAAO;IAEH,aAAA,EAAeS,iBAAAA,CAAkBT,KAAAA,CAAM,aAAA,CAAc;AACzD,GAAA;AACJ;AATgBQ,MAAAA,CAAAA,uBAAAA,EAAAA,yBAAAA,CAAAA","file":"CVQHQLYE.js","sourcesContent":["/* tslint:disable */\n/* eslint-disable */\n/**\n * JSON Ledger API HTTP endpoints\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 3.4.3-SNAPSHOT\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime.js';\nimport type { Transaction } from './Transaction.js';\nimport {\n TransactionFromJSON,\n TransactionFromJSONTyped,\n TransactionToJSON,\n TransactionToJSONTyped,\n} from './Transaction.js';\n\n/**\n * \n * @export\n * @interface UpdateOneOf3\n */\nexport interface UpdateOneOf3 {\n /**\n * \n * @type {Transaction}\n * @memberof UpdateOneOf3\n */\n transaction: Transaction;\n}\n\n/**\n * Check if a given object implements the UpdateOneOf3 interface.\n */\nexport function instanceOfUpdateOneOf3(value: object): value is UpdateOneOf3 {\n if (!('transaction' in value) || value['transaction'] === undefined) return false;\n return true;\n}\n\nexport function UpdateOneOf3FromJSON(json: any): UpdateOneOf3 {\n return UpdateOneOf3FromJSONTyped(json, false);\n}\n\nexport function UpdateOneOf3FromJSONTyped(json: any, ignoreDiscriminator: boolean): UpdateOneOf3 {\n if (json == null) {\n return json;\n }\n return {\n \n 'transaction': TransactionFromJSON(json['Transaction']),\n };\n}\n\nexport function UpdateOneOf3ToJSON(json: any): UpdateOneOf3 {\n return UpdateOneOf3ToJSONTyped(json, false);\n}\n\nexport function UpdateOneOf3ToJSONTyped(value?: UpdateOneOf3 | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'Transaction': TransactionToJSON(value['transaction']),\n };\n}\n\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { TraceContextFromJSON, TraceContextToJSON } from './P4OZVLZ5.js';
|
|
2
|
-
import { DeduplicationPeriod1FromJSON, DeduplicationPeriod1ToJSON } from './
|
|
2
|
+
import { DeduplicationPeriod1FromJSON, DeduplicationPeriod1ToJSON } from './Z74KDZ47.js';
|
|
3
3
|
import { JsStatusFromJSON, JsStatusToJSON } from './TQODWV5P.js';
|
|
4
4
|
import { SynchronizerTimeFromJSON, SynchronizerTimeToJSON } from './BMVKXYRP.js';
|
|
5
5
|
import { __name } from './VUOMXK5T.js';
|
|
@@ -61,5 +61,5 @@ function Completion1ToJSONTyped(value, ignoreDiscriminator = false) {
|
|
|
61
61
|
__name(Completion1ToJSONTyped, "Completion1ToJSONTyped");
|
|
62
62
|
|
|
63
63
|
export { Completion1FromJSON, Completion1FromJSONTyped, Completion1ToJSON, Completion1ToJSONTyped, instanceOfCompletion1 };
|
|
64
|
-
//# sourceMappingURL=
|
|
65
|
-
//# sourceMappingURL=
|
|
64
|
+
//# sourceMappingURL=CXV5NOWI.js.map
|
|
65
|
+
//# sourceMappingURL=CXV5NOWI.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/open-api/models/Completion1.ts"],"names":["instanceOfCompletion1","value","undefined","Completion1FromJSON","json","Completion1FromJSONTyped","ignoreDiscriminator","JsStatusFromJSON","DeduplicationPeriod1FromJSON","TraceContextFromJSON","SynchronizerTimeFromJSON","Completion1ToJSON","Completion1ToJSONTyped","JsStatusToJSON","DeduplicationPeriod1ToJSON","TraceContextToJSON","SynchronizerTimeToJSON"],"mappings":"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","file":"
|
|
1
|
+
{"version":3,"sources":["../src/open-api/models/Completion1.ts"],"names":["instanceOfCompletion1","value","undefined","Completion1FromJSON","json","Completion1FromJSONTyped","ignoreDiscriminator","JsStatusFromJSON","DeduplicationPeriod1FromJSON","TraceContextFromJSON","SynchronizerTimeFromJSON","Completion1ToJSON","Completion1ToJSONTyped","JsStatusToJSON","DeduplicationPeriod1ToJSON","TraceContextToJSON","SynchronizerTimeToJSON"],"mappings":"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","file":"CXV5NOWI.js","sourcesContent":["/* tslint:disable */\n/* eslint-disable */\n/**\n * JSON Ledger API HTTP endpoints\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 3.4.3-SNAPSHOT\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime.js';\nimport type { DeduplicationPeriod1 } from './DeduplicationPeriod1.js';\nimport {\n DeduplicationPeriod1FromJSON,\n DeduplicationPeriod1FromJSONTyped,\n DeduplicationPeriod1ToJSON,\n DeduplicationPeriod1ToJSONTyped,\n} from './DeduplicationPeriod1.js';\nimport type { SynchronizerTime } from './SynchronizerTime.js';\nimport {\n SynchronizerTimeFromJSON,\n SynchronizerTimeFromJSONTyped,\n SynchronizerTimeToJSON,\n SynchronizerTimeToJSONTyped,\n} from './SynchronizerTime.js';\nimport type { TraceContext } from './TraceContext.js';\nimport {\n TraceContextFromJSON,\n TraceContextFromJSONTyped,\n TraceContextToJSON,\n TraceContextToJSONTyped,\n} from './TraceContext.js';\nimport type { JsStatus } from './JsStatus.js';\nimport {\n JsStatusFromJSON,\n JsStatusFromJSONTyped,\n JsStatusToJSON,\n JsStatusToJSONTyped,\n} from './JsStatus.js';\n\n/**\n * A completion represents the status of a submitted command on the ledger: it can be successful or failed.\n * @export\n * @interface Completion1\n */\nexport interface Completion1 {\n /**\n * The ID of the succeeded or failed command.\n * Must be a valid LedgerString (as described in ``value.proto``).\n * Required\n * @type {string}\n * @memberof Completion1\n */\n commandId: string;\n /**\n * \n * @type {JsStatus}\n * @memberof Completion1\n */\n status?: JsStatus;\n /**\n * The update_id of the transaction or reassignment that resulted from the command with command_id.\n * Only set for successfully executed commands.\n * Must be a valid LedgerString (as described in ``value.proto``).\n * @type {string}\n * @memberof Completion1\n */\n updateId: string;\n /**\n * The user-id that was used for the submission, as described in ``commands.proto``.\n * Must be a valid UserIdString (as described in ``value.proto``).\n * Optional for historic completions where this data is not available.\n * @type {string}\n * @memberof Completion1\n */\n userId: string;\n /**\n * The set of parties on whose behalf the commands were executed.\n * Contains the ``act_as`` parties from ``commands.proto``\n * filtered to the requesting parties in CompletionStreamRequest.\n * The order of the parties need not be the same as in the submission.\n * Each element must be a valid PartyIdString (as described in ``value.proto``).\n * Optional for historic completions where this data is not available.\n * @type {Array<string>}\n * @memberof Completion1\n */\n actAs?: Array<string>;\n /**\n * The submission ID this completion refers to, as described in ``commands.proto``.\n * Must be a valid LedgerString (as described in ``value.proto``).\n * Optional\n * @type {string}\n * @memberof Completion1\n */\n submissionId: string;\n /**\n * \n * @type {DeduplicationPeriod1}\n * @memberof Completion1\n */\n deduplicationPeriod: DeduplicationPeriod1;\n /**\n * \n * @type {TraceContext}\n * @memberof Completion1\n */\n traceContext?: TraceContext;\n /**\n * May be used in a subsequent CompletionStreamRequest to resume the consumption of this stream at a later time.\n * Required, must be a valid absolute offset (positive integer).\n * @type {number}\n * @memberof Completion1\n */\n offset: number;\n /**\n * \n * @type {SynchronizerTime}\n * @memberof Completion1\n */\n synchronizerTime?: SynchronizerTime;\n}\n\n/**\n * Check if a given object implements the Completion1 interface.\n */\nexport function instanceOfCompletion1(value: object): value is Completion1 {\n if (!('commandId' in value) || value['commandId'] === undefined) return false;\n if (!('updateId' in value) || value['updateId'] === undefined) return false;\n if (!('userId' in value) || value['userId'] === undefined) return false;\n if (!('submissionId' in value) || value['submissionId'] === undefined) return false;\n if (!('deduplicationPeriod' in value) || value['deduplicationPeriod'] === undefined) return false;\n if (!('offset' in value) || value['offset'] === undefined) return false;\n return true;\n}\n\nexport function Completion1FromJSON(json: any): Completion1 {\n return Completion1FromJSONTyped(json, false);\n}\n\nexport function Completion1FromJSONTyped(json: any, ignoreDiscriminator: boolean): Completion1 {\n if (json == null) {\n return json;\n }\n return {\n \n 'commandId': json['commandId'],\n 'status': json['status'] == null ? undefined : JsStatusFromJSON(json['status']),\n 'updateId': json['updateId'],\n 'userId': json['userId'],\n 'actAs': json['actAs'] == null ? undefined : json['actAs'],\n 'submissionId': json['submissionId'],\n 'deduplicationPeriod': DeduplicationPeriod1FromJSON(json['deduplicationPeriod']),\n 'traceContext': json['traceContext'] == null ? undefined : TraceContextFromJSON(json['traceContext']),\n 'offset': json['offset'],\n 'synchronizerTime': json['synchronizerTime'] == null ? undefined : SynchronizerTimeFromJSON(json['synchronizerTime']),\n };\n}\n\nexport function Completion1ToJSON(json: any): Completion1 {\n return Completion1ToJSONTyped(json, false);\n}\n\nexport function Completion1ToJSONTyped(value?: Completion1 | null, ignoreDiscriminator: boolean = false): any {\n if (value == null) {\n return value;\n }\n\n return {\n \n 'commandId': value['commandId'],\n 'status': JsStatusToJSON(value['status']),\n 'updateId': value['updateId'],\n 'userId': value['userId'],\n 'actAs': value['actAs'],\n 'submissionId': value['submissionId'],\n 'deduplicationPeriod': DeduplicationPeriod1ToJSON(value['deduplicationPeriod']),\n 'traceContext': TraceContextToJSON(value['traceContext']),\n 'offset': value['offset'],\n 'synchronizerTime': SynchronizerTimeToJSON(value['synchronizerTime']),\n };\n}\n\n"]}
|
|
@@ -1,16 +1,17 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { AMULET_INSTRUMENT_ID } from './
|
|
1
|
+
import { substituteRefsToCids } from './BSVJEBKM.js';
|
|
2
|
+
import { resolveCantonRefreshPlan } from './CMO2N5J7.js';
|
|
3
|
+
import { createContractAddressResolver } from './DDDXBNRD.js';
|
|
4
|
+
import { AMULET_INSTRUMENT_ID } from './QEE5QCHB.js';
|
|
5
5
|
import { __name } from './VUOMXK5T.js';
|
|
6
6
|
|
|
7
7
|
// src/refresh/resolve.ts
|
|
8
|
-
var resolveCantonTransaction = /* @__PURE__ */ __name(async ({ unresolvedCommands, unresolvedDisclosedContracts, refreshPlan, senderParty, signingParties, client }) => {
|
|
8
|
+
var resolveCantonTransaction = /* @__PURE__ */ __name(async ({ unresolvedCommands, unresolvedDisclosedContracts, refreshPlan, resolveOneSigExecution, senderParty, signingParties, client }) => {
|
|
9
9
|
if (refreshPlan) {
|
|
10
10
|
return resolveCantonRefreshPlan({
|
|
11
11
|
unresolvedCommands,
|
|
12
12
|
unresolvedDisclosedContracts,
|
|
13
13
|
refreshPlan,
|
|
14
|
+
resolveOneSigExecution,
|
|
14
15
|
senderParty,
|
|
15
16
|
signingParties,
|
|
16
17
|
client
|
|
@@ -78,5 +79,5 @@ var resolveCantonTransaction = /* @__PURE__ */ __name(async ({ unresolvedCommand
|
|
|
78
79
|
}, "resolveCantonTransaction");
|
|
79
80
|
|
|
80
81
|
export { resolveCantonTransaction };
|
|
81
|
-
//# sourceMappingURL=
|
|
82
|
-
//# sourceMappingURL=
|
|
82
|
+
//# sourceMappingURL=DCTO6JNO.js.map
|
|
83
|
+
//# sourceMappingURL=DCTO6JNO.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/refresh/resolve.ts"],"names":["resolveCantonTransaction","unresolvedCommands","unresolvedDisclosedContracts","refreshPlan","resolveOneSigExecution","senderParty","signingParties","client","resolveCantonRefreshPlan","nextDisclosed","disclosedContractIds","Set","map","contractId","appendDisclosures","disclosures","disclosure","has","add","push","resolveActiveContractId","resolveActiveContractIds","requireSenderParty","createContractAddressResolver","amuletBundlePromise","getAmuletBundle","dsoParty","getDsoParty","amuletContext","disclosedContracts","bundle","externalPartyAmuletRulesCid","getAmuletContextWithExternalRules","admin","id","AMULET_INSTRUMENT_ID","resolveRef","ref","type","resolvedCommands","substituteRefsToCids","resolvedDisclosedContracts","index","length","commands"],"mappings":";;;;;;;AAyBO,IAAMA,wBAAAA,mBAA2B,MAAA,CAAA,OAAO,EAC3CC,kBAAAA,EACAC,4BAAAA,EACAC,aACAC,sBAAAA,EACAC,WAAAA,EACAC,cAAAA,EACAC,MAAAA,EAAM,KACmB;AAIzB,EAAA,IAAIJ,WAAAA,EAAa;AACb,IAAA,OAAOK,wBAAAA,CAAyB;AAC5BP,MAAAA,kBAAAA;AACAC,MAAAA,4BAAAA;AACAC,MAAAA,WAAAA;AACAC,MAAAA,sBAAAA;AACAC,MAAAA,WAAAA;AACAC,MAAAA,cAAAA;AACAC,MAAAA;KACJ,CAAA;AACJ,EAAA;AAEA,EAAA,MAAME,aAAAA,GAAgB;AAAIP,IAAAA,GAAAA;;AAC1B,EAAA,MAAMQ,oBAAAA,GAAuB,IAAIC,GAAAA,CAC7BT,4BAAAA,CAA6BU,GAAAA,CAAI,CAAC,EAAEC,UAAAA,EAAU,KAAOA,UAAAA,CAAAA,CAAAA;AAEzD,EAAA,MAAMC,iBAAAA,2BAAqBC,WAAAA,KAAAA;AACvB,IAAA,KAAA,MAAWC,cAAcD,WAAAA,EAAa;AAClC,MAAA,IAAI,CAACL,oBAAAA,CAAqBO,GAAAA,CAAID,UAAAA,CAAWH,UAAU,CAAA,EAAG;AAClDH,QAAAA,oBAAAA,CAAqBQ,GAAAA,CAAIF,WAAWH,UAAU,CAAA;AAC9CJ,QAAAA,aAAAA,CAAcU,KAAKH,UAAAA,CAAAA;AACvB,MAAA;AACJ,IAAA;EACJ,CAAA,EAP0B,mBAAA,CAAA;AAS1B,EAAA,MAAM,EAAEI,uBAAAA,EAAyBC,wBAAAA,EAA0BC,kBAAAA,KACvDC,6BAAAA,CAA8B;AAC1BhB,IAAAA,MAAAA;AACAF,IAAAA,WAAAA;AACAC,IAAAA,cAAAA;AACAQ,IAAAA;GACJ,CAAA;AAEJ,EAAA,IAAIU,mBAAAA;AAOJ,EAAA,MAAMC,kCAAkB,MAAA,CAAA,YAAA;AACpB,IAAA,IAAI,CAACD,mBAAAA,EAAqB;AACtBA,MAAAA,mBAAAA,GAAAA,CAAuB,YAAA;AACnB,QAAA,MAAME,QAAAA,GAAW,MAAMnB,MAAAA,CAAOoB,WAAAA,EAAW;AACzC,QAAA,MAAM,EACFC,eACAC,kBAAAA,EAAoBC,MAAAA,EACpBC,6BAA2B,GAC3B,MAAMxB,OAAOyB,iCAAAA,CAAkC;UAC/CC,KAAAA,EAAOP,QAAAA;UACPQ,EAAAA,EAAIC;SACR,CAAA;AACArB,QAAAA,iBAAAA,CAAkBgB,MAAAA,CAAAA;AAClB,QAAA,OAAO;AAAEF,UAAAA,aAAAA;AAAeG,UAAAA;AAA4B,SAAA;MACxD,CAAA,GAAA;AACJ,IAAA;AACA,IAAA,OAAOP,mBAAAA;EACX,CAAA,EAjBwB,iBAAA,CAAA;AAmBxB,EAAA,MAAMY,UAAAA,iCAAoBC,GAAAA,KAAAA;AACtB,IAAA,QAAQA,IAAIC,IAAAA;MACR,KAAK,aAAA;AACD,QAAA,OAAOhB,kBAAAA,CAAmBe,IAAIC,IAAI,CAAA;MACtC,KAAK,kBAAA;AACD,QAAA,OAAOlB,wBAAwBiB,GAAAA,CAAAA;MACnC,KAAK,mBAAA;AACD,QAAA,OAAOhB,yBAAyBgB,GAAAA,CAAAA;MACpC,KAAK,gBAAA;AACD,QAAA,OAAA,CAAQ,MAAMZ,iBAAAA,EAAmBM,2BAAAA;MACrC,KAAK,eAAA;AACD,QAAA,OAAA,CAAQ,MAAMN,iBAAAA,EAAmBG,aAAAA;AACzC;EACJ,CAAA,EAbmB,YAAA,CAAA;AAenB,EAAA,MAAMW,gBAAAA,GAAmB,MAAMC,oBAAAA,CAAqBvC,kBAAAA,EAAoBmC,UAAAA,CAAAA;AACxE,EAAA,MAAMK,6BAAuD,EAAA;AAC7D,EAAA,KAAA,IAASC,KAAAA,GAAQ,CAAA,EAAGA,KAAAA,GAAQjC,aAAAA,CAAckC,QAAQD,KAAAA,EAAAA,EAAS;AACvDD,IAAAA,0BAAAA,CAA2BtB,KACvB,MAAMqB,oBAAAA,CAAqB/B,cAAciC,KAAAA,CAAAA,EAASN,UAAAA,CAAAA,CAAAA;AAE1D,EAAA;AAEA,EAAA,OAAO;IACHQ,QAAAA,EAAUL,gBAAAA;IACVV,kBAAAA,EAAoBY;AACxB,GAAA;AACJ,CAAA,EAlGwC,0BAAA","file":"DCTO6JNO.js","sourcesContent":["import { AMULET_INSTRUMENT_ID, type ChoiceContext } from '../client/amulet';\nimport type { ICantonClient } from '../client/interface';\nimport type { CantonDeferredValue } from '../deferredValue';\nimport type {\n CantonCommands,\n CantonDisclosedContracts,\n CantonUnresolvedCommands,\n} from '../transaction';\nimport { createContractAddressResolver } from './address-resolver';\nimport type { ResolveCantonOneSigExecution } from './onesig-execution';\nimport type { CantonRefreshPlan } from './plan';\nimport { resolveCantonRefreshPlan } from './resolve-plan';\nimport { substituteRefsToCids } from './reverse-substitute';\n\nexport interface ResolveCantonAddressParams {\n unresolvedCommands: CantonUnresolvedCommands;\n unresolvedDisclosedContracts: CantonDisclosedContracts;\n refreshPlan?: CantonRefreshPlan;\n resolveOneSigExecution?: ResolveCantonOneSigExecution;\n senderParty?: string;\n /** A contract is only disclosed when none of these parties is already a stakeholder on it. */\n signingParties: string[];\n client: ICantonClient;\n}\n\nexport const resolveCantonTransaction = async ({\n unresolvedCommands,\n unresolvedDisclosedContracts,\n refreshPlan,\n resolveOneSigExecution,\n senderParty,\n signingParties,\n client,\n}: ResolveCantonAddressParams): Promise<{\n commands: CantonCommands;\n disclosedContracts: CantonDisclosedContracts;\n}> => {\n if (refreshPlan) {\n return resolveCantonRefreshPlan({\n unresolvedCommands,\n unresolvedDisclosedContracts,\n refreshPlan,\n resolveOneSigExecution,\n senderParty,\n signingParties,\n client,\n });\n }\n\n const nextDisclosed = [...unresolvedDisclosedContracts];\n const disclosedContractIds = new Set(\n unresolvedDisclosedContracts.map(({ contractId }) => contractId),\n );\n const appendDisclosures = (disclosures: CantonDisclosedContracts): void => {\n for (const disclosure of disclosures) {\n if (!disclosedContractIds.has(disclosure.contractId)) {\n disclosedContractIds.add(disclosure.contractId);\n nextDisclosed.push(disclosure);\n }\n }\n };\n\n const { resolveActiveContractId, resolveActiveContractIds, requireSenderParty } =\n createContractAddressResolver({\n client,\n senderParty,\n signingParties,\n appendDisclosures,\n });\n\n let amuletBundlePromise:\n | Promise<{\n amuletContext: ChoiceContext;\n externalPartyAmuletRulesCid: string;\n }>\n | undefined;\n\n const getAmuletBundle = async () => {\n if (!amuletBundlePromise) {\n amuletBundlePromise = (async () => {\n const dsoParty = await client.getDsoParty();\n const {\n amuletContext,\n disclosedContracts: bundle,\n externalPartyAmuletRulesCid,\n } = await client.getAmuletContextWithExternalRules({\n admin: dsoParty,\n id: AMULET_INSTRUMENT_ID,\n });\n appendDisclosures(bundle);\n return { amuletContext, externalPartyAmuletRulesCid };\n })();\n }\n return amuletBundlePromise;\n };\n\n const resolveRef = async (ref: CantonDeferredValue): Promise<unknown> => {\n switch (ref.type) {\n case 'senderParty':\n return requireSenderParty(ref.type);\n case 'activeContractId':\n return resolveActiveContractId(ref);\n case 'activeContractIds':\n return resolveActiveContractIds(ref);\n case 'amuletRulesCid':\n return (await getAmuletBundle()).externalPartyAmuletRulesCid;\n case 'amuletContext':\n return (await getAmuletBundle()).amuletContext;\n }\n };\n\n const resolvedCommands = await substituteRefsToCids(unresolvedCommands, resolveRef);\n const resolvedDisclosedContracts: CantonDisclosedContracts = [];\n for (let index = 0; index < nextDisclosed.length; index++) {\n resolvedDisclosedContracts.push(\n await substituteRefsToCids(nextDisclosed[index]!, resolveRef),\n );\n }\n\n return {\n commands: resolvedCommands,\n disclosedContracts: resolvedDisclosedContracts,\n };\n};\n"]}
|