@arcadiasol/sdk 1.1.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/README.md +139 -0
- package/dist/esm/api-client.d.ts +54 -0
- package/dist/esm/api-client.d.ts.map +1 -0
- package/dist/esm/errors.d.ts +51 -0
- package/dist/esm/errors.d.ts.map +1 -0
- package/dist/esm/index.d.ts +13 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +929 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/messaging.d.ts +33 -0
- package/dist/esm/messaging.d.ts.map +1 -0
- package/dist/esm/payment.d.ts +35 -0
- package/dist/esm/payment.d.ts.map +1 -0
- package/dist/esm/sdk.d.ts +73 -0
- package/dist/esm/sdk.d.ts.map +1 -0
- package/dist/esm/types.d.ts +136 -0
- package/dist/esm/types.d.ts.map +1 -0
- package/dist/esm/wallet.d.ts +48 -0
- package/dist/esm/wallet.d.ts.map +1 -0
- package/dist/umd/arcadia-game-sdk.js +949 -0
- package/dist/umd/arcadia-game-sdk.js.map +1 -0
- package/dist/umd/arcadia-game-sdk.min.js +1 -0
- package/examples/basic-integration.html +219 -0
- package/examples/payment-example.html +330 -0
- package/examples/wallet-example.html +298 -0
- package/package.json +53 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"arcadia-game-sdk.js","sources":["../../src/types.ts","../../src/errors.ts","../../src/messaging.ts","../../src/wallet.ts","../../src/payment.ts","../../src/api-client.ts","../../src/sdk.ts","../../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).ArcadiaGameSDK={})}(this,function(e){"use strict";var t;!function(e){e.INIT_REQUEST="INIT_REQUEST",e.GET_WALLET_ADDRESS="GET_WALLET_ADDRESS",e.PAYMENT_REQUEST="PAYMENT_REQUEST",e.GAME_READY="GAME_READY",e.INIT="INIT",e.WALLET_ADDRESS_RESPONSE="WALLET_ADDRESS_RESPONSE",e.WALLET_UPDATE="WALLET_UPDATE",e.PAYMENT_RESPONSE="PAYMENT_RESPONSE"}(t||(t={}));class s extends Error{constructor(e,t){super(e),this.code=t,this.name="ArcadiaSDKError",Object.setPrototypeOf(this,s.prototype)}}class a extends s{constructor(e="Wallet is not connected. Please connect your wallet in Arcadia."){super(e,"WALLET_NOT_CONNECTED"),this.name="WalletNotConnectedError",Object.setPrototypeOf(this,a.prototype)}}class i extends s{constructor(e="Payment failed",t){super(e,"PAYMENT_FAILED"),this.txSignature=t,this.name="PaymentFailedError",Object.setPrototypeOf(this,i.prototype)}}class n extends s{constructor(e="Request timed out. Please try again."){super(e,"TIMEOUT"),this.name="TimeoutError",Object.setPrototypeOf(this,n.prototype)}}class r extends s{constructor(e="Invalid SDK configuration"){super(e,"INVALID_CONFIG"),this.name="InvalidConfigError",Object.setPrototypeOf(this,r.prototype)}}class o extends s{constructor(e="This function only works when the game is running in an Arcadia iframe"){super(e,"NOT_IN_IFRAME"),this.name="NotInIframeError",Object.setPrototypeOf(this,o.prototype)}}class l extends s{constructor(e="Invalid payment amount. Amount must be greater than 0."){super(e,"INVALID_AMOUNT"),this.name="InvalidAmountError",Object.setPrototypeOf(this,l.prototype)}}class d extends s{constructor(e="Invalid token. Must be 'SOL' or 'USDC'."){super(e,"INVALID_TOKEN"),this.name="InvalidTokenError",Object.setPrototypeOf(this,d.prototype)}}class c{constructor(e="*",t=3e4){this.messageId=0,this.pendingRequests=new Map,this.messageListener=null,this.parentOrigin=e,this.timeout=t}init(){this.messageListener||(this.messageListener=e=>{this.handleMessage(e)},window.addEventListener("message",this.messageListener))}destroy(){this.messageListener&&(window.removeEventListener("message",this.messageListener),this.messageListener=null),this.pendingRequests.forEach(e=>{clearTimeout(e.timeout),e.reject(new Error("Message handler destroyed"))}),this.pendingRequests.clear()}sendMessage(e,t){return new Promise((s,a)=>{const i=++this.messageId,r=setTimeout(()=>{this.pendingRequests.delete(i),a(new n(`Request ${e} timed out after ${this.timeout}ms`))},this.timeout);this.pendingRequests.set(i,{resolve:e=>{clearTimeout(r),s(e)},reject:e=>{clearTimeout(r),a(e)},timeout:r});const o={type:e,id:i,payload:t};window.parent?window.parent.postMessage(o,this.parentOrigin):(clearTimeout(r),this.pendingRequests.delete(i),a(new Error("No parent window found")))})}handleMessage(e){if("*"!==this.parentOrigin&&e.origin!==this.parentOrigin)return;const s=e.data;if(void 0!==s.id){const e=this.pendingRequests.get(s.id);if(e)if(this.pendingRequests.delete(s.id),s.type===t.PAYMENT_RESPONSE){const t=s.payload;t.success?e.resolve(t):e.reject(new Error(t.error||"Payment failed"))}else s.type===t.WALLET_ADDRESS_RESPONSE||(s.type,t.INIT),e.resolve(s.payload)}}sendOneWay(e,t){const s={type:e,payload:t};window.parent&&window.parent.postMessage(s,this.parentOrigin)}}class h{constructor(e,t,s){this.walletAddress=null,this.walletConnected=!1,this.apiClient=null,this.walletChangeCallbacks=[],this.messageHandler=e,this.isIframe=t,this.apiClient=s||null}async getWalletAddress(){if(this.isIframe)try{const e=await this.messageHandler.sendMessage(t.GET_WALLET_ADDRESS);return this.walletAddress=e.walletAddress,this.walletConnected=e.connected,this.walletAddress}catch(e){return this.walletAddress=null,this.walletConnected=!1,null}else{if(!this.apiClient)throw new Error("API client not initialized. Ensure apiBaseURL is configured in SDK config.");try{const e=await this.apiClient.getWalletAddress();return this.walletAddress=e.walletAddress,this.walletConnected=e.connected,this.walletAddress}catch(e){return this.walletAddress=null,this.walletConnected=!1,null}}}async isWalletConnected(){if(this.walletAddress)return!0;return null!==await this.getWalletAddress()}onWalletChange(e){this.walletChangeCallbacks.push(e)}offWalletChange(e){const t=this.walletChangeCallbacks.indexOf(e);t>-1&&this.walletChangeCallbacks.splice(t,1)}updateWalletStatus(e){const t=this.walletAddress,s=this.walletConnected;this.walletAddress=e.address,this.walletConnected=e.connected,t===this.walletAddress&&s===this.walletConnected||this.walletChangeCallbacks.forEach(e=>{try{e(this.walletConnected,this.walletAddress)}catch(e){console.error("Error in wallet change callback:",e)}})}getCachedWalletAddress(){return this.walletAddress}getCachedConnectionStatus(){return this.walletConnected}clearCache(){this.walletAddress=null,this.walletConnected=!1}}class u{constructor(e,t,s,a,i){this.apiClient=null,this.gameId=e,this.isIframe=t,this.messageHandler=s,this.walletManager=a,this.apiClient=i||null}async payToPlay(e,s,n){this.validatePaymentParams(e,s);if(!await this.walletManager.isWalletConnected())throw new a;const r={amount:e,token:s,type:"pay_to_play",gameId:this.gameId,txSignature:n};if(this.isIframe)try{const e=await this.messageHandler.sendMessage(t.PAYMENT_REQUEST,r);if(!e.success)throw new i(e.error||"Payment failed",e.txSignature);if(!e.txSignature)throw new i("Payment succeeded but no transaction signature received");if(!e.amount||!e.token||!e.timestamp)throw new i("Payment succeeded but incomplete payment details received");return{success:!0,txSignature:e.txSignature,amount:e.amount,token:e.token,timestamp:e.timestamp,purchaseId:e.purchaseId,platformFee:e.platformFee,developerAmount:e.developerAmount}}catch(e){if(e instanceof i||e instanceof a)throw e;throw new i(e instanceof Error?e.message:"Payment failed")}else{if(!this.apiClient)throw new Error("API client not initialized. Ensure apiBaseURL is configured in SDK config.");if(!n)throw new i("Transaction signature is required for non-iframe payments. Please sign the transaction first and provide the signature.");try{const e=await this.apiClient.sendPaymentRequest(this.gameId,{...r,txSignature:n});if(!e.success)throw new i(e.error||"Payment failed",e.txSignature);if(!e.txSignature)throw new i("Payment succeeded but no transaction signature received");if(!e.amount||!e.token||!e.timestamp)throw new i("Payment succeeded but incomplete payment details received");return{success:!0,txSignature:e.txSignature,amount:e.amount,token:e.token,timestamp:e.timestamp,purchaseId:e.purchaseId,platformFee:e.platformFee,developerAmount:e.developerAmount}}catch(e){if(e instanceof i||e instanceof a)throw e;throw new i(e instanceof Error?e.message:"Payment failed")}}}async purchaseItem(e,s,n,r){if(this.validatePaymentParams(s,n),!e||"string"!=typeof e||0===e.trim().length)throw new Error("Item ID is required and must be a non-empty string");if(!await this.walletManager.isWalletConnected())throw new a;const o={amount:s,token:n,type:"in_game_purchase",gameId:this.gameId,itemId:e.trim(),txSignature:r};if(this.isIframe)try{const e=await this.messageHandler.sendMessage(t.PAYMENT_REQUEST,o);if(!e.success)throw new i(e.error||"Purchase failed",e.txSignature);if(!e.txSignature)throw new i("Purchase succeeded but no transaction signature received");if(!e.amount||!e.token||!e.timestamp)throw new i("Purchase succeeded but incomplete payment details received");return{success:!0,txSignature:e.txSignature,amount:e.amount,token:e.token,timestamp:e.timestamp,purchaseId:e.purchaseId,platformFee:e.platformFee,developerAmount:e.developerAmount}}catch(e){if(e instanceof i||e instanceof a)throw e;throw new i(e instanceof Error?e.message:"Purchase failed")}else{if(!this.apiClient)throw new Error("API client not initialized. Ensure apiBaseURL is configured in SDK config.");if(!r)throw new i("Transaction signature is required for non-iframe purchases. Please sign the transaction first and provide the signature.");try{const e=await this.apiClient.sendPaymentRequest(this.gameId,{...o,txSignature:r});if(!e.success)throw new i(e.error||"Purchase failed",e.txSignature);if(!e.txSignature)throw new i("Purchase succeeded but no transaction signature received");if(!e.amount||!e.token||!e.timestamp)throw new i("Purchase succeeded but incomplete payment details received");return{success:!0,txSignature:e.txSignature,amount:e.amount,token:e.token,timestamp:e.timestamp,purchaseId:e.purchaseId,platformFee:e.platformFee,developerAmount:e.developerAmount}}catch(e){if(e instanceof i||e instanceof a)throw e;throw new i(e instanceof Error?e.message:"Purchase failed")}}}validatePaymentParams(e,t){if("number"!=typeof e||isNaN(e)||e<=0)throw new l;if(!t||"string"!=typeof t||0===t.trim().length)throw new d}}class m{constructor(e){this.authToken=null,this.walletAddress=null,this.baseURL=e||this.detectBaseURL()}detectBaseURL(){if("undefined"!=typeof window&&window.ARCADIA_API_URL)return window.ARCADIA_API_URL;if("undefined"!=typeof window){const e=window.location.hostname;if(e.includes("arcadia"))return`${window.location.protocol}//${e}`}return"https://arcadia.com"}setAuthToken(e){this.authToken=e}setWalletAddress(e){this.walletAddress=e}async authenticateWithWallet(e,t,s){const a=await this.request("/api/auth/wallet/connect",{method:"POST",body:{walletAddress:e,signature:t,message:s}});return a.token&&(this.authToken=a.token),a}async getWalletAddress(){if(!this.authToken&&!this.walletAddress)return{walletAddress:null,connected:!1};if(this.walletAddress)return{walletAddress:this.walletAddress,connected:!0};try{const e=await this.request("/api/profile",{method:"GET"});if(e?.walletAddress)return this.walletAddress=e.walletAddress,{walletAddress:e.walletAddress,connected:!0}}catch(e){console.warn("Failed to fetch wallet address:",e)}return{walletAddress:null,connected:!1}}async sendPaymentRequest(e,t){const s="pay_to_play"===t.type?`/api/games/${e}/pay-to-play`:`/api/games/${e}/purchase-item`;return await this.request(s,{method:"POST",body:{amount:t.amount,token:t.token,txSignature:t.txSignature,itemId:t.itemId}})}async updatePlaytime(e,t,s){await this.request("/api/library",{method:"POST",body:{gameId:e,playtimeHours:t,status:s||"playing"}})}async updateOnlineStatus(e,t){await this.request("/api/online-status",{method:"POST",body:{isOnline:e,gameId:t}})}async request(e,t={}){const s=`${this.baseURL}${e}`,a={"Content-Type":"application/json",...t.headers};this.authToken&&(a.Authorization=`Bearer ${this.authToken}`);const i=await fetch(s,{method:t.method||"GET",headers:a,body:t.body?JSON.stringify(t.body):void 0});if(!i.ok){const e=await i.json().catch(()=>({error:"Request failed"}));throw new Error(e.error||`Request failed with status ${i.status}`)}return await i.json()}}class p{constructor(e){if(this.initialized=!1,this.apiClient=null,!e||!e.gameId||"string"!=typeof e.gameId||0===e.gameId.trim().length)throw new r("gameId is required and must be a non-empty string");this.config={gameId:e.gameId.trim(),parentOrigin:e.parentOrigin||"*",timeout:e.timeout||3e4},this.isIframe="undefined"!=typeof window&&window.self!==window.top,this.messageHandler=new c(this.config.parentOrigin,this.config.timeout),this.walletManager=new h(this.messageHandler,this.isIframe,this.apiClient),this.paymentManager=new u(this.config.gameId,this.isIframe,this.messageHandler,this.walletManager,this.apiClient),this.isIframe?(this.messageHandler.init(),this.setupMessageListener()):(this.apiClient=new m(this.config.apiBaseURL),this.config.authToken&&this.apiClient.setAuthToken(this.config.authToken),this.config.walletAddress&&this.apiClient.setWalletAddress(this.config.walletAddress))}async init(){if(!this.initialized)if(this.isIframe)try{const e=await this.messageHandler.sendMessage(t.INIT_REQUEST);e.wallet&&this.walletManager.updateWalletStatus(e.wallet),this.messageHandler.sendOneWay(t.GAME_READY),this.initialized=!0}catch(e){this.initialized=!0,console.warn("SDK initialization failed:",e)}else{if(!this.apiClient)throw new Error("API client not initialized. Ensure apiBaseURL is configured.");try{const e=await this.apiClient.getWalletAddress();this.walletManager.updateWalletStatus({connected:e.connected,address:e.walletAddress}),this.initialized=!0}catch(e){this.initialized=!0,console.warn("SDK API initialization failed:",e)}}}async getWalletAddress(){return this.walletManager.getWalletAddress()}async isWalletConnected(){return this.walletManager.isWalletConnected()}onWalletChange(e){this.walletManager.onWalletChange(e)}offWalletChange(e){this.walletManager.offWalletChange(e)}get payment(){return{payToPlay:(e,t)=>this.paymentManager.payToPlay(e,t),purchaseItem:(e,t,s)=>this.paymentManager.purchaseItem(e,t,s)}}getConfig(){return{...this.config}}isInIframe(){return this.isIframe}isInitialized(){return this.initialized}destroy(){this.messageHandler.destroy(),this.walletManager.clearCache(),this.initialized=!1}setupMessageListener(){window.addEventListener("message",e=>{if("*"!==this.config.parentOrigin&&e.origin!==this.config.parentOrigin)return;const s=e.data;if(s.type===t.WALLET_UPDATE&&s.payload){const e=s.payload;this.walletManager.updateWalletStatus(e)}})}}e.APIClient=m,e.ArcadiaSDK=p,e.ArcadiaSDKError=s,e.InvalidAmountError=l,e.InvalidConfigError=r,e.InvalidTokenError=d,e.NotInIframeError=o,e.PaymentFailedError=i,e.TimeoutError=n,e.WalletNotConnectedError=a,e.default=p,Object.defineProperty(e,"__esModule",{value:!0})});
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<title>Arcadia SDK - Basic Integration Example</title>
|
|
7
|
+
<style>
|
|
8
|
+
body {
|
|
9
|
+
font-family: Arial, sans-serif;
|
|
10
|
+
max-width: 800px;
|
|
11
|
+
margin: 50px auto;
|
|
12
|
+
padding: 20px;
|
|
13
|
+
background: #050814;
|
|
14
|
+
color: #fff;
|
|
15
|
+
}
|
|
16
|
+
.container {
|
|
17
|
+
background: #1a1f2e;
|
|
18
|
+
padding: 30px;
|
|
19
|
+
border-radius: 8px;
|
|
20
|
+
border: 1px solid #2a2f3e;
|
|
21
|
+
}
|
|
22
|
+
h1 {
|
|
23
|
+
color: #1DA8FF;
|
|
24
|
+
margin-top: 0;
|
|
25
|
+
}
|
|
26
|
+
.status {
|
|
27
|
+
padding: 15px;
|
|
28
|
+
margin: 15px 0;
|
|
29
|
+
border-radius: 4px;
|
|
30
|
+
background: #2a2f3e;
|
|
31
|
+
}
|
|
32
|
+
.status.success {
|
|
33
|
+
background: #0a5d2e;
|
|
34
|
+
border: 1px solid #0d7a3d;
|
|
35
|
+
}
|
|
36
|
+
.status.error {
|
|
37
|
+
background: #5d0a0a;
|
|
38
|
+
border: 1px solid #7a0d0d;
|
|
39
|
+
}
|
|
40
|
+
.status.info {
|
|
41
|
+
background: #1a3a5d;
|
|
42
|
+
border: 1px solid #1d4a7a;
|
|
43
|
+
}
|
|
44
|
+
button {
|
|
45
|
+
background: #1DA8FF;
|
|
46
|
+
color: white;
|
|
47
|
+
border: none;
|
|
48
|
+
padding: 12px 24px;
|
|
49
|
+
border-radius: 4px;
|
|
50
|
+
cursor: pointer;
|
|
51
|
+
font-size: 16px;
|
|
52
|
+
margin: 5px;
|
|
53
|
+
}
|
|
54
|
+
button:hover {
|
|
55
|
+
background: #0d8fdf;
|
|
56
|
+
}
|
|
57
|
+
button:disabled {
|
|
58
|
+
background: #555;
|
|
59
|
+
cursor: not-allowed;
|
|
60
|
+
}
|
|
61
|
+
code {
|
|
62
|
+
background: #050814;
|
|
63
|
+
padding: 2px 6px;
|
|
64
|
+
border-radius: 3px;
|
|
65
|
+
font-family: 'Courier New', monospace;
|
|
66
|
+
}
|
|
67
|
+
.wallet-address {
|
|
68
|
+
word-break: break-all;
|
|
69
|
+
font-family: monospace;
|
|
70
|
+
background: #050814;
|
|
71
|
+
padding: 10px;
|
|
72
|
+
border-radius: 4px;
|
|
73
|
+
margin: 10px 0;
|
|
74
|
+
}
|
|
75
|
+
</style>
|
|
76
|
+
</head>
|
|
77
|
+
<body>
|
|
78
|
+
<div class="container">
|
|
79
|
+
<h1>Arcadia SDK - Basic Integration</h1>
|
|
80
|
+
|
|
81
|
+
<div id="status" class="status info">
|
|
82
|
+
Initializing SDK...
|
|
83
|
+
</div>
|
|
84
|
+
|
|
85
|
+
<div>
|
|
86
|
+
<h2>Wallet Information</h2>
|
|
87
|
+
<p><strong>Connected:</strong> <span id="connected">Checking...</span></p>
|
|
88
|
+
<p><strong>Wallet Address:</strong></p>
|
|
89
|
+
<div id="walletAddress" class="wallet-address">Not available</div>
|
|
90
|
+
</div>
|
|
91
|
+
|
|
92
|
+
<div>
|
|
93
|
+
<h2>Actions</h2>
|
|
94
|
+
<button id="getWalletBtn" onclick="getWalletAddress()">Get Wallet Address</button>
|
|
95
|
+
<button id="checkConnectionBtn" onclick="checkConnection()">Check Connection</button>
|
|
96
|
+
</div>
|
|
97
|
+
|
|
98
|
+
<div>
|
|
99
|
+
<h2>Code Example</h2>
|
|
100
|
+
<pre style="background: #050814; padding: 15px; border-radius: 4px; overflow-x: auto;"><code>// Initialize SDK
|
|
101
|
+
const arcadia = new ArcadiaGameSDK({
|
|
102
|
+
gameId: 'example-game',
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
await arcadia.init();
|
|
106
|
+
|
|
107
|
+
// Get wallet address
|
|
108
|
+
const walletAddress = await arcadia.getWalletAddress();
|
|
109
|
+
|
|
110
|
+
if (!walletAddress) {
|
|
111
|
+
console.log('Wallet not connected');
|
|
112
|
+
} else {
|
|
113
|
+
console.log('Wallet address:', walletAddress);
|
|
114
|
+
// Use wallet address as user ID
|
|
115
|
+
// Link all save data to this address
|
|
116
|
+
}</code></pre>
|
|
117
|
+
</div>
|
|
118
|
+
</div>
|
|
119
|
+
|
|
120
|
+
<!-- Load SDK from CDN -->
|
|
121
|
+
<script src="../dist/umd/arcadia-game-sdk.js"></script>
|
|
122
|
+
|
|
123
|
+
<script>
|
|
124
|
+
let arcadia;
|
|
125
|
+
|
|
126
|
+
// Initialize SDK
|
|
127
|
+
async function initSDK() {
|
|
128
|
+
try {
|
|
129
|
+
const statusEl = document.getElementById('status');
|
|
130
|
+
statusEl.textContent = 'Initializing SDK...';
|
|
131
|
+
statusEl.className = 'status info';
|
|
132
|
+
|
|
133
|
+
arcadia = new ArcadiaGameSDK({
|
|
134
|
+
gameId: 'example-game',
|
|
135
|
+
});
|
|
136
|
+
|
|
137
|
+
await arcadia.init();
|
|
138
|
+
|
|
139
|
+
statusEl.textContent = 'SDK initialized successfully!';
|
|
140
|
+
statusEl.className = 'status success';
|
|
141
|
+
|
|
142
|
+
// Set up wallet change listener
|
|
143
|
+
arcadia.onWalletChange((connected, address) => {
|
|
144
|
+
updateWalletDisplay(connected, address);
|
|
145
|
+
});
|
|
146
|
+
|
|
147
|
+
// Get initial wallet status
|
|
148
|
+
await getWalletAddress();
|
|
149
|
+
} catch (error) {
|
|
150
|
+
const statusEl = document.getElementById('status');
|
|
151
|
+
statusEl.textContent = 'SDK initialization failed: ' + error.message;
|
|
152
|
+
statusEl.className = 'status error';
|
|
153
|
+
console.error('SDK init error:', error);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
// Get wallet address
|
|
158
|
+
async function getWalletAddress() {
|
|
159
|
+
try {
|
|
160
|
+
const statusEl = document.getElementById('status');
|
|
161
|
+
statusEl.textContent = 'Fetching wallet address...';
|
|
162
|
+
statusEl.className = 'status info';
|
|
163
|
+
|
|
164
|
+
const address = await arcadia.getWalletAddress();
|
|
165
|
+
updateWalletDisplay(address !== null, address);
|
|
166
|
+
|
|
167
|
+
if (address) {
|
|
168
|
+
statusEl.textContent = 'Wallet address retrieved successfully!';
|
|
169
|
+
statusEl.className = 'status success';
|
|
170
|
+
} else {
|
|
171
|
+
statusEl.textContent = 'Wallet not connected. Please connect your wallet in Arcadia.';
|
|
172
|
+
statusEl.className = 'status error';
|
|
173
|
+
}
|
|
174
|
+
} catch (error) {
|
|
175
|
+
const statusEl = document.getElementById('status');
|
|
176
|
+
statusEl.textContent = 'Error: ' + error.message;
|
|
177
|
+
statusEl.className = 'status error';
|
|
178
|
+
console.error('Get wallet error:', error);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
// Check connection
|
|
183
|
+
async function checkConnection() {
|
|
184
|
+
try {
|
|
185
|
+
const statusEl = document.getElementById('status');
|
|
186
|
+
statusEl.textContent = 'Checking connection...';
|
|
187
|
+
statusEl.className = 'status info';
|
|
188
|
+
|
|
189
|
+
const connected = await arcadia.isWalletConnected();
|
|
190
|
+
|
|
191
|
+
if (connected) {
|
|
192
|
+
statusEl.textContent = 'Wallet is connected!';
|
|
193
|
+
statusEl.className = 'status success';
|
|
194
|
+
} else {
|
|
195
|
+
statusEl.textContent = 'Wallet is not connected.';
|
|
196
|
+
statusEl.className = 'status error';
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
updateWalletDisplay(connected, null);
|
|
200
|
+
} catch (error) {
|
|
201
|
+
const statusEl = document.getElementById('status');
|
|
202
|
+
statusEl.textContent = 'Error: ' + error.message;
|
|
203
|
+
statusEl.className = 'status error';
|
|
204
|
+
console.error('Check connection error:', error);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
// Update wallet display
|
|
209
|
+
function updateWalletDisplay(connected, address) {
|
|
210
|
+
document.getElementById('connected').textContent = connected ? 'Yes' : 'No';
|
|
211
|
+
document.getElementById('walletAddress').textContent = address || 'Not available';
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
// Initialize on page load
|
|
215
|
+
window.addEventListener('DOMContentLoaded', initSDK);
|
|
216
|
+
</script>
|
|
217
|
+
</body>
|
|
218
|
+
</html>
|
|
219
|
+
|
|
@@ -0,0 +1,330 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<title>Arcadia SDK - Payment Example</title>
|
|
7
|
+
<style>
|
|
8
|
+
body {
|
|
9
|
+
font-family: Arial, sans-serif;
|
|
10
|
+
max-width: 800px;
|
|
11
|
+
margin: 50px auto;
|
|
12
|
+
padding: 20px;
|
|
13
|
+
background: #050814;
|
|
14
|
+
color: #fff;
|
|
15
|
+
}
|
|
16
|
+
.container {
|
|
17
|
+
background: #1a1f2e;
|
|
18
|
+
padding: 30px;
|
|
19
|
+
border-radius: 8px;
|
|
20
|
+
border: 1px solid #2a2f3e;
|
|
21
|
+
}
|
|
22
|
+
h1 {
|
|
23
|
+
color: #1DA8FF;
|
|
24
|
+
margin-top: 0;
|
|
25
|
+
}
|
|
26
|
+
.status {
|
|
27
|
+
padding: 15px;
|
|
28
|
+
margin: 15px 0;
|
|
29
|
+
border-radius: 4px;
|
|
30
|
+
background: #2a2f3e;
|
|
31
|
+
}
|
|
32
|
+
.status.success {
|
|
33
|
+
background: #0a5d2e;
|
|
34
|
+
border: 1px solid #0d7a3d;
|
|
35
|
+
}
|
|
36
|
+
.status.error {
|
|
37
|
+
background: #5d0a0a;
|
|
38
|
+
border: 1px solid #7a0d0d;
|
|
39
|
+
}
|
|
40
|
+
.status.info {
|
|
41
|
+
background: #1a3a5d;
|
|
42
|
+
border: 1px solid #1d4a7a;
|
|
43
|
+
}
|
|
44
|
+
button {
|
|
45
|
+
background: #1DA8FF;
|
|
46
|
+
color: white;
|
|
47
|
+
border: none;
|
|
48
|
+
padding: 12px 24px;
|
|
49
|
+
border-radius: 4px;
|
|
50
|
+
cursor: pointer;
|
|
51
|
+
font-size: 16px;
|
|
52
|
+
margin: 5px;
|
|
53
|
+
}
|
|
54
|
+
button:hover {
|
|
55
|
+
background: #0d8fdf;
|
|
56
|
+
}
|
|
57
|
+
button:disabled {
|
|
58
|
+
background: #555;
|
|
59
|
+
cursor: not-allowed;
|
|
60
|
+
}
|
|
61
|
+
input, select {
|
|
62
|
+
background: #050814;
|
|
63
|
+
color: #fff;
|
|
64
|
+
border: 1px solid #2a2f3e;
|
|
65
|
+
padding: 10px;
|
|
66
|
+
border-radius: 4px;
|
|
67
|
+
margin: 5px;
|
|
68
|
+
font-size: 14px;
|
|
69
|
+
}
|
|
70
|
+
.payment-form {
|
|
71
|
+
background: #050814;
|
|
72
|
+
padding: 20px;
|
|
73
|
+
border-radius: 4px;
|
|
74
|
+
margin: 20px 0;
|
|
75
|
+
}
|
|
76
|
+
.form-group {
|
|
77
|
+
margin: 15px 0;
|
|
78
|
+
}
|
|
79
|
+
label {
|
|
80
|
+
display: block;
|
|
81
|
+
margin-bottom: 5px;
|
|
82
|
+
color: #aaa;
|
|
83
|
+
}
|
|
84
|
+
.tx-signature {
|
|
85
|
+
word-break: break-all;
|
|
86
|
+
font-family: monospace;
|
|
87
|
+
background: #050814;
|
|
88
|
+
padding: 10px;
|
|
89
|
+
border-radius: 4px;
|
|
90
|
+
margin: 10px 0;
|
|
91
|
+
font-size: 12px;
|
|
92
|
+
}
|
|
93
|
+
</style>
|
|
94
|
+
</head>
|
|
95
|
+
<body>
|
|
96
|
+
<div class="container">
|
|
97
|
+
<h1>Arcadia SDK - Payment Example</h1>
|
|
98
|
+
|
|
99
|
+
<div id="status" class="status info">
|
|
100
|
+
Initializing SDK...
|
|
101
|
+
</div>
|
|
102
|
+
|
|
103
|
+
<div>
|
|
104
|
+
<h2>Pay to Play</h2>
|
|
105
|
+
<div class="payment-form">
|
|
106
|
+
<div class="form-group">
|
|
107
|
+
<label>Amount:</label>
|
|
108
|
+
<input type="number" id="payAmount" value="0.5" step="0.1" min="0.1">
|
|
109
|
+
</div>
|
|
110
|
+
<div class="form-group">
|
|
111
|
+
<label>Token:</label>
|
|
112
|
+
<select id="payToken">
|
|
113
|
+
<option value="SOL">SOL</option>
|
|
114
|
+
<option value="USDC">USDC</option>
|
|
115
|
+
</select>
|
|
116
|
+
</div>
|
|
117
|
+
<button onclick="payToPlay()">Pay to Play</button>
|
|
118
|
+
</div>
|
|
119
|
+
<div id="payResult"></div>
|
|
120
|
+
</div>
|
|
121
|
+
|
|
122
|
+
<div>
|
|
123
|
+
<h2>In-Game Purchase</h2>
|
|
124
|
+
<div class="payment-form">
|
|
125
|
+
<div class="form-group">
|
|
126
|
+
<label>Item ID:</label>
|
|
127
|
+
<input type="text" id="itemId" value="sword-001" placeholder="e.g., sword-001">
|
|
128
|
+
</div>
|
|
129
|
+
<div class="form-group">
|
|
130
|
+
<label>Amount:</label>
|
|
131
|
+
<input type="number" id="purchaseAmount" value="1.0" step="0.1" min="0.1">
|
|
132
|
+
</div>
|
|
133
|
+
<div class="form-group">
|
|
134
|
+
<label>Token:</label>
|
|
135
|
+
<select id="purchaseToken">
|
|
136
|
+
<option value="SOL">SOL</option>
|
|
137
|
+
<option value="USDC">USDC</option>
|
|
138
|
+
</select>
|
|
139
|
+
</div>
|
|
140
|
+
<button onclick="purchaseItem()">Purchase Item</button>
|
|
141
|
+
</div>
|
|
142
|
+
<div id="purchaseResult"></div>
|
|
143
|
+
</div>
|
|
144
|
+
|
|
145
|
+
<div>
|
|
146
|
+
<h2>Code Example</h2>
|
|
147
|
+
<pre style="background: #050814; padding: 15px; border-radius: 4px; overflow-x: auto;"><code>// Pay to play - all payment details included
|
|
148
|
+
try {
|
|
149
|
+
const result = await arcadia.payment.payToPlay(0.5, 'SOL');
|
|
150
|
+
|
|
151
|
+
// No need to query blockchain - all details provided
|
|
152
|
+
console.log('Payment successful!');
|
|
153
|
+
console.log('Amount:', result.amount, result.token);
|
|
154
|
+
console.log('Transaction:', result.txSignature);
|
|
155
|
+
console.log('Timestamp:', result.timestamp);
|
|
156
|
+
console.log('Purchase ID:', result.purchaseId);
|
|
157
|
+
console.log('Platform fee:', result.platformFee);
|
|
158
|
+
console.log('Developer receives:', result.developerAmount);
|
|
159
|
+
|
|
160
|
+
// Store in your database
|
|
161
|
+
await savePurchase(result);
|
|
162
|
+
startGame();
|
|
163
|
+
} catch (error) {
|
|
164
|
+
console.error('Payment failed:', error.message);
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
// Purchase item - complete payment details
|
|
168
|
+
try {
|
|
169
|
+
const result = await arcadia.payment.purchaseItem('sword-001', 1.0, 'SOL');
|
|
170
|
+
|
|
171
|
+
// Verify payment details
|
|
172
|
+
if (result.success && result.amount === 1.0) {
|
|
173
|
+
addItemToInventory('sword-001');
|
|
174
|
+
await logPurchase({
|
|
175
|
+
itemId: 'sword-001',
|
|
176
|
+
...result
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
} catch (error) {
|
|
180
|
+
console.error('Purchase failed:', error.message);
|
|
181
|
+
}</code></pre>
|
|
182
|
+
</div>
|
|
183
|
+
</div>
|
|
184
|
+
|
|
185
|
+
<!-- Load SDK from CDN -->
|
|
186
|
+
<script src="../dist/umd/arcadia-game-sdk.js"></script>
|
|
187
|
+
|
|
188
|
+
<script>
|
|
189
|
+
let arcadia;
|
|
190
|
+
|
|
191
|
+
// Initialize SDK
|
|
192
|
+
async function initSDK() {
|
|
193
|
+
try {
|
|
194
|
+
const statusEl = document.getElementById('status');
|
|
195
|
+
statusEl.textContent = 'Initializing SDK...';
|
|
196
|
+
statusEl.className = 'status info';
|
|
197
|
+
|
|
198
|
+
arcadia = new ArcadiaGameSDK({
|
|
199
|
+
gameId: 'example-game',
|
|
200
|
+
});
|
|
201
|
+
|
|
202
|
+
await arcadia.init();
|
|
203
|
+
|
|
204
|
+
statusEl.textContent = 'SDK initialized successfully!';
|
|
205
|
+
statusEl.className = 'status success';
|
|
206
|
+
} catch (error) {
|
|
207
|
+
const statusEl = document.getElementById('status');
|
|
208
|
+
statusEl.textContent = 'SDK initialization failed: ' + error.message;
|
|
209
|
+
statusEl.className = 'status error';
|
|
210
|
+
console.error('SDK init error:', error);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
// Pay to play
|
|
215
|
+
async function payToPlay() {
|
|
216
|
+
try {
|
|
217
|
+
const statusEl = document.getElementById('status');
|
|
218
|
+
const resultEl = document.getElementById('payResult');
|
|
219
|
+
|
|
220
|
+
const amount = parseFloat(document.getElementById('payAmount').value);
|
|
221
|
+
const token = document.getElementById('payToken').value;
|
|
222
|
+
|
|
223
|
+
if (isNaN(amount) || amount <= 0) {
|
|
224
|
+
resultEl.innerHTML = '<div class="status error">Invalid amount</div>';
|
|
225
|
+
return;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
statusEl.textContent = 'Processing payment...';
|
|
229
|
+
statusEl.className = 'status info';
|
|
230
|
+
resultEl.innerHTML = '';
|
|
231
|
+
|
|
232
|
+
const result = await arcadia.payment.payToPlay(amount, token);
|
|
233
|
+
|
|
234
|
+
statusEl.textContent = 'Payment successful!';
|
|
235
|
+
statusEl.className = 'status success';
|
|
236
|
+
|
|
237
|
+
resultEl.innerHTML = `
|
|
238
|
+
<div class="status success">
|
|
239
|
+
<strong>Payment Successful!</strong><br><br>
|
|
240
|
+
<strong>Payment Details:</strong><br>
|
|
241
|
+
Amount: ${result.amount} ${result.token}<br>
|
|
242
|
+
Transaction: <div class="tx-signature">${result.txSignature}</div>
|
|
243
|
+
${result.timestamp ? `Completed: ${new Date(result.timestamp).toLocaleString()}<br>` : ''}
|
|
244
|
+
${result.purchaseId ? `Purchase ID: ${result.purchaseId}<br>` : ''}
|
|
245
|
+
${result.platformFee !== undefined ? `Platform Fee: ${result.platformFee} ${result.token}<br>` : ''}
|
|
246
|
+
${result.developerAmount !== undefined ? `Developer Receives: ${result.developerAmount} ${result.token}` : ''}
|
|
247
|
+
</div>
|
|
248
|
+
`;
|
|
249
|
+
} catch (error) {
|
|
250
|
+
const statusEl = document.getElementById('status');
|
|
251
|
+
const resultEl = document.getElementById('payResult');
|
|
252
|
+
|
|
253
|
+
statusEl.textContent = 'Payment failed';
|
|
254
|
+
statusEl.className = 'status error';
|
|
255
|
+
|
|
256
|
+
resultEl.innerHTML = `
|
|
257
|
+
<div class="status error">
|
|
258
|
+
<strong>Payment Failed</strong><br>
|
|
259
|
+
${error.message}
|
|
260
|
+
</div>
|
|
261
|
+
`;
|
|
262
|
+
console.error('Payment error:', error);
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
// Purchase item
|
|
267
|
+
async function purchaseItem() {
|
|
268
|
+
try {
|
|
269
|
+
const statusEl = document.getElementById('status');
|
|
270
|
+
const resultEl = document.getElementById('purchaseResult');
|
|
271
|
+
|
|
272
|
+
const itemId = document.getElementById('itemId').value.trim();
|
|
273
|
+
const amount = parseFloat(document.getElementById('purchaseAmount').value);
|
|
274
|
+
const token = document.getElementById('purchaseToken').value;
|
|
275
|
+
|
|
276
|
+
if (!itemId) {
|
|
277
|
+
resultEl.innerHTML = '<div class="status error">Item ID is required</div>';
|
|
278
|
+
return;
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
if (isNaN(amount) || amount <= 0) {
|
|
282
|
+
resultEl.innerHTML = '<div class="status error">Invalid amount</div>';
|
|
283
|
+
return;
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
statusEl.textContent = 'Processing purchase...';
|
|
287
|
+
statusEl.className = 'status info';
|
|
288
|
+
resultEl.innerHTML = '';
|
|
289
|
+
|
|
290
|
+
const result = await arcadia.payment.purchaseItem(itemId, amount, token);
|
|
291
|
+
|
|
292
|
+
statusEl.textContent = 'Purchase successful!';
|
|
293
|
+
statusEl.className = 'status success';
|
|
294
|
+
|
|
295
|
+
resultEl.innerHTML = `
|
|
296
|
+
<div class="status success">
|
|
297
|
+
<strong>Purchase Successful!</strong><br><br>
|
|
298
|
+
<strong>Purchase Details:</strong><br>
|
|
299
|
+
Item: ${itemId}<br>
|
|
300
|
+
Amount: ${result.amount} ${result.token}<br>
|
|
301
|
+
Transaction: <div class="tx-signature">${result.txSignature}</div>
|
|
302
|
+
${result.timestamp ? `Completed: ${new Date(result.timestamp).toLocaleString()}<br>` : ''}
|
|
303
|
+
${result.purchaseId ? `Purchase ID: ${result.purchaseId}<br>` : ''}
|
|
304
|
+
${result.platformFee !== undefined ? `Platform Fee: ${result.platformFee} ${result.token}<br>` : ''}
|
|
305
|
+
${result.developerAmount !== undefined ? `Developer Receives: ${result.developerAmount} ${result.token}` : ''}
|
|
306
|
+
</div>
|
|
307
|
+
`;
|
|
308
|
+
} catch (error) {
|
|
309
|
+
const statusEl = document.getElementById('status');
|
|
310
|
+
const resultEl = document.getElementById('purchaseResult');
|
|
311
|
+
|
|
312
|
+
statusEl.textContent = 'Purchase failed';
|
|
313
|
+
statusEl.className = 'status error';
|
|
314
|
+
|
|
315
|
+
resultEl.innerHTML = `
|
|
316
|
+
<div class="status error">
|
|
317
|
+
<strong>Purchase Failed</strong><br>
|
|
318
|
+
${error.message}
|
|
319
|
+
</div>
|
|
320
|
+
`;
|
|
321
|
+
console.error('Purchase error:', error);
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
// Initialize on page load
|
|
326
|
+
window.addEventListener('DOMContentLoaded', initSDK);
|
|
327
|
+
</script>
|
|
328
|
+
</body>
|
|
329
|
+
</html>
|
|
330
|
+
|