From dc942159f84e4de0212696fa744e2d578c179912 Mon Sep 17 00:00:00 2001 From: Paulo Cabral Date: Thu, 29 Oct 2020 10:40:05 +0000 Subject: [PATCH] Add transaction sample --- .../client-create-transaction/.env.example | 5 ++ .../client-create-transaction/.gitignore | 2 + .../client-create-transaction/README.md | 40 ++++++++++ .../assets/transaction-scopes.png | Bin 0 -> 56060 bytes .../ct-transaction.js | 74 ++++++++++++++++++ .../client-create-transaction/index.js | 34 ++++++++ .../package-lock.json | 51 ++++++++++++ .../client-create-transaction/package.json | 23 ++++++ 8 files changed, 229 insertions(+) create mode 100644 rest-api/javascript/transaction/client-create-transaction/.env.example create mode 100644 rest-api/javascript/transaction/client-create-transaction/.gitignore create mode 100644 rest-api/javascript/transaction/client-create-transaction/README.md create mode 100644 rest-api/javascript/transaction/client-create-transaction/assets/transaction-scopes.png create mode 100644 rest-api/javascript/transaction/client-create-transaction/ct-transaction.js create mode 100644 rest-api/javascript/transaction/client-create-transaction/index.js create mode 100644 rest-api/javascript/transaction/client-create-transaction/package-lock.json create mode 100644 rest-api/javascript/transaction/client-create-transaction/package.json diff --git a/rest-api/javascript/transaction/client-create-transaction/.env.example b/rest-api/javascript/transaction/client-create-transaction/.env.example new file mode 100644 index 0000000..46ab8e4 --- /dev/null +++ b/rest-api/javascript/transaction/client-create-transaction/.env.example @@ -0,0 +1,5 @@ +# Base Url endpoint +BASE_URL = 'https://api-sandbox.uphold.com' + +ACCESS_TOKEN = '' +DESTINATION_EMAIL_ACCOUNT = 'asdf.asdf@email.com' diff --git a/rest-api/javascript/transaction/client-create-transaction/.gitignore b/rest-api/javascript/transaction/client-create-transaction/.gitignore new file mode 100644 index 0000000..2d7ec5c --- /dev/null +++ b/rest-api/javascript/transaction/client-create-transaction/.gitignore @@ -0,0 +1,2 @@ +.env +node_modules/ diff --git a/rest-api/javascript/transaction/client-create-transaction/README.md b/rest-api/javascript/transaction/client-create-transaction/README.md new file mode 100644 index 0000000..a918b6c --- /dev/null +++ b/rest-api/javascript/transaction/client-create-transaction/README.md @@ -0,0 +1,40 @@ +# User-to-user transaction + +This sample project demonstrates how to perform a transaction from one Uphold user to another, +with the latter identified by their email address. +For further background, please refer to the [API documentation](https://uphold.com/en/developer/api/documentation). + +## Summary + +This sample project performs the following actions: + +- Create and commit a transaction +- Display the data about the transaction + +## Requirements + +- Node.js v13.14.0 or later +- An account at with at least $1 USD of available funds +- An access token from that account, to perform authenticated requests to the Uphold API + (see the [authentication](../../authentication) examples for how to obtain one) + +## Setup + +- Run `npm install` (or `yarn install`) +- Create a `.env` file based on the `.env.example` file, and populate it with the required data. + +## Run + +Run `node index.js`. + +The code will locate a card with nonzero balance in the source account, and prepare a $1 USD transaction +from that card to the account identified by the email in the `.env` file. + +The result will depend on the status of the destination email: + +- If it is already associated with an existing Sandbox account, the transaction will be completed immediately + and the funds will become available in the recipient's account. +- If no Sandbox account exists with that email, an "invite"-type transaction will be created, + which will be executed when the associated account is created. + This invite can be cancelled by the sender while the recipient hasn't registered + (which is useful if you use a dummy email address for this). diff --git a/rest-api/javascript/transaction/client-create-transaction/assets/transaction-scopes.png b/rest-api/javascript/transaction/client-create-transaction/assets/transaction-scopes.png new file mode 100644 index 0000000000000000000000000000000000000000..0a69db8dc982bd7a1728df4b13ca28f3b9caf3a6 GIT binary patch literal 56060 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 { + return response.data; + }) + .catch((error) => { + error.response.data.errors + ? console.log(JSON.stringify(error.response.data.errors, null, 2).error) + : console.log(JSON.stringify(error, null, 2).error); + throw error; + }); + + return response; +} + +/** + * Get the first card with available balance (if one exists). + */ + +export async function getCardWithFunds() { + try { + const response = await axios.get(`${process.env.BASE_URL}/v0/me/cards`, { + headers: { + Authorization: `Bearer ${process.env.ACCESS_TOKEN}`, + }, + }); + + // Get the the first card with nonzero available balance + return response.data.filter(card => { return Number(card.available) > 0 })[0]; + } catch (error) { + error.response.data.errors + ? console.log(JSON.stringify(error.response.data.errors, null, 2).error) + : console.log(JSON.stringify(error, null, 2).error); + throw error; + } +} diff --git a/rest-api/javascript/transaction/client-create-transaction/index.js b/rest-api/javascript/transaction/client-create-transaction/index.js new file mode 100644 index 0000000..a0ea44c --- /dev/null +++ b/rest-api/javascript/transaction/client-create-transaction/index.js @@ -0,0 +1,34 @@ +/** + * Dependencies. + */ + +import _ from "lodash"; +import dotenv from "dotenv"; +import path from "path"; +import { + createAndCommitTransaction, + getCardWithFunds, +} from "./ct-transaction.js"; + +dotenv.config({ path: path.resolve() + "/.env" }); + +(async () => { + // Locate a card that can be used as the source for the transaction. + const sourceCard = await getCardWithFunds(); + // Define the destination as an email address. + const destination = `${process.env.DESTINATION_EMAIL_ACCOUNT}`; + + const data = { + denomination: { + amount: "1", + currency: "USD", + }, + destination, + }; + + const transaction = await createAndCommitTransaction(data, sourceCard.id); + + if (transaction) { + console.log('Transaction:', transaction); + } +})(); diff --git a/rest-api/javascript/transaction/client-create-transaction/package-lock.json b/rest-api/javascript/transaction/client-create-transaction/package-lock.json new file mode 100644 index 0000000..b8a2232 --- /dev/null +++ b/rest-api/javascript/transaction/client-create-transaction/package-lock.json @@ -0,0 +1,51 @@ +{ + "name": "uphold-ct", + "version": "0.0.1", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "axios": { + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.20.0.tgz", + "integrity": "sha512-ANA4rr2BDcmmAQLOKft2fufrtuvlqR+cXNNinUmvfeSNCOF98PZL+7M/v1zIdGo7OLjEA9J2gXJL+j4zGsl0bA==", + "requires": { + "follow-redirects": "^1.10.0" + } + }, + "btoa": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", + "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==" + }, + "colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==" + }, + "dotenv": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz", + "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==" + }, + "follow-redirects": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.0.tgz", + "integrity": "sha512-aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA==" + }, + "js-base64": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.6.0.tgz", + "integrity": "sha512-wVdUBYQeY2gY73RIlPrysvpYx+2vheGo8Y1SNQv/BzHToWpAZzJU7Z6uheKMAe+GLSBig5/Ps2nxg/8tRB73xg==" + }, + "lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" + }, + "qs": { + "version": "6.9.4", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.4.tgz", + "integrity": "sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ==" + } + } +} diff --git a/rest-api/javascript/transaction/client-create-transaction/package.json b/rest-api/javascript/transaction/client-create-transaction/package.json new file mode 100644 index 0000000..df37cb9 --- /dev/null +++ b/rest-api/javascript/transaction/client-create-transaction/package.json @@ -0,0 +1,23 @@ +{ + "name": "uphold-ct", + "version": "0.0.1", + "description": "Uphold rest Api test client transaction", + "license": "MIT", + "main": "index.js", + "type": "module", + "dependencies": { + "axios": "^0.20.0", + "btoa": "^1.2.1", + "colors": "^1.4.0", + "dotenv": "^8.2.0", + "js-base64": "^3.5.2", + "lodash": "^4.17.20", + "qs": "^6.9.4" + }, + "engines": { + "node": ">=13" + }, + "scripts": { + "run": "node index.js " + } +}