@bitgo-beta/sdk-coin-sol 7.6.4-beta.71 → 7.6.4-beta.710
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/cjs/src/bigint-buffer-guard.d.ts.map +1 -0
- package/dist/cjs/src/bigint-buffer-guard.js +29 -0
- package/dist/cjs/src/index.d.ts.map +1 -0
- package/dist/{src → cjs/src}/index.js +1 -1
- package/dist/{src → cjs/src}/lib/ataInitializationBuilder.d.ts +12 -1
- package/dist/cjs/src/lib/ataInitializationBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/ataInitializationBuilder.js +231 -0
- package/dist/cjs/src/lib/closeAtaBuilder.d.ts +55 -0
- package/dist/cjs/src/lib/closeAtaBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/closeAtaBuilder.js +162 -0
- package/dist/cjs/src/lib/confidentialTransferBuilder.d.ts +128 -0
- package/dist/cjs/src/lib/confidentialTransferBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/confidentialTransferBuilder.js +311 -0
- package/dist/{src → cjs/src}/lib/constants.d.ts +89 -2
- package/dist/cjs/src/lib/constants.d.ts.map +1 -0
- package/dist/cjs/src/lib/constants.js +269 -0
- package/dist/cjs/src/lib/customInstructionBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/customInstructionBuilder.js +289 -0
- package/dist/cjs/src/lib/explainTransactionWasm.d.ts +21 -0
- package/dist/cjs/src/lib/explainTransactionWasm.d.ts.map +1 -0
- package/dist/cjs/src/lib/explainTransactionWasm.js +304 -0
- package/dist/cjs/src/lib/iface.d.ts +526 -0
- package/dist/cjs/src/lib/iface.d.ts.map +1 -0
- package/dist/cjs/src/lib/iface.js +7 -0
- package/dist/{src → cjs/src}/lib/index.d.ts +5 -0
- package/dist/cjs/src/lib/index.d.ts.map +1 -0
- package/dist/cjs/src/lib/index.js +93 -0
- package/dist/{src → cjs/src}/lib/instructionParamsFactory.d.ts +3 -1
- package/dist/cjs/src/lib/instructionParamsFactory.d.ts.map +1 -0
- package/dist/cjs/src/lib/instructionParamsFactory.js +1220 -0
- package/dist/cjs/src/lib/jitoStakePoolOperations.d.ts.map +1 -0
- package/dist/cjs/src/lib/jitoStakePoolOperations.js +200 -0
- package/dist/{src → cjs/src}/lib/keyPair.d.ts +6 -0
- package/dist/cjs/src/lib/keyPair.d.ts.map +1 -0
- package/dist/cjs/src/lib/keyPair.js +112 -0
- package/dist/cjs/src/lib/messages/index.d.ts.map +1 -0
- package/dist/{src → cjs/src}/lib/messages/index.js +1 -1
- package/dist/cjs/src/lib/messages/messageBuilderFactory.d.ts.map +1 -0
- package/dist/cjs/src/lib/messages/messageBuilderFactory.js +19 -0
- package/dist/cjs/src/lib/recoverNestedAtaBuilder.d.ts +25 -0
- package/dist/cjs/src/lib/recoverNestedAtaBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/recoverNestedAtaBuilder.js +90 -0
- package/dist/cjs/src/lib/scaledUiAmount.d.ts +30 -0
- package/dist/cjs/src/lib/scaledUiAmount.d.ts.map +1 -0
- package/dist/cjs/src/lib/scaledUiAmount.js +112 -0
- package/dist/cjs/src/lib/serialization/codecs/v1/config.d.ts +21 -0
- package/dist/cjs/src/lib/serialization/codecs/v1/config.d.ts.map +1 -0
- package/dist/cjs/src/lib/serialization/codecs/v1/config.js +34 -0
- package/dist/cjs/src/lib/serialization/codecs/v1/instruction.d.ts +14 -0
- package/dist/cjs/src/lib/serialization/codecs/v1/instruction.d.ts.map +1 -0
- package/dist/cjs/src/lib/serialization/codecs/v1/instruction.js +32 -0
- package/dist/cjs/src/lib/serialization/codecs/v1/message.d.ts +27 -0
- package/dist/cjs/src/lib/serialization/codecs/v1/message.d.ts.map +1 -0
- package/dist/cjs/src/lib/serialization/codecs/v1/message.js +196 -0
- package/dist/cjs/src/lib/serialization/compileTransactionMessage.d.ts +30 -0
- package/dist/cjs/src/lib/serialization/compileTransactionMessage.d.ts.map +1 -0
- package/dist/cjs/src/lib/serialization/compileTransactionMessage.js +205 -0
- package/dist/cjs/src/lib/serialization/parseWireTransaction.d.ts +9 -0
- package/dist/cjs/src/lib/serialization/parseWireTransaction.d.ts.map +1 -0
- package/dist/cjs/src/lib/serialization/parseWireTransaction.js +58 -0
- package/dist/cjs/src/lib/serialization/wire-transaction.d.ts +14 -0
- package/dist/cjs/src/lib/serialization/wire-transaction.d.ts.map +1 -0
- package/dist/cjs/src/lib/serialization/wire-transaction.js +51 -0
- package/dist/{src → cjs/src}/lib/solInstructionFactory.d.ts +1 -1
- package/dist/cjs/src/lib/solInstructionFactory.d.ts.map +1 -0
- package/dist/cjs/src/lib/solInstructionFactory.js +1094 -0
- package/dist/cjs/src/lib/stakingActivateBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/stakingActivateBuilder.js +129 -0
- package/dist/cjs/src/lib/stakingAuthorizeBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/stakingAuthorizeBuilder.js +89 -0
- package/dist/cjs/src/lib/stakingDeactivateBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/stakingDeactivateBuilder.js +214 -0
- package/dist/cjs/src/lib/stakingDelegateBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/stakingDelegateBuilder.js +126 -0
- package/dist/cjs/src/lib/stakingRawMsgAuthorizeBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/stakingRawMsgAuthorizeBuilder.js +110 -0
- package/dist/cjs/src/lib/stakingWithdrawBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/stakingWithdrawBuilder.js +87 -0
- package/dist/cjs/src/lib/token2022Resolve.d.ts +106 -0
- package/dist/cjs/src/lib/token2022Resolve.d.ts.map +1 -0
- package/dist/cjs/src/lib/token2022Resolve.js +199 -0
- package/dist/cjs/src/lib/tokenExtensions.d.ts +26 -0
- package/dist/cjs/src/lib/tokenExtensions.d.ts.map +1 -0
- package/dist/cjs/src/lib/tokenExtensions.js +105 -0
- package/dist/{src → cjs/src}/lib/tokenTransferBuilder.d.ts +27 -1
- package/dist/cjs/src/lib/tokenTransferBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/tokenTransferBuilder.js +237 -0
- package/dist/{src → cjs/src}/lib/transaction.d.ts +22 -0
- package/dist/cjs/src/lib/transaction.d.ts.map +1 -0
- package/dist/cjs/src/lib/transaction.js +661 -0
- package/dist/{src → cjs/src}/lib/transactionBuilder.d.ts +9 -1
- package/dist/cjs/src/lib/transactionBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/transactionBuilder.js +388 -0
- package/dist/{src → cjs/src}/lib/transactionBuilderFactory.d.ts +14 -0
- package/dist/cjs/src/lib/transactionBuilderFactory.d.ts.map +1 -0
- package/dist/cjs/src/lib/transactionBuilderFactory.js +222 -0
- package/dist/cjs/src/lib/transferBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/transferBuilder.js +81 -0
- package/dist/cjs/src/lib/transferBuilderV2.d.ts +69 -0
- package/dist/cjs/src/lib/transferBuilderV2.d.ts.map +1 -0
- package/dist/cjs/src/lib/transferBuilderV2.js +252 -0
- package/dist/{src → cjs/src}/lib/utils.d.ts +5 -0
- package/dist/cjs/src/lib/utils.d.ts.map +1 -0
- package/dist/cjs/src/lib/utils.js +657 -0
- package/dist/cjs/src/lib/walletInitializationBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/walletInitializationBuilder.js +71 -0
- package/dist/cjs/src/register.d.ts +5 -0
- package/dist/cjs/src/register.d.ts.map +1 -0
- package/dist/cjs/src/register.js +29 -0
- package/dist/{src → cjs/src}/sol.d.ts +114 -3
- package/dist/cjs/src/sol.d.ts.map +1 -0
- package/dist/cjs/src/sol.js +1670 -0
- package/dist/{src → cjs/src}/solToken.d.ts +7 -0
- package/dist/cjs/src/solToken.d.ts.map +1 -0
- package/dist/cjs/src/solToken.js +79 -0
- package/dist/cjs/src/tsol.d.ts.map +1 -0
- package/dist/cjs/src/tsol.js +24 -0
- package/dist/{test → cjs/test}/fixtures/sol.d.ts.map +1 -1
- package/dist/cjs/test/fixtures/sol.js +1433 -0
- package/dist/{test → cjs/test}/resources/sol.d.ts +29 -29
- package/dist/cjs/test/resources/sol.d.ts.map +1 -0
- package/dist/cjs/test/resources/sol.js +320 -0
- package/dist/cjs/test/unit/explainTransactionWasm.d.ts +5 -0
- package/dist/cjs/test/unit/explainTransactionWasm.d.ts.map +1 -0
- package/dist/cjs/test/unit/explainTransactionWasm.js +66 -0
- package/dist/cjs/test/unit/fixtures/solBackupKey.d.ts.map +1 -0
- package/dist/cjs/test/unit/fixtures/solBackupKey.js +8 -0
- package/dist/cjs/test/unit/getBuilderFactory.d.ts.map +1 -0
- package/dist/cjs/test/unit/getBuilderFactory.js +10 -0
- package/dist/cjs/test/unit/instructionParamsFactory.d.ts.map +1 -0
- package/dist/cjs/test/unit/instructionParamsFactory.js +425 -0
- package/dist/cjs/test/unit/instructionParamsFactory.staking.d.ts.map +1 -0
- package/dist/cjs/test/unit/instructionParamsFactory.staking.js +1059 -0
- package/dist/cjs/test/unit/jitoWasmVerification.d.ts +2 -0
- package/dist/cjs/test/unit/jitoWasmVerification.d.ts.map +1 -0
- package/dist/cjs/test/unit/jitoWasmVerification.js +78 -0
- package/dist/{test → cjs/test}/unit/keyPair.d.ts.map +1 -1
- package/dist/cjs/test/unit/keyPair.js +177 -0
- package/dist/cjs/test/unit/messages/messageBuilderFactory.d.ts.map +1 -0
- package/dist/cjs/test/unit/messages/messageBuilderFactory.js +118 -0
- package/dist/cjs/test/unit/messages/simpleMessageBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/messages/simpleMessageBuilder.js +194 -0
- package/dist/cjs/test/unit/register.d.ts +2 -0
- package/dist/cjs/test/unit/register.d.ts.map +1 -0
- package/dist/cjs/test/unit/register.js +65 -0
- package/dist/cjs/test/unit/scaledUiAmount.d.ts +2 -0
- package/dist/cjs/test/unit/scaledUiAmount.d.ts.map +1 -0
- package/dist/cjs/test/unit/scaledUiAmount.js +101 -0
- package/dist/cjs/test/unit/serialization/decodeV1Message.d.ts +2 -0
- package/dist/cjs/test/unit/serialization/decodeV1Message.d.ts.map +1 -0
- package/dist/cjs/test/unit/serialization/decodeV1Message.js +63 -0
- package/dist/cjs/test/unit/serialization/parseWireTransaction.d.ts +2 -0
- package/dist/cjs/test/unit/serialization/parseWireTransaction.d.ts.map +1 -0
- package/dist/cjs/test/unit/serialization/parseWireTransaction.js +90 -0
- package/dist/cjs/test/unit/serialization/transactionV1.d.ts +2 -0
- package/dist/cjs/test/unit/serialization/transactionV1.d.ts.map +1 -0
- package/dist/cjs/test/unit/serialization/transactionV1.js +136 -0
- package/dist/{test → cjs/test}/unit/sol.d.ts.map +1 -1
- package/dist/cjs/test/unit/sol.js +5038 -0
- package/dist/cjs/test/unit/solInstructionFactory.d.ts.map +1 -0
- package/dist/cjs/test/unit/solInstructionFactory.js +623 -0
- package/dist/cjs/test/unit/solToken.d.ts.map +1 -0
- package/dist/cjs/test/unit/solToken.js +37 -0
- package/dist/cjs/test/unit/token2022Resolve.d.ts +2 -0
- package/dist/cjs/test/unit/token2022Resolve.d.ts.map +1 -0
- package/dist/cjs/test/unit/token2022Resolve.js +252 -0
- package/dist/cjs/test/unit/tokenExtensions.d.ts +2 -0
- package/dist/cjs/test/unit/tokenExtensions.d.ts.map +1 -0
- package/dist/cjs/test/unit/tokenExtensions.js +58 -0
- package/dist/cjs/test/unit/transaction.d.ts.map +1 -0
- package/dist/cjs/test/unit/transaction.js +1108 -0
- package/dist/cjs/test/unit/transactionBuilder/StakingWithdrawBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/StakingWithdrawBuilder.js +202 -0
- package/dist/cjs/test/unit/transactionBuilder/ataInitBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/ataInitBuilder.js +508 -0
- package/dist/cjs/test/unit/transactionBuilder/closeAtaBuilder.d.ts +2 -0
- package/dist/cjs/test/unit/transactionBuilder/closeAtaBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/closeAtaBuilder.js +343 -0
- package/dist/cjs/test/unit/transactionBuilder/confidentialTransferBuilder.d.ts +2 -0
- package/dist/cjs/test/unit/transactionBuilder/confidentialTransferBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/confidentialTransferBuilder.js +909 -0
- package/dist/cjs/test/unit/transactionBuilder/confidentialTransferV1.d.ts +2 -0
- package/dist/cjs/test/unit/transactionBuilder/confidentialTransferV1.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/confidentialTransferV1.js +144 -0
- package/dist/cjs/test/unit/transactionBuilder/confidentialTransferV1Ops.d.ts +2 -0
- package/dist/cjs/test/unit/transactionBuilder/confidentialTransferV1Ops.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/confidentialTransferV1Ops.js +167 -0
- package/dist/cjs/test/unit/transactionBuilder/customInstructionBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/customInstructionBuilder.js +413 -0
- package/dist/cjs/test/unit/transactionBuilder/stakingActivateBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/stakingActivateBuilder.js +430 -0
- package/dist/cjs/test/unit/transactionBuilder/stakingAuthorizeBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/stakingAuthorizeBuilder.js +157 -0
- package/dist/cjs/test/unit/transactionBuilder/stakingDeactivateBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/stakingDeactivateBuilder.js +384 -0
- package/dist/cjs/test/unit/transactionBuilder/stakingDelegateBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/stakingDelegateBuilder.js +224 -0
- package/dist/cjs/test/unit/transactionBuilder/stakingRawMsgAuthorizeBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/stakingRawMsgAuthorizeBuilder.js +259 -0
- package/dist/cjs/test/unit/transactionBuilder/tokenTransferBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/tokenTransferBuilder.js +926 -0
- package/dist/cjs/test/unit/transactionBuilder/transactionBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/transactionBuilder.js +495 -0
- package/dist/cjs/test/unit/transactionBuilder/transferBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/transferBuilder.js +302 -0
- package/dist/cjs/test/unit/transactionBuilder/transferBuilderV2.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/transferBuilderV2.js +910 -0
- package/dist/cjs/test/unit/transactionBuilder/walletInitBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/walletInitBuilder.js +259 -0
- package/dist/{test → cjs/test}/unit/utils.d.ts.map +1 -1
- package/dist/cjs/test/unit/utils.js +628 -0
- package/dist/cjs/test/unit/versionedTransaction.d.ts.map +1 -0
- package/dist/cjs/test/unit/versionedTransaction.js +207 -0
- package/dist/cjs/tsconfig.tsbuildinfo +1 -0
- package/dist/esm/bigint-buffer-guard.d.ts +1 -0
- package/dist/esm/index.d.ts +7 -0
- package/dist/esm/index.js +7 -0
- package/dist/esm/lib/ataInitializationBuilder.d.ts +58 -0
- package/dist/esm/lib/ataInitializationBuilder.d.ts.map +1 -0
- package/dist/esm/lib/ataInitializationBuilder.js +191 -0
- package/dist/esm/lib/closeAtaBuilder.d.ts +55 -0
- package/dist/esm/lib/closeAtaBuilder.d.ts.map +1 -0
- package/dist/esm/lib/closeAtaBuilder.js +155 -0
- package/dist/esm/lib/confidentialTransferBuilder.d.ts +128 -0
- package/dist/esm/lib/confidentialTransferBuilder.d.ts.map +1 -0
- package/dist/esm/lib/confidentialTransferBuilder.js +304 -0
- package/dist/esm/lib/constants.d.ts +227 -0
- package/dist/esm/lib/constants.d.ts.map +1 -0
- package/dist/esm/lib/constants.js +266 -0
- package/dist/esm/lib/customInstructionBuilder.d.ts +72 -0
- package/dist/esm/lib/customInstructionBuilder.js +282 -0
- package/dist/esm/lib/explainTransactionWasm.d.ts +21 -0
- package/dist/esm/lib/explainTransactionWasm.d.ts.map +1 -0
- package/dist/esm/lib/explainTransactionWasm.js +301 -0
- package/dist/esm/lib/iface.d.ts +526 -0
- package/dist/esm/lib/iface.d.ts.map +1 -0
- package/dist/esm/lib/iface.js +3 -0
- package/dist/esm/lib/index.d.ts +27 -0
- package/dist/esm/lib/index.d.ts.map +1 -0
- package/dist/esm/lib/index.js +27 -0
- package/dist/esm/lib/instructionParamsFactory.d.ts +14 -0
- package/dist/esm/lib/instructionParamsFactory.d.ts.map +1 -0
- package/dist/esm/lib/instructionParamsFactory.js +1212 -0
- package/dist/esm/lib/jitoStakePoolOperations.d.ts +113 -0
- package/dist/esm/lib/jitoStakePoolOperations.js +189 -0
- package/dist/esm/lib/keyPair.d.ts +32 -0
- package/dist/esm/lib/keyPair.d.ts.map +1 -0
- package/dist/esm/lib/keyPair.js +75 -0
- package/dist/esm/lib/messages/index.d.ts +2 -0
- package/dist/esm/lib/messages/index.js +2 -0
- package/dist/esm/lib/messages/messageBuilderFactory.d.ts +7 -0
- package/dist/{src → esm}/lib/messages/messageBuilderFactory.js +5 -9
- package/dist/esm/lib/recoverNestedAtaBuilder.d.ts +25 -0
- package/dist/esm/lib/recoverNestedAtaBuilder.d.ts.map +1 -0
- package/dist/esm/lib/recoverNestedAtaBuilder.js +83 -0
- package/dist/esm/lib/scaledUiAmount.d.ts +30 -0
- package/dist/esm/lib/scaledUiAmount.d.ts.map +1 -0
- package/dist/esm/lib/scaledUiAmount.js +108 -0
- package/dist/esm/lib/serialization/codecs/v1/config.d.ts +21 -0
- package/dist/esm/lib/serialization/codecs/v1/config.d.ts.map +1 -0
- package/dist/esm/lib/serialization/codecs/v1/config.js +30 -0
- package/dist/esm/lib/serialization/codecs/v1/instruction.d.ts +14 -0
- package/dist/esm/lib/serialization/codecs/v1/instruction.d.ts.map +1 -0
- package/dist/esm/lib/serialization/codecs/v1/instruction.js +29 -0
- package/dist/esm/lib/serialization/codecs/v1/message.d.ts +27 -0
- package/dist/esm/lib/serialization/codecs/v1/message.d.ts.map +1 -0
- package/dist/esm/lib/serialization/codecs/v1/message.js +188 -0
- package/dist/esm/lib/serialization/compileTransactionMessage.d.ts +30 -0
- package/dist/esm/lib/serialization/compileTransactionMessage.d.ts.map +1 -0
- package/dist/esm/lib/serialization/compileTransactionMessage.js +202 -0
- package/dist/esm/lib/serialization/parseWireTransaction.d.ts +9 -0
- package/dist/esm/lib/serialization/parseWireTransaction.d.ts.map +1 -0
- package/dist/esm/lib/serialization/parseWireTransaction.js +50 -0
- package/dist/esm/lib/serialization/wire-transaction.d.ts +14 -0
- package/dist/esm/lib/serialization/wire-transaction.d.ts.map +1 -0
- package/dist/esm/lib/serialization/wire-transaction.js +48 -0
- package/dist/esm/lib/solInstructionFactory.d.ts +10 -0
- package/dist/esm/lib/solInstructionFactory.d.ts.map +1 -0
- package/dist/esm/lib/solInstructionFactory.js +1088 -0
- package/dist/esm/lib/stakingActivateBuilder.d.ts +59 -0
- package/dist/{src → esm}/lib/stakingActivateBuilder.d.ts.map +1 -1
- package/dist/esm/lib/stakingActivateBuilder.js +122 -0
- package/dist/esm/lib/stakingAuthorizeBuilder.d.ts +43 -0
- package/dist/esm/lib/stakingAuthorizeBuilder.js +82 -0
- package/dist/esm/lib/stakingDeactivateBuilder.d.ts +81 -0
- package/dist/{src → esm}/lib/stakingDeactivateBuilder.d.ts.map +1 -1
- package/dist/esm/lib/stakingDeactivateBuilder.js +207 -0
- package/dist/esm/lib/stakingDelegateBuilder.d.ts +42 -0
- package/dist/{src → esm}/lib/stakingDelegateBuilder.d.ts.map +1 -1
- package/dist/esm/lib/stakingDelegateBuilder.js +119 -0
- package/dist/esm/lib/stakingRawMsgAuthorizeBuilder.d.ts +33 -0
- package/dist/esm/lib/stakingRawMsgAuthorizeBuilder.js +103 -0
- package/dist/esm/lib/stakingWithdrawBuilder.d.ts +31 -0
- package/dist/{src → esm}/lib/stakingWithdrawBuilder.d.ts.map +1 -1
- package/dist/esm/lib/stakingWithdrawBuilder.js +80 -0
- package/dist/esm/lib/token2022Resolve.d.ts +106 -0
- package/dist/esm/lib/token2022Resolve.d.ts.map +1 -0
- package/dist/esm/lib/token2022Resolve.js +194 -0
- package/dist/esm/lib/tokenExtensions.d.ts +26 -0
- package/dist/esm/lib/tokenExtensions.d.ts.map +1 -0
- package/dist/esm/lib/tokenExtensions.js +99 -0
- package/dist/esm/lib/tokenTransferBuilder.d.ts +67 -0
- package/dist/esm/lib/tokenTransferBuilder.d.ts.map +1 -0
- package/dist/esm/lib/tokenTransferBuilder.js +230 -0
- package/dist/esm/lib/transaction.d.ts +125 -0
- package/dist/esm/lib/transaction.d.ts.map +1 -0
- package/dist/esm/lib/transaction.js +654 -0
- package/dist/esm/lib/transactionBuilder.d.ts +136 -0
- package/dist/esm/lib/transactionBuilder.d.ts.map +1 -0
- package/dist/esm/lib/transactionBuilder.js +381 -0
- package/dist/esm/lib/transactionBuilderFactory.d.ts +129 -0
- package/dist/esm/lib/transactionBuilderFactory.d.ts.map +1 -0
- package/dist/esm/lib/transactionBuilderFactory.js +218 -0
- package/dist/esm/lib/transferBuilder.d.ts +26 -0
- package/dist/{src → esm}/lib/transferBuilder.d.ts.map +1 -1
- package/dist/esm/lib/transferBuilder.js +74 -0
- package/dist/esm/lib/transferBuilderV2.d.ts +69 -0
- package/dist/esm/lib/transferBuilderV2.d.ts.map +1 -0
- package/dist/esm/lib/transferBuilderV2.js +245 -0
- package/dist/esm/lib/utils.d.ts +205 -0
- package/dist/{src → esm}/lib/utils.d.ts.map +1 -1
- package/dist/esm/lib/utils.js +619 -0
- package/dist/esm/lib/walletInitializationBuilder.d.ts +26 -0
- package/dist/esm/lib/walletInitializationBuilder.js +64 -0
- package/dist/esm/register.d.ts +5 -0
- package/dist/esm/register.d.ts.map +1 -0
- package/dist/esm/register.js +24 -0
- package/dist/esm/sol.d.ts +351 -0
- package/dist/esm/sol.d.ts.map +1 -0
- package/dist/esm/sol.js +1629 -0
- package/dist/esm/solToken.d.ts +44 -0
- package/dist/esm/solToken.d.ts.map +1 -0
- package/dist/esm/solToken.js +75 -0
- package/dist/esm/tsol.d.ts +11 -0
- package/dist/esm/tsol.js +20 -0
- package/package.json +36 -16
- package/dist/src/config/token2022StaticConfig.d.ts +0 -3
- package/dist/src/config/token2022StaticConfig.d.ts.map +0 -1
- package/dist/src/config/token2022StaticConfig.js +0 -50
- package/dist/src/lib/ataInitializationBuilder.d.ts.map +0 -1
- package/dist/src/lib/ataInitializationBuilder.js +0 -196
- package/dist/src/lib/closeAtaBuilder.d.ts +0 -19
- package/dist/src/lib/closeAtaBuilder.d.ts.map +0 -1
- package/dist/src/lib/closeAtaBuilder.js +0 -69
- package/dist/src/lib/constants.d.ts.map +0 -1
- package/dist/src/lib/constants.js +0 -171
- package/dist/src/lib/customInstructionBuilder.js +0 -289
- package/dist/src/lib/iface.d.ts +0 -244
- package/dist/src/lib/iface.d.ts.map +0 -1
- package/dist/src/lib/iface.js +0 -7
- package/dist/src/lib/index.d.ts.map +0 -1
- package/dist/src/lib/index.js +0 -77
- package/dist/src/lib/instructionParamsFactory.d.ts.map +0 -1
- package/dist/src/lib/instructionParamsFactory.js +0 -1036
- package/dist/src/lib/jitoStakePoolOperations.js +0 -200
- package/dist/src/lib/keyPair.d.ts.map +0 -1
- package/dist/src/lib/keyPair.js +0 -63
- package/dist/src/lib/solInstructionFactory.d.ts.map +0 -1
- package/dist/src/lib/solInstructionFactory.js +0 -572
- package/dist/src/lib/stakingActivateBuilder.js +0 -120
- package/dist/src/lib/stakingAuthorizeBuilder.js +0 -89
- package/dist/src/lib/stakingDeactivateBuilder.js +0 -208
- package/dist/src/lib/stakingDelegateBuilder.js +0 -120
- package/dist/src/lib/stakingRawMsgAuthorizeBuilder.js +0 -110
- package/dist/src/lib/stakingWithdrawBuilder.js +0 -78
- package/dist/src/lib/token2022Config.d.ts +0 -44
- package/dist/src/lib/token2022Config.d.ts.map +0 -1
- package/dist/src/lib/token2022Config.js +0 -27
- package/dist/src/lib/tokenTransferBuilder.d.ts.map +0 -1
- package/dist/src/lib/tokenTransferBuilder.js +0 -188
- package/dist/src/lib/transaction.d.ts.map +0 -1
- package/dist/src/lib/transaction.js +0 -595
- package/dist/src/lib/transactionBuilder.d.ts.map +0 -1
- package/dist/src/lib/transactionBuilder.js +0 -380
- package/dist/src/lib/transactionBuilderFactory.d.ts.map +0 -1
- package/dist/src/lib/transactionBuilderFactory.js +0 -202
- package/dist/src/lib/transferBuilder.js +0 -70
- package/dist/src/lib/transferBuilderV2.d.ts +0 -43
- package/dist/src/lib/transferBuilderV2.d.ts.map +0 -1
- package/dist/src/lib/transferBuilderV2.js +0 -210
- package/dist/src/lib/utils.js +0 -589
- package/dist/src/lib/walletInitializationBuilder.js +0 -71
- package/dist/src/register.d.ts +0 -3
- package/dist/src/register.d.ts.map +0 -1
- package/dist/src/register.js +0 -15
- package/dist/src/sol.d.ts.map +0 -1
- package/dist/src/sol.js +0 -1324
- package/dist/src/solToken.d.ts.map +0 -1
- package/dist/src/solToken.js +0 -69
- package/dist/src/tsol.js +0 -24
- package/dist/test/fixtures/sol.js +0 -1433
- package/dist/test/resources/sol.d.ts.map +0 -1
- package/dist/test/resources/sol.js +0 -320
- package/dist/test/unit/fixtures/solBackupKey.d.ts.map +0 -1
- package/dist/test/unit/fixtures/solBackupKey.js +0 -8
- package/dist/test/unit/getBuilderFactory.d.ts.map +0 -1
- package/dist/test/unit/getBuilderFactory.js +0 -10
- package/dist/test/unit/instructionParamsFactory.d.ts.map +0 -1
- package/dist/test/unit/instructionParamsFactory.js +0 -412
- package/dist/test/unit/instructionParamsFactory.staking.d.ts.map +0 -1
- package/dist/test/unit/instructionParamsFactory.staking.js +0 -1059
- package/dist/test/unit/keyPair.js +0 -177
- package/dist/test/unit/messages/messageBuilderFactory.d.ts.map +0 -1
- package/dist/test/unit/messages/messageBuilderFactory.js +0 -118
- package/dist/test/unit/messages/simpleMessageBuilder.d.ts.map +0 -1
- package/dist/test/unit/messages/simpleMessageBuilder.js +0 -194
- package/dist/test/unit/sol.js +0 -3180
- package/dist/test/unit/solInstructionFactory.d.ts.map +0 -1
- package/dist/test/unit/solInstructionFactory.js +0 -454
- package/dist/test/unit/solToken.d.ts.map +0 -1
- package/dist/test/unit/solToken.js +0 -31
- package/dist/test/unit/transaction.d.ts.map +0 -1
- package/dist/test/unit/transaction.js +0 -983
- package/dist/test/unit/transactionBuilder/StakingWithdrawBuilder.d.ts.map +0 -1
- package/dist/test/unit/transactionBuilder/StakingWithdrawBuilder.js +0 -202
- package/dist/test/unit/transactionBuilder/ataInitBuilder.d.ts.map +0 -1
- package/dist/test/unit/transactionBuilder/ataInitBuilder.js +0 -471
- package/dist/test/unit/transactionBuilder/customInstructionBuilder.d.ts.map +0 -1
- package/dist/test/unit/transactionBuilder/customInstructionBuilder.js +0 -413
- package/dist/test/unit/transactionBuilder/stakingActivateBuilder.d.ts.map +0 -1
- package/dist/test/unit/transactionBuilder/stakingActivateBuilder.js +0 -430
- package/dist/test/unit/transactionBuilder/stakingAuthorizeBuilder.d.ts.map +0 -1
- package/dist/test/unit/transactionBuilder/stakingAuthorizeBuilder.js +0 -157
- package/dist/test/unit/transactionBuilder/stakingDeactivateBuilder.d.ts.map +0 -1
- package/dist/test/unit/transactionBuilder/stakingDeactivateBuilder.js +0 -384
- package/dist/test/unit/transactionBuilder/stakingDelegateBuilder.d.ts.map +0 -1
- package/dist/test/unit/transactionBuilder/stakingDelegateBuilder.js +0 -224
- package/dist/test/unit/transactionBuilder/stakingRawMsgAuthorizeBuilder.d.ts.map +0 -1
- package/dist/test/unit/transactionBuilder/stakingRawMsgAuthorizeBuilder.js +0 -259
- package/dist/test/unit/transactionBuilder/tokenTransferBuilder.d.ts.map +0 -1
- package/dist/test/unit/transactionBuilder/tokenTransferBuilder.js +0 -787
- package/dist/test/unit/transactionBuilder/transactionBuilder.d.ts.map +0 -1
- package/dist/test/unit/transactionBuilder/transactionBuilder.js +0 -495
- package/dist/test/unit/transactionBuilder/transferBuilder.d.ts.map +0 -1
- package/dist/test/unit/transactionBuilder/transferBuilder.js +0 -286
- package/dist/test/unit/transactionBuilder/transferBuilderV2.d.ts.map +0 -1
- package/dist/test/unit/transactionBuilder/transferBuilderV2.js +0 -862
- package/dist/test/unit/transactionBuilder/walletInitBuilder.d.ts.map +0 -1
- package/dist/test/unit/transactionBuilder/walletInitBuilder.js +0 -259
- package/dist/test/unit/utils.js +0 -517
- package/dist/test/unit/versionedTransaction.d.ts.map +0 -1
- package/dist/test/unit/versionedTransaction.js +0 -207
- package/dist/tsconfig.tsbuildinfo +0 -1
- /package/dist/{src → cjs/src}/bigint-buffer-guard.d.ts +0 -0
- /package/dist/{src → cjs/src}/index.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/customInstructionBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/jitoStakePoolOperations.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/messages/index.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/messages/messageBuilderFactory.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/stakingActivateBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/stakingAuthorizeBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/stakingDeactivateBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/stakingDelegateBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/stakingRawMsgAuthorizeBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/stakingWithdrawBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/transferBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/walletInitializationBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/tsol.d.ts +0 -0
- /package/dist/{test → cjs/test}/fixtures/sol.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/fixtures/solBackupKey.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/getBuilderFactory.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/instructionParamsFactory.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/instructionParamsFactory.staking.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/keyPair.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/messages/messageBuilderFactory.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/messages/simpleMessageBuilder.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/sol.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/solInstructionFactory.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/solToken.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/transaction.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/transactionBuilder/StakingWithdrawBuilder.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/transactionBuilder/ataInitBuilder.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/transactionBuilder/customInstructionBuilder.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/transactionBuilder/stakingActivateBuilder.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/transactionBuilder/stakingAuthorizeBuilder.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/transactionBuilder/stakingDeactivateBuilder.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/transactionBuilder/stakingDelegateBuilder.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/transactionBuilder/stakingRawMsgAuthorizeBuilder.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/transactionBuilder/tokenTransferBuilder.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/transactionBuilder/transactionBuilder.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/transactionBuilder/transferBuilder.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/transactionBuilder/transferBuilderV2.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/transactionBuilder/walletInitBuilder.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/utils.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/versionedTransaction.d.ts +0 -0
- /package/dist/{src → esm}/bigint-buffer-guard.d.ts.map +0 -0
- /package/dist/{src → esm}/bigint-buffer-guard.js +0 -0
- /package/dist/{src → esm}/index.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/customInstructionBuilder.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/jitoStakePoolOperations.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/messages/index.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/messages/messageBuilderFactory.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/stakingAuthorizeBuilder.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/stakingRawMsgAuthorizeBuilder.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/walletInitializationBuilder.d.ts.map +0 -0
- /package/dist/{src → esm}/tsol.d.ts.map +0 -0
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { TransactionType } from '@bitgo-beta/sdk-core';
|
|
2
|
+
import assert from 'assert';
|
|
3
|
+
import { InstructionBuilderTypes } from './constants';
|
|
4
|
+
import { Transaction } from './transaction';
|
|
5
|
+
import { TransactionBuilder } from './transactionBuilder';
|
|
6
|
+
import { validateAddress } from './utils';
|
|
7
|
+
export class RecoverNestedAtaBuilder extends TransactionBuilder {
|
|
8
|
+
constructor(_coinConfig) {
|
|
9
|
+
super(_coinConfig);
|
|
10
|
+
this._transaction = new Transaction(_coinConfig);
|
|
11
|
+
}
|
|
12
|
+
get transactionType() {
|
|
13
|
+
return TransactionType.CloseAssociatedTokenAccount;
|
|
14
|
+
}
|
|
15
|
+
nestedAccountAddress(nestedAccountAddress) {
|
|
16
|
+
validateAddress(nestedAccountAddress, 'nestedAccountAddress');
|
|
17
|
+
this._nestedAccountAddress = nestedAccountAddress;
|
|
18
|
+
return this;
|
|
19
|
+
}
|
|
20
|
+
nestedMintAddress(nestedMintAddress) {
|
|
21
|
+
validateAddress(nestedMintAddress, 'nestedMintAddress');
|
|
22
|
+
this._nestedMintAddress = nestedMintAddress;
|
|
23
|
+
return this;
|
|
24
|
+
}
|
|
25
|
+
destinationAccountAddress(destinationAccountAddress) {
|
|
26
|
+
validateAddress(destinationAccountAddress, 'destinationAccountAddress');
|
|
27
|
+
this._destinationAccountAddress = destinationAccountAddress;
|
|
28
|
+
return this;
|
|
29
|
+
}
|
|
30
|
+
ownerAccountAddress(ownerAccountAddress) {
|
|
31
|
+
validateAddress(ownerAccountAddress, 'ownerAccountAddress');
|
|
32
|
+
this._ownerAccountAddress = ownerAccountAddress;
|
|
33
|
+
return this;
|
|
34
|
+
}
|
|
35
|
+
ownerMintAddress(ownerMintAddress) {
|
|
36
|
+
validateAddress(ownerMintAddress, 'ownerMintAddress');
|
|
37
|
+
this._ownerMintAddress = ownerMintAddress;
|
|
38
|
+
return this;
|
|
39
|
+
}
|
|
40
|
+
walletAddress(walletAddress) {
|
|
41
|
+
validateAddress(walletAddress, 'walletAddress');
|
|
42
|
+
this._walletAddress = walletAddress;
|
|
43
|
+
return this;
|
|
44
|
+
}
|
|
45
|
+
/** @inheritDoc */
|
|
46
|
+
initBuilder(tx) {
|
|
47
|
+
super.initBuilder(tx);
|
|
48
|
+
for (const instruction of this._instructionsData) {
|
|
49
|
+
if (instruction.type === InstructionBuilderTypes.RecoverNestedAssociatedTokenAccount) {
|
|
50
|
+
const recoverNestedInstruction = instruction;
|
|
51
|
+
this.nestedAccountAddress(recoverNestedInstruction.params.nestedAccountAddress);
|
|
52
|
+
this.nestedMintAddress(recoverNestedInstruction.params.nestedMintAddress);
|
|
53
|
+
this.destinationAccountAddress(recoverNestedInstruction.params.destinationAccountAddress);
|
|
54
|
+
this.ownerAccountAddress(recoverNestedInstruction.params.ownerAccountAddress);
|
|
55
|
+
this.ownerMintAddress(recoverNestedInstruction.params.ownerMintAddress);
|
|
56
|
+
this.walletAddress(recoverNestedInstruction.params.walletAddress);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
/** @inheritdoc */
|
|
61
|
+
async buildImplementation() {
|
|
62
|
+
assert(this._nestedAccountAddress, 'nestedAccountAddress must be set before building the transaction');
|
|
63
|
+
assert(this._nestedMintAddress, 'nestedMintAddress must be set before building the transaction');
|
|
64
|
+
assert(this._destinationAccountAddress, 'destinationAccountAddress must be set before building the transaction');
|
|
65
|
+
assert(this._ownerAccountAddress, 'ownerAccountAddress must be set before building the transaction');
|
|
66
|
+
assert(this._ownerMintAddress, 'ownerMintAddress must be set before building the transaction');
|
|
67
|
+
assert(this._walletAddress, 'walletAddress must be set before building the transaction');
|
|
68
|
+
const recoverNestedData = {
|
|
69
|
+
type: InstructionBuilderTypes.RecoverNestedAssociatedTokenAccount,
|
|
70
|
+
params: {
|
|
71
|
+
nestedAccountAddress: this._nestedAccountAddress,
|
|
72
|
+
nestedMintAddress: this._nestedMintAddress,
|
|
73
|
+
destinationAccountAddress: this._destinationAccountAddress,
|
|
74
|
+
ownerAccountAddress: this._ownerAccountAddress,
|
|
75
|
+
ownerMintAddress: this._ownerMintAddress,
|
|
76
|
+
walletAddress: this._walletAddress,
|
|
77
|
+
},
|
|
78
|
+
};
|
|
79
|
+
this._instructionsData = [recoverNestedData];
|
|
80
|
+
return await super.buildImplementation();
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3Zlck5lc3RlZEF0YUJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3JlY292ZXJOZXN0ZWRBdGFCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV2RCxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXRELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUUxQyxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsa0JBQWtCO0lBUTdELFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ25CLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELElBQWMsZUFBZTtRQUMzQixPQUFPLGVBQWUsQ0FBQywyQkFBMkIsQ0FBQztJQUNyRCxDQUFDO0lBRUQsb0JBQW9CLENBQUMsb0JBQTRCO1FBQy9DLGVBQWUsQ0FBQyxvQkFBb0IsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO1FBQzlELElBQUksQ0FBQyxxQkFBcUIsR0FBRyxvQkFBb0IsQ0FBQztRQUNsRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxpQkFBeUI7UUFDekMsZUFBZSxDQUFDLGlCQUFpQixFQUFFLG1CQUFtQixDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLGlCQUFpQixDQUFDO1FBQzVDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELHlCQUF5QixDQUFDLHlCQUFp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Z0JBQ3hDLGFBQWEsRUFBRSxJQUFJLENBQUMsY0FBYzthQUNuQztTQUNGLENBQUM7UUFFRixJQUFJLENBQUMsaUJBQWlCLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRTdDLE9BQU8sTUFBTSxLQUFLLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgeyBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcyB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IEF0YVJlY292ZXJOZXN0ZWQgfSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyB2YWxpZGF0ZUFkZHJlc3MgfSBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGNsYXNzIFJlY292ZXJOZXN0ZWRBdGFCdWlsZGVyIGV4dGVuZHMgVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgcHJvdGVjdGVkIF9uZXN0ZWRBY2NvdW50QWRkcmVzczogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX25lc3RlZE1pbnRBZGRyZXNzOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfZGVzdGluYXRpb25BY2NvdW50QWRkcmVzczogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX293bmVyQWNjb3VudEFkZHJlc3M6IHN0cmluZztcbiAgcHJvdGVjdGVkIF9vd25lck1pbnRBZGRyZXNzOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfd2FsbGV0QWRkcmVzczogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgICB0aGlzLl90cmFuc2FjdGlvbiA9IG5ldyBUcmFuc2FjdGlvbihfY29pbkNvbmZpZyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IHRyYW5zYWN0aW9uVHlwZSgpOiBUcmFuc2FjdGlvblR5cGUge1xuICAgIHJldHVybiBUcmFuc2FjdGlvblR5cGUuQ2xvc2VBc3NvY2lhdGVkVG9rZW5BY2NvdW50O1xuICB9XG5cbiAgbmVzdGVkQWNjb3VudEFkZHJlc3MobmVzdGVkQWNjb3VudEFkZHJlc3M6IHN0cmluZyk6IHRoaXMge1xuICAgIHZhbGlkYXRlQWRkcmVzcyhuZXN0ZWRBY2NvdW50QWRkcmVzcywgJ25lc3RlZEFjY291bnRBZGRyZXNzJyk7XG4gICAgdGhpcy5fbmVzdGVkQWNjb3VudEFkZHJlc3MgPSBuZXN0ZWRBY2NvdW50QWRkcmVzcztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIG5lc3RlZE1pbnRBZGRyZXNzKG5lc3RlZE1pbnRBZGRyZXNzOiBzdHJpbmcpOiB0aGlzIHtcbiAgICB2YWxpZGF0ZUFkZHJlc3MobmVzdGVkTWludEFkZHJlc3MsICduZXN0ZWRNaW50QWRkcmVzcycpO1xuICAgIHRoaXMuX25lc3RlZE1pbnRBZGRyZXNzID0gbmVzdGVkTWludEFkZHJlc3M7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBkZXN0aW5hdGlvbkFjY291bnRBZGRyZXNzKGRlc3RpbmF0aW9uQWNjb3VudEFkZHJlc3M6IHN0cmluZyk6IHRoaXMge1xuICAgIHZhbGlkYXRlQWRkcmVzcyhkZXN0aW5hdGlvbkFjY291bnRBZGRyZXNzLCAnZGVzdGluYXRpb25BY2NvdW50QWRkcmVzcycpO1xuICAgIHRoaXMuX2Rlc3RpbmF0aW9uQWNjb3VudEFkZHJlc3MgPSBkZXN0aW5hdGlvbkFjY291bnRBZGRyZXNzO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgb3duZXJBY2NvdW50QWRkcmVzcyhvd25lckFjY291bnRBZGRyZXNzOiBzdHJpbmcpOiB0aGlzIHtcbiAgICB2YWxpZGF0ZUFkZHJlc3Mob3duZXJBY2NvdW50QWRkcmVzcywgJ293bmVyQWNjb3VudEFkZHJlc3MnKTtcbiAgICB0aGlzLl9vd25lckFjY291bnRBZGRyZXNzID0gb3duZXJBY2NvdW50QWRkcmVzcztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIG93bmVyTWludEFkZHJlc3Mob3duZXJNaW50QWRkcmVzczogc3RyaW5nKTogdGhpcyB7XG4gICAgdmFsaWRhdGVBZGRyZXNzKG93bmVyTWludEFkZHJlc3MsICdvd25lck1pbnRBZGRyZXNzJyk7XG4gICAgdGhpcy5fb3duZXJNaW50QWRkcmVzcyA9IG93bmVyTWludEFkZHJlc3M7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICB3YWxsZXRBZGRyZXNzKHdhbGxldEFkZHJlc3M6IHN0cmluZyk6IHRoaXMge1xuICAgIHZhbGlkYXRlQWRkcmVzcyh3YWxsZXRBZGRyZXNzLCAnd2FsbGV0QWRkcmVzcycpO1xuICAgIHRoaXMuX3dhbGxldEFkZHJlc3MgPSB3YWxsZXRBZGRyZXNzO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIGluaXRCdWlsZGVyKHR4OiBUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIHN1cGVyLmluaXRCdWlsZGVyKHR4KTtcbiAgICBmb3IgKGNvbnN0IGluc3RydWN0aW9uIG9mIHRoaXMuX2luc3RydWN0aW9uc0RhdGEpIHtcbiAgICAgIGlmIChpbnN0cnVjdGlvbi50eXBlID09PSBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcy5SZWNvdmVyTmVzdGVkQXNzb2NpYXRlZFRva2VuQWNjb3VudCkge1xuICAgICAgICBjb25zdCByZWNvdmVyTmVzdGVkSW5zdHJ1Y3Rpb246IEF0YVJlY292ZXJOZXN0ZWQgPSBpbnN0cnVjdGlvbjtcbiAgICAgICAgdGhpcy5uZXN0ZWRBY2NvdW50QWRkcmVzcyhyZWNvdmVyTmVzdGVkSW5zdHJ1Y3Rpb24ucGFyYW1zLm5lc3RlZEFjY291bnRBZGRyZXNzKTtcbiAgICAgICAgdGhpcy5uZXN0ZWRNaW50QWRkcmVzcyhyZWNvdmVyTmVzdGVkSW5zdHJ1Y3Rpb24ucGFyYW1zLm5lc3RlZE1pbnRBZGRyZXNzKTtcbiAgICAgICAgdGhpcy5kZXN0aW5hdGlvbkFjY291bnRBZGRyZXNzKHJlY292ZXJOZXN0ZWRJbnN0cnVjdGlvbi5wYXJhbXMuZGVzdGluYXRpb25BY2NvdW50QWRkcmVzcyk7XG4gICAgICAgIHRoaXMub3duZXJBY2NvdW50QWRkcmVzcyhyZWNvdmVyTmVzdGVkSW5zdHJ1Y3Rpb24ucGFyYW1zLm93bmVyQWNjb3VudEFkZHJlc3MpO1xuICAgICAgICB0aGlzLm93bmVyTWludEFkZHJlc3MocmVjb3Zlck5lc3RlZEluc3RydWN0aW9uLnBhcmFtcy5vd25lck1pbnRBZGRyZXNzKTtcbiAgICAgICAgdGhpcy53YWxsZXRBZGRyZXNzKHJlY292ZXJOZXN0ZWRJbnN0cnVjdGlvbi5wYXJhbXMud2FsbGV0QWRkcmVzcyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBhc3luYyBidWlsZEltcGxlbWVudGF0aW9uKCk6IFByb21pc2U8VHJhbnNhY3Rpb24+IHtcbiAgICBhc3NlcnQodGhpcy5fbmVzdGVkQWNjb3VudEFkZHJlc3MsICduZXN0ZWRBY2NvdW50QWRkcmVzcyBtdXN0IGJlIHNldCBiZWZvcmUgYnVpbGRpbmcgdGhlIHRyYW5zYWN0aW9uJyk7XG4gICAgYXNzZXJ0KHRoaXMuX25lc3RlZE1pbnRBZGRyZXNzLCAnbmVzdGVkTWludEFkZHJlc3MgbXVzdCBiZSBzZXQgYmVmb3JlIGJ1aWxkaW5nIHRoZSB0cmFuc2FjdGlvbicpO1xuICAgIGFzc2VydCh0aGlzLl9kZXN0aW5hdGlvbkFjY291bnRBZGRyZXNzLCAnZGVzdGluYXRpb25BY2NvdW50QWRkcmVzcyBtdXN0IGJlIHNldCBiZWZvcmUgYnVpbGRpbmcgdGhlIHRyYW5zYWN0aW9uJyk7XG4gICAgYXNzZXJ0KHRoaXMuX293bmVyQWNjb3VudEFkZHJlc3MsICdvd25lckFjY291bnRBZGRyZXNzIG11c3QgYmUgc2V0IGJlZm9yZSBidWlsZGluZyB0aGUgdHJhbnNhY3Rpb24nKTtcbiAgICBhc3NlcnQodGhpcy5fb3duZXJNaW50QWRkcmVzcywgJ293bmVyTWludEFkZHJlc3MgbXVzdCBiZSBzZXQgYmVmb3JlIGJ1aWxkaW5nIHRoZSB0cmFuc2FjdGlvbicpO1xuICAgIGFzc2VydCh0aGlzLl93YWxsZXRBZGRyZXNzLCAnd2FsbGV0QWRkcmVzcyBtdXN0IGJlIHNldCBiZWZvcmUgYnVpbGRpbmcgdGhlIHRyYW5zYWN0aW9uJyk7XG5cbiAgICBjb25zdCByZWNvdmVyTmVzdGVkRGF0YTogQXRhUmVjb3Zlck5lc3RlZCA9IHtcbiAgICAgIHR5cGU6IEluc3RydWN0aW9uQnVpbGRlclR5cGVzLlJlY292ZXJOZXN0ZWRBc3NvY2lhdGVkVG9rZW5BY2NvdW50LFxuICAgICAgcGFyYW1zOiB7XG4gICAgICAgIG5lc3RlZEFjY291bnRBZGRyZXNzOiB0aGlzLl9uZXN0ZWRBY2NvdW50QWRkcmVzcyxcbiAgICAgICAgbmVzdGVkTWludEFkZHJlc3M6IHRoaXMuX25lc3RlZE1pbnRBZGRyZXNzLFxuICAgICAgICBkZXN0aW5hdGlvbkFjY291bnRBZGRyZXNzOiB0aGlzLl9kZXN0aW5hdGlvbkFjY291bnRBZGRyZXNzLFxuICAgICAgICBvd25lckFjY291bnRBZGRyZXNzOiB0aGlzLl9vd25lckFjY291bnRBZGRyZXNzLFxuICAgICAgICBvd25lck1pbnRBZGRyZXNzOiB0aGlzLl9vd25lck1pbnRBZGRyZXNzLFxuICAgICAgICB3YWxsZXRBZGRyZXNzOiB0aGlzLl93YWxsZXRBZGRyZXNzLFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgdGhpcy5faW5zdHJ1Y3Rpb25zRGF0YSA9IFtyZWNvdmVyTmVzdGVkRGF0YV07XG5cbiAgICByZXR1cm4gYXdhaXQgc3VwZXIuYnVpbGRJbXBsZW1lbnRhdGlvbigpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2026 BitGo, Inc. All Rights Reserved.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Convert a raw base-unit amount to its scaled UI denomination.
|
|
6
|
+
*
|
|
7
|
+
* Exact by construction: the result is `raw * multiplier / 10^decimals`, whose
|
|
8
|
+
* exact decimal expansion never exceeds `multiplier scale + decimals` fraction
|
|
9
|
+
* digits, so no rounding ever occurs.
|
|
10
|
+
*
|
|
11
|
+
* @param raw Amount in raw base units (integer, >= 0)
|
|
12
|
+
* @param multiplier The mint's UiAmountMultiplier as a decimal string (> 0)
|
|
13
|
+
* @param decimals The mint's decimals (>= 0)
|
|
14
|
+
* @returns The exact UI amount as a decimal string
|
|
15
|
+
* @throws if any argument is malformed, the multiplier is not positive, or raw/decimals are negative
|
|
16
|
+
*/
|
|
17
|
+
export declare function rawToUiAmountString(raw: bigint, multiplier: string, decimals: number): string;
|
|
18
|
+
/**
|
|
19
|
+
* Convert a scaled UI denomination to raw base units. Inverse of
|
|
20
|
+
* {@link rawToUiAmountString}: flooring an exact ui string reproduces the
|
|
21
|
+
* original raw amount.
|
|
22
|
+
*
|
|
23
|
+
* @param uiAmount The UI amount as a decimal string (>= 0)
|
|
24
|
+
* @param multiplier The mint's UiAmountMultiplier as a decimal string (> 0)
|
|
25
|
+
* @param decimals The mint's decimals (>= 0)
|
|
26
|
+
* @returns The raw amount in base units, floored to the integer unit
|
|
27
|
+
* @throws if any argument is malformed, the ui amount is negative, or the multiplier is not positive
|
|
28
|
+
*/
|
|
29
|
+
export declare function uiAmountToRaw(uiAmount: string, multiplier: string, decimals: number): bigint;
|
|
30
|
+
//# sourceMappingURL=scaledUiAmount.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scaledUiAmount.d.ts","sourceRoot":"","sources":["../../../src/lib/scaledUiAmount.ts"],"names":[],"mappings":"AAAA;;GAEG;AA2DH;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAiC7F;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAmB5F"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2026 BitGo, Inc. All Rights Reserved.
|
|
3
|
+
*/
|
|
4
|
+
const DECIMAL_LITERAL_PATTERN = /^[+-]?(?:\d+(?:\.\d*)?|\.\d+)$/;
|
|
5
|
+
/**
|
|
6
|
+
* Parse an exact decimal string into scaled-integer parts. Rejects scientific
|
|
7
|
+
* notation, empty strings, NaN/Infinity, and non-numeric input.
|
|
8
|
+
*
|
|
9
|
+
* @param value The decimal literal, e.g. "0.001"; "1e-9" must be written as "0.000000001"
|
|
10
|
+
*/
|
|
11
|
+
function parseDecimal(value, what) {
|
|
12
|
+
if (typeof value !== 'string' || !DECIMAL_LITERAL_PATTERN.test(value)) {
|
|
13
|
+
throw new Error(`Invalid ${what} '${value}': expected a finite decimal string`);
|
|
14
|
+
}
|
|
15
|
+
const negative = value.startsWith('-');
|
|
16
|
+
const unsigned = negative || value.startsWith('+') ? value.slice(1) : value;
|
|
17
|
+
const [intPart = '0', fracPart = ''] = unsigned.split('.');
|
|
18
|
+
const digits = BigInt(intPart + fracPart || '0');
|
|
19
|
+
return { negative, digits, scale: fracPart.length };
|
|
20
|
+
}
|
|
21
|
+
/** Render ±digits/10^scale as a normalized decimal string (no trailing zeros, no "-0"). */
|
|
22
|
+
function toDecimalString({ negative, digits, scale }) {
|
|
23
|
+
if (digits === 0n) {
|
|
24
|
+
return '0';
|
|
25
|
+
}
|
|
26
|
+
let s = digits.toString().padStart(scale + 1, '0');
|
|
27
|
+
if (scale > 0) {
|
|
28
|
+
s = `${s.slice(0, -scale)}.${s.slice(-scale)}`;
|
|
29
|
+
s = s.replace(/0+$/, '').replace(/\.$/, '');
|
|
30
|
+
}
|
|
31
|
+
return negative ? `-${s}` : s;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Convert a raw base-unit amount to its scaled UI denomination.
|
|
35
|
+
*
|
|
36
|
+
* Exact by construction: the result is `raw * multiplier / 10^decimals`, whose
|
|
37
|
+
* exact decimal expansion never exceeds `multiplier scale + decimals` fraction
|
|
38
|
+
* digits, so no rounding ever occurs.
|
|
39
|
+
*
|
|
40
|
+
* @param raw Amount in raw base units (integer, >= 0)
|
|
41
|
+
* @param multiplier The mint's UiAmountMultiplier as a decimal string (> 0)
|
|
42
|
+
* @param decimals The mint's decimals (>= 0)
|
|
43
|
+
* @returns The exact UI amount as a decimal string
|
|
44
|
+
* @throws if any argument is malformed, the multiplier is not positive, or raw/decimals are negative
|
|
45
|
+
*/
|
|
46
|
+
export function rawToUiAmountString(raw, multiplier, decimals) {
|
|
47
|
+
if (typeof raw !== 'bigint') {
|
|
48
|
+
throw new Error(`Invalid raw amount '${String(raw)}': expected a BigInt of base units`);
|
|
49
|
+
}
|
|
50
|
+
if (raw < 0n) {
|
|
51
|
+
throw new Error(`Invalid raw amount '${raw}': must be non-negative`);
|
|
52
|
+
}
|
|
53
|
+
if (!Number.isInteger(decimals) || decimals < 0) {
|
|
54
|
+
throw new Error(`Invalid decimals '${decimals}': must be a non-negative integer`);
|
|
55
|
+
}
|
|
56
|
+
const mult = parseDecimal(multiplier, 'multiplier');
|
|
57
|
+
if (mult.negative || mult.digits === 0n) {
|
|
58
|
+
throw new Error(`Invalid multiplier '${multiplier}': must be positive`);
|
|
59
|
+
}
|
|
60
|
+
// ui = raw * (multDigits / 10^multScale) / 10^decimals
|
|
61
|
+
// = (raw * multDigits) / 10^(multScale + decimals) — exact, terminating expansion
|
|
62
|
+
const numerator = raw * mult.digits;
|
|
63
|
+
const fractionDigits = mult.scale + decimals;
|
|
64
|
+
const denominator = 10n ** BigInt(fractionDigits);
|
|
65
|
+
const quotient = numerator / denominator;
|
|
66
|
+
const remainder = numerator % denominator;
|
|
67
|
+
if (remainder === 0n) {
|
|
68
|
+
return toDecimalString({ negative: false, digits: quotient, scale: 0 });
|
|
69
|
+
}
|
|
70
|
+
// The denominator IS 10^fractionDigits, so the exact fraction digits are `remainder`
|
|
71
|
+
// zero-padded to fractionDigits — no long division needed.
|
|
72
|
+
return toDecimalString({
|
|
73
|
+
negative: false,
|
|
74
|
+
digits: quotient * 10n ** BigInt(fractionDigits) + remainder,
|
|
75
|
+
scale: fractionDigits,
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Convert a scaled UI denomination to raw base units. Inverse of
|
|
80
|
+
* {@link rawToUiAmountString}: flooring an exact ui string reproduces the
|
|
81
|
+
* original raw amount.
|
|
82
|
+
*
|
|
83
|
+
* @param uiAmount The UI amount as a decimal string (>= 0)
|
|
84
|
+
* @param multiplier The mint's UiAmountMultiplier as a decimal string (> 0)
|
|
85
|
+
* @param decimals The mint's decimals (>= 0)
|
|
86
|
+
* @returns The raw amount in base units, floored to the integer unit
|
|
87
|
+
* @throws if any argument is malformed, the ui amount is negative, or the multiplier is not positive
|
|
88
|
+
*/
|
|
89
|
+
export function uiAmountToRaw(uiAmount, multiplier, decimals) {
|
|
90
|
+
if (!Number.isInteger(decimals) || decimals < 0) {
|
|
91
|
+
throw new Error(`Invalid decimals '${decimals}': must be a non-negative integer`);
|
|
92
|
+
}
|
|
93
|
+
const ui = parseDecimal(uiAmount, 'uiAmount');
|
|
94
|
+
if (ui.negative) {
|
|
95
|
+
throw new Error(`Invalid uiAmount '${uiAmount}': must be non-negative`);
|
|
96
|
+
}
|
|
97
|
+
const mult = parseDecimal(multiplier, 'multiplier');
|
|
98
|
+
if (mult.negative || mult.digits === 0n) {
|
|
99
|
+
throw new Error(`Invalid multiplier '${multiplier}': must be positive`);
|
|
100
|
+
}
|
|
101
|
+
// ui = uiDigits / 10^uiScale; multiplier = multDigits / 10^multScale
|
|
102
|
+
// raw = (uiDigits / 10^uiScale) * 10^decimals * (10^multScale / multDigits)
|
|
103
|
+
// = (uiDigits * 10^(decimals + multScale)) / (multDigits * 10^uiScale)
|
|
104
|
+
const numerator = ui.digits * 10n ** BigInt(decimals + mult.scale);
|
|
105
|
+
const denominator = mult.digits * 10n ** BigInt(ui.scale);
|
|
106
|
+
return numerator / denominator; // floor — raw base units are integers
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NhbGVkVWlBbW91bnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3NjYWxlZFVpQW1vdW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBMkJILE1BQU0sdUJBQXVCLEdBQUcsZ0NBQWdDLENBQUM7QUFFakU7Ozs7O0dBS0c7QUFDSCxTQUFTLFlBQVksQ0FBQyxLQUFhLEVBQUUsSUFBWTtJQUMvQyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3RFLE1BQU0sSUFBSSxLQUFLLENBQUMsV0FBVyxJQUFJLEtBQUssS0FBSyxxQ0FBcUMsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7SUFDRCxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZDLE1BQU0sUUFBUSxHQUFHLFFBQVEsSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDNUUsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLEVBQUUsUUFBUSxHQUFHLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDM0QsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sR0FBRyxRQUFRLElBQUksR0FBRyxDQUFDLENBQUM7SUFDakQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztBQUN0RCxDQUFDO0FBRUQsMkZBQTJGO0FBQzNGLFNBQVMsZUFBZSxDQUFDLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQWlCO0lBQ2pFLElBQUksTUFBTSxLQUFL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LENBQUMsSUFBSSxRQUFRLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDaEQsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsUUFBUSxtQ0FBbUMsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7SUFDRCxNQUFNLEVBQUUsR0FBRyxZQUFZLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQzlDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLFFBQVEseUJBQXlCLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBQ0QsTUFBTSxJQUFJLEdBQUcsWUFBWSxDQUFDLFVBQVUsRUFBRSxZQUFZLENBQUMsQ0FBQztJQUNwRCxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUN4QyxNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1QixVQUFVLHFCQUFxQixDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVELHNFQUFzRTtJQUN0RSw0RUFBNEU7SUFDNUUsMkVBQTJFO0lBQzNFLE1BQU0sU0FBUyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEdBQUcsR0FBRyxJQUFJLE1BQU0sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25FLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxJQUFJLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUQsT0FBTyxTQUFTLEdBQUcsV0FBVyxDQUFDLENBQUMsc0NBQXNDO0FBQ3hFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDI2IEJpdEdvLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKi9cblxuLyoqXG4gKiBTb2xhbmEgVG9rZW4tMjAyMiBTY2FsZWRVaUFtb3VudCBjb252ZXJzaW9uIHV0aWxpdGllcyAoQ1NITEQtMTY4OCkuXG4gKlxuICogQSBzY2FsZWQtVUkgbWludCBjYXJyaWVzIGEgYFVpQW1vdW50TXVsdGlwbGllcmAuIE9uLWNoYWluIChhbmQgdGhlcmVmb3JlIGluXG4gKiBldmVyeSBzZW5kL2J1aWxkIHBhdGggb2YgdGhpcyBTREspIGFtb3VudHMgYXJlIHJhdyBiYXNlIHVuaXRzOyB0aGUgVUlcbiAqIGRlbm9taW5hdGlvbiBpcyBgcmF3ICogbXVsdGlwbGllciAvIDEwXmRlY2ltYWxzYCwgbWF0Y2hpbmcgdGhlIFNQTFxuICogdG9rZW4tMjAyMiBTY2FsZWRVaUFtb3VudCBleHRlbnNpb24gc2VtYW50aWNzLiBUaGVzZSB1dGlsaXRpZXMgZXhpc3QgZm9yXG4gKiBkaXNwbGF5LCByZWNvbmNpbGlhdGlvbiwgYW5kIGJhbGFuY2UgY29udmVyc2lvbnMgb25seSDigJQgdGhleSBuZXZlciBmZWVkXG4gKiB0cmFuc2FjdGlvbiBidWlsZGluZywgd2hpY2ggc3RheXMgcmF3LWRlbm9taW5hdGVkLlxuICpcbiAqIEFsbCBhcml0aG1ldGljIGlzIGV4YWN0IHNjYWxlZC1pbnRlZ2VyIChCaWdJbnQpIG1hdGgg4oCUIGZsb2F0cyBhcmUgbmV2ZXIgdXNlZCxcbiAqIHNvIGNvbnZlcnNpb25zIGFyZSBkZXRlcm1pbmlzdGljIGFjcm9zcyBydW50aW1lcyBhbmQgbG9zZSBubyBwcmVjaXNpb246XG4gKiBgcmF3VG9VaUFtb3VudFN0cmluZ2AgaXMgYWx3YXlzIGV4YWN0ICh0aGUgZGl2aXNvciBpcyBhIHBvd2VyIG9mIHRlbiwgc28gdGhlXG4gKiBleGFjdCBleHBhbnNpb24gZml0cyB3aXRoaW4gYG11bHRpcGxpZXJTY2FsZSArIGRlY2ltYWxzYCBmcmFjdGlvbiBkaWdpdHMpLlxuICogYHVpQW1vdW50VG9SYXdgIGZsb29ycyB0byBhbiBpbnRlZ2VyIG51bWJlciBvZiBiYXNlIHVuaXRzIGFuZCBpcyB0aGUgZXhhY3RcbiAqIGludmVyc2Ugb2YgYHJhd1RvVWlBbW91bnRTdHJpbmdgIHdoZW5ldmVyIHRoZSB1aSBzdHJpbmcgaXMgZXhhY3QuXG4gKi9cblxuLyoqIFNpZ25pZmljYW5kIGFuZCBzY2FsZSBvZiBhIGRlY2ltYWwgbGl0ZXJhbDogdmFsdWUgPSDCsWRpZ2l0cyAvIDEwXnNjYWxlLiAqL1xuaW50ZXJmYWNlIFBhcnNlZERlY2ltYWwge1xuICBuZWdhdGl2ZTogYm9vbGVhbjtcbiAgZGlnaXRzOiBiaWdpbnQ7XG4gIHNjYWxlOiBudW1iZXI7XG59XG5cbmNvbnN0IERFQ0lNQUxfTElURVJBTF9QQVRURVJOID0gL15bKy1dPyg/OlxcZCsoPzpcXC5cXGQqKT98XFwuXFxkKykkLztcblxuLyoqXG4gKiBQYXJzZSBhbiBleGFjdCBkZWNpbWFsIHN0cmluZyBpbnRvIHNjYWxlZC1pbnRlZ2VyIHBhcnRzLiBSZWplY3RzIHNjaWVudGlmaWNcbiAqIG5vdGF0aW9uLCBlbXB0eSBzdHJpbmdzLCBOYU4vSW5maW5pdHksIGFuZCBub24tbnVtZXJpYyBpbnB1dC5cbiAqXG4gKiBAcGFyYW0gdmFsdWUgVGhlIGRlY2ltYWwgbGl0ZXJhbCwgZS5nLiBcIjAuMDAxXCI7IFwiMWUtOVwiIG11c3QgYmUgd3JpdHRlbiBhcyBcIjAuMDAwMDAwMDAxXCJcbiAqL1xuZnVuY3Rpb24gcGFyc2VEZWNpbWFsKHZhbHVlOiBzdHJpbmcsIHdoYXQ6IHN0cmluZyk6IFBhcnNlZERlY2ltYWwge1xuICBpZiAodHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJyB8fCAhREVDSU1BTF9MSVRFUkFMX1BBVFRFUk4udGVzdCh2YWx1ZSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgJHt3aGF0fSAnJHt2YWx1ZX0nOiBleHBlY3RlZCBhIGZpbml0ZSBkZWNpbWFsIHN0cmluZ2ApO1xuICB9XG4gIGNvbnN0IG5lZ2F0aXZlID0gdmFsdWUuc3RhcnRzV2l0aCgnLScpO1xuICBjb25zdCB1bnNpZ25lZCA9IG5lZ2F0aXZlIHx8IHZhbHVlLnN0YXJ0c1dpdGgoJysnKSA/IHZhbHVlLnNsaWNlKDEpIDogdmFsdWU7XG4gIGNvbnN0IFtpbnRQYXJ0ID0gJzAnLCBmcmFjUGFydCA9ICcnXSA9IHVuc2lnbmVkLnNwbGl0KCcuJyk7XG4gIGNvbnN0IGRpZ2l0cyA9IEJpZ0ludChpbnRQYXJ0ICsgZnJhY1BhcnQgfHwgJzAnKTtcbiAgcmV0dXJuIHsgbmVnYXRpdmUsIGRpZ2l0cywgc2NhbGU6IGZyYWNQYXJ0Lmxlbmd0aCB9O1xufVxuXG4vKiogUmVuZGVyIMKxZGlnaXRzLzEwXnNjYWxlIGFzIGEgbm9ybWFsaXplZCBkZWNpbWFsIHN0cmluZyAobm8gdHJhaWxpbmcgemVyb3MsIG5vIFwiLTBcIikuICovXG5mdW5jdGlvbiB0b0RlY2ltYWxTdHJpbmcoeyBuZWdhdGl2ZSwgZGlnaXRzLCBzY2FsZSB9OiBQYXJzZWREZWNpbWFsKTogc3RyaW5nIHtcbiAgaWYgKGRpZ2l0cyA9PT0gMG4pIHtcbiAgICByZXR1cm4gJzAnO1xuICB9XG4gIGxldCBzID0gZGlnaXRzLnRvU3RyaW5nKCkucGFkU3RhcnQoc2NhbGUgKyAxLCAnMCcpO1xuICBpZiAoc2NhbGUgPiAwKSB7XG4gICAgcyA9IGAke3Muc2xpY2UoMCwgLXNjYWxlKX0uJHtzLnNsaWNlKC1zY2FsZSl9YDtcbiAgICBzID0gcy5yZXBsYWNlKC8wKyQvLCAnJykucmVwbGFjZSgvXFwuJC8sICcnKTtcbiAgfVxuICByZXR1cm4gbmVnYXRpdmUgPyBgLSR7c31gIDogcztcbn1cblxuLyoqXG4gKiBDb252ZXJ0IGEgcmF3IGJhc2UtdW5pdCBhbW91bnQgdG8gaXRzIHNjYWxlZCBVSSBkZW5vbWluYXRpb24uXG4gKlxuICogRXhhY3QgYnkgY29uc3RydWN0aW9uOiB0aGUgcmVzdWx0IGlzIGByYXcgKiBtdWx0aXBsaWVyIC8gMTBeZGVjaW1hbHNgLCB3aG9zZVxuICogZXhhY3QgZGVjaW1hbCBleHBhbnNpb24gbmV2ZXIgZXhjZWVkcyBgbXVsdGlwbGllciBzY2FsZSArIGRlY2ltYWxzYCBmcmFjdGlvblxuICogZGlnaXRzLCBzbyBubyByb3VuZGluZyBldmVyIG9jY3Vycy5cbiAqXG4gKiBAcGFyYW0gcmF3IEFtb3VudCBpbiByYXcgYmFzZSB1bml0cyAoaW50ZWdlciwgPj0gMClcbiAqIEBwYXJhbSBtdWx0aXBsaWVyIFRoZSBtaW50J3MgVWlBbW91bnRNdWx0aXBsaWVyIGFzIGEgZGVjaW1hbCBzdHJpbmcgKD4gMClcbiAqIEBwYXJhbSBkZWNpbWFscyBUaGUgbWludCdzIGRlY2ltYWxzICg+PSAwKVxuICogQHJldHVybnMgVGhlIGV4YWN0IFVJIGFtb3VudCBhcyBhIGRlY2ltYWwgc3RyaW5nXG4gKiBAdGhyb3dzIGlmIGFueSBhcmd1bWVudCBpcyBtYWxmb3JtZWQsIHRoZSBtdWx0aXBsaWVyIGlzIG5vdCBwb3NpdGl2ZSwgb3IgcmF3L2RlY2ltYWxzIGFyZSBuZWdhdGl2ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gcmF3VG9VaUFtb3VudFN0cmluZyhyYXc6IGJpZ2ludCwgbXVsdGlwbGllcjogc3RyaW5nLCBkZWNpbWFsczogbnVtYmVyKTogc3RyaW5nIHtcbiAgaWYgKHR5cGVvZiByYXcgIT09ICdiaWdpbnQnKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHJhdyBhbW91bnQgJyR7U3RyaW5nKHJhdyl9JzogZXhwZWN0ZWQgYSBCaWdJbnQgb2YgYmFzZSB1bml0c2ApO1xuICB9XG4gIGlmIChyYXcgPCAwbikge1xuICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCByYXcgYW1vdW50ICcke3Jhd30nOiBtdXN0IGJlIG5vbi1uZWdhdGl2ZWApO1xuICB9XG4gIGlmICghTnVtYmVyLmlzSW50ZWdlcihkZWNpbWFscykgfHwgZGVjaW1hbHMgPCAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGRlY2ltYWxzICcke2RlY2ltYWxzfSc6IG11c3QgYmUgYSBub24tbmVnYXRpdmUgaW50ZWdlcmApO1xuICB9XG4gIGNvbnN0IG11bHQgPSBwYXJzZURlY2ltYWwobXVsdGlwbGllciwgJ211bHRpcGxpZXInKTtcbiAgaWYgKG11bHQubmVnYXRpdmUgfHwgbXVsdC5kaWdpdHMgPT09IDBuKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIG11bHRpcGxpZXIgJyR7bXVsdGlwbGllcn0nOiBtdXN0IGJlIHBvc2l0aXZlYCk7XG4gIH1cblxuICAvLyB1aSA9IHJhdyAqIChtdWx0RGlnaXRzIC8gMTBebXVsdFNjYWxlKSAvIDEwXmRlY2ltYWxzXG4gIC8vICAgID0gKHJhdyAqIG11bHREaWdpdHMpIC8gMTBeKG11bHRTY2FsZSArIGRlY2ltYWxzKSAgIOKAlCBleGFjdCwgdGVybWluYXRpbmcgZXhwYW5zaW9uXG4gIGNvbnN0IG51bWVyYXRvciA9IHJhdyAqIG11bHQuZGlnaXRzO1xuICBjb25zdCBmcmFjdGlvbkRpZ2l0cyA9IG11bHQuc2NhbGUgKyBkZWNpbWFscztcbiAgY29uc3QgZGVub21pbmF0b3IgPSAxMG4gKiogQmlnSW50KGZyYWN0aW9uRGlnaXRzKTtcblxuICBjb25zdCBxdW90aWVudCA9IG51bWVyYXRvciAvIGRlbm9taW5hdG9yO1xuICBjb25zdCByZW1haW5kZXIgPSBudW1lcmF0b3IgJSBkZW5vbWluYXRvcjtcbiAgaWYgKHJlbWFpbmRlciA9PT0gMG4pIHtcbiAgICByZXR1cm4gdG9EZWNpbWFsU3RyaW5nKHsgbmVnYXRpdmU6IGZhbHNlLCBkaWdpdHM6IHF1b3RpZW50LCBzY2FsZTogMCB9KTtcbiAgfVxuICAvLyBUaGUgZGVub21pbmF0b3IgSVMgMTBeZnJhY3Rpb25EaWdpdHMsIHNvIHRoZSBleGFjdCBmcmFjdGlvbiBkaWdpdHMgYXJlIGByZW1haW5kZXJgXG4gIC8vIHplcm8tcGFkZGVkIHRvIGZyYWN0aW9uRGlnaXRzIOKAlCBubyBsb25nIGRpdmlzaW9uIG5lZWRlZC5cbiAgcmV0dXJuIHRvRGVjaW1hbFN0cmluZyh7XG4gICAgbmVnYXRpdmU6IGZhbHNlLFxuICAgIGRpZ2l0czogcXVvdGllbnQgKiAxMG4gKiogQmlnSW50KGZyYWN0aW9uRGlnaXRzKSArIHJlbWFpbmRlcixcbiAgICBzY2FsZTogZnJhY3Rpb25EaWdpdHMsXG4gIH0pO1xufVxuXG4vKipcbiAqIENvbnZlcnQgYSBzY2FsZWQgVUkgZGVub21pbmF0aW9uIHRvIHJhdyBiYXNlIHVuaXRzLiBJbnZlcnNlIG9mXG4gKiB7QGxpbmsgcmF3VG9VaUFtb3VudFN0cmluZ306IGZsb29yaW5nIGFuIGV4YWN0IHVpIHN0cmluZyByZXByb2R1Y2VzIHRoZVxuICogb3JpZ2luYWwgcmF3IGFtb3VudC5cbiAqXG4gKiBAcGFyYW0gdWlBbW91bnQgVGhlIFVJIGFtb3VudCBhcyBhIGRlY2ltYWwgc3RyaW5nICg+PSAwKVxuICogQHBhcmFtIG11bHRpcGxpZXIgVGhlIG1pbnQncyBVaUFtb3VudE11bHRpcGxpZXIgYXMgYSBkZWNpbWFsIHN0cmluZyAoPiAwKVxuICogQHBhcmFtIGRlY2ltYWxzIFRoZSBtaW50J3MgZGVjaW1hbHMgKD49IDApXG4gKiBAcmV0dXJucyBUaGUgcmF3IGFtb3VudCBpbiBiYXNlIHVuaXRzLCBmbG9vcmVkIHRvIHRoZSBpbnRlZ2VyIHVuaXRcbiAqIEB0aHJvd3MgaWYgYW55IGFyZ3VtZW50IGlzIG1hbGZvcm1lZCwgdGhlIHVpIGFtb3VudCBpcyBuZWdhdGl2ZSwgb3IgdGhlIG11bHRpcGxpZXIgaXMgbm90IHBvc2l0aXZlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1aUFtb3VudFRvUmF3KHVpQW1vdW50OiBzdHJpbmcsIG11bHRpcGxpZXI6IHN0cmluZywgZGVjaW1hbHM6IG51bWJlcik6IGJpZ2ludCB7XG4gIGlmICghTnVtYmVyLmlzSW50ZWdlcihkZWNpbWFscykgfHwgZGVjaW1hbHMgPCAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGRlY2ltYWxzICcke2RlY2ltYWxzfSc6IG11c3QgYmUgYSBub24tbmVnYXRpdmUgaW50ZWdlcmApO1xuICB9XG4gIGNvbnN0IHVpID0gcGFyc2VEZWNpbWFsKHVpQW1vdW50LCAndWlBbW91bnQnKTtcbiAgaWYgKHVpLm5lZ2F0aXZlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHVpQW1vdW50ICcke3VpQW1vdW50fSc6IG11c3QgYmUgbm9uLW5lZ2F0aXZlYCk7XG4gIH1cbiAgY29uc3QgbXVsdCA9IHBhcnNlRGVjaW1hbChtdWx0aXBsaWVyLCAnbXVsdGlwbGllcicpO1xuICBpZiAobXVsdC5uZWdhdGl2ZSB8fCBtdWx0LmRpZ2l0cyA9PT0gMG4pIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgbXVsdGlwbGllciAnJHttdWx0aXBsaWVyfSc6IG11c3QgYmUgcG9zaXRpdmVgKTtcbiAgfVxuXG4gIC8vIHVpID0gdWlEaWdpdHMgLyAxMF51aVNjYWxlOyAgbXVsdGlwbGllciA9IG11bHREaWdpdHMgLyAxMF5tdWx0U2NhbGVcbiAgLy8gcmF3ID0gKHVpRGlnaXRzIC8gMTBedWlTY2FsZSkgKiAxMF5kZWNpbWFscyAqICgxMF5tdWx0U2NhbGUgLyBtdWx0RGlnaXRzKVxuICAvLyAgICAgPSAodWlEaWdpdHMgKiAxMF4oZGVjaW1hbHMgKyBtdWx0U2NhbGUpKSAvIChtdWx0RGlnaXRzICogMTBedWlTY2FsZSlcbiAgY29uc3QgbnVtZXJhdG9yID0gdWkuZGlnaXRzICogMTBuICoqIEJpZ0ludChkZWNpbWFscyArIG11bHQuc2NhbGUpO1xuICBjb25zdCBkZW5vbWluYXRvciA9IG11bHQuZGlnaXRzICogMTBuICoqIEJpZ0ludCh1aS5zY2FsZSk7XG4gIHJldHVybiBudW1lcmF0b3IgLyBkZW5vbWluYXRvcjsgLy8gZmxvb3Ig4oCUIHJhdyBiYXNlIHVuaXRzIGFyZSBpbnRlZ2Vyc1xufVxuIl19
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v1 (SIMD-0296/0385) transaction config codec: bit mask + value encoding.
|
|
3
|
+
*/
|
|
4
|
+
export declare const PRIORITY_FEE_BITS = 3;
|
|
5
|
+
export declare const COMPUTE_UNIT_LIMIT_BIT = 4;
|
|
6
|
+
export declare const LOADED_ACCOUNTS_DATA_SIZE_LIMIT_BIT = 8;
|
|
7
|
+
export declare const HEAP_SIZE_BIT = 16;
|
|
8
|
+
export type ConfigValue = {
|
|
9
|
+
kind: 'u32' | 'u64';
|
|
10
|
+
value: number | bigint;
|
|
11
|
+
};
|
|
12
|
+
export declare function encodeConfigMaskAndValues(config: {
|
|
13
|
+
computeUnitLimit: number | null;
|
|
14
|
+
heapSize: number | null;
|
|
15
|
+
loadedAccountsDataSizeLimit: number | null;
|
|
16
|
+
priorityFee: number | null;
|
|
17
|
+
}): {
|
|
18
|
+
mask: number;
|
|
19
|
+
values: ConfigValue[];
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/serialization/codecs/v1/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,eAAO,MAAM,iBAAiB,IAAO,CAAC;AACtC,eAAO,MAAM,sBAAsB,IAAQ,CAAC;AAC5C,eAAO,MAAM,mCAAmC,IAAS,CAAC;AAC1D,eAAO,MAAM,aAAa,KAAU,CAAC;AAErC,MAAM,MAAM,WAAW,GAAG;IAAE,IAAI,EAAE,KAAK,GAAG,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAC;AAE1E,wBAAgB,yBAAyB,CAAC,MAAM,EAAE;IAChD,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,2BAA2B,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,WAAW,EAAE,CAAA;CAAE,CAoB1C"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v1 (SIMD-0296/0385) transaction config codec: bit mask + value encoding.
|
|
3
|
+
*/
|
|
4
|
+
// Transaction config mask bits (mirror @solana/transaction-messages).
|
|
5
|
+
export const PRIORITY_FEE_BITS = 0b11;
|
|
6
|
+
export const COMPUTE_UNIT_LIMIT_BIT = 0b100;
|
|
7
|
+
export const LOADED_ACCOUNTS_DATA_SIZE_LIMIT_BIT = 0b1000;
|
|
8
|
+
export const HEAP_SIZE_BIT = 0b10000;
|
|
9
|
+
export function encodeConfigMaskAndValues(config) {
|
|
10
|
+
let mask = 0;
|
|
11
|
+
const values = [];
|
|
12
|
+
if (config.priorityFee !== null) {
|
|
13
|
+
mask |= PRIORITY_FEE_BITS;
|
|
14
|
+
values.push({ kind: 'u64', value: BigInt(config.priorityFee) });
|
|
15
|
+
}
|
|
16
|
+
if (config.computeUnitLimit !== null) {
|
|
17
|
+
mask |= COMPUTE_UNIT_LIMIT_BIT;
|
|
18
|
+
values.push({ kind: 'u32', value: config.computeUnitLimit });
|
|
19
|
+
}
|
|
20
|
+
if (config.loadedAccountsDataSizeLimit !== null) {
|
|
21
|
+
mask |= LOADED_ACCOUNTS_DATA_SIZE_LIMIT_BIT;
|
|
22
|
+
values.push({ kind: 'u32', value: config.loadedAccountsDataSizeLimit });
|
|
23
|
+
}
|
|
24
|
+
if (config.heapSize !== null) {
|
|
25
|
+
mask |= HEAP_SIZE_BIT;
|
|
26
|
+
values.push({ kind: 'u32', value: config.heapSize });
|
|
27
|
+
}
|
|
28
|
+
return { mask, values };
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJpYWxpemF0aW9uL2NvZGVjcy92MS9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxzRUFBc0U7QUFDdEUsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDO0FBQ3RDLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLEtBQUssQ0FBQztBQUM1QyxNQUFNLENBQUMsTUFBTSxtQ0FBbUMsR0FBRyxNQUFNLENBQUM7QUFDMUQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQztBQUlyQyxNQUFNLFVBQVUseUJBQXlCLENBQUMsTUFLekM7SUFDQyxJQUFJLElBQUksR0FBRyxDQUFDLENBQUM7SUFDYixNQUFNLE1BQU0sR0FBa0IsRUFBRSxDQUFDO0lBQ2pDLElBQUksTUFBTSxDQUFDLFdBQVcsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUNoQyxJQUFJLElBQUksaUJBQWlCLENBQUM7UUFDMUIsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFDRCxJQUFJLE1BQU0sQ0FBQyxnQkFBZ0IsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUNyQyxJQUFJLElBQUksc0JBQXNCLENBQUM7UUFDL0IsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUNELElBQUksTUFBTSxDQUFDLDJCQUEyQixLQUFLLElBQUksRUFBRSxDQUFDO1FBQ2hELElBQUksSUFBSSxtQ0FBbUMsQ0FBQztRQUM1QyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLDJCQUEyQixFQUFFLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBQ0QsSUFBSSxNQUFNLENBQUMsUUFBUSxLQUFLLElBQUksRUFBRSxDQUFDO1FBQzdCLElBQUksSUFBSSxhQUFhLENBQUM7UUFDdEIsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFDRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO0FBQzFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIHYxIChTSU1ELTAyOTYvMDM4NSkgdHJhbnNhY3Rpb24gY29uZmlnIGNvZGVjOiBiaXQgbWFzayArIHZhbHVlIGVuY29kaW5nLlxuICovXG5cbi8vIFRyYW5zYWN0aW9uIGNvbmZpZyBtYXNrIGJpdHMgKG1pcnJvciBAc29sYW5hL3RyYW5zYWN0aW9uLW1lc3NhZ2VzKS5cbmV4cG9ydCBjb25zdCBQUklPUklUWV9GRUVfQklUUyA9IDBiMTE7XG5leHBvcnQgY29uc3QgQ09NUFVURV9VTklUX0xJTUlUX0JJVCA9IDBiMTAwO1xuZXhwb3J0IGNvbnN0IExPQURFRF9BQ0NPVU5UU19EQVRBX1NJWkVfTElNSVRfQklUID0gMGIxMDAwO1xuZXhwb3J0IGNvbnN0IEhFQVBfU0laRV9CSVQgPSAwYjEwMDAwO1xuXG5leHBvcnQgdHlwZSBDb25maWdWYWx1ZSA9IHsga2luZDogJ3UzMicgfCAndTY0JzsgdmFsdWU6IG51bWJlciB8IGJpZ2ludCB9O1xuXG5leHBvcnQgZnVuY3Rpb24gZW5jb2RlQ29uZmlnTWFza0FuZFZhbHVlcyhjb25maWc6IHtcbiAgY29tcHV0ZVVuaXRMaW1pdDogbnVtYmVyIHwgbnVsbDtcbiAgaGVhcFNpemU6IG51bWJlciB8IG51bGw7XG4gIGxvYWRlZEFjY291bnRzRGF0YVNpemVMaW1pdDogbnVtYmVyIHwgbnVsbDtcbiAgcHJpb3JpdHlGZWU6IG51bWJlciB8IG51bGw7XG59KTogeyBtYXNrOiBudW1iZXI7IHZhbHVlczogQ29uZmlnVmFsdWVbXSB9IHtcbiAgbGV0IG1hc2sgPSAwO1xuICBjb25zdCB2YWx1ZXM6IENvbmZpZ1ZhbHVlW10gPSBbXTtcbiAgaWYgKGNvbmZpZy5wcmlvcml0eUZlZSAhPT0gbnVsbCkge1xuICAgIG1hc2sgfD0gUFJJT1JJVFlfRkVFX0JJVFM7XG4gICAgdmFsdWVzLnB1c2goeyBraW5kOiAndTY0JywgdmFsdWU6IEJpZ0ludChjb25maWcucHJpb3JpdHlGZWUpIH0pO1xuICB9XG4gIGlmIChjb25maWcuY29tcHV0ZVVuaXRMaW1pdCAhPT0gbnVsbCkge1xuICAgIG1hc2sgfD0gQ09NUFVURV9VTklUX0xJTUlUX0JJVDtcbiAgICB2YWx1ZXMucHVzaCh7IGtpbmQ6ICd1MzInLCB2YWx1ZTogY29uZmlnLmNvbXB1dGVVbml0TGltaXQgfSk7XG4gIH1cbiAgaWYgKGNvbmZpZy5sb2FkZWRBY2NvdW50c0RhdGFTaXplTGltaXQgIT09IG51bGwpIHtcbiAgICBtYXNrIHw9IExPQURFRF9BQ0NPVU5UU19EQVRBX1NJWkVfTElNSVRfQklUO1xuICAgIHZhbHVlcy5wdXNoKHsga2luZDogJ3UzMicsIHZhbHVlOiBjb25maWcubG9hZGVkQWNjb3VudHNEYXRhU2l6ZUxpbWl0IH0pO1xuICB9XG4gIGlmIChjb25maWcuaGVhcFNpemUgIT09IG51bGwpIHtcbiAgICBtYXNrIHw9IEhFQVBfU0laRV9CSVQ7XG4gICAgdmFsdWVzLnB1c2goeyBraW5kOiAndTMyJywgdmFsdWU6IGNvbmZpZy5oZWFwU2l6ZSB9KTtcbiAgfVxuICByZXR1cm4geyBtYXNrLCB2YWx1ZXMgfTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v1 (SIMD-0296/0385) transaction instruction codec: header + payload encoding.
|
|
3
|
+
*/
|
|
4
|
+
export type CompiledInstruction = {
|
|
5
|
+
programAddressIndex: number;
|
|
6
|
+
accountIndices: number[];
|
|
7
|
+
data: Uint8Array;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Encode instruction headers (4 bytes each) then payloads for the given
|
|
11
|
+
* compiled instructions, appending to `buf`.
|
|
12
|
+
*/
|
|
13
|
+
export declare function encodeInstructions(buf: number[], instructions: CompiledInstruction[]): void;
|
|
14
|
+
//# sourceMappingURL=instruction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instruction.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/serialization/codecs/v1/instruction.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,mBAAmB,GAAG;IAChC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,IAAI,EAAE,UAAU,CAAC;CAClB,CAAC;AASF;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,mBAAmB,EAAE,GAAG,IAAI,CAc3F"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v1 (SIMD-0296/0385) transaction instruction codec: header + payload encoding.
|
|
3
|
+
*/
|
|
4
|
+
function pushU8(buf, v) {
|
|
5
|
+
buf.push(v & 0xff);
|
|
6
|
+
}
|
|
7
|
+
function pushU16LE(buf, v) {
|
|
8
|
+
buf.push(v & 0xff, (v >>> 8) & 0xff);
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Encode instruction headers (4 bytes each) then payloads for the given
|
|
12
|
+
* compiled instructions, appending to `buf`.
|
|
13
|
+
*/
|
|
14
|
+
export function encodeInstructions(buf, instructions) {
|
|
15
|
+
for (const instruction of instructions) {
|
|
16
|
+
pushU8(buf, instruction.programAddressIndex);
|
|
17
|
+
pushU8(buf, instruction.accountIndices.length);
|
|
18
|
+
pushU16LE(buf, instruction.data.length);
|
|
19
|
+
}
|
|
20
|
+
for (const instruction of instructions) {
|
|
21
|
+
for (const idx of instruction.accountIndices) {
|
|
22
|
+
pushU8(buf, idx);
|
|
23
|
+
}
|
|
24
|
+
for (const b of instruction.data) {
|
|
25
|
+
pushU8(buf, b);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdHJ1Y3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcmlhbGl6YXRpb24vY29kZWNzL3YxL2luc3RydWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBUUgsU0FBUyxNQUFNLENBQUMsR0FBYSxFQUFFLENBQVM7SUFDdEMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7QUFDckIsQ0FBQztBQUNELFNBQVMsU0FBUyxDQUFDLEdBQWEsRUFBRSxDQUFTO0lBQ3pDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztBQUN2QyxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLGtCQUFrQixDQUFDLEdBQWEsRUFBRSxZQUFtQztJQUNuRixLQUFLLE1BQU0sV0FBVyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3ZDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsV0FBVyxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDN0MsTUFBTSxDQUFDLEdBQUcsRUFBRSxXQUFXLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQy9DLFNBQVMsQ0FBQyxHQUFHLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBQ0QsS0FBSyxNQUFNLFdBQVcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN2QyxLQUFLLE1BQU0sR0FBRyxJQUFJLFdBQVcsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUM3QyxNQUFNLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ25CLENBQUM7UUFDRCxLQUFLLE1BQU0sQ0FBQyxJQUFJLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNqQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2pCLENBQUM7SUFDSCxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogdjEgKFNJTUQtMDI5Ni8wMzg1KSB0cmFuc2FjdGlvbiBpbnN0cnVjdGlvbiBjb2RlYzogaGVhZGVyICsgcGF5bG9hZCBlbmNvZGluZy5cbiAqL1xuXG5leHBvcnQgdHlwZSBDb21waWxlZEluc3RydWN0aW9uID0ge1xuICBwcm9ncmFtQWRkcmVzc0luZGV4OiBudW1iZXI7XG4gIGFjY291bnRJbmRpY2VzOiBudW1iZXJbXTtcbiAgZGF0YTogVWludDhBcnJheTtcbn07XG5cbmZ1bmN0aW9uIHB1c2hVOChidWY6IG51bWJlcltdLCB2OiBudW1iZXIpIHtcbiAgYnVmLnB1c2godiAmIDB4ZmYpO1xufVxuZnVuY3Rpb24gcHVzaFUxNkxFKGJ1ZjogbnVtYmVyW10sIHY6IG51bWJlcikge1xuICBidWYucHVzaCh2ICYgMHhmZiwgKHYgPj4+IDgpICYgMHhmZik7XG59XG5cbi8qKlxuICogRW5jb2RlIGluc3RydWN0aW9uIGhlYWRlcnMgKDQgYnl0ZXMgZWFjaCkgdGhlbiBwYXlsb2FkcyBmb3IgdGhlIGdpdmVuXG4gKiBjb21waWxlZCBpbnN0cnVjdGlvbnMsIGFwcGVuZGluZyB0byBgYnVmYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVuY29kZUluc3RydWN0aW9ucyhidWY6IG51bWJlcltdLCBpbnN0cnVjdGlvbnM6IENvbXBpbGVkSW5zdHJ1Y3Rpb25bXSk6IHZvaWQge1xuICBmb3IgKGNvbnN0IGluc3RydWN0aW9uIG9mIGluc3RydWN0aW9ucykge1xuICAgIHB1c2hVOChidWYsIGluc3RydWN0aW9uLnByb2dyYW1BZGRyZXNzSW5kZXgpO1xuICAgIHB1c2hVOChidWYsIGluc3RydWN0aW9uLmFjY291bnRJbmRpY2VzLmxlbmd0aCk7XG4gICAgcHVzaFUxNkxFKGJ1ZiwgaW5zdHJ1Y3Rpb24uZGF0YS5sZW5ndGgpO1xuICB9XG4gIGZvciAoY29uc3QgaW5zdHJ1Y3Rpb24gb2YgaW5zdHJ1Y3Rpb25zKSB7XG4gICAgZm9yIChjb25zdCBpZHggb2YgaW5zdHJ1Y3Rpb24uYWNjb3VudEluZGljZXMpIHtcbiAgICAgIHB1c2hVOChidWYsIGlkeCk7XG4gICAgfVxuICAgIGZvciAoY29uc3QgYiBvZiBpbnN0cnVjdGlvbi5kYXRhKSB7XG4gICAgICBwdXNoVTgoYnVmLCBiKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { encodeConfigMaskAndValues, ConfigValue } from './config';
|
|
2
|
+
import { CompiledInstruction } from './instruction';
|
|
3
|
+
export type V1MessageHeader = {
|
|
4
|
+
numSignerAccounts: number;
|
|
5
|
+
numReadonlySignerAccounts: number;
|
|
6
|
+
numReadonlyNonSignerAccounts: number;
|
|
7
|
+
};
|
|
8
|
+
export declare function encodeV1Message(args: {
|
|
9
|
+
header: V1MessageHeader;
|
|
10
|
+
configMask: number;
|
|
11
|
+
configValues: ConfigValue[];
|
|
12
|
+
blockhash: string;
|
|
13
|
+
staticAccounts: string[];
|
|
14
|
+
compiledInstructions: CompiledInstruction[];
|
|
15
|
+
}): Uint8Array;
|
|
16
|
+
export { encodeConfigMaskAndValues };
|
|
17
|
+
export type V1DecodedMessage = {
|
|
18
|
+
header: V1MessageHeader;
|
|
19
|
+
configMask: number;
|
|
20
|
+
configValues: ConfigValue[];
|
|
21
|
+
blockhash: string;
|
|
22
|
+
staticAccounts: string[];
|
|
23
|
+
compiledInstructions: CompiledInstruction[];
|
|
24
|
+
byteLength: number;
|
|
25
|
+
};
|
|
26
|
+
export declare function decodeV1Message(bytes: Uint8Array): V1DecodedMessage;
|
|
27
|
+
//# sourceMappingURL=message.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/serialization/codecs/v1/message.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,yBAAyB,EACzB,WAAW,EAKZ,MAAM,UAAU,CAAC;AAClB,OAAO,EAAsB,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAuBxE,MAAM,MAAM,eAAe,GAAG;IAC5B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,yBAAyB,EAAE,MAAM,CAAC;IAClC,4BAA4B,EAAE,MAAM,CAAC;CACtC,CAAC;AAEF,wBAAgB,eAAe,CAAC,IAAI,EAAE;IACpC,MAAM,EAAE,eAAe,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,oBAAoB,EAAE,mBAAmB,EAAE,CAAC;CAC7C,GAAG,UAAU,CA+Bb;AAED,OAAO,EAAE,yBAAyB,EAAE,CAAC;AAUrC,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,eAAe,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,oBAAoB,EAAE,mBAAmB,EAAE,CAAC;IAC5C,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAyBF,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,gBAAgB,CAwGnE"}
|