Skip to content

About

URI Scheme library for Symbol

Topics

Resources

Code of conduct

Contributing

Stars

4 stars

Watchers

16 watching

Forks

Repository files navigation

Symbol URI Scheme

npm version Build Status Coverage Status Slack

URI Scheme library to serve Symbol transactions ready to be signed.

This is a PoC to validate the proposed NIP2 Transaction URI Scheme. When stable, the repository will be moved to the nemtech organization.

Requirements

  • Node.js 12 LTS

Installation

npm install symbol-uri-scheme

Usage

Generate URI from Transaction

// examples/TransactionToURI.ts

import { Account, Deadline, EmptyMessage, Currency, NetworkType, TransferTransaction, TransactionMapping } from 'symbol-sdk';

import { TransactionURI } from '../src/uris/TransactionURI';

const epochAdjustment = 1637848847;
const serializedTransaction = TransferTransaction.create(
    Deadline.create(epochAdjustment),
    Account.generateNewAccount(NetworkType.TEST_NET).address,
    [Currency.PUBLIC.createRelative(10)],
    EmptyMessage,
    NetworkType.TEST_NET
).serialize();

const generationHash = 'ABC'; // replace with network generation hash
const nodeUrl = 'http://localhost:3000';
const webhookUrl = 'http://myapp.local/id';

const transactionURI = new TransactionURI(serializedTransaction, TransactionMapping.createFromPayload, generationHash, nodeUrl, webhookUrl);
console.log(transactionURI.build());

Create Transaction from URI

// examples/URIToTransaction.ts

import { TransactionMapping } from 'symbol-sdk';
import { TransactionURI } from '../src/uris/TransactionURI';

const serializedTransaction = 'B600000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000000000000000000000000000000000000000000000000' +
'0000000000000000000000000000190544100000000000000005816E98404000000900FFE' +
'A45AEA2EE9B880D5E4F9B91B75857F444F1766CDCB0600010000000000CC403C7A113BDF7' +
'C80969800000000000068656C6C6F';

const URI = 'web+symbol://transaction?data=' + serializedTransaction + '&generationHash=test' +
    '&nodeUrl=http://localhost:3000&webhookUrl=http://myapp.local/id';
const transactionURI = TransactionURI.fromURI(URI, TransactionMapping.createFromPayload);

const transaction = transactionURI.toTransaction();
console.log(transaction);

Getting help

Use the following available resources to get help:

Contributing

Contributions are welcome and appreciated. Check CONTRIBUTING for information on how to contribute.

License

Copyright 2019-present NEM

Licensed under the Apache License 2.0

About

URI Scheme library for Symbol

Topics

Resources

Code of conduct

Contributing

Stars

4 stars

Watchers

16 watching

Forks

Releases

Packages

Used by

Contributors

Languages