Skip to content

Commit 975f961

Browse files
authored
Merge pull request #295 from immutable/feature/sdk-3286-transak-link
[sdk-3286] add marketplace package to support transak link
2 parents b64f817 + a63bf2f commit 975f961

File tree

8 files changed

+145
-4
lines changed

8 files changed

+145
-4
lines changed

.github/workflows/update-version.yml

+10-4
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,10 @@ jobs:
4949
- name: Update Version in package.json
5050
id: replace_version
5151
run: |
52-
FILE=./src/Packages/Passport/package.json
52+
PASSPORT_FILE=./src/Packages/Passport/package.json
53+
MARKETPLACE_FILE=./src/Packages/Marketplace/package.json
5354
54-
CURRENT_VERSION=$(jq -r '.version' $FILE)
55+
CURRENT_VERSION=$(jq -r '.version' $PASSPORT_FILE)
5556
IFS='.' read -r MAJOR MINOR PATCH <<< "$CURRENT_VERSION"
5657
5758
# Increment version based on UPGRADE_TYPE
@@ -75,9 +76,14 @@ jobs:
7576
esac
7677
7778
NEW_VERSION="$MAJOR.$MINOR.$PATCH"
78-
jq --arg version "$NEW_VERSION" '.version = $version' $FILE > tmp.$$.json && mv tmp.$$.json $FILE
79-
echo "Updated version in package.json from $CURRENT_VERSION to $NEW_VERSION"
8079
80+
# Update Passport package.json
81+
jq --arg version "$NEW_VERSION" '.version = $version' $PASSPORT_FILE > tmp.$$.json && mv tmp.$$.json $PASSPORT_FILE
82+
echo "Updated version in Passport package.json from $CURRENT_VERSION to $NEW_VERSION"
83+
84+
# Update Marketplace package.json
85+
jq --arg version "$NEW_VERSION" '.version = $version' $MARKETPLACE_FILE > tmp.$$.json && mv tmp.$$.json $MARKETPLACE_FILE
86+
echo "Updated version in Marketplace package.json from $CURRENT_VERSION to $NEW_VERSION"
8187
echo "version=$NEW_VERSION" >> "$GITHUB_OUTPUT"
8288
8389
- name: Update SDK Version in SdkVersionInfoHelpers.cs
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
"name": "Immutable.Marketplace",
3+
"rootNamespace": "Immutable.Marketplace",
4+
"references": [
5+
"UniTask"
6+
],
7+
"includePlatforms": [],
8+
"excludePlatforms": [],
9+
"allowUnsafeCode": false,
10+
"overrideReferences": false,
11+
"precompiledReferences": [],
12+
"autoReferenced": true,
13+
"defineConstraints": [],
14+
"versionDefines": [],
15+
"noEngineReferences": false
16+
}

src/Packages/Marketplace/Immutable.Marketplace.asmdef.meta

+7
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/Packages/Marketplace/OnRamp.meta

+8
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
+67
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
using Cysharp.Threading.Tasks;
5+
using UnityEngine;
6+
7+
namespace Immutable.Marketplace.OnRamp
8+
{
9+
public class OnRamp
10+
{
11+
private readonly string _environment;
12+
private readonly string _email;
13+
private readonly string _address;
14+
private static readonly Dictionary<string, string> TransakBaseUrls = new Dictionary<string, string>
15+
{
16+
{ "sandbox", "https://global-stg.transak.com" },
17+
{ "production", "https://global.transak.com/" }
18+
};
19+
20+
private static readonly Dictionary<string, string> TransakApiKeys = new Dictionary<string, string>
21+
{
22+
{ "sandbox", "d14b44fb-0f84-4db5-affb-e044040d724b" }, // This can be hardcoded as it is a public API key
23+
{ "production", "ad1bca70-d917-4628-bb0f-5609537498bc" }
24+
};
25+
26+
public OnRamp(string environment, string email, string address)
27+
{
28+
_environment = environment;
29+
_email = email;
30+
_address = address;
31+
}
32+
33+
public async UniTask<string> GetLink(
34+
string fiatCurrency = "USD",
35+
string defaultFiatAmount = "50",
36+
string defaultCryptoCurrency = "IMX",
37+
string networks = "immutablezkevm",
38+
bool disableWalletAddressForm = true
39+
)
40+
{
41+
string baseUrl = TransakBaseUrls[_environment];
42+
string apiKey = TransakApiKeys[_environment];
43+
44+
var queryParams = new Dictionary<string, string>
45+
{
46+
{"apiKey", apiKey},
47+
{"network", networks},
48+
{"defaultPaymentMethod", "credit_debit_card"},
49+
{"disablePaymentMethods", ""},
50+
{"productsAvailed", "buy"},
51+
{"exchangeScreenTitle", "Buy"},
52+
{"themeColor", "0D0D0D"},
53+
{"defaultCryptoCurrency", defaultCryptoCurrency},
54+
{"email", Uri.EscapeDataString(_email)},
55+
{"isAutoFillUserData", "true"},
56+
{"disableWalletAddressForm", disableWalletAddressForm.ToString().ToLower()},
57+
{"defaultFiatAmount", defaultFiatAmount},
58+
{"defaultFiatCurrency", fiatCurrency},
59+
{"walletAddress", _address},
60+
{"cryptoCurrencyList", "imx,eth,usdc"}
61+
};
62+
63+
string queryString = string.Join("&", queryParams.Select(kvp => $"{kvp.Key}={Uri.EscapeDataString(kvp.Value)}").ToArray());
64+
return $"{baseUrl}?{queryString}";
65+
}
66+
}
67+
}

src/Packages/Marketplace/OnRamp/OnRamp.cs.meta

+11
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/Packages/Marketplace/package.json

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
{
2+
"name": "com.immutable.marketplace",
3+
"version": "1.26.0",
4+
"description": "Marketplace package for the Immutable SDK for Unity",
5+
"displayName": "Immutable Marketplace",
6+
"author": {
7+
"name": "Immutable",
8+
"url": "https://immutable.com"
9+
},
10+
"dependencies": {
11+
"com.cysharp.unitask": "2.3.3"
12+
},
13+
"keywords": [
14+
"unity",
15+
"immutable",
16+
"Marketplace"
17+
],
18+
"unity": "2021.3"
19+
}

src/Packages/Marketplace/package.json.meta

+7
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)