stellar-base
Advanced tools
Comparing version 0.3.11 to 0.4.0
@@ -18,4 +18,8 @@ "use strict"; | ||
var padRight = require("lodash").padRight; | ||
var _lodash = require("lodash"); | ||
var clone = _lodash.clone; | ||
var padRight = _lodash.padRight; | ||
var trimRight = _lodash.trimRight; | ||
/** | ||
@@ -47,5 +51,3 @@ * Asset class represents an asset, either the native asset ("XLM") | ||
// pad code with null bytes if necessary | ||
var padLength = code.length <= 4 ? 4 : 12; | ||
this.code = padRight(code, padLength, "\u0000"); | ||
this.code = code; | ||
this.issuer = issuer; | ||
@@ -75,4 +77,8 @@ } | ||
// pad code with null bytes if necessary | ||
var padLength = this.code.length <= 4 ? 4 : 12; | ||
var paddedCode = padRight(this.code, padLength, "\u0000"); | ||
var assetType = new xdrType({ | ||
assetCode: this.code, | ||
assetCode: paddedCode, | ||
issuer: Keypair.fromAddress(this.issuer).accountId() | ||
@@ -85,2 +91,22 @@ }); | ||
}, | ||
getCode: { | ||
/** | ||
* Return the asset code | ||
*/ | ||
value: function getCode() { | ||
return clone(this.code); | ||
} | ||
}, | ||
getIssuer: { | ||
/** | ||
* Return the asset issuer | ||
**/ | ||
value: function getIssuer() { | ||
return clone(this.issuer); | ||
} | ||
}, | ||
isNative: { | ||
@@ -103,3 +129,3 @@ | ||
value: function equals(asset) { | ||
return this.code == asset.code && this.issuer == asset.issuer; | ||
return this.code == asset.getCode() && this.issuer == asset.getIssuer(); | ||
} | ||
@@ -127,2 +153,3 @@ } | ||
var anum = undefined, | ||
code = undefined, | ||
issuer = undefined; | ||
@@ -135,7 +162,9 @@ switch (cx["switch"]()) { | ||
issuer = encodeCheck("accountId", anum.issuer().ed25519()); | ||
return new this(anum.assetCode(), issuer); | ||
code = trimRight(anum.assetCode(), "\u0000"); | ||
return new this(code, issuer); | ||
case xdr.AssetType.assetTypeCreditAlphanum12(): | ||
anum = cx.alphaNum12(); | ||
issuer = encodeCheck("accountId", anum.issuer().ed25519()); | ||
return new this(anum.assetCode(), issuer); | ||
code = trimRight(anum.assetCode(), "\u0000"); | ||
return new this(code, issuer); | ||
default: | ||
@@ -142,0 +171,0 @@ throw new Error("Invalid asset type: " + cx["switch"]().name); |
@@ -35,2 +35,7 @@ "use strict"; | ||
var _network = require("./network"); | ||
exports.Network = _network.Network; | ||
exports.Networks = _network.Networks; | ||
_defaults(exports, _interopRequireWildcard(require("./strkey"))); |
@@ -20,2 +20,4 @@ "use strict"; | ||
var Network = require("./network").Network; | ||
var _lodash = require("lodash"); | ||
@@ -120,10 +122,5 @@ | ||
value: function signatureBase() { | ||
return Buffer.concat([this.signatureBasePrefix(), this.tx.toXDR()]); | ||
return Buffer.concat([Network.current().networkId(), xdr.EnvelopeType.envelopeTypeTx().toXDR(), this.tx.toXDR()]); | ||
} | ||
}, | ||
signatureBasePrefix: { | ||
value: function signatureBasePrefix() { | ||
return xdr.EnvelopeType.envelopeTypeTx().toXDR(); | ||
} | ||
}, | ||
toEnvelope: { | ||
@@ -130,0 +127,0 @@ |
{ | ||
"name": "stellar-base", | ||
"version": "0.3.11", | ||
"version": "0.4.0", | ||
"description": "Low level stellar support library", | ||
@@ -65,2 +65,3 @@ "main": "lib/index.js", | ||
"js-xdr": "0.0.10", | ||
"karma": "^0.13.9", | ||
"lodash": "^3.6.0", | ||
@@ -67,0 +68,0 @@ "sha.js": "^2.3.6", |
import {xdr, Keypair} from "./index"; | ||
import {encodeCheck} from "./strkey"; | ||
import {padRight} from 'lodash'; | ||
import {clone, padRight, trimRight} from 'lodash'; | ||
@@ -24,3 +24,3 @@ /** | ||
static fromOperation(cx) { | ||
let anum, issuer; | ||
let anum, code, issuer; | ||
switch(cx.switch()) { | ||
@@ -32,7 +32,9 @@ case xdr.AssetType.assetTypeNative(): | ||
issuer = encodeCheck("accountId", anum.issuer().ed25519()); | ||
return new this(anum.assetCode(), issuer); | ||
code = trimRight(anum.assetCode(), '\0'); | ||
return new this(code, issuer); | ||
case xdr.AssetType.assetTypeCreditAlphanum12(): | ||
anum = cx.alphaNum12(); | ||
issuer = encodeCheck("accountId", anum.issuer().ed25519()); | ||
return new this(anum.assetCode(), issuer); | ||
code = trimRight(anum.assetCode(), '\0'); | ||
return new this(code, issuer); | ||
default: | ||
@@ -58,5 +60,3 @@ throw new Error(`Invalid asset type: ${cx.switch().name}`); | ||
// pad code with null bytes if necessary | ||
let padLength = code.length <= 4 ? 4 : 12; | ||
this.code = padRight(code, padLength, '\0'); | ||
this.code = code; | ||
this.issuer = issuer; | ||
@@ -81,4 +81,8 @@ } | ||
// pad code with null bytes if necessary | ||
let padLength = this.code.length <= 4 ? 4 : 12; | ||
let paddedCode = padRight(this.code, padLength, '\0'); | ||
var assetType = new xdrType({ | ||
assetCode: this.code, | ||
assetCode: paddedCode, | ||
issuer: Keypair.fromAddress(this.issuer).accountId() | ||
@@ -92,2 +96,16 @@ }); | ||
/** | ||
* Return the asset code | ||
*/ | ||
getCode() { | ||
return clone(this.code); | ||
} | ||
/** | ||
* Return the asset issuer | ||
**/ | ||
getIssuer() { | ||
return clone(this.issuer); | ||
} | ||
/** | ||
* Returns true if this asset object is the native asset. | ||
@@ -103,4 +121,4 @@ */ | ||
equals(asset) { | ||
return this.code == asset.code && this.issuer == asset.issuer; | ||
return this.code == asset.getCode() && this.issuer == asset.getIssuer(); | ||
} | ||
} |
@@ -15,3 +15,4 @@ | ||
export {Account} from "./account"; | ||
export {Network, Networks} from "./network"; | ||
export * from "./strkey"; |
@@ -5,2 +5,3 @@ import {xdr, hash} from "./index"; | ||
import {Operation} from "./operation"; | ||
import {Network} from "./network"; | ||
import {map, each} from "lodash"; | ||
@@ -72,3 +73,4 @@ | ||
return Buffer.concat([ | ||
this.signatureBasePrefix(), | ||
Network.current().networkId(), | ||
xdr.EnvelopeType.envelopeTypeTx().toXDR(), | ||
this.tx.toXDR(), | ||
@@ -78,6 +80,2 @@ ]); | ||
signatureBasePrefix() { | ||
return xdr.EnvelopeType.envelopeTypeTx().toXDR(); | ||
} | ||
/** | ||
@@ -84,0 +82,0 @@ * To envelope returns a xdr.TransactionEnvelope which can be submitted to the network. |
@@ -14,2 +14,26 @@ describe('Asset', function() { | ||
describe("getCode()", function () { | ||
it("returns a code for a native asset object", function () { | ||
var asset = new StellarBase.Asset.native(); | ||
expect(asset.getCode()).to.be.equal('XLM'); | ||
}); | ||
it("returns a code for a non-native asset", function () { | ||
var asset = new StellarBase.Asset("USD", "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ"); | ||
expect(asset.getCode()).to.be.equal('USD'); | ||
}); | ||
}); | ||
describe("getIssuer()", function () { | ||
it("returns a code for a native asset object", function () { | ||
var asset = new StellarBase.Asset.native(); | ||
expect(asset.getIssuer()).to.be.undefined; | ||
}); | ||
it("returns a code for a non-native asset", function () { | ||
var asset = new StellarBase.Asset("USD", "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ"); | ||
expect(asset.getIssuer()).to.be.equal('GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ'); | ||
}); | ||
}); | ||
describe("toXdrObject()", function () { | ||
@@ -16,0 +40,0 @@ it("parses a native asset object", function () { |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
1694183
77
37733
9
+ Addedkarma@^0.13.9
+ Addedaccepts@1.3.3(transitive)
+ Addedafter@0.8.2(transitive)
+ Addedanymatch@1.3.2(transitive)
+ Addedarr-diff@2.0.04.0.0(transitive)
+ Addedarr-flatten@1.1.0(transitive)
+ Addedarr-union@3.1.0(transitive)
+ Addedarray-slice@0.2.3(transitive)
+ Addedarray-unique@0.2.10.3.2(transitive)
+ Addedarraybuffer.slice@0.0.6(transitive)
+ Addedassign-symbols@1.0.0(transitive)
+ Addedasync-each@1.0.6(transitive)
+ Addedatob@2.1.2(transitive)
+ Addedbacko2@1.0.2(transitive)
+ Addedbalanced-match@1.0.2(transitive)
+ Addedbase@0.11.2(transitive)
+ Addedbase64-arraybuffer@0.1.5(transitive)
+ Addedbase64id@1.0.0(transitive)
+ Addedbatch@0.5.3(transitive)
+ Addedbetter-assert@1.0.2(transitive)
+ Addedbinary-extensions@1.13.1(transitive)
+ Addedbindings@1.5.0(transitive)
+ Addedblob@0.0.4(transitive)
+ Addedbluebird@2.11.0(transitive)
+ Addedbody-parser@1.20.3(transitive)
+ Addedbrace-expansion@1.1.11(transitive)
+ Addedbraces@0.1.51.8.52.3.2(transitive)
+ Addedbuffer-alloc@1.2.0(transitive)
+ Addedbuffer-alloc-unsafe@1.1.0(transitive)
+ Addedbuffer-fill@1.0.0(transitive)
+ Addedbytes@3.1.2(transitive)
+ Addedcache-base@1.0.1(transitive)
+ Addedcall-bind-apply-helpers@1.0.2(transitive)
+ Addedcall-bound@1.0.3(transitive)
+ Addedcallsite@1.0.0(transitive)
+ Addedchokidar@1.7.0(transitive)
+ Addedclass-utils@0.3.6(transitive)
+ Addedcollection-visit@1.0.0(transitive)
+ Addedcolors@1.4.0(transitive)
+ Addedcomponent-bind@1.0.0(transitive)
+ Addedcomponent-emitter@1.1.21.2.11.3.1(transitive)
+ Addedcomponent-inherit@0.0.3(transitive)
+ Addedconcat-map@0.0.1(transitive)
+ Addedconnect@3.7.0(transitive)
+ Addedcontent-type@1.0.5(transitive)
+ Addedcookie@0.3.1(transitive)
+ Addedcopy-descriptor@0.1.1(transitive)
+ Addedcore-js@2.6.12(transitive)
+ Addedcore-util-is@1.0.3(transitive)
+ Addedcustom-event@1.0.1(transitive)
+ Addeddebug@2.2.02.3.32.6.9(transitive)
+ Addeddecode-uri-component@0.2.2(transitive)
+ Addeddefine-property@0.2.51.0.02.0.2(transitive)
+ Addeddepd@2.0.0(transitive)
+ Addeddestroy@1.2.0(transitive)
+ Addeddi@0.0.1(transitive)
+ Addeddom-serialize@2.2.1(transitive)
+ Addeddunder-proto@1.0.1(transitive)
+ Addedee-first@1.1.1(transitive)
+ Addedencodeurl@1.0.2(transitive)
+ Addedengine.io@1.8.5(transitive)
+ Addedengine.io-client@1.8.6(transitive)
+ Addedengine.io-parser@1.3.2(transitive)
+ Addedent@2.2.2(transitive)
+ Addedes-define-property@1.0.1(transitive)
+ Addedes-errors@1.3.0(transitive)
+ Addedes-object-atoms@1.1.1(transitive)
+ Addedescape-html@1.0.3(transitive)
+ Addedeventemitter3@4.0.7(transitive)
+ Addedexpand-braces@0.1.2(transitive)
+ Addedexpand-brackets@0.1.52.1.4(transitive)
+ Addedexpand-range@0.1.11.8.2(transitive)
+ Addedextend@3.0.2(transitive)
+ Addedextend-shallow@2.0.13.0.2(transitive)
+ Addedextglob@0.3.22.0.4(transitive)
+ Addedfile-uri-to-path@1.0.0(transitive)
+ Addedfilename-regex@2.0.1(transitive)
+ Addedfill-range@2.2.44.0.0(transitive)
+ Addedfinalhandler@1.1.2(transitive)
+ Addedfollow-redirects@1.15.9(transitive)
+ Addedfor-in@1.0.2(transitive)
+ Addedfor-own@0.1.5(transitive)
+ Addedfragment-cache@0.2.1(transitive)
+ Addedfs.realpath@1.0.0(transitive)
+ Addedfsevents@1.2.13(transitive)
+ Addedfunction-bind@1.1.2(transitive)
+ Addedget-intrinsic@1.2.7(transitive)
+ Addedget-proto@1.0.1(transitive)
+ Addedget-value@2.0.6(transitive)
+ Addedglob@7.2.3(transitive)
+ Addedglob-base@0.3.0(transitive)
+ Addedglob-parent@2.0.0(transitive)
+ Addedgopd@1.2.0(transitive)
+ Addedgraceful-fs@4.2.11(transitive)
+ Addedhas-binary@0.1.7(transitive)
+ Addedhas-cors@1.1.0(transitive)
+ Addedhas-symbols@1.1.0(transitive)
+ Addedhas-tostringtag@1.0.2(transitive)
+ Addedhas-value@0.3.11.0.0(transitive)
+ Addedhas-values@0.1.41.0.0(transitive)
+ Addedhasown@2.0.2(transitive)
+ Addedhttp-errors@2.0.0(transitive)
+ Addedhttp-proxy@1.18.1(transitive)
+ Addediconv-lite@0.4.24(transitive)
+ Addedindexof@0.0.1(transitive)
+ Addedinflight@1.0.6(transitive)
+ Addedis-accessor-descriptor@1.0.1(transitive)
+ Addedis-binary-path@1.0.1(transitive)
+ Addedis-buffer@1.1.6(transitive)
+ Addedis-data-descriptor@1.0.1(transitive)
+ Addedis-descriptor@0.1.71.0.3(transitive)
+ Addedis-dotfile@1.0.3(transitive)
+ Addedis-equal-shallow@0.1.3(transitive)
+ Addedis-extendable@0.1.11.0.1(transitive)
+ Addedis-extglob@1.0.0(transitive)
+ Addedis-glob@2.0.1(transitive)
+ Addedis-number@0.1.12.1.03.0.04.0.0(transitive)
+ Addedis-plain-object@2.0.4(transitive)
+ Addedis-posix-bracket@0.1.1(transitive)
+ Addedis-primitive@2.0.0(transitive)
+ Addedis-regex@1.2.1(transitive)
+ Addedis-windows@1.0.2(transitive)
+ Addedisarray@0.0.11.0.0(transitive)
+ Addedisbinaryfile@3.0.3(transitive)
+ Addedisobject@2.1.03.0.1(transitive)
+ Addedjson3@3.3.2(transitive)
+ Addedkarma@0.13.22(transitive)
+ Addedkind-of@3.2.24.0.06.0.3(transitive)
+ Addedlog4js@0.6.38(transitive)
+ Addedlru-cache@4.1.5(transitive)
+ Addedmap-cache@0.2.2(transitive)
+ Addedmap-visit@1.0.0(transitive)
+ Addedmath-intrinsics@1.1.0(transitive)
+ Addedmath-random@1.0.4(transitive)
+ Addedmedia-typer@0.3.0(transitive)
+ Addedmicromatch@2.3.113.1.10(transitive)
+ Addedmime@1.6.0(transitive)
+ Addedmime-db@1.52.0(transitive)
+ Addedmime-types@2.1.35(transitive)
+ Addedminimatch@3.1.2(transitive)
+ Addedminimist@0.0.10(transitive)
+ Addedmixin-deep@1.3.2(transitive)
+ Addedms@0.7.10.7.22.0.0(transitive)
+ Addednan@2.22.0(transitive)
+ Addednanomatch@1.2.13(transitive)
+ Addednegotiator@0.6.1(transitive)
+ Addednormalize-path@2.1.1(transitive)
+ Addedobject-assign@4.1.0(transitive)
+ Addedobject-component@0.0.3(transitive)
+ Addedobject-copy@0.1.0(transitive)
+ Addedobject-inspect@1.13.4(transitive)
+ Addedobject-visit@1.0.1(transitive)
+ Addedobject.omit@2.0.1(transitive)
+ Addedobject.pick@1.3.0(transitive)
+ Addedon-finished@2.3.02.4.1(transitive)
+ Addedonce@1.4.0(transitive)
+ Addedoptimist@0.6.1(transitive)
+ Addedoptions@0.0.6(transitive)
+ Addedos-tmpdir@1.0.2(transitive)
+ Addedparse-glob@3.0.4(transitive)
+ Addedparsejson@0.0.3(transitive)
+ Addedparseqs@0.0.5(transitive)
+ Addedparseuri@0.0.5(transitive)
+ Addedparseurl@1.3.3(transitive)
+ Addedpascalcase@0.1.1(transitive)
+ Addedpath-is-absolute@1.0.1(transitive)
+ Addedposix-character-classes@0.1.1(transitive)
+ Addedpreserve@0.2.0(transitive)
+ Addedprocess-nextick-args@2.0.1(transitive)
+ Addedpseudomap@1.0.2(transitive)
+ Addedpunycode@1.4.1(transitive)
+ Addedqs@6.13.0(transitive)
+ Addedrandomatic@3.1.1(transitive)
+ Addedraw-body@2.5.2(transitive)
+ Addedreadable-stream@1.0.342.3.8(transitive)
+ Addedreaddirp@2.2.1(transitive)
+ Addedregex-cache@0.4.4(transitive)
+ Addedregex-not@1.0.2(transitive)
+ Addedremove-trailing-separator@1.1.0(transitive)
+ Addedrepeat-element@1.1.4(transitive)
+ Addedrepeat-string@0.2.21.6.1(transitive)
+ Addedrequires-port@1.0.0(transitive)
+ Addedresolve-url@0.2.1(transitive)
+ Addedret@0.1.15(transitive)
+ Addedrimraf@2.7.1(transitive)
+ Addedsafe-buffer@5.1.2(transitive)
+ Addedsafe-regex@1.1.0(transitive)
+ Addedsafe-regex-test@1.1.0(transitive)
+ Addedsafer-buffer@2.1.2(transitive)
+ Addedsemver@4.3.6(transitive)
+ Addedset-value@2.0.1(transitive)
+ Addedsetprototypeof@1.2.0(transitive)
+ Addedside-channel@1.1.0(transitive)
+ Addedside-channel-list@1.0.0(transitive)
+ Addedside-channel-map@1.0.1(transitive)
+ Addedside-channel-weakmap@1.0.2(transitive)
+ Addedsnapdragon@0.8.2(transitive)
+ Addedsnapdragon-node@2.1.1(transitive)
+ Addedsnapdragon-util@3.0.1(transitive)
+ Addedsocket.io@1.7.4(transitive)
+ Addedsocket.io-adapter@0.5.0(transitive)
+ Addedsocket.io-client@1.7.4(transitive)
+ Addedsocket.io-parser@2.3.1(transitive)
+ Addedsource-map@0.5.7(transitive)
+ Addedsource-map-resolve@0.5.3(transitive)
+ Addedsource-map-url@0.4.1(transitive)
+ Addedsplit-string@3.1.0(transitive)
+ Addedstatic-extend@0.1.2(transitive)
+ Addedstatuses@1.5.02.0.1(transitive)
+ Addedstring_decoder@0.10.311.1.1(transitive)
+ Addedtmp@0.0.33(transitive)
+ Addedto-array@0.1.4(transitive)
+ Addedto-object-path@0.3.0(transitive)
+ Addedto-regex@3.0.2(transitive)
+ Addedto-regex-range@2.1.1(transitive)
+ Addedtoidentifier@1.0.1(transitive)
+ Addedtype-is@1.6.18(transitive)
+ Addedultron@1.0.2(transitive)
+ Addedunion-value@1.0.1(transitive)
+ Addedunpipe@1.0.0(transitive)
+ Addedunset-value@1.0.0(transitive)
+ Addedurix@0.1.0(transitive)
+ Addeduse@3.1.1(transitive)
+ Addeduseragent@2.3.0(transitive)
+ Addedutil-deprecate@1.0.2(transitive)
+ Addedutils-merge@1.0.1(transitive)
+ Addedvoid-elements@2.0.1(transitive)
+ Addedwordwrap@0.0.3(transitive)
+ Addedwrappy@1.0.2(transitive)
+ Addedws@1.1.5(transitive)
+ Addedwtf-8@1.0.0(transitive)
+ Addedxmlhttprequest-ssl@1.6.3(transitive)
+ Addedyallist@2.1.2(transitive)
+ Addedyeast@0.1.2(transitive)
- Removedsafe-buffer@5.2.1(transitive)