@unionlabs/payments 0.1.0 → 0.2.0
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/Abi/package.json +6 -0
- package/Attestor/package.json +6 -0
- package/Constants/package.json +6 -0
- package/Domain/package.json +6 -0
- package/Error/package.json +6 -0
- package/EvmPublicClient/package.json +6 -0
- package/EvmWalletClient/package.json +6 -0
- package/Payment/package.json +6 -0
- package/PaymentError/package.json +6 -0
- package/Prover/package.json +6 -0
- package/PublicClient/package.json +6 -0
- package/README.md +1 -0
- package/Schema/package.json +6 -0
- package/Utils/package.json +6 -0
- package/WalletClient/package.json +6 -0
- package/attestation/package.json +6 -0
- package/cli/commands/balance/package.json +6 -0
- package/cli/commands/deposit/package.json +6 -0
- package/cli/commands/export-verifier/package.json +6 -0
- package/cli/commands/generate/package.json +6 -0
- package/cli/commands/history/package.json +6 -0
- package/cli/commands/prove/package.json +6 -0
- package/cli/commands/redeem/package.json +6 -0
- package/cli/commands/update-client/package.json +6 -0
- package/cli/config/package.json +6 -0
- package/cli/package.json +6 -0
- package/cli/utils/package.json +6 -0
- package/constants/ibc-core-registry/package.json +6 -0
- package/constants/services/package.json +6 -0
- package/constants/z-asset-registry/package.json +6 -0
- package/dist/cjs/Abi.js +270 -0
- package/dist/cjs/Abi.js.map +1 -0
- package/dist/cjs/Attestor.js +76 -0
- package/dist/cjs/Attestor.js.map +1 -0
- package/dist/cjs/Constants.js +8 -0
- package/dist/cjs/Constants.js.map +1 -0
- package/dist/cjs/Domain.js +24 -0
- package/dist/cjs/Domain.js.map +1 -0
- package/dist/cjs/Error.js +100 -0
- package/dist/cjs/Error.js.map +1 -0
- package/dist/cjs/EvmPublicClient.js +301 -0
- package/dist/cjs/EvmPublicClient.js.map +1 -0
- package/dist/cjs/EvmWalletClient.js +670 -0
- package/dist/cjs/EvmWalletClient.js.map +1 -0
- package/dist/cjs/Payment.js +333 -0
- package/dist/cjs/Payment.js.map +1 -0
- package/dist/cjs/PaymentError.js +32 -0
- package/dist/cjs/PaymentError.js.map +1 -0
- package/dist/cjs/Prover.js +153 -0
- package/dist/cjs/Prover.js.map +1 -0
- package/dist/cjs/PublicClient.js +39 -0
- package/dist/cjs/PublicClient.js.map +1 -0
- package/dist/cjs/Schema.js +38 -0
- package/dist/cjs/Schema.js.map +1 -0
- package/dist/cjs/Utils.js +33 -0
- package/dist/cjs/Utils.js.map +1 -0
- package/dist/cjs/WalletClient.js +39 -0
- package/dist/cjs/WalletClient.js.map +1 -0
- package/dist/cjs/attestation.js +49 -0
- package/dist/cjs/attestation.js.map +1 -0
- package/dist/cjs/cli/commands/balance.js +60 -0
- package/dist/cjs/cli/commands/balance.js.map +1 -0
- package/dist/cjs/cli/commands/deposit.js +58 -0
- package/dist/cjs/cli/commands/deposit.js.map +1 -0
- package/dist/cjs/cli/commands/export-verifier.js +27 -0
- package/dist/cjs/cli/commands/export-verifier.js.map +1 -0
- package/dist/cjs/cli/commands/generate.js +41 -0
- package/dist/cjs/cli/commands/generate.js.map +1 -0
- package/dist/cjs/cli/commands/history.js +59 -0
- package/dist/cjs/cli/commands/history.js.map +1 -0
- package/dist/cjs/cli/commands/prove.js +82 -0
- package/dist/cjs/cli/commands/prove.js.map +1 -0
- package/dist/cjs/cli/commands/redeem.js +152 -0
- package/dist/cjs/cli/commands/redeem.js.map +1 -0
- package/dist/cjs/cli/commands/update-client.js +62 -0
- package/dist/cjs/cli/commands/update-client.js.map +1 -0
- package/dist/cjs/cli/config.js +32 -0
- package/dist/cjs/cli/config.js.map +1 -0
- package/dist/cjs/cli/utils.js +108 -0
- package/dist/cjs/cli/utils.js.map +1 -0
- package/dist/cjs/cli.js +24 -0
- package/dist/cjs/cli.js.map +1 -0
- package/dist/cjs/constants/ibc-core-registry.js +30 -0
- package/dist/cjs/constants/ibc-core-registry.js.map +1 -0
- package/dist/cjs/constants/services.js +9 -0
- package/dist/cjs/constants/services.js.map +1 -0
- package/dist/cjs/constants/z-asset-registry.js +32 -0
- package/dist/cjs/constants/z-asset-registry.js.map +1 -0
- package/dist/cjs/gen/prover_pb.js +81 -0
- package/dist/cjs/gen/prover_pb.js.map +1 -0
- package/dist/cjs/index.js +32 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/internal/evm.js +191 -0
- package/dist/cjs/internal/evm.js.map +1 -0
- package/dist/cjs/internal/evmWalletClient.js +6 -0
- package/dist/cjs/internal/evmWalletClient.js.map +1 -0
- package/dist/cjs/internal/publicClient.js +49 -0
- package/dist/cjs/internal/publicClient.js.map +1 -0
- package/dist/cjs/internal/walletClient.js +43 -0
- package/dist/cjs/internal/walletClient.js.map +1 -0
- package/dist/cjs/legacy/client.js +1222 -0
- package/dist/cjs/legacy/client.js.map +1 -0
- package/dist/cjs/legacy/prover.js +112 -0
- package/dist/cjs/legacy/prover.js.map +1 -0
- package/dist/cjs/poseidon2.js +226 -0
- package/dist/cjs/poseidon2.js.map +1 -0
- package/dist/cjs/promises/Attestor.js +23 -0
- package/dist/cjs/promises/Attestor.js.map +1 -0
- package/dist/cjs/promises/EvmPublicClient.js +34 -0
- package/dist/cjs/promises/EvmPublicClient.js.map +1 -0
- package/dist/cjs/promises/EvmWalletClient.js +51 -0
- package/dist/cjs/promises/EvmWalletClient.js.map +1 -0
- package/dist/cjs/promises/Payment.js +22 -0
- package/dist/cjs/promises/Payment.js.map +1 -0
- package/dist/cjs/promises/Prover.js +26 -0
- package/dist/cjs/promises/Prover.js.map +1 -0
- package/dist/cjs/promises/PublicClient.js +53 -0
- package/dist/cjs/promises/PublicClient.js.map +1 -0
- package/dist/cjs/promises/WalletClient.js +44 -0
- package/dist/cjs/promises/WalletClient.js.map +1 -0
- package/dist/cjs/promises/index.js +22 -0
- package/dist/cjs/promises/index.js.map +1 -0
- package/dist/cjs/rpc.js +867 -0
- package/dist/cjs/rpc.js.map +1 -0
- package/dist/cjs/types.js +6 -0
- package/dist/cjs/types.js.map +1 -0
- package/dist/dts/Abi.d.ts +220 -0
- package/dist/dts/Abi.d.ts.map +1 -0
- package/dist/dts/Attestor.d.ts +42 -0
- package/dist/dts/Attestor.d.ts.map +1 -0
- package/dist/dts/Constants.d.ts +3 -0
- package/dist/dts/Constants.d.ts.map +1 -0
- package/dist/dts/Domain.d.ts +141 -0
- package/dist/dts/Domain.d.ts.map +1 -0
- package/dist/dts/Error.d.ts +102 -0
- package/dist/dts/Error.d.ts.map +1 -0
- package/dist/dts/EvmPublicClient.d.ts +61 -0
- package/dist/dts/EvmPublicClient.d.ts.map +1 -0
- package/dist/dts/EvmWalletClient.d.ts +67 -0
- package/dist/dts/EvmWalletClient.d.ts.map +1 -0
- package/dist/dts/Payment.d.ts +128 -0
- package/dist/dts/Payment.d.ts.map +1 -0
- package/dist/dts/PaymentError.d.ts +21 -0
- package/dist/dts/PaymentError.d.ts.map +1 -0
- package/dist/dts/Prover.d.ts +87 -0
- package/dist/dts/Prover.d.ts.map +1 -0
- package/dist/dts/PublicClient.d.ts +146 -0
- package/dist/dts/PublicClient.d.ts.map +1 -0
- package/dist/dts/Schema.d.ts +16 -0
- package/dist/dts/Schema.d.ts.map +1 -0
- package/dist/dts/Utils.d.ts +11 -0
- package/dist/dts/Utils.d.ts.map +1 -0
- package/dist/dts/WalletClient.d.ts +123 -0
- package/dist/dts/WalletClient.d.ts.map +1 -0
- package/dist/dts/attestation.d.ts +13 -0
- package/dist/dts/attestation.d.ts.map +1 -0
- package/dist/dts/cli/commands/balance.d.ts +3 -0
- package/dist/dts/cli/commands/balance.d.ts.map +1 -0
- package/dist/dts/cli/commands/deposit.d.ts +3 -0
- package/dist/dts/cli/commands/deposit.d.ts.map +1 -0
- package/dist/dts/cli/commands/export-verifier.d.ts +3 -0
- package/dist/dts/cli/commands/export-verifier.d.ts.map +1 -0
- package/dist/dts/cli/commands/generate.d.ts +3 -0
- package/dist/dts/cli/commands/generate.d.ts.map +1 -0
- package/dist/dts/cli/commands/history.d.ts +3 -0
- package/dist/dts/cli/commands/history.d.ts.map +1 -0
- package/dist/dts/cli/commands/prove.d.ts +3 -0
- package/dist/dts/cli/commands/prove.d.ts.map +1 -0
- package/dist/dts/cli/commands/redeem.d.ts +3 -0
- package/dist/dts/cli/commands/redeem.d.ts.map +1 -0
- package/dist/dts/cli/commands/update-client.d.ts +3 -0
- package/dist/dts/cli/commands/update-client.d.ts.map +1 -0
- package/dist/dts/cli/config.d.ts +14 -0
- package/dist/dts/cli/config.d.ts.map +1 -0
- package/dist/dts/cli/utils.d.ts +11 -0
- package/dist/dts/cli/utils.d.ts.map +1 -0
- package/dist/dts/cli.d.ts +3 -0
- package/dist/dts/cli.d.ts.map +1 -0
- package/dist/dts/constants/ibc-core-registry.d.ts +11 -0
- package/dist/dts/constants/ibc-core-registry.d.ts.map +1 -0
- package/dist/dts/constants/services.d.ts +3 -0
- package/dist/dts/constants/services.d.ts.map +1 -0
- package/dist/dts/constants/z-asset-registry.d.ts +13 -0
- package/dist/dts/constants/z-asset-registry.d.ts.map +1 -0
- package/dist/dts/gen/prover_pb.d.ts +300 -0
- package/dist/dts/gen/prover_pb.d.ts.map +1 -0
- package/dist/dts/index.d.ts +21 -0
- package/dist/dts/index.d.ts.map +1 -0
- package/dist/dts/internal/evm.d.ts +250 -0
- package/dist/dts/internal/evm.d.ts.map +1 -0
- package/dist/dts/internal/evmWalletClient.d.ts +2 -0
- package/dist/dts/internal/evmWalletClient.d.ts.map +1 -0
- package/dist/dts/internal/publicClient.d.ts +2 -0
- package/dist/dts/internal/publicClient.d.ts.map +1 -0
- package/dist/dts/internal/walletClient.d.ts +2 -0
- package/dist/dts/internal/walletClient.d.ts.map +1 -0
- package/dist/dts/legacy/client.d.ts +313 -0
- package/dist/dts/legacy/client.d.ts.map +1 -0
- package/dist/dts/legacy/prover.d.ts +30 -0
- package/dist/dts/legacy/prover.d.ts.map +1 -0
- package/dist/dts/poseidon2.d.ts +18 -0
- package/dist/dts/poseidon2.d.ts.map +1 -0
- package/dist/dts/promises/Attestor.d.ts +17 -0
- package/dist/dts/promises/Attestor.d.ts.map +1 -0
- package/dist/dts/promises/EvmPublicClient.d.ts +3709 -0
- package/dist/dts/promises/EvmPublicClient.d.ts.map +1 -0
- package/dist/dts/promises/EvmWalletClient.d.ts +4502 -0
- package/dist/dts/promises/EvmWalletClient.d.ts.map +1 -0
- package/dist/dts/promises/Payment.d.ts +33 -0
- package/dist/dts/promises/Payment.d.ts.map +1 -0
- package/dist/dts/promises/Prover.d.ts +14 -0
- package/dist/dts/promises/Prover.d.ts.map +1 -0
- package/dist/dts/promises/PublicClient.d.ts +23 -0
- package/dist/dts/promises/PublicClient.d.ts.map +1 -0
- package/dist/dts/promises/WalletClient.d.ts +57 -0
- package/dist/dts/promises/WalletClient.d.ts.map +1 -0
- package/dist/dts/promises/index.d.ts +8 -0
- package/dist/dts/promises/index.d.ts.map +1 -0
- package/dist/dts/rpc.d.ts +148 -0
- package/dist/dts/rpc.d.ts.map +1 -0
- package/dist/dts/types.d.ts +263 -0
- package/dist/dts/types.d.ts.map +1 -0
- package/dist/esm/Abi.js +264 -0
- package/dist/esm/Abi.js.map +1 -0
- package/dist/esm/Attestor.js +68 -0
- package/dist/esm/Attestor.js.map +1 -0
- package/dist/esm/Constants.js +2 -0
- package/dist/esm/Constants.js.map +1 -0
- package/dist/esm/Domain.js +17 -0
- package/dist/esm/Domain.js.map +1 -0
- package/dist/esm/Error.js +89 -0
- package/dist/esm/Error.js.map +1 -0
- package/dist/esm/EvmPublicClient.js +292 -0
- package/dist/esm/EvmPublicClient.js.map +1 -0
- package/dist/esm/EvmWalletClient.js +659 -0
- package/dist/esm/EvmWalletClient.js.map +1 -0
- package/dist/esm/Payment.js +323 -0
- package/dist/esm/Payment.js.map +1 -0
- package/dist/esm/PaymentError.js +24 -0
- package/dist/esm/PaymentError.js.map +1 -0
- package/dist/esm/Prover.js +142 -0
- package/dist/esm/Prover.js.map +1 -0
- package/dist/esm/PublicClient.js +30 -0
- package/dist/esm/PublicClient.js.map +1 -0
- package/dist/esm/Schema.js +31 -0
- package/dist/esm/Schema.js.map +1 -0
- package/dist/esm/Utils.js +27 -0
- package/dist/esm/Utils.js.map +1 -0
- package/dist/esm/WalletClient.js +30 -0
- package/dist/esm/WalletClient.js.map +1 -0
- package/dist/esm/attestation.js +42 -0
- package/dist/esm/attestation.js.map +1 -0
- package/dist/esm/cli/commands/balance.js +54 -0
- package/dist/esm/cli/commands/balance.js.map +1 -0
- package/dist/esm/cli/commands/deposit.js +52 -0
- package/dist/esm/cli/commands/deposit.js.map +1 -0
- package/dist/esm/cli/commands/export-verifier.js +21 -0
- package/dist/esm/cli/commands/export-verifier.js.map +1 -0
- package/dist/esm/cli/commands/generate.js +35 -0
- package/dist/esm/cli/commands/generate.js.map +1 -0
- package/dist/esm/cli/commands/history.js +53 -0
- package/dist/esm/cli/commands/history.js.map +1 -0
- package/dist/esm/cli/commands/prove.js +76 -0
- package/dist/esm/cli/commands/prove.js.map +1 -0
- package/dist/esm/cli/commands/redeem.js +146 -0
- package/dist/esm/cli/commands/redeem.js.map +1 -0
- package/dist/esm/cli/commands/update-client.js +56 -0
- package/dist/esm/cli/commands/update-client.js.map +1 -0
- package/dist/esm/cli/config.js +26 -0
- package/dist/esm/cli/config.js.map +1 -0
- package/dist/esm/cli/utils.js +94 -0
- package/dist/esm/cli/utils.js.map +1 -0
- package/dist/esm/cli.js +22 -0
- package/dist/esm/cli.js.map +1 -0
- package/dist/esm/constants/ibc-core-registry.js +21 -0
- package/dist/esm/constants/ibc-core-registry.js.map +1 -0
- package/dist/esm/constants/services.js +3 -0
- package/dist/esm/constants/services.js.map +1 -0
- package/dist/esm/constants/z-asset-registry.js +23 -0
- package/dist/esm/constants/z-asset-registry.js.map +1 -0
- package/dist/esm/gen/prover_pb.js +74 -0
- package/dist/esm/gen/prover_pb.js.map +1 -0
- package/dist/esm/index.js +22 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/internal/evm.js +169 -0
- package/dist/esm/internal/evm.js.map +1 -0
- package/dist/esm/internal/evmWalletClient.js +2 -0
- package/dist/esm/internal/evmWalletClient.js.map +1 -0
- package/dist/esm/internal/publicClient.js +41 -0
- package/dist/esm/internal/publicClient.js.map +1 -0
- package/dist/esm/internal/walletClient.js +35 -0
- package/dist/esm/internal/walletClient.js.map +1 -0
- package/dist/esm/legacy/client.js +1212 -0
- package/dist/esm/legacy/client.js.map +1 -0
- package/dist/esm/legacy/prover.js +105 -0
- package/dist/esm/legacy/prover.js.map +1 -0
- package/dist/esm/package.json +4 -0
- package/dist/esm/poseidon2.js +218 -0
- package/dist/esm/poseidon2.js.map +1 -0
- package/dist/esm/promises/Attestor.js +14 -0
- package/dist/esm/promises/Attestor.js.map +1 -0
- package/dist/esm/promises/EvmPublicClient.js +26 -0
- package/dist/esm/promises/EvmPublicClient.js.map +1 -0
- package/dist/esm/promises/EvmWalletClient.js +43 -0
- package/dist/esm/promises/EvmWalletClient.js.map +1 -0
- package/dist/esm/promises/Payment.js +13 -0
- package/dist/esm/promises/Payment.js.map +1 -0
- package/dist/esm/promises/Prover.js +17 -0
- package/dist/esm/promises/Prover.js.map +1 -0
- package/dist/esm/promises/PublicClient.js +45 -0
- package/dist/esm/promises/PublicClient.js.map +1 -0
- package/dist/esm/promises/WalletClient.js +36 -0
- package/dist/esm/promises/WalletClient.js.map +1 -0
- package/dist/esm/promises/index.js +8 -0
- package/dist/esm/promises/index.js.map +1 -0
- package/dist/esm/rpc.js +850 -0
- package/dist/esm/rpc.js.map +1 -0
- package/dist/esm/types.js +2 -0
- package/dist/esm/types.js.map +1 -0
- package/gen/prover_pb/package.json +6 -0
- package/index/package.json +6 -0
- package/legacy/client/package.json +6 -0
- package/legacy/prover/package.json +6 -0
- package/package.json +397 -44
- package/poseidon2/package.json +6 -0
- package/promises/Attestor/package.json +6 -0
- package/promises/EvmPublicClient/package.json +6 -0
- package/promises/EvmWalletClient/package.json +6 -0
- package/promises/Payment/package.json +6 -0
- package/promises/Prover/package.json +6 -0
- package/promises/PublicClient/package.json +6 -0
- package/promises/WalletClient/package.json +6 -0
- package/promises/index/package.json +6 -0
- package/promises/package.json +6 -0
- package/rpc/package.json +6 -0
- package/src/Abi.ts +195 -0
- package/src/Attestor.ts +113 -0
- package/src/Constants.ts +4 -0
- package/src/Domain.ts +52 -0
- package/src/Error.ts +163 -0
- package/src/EvmPublicClient.ts +549 -0
- package/src/EvmWalletClient.ts +1034 -0
- package/src/Payment.ts +523 -0
- package/src/PaymentError.ts +39 -0
- package/src/Prover.ts +240 -0
- package/src/PublicClient.ts +196 -0
- package/src/Schema.ts +36 -0
- package/src/Utils.ts +43 -0
- package/src/WalletClient.ts +172 -0
- package/src/attestation.ts +69 -0
- package/src/cli/commands/balance.ts +88 -0
- package/src/cli/commands/deposit.ts +104 -0
- package/src/cli/commands/export-verifier.ts +28 -0
- package/src/cli/commands/generate.ts +86 -0
- package/src/cli/commands/history.ts +91 -0
- package/src/cli/commands/prove.ts +133 -0
- package/src/cli/commands/redeem.ts +277 -0
- package/src/cli/commands/update-client.ts +96 -0
- package/src/cli/config.ts +55 -0
- package/src/cli/utils.ts +136 -0
- package/src/cli.ts +31 -0
- package/src/constants/ibc-core-registry.ts +44 -0
- package/src/constants/services.ts +4 -0
- package/src/constants/z-asset-registry.ts +47 -0
- package/src/gen/prover_pb.ts +375 -0
- package/src/index.ts +23 -0
- package/src/internal/evm.ts +361 -0
- package/src/internal/evmWalletClient.ts +0 -0
- package/src/internal/publicClient.ts +57 -0
- package/src/internal/walletClient.ts +50 -0
- package/src/legacy/client.ts +1652 -0
- package/src/legacy/prover.ts +135 -0
- package/src/poseidon2.ts +246 -0
- package/src/promises/Attestor.ts +25 -0
- package/src/promises/EvmPublicClient.ts +39 -0
- package/src/promises/EvmWalletClient.ts +63 -0
- package/src/promises/Payment.ts +86 -0
- package/src/promises/Prover.ts +26 -0
- package/src/promises/PublicClient.ts +47 -0
- package/src/promises/WalletClient.ts +38 -0
- package/src/promises/index.ts +7 -0
- package/src/rpc.ts +994 -0
- package/src/types.ts +281 -0
- package/types/package.json +6 -0
- package/dist/LICENSE +0 -1
- package/dist/chunk-37PNLRA6.js +0 -2418
- package/dist/cli.cjs +0 -3031
- package/dist/cli.js +0 -675
- package/dist/index.cjs +0 -2451
- package/dist/index.js +0 -1
- package/dist/package.json +0 -18
- package/dist/payments.d.ts +0 -835
- /package/{dist → src}/tsdoc-metadata.json +0 -0
|
@@ -0,0 +1,361 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This module handles EVM related functionality.
|
|
3
|
+
*
|
|
4
|
+
* @since 0.0.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import type {} from "effect";
|
|
8
|
+
import { Context, Data, Effect, flow, Layer, pipe } from "effect";
|
|
9
|
+
import type {
|
|
10
|
+
Abi,
|
|
11
|
+
Address,
|
|
12
|
+
ContractFunctionArgs,
|
|
13
|
+
ContractFunctionName,
|
|
14
|
+
CreatePublicClientErrorType,
|
|
15
|
+
CreateWalletClientErrorType,
|
|
16
|
+
Hash,
|
|
17
|
+
ReadContractErrorType,
|
|
18
|
+
ReadContractParameters,
|
|
19
|
+
SimulateContractErrorType,
|
|
20
|
+
Account as ViemAccount,
|
|
21
|
+
Chain as ViemChain,
|
|
22
|
+
PublicClient as ViemPublicClient,
|
|
23
|
+
WalletClient as ViemWalletClient,
|
|
24
|
+
WaitForTransactionReceiptTimeoutErrorType,
|
|
25
|
+
WriteContractErrorType,
|
|
26
|
+
WriteContractParameters,
|
|
27
|
+
} from "viem";
|
|
28
|
+
import * as V from "viem";
|
|
29
|
+
|
|
30
|
+
/** @internal */
|
|
31
|
+
export const publicClientLayer =
|
|
32
|
+
<Id>(tag: Context.Tag<Id, Evm.PublicClient>) =>
|
|
33
|
+
(
|
|
34
|
+
...options: Parameters<typeof V.createPublicClient>
|
|
35
|
+
): Layer.Layer<Id, CreatePublicClientError> =>
|
|
36
|
+
Layer.effect(
|
|
37
|
+
tag,
|
|
38
|
+
pipe(
|
|
39
|
+
Effect.try({
|
|
40
|
+
try: () => V.createPublicClient(...options),
|
|
41
|
+
catch: (err) =>
|
|
42
|
+
new CreatePublicClientError({
|
|
43
|
+
cause: err as V.CreatePublicClientErrorType,
|
|
44
|
+
}),
|
|
45
|
+
}),
|
|
46
|
+
Effect.map((client) => ({ client })),
|
|
47
|
+
),
|
|
48
|
+
);
|
|
49
|
+
|
|
50
|
+
/** @internal */
|
|
51
|
+
export const walletClientLayer =
|
|
52
|
+
<Id>(tag: Context.Tag<Id, Evm.WalletClient>) =>
|
|
53
|
+
(
|
|
54
|
+
options: Parameters<typeof V.createWalletClient>[0] & {
|
|
55
|
+
account: V.Account;
|
|
56
|
+
chain: V.Chain;
|
|
57
|
+
},
|
|
58
|
+
): Layer.Layer<Id, CreateWalletClientError> =>
|
|
59
|
+
Layer.effect(
|
|
60
|
+
tag,
|
|
61
|
+
pipe(
|
|
62
|
+
Effect.try({
|
|
63
|
+
try: () => V.createWalletClient(options),
|
|
64
|
+
catch: (err) =>
|
|
65
|
+
new CreateWalletClientError({
|
|
66
|
+
cause: err as V.CreateWalletClientErrorType,
|
|
67
|
+
}),
|
|
68
|
+
}),
|
|
69
|
+
Effect.map((client) => ({
|
|
70
|
+
client,
|
|
71
|
+
account: options.account,
|
|
72
|
+
chain: options.chain,
|
|
73
|
+
})),
|
|
74
|
+
),
|
|
75
|
+
);
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* @category models
|
|
79
|
+
* @since 0.0.0
|
|
80
|
+
*/
|
|
81
|
+
export namespace Evm {
|
|
82
|
+
/**
|
|
83
|
+
* @category models
|
|
84
|
+
* @since 0.0.0
|
|
85
|
+
*/
|
|
86
|
+
export interface PublicClient {
|
|
87
|
+
readonly client: ViemPublicClient;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* @category models
|
|
92
|
+
* @since 0.0.0
|
|
93
|
+
*/
|
|
94
|
+
export interface WalletClient {
|
|
95
|
+
readonly client: ViemWalletClient;
|
|
96
|
+
readonly account: ViemAccount;
|
|
97
|
+
readonly chain: ViemChain;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* @category models
|
|
102
|
+
* @since 0.0.0
|
|
103
|
+
*/
|
|
104
|
+
export interface Channel {
|
|
105
|
+
readonly ucs03address: Address;
|
|
106
|
+
readonly channelId: number;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* @category errors
|
|
112
|
+
* @since 0.0.0
|
|
113
|
+
*/
|
|
114
|
+
export class WaitForTransactionReceiptError extends Data.TaggedError(
|
|
115
|
+
"WaitForTransactionReceiptError",
|
|
116
|
+
)<{
|
|
117
|
+
cause: WaitForTransactionReceiptTimeoutErrorType;
|
|
118
|
+
}> {}
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* Wait for a transaction receipt
|
|
122
|
+
* @param hash The transaction hash for which to wait
|
|
123
|
+
* @returns An Effect that resolves to the transaction receipt
|
|
124
|
+
*
|
|
125
|
+
* @category utils
|
|
126
|
+
* @since 0.0.0
|
|
127
|
+
*/
|
|
128
|
+
export const waitForTransactionReceipt = Effect.fn("waitForTransactionReceipt")(
|
|
129
|
+
(hash: Hash) =>
|
|
130
|
+
pipe(
|
|
131
|
+
PublicClient,
|
|
132
|
+
Effect.andThen(({ client }) =>
|
|
133
|
+
Effect.tryPromise({
|
|
134
|
+
try: () => client.waitForTransactionReceipt({ hash }),
|
|
135
|
+
catch: (err) =>
|
|
136
|
+
new WaitForTransactionReceiptError({
|
|
137
|
+
cause: err as WaitForTransactionReceiptTimeoutErrorType,
|
|
138
|
+
}),
|
|
139
|
+
}),
|
|
140
|
+
),
|
|
141
|
+
),
|
|
142
|
+
);
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* A type-safe wrapper around viem's readContract that handles error cases
|
|
146
|
+
* and returns an Effect with proper type inference. Extracts all error info
|
|
147
|
+
*
|
|
148
|
+
* @param client - The viem PublicClient to use for the contract call
|
|
149
|
+
* @param params - The parameters for the contract call
|
|
150
|
+
* @returns An Effect that resolves to the properly typed return value
|
|
151
|
+
*
|
|
152
|
+
* @category utils
|
|
153
|
+
* @since 0.0.0
|
|
154
|
+
*/
|
|
155
|
+
export const readContract = Effect.fn("readContract")(
|
|
156
|
+
<
|
|
157
|
+
TAbi extends Abi,
|
|
158
|
+
TFunctionName extends ContractFunctionName<
|
|
159
|
+
TAbi,
|
|
160
|
+
"pure" | "view"
|
|
161
|
+
> = ContractFunctionName<TAbi, "pure" | "view">,
|
|
162
|
+
TArgs extends ContractFunctionArgs<
|
|
163
|
+
TAbi,
|
|
164
|
+
"pure" | "view",
|
|
165
|
+
TFunctionName
|
|
166
|
+
> = ContractFunctionArgs<TAbi, "pure" | "view", TFunctionName>,
|
|
167
|
+
>(
|
|
168
|
+
params: ReadContractParameters<TAbi, TFunctionName, TArgs>,
|
|
169
|
+
) =>
|
|
170
|
+
pipe(
|
|
171
|
+
PublicClient,
|
|
172
|
+
Effect.andThen(({ client }) =>
|
|
173
|
+
Effect.tryPromise({
|
|
174
|
+
try: () => client.readContract(params),
|
|
175
|
+
catch: (error) =>
|
|
176
|
+
new ReadContractError({
|
|
177
|
+
cause: error as ReadContractErrorType,
|
|
178
|
+
}),
|
|
179
|
+
}),
|
|
180
|
+
),
|
|
181
|
+
),
|
|
182
|
+
);
|
|
183
|
+
|
|
184
|
+
/**
|
|
185
|
+
* A type-safe wrapper around viem's writeContract that handles error cases
|
|
186
|
+
* and returns an Effect with proper type inference. Extracts all error info
|
|
187
|
+
*
|
|
188
|
+
* @param client - The viem WalletClient to use for the contract transaction
|
|
189
|
+
* @param params - The parameters for the contract transaction
|
|
190
|
+
* @returns An Effect that resolves to the transaction hash
|
|
191
|
+
*
|
|
192
|
+
* @category utils
|
|
193
|
+
* @since 0.0.0
|
|
194
|
+
*/
|
|
195
|
+
export const writeContract = Effect.fn("writeContract")(
|
|
196
|
+
<
|
|
197
|
+
const abi extends Abi | readonly unknown[],
|
|
198
|
+
functionName extends ContractFunctionName<abi, "payable" | "nonpayable">,
|
|
199
|
+
args extends ContractFunctionArgs<
|
|
200
|
+
abi,
|
|
201
|
+
"payable" | "nonpayable",
|
|
202
|
+
functionName
|
|
203
|
+
>,
|
|
204
|
+
>(
|
|
205
|
+
params: WriteContractParameters<abi, functionName, args>,
|
|
206
|
+
) =>
|
|
207
|
+
pipe(
|
|
208
|
+
WalletClient,
|
|
209
|
+
Effect.andThen(({ client }) =>
|
|
210
|
+
Effect.tryPromise({
|
|
211
|
+
try: () => client.writeContract(params),
|
|
212
|
+
catch: (error) =>
|
|
213
|
+
new WriteContractError({
|
|
214
|
+
cause: error as WriteContractErrorType,
|
|
215
|
+
}),
|
|
216
|
+
}),
|
|
217
|
+
),
|
|
218
|
+
),
|
|
219
|
+
);
|
|
220
|
+
|
|
221
|
+
export const getBlockNumber = Effect.fn("writeContract")(
|
|
222
|
+
<
|
|
223
|
+
const abi extends Abi | readonly unknown[],
|
|
224
|
+
functionName extends ContractFunctionName<abi, "payable" | "nonpayable">,
|
|
225
|
+
args extends ContractFunctionArgs<
|
|
226
|
+
abi,
|
|
227
|
+
"payable" | "nonpayable",
|
|
228
|
+
functionName
|
|
229
|
+
>,
|
|
230
|
+
>(
|
|
231
|
+
params: WriteContractParameters<abi, functionName, args>,
|
|
232
|
+
) =>
|
|
233
|
+
pipe(
|
|
234
|
+
WalletClient,
|
|
235
|
+
Effect.andThen(({ client }) =>
|
|
236
|
+
Effect.tryPromise({
|
|
237
|
+
try: () => client.writeContract(params),
|
|
238
|
+
catch: (error) =>
|
|
239
|
+
new WriteContractError({
|
|
240
|
+
cause: error as WriteContractErrorType,
|
|
241
|
+
}),
|
|
242
|
+
}),
|
|
243
|
+
),
|
|
244
|
+
),
|
|
245
|
+
);
|
|
246
|
+
|
|
247
|
+
/**
|
|
248
|
+
* @category context
|
|
249
|
+
* @since 0.0.0
|
|
250
|
+
*/
|
|
251
|
+
export class ChannelDestination extends Context.Tag(
|
|
252
|
+
"@unionlabs/sdk/Evm/ChannelDestination",
|
|
253
|
+
)<ChannelDestination, Evm.Channel>() {
|
|
254
|
+
static Live = flow(ChannelDestination.of, Layer.succeed(this));
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
/**
|
|
258
|
+
* @category context
|
|
259
|
+
* @since 0.0.0
|
|
260
|
+
*/
|
|
261
|
+
export class ChannelSource extends Context.Tag(
|
|
262
|
+
"@unionlabs/sdk/Evm/ChannelSource",
|
|
263
|
+
)<ChannelSource, Evm.Channel>() {
|
|
264
|
+
static Live = flow(ChannelSource.of, Layer.succeed(this));
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
/**
|
|
268
|
+
* @category context
|
|
269
|
+
* @since 0.0.0
|
|
270
|
+
*/
|
|
271
|
+
|
|
272
|
+
export class PublicClientSource extends Context.Tag(
|
|
273
|
+
"@unionlabs/sdk/Evm/PublicClientSource",
|
|
274
|
+
)<PublicClientSource, Evm.PublicClient>() {
|
|
275
|
+
static Live = publicClientLayer(this);
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
/**
|
|
279
|
+
* @category context
|
|
280
|
+
* @since 0.0.0
|
|
281
|
+
*/
|
|
282
|
+
export class PublicClientDestination extends Context.Tag(
|
|
283
|
+
"@unionlabs/sdk/Evm/PublicClientDestination",
|
|
284
|
+
)<PublicClientDestination, Evm.PublicClient>() {
|
|
285
|
+
static Live = publicClientLayer(this);
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
/**
|
|
289
|
+
* A neutral public client that can be used for general-purpose operations
|
|
290
|
+
* that don't specifically target source or destination chains
|
|
291
|
+
*
|
|
292
|
+
* @category context
|
|
293
|
+
* @since 0.0.0
|
|
294
|
+
*/
|
|
295
|
+
export class PublicClient extends Context.Tag(
|
|
296
|
+
"@unionlabs/sdk-evm/Evm/PublicClient",
|
|
297
|
+
)<PublicClient, Evm.PublicClient>() {
|
|
298
|
+
static Live = publicClientLayer(this);
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
/**
|
|
302
|
+
* A wallet client that can be used for signing transactions
|
|
303
|
+
*
|
|
304
|
+
* @category context
|
|
305
|
+
* @since 0.0.0
|
|
306
|
+
*/
|
|
307
|
+
export class WalletClient extends Context.Tag(
|
|
308
|
+
"@unionlabs/sdk/Evm/WalletClient",
|
|
309
|
+
)<WalletClient, Evm.WalletClient>() {
|
|
310
|
+
static Live = walletClientLayer(this);
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
/**
|
|
314
|
+
* @category errors
|
|
315
|
+
* @since 0.0.0
|
|
316
|
+
*/
|
|
317
|
+
export class ReadContractError extends Data.TaggedError(
|
|
318
|
+
"@unionlabs/sdk/Evm/ReadContractError",
|
|
319
|
+
)<{
|
|
320
|
+
cause: ReadContractErrorType;
|
|
321
|
+
}> {}
|
|
322
|
+
|
|
323
|
+
/**
|
|
324
|
+
* @category errors
|
|
325
|
+
* @since 0.0.0
|
|
326
|
+
*/
|
|
327
|
+
export class WriteContractError extends Data.TaggedError(
|
|
328
|
+
"@unionlabs/sdk/Evm/WriteContractError",
|
|
329
|
+
)<{
|
|
330
|
+
cause: WriteContractErrorType;
|
|
331
|
+
}> {}
|
|
332
|
+
|
|
333
|
+
/**
|
|
334
|
+
* @category errors
|
|
335
|
+
* @since 0.0.0
|
|
336
|
+
*/
|
|
337
|
+
export class SimulateContractError extends Data.TaggedError(
|
|
338
|
+
"@unionlabs/sdk/Evm/SimulateContractError",
|
|
339
|
+
)<{
|
|
340
|
+
cause: SimulateContractErrorType;
|
|
341
|
+
}> {}
|
|
342
|
+
|
|
343
|
+
/**
|
|
344
|
+
* @category errors
|
|
345
|
+
* @since 0.0.0
|
|
346
|
+
*/
|
|
347
|
+
export class CreatePublicClientError extends Data.TaggedError(
|
|
348
|
+
"@unionlabs/sdk/Evm/CreatePublicClientError",
|
|
349
|
+
)<{
|
|
350
|
+
cause: CreatePublicClientErrorType;
|
|
351
|
+
}> {}
|
|
352
|
+
|
|
353
|
+
/**
|
|
354
|
+
* @category errors
|
|
355
|
+
* @since 0.0.0
|
|
356
|
+
*/
|
|
357
|
+
export class CreateWalletClientError extends Data.TaggedError(
|
|
358
|
+
"@unionlabs/sdk/Evm/CreateWalletClientError",
|
|
359
|
+
)<{
|
|
360
|
+
cause: CreateWalletClientErrorType;
|
|
361
|
+
}> {}
|
|
File without changes
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import * as Context from "effect/Context";
|
|
2
|
+
import * as Effect from "effect/Effect";
|
|
3
|
+
import type * as Client from "../PublicClient.js";
|
|
4
|
+
|
|
5
|
+
/** @internal */
|
|
6
|
+
export const TypeId: Client.TypeId = Symbol.for(
|
|
7
|
+
"@unionlabs/payments/PublicClient",
|
|
8
|
+
) as Client.TypeId;
|
|
9
|
+
|
|
10
|
+
/** @internal */
|
|
11
|
+
export const clientTag = Context.GenericTag<Client.PublicClient>(
|
|
12
|
+
"@unionlabs/payments/PublicClient",
|
|
13
|
+
);
|
|
14
|
+
|
|
15
|
+
/** @internal */
|
|
16
|
+
export function make({
|
|
17
|
+
getLatestHeight,
|
|
18
|
+
getLatestBlockNumber,
|
|
19
|
+
readBalance,
|
|
20
|
+
readBalanceAtHeight,
|
|
21
|
+
getLightClientAddress,
|
|
22
|
+
getStateRootIndex,
|
|
23
|
+
getConsensusState,
|
|
24
|
+
getIbcHandlerAddress,
|
|
25
|
+
getCounterparty,
|
|
26
|
+
getProof,
|
|
27
|
+
waitForBlock,
|
|
28
|
+
}: Client.PublicClient.MakeOptions): Effect.Effect<
|
|
29
|
+
Client.PublicClient,
|
|
30
|
+
never,
|
|
31
|
+
never
|
|
32
|
+
> {
|
|
33
|
+
return Effect.gen(function* () {
|
|
34
|
+
const client: Client.PublicClient = Object.assign(
|
|
35
|
+
{},
|
|
36
|
+
{
|
|
37
|
+
[TypeId as Client.TypeId]: TypeId as Client.TypeId,
|
|
38
|
+
safe: undefined as any,
|
|
39
|
+
getLatestHeight,
|
|
40
|
+
getLatestBlockNumber,
|
|
41
|
+
readBalance,
|
|
42
|
+
readBalanceAtHeight,
|
|
43
|
+
getLightClientAddress,
|
|
44
|
+
getStateRootIndex,
|
|
45
|
+
getConsensusState,
|
|
46
|
+
getIbcHandlerAddress,
|
|
47
|
+
getCounterparty,
|
|
48
|
+
getProof,
|
|
49
|
+
waitForBlock,
|
|
50
|
+
},
|
|
51
|
+
);
|
|
52
|
+
|
|
53
|
+
(client as any).safe = client;
|
|
54
|
+
|
|
55
|
+
return client;
|
|
56
|
+
});
|
|
57
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import * as Context from "effect/Context";
|
|
2
|
+
import * as Effect from "effect/Effect";
|
|
3
|
+
import type * as Client from "../WalletClient.js";
|
|
4
|
+
|
|
5
|
+
/** @internal */
|
|
6
|
+
export const TypeId: Client.TypeId = Symbol.for(
|
|
7
|
+
"@unionlabs/payments/WalletClient",
|
|
8
|
+
) as Client.TypeId;
|
|
9
|
+
|
|
10
|
+
/** @internal */
|
|
11
|
+
export const clientTag = Context.GenericTag<Client.WalletClient>(
|
|
12
|
+
"@unionlabs/payments/WalletClient",
|
|
13
|
+
);
|
|
14
|
+
|
|
15
|
+
/** @internal */
|
|
16
|
+
export function make({
|
|
17
|
+
sign,
|
|
18
|
+
submit,
|
|
19
|
+
approveZAssetToSpendErc20,
|
|
20
|
+
updateLoopbackClient,
|
|
21
|
+
depositUnderlyingZAsset,
|
|
22
|
+
transferZAsset,
|
|
23
|
+
prepareDeposit,
|
|
24
|
+
prepareRedemption,
|
|
25
|
+
signAndSubmit,
|
|
26
|
+
}: Client.WalletClient.MakeOptions): Effect.Effect<
|
|
27
|
+
Client.WalletClient,
|
|
28
|
+
never,
|
|
29
|
+
never
|
|
30
|
+
> {
|
|
31
|
+
return Effect.gen(function* () {
|
|
32
|
+
const client: Client.WalletClient = Object.assign(
|
|
33
|
+
{},
|
|
34
|
+
{
|
|
35
|
+
[TypeId as Client.TypeId]: TypeId as Client.TypeId,
|
|
36
|
+
sign,
|
|
37
|
+
submit,
|
|
38
|
+
approveZAssetToSpendErc20,
|
|
39
|
+
updateLoopbackClient,
|
|
40
|
+
depositUnderlyingZAsset,
|
|
41
|
+
transferZAsset,
|
|
42
|
+
prepareDeposit,
|
|
43
|
+
prepareRedemption,
|
|
44
|
+
signAndSubmit,
|
|
45
|
+
},
|
|
46
|
+
);
|
|
47
|
+
|
|
48
|
+
return client;
|
|
49
|
+
});
|
|
50
|
+
}
|