Skip to content

Latest commit

 

History

History
95 lines (63 loc) · 3.44 KB

README.md

File metadata and controls

95 lines (63 loc) · 3.44 KB

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