@@ -23,74 +23,94 @@ import {
2323 Deadline ,
2424 Mosaic ,
2525 NamespaceId ,
26- NetworkType ,
2726 PlainMessage ,
2827 RepositoryFactoryHttp ,
2928 TransactionService ,
3029 TransferTransaction ,
3130 UInt64 ,
3231} from 'symbol-sdk' ;
3332
34- // Retrieve from node's /network/properties or RepositoryFactory
35- const epochAdjustment = 123456789 ;
33+ const example = async ( ) : Promise < void > => {
34+ try {
35+ // Network information
36+ const nodeUrl = 'http://api-01.us-east-1.testnet.symboldev.network:3000' ;
37+ const repositoryFactory = new RepositoryFactoryHttp ( nodeUrl ) ;
38+ const epochAdjustment = await repositoryFactory
39+ . getEpochAdjustment ( )
40+ . toPromise ( ) ;
41+ const networkType = await repositoryFactory . getNetworkType ( ) . toPromise ( ) ;
42+ const networkGenerationHash = await repositoryFactory
43+ . getGenerationHash ( )
44+ . toPromise ( ) ;
3645
37- /* start block 01 */
38- const aliasedMosaic = new Mosaic (
39- new NamespaceId ( 'symbol.xym' ) ,
40- UInt64 . fromUint ( 1000000 ) ,
41- ) ;
42- /* end block 01 */
43-
44- /* start block 02 */
45- // replace with network type
46- const networkType = NetworkType . TEST_NET ;
47- const transferTransaction = TransferTransaction . create (
48- Deadline . create ( epochAdjustment ) ,
49- Address . createFromRawAddress ( 'TCHBDE-NCLKEB-ILBPWP-3JPB2X-NY64OE-7PYHHE-32I' ) ,
50- [ aliasedMosaic ] ,
51- PlainMessage . create ( 'Test aliased mosaic' ) ,
52- networkType ,
53- UInt64 . fromUint ( 2000000 ) ,
54- ) ;
46+ /* start block 01 */
47+ const aliasedMosaic = new Mosaic (
48+ new NamespaceId ( 'symbol.xym' ) ,
49+ UInt64 . fromUint ( 1000000 ) ,
50+ ) ;
51+ /* end block 01 */
5552
56- // replace with sender private key
57- const privateKey =
58- '1111111111111111111111111111111111111111111111111111111111111111' ;
59- const account = Account . createFromPrivateKey ( privateKey , networkType ) ;
60- // replace with meta.networkGenerationHash (nodeUrl + '/node/info')
61- const networkGenerationHash =
62- '1DFB2FAA9E7F054168B0C5FCB84F4DEB62CC2B4D317D861F3168D161F54EA78B' ;
63- const signedTransaction = account . sign (
64- transferTransaction ,
65- networkGenerationHash ,
66- ) ;
67- console . log ( signedTransaction . hash ) ;
68- /* end block 02 */
53+ /* start block 02 */
54+ const maxFee = UInt64 . fromUint ( 2000000 ) ;
55+ const transferTransaction = TransferTransaction . create (
56+ Deadline . create ( epochAdjustment ) ,
57+ Address . createFromRawAddress (
58+ 'TCHBDE-NCLKEB-ILBPWP-3JPB2X-NY64OE-7PYHHE-32I' ,
59+ ) ,
60+ [ aliasedMosaic ] ,
61+ PlainMessage . create ( 'Test aliased mosaic' ) ,
62+ networkType ,
63+ maxFee ,
64+ ) ;
6965
70- /* start block 03 */
71- // replace with node endpoint
72- const nodeUrl = 'http://api-01.us-east-1.testnet.symboldev.network:3000' ;
73- const repositoryFactory = new RepositoryFactoryHttp ( nodeUrl ) ;
74- const receiptHttp = repositoryFactory . createReceiptRepository ( ) ;
75- const transactionHttp = repositoryFactory . createTransactionRepository ( ) ;
76- const listener = repositoryFactory . createListener ( ) ;
77- const transactionService = new TransactionService ( transactionHttp , receiptHttp ) ;
66+ // Replace with sender private key
67+ const privateKey =
68+ '1111111111111111111111111111111111111111111111111111111111111111' ;
69+ const account = Account . createFromPrivateKey ( privateKey , networkType ) ;
70+ const signedTransaction = account . sign (
71+ transferTransaction ,
72+ networkGenerationHash ,
73+ ) ;
74+ console . log ( 'Transaction hash: ' + signedTransaction . hash ) ;
75+ /* end block 02 */
7876
79- listener . open ( ) . then ( ( ) => {
80- transactionService
81- . announce ( signedTransaction , listener )
82- . pipe (
83- mergeMap ( ( transaction ) =>
84- transactionService . resolveAliases ( [ transaction . transactionInfo ! . hash ! ] ) ,
85- ) ,
86- map ( ( transactions ) => transactions [ 0 ] as TransferTransaction ) ,
87- )
88- . subscribe (
89- ( transaction ) => {
90- console . log ( 'Resolved MosaicId: ' , transaction . mosaics [ 0 ] . id . toHex ( ) ) ;
91- listener . close ( ) ;
92- } ,
93- ( err ) => console . log ( err ) ,
77+ /* start block 03 */
78+ const receiptHttp = repositoryFactory . createReceiptRepository ( ) ;
79+ const transactionHttp = repositoryFactory . createTransactionRepository ( ) ;
80+ const listener = repositoryFactory . createListener ( ) ;
81+ const transactionService = new TransactionService (
82+ transactionHttp ,
83+ receiptHttp ,
9484 ) ;
95- } ) ;
96- /* end block 03 */
85+
86+ listener . open ( ) . then ( ( ) => {
87+ transactionService
88+ . announce ( signedTransaction , listener )
89+ . pipe (
90+ mergeMap ( ( transaction ) =>
91+ transactionService . resolveAliases ( [
92+ transaction . transactionInfo ! . hash ! ,
93+ ] ) ,
94+ ) ,
95+ map ( ( transactions ) => transactions [ 0 ] as TransferTransaction ) ,
96+ )
97+ . subscribe (
98+ ( transaction ) => {
99+ console . log (
100+ 'Resolved MosaicId: ' ,
101+ transaction . mosaics [ 0 ] . id . toHex ( ) ,
102+ ) ;
103+ listener . close ( ) ;
104+ } ,
105+ ( err ) => {
106+ console . log ( err ) ;
107+ listener . close ( ) ;
108+ } ,
109+ ) ;
110+ } ) ;
111+ /* end block 03 */
112+ } catch ( e ) {
113+ console . log ( e ) ;
114+ }
115+ } ;
116+ example ( ) . then ( ) ;
0 commit comments