Skip to content

Commit

Permalink
Upgrade AppKit CDN to v1.2.1
Browse files Browse the repository at this point in the history
  • Loading branch information
skibitsky committed Nov 4, 2024
1 parent 1c08320 commit 8ad4251
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 54 deletions.
78 changes: 30 additions & 48 deletions src/Reown.AppKit.Unity/Plugins/AppKit.jslib
Original file line number Diff line number Diff line change
Expand Up @@ -65,61 +65,42 @@ mergeInto(LibraryManager.library, {
const projectId = parameters.projectId;
const metadata = parameters.metadata;
const chains = parameters.chains;
const includeWalletIds = parameters.includeWalletIds;
const excludeWalletIds = parameters.excludeWalletIds;

const enableOnramp = parameters.enableOnramp;
const enableAnalytics = parameters.enableAnalytics;
const enableCoinbaseWallet = parameters.enableCoinbaseWallet;

// Load the scripts and initialize the configuration
import("https://cdn.jsdelivr.net/npm/@web3modal/[email protected]/dist/wagmi.js").then(CDNW3M => {
import("https://cdn.jsdelivr.net/npm/@reown/[email protected]/dist/appkit.js").then(CDNW3M => {
console.log("CDNW3M", CDNW3M)
const WagmiCore = CDNW3M['WagmiCore'];
const Chains = CDNW3M['Chains'];
const Web3modal = CDNW3M['Web3modal'];
const Connectors = CDNW3M['Connectors'];

const createWeb3Modal = Web3modal['createWeb3Modal'];
const coinbaseWallet = Connectors['coinbaseWallet'];
const walletConnect = Connectors['walletConnect'];
const injected = Connectors['injected'];
const createConfig = WagmiCore['createConfig'];
const http = WagmiCore['http'];
const reconnect = WagmiCore['reconnect'];

const chainsMap = chains.map(chainName => Chains[chainName]);

const config = createConfig({
chains: chainsMap,
transports: chains.reduce((acc, chainName) => {
acc[Chains[chainName].id] = http();
return acc;
}, {}),
connectors: [
walletConnect({projectId, metadata, showQrModal: false}),
injected({shimDisconnect: true}),
...(enableCoinbaseWallet ? [coinbaseWallet({
appName: metadata.name,
appLogoUrl: metadata.icons[0]
})] : [])
]
});
const Chains = CDNW3M['networks'];
const WagmiAdapter = CDNW3M['WagmiAdapter'];
const reconnect = WagmiCore['reconnect']
const createAppKit = CDNW3M['createAppKit']

const chainsArr = chains.map(chainName => Chains[chainName]);

const wagmiAdapter = new WagmiAdapter({
networks: chainsArr,
projectId
})

const modal = createAppKit({
adapters: [wagmiAdapter],
networks: chainsArr,
metadata: metadata,
projectId,
features: {
analytics: enableAnalytics,
onramp: enableOnramp
}
})

reconnect(config);
reconnect(wagmiAdapter.wagmiConfig);

const modal = createWeb3Modal({
wagmiConfig: config,
projectId,
enableOnramp: enableOnramp,
enableAnalytics: enableAnalytics,
disableAppend: true,
includeWalletIds: includeWalletIds,
excludeWalletIds: excludeWalletIds
});

// Store the configuration and modal globally
_appKitConfig = {
config: config,
config: wagmiAdapter.wagmiConfig,
modal: modal,
wagmiCore: WagmiCore
};
Expand Down Expand Up @@ -220,9 +201,10 @@ mergeInto(LibraryManager.library, {
ModalSubscribeState__deps: ['$SerializeJson'],
ModalSubscribeState: function (callbackPtr) {
_appKitConfig.modal.subscribeState(newState => {
const newStateStr = stringToNewUTF8(SerializeJson(newState));
{{{makeDynCall('vi', 'callbackPtr')}}}(newStateStr);
_free(newStateStr);
const json = SerializeJson(newState);
const dataStr = stringToNewUTF8(json);
{{{makeDynCall('vi', 'callbackPtr')}}}(dataStr);
_free(dataStr);
});
},
});
5 changes: 0 additions & 5 deletions src/Reown.AppKit.Unity/Runtime/WebGL/Modal/ModalInterop.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,15 @@
using System.Threading.Tasks;
using AOT;
using Newtonsoft.Json;
using Reown.AppKit.Unity.WebGl.Wagmi;

namespace Reown.AppKit.Unity.WebGl.Modal
{
public static class ModalInterop
{
#if UNITY_WEBGL
[DllImport("__Internal")]
#endif
private static extern void ModalCall(int id, string methodName, string payload, InteropService.ExternalMethodCallback callback);

#if UNITY_WEBGL
[DllImport("__Internal")]
#endif
private static extern void ModalSubscribeState(Action<string> callback);

public static event Action<ModalState> StateChanged;
Expand Down
3 changes: 2 additions & 1 deletion src/Reown.AppKit.Unity/Runtime/WebGL/Modal/ModalModel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@ namespace Reown.AppKit.Unity.WebGl.Modal
public class ModalState
{
public bool open;
public int selectedNetworkId;
public string selectedNetworkId;
public bool loading;
}

[Serializable]
Expand Down

0 comments on commit 8ad4251

Please sign in to comment.