diff --git a/.github/workflows/update-version.yml b/.github/workflows/update-version.yml index 971bb1758..6f48d0d75 100644 --- a/.github/workflows/update-version.yml +++ b/.github/workflows/update-version.yml @@ -49,9 +49,10 @@ jobs: - name: Update Version in package.json id: replace_version run: | - FILE=./src/Packages/Passport/package.json + PASSPORT_FILE=./src/Packages/Passport/package.json + MARKETPLACE_FILE=./src/Packages/Marketplace/package.json - CURRENT_VERSION=$(jq -r '.version' $FILE) + CURRENT_VERSION=$(jq -r '.version' $PASSPORT_FILE) IFS='.' read -r MAJOR MINOR PATCH <<< "$CURRENT_VERSION" # Increment version based on UPGRADE_TYPE @@ -75,9 +76,14 @@ jobs: esac NEW_VERSION="$MAJOR.$MINOR.$PATCH" - jq --arg version "$NEW_VERSION" '.version = $version' $FILE > tmp.$$.json && mv tmp.$$.json $FILE - echo "Updated version in package.json from $CURRENT_VERSION to $NEW_VERSION" + # Update Passport package.json + jq --arg version "$NEW_VERSION" '.version = $version' $PASSPORT_FILE > tmp.$$.json && mv tmp.$$.json $PASSPORT_FILE + echo "Updated version in Passport package.json from $CURRENT_VERSION to $NEW_VERSION" + + # Update Marketplace package.json + jq --arg version "$NEW_VERSION" '.version = $version' $MARKETPLACE_FILE > tmp.$$.json && mv tmp.$$.json $MARKETPLACE_FILE + echo "Updated version in Marketplace package.json from $CURRENT_VERSION to $NEW_VERSION" echo "version=$NEW_VERSION" >> "$GITHUB_OUTPUT" - name: Update SDK Version in SdkVersionInfoHelpers.cs diff --git a/src/Packages/Marketplace/Immutable.Marketplace.asmdef b/src/Packages/Marketplace/Immutable.Marketplace.asmdef new file mode 100644 index 000000000..22613b389 --- /dev/null +++ b/src/Packages/Marketplace/Immutable.Marketplace.asmdef @@ -0,0 +1,16 @@ +{ + "name": "Immutable.Marketplace", + "rootNamespace": "Immutable.Marketplace", + "references": [ + "UniTask" + ], + "includePlatforms": [], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [], + "noEngineReferences": false +} \ No newline at end of file diff --git a/src/Packages/Marketplace/Immutable.Marketplace.asmdef.meta b/src/Packages/Marketplace/Immutable.Marketplace.asmdef.meta new file mode 100644 index 000000000..660cfdedb --- /dev/null +++ b/src/Packages/Marketplace/Immutable.Marketplace.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c7a369c5a572d4b6b84cab646212889e +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/Packages/Marketplace/OnRamp.meta b/src/Packages/Marketplace/OnRamp.meta new file mode 100644 index 000000000..1397a22e1 --- /dev/null +++ b/src/Packages/Marketplace/OnRamp.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ddb0de63ab0184d7fb2cf71a08124a02 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/Packages/Marketplace/OnRamp/OnRamp.cs b/src/Packages/Marketplace/OnRamp/OnRamp.cs new file mode 100644 index 000000000..3c28b421f --- /dev/null +++ b/src/Packages/Marketplace/OnRamp/OnRamp.cs @@ -0,0 +1,67 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using Cysharp.Threading.Tasks; +using UnityEngine; + +namespace Immutable.Marketplace.OnRamp +{ + public class OnRamp + { + private readonly string _environment; + private readonly string _email; + private readonly string _address; + private static readonly Dictionary TransakBaseUrls = new Dictionary + { + { "sandbox", "https://global-stg.transak.com" }, + { "production", "https://global.transak.com/" } + }; + + private static readonly Dictionary TransakApiKeys = new Dictionary + { + { "sandbox", "d14b44fb-0f84-4db5-affb-e044040d724b" }, // This can be hardcoded as it is a public API key + { "production", "ad1bca70-d917-4628-bb0f-5609537498bc" } + }; + + public OnRamp(string environment, string email, string address) + { + _environment = environment; + _email = email; + _address = address; + } + + public async UniTask GetLink( + string fiatCurrency = "USD", + string defaultFiatAmount = "50", + string defaultCryptoCurrency = "IMX", + string networks = "immutablezkevm", + bool disableWalletAddressForm = true + ) + { + string baseUrl = TransakBaseUrls[_environment]; + string apiKey = TransakApiKeys[_environment]; + + var queryParams = new Dictionary + { + {"apiKey", apiKey}, + {"network", networks}, + {"defaultPaymentMethod", "credit_debit_card"}, + {"disablePaymentMethods", ""}, + {"productsAvailed", "buy"}, + {"exchangeScreenTitle", "Buy"}, + {"themeColor", "0D0D0D"}, + {"defaultCryptoCurrency", defaultCryptoCurrency}, + {"email", Uri.EscapeDataString(_email)}, + {"isAutoFillUserData", "true"}, + {"disableWalletAddressForm", disableWalletAddressForm.ToString().ToLower()}, + {"defaultFiatAmount", defaultFiatAmount}, + {"defaultFiatCurrency", fiatCurrency}, + {"walletAddress", _address}, + {"cryptoCurrencyList", "imx,eth,usdc"} + }; + + string queryString = string.Join("&", queryParams.Select(kvp => $"{kvp.Key}={Uri.EscapeDataString(kvp.Value)}").ToArray()); + return $"{baseUrl}?{queryString}"; + } + } +} \ No newline at end of file diff --git a/src/Packages/Marketplace/OnRamp/OnRamp.cs.meta b/src/Packages/Marketplace/OnRamp/OnRamp.cs.meta new file mode 100644 index 000000000..3efcaadd4 --- /dev/null +++ b/src/Packages/Marketplace/OnRamp/OnRamp.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ebb99edbcb8c04a90abe7d962fef8a3d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/Packages/Marketplace/package.json b/src/Packages/Marketplace/package.json new file mode 100644 index 000000000..5d5ad25c3 --- /dev/null +++ b/src/Packages/Marketplace/package.json @@ -0,0 +1,19 @@ +{ + "name": "com.immutable.marketplace", + "version": "1.26.0", + "description": "Marketplace package for the Immutable SDK for Unity", + "displayName": "Immutable Marketplace", + "author": { + "name": "Immutable", + "url": "https://immutable.com" + }, + "dependencies": { + "com.cysharp.unitask": "2.3.3" + }, + "keywords": [ + "unity", + "immutable", + "Marketplace" + ], + "unity": "2021.3" +} \ No newline at end of file diff --git a/src/Packages/Marketplace/package.json.meta b/src/Packages/Marketplace/package.json.meta new file mode 100644 index 000000000..8b4b6fe2b --- /dev/null +++ b/src/Packages/Marketplace/package.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4a4f5fed79b484dd19b5d58d6d6fc129 +PackageManifestImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: