Skip to content

Commit 417142a

Browse files
authored
Merge pull request #25 from CardanoGateKeeper/feature/minor-qol-improvements
Small Quality of Life Improvements
2 parents 45b0be5 + 320dc37 commit 417142a

File tree

2 files changed

+21
-118
lines changed

2 files changed

+21
-118
lines changed

database/seeders/DemoEventSeeder.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ public function run(): void
4343
'hash' => '40fa2aa67258b4ce7b5782f74831d46a84c59a0ff0c28262fab21728',
4444
],
4545
[
46-
'name' => 'SpaceBudz (NFT)',
46+
'name' => '$Handles (NFT)',
4747
'hash' => 'f0ff48bbb7bbe9d59a40f1ce90e9e9d0ff5002ec48f232b49ca0fb9a',
4848
],
4949
[

resources/js/Pages/Event/Show.vue

Lines changed: 20 additions & 117 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ const format_wallet_name = (wallet) => {
103103
}
104104
105105
const find_wallets = () => {
106+
const target_wallet = localStorage.getItem('connected_wallet');
106107
let loop = setInterval(() => {
107108
if (cardano.value.attempts <= 0) {
108109
if (cardano.value.wallets.length) {
@@ -119,14 +120,17 @@ const find_wallets = () => {
119120
cardano.value.hasCardano = true;
120121
121122
Object.keys(window.cardano)
122-
.forEach((name) => {
123+
.forEach(async (name) => {
123124
124125
125126
if (!is_valid_wallet(name)) {
126127
return;
127128
}
128129
129130
const wallet = window.cardano[name];
131+
if (wallet.name === target_wallet && !cardano.value.connected) {
132+
await connect(wallet);
133+
}
130134
131135
if (!cardano.value.wallets.includes(wallet)) {
132136
cardano.value.wallets.push(wallet);
@@ -147,17 +151,19 @@ const connect = async (wallet) => {
147151
wallet.busy = false;
148152
return;
149153
}
154+
localStorage.setItem('connected_wallet', wallet.name);
150155
cardano.value.connected = wallet;
151156
wallet.busy = false;
152157
modal.value.connectWallet = false;
153158
cardano.value.network_mode = await cardano.value.connection.getNetworkId();
154-
check_balance();
159+
await check_balance();
155160
}
156161
157162
const disconnect = () => {
158163
cardano.value.connected = null;
159164
cardano.value.connection = null;
160165
cardano.value.network_mode = null;
166+
localStorage.removeItem('connected_wallet');
161167
}
162168
163169
const check_balance = async () => {
@@ -190,11 +196,17 @@ const check_balance = async () => {
190196
.len(); i++) {
191197
const Asset = policy_assets.keys()
192198
.get(i);
193-
const AssetName = toAscii(Asset.name());
199+
const asset_id = toHex(Asset.name());
200+
const asset_ascii = toAscii(Buffer.from(
201+
asset_id.startsWith('000de140')
202+
? asset_id.substring(8)
203+
: asset_id,
204+
"hex"
205+
));
194206
const asset = {
195-
name: AssetName,
207+
name: asset_ascii,
196208
policy_id: policy.hash,
197-
asset_id: toHex(Asset.name()),
209+
asset_id: asset_id,
198210
};
199211
make_fingerprint(asset);
200212
wallet.assets[policy.hash].push(asset);
@@ -257,35 +269,7 @@ const generate_ticket = async (asset) => {
257269
let signature;
258270
259271
try {
260-
if (!cardano.value.hardware_mode) {
261-
signature = await signData(stake_address_cbor, nonce, asset.policy_id, asset.asset_id);
262-
} else {
263-
const txn = await createTxn(stake_key, nonce);
264-
const witness = await cardano.value.connection.signTx(txn.to_hex(), true);
265-
266-
const witnessSet = TransactionWitnessSet.new();
267-
const totalVkeys = Vkeywitnesses.new();
268-
const addWitness = TransactionWitnessSet.from_bytes(Buffer.from(witness, 'hex'));
269-
const addVkeys = addWitness.vkeys();
270-
if (addVkeys) {
271-
for (let i = 0; i < addVkeys.len(); i++) {
272-
totalVkeys.add(addVkeys.get(i));
273-
}
274-
}
275-
276-
witnessSet.set_vkeys(totalVkeys);
277-
const signedTx = Transaction.new(
278-
txn.body(),
279-
witnessSet,
280-
txn.auxiliary_data()
281-
);
282-
283-
284-
signature = {
285-
txn: signedTx.to_hex(),
286-
witness
287-
};
288-
}
272+
signature = await signData(stake_address_cbor, nonce, asset.policy_id, asset.asset_id);
289273
} catch (e) {
290274
console.error(`Ticket Signing Error!`, e);
291275
}
@@ -320,76 +304,14 @@ const generate_ticket = async (asset) => {
320304
let qr_code_value = null;
321305
let qr_image_value = '';
322306
323-
const createTxn = async (stake_key, nonce) => {
324-
const params = await Koios.getParameters({
325-
project_id: koios_token
326-
});
327-
const txBuilder = CardanoTxn.prepare({parameters: params});
328-
329-
try {
330-
const metadata_list = MetadataList.new();
331-
while (nonce) {
332-
if (nonce.length < 64) {
333-
metadata_list.add(TransactionMetadatum.new_text(nonce));
334-
break;
335-
} else {
336-
metadata_list.add(TransactionMetadatum.new_text(nonce.substring(0, 64)));
337-
nonce = nonce.substring(64);
338-
}
339-
}
340-
txBuilder.add_metadatum(
341-
BigNum.from_str('8'),
342-
TransactionMetadatum.new_list(
343-
metadata_list
344-
)
345-
);
346-
} catch (e) {
347-
console.error(`Couldn't add metadata?`, e, nonce);
348-
}
349-
350-
const reward_address = RewardAddress.from_address(stake_key);
351-
const reward_keyhash = reward_address.payment_cred()
352-
.to_keyhash();
353-
354-
const tx_certs = Certificates.new();
355-
tx_certs.add(
356-
Certificate.new_stake_delegation(
357-
StakeDelegation.new(
358-
StakeCredential.from_keyhash(reward_keyhash),
359-
Ed25519KeyHash.from_bech32(`pool14wk2m2af7y4gk5uzlsmsunn7d9ppldvcxxa5an9r5ywek8330fg`)
360-
)
361-
)
362-
);
363-
364-
txBuilder.set_certs(tx_certs);
365-
txBuilder.set_fee(BigNum.from_str('0'));
366-
txBuilder.set_ttl(1);
367-
368-
return txBuilder.build_tx();
369-
}
370-
371-
const signData = async (stake_address, nonce, policy_id, asset_id) => {
307+
const signData = async (stake_address, nonce) => {
372308
const payload = cardano.value.connection.signData(stake_address, nonce);
373309
console.log(`Sign Data Payload`, payload);
374310
return payload;
375311
}
376312
377313
onMounted(async () => {
378314
find_wallets();
379-
localTheme.value = localStorage.getItem('gatekeeper:theme') ?? 'light';
380-
theme.global.name.value = localTheme.value;
381-
});
382-
383-
const theme = useTheme()
384-
385-
const toggleTheme = () => {
386-
const theme_value = theme.global.current.value.dark ? 'light' : 'dark'
387-
localStorage.setItem('gatekeeper:theme', theme_value);
388-
theme.global.name.value = theme_value;
389-
}
390-
391-
const localTheme = ref({
392-
value: null
393315
});
394316
395317
const bg_image = 'url(' + props.event.bg_image_url + ')';
@@ -409,16 +331,7 @@ header {
409331
<GuestLayout title="Show Event">
410332
<template #header>
411333
<header class="pb-16 px-8 text-start">
412-
<AppHeader />
413-
<v-toolbar class="d-flex flex-row pb-16" color="transparent">
414-
<v-spacer></v-spacer>
415-
<v-toolbar-items>
416-
<v-btn @click="toggleTheme">
417-
<v-icon
418-
:icon="theme.global.current.value.dark ? 'mdi-weather-sunny' : 'mdi-weather-night'"/>
419-
</v-btn>
420-
</v-toolbar-items>
421-
</v-toolbar>
334+
<AppHeader/>
422335
<div class="d-flex align-center align-content-center my-16">
423336
<v-avatar :image="event.profile_photo_url" class="me-4" size="128"/>
424337
<div>
@@ -480,17 +393,7 @@ header {
480393
<v-icon icon="mdi-power"/>
481394
</v-btn>
482395
</div>
483-
<br/>
484-
<v-switch v-model="cardano.hardware_mode" color="primary"
485-
density="comfortable">
486-
<template v-slot:label>
487-
Hardware Wallet Compatibility Mode is {{
488-
cardano.hardware_mode ? 'ON' : 'OFF'
489-
}}
490-
</template>
491-
</v-switch>
492396
</div>
493-
494397
</template>
495398
</div>
496399
</header>

0 commit comments

Comments
 (0)