@crossmint/wallets-sdk 0.20.4 → 0.20.5
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/package.json +50 -47
- package/LICENSE +0 -201
- package/README.md +0 -96
- package/dist/api/__tests__/constants.cjs +0 -32
- package/dist/api/__tests__/constants.cjs.map +0 -1
- package/dist/api/__tests__/constants.d.cts +0 -96
- package/dist/api/__tests__/constants.d.ts +0 -96
- package/dist/api/__tests__/constants.js +0 -32
- package/dist/api/__tests__/constants.js.map +0 -1
- package/dist/api/__tests__/test-utils.cjs +0 -373
- package/dist/api/__tests__/test-utils.cjs.map +0 -1
- package/dist/api/__tests__/test-utils.d.cts +0 -99
- package/dist/api/__tests__/test-utils.d.ts +0 -99
- package/dist/api/__tests__/test-utils.js +0 -373
- package/dist/api/__tests__/test-utils.js.map +0 -1
- package/dist/api/client.cjs +0 -11
- package/dist/api/client.cjs.map +0 -1
- package/dist/api/client.d.cts +0 -42
- package/dist/api/client.d.ts +0 -42
- package/dist/api/client.js +0 -11
- package/dist/api/client.js.map +0 -1
- package/dist/api/gen/client.gen.cjs +0 -8
- package/dist/api/gen/client.gen.cjs.map +0 -1
- package/dist/api/gen/client.gen.d.cts +0 -16
- package/dist/api/gen/client.gen.d.ts +0 -16
- package/dist/api/gen/client.gen.js +0 -8
- package/dist/api/gen/client.gen.js.map +0 -1
- package/dist/api/gen/index.cjs +0 -180
- package/dist/api/gen/index.cjs.map +0 -1
- package/dist/api/gen/index.d.cts +0 -3
- package/dist/api/gen/index.d.ts +0 -3
- package/dist/api/gen/index.js +0 -180
- package/dist/api/gen/index.js.map +0 -1
- package/dist/api/gen/sdk.gen.cjs +0 -179
- package/dist/api/gen/sdk.gen.cjs.map +0 -1
- package/dist/api/gen/sdk.gen.d.cts +0 -611
- package/dist/api/gen/sdk.gen.d.ts +0 -611
- package/dist/api/gen/sdk.gen.js +0 -179
- package/dist/api/gen/sdk.gen.js.map +0 -1
- package/dist/api/gen/types.gen.cjs +0 -2
- package/dist/api/gen/types.gen.cjs.map +0 -1
- package/dist/api/gen/types.gen.d.cts +0 -13865
- package/dist/api/gen/types.gen.d.ts +0 -13865
- package/dist/api/gen/types.gen.js +0 -2
- package/dist/api/gen/types.gen.js.map +0 -1
- package/dist/api/index.cjs +0 -13
- package/dist/api/index.cjs.map +0 -1
- package/dist/api/index.d.cts +0 -6
- package/dist/api/index.d.ts +0 -6
- package/dist/api/index.js +0 -13
- package/dist/api/index.js.map +0 -1
- package/dist/api/types.cjs +0 -2
- package/dist/api/types.cjs.map +0 -1
- package/dist/api/types.d.cts +0 -55
- package/dist/api/types.d.ts +0 -55
- package/dist/api/types.js +0 -2
- package/dist/api/types.js.map +0 -1
- package/dist/chains/chains.cjs +0 -25
- package/dist/chains/chains.cjs.map +0 -1
- package/dist/chains/chains.d.cts +0 -28
- package/dist/chains/chains.d.ts +0 -28
- package/dist/chains/chains.js +0 -25
- package/dist/chains/chains.js.map +0 -1
- package/dist/chains/definitions/arcTestnet.cjs +0 -8
- package/dist/chains/definitions/arcTestnet.cjs.map +0 -1
- package/dist/chains/definitions/arcTestnet.d.cts +0 -43
- package/dist/chains/definitions/arcTestnet.d.ts +0 -43
- package/dist/chains/definitions/arcTestnet.js +0 -8
- package/dist/chains/definitions/arcTestnet.js.map +0 -1
- package/dist/chains/definitions/story.cjs +0 -8
- package/dist/chains/definitions/story.cjs.map +0 -1
- package/dist/chains/definitions/story.d.cts +0 -49
- package/dist/chains/definitions/story.d.ts +0 -49
- package/dist/chains/definitions/story.js +0 -8
- package/dist/chains/definitions/story.js.map +0 -1
- package/dist/chains/definitions/storyTestnet.cjs +0 -8
- package/dist/chains/definitions/storyTestnet.cjs.map +0 -1
- package/dist/chains/definitions/storyTestnet.d.cts +0 -43
- package/dist/chains/definitions/storyTestnet.d.ts +0 -43
- package/dist/chains/definitions/storyTestnet.js +0 -8
- package/dist/chains/definitions/storyTestnet.js.map +0 -1
- package/dist/chains/definitions/tempo.cjs +0 -8
- package/dist/chains/definitions/tempo.cjs.map +0 -1
- package/dist/chains/definitions/tempo.d.cts +0 -39
- package/dist/chains/definitions/tempo.d.ts +0 -39
- package/dist/chains/definitions/tempo.js +0 -8
- package/dist/chains/definitions/tempo.js.map +0 -1
- package/dist/chains/definitions/tempoTestnet.cjs +0 -8
- package/dist/chains/definitions/tempoTestnet.cjs.map +0 -1
- package/dist/chains/definitions/tempoTestnet.d.cts +0 -39
- package/dist/chains/definitions/tempoTestnet.d.ts +0 -39
- package/dist/chains/definitions/tempoTestnet.js +0 -8
- package/dist/chains/definitions/tempoTestnet.js.map +0 -1
- package/dist/chunk-2QI75IOB.js +0 -85
- package/dist/chunk-2QI75IOB.js.map +0 -1
- package/dist/chunk-2RQYQVVY.js +0 -20
- package/dist/chunk-2RQYQVVY.js.map +0 -1
- package/dist/chunk-33TLFTHT.js +0 -22
- package/dist/chunk-33TLFTHT.js.map +0 -1
- package/dist/chunk-36C7SCPK.js +0 -156
- package/dist/chunk-36C7SCPK.js.map +0 -1
- package/dist/chunk-3J2BNUTO.js +0 -16
- package/dist/chunk-3J2BNUTO.js.map +0 -1
- package/dist/chunk-3PG4HRAS.js +0 -67
- package/dist/chunk-3PG4HRAS.js.map +0 -1
- package/dist/chunk-4AV3GY27.js +0 -59
- package/dist/chunk-4AV3GY27.js.map +0 -1
- package/dist/chunk-4BB7YYTT.js +0 -64
- package/dist/chunk-4BB7YYTT.js.map +0 -1
- package/dist/chunk-4GADBBZN.cjs +0 -156
- package/dist/chunk-4GADBBZN.cjs.map +0 -1
- package/dist/chunk-4GSHSMCA.js +0 -90
- package/dist/chunk-4GSHSMCA.js.map +0 -1
- package/dist/chunk-5NIFUAZH.js +0 -83
- package/dist/chunk-5NIFUAZH.js.map +0 -1
- package/dist/chunk-5OFC4HSW.js +0 -111
- package/dist/chunk-5OFC4HSW.js.map +0 -1
- package/dist/chunk-5QPU62QL.cjs +0 -111
- package/dist/chunk-5QPU62QL.cjs.map +0 -1
- package/dist/chunk-6CR6FGAO.cjs +0 -67
- package/dist/chunk-6CR6FGAO.cjs.map +0 -1
- package/dist/chunk-6DPHKKVR.cjs +0 -37
- package/dist/chunk-6DPHKKVR.cjs.map +0 -1
- package/dist/chunk-6G4QLBSO.js +0 -22
- package/dist/chunk-6G4QLBSO.js.map +0 -1
- package/dist/chunk-6PIQDY3F.cjs +0 -44
- package/dist/chunk-6PIQDY3F.cjs.map +0 -1
- package/dist/chunk-6QZLBFZZ.js +0 -116
- package/dist/chunk-6QZLBFZZ.js.map +0 -1
- package/dist/chunk-7PHIXK4Q.js +0 -17
- package/dist/chunk-7PHIXK4Q.js.map +0 -1
- package/dist/chunk-A3QJT5UU.cjs +0 -59
- package/dist/chunk-A3QJT5UU.cjs.map +0 -1
- package/dist/chunk-AMS7MCD6.js +0 -238
- package/dist/chunk-AMS7MCD6.js.map +0 -1
- package/dist/chunk-BBUEX3DG.cjs +0 -53
- package/dist/chunk-BBUEX3DG.cjs.map +0 -1
- package/dist/chunk-BD3ZXT5D.js +0 -1
- package/dist/chunk-BD3ZXT5D.js.map +0 -1
- package/dist/chunk-C6WWOWGR.js +0 -26
- package/dist/chunk-C6WWOWGR.js.map +0 -1
- package/dist/chunk-CLVXR2JV.cjs +0 -60
- package/dist/chunk-CLVXR2JV.cjs.map +0 -1
- package/dist/chunk-CYUJJIHO.cjs +0 -26
- package/dist/chunk-CYUJJIHO.cjs.map +0 -1
- package/dist/chunk-D2OS4757.js +0 -37
- package/dist/chunk-D2OS4757.js.map +0 -1
- package/dist/chunk-DA47DMPI.js +0 -1
- package/dist/chunk-DA47DMPI.js.map +0 -1
- package/dist/chunk-DGBAFJTM.js +0 -44
- package/dist/chunk-DGBAFJTM.js.map +0 -1
- package/dist/chunk-DIJNSNWN.cjs +0 -116
- package/dist/chunk-DIJNSNWN.cjs.map +0 -1
- package/dist/chunk-DN2SNZIX.cjs +0 -22
- package/dist/chunk-DN2SNZIX.cjs.map +0 -1
- package/dist/chunk-EKMTR3GD.js +0 -60
- package/dist/chunk-EKMTR3GD.js.map +0 -1
- package/dist/chunk-FLI7NWQN.cjs +0 -779
- package/dist/chunk-FLI7NWQN.cjs.map +0 -1
- package/dist/chunk-G43MR76L.cjs +0 -20
- package/dist/chunk-G43MR76L.cjs.map +0 -1
- package/dist/chunk-GGMUF77N.cjs +0 -37
- package/dist/chunk-GGMUF77N.cjs.map +0 -1
- package/dist/chunk-GNU6RIKU.js +0 -224
- package/dist/chunk-GNU6RIKU.js.map +0 -1
- package/dist/chunk-H6BH7OK4.cjs +0 -224
- package/dist/chunk-H6BH7OK4.cjs.map +0 -1
- package/dist/chunk-HP6T3FTF.js +0 -70
- package/dist/chunk-HP6T3FTF.js.map +0 -1
- package/dist/chunk-I2O3XXRZ.cjs +0 -16
- package/dist/chunk-I2O3XXRZ.cjs.map +0 -1
- package/dist/chunk-IE4R2VDM.cjs +0 -1
- package/dist/chunk-IE4R2VDM.cjs.map +0 -1
- package/dist/chunk-IP6APT2S.js +0 -248
- package/dist/chunk-IP6APT2S.js.map +0 -1
- package/dist/chunk-IUSTF2DR.js +0 -779
- package/dist/chunk-IUSTF2DR.js.map +0 -1
- package/dist/chunk-IYQMWYQI.cjs +0 -70
- package/dist/chunk-IYQMWYQI.cjs.map +0 -1
- package/dist/chunk-IZYJJUOE.cjs +0 -324
- package/dist/chunk-IZYJJUOE.cjs.map +0 -1
- package/dist/chunk-J2OH6EMB.cjs +0 -26
- package/dist/chunk-J2OH6EMB.cjs.map +0 -1
- package/dist/chunk-J6AO2ZDU.js +0 -743
- package/dist/chunk-J6AO2ZDU.js.map +0 -1
- package/dist/chunk-JF4JR5QQ.js +0 -66
- package/dist/chunk-JF4JR5QQ.js.map +0 -1
- package/dist/chunk-JMRG565N.js +0 -37
- package/dist/chunk-JMRG565N.js.map +0 -1
- package/dist/chunk-JXXXM7AV.js +0 -53
- package/dist/chunk-JXXXM7AV.js.map +0 -1
- package/dist/chunk-KV7KHODO.cjs +0 -10
- package/dist/chunk-KV7KHODO.cjs.map +0 -1
- package/dist/chunk-KXXRVRR6.cjs +0 -83
- package/dist/chunk-KXXRVRR6.cjs.map +0 -1
- package/dist/chunk-L33DZOLM.cjs +0 -1
- package/dist/chunk-L33DZOLM.cjs.map +0 -1
- package/dist/chunk-M2OFHRMU.cjs +0 -1
- package/dist/chunk-M2OFHRMU.cjs.map +0 -1
- package/dist/chunk-NAGMAP3Y.cjs +0 -64
- package/dist/chunk-NAGMAP3Y.cjs.map +0 -1
- package/dist/chunk-NG77OKLY.js +0 -45
- package/dist/chunk-NG77OKLY.js.map +0 -1
- package/dist/chunk-NQR4AQOW.cjs +0 -17
- package/dist/chunk-NQR4AQOW.cjs.map +0 -1
- package/dist/chunk-PHGHKSBT.js +0 -1
- package/dist/chunk-PHGHKSBT.js.map +0 -1
- package/dist/chunk-QFE6TYBN.cjs +0 -75
- package/dist/chunk-QFE6TYBN.cjs.map +0 -1
- package/dist/chunk-QUIRXKKE.js +0 -75
- package/dist/chunk-QUIRXKKE.js.map +0 -1
- package/dist/chunk-RB7HTHG4.js +0 -1
- package/dist/chunk-RB7HTHG4.js.map +0 -1
- package/dist/chunk-RJ3VNO74.cjs +0 -45
- package/dist/chunk-RJ3VNO74.cjs.map +0 -1
- package/dist/chunk-RLWGW5R2.js +0 -1
- package/dist/chunk-RLWGW5R2.js.map +0 -1
- package/dist/chunk-RPLIXWF3.cjs +0 -90
- package/dist/chunk-RPLIXWF3.cjs.map +0 -1
- package/dist/chunk-RUUBB4EB.js +0 -59
- package/dist/chunk-RUUBB4EB.js.map +0 -1
- package/dist/chunk-TONAC74L.cjs +0 -743
- package/dist/chunk-TONAC74L.cjs.map +0 -1
- package/dist/chunk-TXLF6BM6.cjs +0 -22
- package/dist/chunk-TXLF6BM6.cjs.map +0 -1
- package/dist/chunk-UAFXNE4C.js +0 -324
- package/dist/chunk-UAFXNE4C.js.map +0 -1
- package/dist/chunk-UBZ7RWBZ.cjs +0 -1
- package/dist/chunk-UBZ7RWBZ.cjs.map +0 -1
- package/dist/chunk-UDLDOYUB.cjs +0 -1
- package/dist/chunk-UDLDOYUB.cjs.map +0 -1
- package/dist/chunk-V5HHKVTT.cjs +0 -59
- package/dist/chunk-V5HHKVTT.cjs.map +0 -1
- package/dist/chunk-VIL33DEX.js +0 -337
- package/dist/chunk-VIL33DEX.js.map +0 -1
- package/dist/chunk-W4VYO3P6.cjs +0 -66
- package/dist/chunk-W4VYO3P6.cjs.map +0 -1
- package/dist/chunk-W5LNQWQD.cjs +0 -85
- package/dist/chunk-W5LNQWQD.cjs.map +0 -1
- package/dist/chunk-XOVH2G3J.cjs +0 -238
- package/dist/chunk-XOVH2G3J.cjs.map +0 -1
- package/dist/chunk-XWXIO5PH.cjs +0 -248
- package/dist/chunk-XWXIO5PH.cjs.map +0 -1
- package/dist/chunk-Y3CJJ3GO.cjs +0 -337
- package/dist/chunk-Y3CJJ3GO.cjs.map +0 -1
- package/dist/chunk-Y5AADOPZ.js +0 -26
- package/dist/chunk-Y5AADOPZ.js.map +0 -1
- package/dist/chunk-ZEH4W3O4.js +0 -10
- package/dist/chunk-ZEH4W3O4.js.map +0 -1
- package/dist/index.cjs +0 -61
- package/dist/index.cjs.map +0 -1
- package/dist/index.d.cts +0 -19
- package/dist/index.d.ts +0 -19
- package/dist/index.js +0 -61
- package/dist/index.js.map +0 -1
- package/dist/logger/index.cjs +0 -12
- package/dist/logger/index.cjs.map +0 -1
- package/dist/logger/index.d.cts +0 -2
- package/dist/logger/index.d.ts +0 -2
- package/dist/logger/index.js +0 -12
- package/dist/logger/index.js.map +0 -1
- package/dist/logger/init.cjs +0 -11
- package/dist/logger/init.cjs.map +0 -1
- package/dist/logger/init.d.cts +0 -15
- package/dist/logger/init.d.ts +0 -15
- package/dist/logger/init.js +0 -11
- package/dist/logger/init.js.map +0 -1
- package/dist/sdk.cjs +0 -40
- package/dist/sdk.cjs.map +0 -1
- package/dist/sdk.d.cts +0 -48
- package/dist/sdk.d.ts +0 -48
- package/dist/sdk.js +0 -40
- package/dist/sdk.js.map +0 -1
- package/dist/signers/evm-api-key.cjs +0 -8
- package/dist/signers/evm-api-key.cjs.map +0 -1
- package/dist/signers/evm-api-key.d.cts +0 -18
- package/dist/signers/evm-api-key.d.ts +0 -18
- package/dist/signers/evm-api-key.js +0 -8
- package/dist/signers/evm-api-key.js.map +0 -1
- package/dist/signers/evm-external-wallet.cjs +0 -8
- package/dist/signers/evm-external-wallet.cjs.map +0 -1
- package/dist/signers/evm-external-wallet.d.cts +0 -26
- package/dist/signers/evm-external-wallet.d.ts +0 -26
- package/dist/signers/evm-external-wallet.js +0 -8
- package/dist/signers/evm-external-wallet.js.map +0 -1
- package/dist/signers/index.cjs +0 -25
- package/dist/signers/index.cjs.map +0 -1
- package/dist/signers/index.d.cts +0 -11
- package/dist/signers/index.d.ts +0 -11
- package/dist/signers/index.js +0 -25
- package/dist/signers/index.js.map +0 -1
- package/dist/signers/non-custodial/index.cjs +0 -28
- package/dist/signers/non-custodial/index.cjs.map +0 -1
- package/dist/signers/non-custodial/index.d.cts +0 -11
- package/dist/signers/non-custodial/index.d.ts +0 -11
- package/dist/signers/non-custodial/index.js +0 -28
- package/dist/signers/non-custodial/index.js.map +0 -1
- package/dist/signers/non-custodial/ncs-evm-signer.cjs +0 -14
- package/dist/signers/non-custodial/ncs-evm-signer.cjs.map +0 -1
- package/dist/signers/non-custodial/ncs-evm-signer.d.cts +0 -30
- package/dist/signers/non-custodial/ncs-evm-signer.d.ts +0 -30
- package/dist/signers/non-custodial/ncs-evm-signer.js +0 -14
- package/dist/signers/non-custodial/ncs-evm-signer.js.map +0 -1
- package/dist/signers/non-custodial/ncs-iframe-manager.cjs +0 -8
- package/dist/signers/non-custodial/ncs-iframe-manager.cjs.map +0 -1
- package/dist/signers/non-custodial/ncs-iframe-manager.d.cts +0 -16
- package/dist/signers/non-custodial/ncs-iframe-manager.d.ts +0 -16
- package/dist/signers/non-custodial/ncs-iframe-manager.js +0 -8
- package/dist/signers/non-custodial/ncs-iframe-manager.js.map +0 -1
- package/dist/signers/non-custodial/ncs-signer.cjs +0 -15
- package/dist/signers/non-custodial/ncs-signer.cjs.map +0 -1
- package/dist/signers/non-custodial/ncs-signer.d.cts +0 -50
- package/dist/signers/non-custodial/ncs-signer.d.ts +0 -50
- package/dist/signers/non-custodial/ncs-signer.js +0 -15
- package/dist/signers/non-custodial/ncs-signer.js.map +0 -1
- package/dist/signers/non-custodial/ncs-solana-signer.cjs +0 -14
- package/dist/signers/non-custodial/ncs-solana-signer.cjs.map +0 -1
- package/dist/signers/non-custodial/ncs-solana-signer.d.cts +0 -27
- package/dist/signers/non-custodial/ncs-solana-signer.d.ts +0 -27
- package/dist/signers/non-custodial/ncs-solana-signer.js +0 -14
- package/dist/signers/non-custodial/ncs-solana-signer.js.map +0 -1
- package/dist/signers/non-custodial/ncs-stellar-signer.cjs +0 -14
- package/dist/signers/non-custodial/ncs-stellar-signer.cjs.map +0 -1
- package/dist/signers/non-custodial/ncs-stellar-signer.d.cts +0 -27
- package/dist/signers/non-custodial/ncs-stellar-signer.d.ts +0 -27
- package/dist/signers/non-custodial/ncs-stellar-signer.js +0 -14
- package/dist/signers/non-custodial/ncs-stellar-signer.js.map +0 -1
- package/dist/signers/passkey.cjs +0 -8
- package/dist/signers/passkey.cjs.map +0 -1
- package/dist/signers/passkey.d.cts +0 -19
- package/dist/signers/passkey.d.ts +0 -19
- package/dist/signers/passkey.js +0 -8
- package/dist/signers/passkey.js.map +0 -1
- package/dist/signers/solana-api-key.cjs +0 -8
- package/dist/signers/solana-api-key.cjs.map +0 -1
- package/dist/signers/solana-api-key.d.cts +0 -18
- package/dist/signers/solana-api-key.d.ts +0 -18
- package/dist/signers/solana-api-key.js +0 -8
- package/dist/signers/solana-api-key.js.map +0 -1
- package/dist/signers/solana-external-wallet.cjs +0 -9
- package/dist/signers/solana-external-wallet.cjs.map +0 -1
- package/dist/signers/solana-external-wallet.d.cts +0 -24
- package/dist/signers/solana-external-wallet.d.ts +0 -24
- package/dist/signers/solana-external-wallet.js +0 -9
- package/dist/signers/solana-external-wallet.js.map +0 -1
- package/dist/signers/stellar-external-wallet.cjs +0 -8
- package/dist/signers/stellar-external-wallet.cjs.map +0 -1
- package/dist/signers/stellar-external-wallet.d.cts +0 -23
- package/dist/signers/stellar-external-wallet.d.ts +0 -23
- package/dist/signers/stellar-external-wallet.js +0 -8
- package/dist/signers/stellar-external-wallet.js.map +0 -1
- package/dist/signers/types.cjs +0 -10
- package/dist/signers/types.cjs.map +0 -1
- package/dist/signers/types.d.cts +0 -91
- package/dist/signers/types.d.ts +0 -91
- package/dist/signers/types.js +0 -10
- package/dist/signers/types.js.map +0 -1
- package/dist/utils/constants.cjs +0 -14
- package/dist/utils/constants.cjs.map +0 -1
- package/dist/utils/constants.d.cts +0 -6
- package/dist/utils/constants.d.ts +0 -6
- package/dist/utils/constants.js +0 -14
- package/dist/utils/constants.js.map +0 -1
- package/dist/utils/errors.cjs +0 -56
- package/dist/utils/errors.cjs.map +0 -1
- package/dist/utils/errors.d.cts +0 -80
- package/dist/utils/errors.d.ts +0 -80
- package/dist/utils/errors.js +0 -56
- package/dist/utils/errors.js.map +0 -1
- package/dist/utils/signer-validation.cjs +0 -11
- package/dist/utils/signer-validation.cjs.map +0 -1
- package/dist/utils/signer-validation.d.cts +0 -9
- package/dist/utils/signer-validation.d.ts +0 -9
- package/dist/utils/signer-validation.js +0 -11
- package/dist/utils/signer-validation.js.map +0 -1
- package/dist/wallets/__tests__/setup.cjs +0 -37
- package/dist/wallets/__tests__/setup.cjs.map +0 -1
- package/dist/wallets/__tests__/setup.d.cts +0 -2
- package/dist/wallets/__tests__/setup.d.ts +0 -2
- package/dist/wallets/__tests__/setup.js +0 -37
- package/dist/wallets/__tests__/setup.js.map +0 -1
- package/dist/wallets/__tests__/test-helpers.cjs +0 -94
- package/dist/wallets/__tests__/test-helpers.cjs.map +0 -1
- package/dist/wallets/__tests__/test-helpers.d.cts +0 -36
- package/dist/wallets/__tests__/test-helpers.d.ts +0 -36
- package/dist/wallets/__tests__/test-helpers.js +0 -94
- package/dist/wallets/__tests__/test-helpers.js.map +0 -1
- package/dist/wallets/evm.cjs +0 -26
- package/dist/wallets/evm.cjs.map +0 -1
- package/dist/wallets/evm.d.cts +0 -155
- package/dist/wallets/evm.d.ts +0 -155
- package/dist/wallets/evm.js +0 -26
- package/dist/wallets/evm.js.map +0 -1
- package/dist/wallets/solana.cjs +0 -27
- package/dist/wallets/solana.cjs.map +0 -1
- package/dist/wallets/solana.d.cts +0 -28
- package/dist/wallets/solana.d.ts +0 -28
- package/dist/wallets/solana.js +0 -27
- package/dist/wallets/solana.js.map +0 -1
- package/dist/wallets/stellar.cjs +0 -26
- package/dist/wallets/stellar.cjs.map +0 -1
- package/dist/wallets/stellar.d.cts +0 -30
- package/dist/wallets/stellar.d.ts +0 -30
- package/dist/wallets/stellar.js +0 -26
- package/dist/wallets/stellar.js.map +0 -1
- package/dist/wallets/types.cjs +0 -1
- package/dist/wallets/types.cjs.map +0 -1
- package/dist/wallets/types.d.cts +0 -170
- package/dist/wallets/types.d.ts +0 -170
- package/dist/wallets/types.js +0 -1
- package/dist/wallets/types.js.map +0 -1
- package/dist/wallets/wallet-factory.cjs +0 -34
- package/dist/wallets/wallet-factory.cjs.map +0 -1
- package/dist/wallets/wallet-factory.d.cts +0 -33
- package/dist/wallets/wallet-factory.d.ts +0 -33
- package/dist/wallets/wallet-factory.js +0 -34
- package/dist/wallets/wallet-factory.js.map +0 -1
- package/dist/wallets/wallet.cjs +0 -25
- package/dist/wallets/wallet.cjs.map +0 -1
- package/dist/wallets/wallet.d.cts +0 -168
- package/dist/wallets/wallet.d.ts +0 -168
- package/dist/wallets/wallet.js +0 -25
- package/dist/wallets/wallet.js.map +0 -1
|
@@ -1,373 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
var _chunkQFE6TYBNcjs = require('../../chunk-QFE6TYBN.cjs');
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
var _chunkXWXIO5PHcjs = require('../../chunk-XWXIO5PH.cjs');
|
|
13
|
-
require('../../chunk-4GADBBZN.cjs');
|
|
14
|
-
require('../../chunk-BBUEX3DG.cjs');
|
|
15
|
-
require('../../chunk-NQR4AQOW.cjs');
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
var _chunkW4VYO3P6cjs = require('../../chunk-W4VYO3P6.cjs');
|
|
21
|
-
|
|
22
|
-
// src/api/__tests__/test-utils.ts
|
|
23
|
-
var _vitest = require('vitest');
|
|
24
|
-
var createMockResponse = ({
|
|
25
|
-
data,
|
|
26
|
-
status = 200,
|
|
27
|
-
ok = true,
|
|
28
|
-
statusText = "OK"
|
|
29
|
-
}) => {
|
|
30
|
-
return {
|
|
31
|
-
json: _vitest.vi.fn().mockResolvedValue(data),
|
|
32
|
-
ok,
|
|
33
|
-
status,
|
|
34
|
-
statusText
|
|
35
|
-
};
|
|
36
|
-
};
|
|
37
|
-
var createMockSuccessResponse = (data) => createMockResponse({ data });
|
|
38
|
-
var createMockErrorResponse = (data, status = 400, statusText = "Bad Request") => createMockResponse({ data, status, ok: false, statusText });
|
|
39
|
-
var createMockCrossmint = (overrides = {}) => {
|
|
40
|
-
const base = _chunkW4VYO3P6cjs.__spreadValues.call(void 0, {
|
|
41
|
-
apiKey: _chunkQFE6TYBNcjs.MOCK_API_KEY
|
|
42
|
-
}, overrides);
|
|
43
|
-
return _chunkW4VYO3P6cjs.__spreadProps.call(void 0, _chunkW4VYO3P6cjs.__spreadValues.call(void 0, {}, base), {
|
|
44
|
-
setJwt: _vitest.vi.fn().mockReturnThis(),
|
|
45
|
-
experimental_setCustomAuth: _vitest.vi.fn().mockReturnThis()
|
|
46
|
-
});
|
|
47
|
-
};
|
|
48
|
-
var createTestApiClient = (crossmint) => {
|
|
49
|
-
return new (0, _chunkXWXIO5PHcjs.ApiClient)(crossmint || createMockCrossmint());
|
|
50
|
-
};
|
|
51
|
-
var createServerSideApiClient = () => {
|
|
52
|
-
const apiClient = createTestApiClient();
|
|
53
|
-
Object.defineProperty(apiClient, "isServerSide", {
|
|
54
|
-
get: () => true,
|
|
55
|
-
configurable: true
|
|
56
|
-
});
|
|
57
|
-
return apiClient;
|
|
58
|
-
};
|
|
59
|
-
var extractFetchCall = (mockFn) => {
|
|
60
|
-
const calls = mockFn.mock.calls;
|
|
61
|
-
if (calls.length === 0) {
|
|
62
|
-
return void 0;
|
|
63
|
-
}
|
|
64
|
-
const lastCall = calls[calls.length - 1];
|
|
65
|
-
return {
|
|
66
|
-
path: lastCall[0],
|
|
67
|
-
options: lastCall[1]
|
|
68
|
-
};
|
|
69
|
-
};
|
|
70
|
-
var expectRequestPath = (call, expectedPath) => {
|
|
71
|
-
_vitest.expect.call(void 0, call == null ? void 0 : call.path).toBe(expectedPath);
|
|
72
|
-
};
|
|
73
|
-
var expectCommonHeaders = (headers) => {
|
|
74
|
-
const headerObj = headers;
|
|
75
|
-
_vitest.expect.call(void 0, headerObj["Content-Type"]).toBe("application/json");
|
|
76
|
-
};
|
|
77
|
-
var expectRequestBody = (options, expectedBody) => {
|
|
78
|
-
_vitest.expect.call(void 0, options.body).toBe(JSON.stringify(expectedBody));
|
|
79
|
-
};
|
|
80
|
-
var validateRequest = (call, expectedPath, expectedBody) => {
|
|
81
|
-
_vitest.expect.call(void 0, call).toBeDefined();
|
|
82
|
-
if (!call) {
|
|
83
|
-
return;
|
|
84
|
-
}
|
|
85
|
-
expectRequestPath(call, expectedPath);
|
|
86
|
-
if (call.options.headers) {
|
|
87
|
-
expectCommonHeaders(call.options.headers);
|
|
88
|
-
}
|
|
89
|
-
if (expectedBody !== void 0 && call.options) {
|
|
90
|
-
expectRequestBody(call.options, expectedBody);
|
|
91
|
-
}
|
|
92
|
-
};
|
|
93
|
-
var testHttpErrorResponse = (apiCall, mockFn, errorData, statusCode) => _chunkW4VYO3P6cjs.__async.call(void 0, void 0, null, function* () {
|
|
94
|
-
mockFn.mockResolvedValue(createMockErrorResponse(errorData, statusCode));
|
|
95
|
-
const result = yield apiCall();
|
|
96
|
-
_vitest.expect.call(void 0, isErrorResponse(result)).toBe(true);
|
|
97
|
-
if (isErrorResponse(result)) {
|
|
98
|
-
_vitest.expect.call(void 0, result.error).toBe(true);
|
|
99
|
-
if (errorData.message) {
|
|
100
|
-
_vitest.expect.call(void 0, result.message).toBe(errorData.message);
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
});
|
|
104
|
-
var testCommonHttpErrors = (_0, _1, ..._2) => _chunkW4VYO3P6cjs.__async.call(void 0, void 0, [_0, _1, ..._2], function* (apiCall, mockFn, skipStatuses = []) {
|
|
105
|
-
for (const { status, message } of _chunkQFE6TYBNcjs.HTTP_ERROR_STATUSES) {
|
|
106
|
-
if (skipStatuses.includes(status)) {
|
|
107
|
-
continue;
|
|
108
|
-
}
|
|
109
|
-
const errorResponse = { error: true, message };
|
|
110
|
-
mockFn.mockResolvedValueOnce(createMockErrorResponse(errorResponse, status));
|
|
111
|
-
const result = yield apiCall();
|
|
112
|
-
_vitest.expect.call(void 0, isErrorResponse(result)).toBe(true);
|
|
113
|
-
}
|
|
114
|
-
});
|
|
115
|
-
var testNetworkError = (apiCall, mockFn) => _chunkW4VYO3P6cjs.__async.call(void 0, void 0, null, function* () {
|
|
116
|
-
mockFn.mockRejectedValue(new Error("Network error"));
|
|
117
|
-
yield _vitest.expect.call(void 0, apiCall()).rejects.toThrow("Network error");
|
|
118
|
-
});
|
|
119
|
-
var testInvalidJsonResponse = (apiCall, mockFn) => _chunkW4VYO3P6cjs.__async.call(void 0, void 0, null, function* () {
|
|
120
|
-
const mockResponse = {
|
|
121
|
-
json: _vitest.vi.fn().mockRejectedValue(new Error("Invalid JSON")),
|
|
122
|
-
ok: true,
|
|
123
|
-
status: 200
|
|
124
|
-
};
|
|
125
|
-
mockFn.mockResolvedValue(mockResponse);
|
|
126
|
-
yield _vitest.expect.call(void 0, apiCall()).rejects.toThrow();
|
|
127
|
-
});
|
|
128
|
-
var testTimeoutError = (apiCall, mockFn) => _chunkW4VYO3P6cjs.__async.call(void 0, void 0, null, function* () {
|
|
129
|
-
mockFn.mockImplementation(
|
|
130
|
-
() => new Promise((_, reject) => setTimeout(() => reject(new Error("Request timeout")), 0))
|
|
131
|
-
);
|
|
132
|
-
yield _vitest.expect.call(void 0, apiCall()).rejects.toThrow("Request timeout");
|
|
133
|
-
});
|
|
134
|
-
var testMalformedResponse = (apiCall, mockFn, malformedData) => _chunkW4VYO3P6cjs.__async.call(void 0, void 0, null, function* () {
|
|
135
|
-
mockFn.mockResolvedValue(createMockSuccessResponse(malformedData));
|
|
136
|
-
const result = yield apiCall();
|
|
137
|
-
_vitest.expect.call(void 0, result).toEqual(malformedData);
|
|
138
|
-
});
|
|
139
|
-
var createMockWalletResponse = (overrides = {}) => _chunkW4VYO3P6cjs.__spreadValues.call(void 0, {
|
|
140
|
-
address: _chunkQFE6TYBNcjs.WALLET_LOCATORS.evmAddress,
|
|
141
|
-
chainType: "evm",
|
|
142
|
-
type: "smart",
|
|
143
|
-
config: {
|
|
144
|
-
adminSigner: {
|
|
145
|
-
type: "external-wallet",
|
|
146
|
-
address: _chunkQFE6TYBNcjs.TEST_ADDRESSES.EVM_TEST
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
}, overrides);
|
|
150
|
-
var createMockSendResponse = (overrides = {}) => _chunkW4VYO3P6cjs.__spreadValues.call(void 0, {
|
|
151
|
-
id: "txn-123",
|
|
152
|
-
status: "pending",
|
|
153
|
-
chainType: "evm",
|
|
154
|
-
walletType: "evm-smart-wallet",
|
|
155
|
-
params: {
|
|
156
|
-
transaction: "0x1234567890abcdef",
|
|
157
|
-
signer: "api-key:test"
|
|
158
|
-
},
|
|
159
|
-
onChain: {
|
|
160
|
-
txId: "0xabcdef1234567890abcdef1234567890abcdef12",
|
|
161
|
-
explorerLink: "https://explorer.example.com/tx/0xabcdef1234567890abcdef1234567890abcdef12"
|
|
162
|
-
},
|
|
163
|
-
createdAt: Date.now()
|
|
164
|
-
}, overrides);
|
|
165
|
-
function isErrorResponse(response) {
|
|
166
|
-
return typeof response === "object" && response !== null && "error" in response && response.error === true;
|
|
167
|
-
}
|
|
168
|
-
function isSuccessWalletResponse(response) {
|
|
169
|
-
return typeof response === "object" && response !== null && "address" in response && "chainType" in response && "type" in response;
|
|
170
|
-
}
|
|
171
|
-
function isSuccessTransactionResponse(response) {
|
|
172
|
-
return typeof response === "object" && response !== null && "id" in response && "status" in response && "chainType" in response;
|
|
173
|
-
}
|
|
174
|
-
var delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
175
|
-
var isValidEthereumAddress = (address) => {
|
|
176
|
-
return /^0x[a-fA-F0-9]{40}$/.test(address);
|
|
177
|
-
};
|
|
178
|
-
var isValidSolanaAddress = (address) => {
|
|
179
|
-
return /^[1-9A-HJ-NP-Za-km-z]{32,44}$/.test(address);
|
|
180
|
-
};
|
|
181
|
-
var createIntegrationApiClient = (apiKey, baseUrl, overrides = {}) => {
|
|
182
|
-
const base = _chunkW4VYO3P6cjs.__spreadValues.call(void 0, _chunkW4VYO3P6cjs.__spreadValues.call(void 0, {
|
|
183
|
-
apiKey
|
|
184
|
-
}, baseUrl && { overrideBaseUrl: baseUrl }), overrides);
|
|
185
|
-
const crossmint = _chunkW4VYO3P6cjs.__spreadProps.call(void 0, _chunkW4VYO3P6cjs.__spreadValues.call(void 0, {}, base), {
|
|
186
|
-
setJwt: () => crossmint,
|
|
187
|
-
experimental_setCustomAuth: () => crossmint
|
|
188
|
-
});
|
|
189
|
-
return new (0, _chunkXWXIO5PHcjs.ApiClient)(crossmint);
|
|
190
|
-
};
|
|
191
|
-
var TestDataFactory = class {
|
|
192
|
-
constructor() {
|
|
193
|
-
this.wallets = [];
|
|
194
|
-
this.transactions = [];
|
|
195
|
-
}
|
|
196
|
-
addWallet(address) {
|
|
197
|
-
if (address && !this.wallets.includes(address)) {
|
|
198
|
-
this.wallets.push(address);
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
addTransaction(id) {
|
|
202
|
-
if (id && !this.transactions.includes(id)) {
|
|
203
|
-
this.transactions.push(id);
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
getWallet(index = 0) {
|
|
207
|
-
return this.wallets[index];
|
|
208
|
-
}
|
|
209
|
-
getTransaction(index = 0) {
|
|
210
|
-
return this.transactions[index];
|
|
211
|
-
}
|
|
212
|
-
hasWallets() {
|
|
213
|
-
return this.wallets.length > 0;
|
|
214
|
-
}
|
|
215
|
-
clear() {
|
|
216
|
-
this.wallets = [];
|
|
217
|
-
this.transactions = [];
|
|
218
|
-
}
|
|
219
|
-
};
|
|
220
|
-
function ensureWalletExists(_0, _1) {
|
|
221
|
-
return _chunkW4VYO3P6cjs.__async.call(void 0, this, arguments, function* (apiClient, testData, options = {}) {
|
|
222
|
-
if (testData.hasWallets()) {
|
|
223
|
-
return testData.getWallet();
|
|
224
|
-
}
|
|
225
|
-
const { chainType = "evm", type = "mpc", owner, testName = "default" } = options;
|
|
226
|
-
const ownerId = owner || `userId:integration-${testName}-${Date.now()}`;
|
|
227
|
-
const createResult = yield apiClient.createWallet(_chunkW4VYO3P6cjs.__spreadValues.call(void 0, {
|
|
228
|
-
chainType,
|
|
229
|
-
type
|
|
230
|
-
}, owner && { owner: ownerId }));
|
|
231
|
-
if (isSuccessWalletResponse(createResult)) {
|
|
232
|
-
testData.addWallet(createResult.address);
|
|
233
|
-
return createResult.address;
|
|
234
|
-
}
|
|
235
|
-
return void 0;
|
|
236
|
-
});
|
|
237
|
-
}
|
|
238
|
-
function createTestWallet(apiClient, testData, params) {
|
|
239
|
-
return _chunkW4VYO3P6cjs.__async.call(void 0, this, null, function* () {
|
|
240
|
-
const result = yield apiClient.createWallet(params);
|
|
241
|
-
if (isSuccessWalletResponse(result)) {
|
|
242
|
-
testData.addWallet(result.address);
|
|
243
|
-
}
|
|
244
|
-
return result;
|
|
245
|
-
});
|
|
246
|
-
}
|
|
247
|
-
function expectErrorResponse(response, message) {
|
|
248
|
-
_vitest.expect.call(void 0, isErrorResponse(response)).toBe(true);
|
|
249
|
-
if (message) {
|
|
250
|
-
_vitest.expect.call(void 0, response.message).toBeDefined();
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
function expectSuccessWalletResponse(response) {
|
|
254
|
-
_vitest.expect.call(void 0, isSuccessWalletResponse(response)).toBe(true);
|
|
255
|
-
}
|
|
256
|
-
function expectSuccessTransactionResponse(response) {
|
|
257
|
-
_vitest.expect.call(void 0, isSuccessTransactionResponse(response)).toBe(true);
|
|
258
|
-
}
|
|
259
|
-
var fundWallet = (apiClient, walletLocator, amount, token = "usdxm", chain = "base-sepolia") => _chunkW4VYO3P6cjs.__async.call(void 0, void 0, null, function* () {
|
|
260
|
-
const params = {
|
|
261
|
-
amount,
|
|
262
|
-
token,
|
|
263
|
-
chain
|
|
264
|
-
};
|
|
265
|
-
const result = yield apiClient.fundWallet(walletLocator, params);
|
|
266
|
-
if (isErrorResponse(result)) {
|
|
267
|
-
throw new Error(`Failed to fund wallet: ${result.message || "Unknown error"}`);
|
|
268
|
-
}
|
|
269
|
-
yield delay(_chunkQFE6TYBNcjs.DELAY_LONG);
|
|
270
|
-
return result;
|
|
271
|
-
});
|
|
272
|
-
var approveTransaction = (_0, _1, _2, ..._3) => _chunkW4VYO3P6cjs.__async.call(void 0, void 0, [_0, _1, _2, ..._3], function* (apiClient, walletLocator, transactionId, maxRetries = _chunkQFE6TYBNcjs.TEST_VALUES.APPROVE_TRANSACTION_MAX_RETRIES) {
|
|
273
|
-
var _a;
|
|
274
|
-
for (let i = 0; i < maxRetries; i++) {
|
|
275
|
-
const transaction = yield apiClient.getTransaction(walletLocator, transactionId);
|
|
276
|
-
if (isErrorResponse(transaction)) {
|
|
277
|
-
throw new Error(`Transaction not found: ${transaction.message || "Unknown error"}`);
|
|
278
|
-
}
|
|
279
|
-
if ("status" in transaction && (transaction.status === "success" || transaction.status === "failed")) {
|
|
280
|
-
return transaction;
|
|
281
|
-
}
|
|
282
|
-
const pendingApprovals = "approvals" in transaction ? (_a = transaction.approvals) == null ? void 0 : _a.pending : void 0;
|
|
283
|
-
if (pendingApprovals && pendingApprovals.length > 0) {
|
|
284
|
-
const approvals = {
|
|
285
|
-
approvals: pendingApprovals.map((approval) => ({
|
|
286
|
-
signer: approval.signer.locator,
|
|
287
|
-
signature: ""
|
|
288
|
-
}))
|
|
289
|
-
};
|
|
290
|
-
const approvedTransaction = yield apiClient.approveTransaction(walletLocator, transactionId, approvals);
|
|
291
|
-
if (isErrorResponse(approvedTransaction)) {
|
|
292
|
-
throw new Error(`Failed to approve transaction: ${approvedTransaction.message || "Unknown error"}`);
|
|
293
|
-
}
|
|
294
|
-
yield delay(_chunkQFE6TYBNcjs.DELAY_RATE_LIMIT_WINDOW);
|
|
295
|
-
continue;
|
|
296
|
-
}
|
|
297
|
-
yield delay(_chunkQFE6TYBNcjs.DELAY_LONG);
|
|
298
|
-
}
|
|
299
|
-
const finalTransaction = yield apiClient.getTransaction(walletLocator, transactionId);
|
|
300
|
-
if (isErrorResponse(finalTransaction)) {
|
|
301
|
-
throw new Error(`Transaction not found after retries: ${finalTransaction.message || "Unknown error"}`);
|
|
302
|
-
}
|
|
303
|
-
if (!("status" in finalTransaction)) {
|
|
304
|
-
throw new Error("Transaction response missing status property");
|
|
305
|
-
}
|
|
306
|
-
return finalTransaction;
|
|
307
|
-
});
|
|
308
|
-
var fundWalletAndWait = (apiClient, walletLocator, amount = 1, token = "usdxm", chain = "base-sepolia") => _chunkW4VYO3P6cjs.__async.call(void 0, void 0, null, function* () {
|
|
309
|
-
return fundWallet(apiClient, walletLocator, amount, token, chain);
|
|
310
|
-
});
|
|
311
|
-
var sendTokenAndApprove = (apiClient, walletLocator, tokenLocator, recipient, amount) => _chunkW4VYO3P6cjs.__async.call(void 0, void 0, null, function* () {
|
|
312
|
-
const sendResult = yield apiClient.send(walletLocator, tokenLocator, {
|
|
313
|
-
recipient,
|
|
314
|
-
amount
|
|
315
|
-
});
|
|
316
|
-
if (isErrorResponse(sendResult)) {
|
|
317
|
-
throw new Error(`Failed to send token: ${sendResult.message || "Unknown error"}`);
|
|
318
|
-
}
|
|
319
|
-
if (typeof sendResult === "object" && sendResult !== null && "id" in sendResult && typeof sendResult.id === "string") {
|
|
320
|
-
return approveTransaction(apiClient, walletLocator, sendResult.id);
|
|
321
|
-
}
|
|
322
|
-
throw new Error("Transaction ID not found in send response");
|
|
323
|
-
});
|
|
324
|
-
var ensureWalletFunded = (apiClient, walletLocator, amount = 1, token = "usdxm", chain = "base-sepolia") => _chunkW4VYO3P6cjs.__async.call(void 0, void 0, null, function* () {
|
|
325
|
-
try {
|
|
326
|
-
yield fundWallet(apiClient, walletLocator, amount, token, chain);
|
|
327
|
-
} catch (error) {
|
|
328
|
-
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
329
|
-
if (!errorMessage.includes("already funded") && !errorMessage.includes("insufficient")) {
|
|
330
|
-
throw error;
|
|
331
|
-
}
|
|
332
|
-
}
|
|
333
|
-
});
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
exports.TestDataFactory = TestDataFactory; exports.approveTransaction = approveTransaction; exports.createIntegrationApiClient = createIntegrationApiClient; exports.createMockCrossmint = createMockCrossmint; exports.createMockErrorResponse = createMockErrorResponse; exports.createMockResponse = createMockResponse; exports.createMockSendResponse = createMockSendResponse; exports.createMockSuccessResponse = createMockSuccessResponse; exports.createMockWalletResponse = createMockWalletResponse; exports.createServerSideApiClient = createServerSideApiClient; exports.createTestApiClient = createTestApiClient; exports.createTestWallet = createTestWallet; exports.delay = delay; exports.ensureWalletExists = ensureWalletExists; exports.ensureWalletFunded = ensureWalletFunded; exports.expectCommonHeaders = expectCommonHeaders; exports.expectErrorResponse = expectErrorResponse; exports.expectRequestBody = expectRequestBody; exports.expectRequestPath = expectRequestPath; exports.expectSuccessTransactionResponse = expectSuccessTransactionResponse; exports.expectSuccessWalletResponse = expectSuccessWalletResponse; exports.extractFetchCall = extractFetchCall; exports.fundWallet = fundWallet; exports.fundWalletAndWait = fundWalletAndWait; exports.isErrorResponse = isErrorResponse; exports.isSuccessTransactionResponse = isSuccessTransactionResponse; exports.isSuccessWalletResponse = isSuccessWalletResponse; exports.isValidEthereumAddress = isValidEthereumAddress; exports.isValidSolanaAddress = isValidSolanaAddress; exports.sendTokenAndApprove = sendTokenAndApprove; exports.testCommonHttpErrors = testCommonHttpErrors; exports.testHttpErrorResponse = testHttpErrorResponse; exports.testInvalidJsonResponse = testInvalidJsonResponse; exports.testMalformedResponse = testMalformedResponse; exports.testNetworkError = testNetworkError; exports.testTimeoutError = testTimeoutError; exports.validateRequest = validateRequest;
|
|
373
|
-
//# sourceMappingURL=test-utils.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/api/__tests__/test-utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { expect, vi, type MockedFunction } from \"vitest\";\nimport type { Crossmint } from \"@crossmint/common-sdk-base\";\nimport { ApiClient } from \"../client\";\nimport type {\n CreateWalletResponse,\n CreateWalletParams,\n SendResponse,\n FundWalletParams,\n FundWalletResponse,\n GetTransactionResponse,\n ApproveTransactionParams,\n WalletLocator,\n} from \"../types\";\nimport {\n HTTP_ERROR_STATUSES,\n DELAY_LONG,\n DELAY_RATE_LIMIT_WINDOW,\n MOCK_API_KEY,\n TEST_VALUES,\n WALLET_LOCATORS,\n TEST_ADDRESSES,\n} from \"./constants\";\n\nexport type MockResponseOptions<T> = {\n data: T;\n status?: number;\n ok?: boolean;\n statusText?: string;\n};\n\nexport type FetchCallInfo = { path: string; options: RequestInit };\n\nexport const createMockResponse = <T>({\n data,\n status = 200,\n ok = true,\n statusText = \"OK\",\n}: MockResponseOptions<T>): Response => {\n return {\n json: vi.fn().mockResolvedValue(data),\n ok,\n status,\n statusText,\n } as unknown as Response;\n};\n\nexport const createMockSuccessResponse = <T>(data: T): Response => createMockResponse({ data });\n\nexport const createMockErrorResponse = <T>(data: T, status = 400, statusText = \"Bad Request\"): Response =>\n createMockResponse({ data, status, ok: false, statusText });\n\nexport const createMockCrossmint = (overrides: Partial<Crossmint> = {}): Crossmint => {\n const base = {\n apiKey: MOCK_API_KEY,\n ...overrides,\n };\n return {\n ...base,\n setJwt: vi.fn().mockReturnThis(),\n experimental_setCustomAuth: vi.fn().mockReturnThis(),\n } as Crossmint;\n};\n\nexport const createTestApiClient = (crossmint?: Crossmint): ApiClient => {\n return new ApiClient(crossmint || createMockCrossmint());\n};\n\nexport const createServerSideApiClient = (): ApiClient => {\n const apiClient = createTestApiClient();\n Object.defineProperty(apiClient, \"isServerSide\", {\n get: () => true,\n configurable: true,\n });\n return apiClient;\n};\n\nexport const extractFetchCall = (\n mockFn: MockedFunction<any> | MockedFunction<ApiClient[\"post\"]> | MockedFunction<ApiClient[\"get\"]>\n): FetchCallInfo | undefined => {\n const calls = (mockFn as MockedFunction<any>).mock.calls;\n if (calls.length === 0) {\n return undefined;\n }\n const lastCall = calls[calls.length - 1];\n return {\n path: lastCall[0] as string,\n options: lastCall[1] as RequestInit,\n };\n};\n\nexport const expectRequestPath = (call: FetchCallInfo | undefined, expectedPath: string) => {\n expect(call?.path).toBe(expectedPath);\n};\n\nexport const expectCommonHeaders = (headers: HeadersInit) => {\n const headerObj = headers as Record<string, string>;\n expect(headerObj[\"Content-Type\"]).toBe(\"application/json\");\n};\n\nexport const expectRequestBody = (options: RequestInit, expectedBody: unknown) => {\n expect(options.body).toBe(JSON.stringify(expectedBody));\n};\n\nexport const validateRequest = (call: FetchCallInfo | undefined, expectedPath: string, expectedBody?: unknown) => {\n expect(call).toBeDefined();\n if (!call) {\n return;\n }\n expectRequestPath(call, expectedPath);\n if (call.options.headers) {\n expectCommonHeaders(call.options.headers);\n }\n if (expectedBody !== undefined && call.options) {\n expectRequestBody(call.options, expectedBody);\n }\n};\n\nexport const testHttpErrorResponse = async <T>(\n apiCall: () => Promise<T>,\n mockFn: MockedFunction<any> | MockedFunction<ApiClient[\"post\"]> | MockedFunction<ApiClient[\"get\"]>,\n errorData: { error: boolean; message?: string },\n statusCode: number\n) => {\n (mockFn as MockedFunction<any>).mockResolvedValue(createMockErrorResponse(errorData, statusCode));\n const result = await apiCall();\n expect(isErrorResponse(result)).toBe(true);\n if (isErrorResponse(result)) {\n expect(result.error).toBe(true);\n if (errorData.message) {\n expect(result.message).toBe(errorData.message);\n }\n }\n};\n\nexport const testCommonHttpErrors = async <T>(\n apiCall: () => Promise<T>,\n mockFn: MockedFunction<any> | MockedFunction<ApiClient[\"post\"]> | MockedFunction<ApiClient[\"get\"]>,\n skipStatuses: number[] = []\n) => {\n for (const { status, message } of HTTP_ERROR_STATUSES) {\n if (skipStatuses.includes(status)) {\n continue;\n }\n const errorResponse = { error: true, message };\n (mockFn as MockedFunction<any>).mockResolvedValueOnce(createMockErrorResponse(errorResponse, status));\n const result = await apiCall();\n expect(isErrorResponse(result)).toBe(true);\n }\n};\n\nexport const testNetworkError = async <T>(\n apiCall: () => Promise<T>,\n mockFn: MockedFunction<any> | MockedFunction<ApiClient[\"post\"]> | MockedFunction<ApiClient[\"get\"]>\n) => {\n (mockFn as MockedFunction<any>).mockRejectedValue(new Error(\"Network error\"));\n await expect(apiCall()).rejects.toThrow(\"Network error\");\n};\n\nexport const testInvalidJsonResponse = async <T>(\n apiCall: () => Promise<T>,\n mockFn: MockedFunction<any> | MockedFunction<ApiClient[\"post\"]> | MockedFunction<ApiClient[\"get\"]>\n) => {\n const mockResponse = {\n json: vi.fn().mockRejectedValue(new Error(\"Invalid JSON\")),\n ok: true,\n status: 200,\n } as unknown as Response;\n (mockFn as MockedFunction<any>).mockResolvedValue(mockResponse);\n await expect(apiCall()).rejects.toThrow();\n};\n\nexport const testTimeoutError = async <T>(\n apiCall: () => Promise<T>,\n mockFn: MockedFunction<any> | MockedFunction<ApiClient[\"post\"]> | MockedFunction<ApiClient[\"get\"]>\n) => {\n (mockFn as MockedFunction<any>).mockImplementation(\n () => new Promise((_, reject) => setTimeout(() => reject(new Error(\"Request timeout\")), 0))\n );\n await expect(apiCall()).rejects.toThrow(\"Request timeout\");\n};\n\nexport const testMalformedResponse = async <T>(\n apiCall: () => Promise<T>,\n mockFn: MockedFunction<any> | MockedFunction<ApiClient[\"post\"]> | MockedFunction<ApiClient[\"get\"]>,\n malformedData: unknown\n) => {\n (mockFn as MockedFunction<any>).mockResolvedValue(createMockSuccessResponse(malformedData));\n const result = await apiCall();\n expect(result).toEqual(malformedData);\n};\n\nexport const createMockWalletResponse = (overrides: Partial<CreateWalletResponse> = {}): CreateWalletResponse =>\n ({\n address: WALLET_LOCATORS.evmAddress,\n chainType: \"evm\",\n type: \"smart\",\n config: {\n adminSigner: {\n type: \"external-wallet\",\n address: TEST_ADDRESSES.EVM_TEST,\n },\n },\n ...overrides,\n }) as CreateWalletResponse;\n\nexport const createMockSendResponse = (overrides: Partial<SendResponse> = {}): SendResponse =>\n ({\n id: \"txn-123\",\n status: \"pending\",\n chainType: \"evm\",\n walletType: \"evm-smart-wallet\",\n params: {\n transaction: \"0x1234567890abcdef\",\n signer: \"api-key:test\",\n },\n onChain: {\n txId: \"0xabcdef1234567890abcdef1234567890abcdef12\",\n explorerLink: \"https://explorer.example.com/tx/0xabcdef1234567890abcdef1234567890abcdef12\",\n },\n createdAt: Date.now(),\n ...overrides,\n }) as unknown as SendResponse;\n\nexport interface ErrorResponse {\n error: true;\n message?: string;\n details?: unknown;\n}\n\nexport interface SuccessWalletResponse {\n address: string;\n chainType: string;\n type: string;\n config?: {\n adminSigner?: {\n type: string;\n address: string;\n };\n };\n}\n\nexport interface SuccessTransactionResponse {\n id: string;\n status: string;\n chainType: string;\n}\n\nexport function isErrorResponse(response: unknown): response is ErrorResponse {\n return (\n typeof response === \"object\" &&\n response !== null &&\n \"error\" in response &&\n (response as ErrorResponse).error === true\n );\n}\n\nexport function isSuccessWalletResponse(response: unknown): response is SuccessWalletResponse {\n return (\n typeof response === \"object\" &&\n response !== null &&\n \"address\" in response &&\n \"chainType\" in response &&\n \"type\" in response\n );\n}\n\nexport function isSuccessTransactionResponse(response: unknown): response is SuccessTransactionResponse {\n return (\n typeof response === \"object\" &&\n response !== null &&\n \"id\" in response &&\n \"status\" in response &&\n \"chainType\" in response\n );\n}\n\nexport const delay = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms));\n\nexport const isValidEthereumAddress = (address: string): boolean => {\n return /^0x[a-fA-F0-9]{40}$/.test(address);\n};\n\nexport const isValidSolanaAddress = (address: string): boolean => {\n return /^[1-9A-HJ-NP-Za-km-z]{32,44}$/.test(address);\n};\n\n/**\n * Creates an API client for integration tests using environment variables.\n * This is different from createTestApiClient which uses mocked data.\n */\nexport const createIntegrationApiClient = (\n apiKey: string,\n baseUrl?: string,\n overrides: Partial<Crossmint> = {}\n): ApiClient => {\n const base = {\n apiKey,\n ...(baseUrl && { overrideBaseUrl: baseUrl }),\n ...overrides,\n };\n const crossmint = {\n ...base,\n setJwt: () => crossmint as Crossmint,\n experimental_setCustomAuth: () => crossmint as Crossmint,\n } as Crossmint;\n return new ApiClient(crossmint);\n};\n\nexport class TestDataFactory {\n private wallets: string[] = [];\n private transactions: string[] = [];\n\n addWallet(address: string): void {\n if (address && !this.wallets.includes(address)) {\n this.wallets.push(address);\n }\n }\n\n addTransaction(id: string): void {\n if (id && !this.transactions.includes(id)) {\n this.transactions.push(id);\n }\n }\n\n getWallet(index = 0): string | undefined {\n return this.wallets[index];\n }\n\n getTransaction(index = 0): string | undefined {\n return this.transactions[index];\n }\n\n hasWallets(): boolean {\n return this.wallets.length > 0;\n }\n\n clear(): void {\n this.wallets = [];\n this.transactions = [];\n }\n}\n\nexport async function ensureWalletExists(\n apiClient: ApiClient,\n testData: TestDataFactory,\n options: {\n chainType?: \"evm\" | \"solana\";\n type?: \"mpc\" | \"smart\";\n owner?: string;\n testName?: string;\n } = {}\n): Promise<string | undefined> {\n if (testData.hasWallets()) {\n return testData.getWallet();\n }\n\n const { chainType = \"evm\", type = \"mpc\", owner, testName = \"default\" } = options;\n const ownerId = owner || `userId:integration-${testName}-${Date.now()}`;\n\n const createResult = await apiClient.createWallet({\n chainType,\n type,\n ...(owner && { owner: ownerId }),\n });\n\n if (isSuccessWalletResponse(createResult)) {\n testData.addWallet(createResult.address);\n return createResult.address;\n }\n\n return undefined;\n}\n\nexport async function createTestWallet(\n apiClient: ApiClient,\n testData: TestDataFactory,\n params: CreateWalletParams\n): Promise<CreateWalletResponse> {\n const result = await apiClient.createWallet(params);\n if (isSuccessWalletResponse(result)) {\n testData.addWallet(result.address);\n }\n return result;\n}\n\nexport function expectErrorResponse(response: unknown, message?: string): asserts response is ErrorResponse {\n expect(isErrorResponse(response)).toBe(true);\n if (message) {\n expect((response as ErrorResponse).message).toBeDefined();\n }\n}\n\nexport function expectSuccessWalletResponse(response: unknown): asserts response is SuccessWalletResponse {\n expect(isSuccessWalletResponse(response)).toBe(true);\n}\n\nexport function expectSuccessTransactionResponse(response: unknown): asserts response is SuccessTransactionResponse {\n expect(isSuccessTransactionResponse(response)).toBe(true);\n}\n\nexport const fundWallet = async (\n apiClient: ApiClient,\n walletLocator: WalletLocator,\n amount: number,\n token: \"usdc\" | \"usdxm\" = \"usdxm\",\n chain = \"base-sepolia\"\n): Promise<FundWalletResponse> => {\n const params: FundWalletParams = {\n amount,\n token,\n chain: chain as any,\n };\n\n const result = await apiClient.fundWallet(walletLocator, params);\n\n if (isErrorResponse(result)) {\n throw new Error(`Failed to fund wallet: ${result.message || \"Unknown error\"}`);\n }\n\n await delay(DELAY_LONG);\n\n return result;\n};\n\nexport const approveTransaction = async (\n apiClient: ApiClient,\n walletLocator: WalletLocator,\n transactionId: string,\n maxRetries: number = TEST_VALUES.APPROVE_TRANSACTION_MAX_RETRIES\n): Promise<GetTransactionResponse> => {\n for (let i = 0; i < maxRetries; i++) {\n const transaction = await apiClient.getTransaction(walletLocator, transactionId);\n\n if (isErrorResponse(transaction)) {\n throw new Error(`Transaction not found: ${transaction.message || \"Unknown error\"}`);\n }\n\n // Type guard: check if transaction has status property (success response)\n if (\"status\" in transaction && (transaction.status === \"success\" || transaction.status === \"failed\")) {\n return transaction;\n }\n\n const pendingApprovals = \"approvals\" in transaction ? transaction.approvals?.pending : undefined;\n\n if (pendingApprovals && pendingApprovals.length > 0) {\n const approvals: ApproveTransactionParams = {\n approvals: pendingApprovals.map((approval) => ({\n signer: approval.signer.locator,\n signature: \"\",\n })),\n };\n\n const approvedTransaction = await apiClient.approveTransaction(walletLocator, transactionId, approvals);\n\n if (isErrorResponse(approvedTransaction)) {\n throw new Error(`Failed to approve transaction: ${approvedTransaction.message || \"Unknown error\"}`);\n }\n\n await delay(DELAY_RATE_LIMIT_WINDOW);\n continue;\n }\n\n await delay(DELAY_LONG);\n }\n\n const finalTransaction = await apiClient.getTransaction(walletLocator, transactionId);\n if (isErrorResponse(finalTransaction)) {\n throw new Error(`Transaction not found after retries: ${finalTransaction.message || \"Unknown error\"}`);\n }\n\n // Type guard: ensure transaction has status property before returning\n if (!(\"status\" in finalTransaction)) {\n throw new Error(\"Transaction response missing status property\");\n }\n\n return finalTransaction;\n};\n\nexport const fundWalletAndWait = async (\n apiClient: ApiClient,\n walletLocator: WalletLocator,\n amount = 1.0,\n token: \"usdc\" | \"usdxm\" = \"usdxm\",\n chain = \"base-sepolia\"\n): Promise<FundWalletResponse> => {\n return fundWallet(apiClient, walletLocator, amount, token, chain);\n};\n\nexport const sendTokenAndApprove = async (\n apiClient: ApiClient,\n walletLocator: WalletLocator,\n tokenLocator: string,\n recipient: string,\n amount: string\n): Promise<GetTransactionResponse> => {\n const sendResult = await apiClient.send(walletLocator, tokenLocator, {\n recipient,\n amount,\n });\n\n if (isErrorResponse(sendResult)) {\n throw new Error(`Failed to send token: ${sendResult.message || \"Unknown error\"}`);\n }\n\n // SendResponse can have an id field when successful\n if (\n typeof sendResult === \"object\" &&\n sendResult !== null &&\n \"id\" in sendResult &&\n typeof (sendResult as { id: unknown }).id === \"string\"\n ) {\n return approveTransaction(apiClient, walletLocator, (sendResult as { id: string }).id);\n }\n\n throw new Error(\"Transaction ID not found in send response\");\n};\n\nexport const ensureWalletFunded = async (\n apiClient: ApiClient,\n walletLocator: WalletLocator,\n amount = 1.0,\n token: \"usdc\" | \"usdxm\" = \"usdxm\",\n chain = \"base-sepolia\"\n): Promise<void> => {\n try {\n await fundWallet(apiClient, walletLocator, amount, token, chain);\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n if (!errorMessage.includes(\"already funded\") && !errorMessage.includes(\"insufficient\")) {\n throw error;\n }\n }\n};\n"]}
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
import { MockedFunction } from 'vitest';
|
|
2
|
-
import { Crossmint } from '@crossmint/common-sdk-base';
|
|
3
|
-
import { ApiClient } from '../client.cjs';
|
|
4
|
-
import { CreateWalletResponse, SendResponse, CreateWalletParams, WalletLocator, FundWalletResponse, GetTransactionResponse } from '../types.cjs';
|
|
5
|
-
import '../../chains/chains.cjs';
|
|
6
|
-
import 'viem';
|
|
7
|
-
import '../gen/types.gen.cjs';
|
|
8
|
-
|
|
9
|
-
type MockResponseOptions<T> = {
|
|
10
|
-
data: T;
|
|
11
|
-
status?: number;
|
|
12
|
-
ok?: boolean;
|
|
13
|
-
statusText?: string;
|
|
14
|
-
};
|
|
15
|
-
type FetchCallInfo = {
|
|
16
|
-
path: string;
|
|
17
|
-
options: RequestInit;
|
|
18
|
-
};
|
|
19
|
-
declare const createMockResponse: <T>({ data, status, ok, statusText, }: MockResponseOptions<T>) => Response;
|
|
20
|
-
declare const createMockSuccessResponse: <T>(data: T) => Response;
|
|
21
|
-
declare const createMockErrorResponse: <T>(data: T, status?: number, statusText?: string) => Response;
|
|
22
|
-
declare const createMockCrossmint: (overrides?: Partial<Crossmint>) => Crossmint;
|
|
23
|
-
declare const createTestApiClient: (crossmint?: Crossmint) => ApiClient;
|
|
24
|
-
declare const createServerSideApiClient: () => ApiClient;
|
|
25
|
-
declare const extractFetchCall: (mockFn: MockedFunction<any> | MockedFunction<ApiClient["post"]> | MockedFunction<ApiClient["get"]>) => FetchCallInfo | undefined;
|
|
26
|
-
declare const expectRequestPath: (call: FetchCallInfo | undefined, expectedPath: string) => void;
|
|
27
|
-
declare const expectCommonHeaders: (headers: HeadersInit) => void;
|
|
28
|
-
declare const expectRequestBody: (options: RequestInit, expectedBody: unknown) => void;
|
|
29
|
-
declare const validateRequest: (call: FetchCallInfo | undefined, expectedPath: string, expectedBody?: unknown) => void;
|
|
30
|
-
declare const testHttpErrorResponse: <T>(apiCall: () => Promise<T>, mockFn: MockedFunction<any> | MockedFunction<ApiClient["post"]> | MockedFunction<ApiClient["get"]>, errorData: {
|
|
31
|
-
error: boolean;
|
|
32
|
-
message?: string;
|
|
33
|
-
}, statusCode: number) => Promise<void>;
|
|
34
|
-
declare const testCommonHttpErrors: <T>(apiCall: () => Promise<T>, mockFn: MockedFunction<any> | MockedFunction<ApiClient["post"]> | MockedFunction<ApiClient["get"]>, skipStatuses?: number[]) => Promise<void>;
|
|
35
|
-
declare const testNetworkError: <T>(apiCall: () => Promise<T>, mockFn: MockedFunction<any> | MockedFunction<ApiClient["post"]> | MockedFunction<ApiClient["get"]>) => Promise<void>;
|
|
36
|
-
declare const testInvalidJsonResponse: <T>(apiCall: () => Promise<T>, mockFn: MockedFunction<any> | MockedFunction<ApiClient["post"]> | MockedFunction<ApiClient["get"]>) => Promise<void>;
|
|
37
|
-
declare const testTimeoutError: <T>(apiCall: () => Promise<T>, mockFn: MockedFunction<any> | MockedFunction<ApiClient["post"]> | MockedFunction<ApiClient["get"]>) => Promise<void>;
|
|
38
|
-
declare const testMalformedResponse: <T>(apiCall: () => Promise<T>, mockFn: MockedFunction<any> | MockedFunction<ApiClient["post"]> | MockedFunction<ApiClient["get"]>, malformedData: unknown) => Promise<void>;
|
|
39
|
-
declare const createMockWalletResponse: (overrides?: Partial<CreateWalletResponse>) => CreateWalletResponse;
|
|
40
|
-
declare const createMockSendResponse: (overrides?: Partial<SendResponse>) => SendResponse;
|
|
41
|
-
interface ErrorResponse {
|
|
42
|
-
error: true;
|
|
43
|
-
message?: string;
|
|
44
|
-
details?: unknown;
|
|
45
|
-
}
|
|
46
|
-
interface SuccessWalletResponse {
|
|
47
|
-
address: string;
|
|
48
|
-
chainType: string;
|
|
49
|
-
type: string;
|
|
50
|
-
config?: {
|
|
51
|
-
adminSigner?: {
|
|
52
|
-
type: string;
|
|
53
|
-
address: string;
|
|
54
|
-
};
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
interface SuccessTransactionResponse {
|
|
58
|
-
id: string;
|
|
59
|
-
status: string;
|
|
60
|
-
chainType: string;
|
|
61
|
-
}
|
|
62
|
-
declare function isErrorResponse(response: unknown): response is ErrorResponse;
|
|
63
|
-
declare function isSuccessWalletResponse(response: unknown): response is SuccessWalletResponse;
|
|
64
|
-
declare function isSuccessTransactionResponse(response: unknown): response is SuccessTransactionResponse;
|
|
65
|
-
declare const delay: (ms: number) => Promise<unknown>;
|
|
66
|
-
declare const isValidEthereumAddress: (address: string) => boolean;
|
|
67
|
-
declare const isValidSolanaAddress: (address: string) => boolean;
|
|
68
|
-
/**
|
|
69
|
-
* Creates an API client for integration tests using environment variables.
|
|
70
|
-
* This is different from createTestApiClient which uses mocked data.
|
|
71
|
-
*/
|
|
72
|
-
declare const createIntegrationApiClient: (apiKey: string, baseUrl?: string, overrides?: Partial<Crossmint>) => ApiClient;
|
|
73
|
-
declare class TestDataFactory {
|
|
74
|
-
private wallets;
|
|
75
|
-
private transactions;
|
|
76
|
-
addWallet(address: string): void;
|
|
77
|
-
addTransaction(id: string): void;
|
|
78
|
-
getWallet(index?: number): string | undefined;
|
|
79
|
-
getTransaction(index?: number): string | undefined;
|
|
80
|
-
hasWallets(): boolean;
|
|
81
|
-
clear(): void;
|
|
82
|
-
}
|
|
83
|
-
declare function ensureWalletExists(apiClient: ApiClient, testData: TestDataFactory, options?: {
|
|
84
|
-
chainType?: "evm" | "solana";
|
|
85
|
-
type?: "mpc" | "smart";
|
|
86
|
-
owner?: string;
|
|
87
|
-
testName?: string;
|
|
88
|
-
}): Promise<string | undefined>;
|
|
89
|
-
declare function createTestWallet(apiClient: ApiClient, testData: TestDataFactory, params: CreateWalletParams): Promise<CreateWalletResponse>;
|
|
90
|
-
declare function expectErrorResponse(response: unknown, message?: string): asserts response is ErrorResponse;
|
|
91
|
-
declare function expectSuccessWalletResponse(response: unknown): asserts response is SuccessWalletResponse;
|
|
92
|
-
declare function expectSuccessTransactionResponse(response: unknown): asserts response is SuccessTransactionResponse;
|
|
93
|
-
declare const fundWallet: (apiClient: ApiClient, walletLocator: WalletLocator, amount: number, token?: "usdc" | "usdxm", chain?: string) => Promise<FundWalletResponse>;
|
|
94
|
-
declare const approveTransaction: (apiClient: ApiClient, walletLocator: WalletLocator, transactionId: string, maxRetries?: number) => Promise<GetTransactionResponse>;
|
|
95
|
-
declare const fundWalletAndWait: (apiClient: ApiClient, walletLocator: WalletLocator, amount?: number, token?: "usdc" | "usdxm", chain?: string) => Promise<FundWalletResponse>;
|
|
96
|
-
declare const sendTokenAndApprove: (apiClient: ApiClient, walletLocator: WalletLocator, tokenLocator: string, recipient: string, amount: string) => Promise<GetTransactionResponse>;
|
|
97
|
-
declare const ensureWalletFunded: (apiClient: ApiClient, walletLocator: WalletLocator, amount?: number, token?: "usdc" | "usdxm", chain?: string) => Promise<void>;
|
|
98
|
-
|
|
99
|
-
export { type ErrorResponse, type FetchCallInfo, type MockResponseOptions, type SuccessTransactionResponse, type SuccessWalletResponse, TestDataFactory, approveTransaction, createIntegrationApiClient, createMockCrossmint, createMockErrorResponse, createMockResponse, createMockSendResponse, createMockSuccessResponse, createMockWalletResponse, createServerSideApiClient, createTestApiClient, createTestWallet, delay, ensureWalletExists, ensureWalletFunded, expectCommonHeaders, expectErrorResponse, expectRequestBody, expectRequestPath, expectSuccessTransactionResponse, expectSuccessWalletResponse, extractFetchCall, fundWallet, fundWalletAndWait, isErrorResponse, isSuccessTransactionResponse, isSuccessWalletResponse, isValidEthereumAddress, isValidSolanaAddress, sendTokenAndApprove, testCommonHttpErrors, testHttpErrorResponse, testInvalidJsonResponse, testMalformedResponse, testNetworkError, testTimeoutError, validateRequest };
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
import { MockedFunction } from 'vitest';
|
|
2
|
-
import { Crossmint } from '@crossmint/common-sdk-base';
|
|
3
|
-
import { ApiClient } from '../client.js';
|
|
4
|
-
import { CreateWalletResponse, SendResponse, CreateWalletParams, WalletLocator, FundWalletResponse, GetTransactionResponse } from '../types.js';
|
|
5
|
-
import '../../chains/chains.js';
|
|
6
|
-
import 'viem';
|
|
7
|
-
import '../gen/types.gen.js';
|
|
8
|
-
|
|
9
|
-
type MockResponseOptions<T> = {
|
|
10
|
-
data: T;
|
|
11
|
-
status?: number;
|
|
12
|
-
ok?: boolean;
|
|
13
|
-
statusText?: string;
|
|
14
|
-
};
|
|
15
|
-
type FetchCallInfo = {
|
|
16
|
-
path: string;
|
|
17
|
-
options: RequestInit;
|
|
18
|
-
};
|
|
19
|
-
declare const createMockResponse: <T>({ data, status, ok, statusText, }: MockResponseOptions<T>) => Response;
|
|
20
|
-
declare const createMockSuccessResponse: <T>(data: T) => Response;
|
|
21
|
-
declare const createMockErrorResponse: <T>(data: T, status?: number, statusText?: string) => Response;
|
|
22
|
-
declare const createMockCrossmint: (overrides?: Partial<Crossmint>) => Crossmint;
|
|
23
|
-
declare const createTestApiClient: (crossmint?: Crossmint) => ApiClient;
|
|
24
|
-
declare const createServerSideApiClient: () => ApiClient;
|
|
25
|
-
declare const extractFetchCall: (mockFn: MockedFunction<any> | MockedFunction<ApiClient["post"]> | MockedFunction<ApiClient["get"]>) => FetchCallInfo | undefined;
|
|
26
|
-
declare const expectRequestPath: (call: FetchCallInfo | undefined, expectedPath: string) => void;
|
|
27
|
-
declare const expectCommonHeaders: (headers: HeadersInit) => void;
|
|
28
|
-
declare const expectRequestBody: (options: RequestInit, expectedBody: unknown) => void;
|
|
29
|
-
declare const validateRequest: (call: FetchCallInfo | undefined, expectedPath: string, expectedBody?: unknown) => void;
|
|
30
|
-
declare const testHttpErrorResponse: <T>(apiCall: () => Promise<T>, mockFn: MockedFunction<any> | MockedFunction<ApiClient["post"]> | MockedFunction<ApiClient["get"]>, errorData: {
|
|
31
|
-
error: boolean;
|
|
32
|
-
message?: string;
|
|
33
|
-
}, statusCode: number) => Promise<void>;
|
|
34
|
-
declare const testCommonHttpErrors: <T>(apiCall: () => Promise<T>, mockFn: MockedFunction<any> | MockedFunction<ApiClient["post"]> | MockedFunction<ApiClient["get"]>, skipStatuses?: number[]) => Promise<void>;
|
|
35
|
-
declare const testNetworkError: <T>(apiCall: () => Promise<T>, mockFn: MockedFunction<any> | MockedFunction<ApiClient["post"]> | MockedFunction<ApiClient["get"]>) => Promise<void>;
|
|
36
|
-
declare const testInvalidJsonResponse: <T>(apiCall: () => Promise<T>, mockFn: MockedFunction<any> | MockedFunction<ApiClient["post"]> | MockedFunction<ApiClient["get"]>) => Promise<void>;
|
|
37
|
-
declare const testTimeoutError: <T>(apiCall: () => Promise<T>, mockFn: MockedFunction<any> | MockedFunction<ApiClient["post"]> | MockedFunction<ApiClient["get"]>) => Promise<void>;
|
|
38
|
-
declare const testMalformedResponse: <T>(apiCall: () => Promise<T>, mockFn: MockedFunction<any> | MockedFunction<ApiClient["post"]> | MockedFunction<ApiClient["get"]>, malformedData: unknown) => Promise<void>;
|
|
39
|
-
declare const createMockWalletResponse: (overrides?: Partial<CreateWalletResponse>) => CreateWalletResponse;
|
|
40
|
-
declare const createMockSendResponse: (overrides?: Partial<SendResponse>) => SendResponse;
|
|
41
|
-
interface ErrorResponse {
|
|
42
|
-
error: true;
|
|
43
|
-
message?: string;
|
|
44
|
-
details?: unknown;
|
|
45
|
-
}
|
|
46
|
-
interface SuccessWalletResponse {
|
|
47
|
-
address: string;
|
|
48
|
-
chainType: string;
|
|
49
|
-
type: string;
|
|
50
|
-
config?: {
|
|
51
|
-
adminSigner?: {
|
|
52
|
-
type: string;
|
|
53
|
-
address: string;
|
|
54
|
-
};
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
interface SuccessTransactionResponse {
|
|
58
|
-
id: string;
|
|
59
|
-
status: string;
|
|
60
|
-
chainType: string;
|
|
61
|
-
}
|
|
62
|
-
declare function isErrorResponse(response: unknown): response is ErrorResponse;
|
|
63
|
-
declare function isSuccessWalletResponse(response: unknown): response is SuccessWalletResponse;
|
|
64
|
-
declare function isSuccessTransactionResponse(response: unknown): response is SuccessTransactionResponse;
|
|
65
|
-
declare const delay: (ms: number) => Promise<unknown>;
|
|
66
|
-
declare const isValidEthereumAddress: (address: string) => boolean;
|
|
67
|
-
declare const isValidSolanaAddress: (address: string) => boolean;
|
|
68
|
-
/**
|
|
69
|
-
* Creates an API client for integration tests using environment variables.
|
|
70
|
-
* This is different from createTestApiClient which uses mocked data.
|
|
71
|
-
*/
|
|
72
|
-
declare const createIntegrationApiClient: (apiKey: string, baseUrl?: string, overrides?: Partial<Crossmint>) => ApiClient;
|
|
73
|
-
declare class TestDataFactory {
|
|
74
|
-
private wallets;
|
|
75
|
-
private transactions;
|
|
76
|
-
addWallet(address: string): void;
|
|
77
|
-
addTransaction(id: string): void;
|
|
78
|
-
getWallet(index?: number): string | undefined;
|
|
79
|
-
getTransaction(index?: number): string | undefined;
|
|
80
|
-
hasWallets(): boolean;
|
|
81
|
-
clear(): void;
|
|
82
|
-
}
|
|
83
|
-
declare function ensureWalletExists(apiClient: ApiClient, testData: TestDataFactory, options?: {
|
|
84
|
-
chainType?: "evm" | "solana";
|
|
85
|
-
type?: "mpc" | "smart";
|
|
86
|
-
owner?: string;
|
|
87
|
-
testName?: string;
|
|
88
|
-
}): Promise<string | undefined>;
|
|
89
|
-
declare function createTestWallet(apiClient: ApiClient, testData: TestDataFactory, params: CreateWalletParams): Promise<CreateWalletResponse>;
|
|
90
|
-
declare function expectErrorResponse(response: unknown, message?: string): asserts response is ErrorResponse;
|
|
91
|
-
declare function expectSuccessWalletResponse(response: unknown): asserts response is SuccessWalletResponse;
|
|
92
|
-
declare function expectSuccessTransactionResponse(response: unknown): asserts response is SuccessTransactionResponse;
|
|
93
|
-
declare const fundWallet: (apiClient: ApiClient, walletLocator: WalletLocator, amount: number, token?: "usdc" | "usdxm", chain?: string) => Promise<FundWalletResponse>;
|
|
94
|
-
declare const approveTransaction: (apiClient: ApiClient, walletLocator: WalletLocator, transactionId: string, maxRetries?: number) => Promise<GetTransactionResponse>;
|
|
95
|
-
declare const fundWalletAndWait: (apiClient: ApiClient, walletLocator: WalletLocator, amount?: number, token?: "usdc" | "usdxm", chain?: string) => Promise<FundWalletResponse>;
|
|
96
|
-
declare const sendTokenAndApprove: (apiClient: ApiClient, walletLocator: WalletLocator, tokenLocator: string, recipient: string, amount: string) => Promise<GetTransactionResponse>;
|
|
97
|
-
declare const ensureWalletFunded: (apiClient: ApiClient, walletLocator: WalletLocator, amount?: number, token?: "usdc" | "usdxm", chain?: string) => Promise<void>;
|
|
98
|
-
|
|
99
|
-
export { type ErrorResponse, type FetchCallInfo, type MockResponseOptions, type SuccessTransactionResponse, type SuccessWalletResponse, TestDataFactory, approveTransaction, createIntegrationApiClient, createMockCrossmint, createMockErrorResponse, createMockResponse, createMockSendResponse, createMockSuccessResponse, createMockWalletResponse, createServerSideApiClient, createTestApiClient, createTestWallet, delay, ensureWalletExists, ensureWalletFunded, expectCommonHeaders, expectErrorResponse, expectRequestBody, expectRequestPath, expectSuccessTransactionResponse, expectSuccessWalletResponse, extractFetchCall, fundWallet, fundWalletAndWait, isErrorResponse, isSuccessTransactionResponse, isSuccessWalletResponse, isValidEthereumAddress, isValidSolanaAddress, sendTokenAndApprove, testCommonHttpErrors, testHttpErrorResponse, testInvalidJsonResponse, testMalformedResponse, testNetworkError, testTimeoutError, validateRequest };
|