1.0.5 • Published 3 years ago

@pioneeringtechventures/concordium-wallet-client v1.0.5

Weekly downloads
-
License
ISC
Repository
gitlab
Last release
3 years ago

ConcordiumWalletClient

A JavaScript library to use with CryproX Wallet.

How to use

const concordiumWalletClient = new ConcordiumWalletClient({
    bridgeHost: 'bridge.example.cloud',
    bridgeConnectionKey: '82ac31f81'
});

const transactionPayload = utils.interpolate(config, {
    contract_address: {
        index: '253',
        sub_index: 0
    }
});

concordiumWalletClient.connect();

concordiumWalletClient.on('connect', () => {
    console.log('Connected')
});

concordiumWalletClient.on('accept', () => {
    concordiumWalletClient.send('Transaction', transactionPayload);
});

concordiumWalletClient.on('accountInfo', (message) => {
	console.log('Wallet balance: ', message.balance);
});

concordiumWalletClient.on('transfer', (message) => {
    if (message.tx_status === 'Accepted') {
        console.log(message.tx_hash);
    }

    concordiumWalletClient.disconnect();
});

concordiumWalletClient.on('error', async (message) => {
    await concordiumWalletClient.disconnect();

    throw new Error(`WS.bridge.error ${JSON.stringify(message)}`);
});

concordiumWalletClient.on('reject', () => {
    console.error('Request was rejected');

    concordiumWalletClient.disconnect();
});

concordiumWalletClient.on('transactionReject', () => {
    console.error('Transaction was rejected');
});

concordiumWalletClient.on('connectionReject', () => {
    console.error('Connection was rejected');
});

QR Modal usage

class ModalAdapter {
    constructor(opts) {
        this.pubSub = TypedEventEmitter;
        this.pubSub.on('close', () => {
            this.close();
            opts.onClose();
        });
    }

    close () {
        const wrapper = document.getElementById('qr-modal');

        if (wrapper) {
            document.body.removeChild(wrapper);
        }
    }

    open(msg) {
        const wrapper = document.createElement('div');
        wrapper.setAttribute('id', 'qr-modal');

        document.body.appendChild(wrapper);

        ReactDOM.render(
            <div className="modal">
                <button onClick={() => this.pubSub.emit('close')}>Close</button>
                {isMobile ? (
                    <a href={`tcwb://ws?uri=${msg.connect_string}`}>Wallet connect</a>
                 ) : (
                     <QRCode value={msg.connect_string} />
                 )}
            </div>
        );
    }
}

const concordiumWalletClient = new ConcordiumWalletClient({
    bridgeHost: 'bridge.example.cloud',
    bridgeConnectionKey: '82ac31f81',
    qrModal: ModalAdapter
});

concordiumWalletClient.connect(); // opens QR code (deep link) modal

Utils API

NameArgsDescription
removeHexLiteralvalue: string (optional)Removes a leading 0x HEX literal from the string (default: '')
toUint32value: string (optional)Converts a number represented by a string to Uint32 (little endian) (default: '')
toUint64value: string (optional)Converts a number represented by a string to Uint64 (little endian) (default: '')
base58ToHexvalue: string (optional)Converts a base58 encoded string to HEX without leading 0x literal (default: '')

ConcordiumQrModalAdapter

NameArgsDescription
ConcordiumQrModalAdapteropts: IConcordiumWalletQrModalOptions (required)Constructor
openmsg: IBridgeMessage (optional)Opens a modal with QR code.
close-Closes the modal

Events

EventPayloadDescription
connect-When user has scanned QR Code with wallet app
accept{ data: 'ConnectionAcceptedNotification' \| '' }When user has accepted wallet connection
accountInfo{ data: { address: string, balance: string }When user has connected the wallet
transfer{ data: { tx_hash: string, tx_status: 'Accepted' \| 'Rejected' }When user transfers NFT ownership to another wallet
transactiondata: { tx_hash: string; tx_status: 'Accepted' \| 'Rejected' }When user did a transaction (mint, burn, etc.)
error{ message: any }When any error has occured
reject-When user has rejected operation in wallet
transactionReject-When user has rejected transaction in wallet
connectionReject-When user has rejected connection in wallet
1.0.2

3 years ago

1.0.1

3 years ago

1.0.5

3 years ago

1.0.4

3 years ago

1.0.3

3 years ago

0.1.1

4 years ago

0.1.0

4 years ago