· 6 years ago · Jan 30, 2019, 10:38 PM
1const functions = require('firebase-functions');
2const admin = require('firebase-admin');
3admin.initializeApp();
4
5const StellarSdk = require('stellar-sdk');
6StellarSdk.Network.useTestNetwork();
7var server = new StellarSdk.Server('https://horizon-testnet.stellar.org');
8
9var publicKey = 'xxx';
10var secretKey = 'xxx';
11var sourceKeyPair = StellarSdk.Keypair.fromSecret(secretKey);
12var issuerPublicKey = 'xxx';
13
14exports.createAccount = functions.https.onCall((data, context) => {
15
16 var newPublicKey = data.publicKey;
17
18 server.loadAccount(publicKey)
19 .then(function(source) {
20
21 var transaction = new StellarSdk.TransactionBuilder(source)
22
23 .addOperation(StellarSdk.Operation.createAccount({
24 destination: newPublicKey,
25 startingBalance: '5',
26 }))
27 .addOperation(StellarSdk.Operation.changeTrust({
28 asset: new StellarSdk.Asset('USD', issuerPublicKey),
29 }))
30 .addOperation(StellarSdk.Operation.changeTrust({
31 asset: new StellarSdk.Asset('GOLD', issuerPublicKey),
32 }))
33 .setTimeout(StellarSdk.TimeoutInfinite)
34 .build();
35
36 transaction.sign(sourceKeyPair);
37
38 server.submitTransaction(transaction)
39 .then(function(transactionResult) {
40 console.log(JSON.stringify(transactionResult, null, 2));
41 admin.firestore().collection('users').doc(newPublicKey).set({
42 publicKey: newPublicKey,
43 })
44 })
45 .catch(function(err) {
46 console.log('An error has occured:');
47 console.log(err);
48 });
49 })
50 .catch(function(err) {
51 console.error(err);
52 })
53
54})