Skip to content
This repository has been archived by the owner on Aug 16, 2024. It is now read-only.

Commit

Permalink
refactor: rewrite data structures and transformation logic
Browse files Browse the repository at this point in the history
  • Loading branch information
xstelea committed May 10, 2023
1 parent 48cfc22 commit ac1fec3
Show file tree
Hide file tree
Showing 47 changed files with 3,204 additions and 4,229 deletions.
3 changes: 3 additions & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@ module.exports = {
'no-undef': 'off',
'@typescript-eslint/consistent-type-definitions': ['error', 'type'],
'@typescript-eslint/explicit-member-accessibility': 'off',
'array-callback-return': 'off',
'@typescript-eslint/consistent-type-assertions': 'off',
'@typescript-eslint/no-import-type-side-effects': 'off',
},
extends: ['alloy', 'alloy/typescript'],
overrides: [
Expand Down
9 changes: 2 additions & 7 deletions examples/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,9 @@
</head>
<body>
<script type="module" src="/index.ts"></script>
<div>
<input id="account-address-input" type="number" value="3" />
<button id="account-address-btn">Get account addresses</button>
</div>
<button id="persona-data-btn">Get persona data</button>
<button id="persona-accounts-btn">Persona and accounts data</button>
<button id="login-btn">Login</button>
<button id="send-tx-btn">Send SignTX Request</button>
<button id="account-address-btn">Get account addresses</button>
<button id="persona-data-btn">Get persona data</button>
<div id="results"></div>
</body>
</html>
83 changes: 13 additions & 70 deletions examples/index.ts
Original file line number Diff line number Diff line change
@@ -1,37 +1,15 @@
import { WalletSdk, requestBuilder, requestItem } from '../lib/wallet-sdk'
import { WalletSdk } from '../lib/wallet-sdk'
import { Result } from 'neverthrow'
import { login } from '../lib/IO/request-items/login'
import { reset } from '../lib/IO/request-items/reset'
import { createLogger } from '../lib/helpers/logger'

const sdk = WalletSdk({
dAppDefinitionAddress:
'account_tdx_a_1qd5svul20u30qnq408zhj2tw5evqrunq48eg0jsjf9qsx5t8qu',
logger: createLogger(1),
networkId: 12,
version: 1,
})

const transactionManifest = `
# Withdraw XRD from account
CALL_METHOD Address("account_sim1qjy5fakwygc45fkyhyxxulsf5zfae0ycez0x05et9hqs7d0gtn") "withdraw" Address("resource_sim1qyqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqs6d89k") Decimal("5.0");
# Buy GUM with XRD
TAKE_FROM_WORKTOP_BY_AMOUNT Decimal("2.0") Address("resource_sim1qyqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqs6d89k") Bucket("xrd");
CALL_METHOD Address("component_sim1qd8djmepmq7hxqaakt9rl3hkce532px42s8eh4qmqlks9f87dn") "buy_gumball" Bucket("xrd");
ASSERT_WORKTOP_CONTAINS_BY_AMOUNT Decimal("3.0") Address("resource_sim1qyqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqs6d89k");
ASSERT_WORKTOP_CONTAINS Address("resource_sim1q2ym536cwvvf3cy9p777t4qjczqwf79hagp3wn93srvsgvqtwe");
# Create a proof from bucket, clone it and drop both
TAKE_FROM_WORKTOP Address("resource_sim1qyqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqs6d89k") Bucket("some_xrd");
# Return a bucket to worktop
RETURN_TO_WORKTOP Bucket("some_xrd");
TAKE_FROM_WORKTOP_BY_IDS Array<NonFungibleLocalId>(NonFungibleLocalId("#1#")) Address("resource_sim1qyqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqs6d89k") Bucket("nfts");
# Move all resources in worktop to account
CALL_METHOD Address("account_sim1qjy5fakwygc45fkyhyxxulsf5zfae0ycez0x05et9hqs7d0gtn") "deposit_batch" Expression("ENTIRE_WORKTOP");
`

const displayResults = (result: Result<any, any>) => {
document.getElementById('results')!.innerHTML = `<pre>${JSON.stringify(
result.isErr() ? result.error : result.value,
Expand All @@ -43,14 +21,12 @@ const displayResults = (result: Result<any, any>) => {
const clearResults = () => {
document.getElementById('results')!.innerHTML = ``
}
const accountAddressInputElement = document.getElementById(
'account-address-input'
)! as HTMLInputElement

document.getElementById('login-btn')!.onclick = async () => {
clearResults()
const result = await sdk.request({
loginWithChallenge: { challenge: 'test' },
discriminator: 'authorizedRequest',
login: {},
})

displayResults(result)
Expand All @@ -60,13 +36,12 @@ document.getElementById('account-address-btn')!.onclick = async () => {
clearResults()

const result = await sdk.request(
requestBuilder(
requestItem.oneTimeAccounts.withoutProofOfOwnership(
accountAddressInputElement.value
? parseInt(accountAddressInputElement.value, 10)
: undefined
)
),
{
discriminator: 'unauthorizedRequest',
oneTimeAccounts: {
numberOfAccounts: { quantifier: 'atLeast', quantity: 1 },
},
},
{
eventCallback: (event) => console.log(event),
requestControl: ({ getRequest }) => {
Expand All @@ -81,42 +56,10 @@ document.getElementById('account-address-btn')!.onclick = async () => {
document.getElementById('persona-data-btn')!.onclick = async () => {
clearResults()

const result = await sdk.request(
requestBuilder(login.withoutChallenge(), reset({ personaData: true }))
)

displayResults(result)
}

document.getElementById('persona-accounts-btn')!.onclick = async () => {
clearResults()

const result = await sdk.request(
requestBuilder(
requestItem.oneTimePersonaData('givenName'),
requestItem.oneTimeAccounts.withoutProofOfOwnership(5)
)
)

displayResults(result)
}

document.getElementById('send-tx-btn')!.onclick = async () => {
clearResults()

const result = await sdk.sendTransaction({
transactionManifest,
version: 1,
const result = await sdk.request({
discriminator: 'unauthorizedRequest',
oneTimePersonaData: { fields: ['givenName'] },
})

displayResults(result)
}

window.radixWalletSdk = sdk

declare global {
// eslint-disable-next-line @typescript-eslint/consistent-type-definitions
interface Window {
radixWalletSdk: typeof sdk
}
}
44 changes: 0 additions & 44 deletions lib/IO/decode-wallet-response.ts

This file was deleted.

8 changes: 0 additions & 8 deletions lib/IO/request-items/index.ts

This file was deleted.

63 changes: 0 additions & 63 deletions lib/IO/request-items/login.ts

This file was deleted.

80 changes: 0 additions & 80 deletions lib/IO/request-items/one-time-accounts.ts

This file was deleted.

27 changes: 0 additions & 27 deletions lib/IO/request-items/one-time-persona-data.ts

This file was deleted.

Loading

0 comments on commit ac1fec3

Please sign in to comment.