From 0b8300ed0da88d55867402243944fd1e46db2bf6 Mon Sep 17 00:00:00 2001 From: mDuo13 Date: Thu, 14 Jan 2016 16:14:46 -0800 Subject: [PATCH] freeze doc - mv js code samples to includes --- .gitignore | 1 + .../freeze/check-global-freeze-no-freeze.js | 23 +++ .../freeze/check-individual-freeze.js | 37 ++++ content/code_samples/freeze/eslintrc | 181 ++++++++++++++++ content/code_samples/freeze/package.json | 17 ++ .../code_samples/freeze/set-global-freeze.js | 37 ++++ .../freeze/set-individual-freeze.js | 57 ++++++ content/code_samples/freeze/set-no-freeze.js | 36 ++++ content/freeze.md | 193 ++---------------- freeze.html | 176 ++++++++-------- 10 files changed, 497 insertions(+), 261 deletions(-) create mode 100644 content/code_samples/freeze/check-global-freeze-no-freeze.js create mode 100644 content/code_samples/freeze/check-individual-freeze.js create mode 100644 content/code_samples/freeze/eslintrc create mode 100644 content/code_samples/freeze/package.json create mode 100644 content/code_samples/freeze/set-global-freeze.js create mode 100644 content/code_samples/freeze/set-individual-freeze.js create mode 100644 content/code_samples/freeze/set-no-freeze.js diff --git a/.gitignore b/.gitignore index bc9ee5637a..9e09f77672 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ /node_modules/ *~ .DS_Store +content/code_samples/*/node_modules/ diff --git a/content/code_samples/freeze/check-global-freeze-no-freeze.js b/content/code_samples/freeze/check-global-freeze-no-freeze.js new file mode 100644 index 0000000000..61b6a3991f --- /dev/null +++ b/content/code_samples/freeze/check-global-freeze-no-freeze.js @@ -0,0 +1,23 @@ +const {RippleAPI} = require('ripple-lib'); + +const api = new RippleAPI({ + server: 'wss://s1.ripple.com' // Public rippled server +}); +api.on('error', (errorCode, errorMessage) => { + console.log(errorCode + ': ' + errorMessage); +}); + +const my_address = 'rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn'; + +api.connect().then(() => { + // Look up settings object + return api.getSettings(my_address); +}).then(settings => { + console.log('Got settings for address', my_address); + console.log('Global Freeze enabled?', + (settings.globalFreeze === true)); + console.log('No Freeze enabled?', (settings.noFreeze === true)); + +}).then(() => { + return api.disconnect(); +}).catch(console.error); diff --git a/content/code_samples/freeze/check-individual-freeze.js b/content/code_samples/freeze/check-individual-freeze.js new file mode 100644 index 0000000000..81671bc2b4 --- /dev/null +++ b/content/code_samples/freeze/check-individual-freeze.js @@ -0,0 +1,37 @@ +const {RippleAPI} = require('ripple-lib'); + +const api = new RippleAPI({ + server: 'wss://s1.ripple.com' // Public rippled server +}); +api.on('error', (errorCode, errorMessage) => { + console.log(errorCode + ': ' + errorMessage); +}); + +const my_address = 'rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn'; +const counterparty_address = 'rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v'; +const frozen_currency = 'USD'; + +api.connect().then(() => { + + // Look up current state of trust line + const options = {counterparty: counterparty_address, + currency: frozen_currency}; + console.log('looking up', frozen_currency, 'trust line from', + my_address, 'to', counterparty_address); + return api.getTrustlines(my_address, options); + +}).then(data => { + + if (data.length !== 1) { + throw 'should only be 1 trust line per counterparty+currency pair'; + } + + const trustline = data[0]; + console.log('Trust line frozen from our side?', + trustline.specification.frozen === true); + console.log('Trust line frozen from counterparty\'s side?', + trustline.counterparty.frozen === true); + +}).then(() => { + return api.disconnect(); +}).catch(console.error); diff --git a/content/code_samples/freeze/eslintrc b/content/code_samples/freeze/eslintrc new file mode 100644 index 0000000000..8282b721b8 --- /dev/null +++ b/content/code_samples/freeze/eslintrc @@ -0,0 +1,181 @@ +# ESLint documentation can be found at http://eslint.org/docs/ +env: + browser: true + node: true + amd: false + mocha: true + jasmine: false +rules: + no-alert: 2 + no-array-constructor: 2 + no-bitwise: 0 + no-caller: 2 + no-catch-shadow: 2 + comma-dangle: 2 + no-class-assign: 2 + no-cond-assign: [2, 'always'] + no-console: 0 + no-const-assign: 2 + no-constant-condition: 2 + no-control-regex: 2 + no-debugger: 2 + no-delete-var: 2 + no-div-regex: 0 + no-dupe-keys: 2 + no-dupe-args: 2 + no-duplicate-case: 2 + no-else-return: 2 + no-empty: 2 + no-empty-character-class: 2 + no-empty-label: 2 + no-eq-null: 2 + no-eval: 2 + no-ex-assign: 2 + no-extend-native: 2 + no-extra-bind: 2 + no-extra-boolean-cast: 2 + no-extra-parens: [2, 'functions'] + no-extra-semi: 2 + no-fallthrough: 2 + no-floating-decimal: 0 + no-func-assign: 2 + no-implicit-coercion: 2 + no-implied-eval: 2 + no-inline-comments: 0 + no-inner-declarations: [2, 'functions'] + no-invalid-regexp: 2 + no-irregular-whitespace: 2 + no-iterator: 2 + no-label-var: 2 + no-labels: 2 + no-lone-blocks: 2 + no-lonely-if: 2 + no-loop-func: 2 + no-mixed-requires: [0, false] + no-mixed-spaces-and-tabs: [2, false] + no-multi-spaces: 2 + no-multi-str: 2 + no-multiple-empty-lines: [2, {max: 2}] + no-native-reassign: 2 + no-negated-in-lhs: 2 + no-nested-ternary: 0 + no-new: 2 + no-new-func: 2 + no-new-object: 2 + no-new-require: 0 + no-new-wrappers: 2 + no-obj-calls: 2 + no-octal: 2 + no-octal-escape: 2 + no-param-reassign: 2 + no-path-concat: 0 + no-plusplus: 0 + no-process-env: 0 + no-process-exit: 0 + no-proto: 2 + no-redeclare: 2 + no-regex-spaces: 2 + no-restricted-modules: 0 + no-return-assign: 2 + no-script-url: 2 + no-self-compare: 2 + no-sequences: 2 + no-shadow: 2 + no-shadow-restricted-names: 2 + semi-spacing: 2 + no-spaced-func: 2 + no-sparse-arrays: 2 + no-sync: 0 + no-ternary: 0 + no-trailing-spaces: 2 + no-undef: 2 + no-undef-init: 2 + no-undefined: 0 + no-underscore-dangle: 0 + no-unreachable: 2 + no-unused-expressions: 2 + no-unused-vars: [2, {vars: 'all', args: 'all'}] + no-use-before-define: 2 + no-void: 2 + no-var: 2 + prefer-const: 2 + no-warning-comments: [0, {terms: ['todo', 'fixme', 'xxx'], location: 'start'}] + no-with: 2 + block-scoped-var: 2 + brace-style: 2 + camelcase: 0 + comma-spacing: 2 + comma-style: 2 + complexity: [0, 11] + consistent-return: 2 + consistent-this: [2, 'self'] + curly: [2, 'all'] + default-case: 0 + dot-notation: [2, {allowKeywords: true}] + eol-last: 2 + eqeqeq: 2 + func-names: 0 + func-style: [2, 'declaration'] + generator-star: 0 + guard-for-in: 0 + handle-callback-err: 2 + indent: [2, 2, {SwitchCase: 1}] + key-spacing: [2, {beforeColon: false, afterColon: true}] + max-depth: [1, 4] + max-len: [2, 80] + max-nested-callbacks: [1, 2] + max-params: [1, 4] + max-statements: [0, 10] + new-cap: 2 + new-parens: 2 + one-var: [2, 'never'] + operator-assignment: [0, 'always'] + padded-blocks: 0 + quote-props: 0 + quotes: [2, 'single'] + radix: 2 + semi: 2 + sort-vars: 0 + space-after-keywords: 2 + space-before-blocks: 2 + space-before-function-paren: [2, 'never'] + object-curly-spacing: [2, 'never'] + array-bracket-spacing: [2, 'never'] + space-in-parens: 2 + space-infix-ops: 2 + space-return-throw-case: 2 + space-unary-ops: [2, {words: true, nonwords: false}] + spaced-comment: 2 + strict: [2, 'global'] + use-isnan: 2 + valid-jsdoc: 2 + valid-typeof: 2 + vars-on-top: 0 + wrap-iife: 0 + wrap-regex: 0 + yoda: [2, 'never'] +ecmaFeatures: + arrowFunctions: true + binaryLiterals: true + blockBindings: true + classes: true + defaultParams: true + destructuring: true + forOf: true + generators: true +# not sure about the implications of globalReturn +# globalReturn: true + jsx: true + objectLiteralComputedProperties: true + objectLiteralShorthandMethods: true + objectLiteralShorthandProperties: true +# duplicate properties may be required but we are not +# sure at this point +# objectLiteralDuplicateProperties: true + octalLiterals: true + regexUFlag: true + regexYFlag: true + restParams: true + spread: true + templateStrings: true + unicodeCodePointEscapes: true diff --git a/content/code_samples/freeze/package.json b/content/code_samples/freeze/package.json new file mode 100644 index 0000000000..a389d57c29 --- /dev/null +++ b/content/code_samples/freeze/package.json @@ -0,0 +1,17 @@ +{ + "name": "freeze-examples", + "version": "0.0.1", + "license": "UNLICENSED", + "private": true, + "dependencies": { + "ripple-lib": "*", + "babel-cli": "^6.0.0", + "babel-preset-es2015": "*" + }, + "babel": { + "presets": ["es2015"] + }, + "devDependencies": { + "eslint": "*" + } +} diff --git a/content/code_samples/freeze/set-global-freeze.js b/content/code_samples/freeze/set-global-freeze.js new file mode 100644 index 0000000000..077de8f49e --- /dev/null +++ b/content/code_samples/freeze/set-global-freeze.js @@ -0,0 +1,37 @@ +const {RippleAPI} = require('ripple-lib'); + +const api = new RippleAPI({ + server: 'wss://s1.ripple.com' // Public rippled server +}); +api.on('error', (errorCode, errorMessage) => { + console.log(errorCode + ': ' + errorMessage); +}); + +const issuing_address = 'rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn'; +const issuing_secret = 's████████████████████████████'; + // Best practice: get your secret from an encrypted + // config file instead + +api.connect().then(() => { + + // Prepare a settings transaction to enable global freeze + const settings = { + 'globalFreeze': true + }; + + console.log('preparing settings transaction for account:', + issuing_address); + return api.prepareSettings(issuing_address, settings); + +}).then(prepared_tx => { + + // Sign and submit the settings transaction + console.log('signing tx:', prepared_tx.txJSON); + const signed1 = api.sign(prepared_tx.txJSON, issuing_secret); + console.log('submitting tx:', signed1.id); + + return api.submit(signed1.signedTransaction); + +}).then(() => { + return api.disconnect(); +}).catch(console.error); diff --git a/content/code_samples/freeze/set-individual-freeze.js b/content/code_samples/freeze/set-individual-freeze.js new file mode 100644 index 0000000000..fb124c6b64 --- /dev/null +++ b/content/code_samples/freeze/set-individual-freeze.js @@ -0,0 +1,57 @@ +const {RippleAPI} = require('ripple-lib'); + +const api = new RippleAPI({ + server: 'wss://s1.ripple.com' // Public rippled server +}); +api.on('error', (errorCode, errorMessage) => { + console.log(errorCode + ': ' + errorMessage); +}); + +const issuing_address = 'rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn'; +const issuing_secret = 's████████████████████████████'; + // Best practice: get your secret from an encrypted + // config file instead +const address_to_freeze = 'rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v'; +const currency_to_freeze = 'USD'; + +api.connect().then(() => { + + // Look up current state of trust line + const options = {counterparty: address_to_freeze, + currency: currency_to_freeze}; + console.log('looking up', currency_to_freeze, 'trust line from', + issuing_address, 'to', address_to_freeze); + return api.getTrustlines(issuing_address, options); + +}).then(data => { + + // Prepare a trustline transaction to enable freeze + let trustline = {}; + if (data.length !== 1) { + console.log('trustline not found, making a default one'); + trustline = { + currency: currency_to_freeze, + counterparty: address_to_freeze, + limit: 0 + }; + } else { + trustline = data[0].specification; + console.log('trustline found. previous state:', trustline); + } + + trustline.frozen = true; + + console.log('preparing trustline transaction for line:', trustline); + return api.prepareTrustline(issuing_address, trustline); + +}).then(prepared_tx => { + + // Sign and submit the trustline transaction + console.log('signing tx:', prepared_tx.txJSON); + const signed1 = api.sign(prepared_tx.txJSON, issuing_secret); + console.log('submitting tx:', signed1.id); + + return api.submit(signed1.signedTransaction); +}).then(() => { + return api.disconnect(); +}).catch(console.error); diff --git a/content/code_samples/freeze/set-no-freeze.js b/content/code_samples/freeze/set-no-freeze.js new file mode 100644 index 0000000000..e285d9b83b --- /dev/null +++ b/content/code_samples/freeze/set-no-freeze.js @@ -0,0 +1,36 @@ +const {RippleAPI} = require('ripple-lib'); + +const api = new RippleAPI({ + server: 'wss://s1.ripple.com' // Public rippled server +}); +api.on('error', (errorCode, errorMessage) => { + console.log(errorCode + ': ' + errorMessage); +}); + +const issuing_address = 'rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v'; +const issuing_secret = 'snnDVkSW3aV6jvMJTPdCiE2Qxv1RW'; + // Best practice: get your secret from an encrypted + // config file instead + +api.connect().then(() => { + + // Prepare a settings transaction to enable no freeze + const settings = { + 'noFreeze': true + }; + + console.log('preparing settings transaction for account:', + issuing_address); + return api.prepareSettings(issuing_address, settings); + +}).then(prepared_tx => { + + // Sign and submit the settings transaction + console.log('signing tx:', prepared_tx.txJSON); + const signed1 = api.sign(prepared_tx.txJSON, issuing_secret); + console.log('submitting tx:', signed1.id); + + return api.submit(signed1.signedTransaction); +}).then(() => { + return api.disconnect(); +}).catch(console.error); diff --git a/content/freeze.md b/content/freeze.md index 984a33b06a..4ee937f969 100644 --- a/content/freeze.md +++ b/content/freeze.md @@ -128,57 +128,7 @@ The rest of the [transaction flow](rippleapi.html#transaction-flow) is the same Example JavaScript (ECMAScript 6) code to enable Individual Freeze on a trust line: ```js -const {RippleAPI} = require('ripple-lib'); - -const api = new RippleAPI({ - server: 'wss://s1.ripple.com' // Public rippled server hosted by Ripple, Inc. -}); - -const issuing_address = "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn"; -const issuing_secret = "s████████████████████████████"; - //Best practice: get your secret from an encrypted config file instead -const address_to_freeze = "rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v"; -const currency_to_freeze = "USD"; - -api.connect().then(() => { - - // Look up current state of trust line - var options = {counterparty: address_to_freeze, currency: currency_to_freeze}; - console.log("looking up", currency_to_freeze, "trust line from", - issuing_address, "to", address_to_freeze); - return api.getTrustlines(issuing_address, options); - -}).then(data => { - - //Prepare a trustline transaction to enable freeze - if (data.length != 1) { - console.log("trustline not found, making a default one"); - var trustline = { - currency: currency_to_freeze, - counterparty: address_to_freeze, - limit: 0 - }; - } else { - var trustline = data[0].specification; - console.log("trustline found. previous state:", trustline); - } - - trustline.frozen = true; - - console.log("preparing trustline transaction for line:",trustline); - return api.prepareTrustline(issuing_address, trustline); - -}).then(prepared_tx => { - - //Sign and submit the trustline transaction - console.log("signing tx:",prepared_tx.txJSON); - var signed1 = api.sign(prepared_tx.txJSON, issuing_secret); - console.log("submitting tx:", signed1.id); - - return api.submit(signed1.signedTransaction) -}).then(() => { - return api.disconnect(); -}).catch(console.error); +{% include 'code_samples/freeze/set-individual-freeze.js' %} ``` @@ -222,43 +172,10 @@ To enable or disable Global Freeze on an account, prepare a **Settings** transac The rest of the [transaction flow](rippleapi.html#transaction-flow) is the same as any other transaction. -Example code to enable Global Freeze on an account: +Example JavaScript (ECMAScript 6) code to enable Global Freeze on an account: -``` -const {RippleAPI} = require('ripple-lib'); - -const api = new RippleAPI({ - server: 'wss://s1.ripple.com' // Public rippled server hosted by Ripple, Inc. -}); -api.on('error', (errorCode, errorMessage) => { - console.log(errorCode + ': ' + errorMessage); -}); - -const issuing_address = "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn"; -const issuing_secret = "s████████████████████████████"; - //Best practice: get your secret from an encrypted config file instead - -api.connect().then(() => { - - //Prepare a settings transaction to enable global freeze - var settings = { - "globalFreeze": true - } - - console.log("preparing settings transaction for account:",issuing_address); - return api.prepareSettings(issuing_address, settings); - -}).then(prepared_tx => { - - //Sign and submit the trustline transaction - console.log("signing tx:",prepared_tx.txJSON); - var signed1 = api.sign(prepared_tx.txJSON, issuing_secret); - console.log("submitting tx:", signed1.id); - - return api.submit(signed1.signedTransaction) -}).then(() => { - return api.disconnect(); -}).catch(console.error); +```js +{% include 'code_samples/freeze/set-global-freeze.js' %} ``` @@ -304,43 +221,10 @@ To enable No Freeze on an account, prepare a **Settings** transaction using the You must [sign](rippleapi.html#sign) this transaction using the master key. The rest of the [transaction flow](rippleapi.html#transaction-flow) is the same as any other transaction. -Example code to enable No Freeze on an account: +Example JavaScript (ECMAScript 6) code to enable No Freeze on an account: -``` -const {RippleAPI} = require('ripple-lib'); - -const api = new RippleAPI({ - server: 'wss://s1.ripple.com' // Public rippled server hosted by Ripple, Inc. -}); -api.on('error', (errorCode, errorMessage) => { - console.log(errorCode + ': ' + errorMessage); -}); - -const issuing_address = "rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v"; -const issuing_secret = "s████████████████████████████"; - //Best practice: get your secret from an encrypted config file instead - -api.connect().then(() => { - - //Prepare a settings transaction to enable no freeze - var settings = { - "noFreeze": true - } - - console.log("preparing settings transaction for account:",issuing_address); - return api.prepareSettings(issuing_address, settings); - -}).then(prepared_tx => { - - //Sign and submit the trustline transaction - console.log("signing tx:",prepared_tx.txJSON); - var signed1 = api.sign(prepared_tx.txJSON, issuing_secret); - console.log("submitting tx:", signed1.id); - - return api.submit(signed1.signedTransaction) -}).then(() => { - return api.disconnect(); -}).catch(console.error); +```js +{% include 'code_samples/freeze/set-no-freeze.js' %} ``` @@ -422,43 +306,8 @@ The response contains an array of trust lines, for each currency in which the is Example JavaScript (ECMAScript 6) code to check whether a trust line is frozen: -``` -const {RippleAPI} = require('ripple-lib'); - -const api = new RippleAPI({ - server: 'wss://s1.ripple.com' // Public rippled server hosted by Ripple, Inc. -}); - -const my_address = "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn"; -const counterparty_address = "rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v"; -const frozen_currency = "USD"; - -api.connect().then(() => { - - // Look up current state of trust line - var options = {counterparty: counterparty_address, currency: frozen_currency}; - console.log("looking up", frozen_currency, "trust line from", - my_address, "to", counterparty_address); - return api.getTrustlines(my_address, options); - -}).then(data => { - - if ( data.length > 1) - throw "should only be 1 trust line per counterparty+currency pair"; - - if ( data.length === 0 ) { - console.log("No trust line found"); - } else { - var trustline = data[0]; - console.log("Trust line frozen from our side?", - trustline.specification.frozen === true); - console.log("Trust line frozen from counterparty's side?", - trustline.counterparty.frozen === true); - } - -}).then(() => { - return api.disconnect(); -}).catch(console.error); +```js +{% include 'code_samples/freeze/check-individual-freeze.js' %} ``` @@ -551,28 +400,10 @@ Look for the following values in the response object: | noFreeze | Boolean | (May be omitted) `true` if No Freeze is enabled. | | globalFreeze | Boolean | (May be omitted) `true` if Global Freeze is enabled. | -Example code: +Example JavaScript (ECMAScript 6) code to check whether an account has Global Freeze or No Freeze enabled: -``` -const {RippleAPI} = require('ripple-lib'); - -const api = new RippleAPI({ - server: 'wss://s1.ripple.com' // Public rippled server hosted by Ripple, Inc. -}); - -const my_address = "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn"; - -api.connect().then(() => { - //Look up settings object - return api.getSettings(my_address); -}).then(settings => { - console.log("Got settings for address",my_address); - console.log("Global Freeze enabled?", (settings.globalFreeze === true) ); - console.log("No Freeze enabled?", (settings.noFreeze === true) ); - -}).then(() => { - return api.disconnect(); -}).catch(console.error); +```js +{% include 'code_samples/freeze/check-global-freeze-no-freeze.js' %} ``` # See Also # diff --git a/freeze.html b/freeze.html index 8ed2e5c364..35ddbbf580 100644 --- a/freeze.html +++ b/freeze.html @@ -292,51 +292,57 @@
const {RippleAPI} = require('ripple-lib');
 
 const api = new RippleAPI({
-  server: 'wss://s1.ripple.com' // Public rippled server hosted by Ripple, Inc.
+  server: 'wss://s1.ripple.com' // Public rippled server
+});
+api.on('error', (errorCode, errorMessage) => {
+  console.log(errorCode + ': ' + errorMessage);
 });
 
-const issuing_address = "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn";
-const issuing_secret = "s████████████████████████████";
-    //Best practice: get your secret from an encrypted config file instead
-const address_to_freeze = "rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v";
-const currency_to_freeze = "USD";
+const issuing_address = 'rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn';
+const issuing_secret = 's████████████████████████████';
+    // Best practice: get your secret from an encrypted
+    //  config file instead
+const address_to_freeze = 'rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v';
+const currency_to_freeze = 'USD';
 
 api.connect().then(() => {
 
   // Look up current state of trust line
-  var options = {counterparty: address_to_freeze, currency: currency_to_freeze};
-  console.log("looking up", currency_to_freeze, "trust line from", 
-              issuing_address, "to", address_to_freeze);
+  const options = {counterparty: address_to_freeze,
+                 currency: currency_to_freeze};
+  console.log('looking up', currency_to_freeze, 'trust line from',
+              issuing_address, 'to', address_to_freeze);
   return api.getTrustlines(issuing_address, options);
 
 }).then(data => {
 
-  //Prepare a trustline transaction to enable freeze
-  if (data.length != 1) {
-    console.log("trustline not found, making a default one");
-    var trustline = {
+  // Prepare a trustline transaction to enable freeze
+  let trustline = {};
+  if (data.length !== 1) {
+    console.log('trustline not found, making a default one');
+    trustline = {
       currency: currency_to_freeze,
       counterparty: address_to_freeze,
       limit: 0
     };
   } else {
-    var trustline = data[0].specification;
-    console.log("trustline found. previous state:", trustline);
+    trustline = data[0].specification;
+    console.log('trustline found. previous state:', trustline);
   }
 
   trustline.frozen = true;
 
-  console.log("preparing trustline transaction for line:",trustline);
+  console.log('preparing trustline transaction for line:', trustline);
   return api.prepareTrustline(issuing_address, trustline);
 
 }).then(prepared_tx => {
 
-  //Sign and submit the trustline transaction
-  console.log("signing tx:",prepared_tx.txJSON);
-  var signed1 = api.sign(prepared_tx.txJSON, issuing_secret);
-  console.log("submitting tx:", signed1.id);
+  // Sign and submit the trustline transaction
+  console.log('signing tx:', prepared_tx.txJSON);
+  const signed1 = api.sign(prepared_tx.txJSON, issuing_secret);
+  console.log('submitting tx:', signed1.id);
 
-  return api.submit(signed1.signedTransaction)
+  return api.submit(signed1.signedTransaction);
 }).then(() => {
   return api.disconnect();
 }).catch(console.error);
@@ -382,38 +388,41 @@ api.connect().then(() => {
 
 
 

The rest of the transaction flow is the same as any other transaction.

-

Example code to enable Global Freeze on an account:

-
const {RippleAPI} = require('ripple-lib');
+

Example JavaScript (ECMAScript 6) code to enable Global Freeze on an account:

+
const {RippleAPI} = require('ripple-lib');
 
 const api = new RippleAPI({
-  server: 'wss://s1.ripple.com' // Public rippled server hosted by Ripple, Inc.
+  server: 'wss://s1.ripple.com' // Public rippled server
 });
 api.on('error', (errorCode, errorMessage) => {
   console.log(errorCode + ': ' + errorMessage);
 });
 
-const issuing_address = "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn";
-const issuing_secret = "s████████████████████████████";
-    //Best practice: get your secret from an encrypted config file instead
+const issuing_address = 'rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn';
+const issuing_secret = 's████████████████████████████';
+    // Best practice: get your secret from an encrypted
+    //  config file instead
 
 api.connect().then(() => {
 
-  //Prepare a settings transaction to enable global freeze
-  var settings = {
-    "globalFreeze": true
-  }
+  // Prepare a settings transaction to enable global freeze
+  const settings = {
+    'globalFreeze': true
+  };
 
-  console.log("preparing settings transaction for account:",issuing_address);
+  console.log('preparing settings transaction for account:',
+              issuing_address);
   return api.prepareSettings(issuing_address, settings);
 
 }).then(prepared_tx => {
 
-  //Sign and submit the trustline transaction
-  console.log("signing tx:",prepared_tx.txJSON);
-  var signed1 = api.sign(prepared_tx.txJSON, issuing_secret);
-  console.log("submitting tx:", signed1.id);
+  // Sign and submit the settings transaction
+  console.log('signing tx:', prepared_tx.txJSON);
+  const signed1 = api.sign(prepared_tx.txJSON, issuing_secret);
+  console.log('submitting tx:', signed1.id);
+
+  return api.submit(signed1.signedTransaction);
 
-  return api.submit(signed1.signedTransaction)
 }).then(() => {
   return api.disconnect();
 }).catch(console.error);
@@ -460,38 +469,40 @@ api.connect().then(() => {
 
 
 

You must sign this transaction using the master key. The rest of the transaction flow is the same as any other transaction.

-

Example code to enable No Freeze on an account:

-
const {RippleAPI} = require('ripple-lib');
+

Example JavaScript (ECMAScript 6) code to enable No Freeze on an account:

+
const {RippleAPI} = require('ripple-lib');
 
 const api = new RippleAPI({
-  server: 'wss://s1.ripple.com' // Public rippled server hosted by Ripple, Inc.
+  server: 'wss://s1.ripple.com' // Public rippled server
 });
 api.on('error', (errorCode, errorMessage) => {
   console.log(errorCode + ': ' + errorMessage);
 });
 
-const issuing_address = "rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v";
-const issuing_secret = "s████████████████████████████";
-    //Best practice: get your secret from an encrypted config file instead
+const issuing_address = 'rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v';
+const issuing_secret = 'snnDVkSW3aV6jvMJTPdCiE2Qxv1RW';
+    // Best practice: get your secret from an encrypted
+    //  config file instead
 
 api.connect().then(() => {
 
-  //Prepare a settings transaction to enable no freeze
-  var settings = {
-    "noFreeze": true
-  }
+  // Prepare a settings transaction to enable no freeze
+  const settings = {
+    'noFreeze': true
+  };
 
-  console.log("preparing settings transaction for account:",issuing_address);
+  console.log('preparing settings transaction for account:',
+              issuing_address);
   return api.prepareSettings(issuing_address, settings);
 
 }).then(prepared_tx => {
 
-  //Sign and submit the trustline transaction
-  console.log("signing tx:",prepared_tx.txJSON);
-  var signed1 = api.sign(prepared_tx.txJSON, issuing_secret);
-  console.log("submitting tx:", signed1.id);
+  // Sign and submit the settings transaction
+  console.log('signing tx:', prepared_tx.txJSON);
+  const signed1 = api.sign(prepared_tx.txJSON, issuing_secret);
+  console.log('submitting tx:', signed1.id);
 
-  return api.submit(signed1.signedTransaction)
+  return api.submit(signed1.signedTransaction);
 }).then(() => {
   return api.disconnect();
 }).catch(console.error);
@@ -626,39 +637,40 @@ api.connect().then(() => {
 
 
 

Example JavaScript (ECMAScript 6) code to check whether a trust line is frozen:

-
const {RippleAPI} = require('ripple-lib');
+
const {RippleAPI} = require('ripple-lib');
 
 const api = new RippleAPI({
-  server: 'wss://s1.ripple.com' // Public rippled server hosted by Ripple, Inc.
+  server: 'wss://s1.ripple.com' // Public rippled server
+});
+api.on('error', (errorCode, errorMessage) => {
+  console.log(errorCode + ': ' + errorMessage);
 });
 
-const my_address = "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn";
-const counterparty_address = "rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v";
-const frozen_currency = "USD";
+const my_address = 'rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn';
+const counterparty_address = 'rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v';
+const frozen_currency = 'USD';
 
 api.connect().then(() => {
 
   // Look up current state of trust line
-  var options = {counterparty: counterparty_address, currency: frozen_currency};
-  console.log("looking up", frozen_currency, "trust line from", 
-              my_address, "to", counterparty_address);
+  const options = {counterparty: counterparty_address,
+                   currency: frozen_currency};
+  console.log('looking up', frozen_currency, 'trust line from',
+              my_address, 'to', counterparty_address);
   return api.getTrustlines(my_address, options);
 
 }).then(data => {
 
-  if ( data.length > 1)
-     throw "should only be 1 trust line per counterparty+currency pair";
-
-  if ( data.length === 0 ) {
-    console.log("No trust line found");
-  } else {
-      var trustline = data[0];
-      console.log("Trust line frozen from our side?", 
-                  trustline.specification.frozen === true);
-      console.log("Trust line frozen from counterparty's side?", 
-                  trustline.counterparty.frozen === true);
+  if (data.length !== 1) {
+    throw 'should only be 1 trust line per counterparty+currency pair';
   }
 
+  const trustline = data[0];
+  console.log('Trust line frozen from our side?',
+              trustline.specification.frozen === true);
+  console.log('Trust line frozen from counterparty\'s side?',
+              trustline.counterparty.frozen === true);
+
 }).then(() => {
   return api.disconnect();
 }).catch(console.error);
@@ -781,22 +793,26 @@ console.log(currentFlags & lsfNoFreeze); //0
 
 
 
-

Example code:

-
const {RippleAPI} = require('ripple-lib');
+

Example JavaScript (ECMAScript 6) code to check whether an account has Global Freeze or No Freeze enabled:

+
const {RippleAPI} = require('ripple-lib');
 
 const api = new RippleAPI({
-  server: 'wss://s1.ripple.com' // Public rippled server hosted by Ripple, Inc.
+  server: 'wss://s1.ripple.com' // Public rippled server
+});
+api.on('error', (errorCode, errorMessage) => {
+  console.log(errorCode + ': ' + errorMessage);
 });
 
-const my_address = "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn";
+const my_address = 'rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn';
 
 api.connect().then(() => {
-  //Look up settings object
+  // Look up settings object
   return api.getSettings(my_address);
 }).then(settings => {
-    console.log("Got settings for address",my_address);
-    console.log("Global Freeze enabled?", (settings.globalFreeze === true) );
-    console.log("No Freeze enabled?", (settings.noFreeze === true) );
+  console.log('Got settings for address', my_address);
+  console.log('Global Freeze enabled?',
+              (settings.globalFreeze === true));
+  console.log('No Freeze enabled?', (settings.noFreeze === true));
 
 }).then(() => {
   return api.disconnect();