init
This commit is contained in:
+8
@@ -0,0 +1,8 @@
|
||||
import { Instructions, Prepare } from './types';
|
||||
import { RippleAPI } from '..';
|
||||
export declare type CheckCancelParameters = {
|
||||
checkID: string;
|
||||
};
|
||||
declare function prepareCheckCancel(this: RippleAPI, address: string, checkCancel: CheckCancelParameters, instructions?: Instructions): Promise<Prepare>;
|
||||
export default prepareCheckCancel;
|
||||
//# sourceMappingURL=check-cancel.d.ts.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"check-cancel.d.ts","sourceRoot":"","sources":["../../../src/transaction/check-cancel.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,YAAY,EAAE,OAAO,EAAkB,MAAM,SAAS,CAAA;AAC9D,OAAO,EAAC,SAAS,EAAC,MAAM,IAAI,CAAA;AAE5B,oBAAY,qBAAqB,GAAG;IAClC,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAeD,iBAAS,kBAAkB,CACzB,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,qBAAqB,EAClC,YAAY,GAAE,YAAiB,GAC9B,OAAO,CAAC,OAAO,CAAC,CAQlB;AAED,eAAe,kBAAkB,CAAA"}
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const utils_1 = require("./utils");
|
||||
const common_1 = require("../common");
|
||||
function createCheckCancelTransaction(account, cancel) {
|
||||
const txJSON = {
|
||||
Account: account,
|
||||
TransactionType: 'CheckCancel',
|
||||
CheckID: cancel.checkID
|
||||
};
|
||||
return txJSON;
|
||||
}
|
||||
function prepareCheckCancel(address, checkCancel, instructions = {}) {
|
||||
try {
|
||||
common_1.validate.prepareCheckCancel({ address, checkCancel, instructions });
|
||||
const txJSON = createCheckCancelTransaction(address, checkCancel);
|
||||
return utils_1.prepareTransaction(txJSON, this, instructions);
|
||||
}
|
||||
catch (e) {
|
||||
return Promise.reject(e);
|
||||
}
|
||||
}
|
||||
exports.default = prepareCheckCancel;
|
||||
//# sourceMappingURL=check-cancel.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"check-cancel.js","sourceRoot":"","sources":["../../../src/transaction/check-cancel.ts"],"names":[],"mappings":";;AAAA,mCAA0C;AAC1C,sCAAkC;AAQlC,SAAS,4BAA4B,CACnC,OAAe,EACf,MAA6B;IAE7B,MAAM,MAAM,GAAG;QACb,OAAO,EAAE,OAAO;QAChB,eAAe,EAAE,aAAa;QAC9B,OAAO,EAAE,MAAM,CAAC,OAAO;KACxB,CAAA;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,kBAAkB,CAEzB,OAAe,EACf,WAAkC,EAClC,eAA6B,EAAE;IAE/B,IAAI;QACF,iBAAQ,CAAC,kBAAkB,CAAC,EAAC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAC,CAAC,CAAA;QACjE,MAAM,MAAM,GAAG,4BAA4B,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;QACjE,OAAO,0BAAkB,CAAC,MAAM,EAAE,IAAI,EAAE,YAAY,CAAC,CAAA;KACtD;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;KACzB;AACH,CAAC;AAED,kBAAe,kBAAkB,CAAA"}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
import { Instructions, Prepare } from './types';
|
||||
import { Amount } from '../common/types/objects';
|
||||
import { RippleAPI } from '..';
|
||||
export declare type CheckCashParameters = {
|
||||
checkID: string;
|
||||
amount?: Amount;
|
||||
deliverMin?: Amount;
|
||||
};
|
||||
declare function prepareCheckCash(this: RippleAPI, address: string, checkCash: CheckCashParameters, instructions?: Instructions): Promise<Prepare>;
|
||||
export default prepareCheckCash;
|
||||
//# sourceMappingURL=check-cash.d.ts.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"check-cash.d.ts","sourceRoot":"","sources":["../../../src/transaction/check-cash.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,YAAY,EAAE,OAAO,EAAkB,MAAM,SAAS,CAAA;AAC9D,OAAO,EAAC,MAAM,EAAC,MAAM,yBAAyB,CAAA;AAC9C,OAAO,EAAC,SAAS,EAAC,MAAM,IAAI,CAAA;AAE5B,oBAAY,mBAAmB,GAAG;IAChC,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AA8BD,iBAAS,gBAAgB,CACvB,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,mBAAmB,EAC9B,YAAY,GAAE,YAAiB,GAC9B,OAAO,CAAC,OAAO,CAAC,CAQlB;AAED,eAAe,gBAAgB,CAAA"}
|
||||
+55
@@ -0,0 +1,55 @@
|
||||
"use strict";
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const utils = __importStar(require("./utils"));
|
||||
const ValidationError = utils.common.errors.ValidationError;
|
||||
const toRippledAmount = utils.common.toRippledAmount;
|
||||
const common_1 = require("../common");
|
||||
function createCheckCashTransaction(account, checkCash) {
|
||||
if (checkCash.amount && checkCash.deliverMin) {
|
||||
throw new ValidationError('"amount" and "deliverMin" properties on ' +
|
||||
'CheckCash are mutually exclusive');
|
||||
}
|
||||
const txJSON = {
|
||||
Account: account,
|
||||
TransactionType: 'CheckCash',
|
||||
CheckID: checkCash.checkID
|
||||
};
|
||||
if (checkCash.amount != null) {
|
||||
txJSON.Amount = toRippledAmount(checkCash.amount);
|
||||
}
|
||||
if (checkCash.deliverMin != null) {
|
||||
txJSON.DeliverMin = toRippledAmount(checkCash.deliverMin);
|
||||
}
|
||||
return txJSON;
|
||||
}
|
||||
function prepareCheckCash(address, checkCash, instructions = {}) {
|
||||
try {
|
||||
common_1.validate.prepareCheckCash({ address, checkCash, instructions });
|
||||
const txJSON = createCheckCashTransaction(address, checkCash);
|
||||
return utils.prepareTransaction(txJSON, this, instructions);
|
||||
}
|
||||
catch (e) {
|
||||
return Promise.reject(e);
|
||||
}
|
||||
}
|
||||
exports.default = prepareCheckCash;
|
||||
//# sourceMappingURL=check-cash.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"check-cash.js","sourceRoot":"","sources":["../../../src/transaction/check-cash.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,+CAAgC;AAChC,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,CAAA;AAC3D,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC,eAAe,CAAA;AACpD,sCAAkC;AAWlC,SAAS,0BAA0B,CACjC,OAAe,EACf,SAA8B;IAE9B,IAAI,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,UAAU,EAAE;QAC5C,MAAM,IAAI,eAAe,CACvB,0CAA0C;YACxC,kCAAkC,CACrC,CAAA;KACF;IAED,MAAM,MAAM,GAAQ;QAClB,OAAO,EAAE,OAAO;QAChB,eAAe,EAAE,WAAW;QAC5B,OAAO,EAAE,SAAS,CAAC,OAAO;KAC3B,CAAA;IAED,IAAI,SAAS,CAAC,MAAM,IAAI,IAAI,EAAE;QAC5B,MAAM,CAAC,MAAM,GAAG,eAAe,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;KAClD;IAED,IAAI,SAAS,CAAC,UAAU,IAAI,IAAI,EAAE;QAChC,MAAM,CAAC,UAAU,GAAG,eAAe,CAAC,SAAS,CAAC,UAAU,CAAC,CAAA;KAC1D;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,gBAAgB,CAEvB,OAAe,EACf,SAA8B,EAC9B,eAA6B,EAAE;IAE/B,IAAI;QACF,iBAAQ,CAAC,gBAAgB,CAAC,EAAC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAC,CAAC,CAAA;QAC7D,MAAM,MAAM,GAAG,0BAA0B,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;QAC7D,OAAO,KAAK,CAAC,kBAAkB,CAAC,MAAM,EAAE,IAAI,EAAE,YAAY,CAAC,CAAA;KAC5D;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;KACzB;AACH,CAAC;AAED,kBAAe,gBAAgB,CAAA"}
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
import { Instructions, Prepare } from './types';
|
||||
import { Amount } from '../common/types/objects';
|
||||
import { RippleAPI } from '..';
|
||||
export declare type CheckCreateParameters = {
|
||||
destination: string;
|
||||
sendMax: Amount;
|
||||
destinationTag?: number;
|
||||
expiration?: string;
|
||||
invoiceID?: string;
|
||||
};
|
||||
declare function prepareCheckCreate(this: RippleAPI, address: string, checkCreate: CheckCreateParameters, instructions?: Instructions): Promise<Prepare>;
|
||||
export default prepareCheckCreate;
|
||||
//# sourceMappingURL=check-create.d.ts.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"check-create.d.ts","sourceRoot":"","sources":["../../../src/transaction/check-create.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,YAAY,EAAE,OAAO,EAAkB,MAAM,SAAS,CAAA;AAC9D,OAAO,EAAC,MAAM,EAAC,MAAM,yBAAyB,CAAA;AAC9C,OAAO,EAAC,SAAS,EAAC,MAAM,IAAI,CAAA;AAE5B,oBAAY,qBAAqB,GAAG;IAClC,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;IACf,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AA4BD,iBAAS,kBAAkB,CACzB,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,qBAAqB,EAClC,YAAY,GAAE,YAAiB,GAC9B,OAAO,CAAC,OAAO,CAAC,CAQlB;AAED,eAAe,kBAAkB,CAAA"}
|
||||
+54
@@ -0,0 +1,54 @@
|
||||
"use strict";
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const utils = __importStar(require("./utils"));
|
||||
const toRippledAmount = utils.common.toRippledAmount;
|
||||
const common_1 = require("../common");
|
||||
function createCheckCreateTransaction(account, check) {
|
||||
const txJSON = {
|
||||
Account: account,
|
||||
TransactionType: 'CheckCreate',
|
||||
Destination: check.destination,
|
||||
SendMax: toRippledAmount(check.sendMax)
|
||||
};
|
||||
if (check.destinationTag != null) {
|
||||
txJSON.DestinationTag = check.destinationTag;
|
||||
}
|
||||
if (check.expiration != null) {
|
||||
txJSON.Expiration = common_1.iso8601ToRippleTime(check.expiration);
|
||||
}
|
||||
if (check.invoiceID != null) {
|
||||
txJSON.InvoiceID = check.invoiceID;
|
||||
}
|
||||
return txJSON;
|
||||
}
|
||||
function prepareCheckCreate(address, checkCreate, instructions = {}) {
|
||||
try {
|
||||
common_1.validate.prepareCheckCreate({ address, checkCreate, instructions });
|
||||
const txJSON = createCheckCreateTransaction(address, checkCreate);
|
||||
return utils.prepareTransaction(txJSON, this, instructions);
|
||||
}
|
||||
catch (e) {
|
||||
return Promise.reject(e);
|
||||
}
|
||||
}
|
||||
exports.default = prepareCheckCreate;
|
||||
//# sourceMappingURL=check-create.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"check-create.js","sourceRoot":"","sources":["../../../src/transaction/check-create.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,+CAAgC;AAChC,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC,eAAe,CAAA;AACpD,sCAAuD;AAavD,SAAS,4BAA4B,CACnC,OAAe,EACf,KAA4B;IAE5B,MAAM,MAAM,GAAQ;QAClB,OAAO,EAAE,OAAO;QAChB,eAAe,EAAE,aAAa;QAC9B,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,OAAO,EAAE,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC;KACxC,CAAA;IAED,IAAI,KAAK,CAAC,cAAc,IAAI,IAAI,EAAE;QAChC,MAAM,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc,CAAA;KAC7C;IAED,IAAI,KAAK,CAAC,UAAU,IAAI,IAAI,EAAE;QAC5B,MAAM,CAAC,UAAU,GAAG,4BAAmB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;KAC1D;IAED,IAAI,KAAK,CAAC,SAAS,IAAI,IAAI,EAAE;QAC3B,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAA;KACnC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,kBAAkB,CAEzB,OAAe,EACf,WAAkC,EAClC,eAA6B,EAAE;IAE/B,IAAI;QACF,iBAAQ,CAAC,kBAAkB,CAAC,EAAC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAC,CAAC,CAAA;QACjE,MAAM,MAAM,GAAG,4BAA4B,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;QACjE,OAAO,KAAK,CAAC,kBAAkB,CAAC,MAAM,EAAE,IAAI,EAAE,YAAY,CAAC,CAAA;KAC5D;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;KACzB;AACH,CAAC;AAED,kBAAe,kBAAkB,CAAA"}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
declare function combine(signedTransactions: Array<string>): object;
|
||||
export default combine;
|
||||
//# sourceMappingURL=combine.d.ts.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"combine.d.ts","sourceRoot":"","sources":["../../../src/transaction/combine.ts"],"names":[],"mappings":"AAoDA,iBAAS,OAAO,CAAC,kBAAkB,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,CAW1D;AAED,eAAe,OAAO,CAAA"}
|
||||
+62
@@ -0,0 +1,62 @@
|
||||
"use strict";
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const _ = __importStar(require("lodash"));
|
||||
const ripple_binary_codec_1 = __importDefault(require("ripple-binary-codec"));
|
||||
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
||||
const errors_1 = require("../common/errors");
|
||||
const ripple_address_codec_1 = require("ripple-address-codec");
|
||||
const common_1 = require("../common");
|
||||
const hashes_1 = require("../common/hashes");
|
||||
function validateTransactionEquivalence(transactions) {
|
||||
const exampleTransaction = JSON.stringify(Object.assign(Object.assign({}, transactions[0]), { Signers: null }));
|
||||
if (transactions.slice(1).some(tx => JSON.stringify(Object.assign(Object.assign({}, tx), { Signers: null })) !== exampleTransaction)) {
|
||||
throw new errors_1.ValidationError('txJSON is not the same for all signedTransactions');
|
||||
}
|
||||
}
|
||||
function addressToBigNumber(address) {
|
||||
const hex = Buffer.from(ripple_address_codec_1.decodeAccountID(address)).toString('hex');
|
||||
return new bignumber_js_1.default(hex, 16);
|
||||
}
|
||||
function compareSigners(a, b) {
|
||||
return addressToBigNumber(a.Signer.Account).comparedTo(addressToBigNumber(b.Signer.Account));
|
||||
}
|
||||
function getTransactionWithAllSigners(transactions) {
|
||||
const sortedSigners = _.flatMap(transactions, tx => tx.Signers)
|
||||
.filter(signer => signer)
|
||||
.sort(compareSigners);
|
||||
return Object.assign(Object.assign({}, transactions[0]), { Signers: sortedSigners });
|
||||
}
|
||||
function combine(signedTransactions) {
|
||||
common_1.validate.combine({ signedTransactions });
|
||||
const transactions = signedTransactions.map(ripple_binary_codec_1.default.decode);
|
||||
validateTransactionEquivalence(transactions);
|
||||
const signedTransaction = ripple_binary_codec_1.default.encode(getTransactionWithAllSigners(transactions));
|
||||
return {
|
||||
signedTransaction: signedTransaction,
|
||||
id: hashes_1.computeBinaryTransactionHash(signedTransaction)
|
||||
};
|
||||
}
|
||||
exports.default = combine;
|
||||
//# sourceMappingURL=combine.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"combine.js","sourceRoot":"","sources":["../../../src/transaction/combine.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,0CAA2B;AAC3B,8EAAwC;AACxC,gEAAoC;AACpC,6CAAgD;AAChD,+DAAoD;AACpD,sCAAkC;AAClC,6CAA6D;AAM5D,SAAS,8BAA8B,CAAC,YAA+B;IACtE,MAAM,kBAAkB,GAAG,IAAI,CAAC,SAAS,iCAAK,YAAY,CAAC,CAAC,CAAC,KAAE,OAAO,EAAE,IAAI,IAAE,CAAA;IAC9E,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,iCAAK,EAAE,KAAE,OAAO,EAAE,IAAI,IAAE,KAAK,kBAAkB,CAAC,EAAE;QACnG,MAAM,IAAI,wBAAe,CAAC,mDAAmD,CAAC,CAAA;KAC/E;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAO;IACjC,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,sCAAe,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IACjE,OAAO,IAAI,sBAAS,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;AAC/B,CAAC;AAQD,SAAS,cAAc,CAAC,CAAC,EAAE,CAAC;IAC1B,OAAO,kBAAkB,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,UAAU,CACpD,kBAAkB,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CACrC,CAAA;AACH,CAAC;AAED,SAAS,4BAA4B,CAAC,YAA+B;IAEnE,MAAM,aAAa,GAAG,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC;SAC5D,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC;SACxB,IAAI,CAAC,cAAc,CAAC,CAAA;IAEvB,uCAAW,YAAY,CAAC,CAAC,CAAC,KAAE,OAAO,EAAE,aAAa,IAAC;AACrD,CAAC;AASD,SAAS,OAAO,CAAC,kBAAiC;IAChD,iBAAQ,CAAC,OAAO,CAAC,EAAC,kBAAkB,EAAC,CAAC,CAAA;IAEtC,MAAM,YAAY,GAAiB,kBAAkB,CAAC,GAAG,CAAC,6BAAM,CAAC,MAAM,CAAC,CAAC;IACzE,8BAA8B,CAAC,YAAY,CAAC,CAAA;IAE5C,MAAM,iBAAiB,GAAG,6BAAM,CAAC,MAAM,CAAC,4BAA4B,CAAC,YAAY,CAAC,CAAC,CAAA;IACnF,OAAO;QACL,iBAAiB,EAAE,iBAAiB;QACpC,EAAE,EAAE,qCAA4B,CAAC,iBAAiB,CAAC;KACpD,CAAA;AACH,CAAC;AAED,kBAAe,OAAO,CAAA"}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
import { Instructions, Prepare } from './types';
|
||||
import { Memo } from '../common/types/objects';
|
||||
import { RippleAPI } from '..';
|
||||
export declare type EscrowCancellation = {
|
||||
owner: string;
|
||||
escrowSequence: number;
|
||||
memos?: Array<Memo>;
|
||||
};
|
||||
declare function prepareEscrowCancellation(this: RippleAPI, address: string, escrowCancellation: EscrowCancellation, instructions?: Instructions): Promise<Prepare>;
|
||||
export default prepareEscrowCancellation;
|
||||
//# sourceMappingURL=escrow-cancellation.d.ts.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"escrow-cancellation.d.ts","sourceRoot":"","sources":["../../../src/transaction/escrow-cancellation.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,YAAY,EAAE,OAAO,EAAkB,MAAM,SAAS,CAAA;AAC9D,OAAO,EAAC,IAAI,EAAC,MAAM,yBAAyB,CAAA;AAC5C,OAAO,EAAC,SAAS,EAAC,MAAM,IAAI,CAAA;AAE5B,oBAAY,kBAAkB,GAAG;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,cAAc,EAAE,MAAM,CAAA;IAItB,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;CACpB,CAAA;AAkBD,iBAAS,yBAAyB,CAChC,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,MAAM,EACf,kBAAkB,EAAE,kBAAkB,EACtC,YAAY,GAAE,YAAiB,GAC9B,OAAO,CAAC,OAAO,CAAC,CAWlB;AAED,eAAe,yBAAyB,CAAA"}
|
||||
+46
@@ -0,0 +1,46 @@
|
||||
"use strict";
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const utils = __importStar(require("./utils"));
|
||||
const validate = utils.common.validate;
|
||||
function createEscrowCancellationTransaction(account, payment) {
|
||||
const txJSON = {
|
||||
TransactionType: 'EscrowCancel',
|
||||
Account: account,
|
||||
Owner: payment.owner,
|
||||
OfferSequence: payment.escrowSequence
|
||||
};
|
||||
if (payment.memos != null) {
|
||||
txJSON.Memos = payment.memos.map(utils.convertMemo);
|
||||
}
|
||||
return txJSON;
|
||||
}
|
||||
function prepareEscrowCancellation(address, escrowCancellation, instructions = {}) {
|
||||
validate.prepareEscrowCancellation({
|
||||
address,
|
||||
escrowCancellation,
|
||||
instructions
|
||||
});
|
||||
const txJSON = createEscrowCancellationTransaction(address, escrowCancellation);
|
||||
return utils.prepareTransaction(txJSON, this, instructions);
|
||||
}
|
||||
exports.default = prepareEscrowCancellation;
|
||||
//# sourceMappingURL=escrow-cancellation.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"escrow-cancellation.js","sourceRoot":"","sources":["../../../src/transaction/escrow-cancellation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,+CAAgC;AAChC,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAA;AActC,SAAS,mCAAmC,CAC1C,OAAe,EACf,OAA2B;IAE3B,MAAM,MAAM,GAAQ;QAClB,eAAe,EAAE,cAAc;QAC/B,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,aAAa,EAAE,OAAO,CAAC,cAAc;KACtC,CAAA;IACD,IAAI,OAAO,CAAC,KAAK,IAAI,IAAI,EAAE;QACzB,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;KACpD;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,yBAAyB,CAEhC,OAAe,EACf,kBAAsC,EACtC,eAA6B,EAAE;IAE/B,QAAQ,CAAC,yBAAyB,CAAC;QACjC,OAAO;QACP,kBAAkB;QAClB,YAAY;KACb,CAAC,CAAA;IACF,MAAM,MAAM,GAAG,mCAAmC,CAChD,OAAO,EACP,kBAAkB,CACnB,CAAA;IACD,OAAO,KAAK,CAAC,kBAAkB,CAAC,MAAM,EAAE,IAAI,EAAE,YAAY,CAAC,CAAA;AAC7D,CAAC;AAED,kBAAe,yBAAyB,CAAA"}
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
import { Instructions, Prepare } from './types';
|
||||
import { Memo } from '../common/types/objects';
|
||||
import { RippleAPI } from '..';
|
||||
export declare type EscrowCreation = {
|
||||
amount: string;
|
||||
destination: string;
|
||||
memos?: Array<Memo>;
|
||||
condition?: string;
|
||||
allowCancelAfter?: string;
|
||||
allowExecuteAfter?: string;
|
||||
sourceTag?: number;
|
||||
destinationTag?: number;
|
||||
};
|
||||
declare function prepareEscrowCreation(this: RippleAPI, address: string, escrowCreation: EscrowCreation, instructions?: Instructions): Promise<Prepare>;
|
||||
export default prepareEscrowCreation;
|
||||
//# sourceMappingURL=escrow-creation.d.ts.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"escrow-creation.d.ts","sourceRoot":"","sources":["../../../src/transaction/escrow-creation.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,YAAY,EAAE,OAAO,EAAkB,MAAM,SAAS,CAAA;AAC9D,OAAO,EAAC,IAAI,EAAC,MAAM,yBAAyB,CAAA;AAC5C,OAAO,EAAC,SAAS,EAAC,MAAM,IAAI,CAAA;AAE5B,oBAAY,cAAc,GAAG;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB,CAAA;AA4CD,iBAAS,qBAAqB,CAC5B,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,cAAc,EAC9B,YAAY,GAAE,YAAiB,GAC9B,OAAO,CAAC,OAAO,CAAC,CAQlB;AAED,eAAe,qBAAqB,CAAA"}
|
||||
+69
@@ -0,0 +1,69 @@
|
||||
"use strict";
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const utils = __importStar(require("./utils"));
|
||||
const common_1 = require("../common");
|
||||
const ValidationError = utils.common.errors.ValidationError;
|
||||
function createEscrowCreationTransaction(account, payment) {
|
||||
const txJSON = {
|
||||
TransactionType: 'EscrowCreate',
|
||||
Account: account,
|
||||
Destination: payment.destination,
|
||||
Amount: common_1.xrpToDrops(payment.amount)
|
||||
};
|
||||
if (payment.condition != null) {
|
||||
txJSON.Condition = payment.condition;
|
||||
}
|
||||
if (payment.allowCancelAfter != null) {
|
||||
txJSON.CancelAfter = common_1.iso8601ToRippleTime(payment.allowCancelAfter);
|
||||
}
|
||||
if (payment.allowExecuteAfter != null) {
|
||||
txJSON.FinishAfter = common_1.iso8601ToRippleTime(payment.allowExecuteAfter);
|
||||
}
|
||||
if (payment.sourceTag != null) {
|
||||
txJSON.SourceTag = payment.sourceTag;
|
||||
}
|
||||
if (payment.destinationTag != null) {
|
||||
txJSON.DestinationTag = payment.destinationTag;
|
||||
}
|
||||
if (payment.memos != null) {
|
||||
txJSON.Memos = payment.memos.map(utils.convertMemo);
|
||||
}
|
||||
if (Boolean(payment.allowCancelAfter) &&
|
||||
Boolean(payment.allowExecuteAfter) &&
|
||||
txJSON.CancelAfter <= txJSON.FinishAfter) {
|
||||
throw new ValidationError('prepareEscrowCreation: ' +
|
||||
'"allowCancelAfter" must be after "allowExecuteAfter"');
|
||||
}
|
||||
return txJSON;
|
||||
}
|
||||
function prepareEscrowCreation(address, escrowCreation, instructions = {}) {
|
||||
try {
|
||||
common_1.validate.prepareEscrowCreation({ address, escrowCreation, instructions });
|
||||
const txJSON = createEscrowCreationTransaction(address, escrowCreation);
|
||||
return utils.prepareTransaction(txJSON, this, instructions);
|
||||
}
|
||||
catch (e) {
|
||||
return Promise.reject(e);
|
||||
}
|
||||
}
|
||||
exports.default = prepareEscrowCreation;
|
||||
//# sourceMappingURL=escrow-creation.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"escrow-creation.js","sourceRoot":"","sources":["../../../src/transaction/escrow-creation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,+CAAgC;AAChC,sCAAmE;AACnE,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,CAAA;AAgB3D,SAAS,+BAA+B,CACtC,OAAe,EACf,OAAuB;IAEvB,MAAM,MAAM,GAAQ;QAClB,eAAe,EAAE,cAAc;QAC/B,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,MAAM,EAAE,mBAAU,CAAC,OAAO,CAAC,MAAM,CAAC;KACnC,CAAA;IAED,IAAI,OAAO,CAAC,SAAS,IAAI,IAAI,EAAE;QAC7B,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAA;KACrC;IACD,IAAI,OAAO,CAAC,gBAAgB,IAAI,IAAI,EAAE;QACpC,MAAM,CAAC,WAAW,GAAG,4BAAmB,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAA;KACnE;IACD,IAAI,OAAO,CAAC,iBAAiB,IAAI,IAAI,EAAE;QACrC,MAAM,CAAC,WAAW,GAAG,4BAAmB,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAA;KACpE;IACD,IAAI,OAAO,CAAC,SAAS,IAAI,IAAI,EAAE;QAC7B,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAA;KACrC;IACD,IAAI,OAAO,CAAC,cAAc,IAAI,IAAI,EAAE;QAClC,MAAM,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAA;KAC/C;IACD,IAAI,OAAO,CAAC,KAAK,IAAI,IAAI,EAAE;QACzB,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;KACpD;IACD,IACE,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC;QACjC,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC;QAClC,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,EACxC;QACA,MAAM,IAAI,eAAe,CACvB,yBAAyB;YACvB,sDAAsD,CACzD,CAAA;KACF;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,qBAAqB,CAE5B,OAAe,EACf,cAA8B,EAC9B,eAA6B,EAAE;IAE/B,IAAI;QACF,iBAAQ,CAAC,qBAAqB,CAAC,EAAC,OAAO,EAAE,cAAc,EAAE,YAAY,EAAC,CAAC,CAAA;QACvE,MAAM,MAAM,GAAG,+BAA+B,CAAC,OAAO,EAAE,cAAc,CAAC,CAAA;QACvE,OAAO,KAAK,CAAC,kBAAkB,CAAC,MAAM,EAAE,IAAI,EAAE,YAAY,CAAC,CAAA;KAC5D;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;KACzB;AACH,CAAC;AAED,kBAAe,qBAAqB,CAAA"}
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
import { Instructions, Prepare } from './types';
|
||||
import { Memo } from '../common/types/objects';
|
||||
import { RippleAPI } from '..';
|
||||
export declare type EscrowExecution = {
|
||||
owner: string;
|
||||
escrowSequence: number;
|
||||
memos?: Array<Memo>;
|
||||
condition?: string;
|
||||
fulfillment?: string;
|
||||
};
|
||||
declare function prepareEscrowExecution(this: RippleAPI, address: string, escrowExecution: EscrowExecution, instructions?: Instructions): Promise<Prepare>;
|
||||
export default prepareEscrowExecution;
|
||||
//# sourceMappingURL=escrow-execution.d.ts.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"escrow-execution.d.ts","sourceRoot":"","sources":["../../../src/transaction/escrow-execution.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,YAAY,EAAE,OAAO,EAAkB,MAAM,SAAS,CAAA;AAC9D,OAAO,EAAC,IAAI,EAAC,MAAM,yBAAyB,CAAA;AAC5C,OAAO,EAAC,SAAS,EAAC,MAAM,IAAI,CAAA;AAE5B,oBAAY,eAAe,GAAG;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,cAAc,EAAE,MAAM,CAAA;IACtB,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA;AAgCD,iBAAS,sBAAsB,CAC7B,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,eAAe,EAChC,YAAY,GAAE,YAAiB,GAC9B,OAAO,CAAC,OAAO,CAAC,CAQlB;AAED,eAAe,sBAAsB,CAAA"}
|
||||
+58
@@ -0,0 +1,58 @@
|
||||
"use strict";
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const utils = __importStar(require("./utils"));
|
||||
const validate = utils.common.validate;
|
||||
const ValidationError = utils.common.errors.ValidationError;
|
||||
function createEscrowExecutionTransaction(account, payment) {
|
||||
const txJSON = {
|
||||
TransactionType: 'EscrowFinish',
|
||||
Account: account,
|
||||
Owner: payment.owner,
|
||||
OfferSequence: payment.escrowSequence
|
||||
};
|
||||
if (Boolean(payment.condition) !== Boolean(payment.fulfillment)) {
|
||||
throw new ValidationError('"condition" and "fulfillment" fields on' +
|
||||
' EscrowFinish must only be specified together.');
|
||||
}
|
||||
if (payment.condition != null) {
|
||||
txJSON.Condition = payment.condition;
|
||||
}
|
||||
if (payment.fulfillment != null) {
|
||||
txJSON.Fulfillment = payment.fulfillment;
|
||||
}
|
||||
if (payment.memos != null) {
|
||||
txJSON.Memos = payment.memos.map(utils.convertMemo);
|
||||
}
|
||||
return txJSON;
|
||||
}
|
||||
function prepareEscrowExecution(address, escrowExecution, instructions = {}) {
|
||||
try {
|
||||
validate.prepareEscrowExecution({ address, escrowExecution, instructions });
|
||||
const txJSON = createEscrowExecutionTransaction(address, escrowExecution);
|
||||
return utils.prepareTransaction(txJSON, this, instructions);
|
||||
}
|
||||
catch (e) {
|
||||
return Promise.reject(e);
|
||||
}
|
||||
}
|
||||
exports.default = prepareEscrowExecution;
|
||||
//# sourceMappingURL=escrow-execution.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"escrow-execution.js","sourceRoot":"","sources":["../../../src/transaction/escrow-execution.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,+CAAgC;AAChC,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAA;AACtC,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,CAAA;AAa3D,SAAS,gCAAgC,CACvC,OAAe,EACf,OAAwB;IAExB,MAAM,MAAM,GAAQ;QAClB,eAAe,EAAE,cAAc;QAC/B,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,aAAa,EAAE,OAAO,CAAC,cAAc;KACtC,CAAA;IAED,IAAI,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;QAC/D,MAAM,IAAI,eAAe,CACvB,yCAAyC;YACvC,gDAAgD,CACnD,CAAA;KACF;IAED,IAAI,OAAO,CAAC,SAAS,IAAI,IAAI,EAAE;QAC7B,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAA;KACrC;IACD,IAAI,OAAO,CAAC,WAAW,IAAI,IAAI,EAAE;QAC/B,MAAM,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAA;KACzC;IACD,IAAI,OAAO,CAAC,KAAK,IAAI,IAAI,EAAE;QACzB,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;KACpD;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,sBAAsB,CAE7B,OAAe,EACf,eAAgC,EAChC,eAA6B,EAAE;IAE/B,IAAI;QACF,QAAQ,CAAC,sBAAsB,CAAC,EAAC,OAAO,EAAE,eAAe,EAAE,YAAY,EAAC,CAAC,CAAA;QACzE,MAAM,MAAM,GAAG,gCAAgC,CAAC,OAAO,EAAE,eAAe,CAAC,CAAA;QACzE,OAAO,KAAK,CAAC,kBAAkB,CAAC,MAAM,EAAE,IAAI,EAAE,YAAY,CAAC,CAAA;KAC5D;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;KACzB;AACH,CAAC;AAED,kBAAe,sBAAsB,CAAA"}
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
import { Instructions, Prepare } from './types';
|
||||
import { FormattedOrderSpecification } from '../common/types/objects/index';
|
||||
import { RippleAPI } from '..';
|
||||
declare function prepareOrder(this: RippleAPI, address: string, order: FormattedOrderSpecification, instructions?: Instructions): Promise<Prepare>;
|
||||
export default prepareOrder;
|
||||
//# sourceMappingURL=order.d.ts.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"order.d.ts","sourceRoot":"","sources":["../../../src/transaction/order.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,YAAY,EAAE,OAAO,EAAyB,MAAM,SAAS,CAAA;AACrE,OAAO,EAAC,2BAA2B,EAAC,MAAM,+BAA+B,CAAA;AACzE,OAAO,EAAC,SAAS,EAAC,MAAM,IAAI,CAAA;AA4C5B,iBAAS,YAAY,CACnB,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,2BAA2B,EAClC,YAAY,GAAE,YAAiB,GAC9B,OAAO,CAAC,OAAO,CAAC,CAQlB;AAED,eAAe,YAAY,CAAA"}
|
||||
+69
@@ -0,0 +1,69 @@
|
||||
"use strict";
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const utils = __importStar(require("./utils"));
|
||||
const offerFlags = utils.common.txFlags.OfferCreate;
|
||||
const common_1 = require("../common");
|
||||
function createOrderTransaction(account, order) {
|
||||
const takerPays = common_1.toRippledAmount(order.direction === 'buy' ? order.quantity : order.totalPrice);
|
||||
const takerGets = common_1.toRippledAmount(order.direction === 'buy' ? order.totalPrice : order.quantity);
|
||||
const txJSON = {
|
||||
TransactionType: 'OfferCreate',
|
||||
Account: account,
|
||||
TakerGets: takerGets,
|
||||
TakerPays: takerPays,
|
||||
Flags: 0
|
||||
};
|
||||
if (order.direction === 'sell') {
|
||||
txJSON.Flags |= offerFlags.Sell;
|
||||
}
|
||||
if (order.passive === true) {
|
||||
txJSON.Flags |= offerFlags.Passive;
|
||||
}
|
||||
if (order.immediateOrCancel === true) {
|
||||
txJSON.Flags |= offerFlags.ImmediateOrCancel;
|
||||
}
|
||||
if (order.fillOrKill === true) {
|
||||
txJSON.Flags |= offerFlags.FillOrKill;
|
||||
}
|
||||
if (order.expirationTime != null) {
|
||||
txJSON.Expiration = common_1.iso8601ToRippleTime(order.expirationTime);
|
||||
}
|
||||
if (order.orderToReplace != null) {
|
||||
txJSON.OfferSequence = order.orderToReplace;
|
||||
}
|
||||
if (order.memos != null) {
|
||||
txJSON.Memos = order.memos.map(utils.convertMemo);
|
||||
}
|
||||
return txJSON;
|
||||
}
|
||||
function prepareOrder(address, order, instructions = {}) {
|
||||
try {
|
||||
common_1.validate.prepareOrder({ address, order, instructions });
|
||||
const txJSON = createOrderTransaction(address, order);
|
||||
return utils.prepareTransaction(txJSON, this, instructions);
|
||||
}
|
||||
catch (e) {
|
||||
return Promise.reject(e);
|
||||
}
|
||||
}
|
||||
exports.default = prepareOrder;
|
||||
//# sourceMappingURL=order.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"order.js","sourceRoot":"","sources":["../../../src/transaction/order.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,+CAAgC;AAChC,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAA;AACnD,sCAAwE;AAKxE,SAAS,sBAAsB,CAC7B,OAAe,EACf,KAAkC;IAElC,MAAM,SAAS,GAAG,wBAAe,CAC/B,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAC9D,CAAA;IACD,MAAM,SAAS,GAAG,wBAAe,CAC/B,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAC9D,CAAA;IAED,MAAM,MAAM,GAAoC;QAC9C,eAAe,EAAE,aAAa;QAC9B,OAAO,EAAE,OAAO;QAChB,SAAS,EAAE,SAAS;QACpB,SAAS,EAAE,SAAS;QACpB,KAAK,EAAE,CAAC;KACT,CAAA;IACD,IAAI,KAAK,CAAC,SAAS,KAAK,MAAM,EAAE;QAC9B,MAAM,CAAC,KAAK,IAAI,UAAU,CAAC,IAAI,CAAA;KAChC;IACD,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,EAAE;QAC1B,MAAM,CAAC,KAAK,IAAI,UAAU,CAAC,OAAO,CAAA;KACnC;IACD,IAAI,KAAK,CAAC,iBAAiB,KAAK,IAAI,EAAE;QACpC,MAAM,CAAC,KAAK,IAAI,UAAU,CAAC,iBAAiB,CAAA;KAC7C;IACD,IAAI,KAAK,CAAC,UAAU,KAAK,IAAI,EAAE;QAC7B,MAAM,CAAC,KAAK,IAAI,UAAU,CAAC,UAAU,CAAA;KACtC;IACD,IAAI,KAAK,CAAC,cAAc,IAAI,IAAI,EAAE;QAChC,MAAM,CAAC,UAAU,GAAG,4BAAmB,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;KAC9D;IACD,IAAI,KAAK,CAAC,cAAc,IAAI,IAAI,EAAE;QAChC,MAAM,CAAC,aAAa,GAAG,KAAK,CAAC,cAAc,CAAA;KAC5C;IACD,IAAI,KAAK,CAAC,KAAK,IAAI,IAAI,EAAE;QACvB,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;KAClD;IACD,OAAO,MAAgC,CAAA;AACzC,CAAC;AAED,SAAS,YAAY,CAEnB,OAAe,EACf,KAAkC,EAClC,eAA6B,EAAE;IAE/B,IAAI;QACF,iBAAQ,CAAC,YAAY,CAAC,EAAC,OAAO,EAAE,KAAK,EAAE,YAAY,EAAC,CAAC,CAAA;QACrD,MAAM,MAAM,GAAG,sBAAsB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QACrD,OAAO,KAAK,CAAC,kBAAkB,CAAC,MAAM,EAAE,IAAI,EAAE,YAAY,CAAC,CAAA;KAC5D;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;KACzB;AACH,CAAC;AAED,kBAAe,YAAY,CAAA"}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
import { Instructions, Prepare } from './types';
|
||||
import { RippleAPI } from '..';
|
||||
declare function prepareOrderCancellation(this: RippleAPI, address: string, orderCancellation: object, instructions?: Instructions): Promise<Prepare>;
|
||||
export default prepareOrderCancellation;
|
||||
//# sourceMappingURL=ordercancellation.d.ts.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"ordercancellation.d.ts","sourceRoot":"","sources":["../../../src/transaction/ordercancellation.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,YAAY,EAAE,OAAO,EAAkB,MAAM,SAAS,CAAA;AAC9D,OAAO,EAAC,SAAS,EAAC,MAAM,IAAI,CAAA;AAiB5B,iBAAS,wBAAwB,CAC/B,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,MAAM,EACf,iBAAiB,EAAE,MAAM,EACzB,YAAY,GAAE,YAAiB,GAC9B,OAAO,CAAC,OAAO,CAAC,CAelB;AAED,eAAe,wBAAwB,CAAA"}
|
||||
+50
@@ -0,0 +1,50 @@
|
||||
"use strict";
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const utils = __importStar(require("./utils"));
|
||||
const validate = utils.common.validate;
|
||||
function createOrderCancellationTransaction(account, orderCancellation) {
|
||||
const txJSON = {
|
||||
TransactionType: 'OfferCancel',
|
||||
Account: account,
|
||||
OfferSequence: orderCancellation.orderSequence
|
||||
};
|
||||
if (orderCancellation.memos != null) {
|
||||
txJSON.Memos = orderCancellation.memos.map(utils.convertMemo);
|
||||
}
|
||||
return txJSON;
|
||||
}
|
||||
function prepareOrderCancellation(address, orderCancellation, instructions = {}) {
|
||||
try {
|
||||
validate.prepareOrderCancellation({
|
||||
address,
|
||||
orderCancellation,
|
||||
instructions
|
||||
});
|
||||
const txJSON = createOrderCancellationTransaction(address, orderCancellation);
|
||||
return utils.prepareTransaction(txJSON, this, instructions);
|
||||
}
|
||||
catch (e) {
|
||||
return Promise.reject(e);
|
||||
}
|
||||
}
|
||||
exports.default = prepareOrderCancellation;
|
||||
//# sourceMappingURL=ordercancellation.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"ordercancellation.js","sourceRoot":"","sources":["../../../src/transaction/ordercancellation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,+CAAgC;AAChC,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAA;AAItC,SAAS,kCAAkC,CACzC,OAAe,EACf,iBAAsB;IAEtB,MAAM,MAAM,GAAQ;QAClB,eAAe,EAAE,aAAa;QAC9B,OAAO,EAAE,OAAO;QAChB,aAAa,EAAE,iBAAiB,CAAC,aAAa;KAC/C,CAAA;IACD,IAAI,iBAAiB,CAAC,KAAK,IAAI,IAAI,EAAE;QACnC,MAAM,CAAC,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;KAC9D;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,wBAAwB,CAE/B,OAAe,EACf,iBAAyB,EACzB,eAA6B,EAAE;IAE/B,IAAI;QACF,QAAQ,CAAC,wBAAwB,CAAC;YAChC,OAAO;YACP,iBAAiB;YACjB,YAAY;SACb,CAAC,CAAA;QACF,MAAM,MAAM,GAAG,kCAAkC,CAC/C,OAAO,EACP,iBAAiB,CAClB,CAAA;QACD,OAAO,KAAK,CAAC,kBAAkB,CAAC,MAAM,EAAE,IAAI,EAAE,YAAY,CAAC,CAAA;KAC5D;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;KACzB;AACH,CAAC;AAED,kBAAe,wBAAwB,CAAA"}
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
import { Instructions, Prepare } from './types';
|
||||
import { RippleAPI } from '..';
|
||||
export declare type PaymentChannelClaim = {
|
||||
channel: string;
|
||||
balance?: string;
|
||||
amount?: string;
|
||||
signature?: string;
|
||||
publicKey?: string;
|
||||
renew?: boolean;
|
||||
close?: boolean;
|
||||
};
|
||||
declare function preparePaymentChannelClaim(this: RippleAPI, address: string, paymentChannelClaim: PaymentChannelClaim, instructions?: Instructions): Promise<Prepare>;
|
||||
export default preparePaymentChannelClaim;
|
||||
//# sourceMappingURL=payment-channel-claim.d.ts.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"payment-channel-claim.d.ts","sourceRoot":"","sources":["../../../src/transaction/payment-channel-claim.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,YAAY,EAAE,OAAO,EAAkB,MAAM,SAAS,CAAA;AAC9D,OAAO,EAAC,SAAS,EAAC,MAAM,IAAI,CAAA;AAE5B,oBAAY,mBAAmB,GAAG;IAChC,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,CAAA;AAmDD,iBAAS,0BAA0B,CACjC,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,MAAM,EACf,mBAAmB,EAAE,mBAAmB,EACxC,YAAY,GAAE,YAAiB,GAC9B,OAAO,CAAC,OAAO,CAAC,CAelB;AAED,eAAe,0BAA0B,CAAA"}
|
||||
+76
@@ -0,0 +1,76 @@
|
||||
"use strict";
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const utils = __importStar(require("./utils"));
|
||||
const ValidationError = utils.common.errors.ValidationError;
|
||||
const claimFlags = utils.common.txFlags.PaymentChannelClaim;
|
||||
const common_1 = require("../common");
|
||||
function createPaymentChannelClaimTransaction(account, claim) {
|
||||
const txJSON = {
|
||||
Account: account,
|
||||
TransactionType: 'PaymentChannelClaim',
|
||||
Channel: claim.channel,
|
||||
Flags: 0
|
||||
};
|
||||
if (claim.balance != null) {
|
||||
txJSON.Balance = common_1.xrpToDrops(claim.balance);
|
||||
}
|
||||
if (claim.amount != null) {
|
||||
txJSON.Amount = common_1.xrpToDrops(claim.amount);
|
||||
}
|
||||
if (Boolean(claim.signature) !== Boolean(claim.publicKey)) {
|
||||
throw new ValidationError('"signature" and "publicKey" fields on' +
|
||||
' PaymentChannelClaim must only be specified together.');
|
||||
}
|
||||
if (claim.signature != null) {
|
||||
txJSON.Signature = claim.signature;
|
||||
}
|
||||
if (claim.publicKey != null) {
|
||||
txJSON.PublicKey = claim.publicKey;
|
||||
}
|
||||
if (claim.renew === true && claim.close === true) {
|
||||
throw new ValidationError('"renew" and "close" flags on PaymentChannelClaim' +
|
||||
' are mutually exclusive');
|
||||
}
|
||||
if (claim.renew === true) {
|
||||
txJSON.Flags |= claimFlags.Renew;
|
||||
}
|
||||
if (claim.close === true) {
|
||||
txJSON.Flags |= claimFlags.Close;
|
||||
}
|
||||
return txJSON;
|
||||
}
|
||||
function preparePaymentChannelClaim(address, paymentChannelClaim, instructions = {}) {
|
||||
try {
|
||||
common_1.validate.preparePaymentChannelClaim({
|
||||
address,
|
||||
paymentChannelClaim,
|
||||
instructions
|
||||
});
|
||||
const txJSON = createPaymentChannelClaimTransaction(address, paymentChannelClaim);
|
||||
return utils.prepareTransaction(txJSON, this, instructions);
|
||||
}
|
||||
catch (e) {
|
||||
return Promise.reject(e);
|
||||
}
|
||||
}
|
||||
exports.default = preparePaymentChannelClaim;
|
||||
//# sourceMappingURL=payment-channel-claim.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"payment-channel-claim.js","sourceRoot":"","sources":["../../../src/transaction/payment-channel-claim.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,+CAAgC;AAChC,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,CAAA;AAC3D,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAA;AAC3D,sCAA8C;AAc9C,SAAS,oCAAoC,CAC3C,OAAe,EACf,KAA0B;IAE1B,MAAM,MAAM,GAAoB;QAC9B,OAAO,EAAE,OAAO;QAChB,eAAe,EAAE,qBAAqB;QACtC,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,KAAK,EAAE,CAAC;KACT,CAAA;IAED,IAAI,KAAK,CAAC,OAAO,IAAI,IAAI,EAAE;QACzB,MAAM,CAAC,OAAO,GAAG,mBAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;KAC3C;IACD,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,EAAE;QACxB,MAAM,CAAC,MAAM,GAAG,mBAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;KACzC;IAED,IAAI,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;QACzD,MAAM,IAAI,eAAe,CACvB,uCAAuC;YACrC,uDAAuD,CAC1D,CAAA;KACF;IAED,IAAI,KAAK,CAAC,SAAS,IAAI,IAAI,EAAE;QAC3B,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAA;KACnC;IACD,IAAI,KAAK,CAAC,SAAS,IAAI,IAAI,EAAE;QAC3B,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAA;KACnC;IAED,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,EAAE;QAChD,MAAM,IAAI,eAAe,CACvB,kDAAkD;YAChD,yBAAyB,CAC5B,CAAA;KACF;IAED,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,EAAE;QACxB,MAAM,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAA;KACjC;IACD,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,EAAE;QACxB,MAAM,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAA;KACjC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,0BAA0B,CAEjC,OAAe,EACf,mBAAwC,EACxC,eAA6B,EAAE;IAE/B,IAAI;QACF,iBAAQ,CAAC,0BAA0B,CAAC;YAClC,OAAO;YACP,mBAAmB;YACnB,YAAY;SACb,CAAC,CAAA;QACF,MAAM,MAAM,GAAG,oCAAoC,CACjD,OAAO,EACP,mBAAmB,CACpB,CAAA;QACD,OAAO,KAAK,CAAC,kBAAkB,CAAC,MAAM,EAAE,IAAI,EAAE,YAAY,CAAC,CAAA;KAC5D;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;KACzB;AACH,CAAC;AAED,kBAAe,0BAA0B,CAAA"}
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
import { Instructions, Prepare } from './types';
|
||||
import { RippleAPI } from '..';
|
||||
export declare type PaymentChannelCreate = {
|
||||
amount: string;
|
||||
destination: string;
|
||||
settleDelay: number;
|
||||
publicKey: string;
|
||||
cancelAfter?: string;
|
||||
sourceTag?: number;
|
||||
destinationTag?: number;
|
||||
};
|
||||
declare function preparePaymentChannelCreate(this: RippleAPI, address: string, paymentChannelCreate: PaymentChannelCreate, instructions?: Instructions): Promise<Prepare>;
|
||||
export default preparePaymentChannelCreate;
|
||||
//# sourceMappingURL=payment-channel-create.d.ts.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"payment-channel-create.d.ts","sourceRoot":"","sources":["../../../src/transaction/payment-channel-create.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,YAAY,EAAE,OAAO,EAAkB,MAAM,SAAS,CAAA;AAC9D,OAAO,EAAC,SAAS,EAAC,MAAM,IAAI,CAAA;AAE5B,oBAAY,oBAAoB,GAAG;IACjC,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB,CAAA;AA4BD,iBAAS,2BAA2B,CAClC,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,MAAM,EACf,oBAAoB,EAAE,oBAAoB,EAC1C,YAAY,GAAE,YAAiB,GAC9B,OAAO,CAAC,OAAO,CAAC,CAelB;AAED,eAAe,2BAA2B,CAAA"}
|
||||
+59
@@ -0,0 +1,59 @@
|
||||
"use strict";
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const utils = __importStar(require("./utils"));
|
||||
const common_1 = require("../common");
|
||||
function createPaymentChannelCreateTransaction(account, paymentChannel) {
|
||||
const txJSON = {
|
||||
Account: account,
|
||||
TransactionType: 'PaymentChannelCreate',
|
||||
Amount: common_1.xrpToDrops(paymentChannel.amount),
|
||||
Destination: paymentChannel.destination,
|
||||
SettleDelay: paymentChannel.settleDelay,
|
||||
PublicKey: paymentChannel.publicKey.toUpperCase()
|
||||
};
|
||||
if (paymentChannel.cancelAfter != null) {
|
||||
txJSON.CancelAfter = common_1.iso8601ToRippleTime(paymentChannel.cancelAfter);
|
||||
}
|
||||
if (paymentChannel.sourceTag != null) {
|
||||
txJSON.SourceTag = paymentChannel.sourceTag;
|
||||
}
|
||||
if (paymentChannel.destinationTag != null) {
|
||||
txJSON.DestinationTag = paymentChannel.destinationTag;
|
||||
}
|
||||
return txJSON;
|
||||
}
|
||||
function preparePaymentChannelCreate(address, paymentChannelCreate, instructions = {}) {
|
||||
try {
|
||||
common_1.validate.preparePaymentChannelCreate({
|
||||
address,
|
||||
paymentChannelCreate,
|
||||
instructions
|
||||
});
|
||||
const txJSON = createPaymentChannelCreateTransaction(address, paymentChannelCreate);
|
||||
return utils.prepareTransaction(txJSON, this, instructions);
|
||||
}
|
||||
catch (e) {
|
||||
return Promise.reject(e);
|
||||
}
|
||||
}
|
||||
exports.default = preparePaymentChannelCreate;
|
||||
//# sourceMappingURL=payment-channel-create.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"payment-channel-create.js","sourceRoot":"","sources":["../../../src/transaction/payment-channel-create.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,+CAAgC;AAChC,sCAAmE;AAcnE,SAAS,qCAAqC,CAC5C,OAAe,EACf,cAAoC;IAEpC,MAAM,MAAM,GAAQ;QAClB,OAAO,EAAE,OAAO;QAChB,eAAe,EAAE,sBAAsB;QACvC,MAAM,EAAE,mBAAU,CAAC,cAAc,CAAC,MAAM,CAAC;QACzC,WAAW,EAAE,cAAc,CAAC,WAAW;QACvC,WAAW,EAAE,cAAc,CAAC,WAAW;QACvC,SAAS,EAAE,cAAc,CAAC,SAAS,CAAC,WAAW,EAAE;KAClD,CAAA;IAED,IAAI,cAAc,CAAC,WAAW,IAAI,IAAI,EAAE;QACtC,MAAM,CAAC,WAAW,GAAG,4BAAmB,CAAC,cAAc,CAAC,WAAW,CAAC,CAAA;KACrE;IACD,IAAI,cAAc,CAAC,SAAS,IAAI,IAAI,EAAE;QACpC,MAAM,CAAC,SAAS,GAAG,cAAc,CAAC,SAAS,CAAA;KAC5C;IACD,IAAI,cAAc,CAAC,cAAc,IAAI,IAAI,EAAE;QACzC,MAAM,CAAC,cAAc,GAAG,cAAc,CAAC,cAAc,CAAA;KACtD;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,2BAA2B,CAElC,OAAe,EACf,oBAA0C,EAC1C,eAA6B,EAAE;IAE/B,IAAI;QACF,iBAAQ,CAAC,2BAA2B,CAAC;YACnC,OAAO;YACP,oBAAoB;YACpB,YAAY;SACb,CAAC,CAAA;QACF,MAAM,MAAM,GAAG,qCAAqC,CAClD,OAAO,EACP,oBAAoB,CACrB,CAAA;QACD,OAAO,KAAK,CAAC,kBAAkB,CAAC,MAAM,EAAE,IAAI,EAAE,YAAY,CAAC,CAAA;KAC5D;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;KACzB;AACH,CAAC;AAED,kBAAe,2BAA2B,CAAA"}
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
import { Instructions, Prepare } from './types';
|
||||
import { RippleAPI } from '..';
|
||||
export declare type PaymentChannelFund = {
|
||||
channel: string;
|
||||
amount: string;
|
||||
expiration?: string;
|
||||
};
|
||||
declare function preparePaymentChannelFund(this: RippleAPI, address: string, paymentChannelFund: PaymentChannelFund, instructions?: Instructions): Promise<Prepare>;
|
||||
export default preparePaymentChannelFund;
|
||||
//# sourceMappingURL=payment-channel-fund.d.ts.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"payment-channel-fund.d.ts","sourceRoot":"","sources":["../../../src/transaction/payment-channel-fund.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,YAAY,EAAE,OAAO,EAAkB,MAAM,SAAS,CAAA;AAC9D,OAAO,EAAC,SAAS,EAAC,MAAM,IAAI,CAAA;AAE5B,oBAAY,kBAAkB,GAAG;IAC/B,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAoBD,iBAAS,yBAAyB,CAChC,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,MAAM,EACf,kBAAkB,EAAE,kBAAkB,EACtC,YAAY,GAAE,YAAiB,GAC9B,OAAO,CAAC,OAAO,CAAC,CAelB;AAED,eAAe,yBAAyB,CAAA"}
|
||||
+51
@@ -0,0 +1,51 @@
|
||||
"use strict";
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const utils = __importStar(require("./utils"));
|
||||
const common_1 = require("../common");
|
||||
function createPaymentChannelFundTransaction(account, fund) {
|
||||
const txJSON = {
|
||||
Account: account,
|
||||
TransactionType: 'PaymentChannelFund',
|
||||
Channel: fund.channel,
|
||||
Amount: common_1.xrpToDrops(fund.amount)
|
||||
};
|
||||
if (fund.expiration != null) {
|
||||
txJSON.Expiration = common_1.iso8601ToRippleTime(fund.expiration);
|
||||
}
|
||||
return txJSON;
|
||||
}
|
||||
function preparePaymentChannelFund(address, paymentChannelFund, instructions = {}) {
|
||||
try {
|
||||
common_1.validate.preparePaymentChannelFund({
|
||||
address,
|
||||
paymentChannelFund,
|
||||
instructions
|
||||
});
|
||||
const txJSON = createPaymentChannelFundTransaction(address, paymentChannelFund);
|
||||
return utils.prepareTransaction(txJSON, this, instructions);
|
||||
}
|
||||
catch (e) {
|
||||
return Promise.reject(e);
|
||||
}
|
||||
}
|
||||
exports.default = preparePaymentChannelFund;
|
||||
//# sourceMappingURL=payment-channel-fund.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"payment-channel-fund.js","sourceRoot":"","sources":["../../../src/transaction/payment-channel-fund.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,+CAAgC;AAChC,sCAAmE;AAUnE,SAAS,mCAAmC,CAC1C,OAAe,EACf,IAAwB;IAExB,MAAM,MAAM,GAAoB;QAC9B,OAAO,EAAE,OAAO;QAChB,eAAe,EAAE,oBAAoB;QACrC,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,MAAM,EAAE,mBAAU,CAAC,IAAI,CAAC,MAAM,CAAC;KAChC,CAAA;IAED,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE;QAC3B,MAAM,CAAC,UAAU,GAAG,4BAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;KACzD;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,yBAAyB,CAEhC,OAAe,EACf,kBAAsC,EACtC,eAA6B,EAAE;IAE/B,IAAI;QACF,iBAAQ,CAAC,yBAAyB,CAAC;YACjC,OAAO;YACP,kBAAkB;YAClB,YAAY;SACb,CAAC,CAAA;QACF,MAAM,MAAM,GAAG,mCAAmC,CAChD,OAAO,EACP,kBAAkB,CACnB,CAAA;QACD,OAAO,KAAK,CAAC,kBAAkB,CAAC,MAAM,EAAE,IAAI,EAAE,YAAY,CAAC,CAAA;KAC5D;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;KACzB;AACH,CAAC;AAED,kBAAe,yBAAyB,CAAA"}
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
import { Instructions, Prepare } from './types';
|
||||
import { Adjustment, MaxAdjustment, MinAdjustment, Memo } from '../common/types/objects';
|
||||
import { RippleAPI } from '..';
|
||||
export interface Payment {
|
||||
source: Adjustment | MaxAdjustment;
|
||||
destination: Adjustment | MinAdjustment;
|
||||
paths?: string;
|
||||
memos?: Array<Memo>;
|
||||
invoiceID?: string;
|
||||
allowPartialPayment?: boolean;
|
||||
noDirectRipple?: boolean;
|
||||
limitQuality?: boolean;
|
||||
}
|
||||
declare function preparePayment(this: RippleAPI, address: string, payment: Payment, instructions?: Instructions): Promise<Prepare>;
|
||||
export default preparePayment;
|
||||
//# sourceMappingURL=payment.d.ts.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"payment.d.ts","sourceRoot":"","sources":["../../../src/transaction/payment.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,YAAY,EAAE,OAAO,EAAkB,MAAM,SAAS,CAAA;AAC9D,OAAO,EAEL,UAAU,EACV,aAAa,EACb,aAAa,EACb,IAAI,EACL,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EAAC,SAAS,EAAC,MAAM,IAAI,CAAA;AAG5B,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,UAAU,GAAG,aAAa,CAAA;IAClC,WAAW,EAAE,UAAU,GAAG,aAAa,CAAA;IACvC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;IAEnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAIlB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAO7B,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB;AAiND,iBAAS,cAAc,CACrB,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,EAChB,YAAY,GAAE,YAAiB,GAC9B,OAAO,CAAC,OAAO,CAAC,CAQlB;AAED,eAAe,cAAc,CAAA"}
|
||||
+163
@@ -0,0 +1,163 @@
|
||||
"use strict";
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const _ = __importStar(require("lodash"));
|
||||
const utils = __importStar(require("./utils"));
|
||||
const validate = utils.common.validate;
|
||||
const paymentFlags = utils.common.txFlags.Payment;
|
||||
const ValidationError = utils.common.errors.ValidationError;
|
||||
const common_1 = require("../common");
|
||||
const utils_1 = require("./utils");
|
||||
function isMaxAdjustment(source) {
|
||||
return source.maxAmount != null;
|
||||
}
|
||||
function isMinAdjustment(destination) {
|
||||
return destination.minAmount != null;
|
||||
}
|
||||
function isXRPToXRPPayment(payment) {
|
||||
const { source, destination } = payment;
|
||||
const sourceCurrency = isMaxAdjustment(source)
|
||||
? source.maxAmount.currency
|
||||
: source.amount.currency;
|
||||
const destinationCurrency = isMinAdjustment(destination)
|
||||
? destination.minAmount.currency
|
||||
: destination.amount.currency;
|
||||
return ((sourceCurrency === 'XRP' || sourceCurrency === 'drops') &&
|
||||
(destinationCurrency === 'XRP' || destinationCurrency === 'drops'));
|
||||
}
|
||||
function isIOUWithoutCounterparty(amount) {
|
||||
return (amount &&
|
||||
amount.currency !== 'XRP' &&
|
||||
amount.currency !== 'drops' &&
|
||||
amount.counterparty == null);
|
||||
}
|
||||
function applyAnyCounterpartyEncoding(payment) {
|
||||
[payment.source, payment.destination].forEach((adjustment) => {
|
||||
['amount', 'minAmount', 'maxAmount'].forEach((key) => {
|
||||
if (isIOUWithoutCounterparty(adjustment[key])) {
|
||||
adjustment[key].counterparty = adjustment.address;
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
function createMaximalAmount(amount) {
|
||||
const maxXRPValue = '100000000000';
|
||||
const maxIOUValue = '999999999999999900000000000000000000000000000000000000000000000000000000000000000000000000000000';
|
||||
let maxValue;
|
||||
if (amount.currency === 'XRP') {
|
||||
maxValue = maxXRPValue;
|
||||
}
|
||||
else if (amount.currency === 'drops') {
|
||||
maxValue = common_1.xrpToDrops(maxXRPValue);
|
||||
}
|
||||
else {
|
||||
maxValue = maxIOUValue;
|
||||
}
|
||||
return Object.assign({}, amount, { value: maxValue });
|
||||
}
|
||||
function validateAndNormalizeAddress(address, expectedTag) {
|
||||
const classicAddress = utils_1.getClassicAccountAndTag(address, expectedTag);
|
||||
classicAddress.tag =
|
||||
classicAddress.tag === false ? undefined : classicAddress.tag;
|
||||
return classicAddress;
|
||||
}
|
||||
function createPaymentTransaction(address, paymentArgument) {
|
||||
const payment = _.cloneDeep(paymentArgument);
|
||||
applyAnyCounterpartyEncoding(payment);
|
||||
const sourceAddressAndTag = validateAndNormalizeAddress(payment.source.address, payment.source.tag);
|
||||
const addressToVerifyAgainst = validateAndNormalizeAddress(address, undefined);
|
||||
if (addressToVerifyAgainst.classicAccount !== sourceAddressAndTag.classicAccount) {
|
||||
throw new ValidationError('address must match payment.source.address');
|
||||
}
|
||||
if (addressToVerifyAgainst.tag != null &&
|
||||
sourceAddressAndTag.tag != null &&
|
||||
addressToVerifyAgainst.tag !== sourceAddressAndTag.tag) {
|
||||
throw new ValidationError('address includes a tag that does not match payment.source.tag');
|
||||
}
|
||||
const destinationAddressAndTag = validateAndNormalizeAddress(payment.destination.address, payment.destination.tag);
|
||||
if ((isMaxAdjustment(payment.source) && isMinAdjustment(payment.destination)) ||
|
||||
(!isMaxAdjustment(payment.source) && !isMinAdjustment(payment.destination))) {
|
||||
throw new ValidationError('payment must specify either (source.maxAmount ' +
|
||||
'and destination.amount) or (source.amount and destination.minAmount)');
|
||||
}
|
||||
const destinationAmount = isMinAdjustment(payment.destination)
|
||||
? payment.destination.minAmount
|
||||
: payment.destination.amount;
|
||||
const sourceAmount = isMaxAdjustment(payment.source)
|
||||
? payment.source.maxAmount
|
||||
: payment.source.amount;
|
||||
const amount = isMinAdjustment(payment.destination) && !isXRPToXRPPayment(payment)
|
||||
? createMaximalAmount(destinationAmount)
|
||||
: destinationAmount;
|
||||
const txJSON = {
|
||||
TransactionType: 'Payment',
|
||||
Account: sourceAddressAndTag.classicAccount,
|
||||
Destination: destinationAddressAndTag.classicAccount,
|
||||
Amount: common_1.toRippledAmount(amount),
|
||||
Flags: 0
|
||||
};
|
||||
if (payment.invoiceID != null) {
|
||||
txJSON.InvoiceID = payment.invoiceID;
|
||||
}
|
||||
if (sourceAddressAndTag.tag != null) {
|
||||
txJSON.SourceTag = sourceAddressAndTag.tag;
|
||||
}
|
||||
if (destinationAddressAndTag.tag != null) {
|
||||
txJSON.DestinationTag = destinationAddressAndTag.tag;
|
||||
}
|
||||
if (payment.memos != null) {
|
||||
txJSON.Memos = payment.memos.map(utils.convertMemo);
|
||||
}
|
||||
if (payment.noDirectRipple === true) {
|
||||
txJSON.Flags |= paymentFlags.NoRippleDirect;
|
||||
}
|
||||
if (payment.limitQuality === true) {
|
||||
txJSON.Flags |= paymentFlags.LimitQuality;
|
||||
}
|
||||
if (!isXRPToXRPPayment(payment)) {
|
||||
if (payment.allowPartialPayment || isMinAdjustment(payment.destination)) {
|
||||
txJSON.Flags |= paymentFlags.PartialPayment;
|
||||
}
|
||||
txJSON.SendMax = common_1.toRippledAmount(sourceAmount);
|
||||
if (isMinAdjustment(payment.destination)) {
|
||||
txJSON.DeliverMin = common_1.toRippledAmount(destinationAmount);
|
||||
}
|
||||
if (payment.paths != null) {
|
||||
txJSON.Paths = JSON.parse(payment.paths);
|
||||
}
|
||||
}
|
||||
else if (payment.allowPartialPayment === true) {
|
||||
throw new ValidationError('XRP to XRP payments cannot be partial payments');
|
||||
}
|
||||
return txJSON;
|
||||
}
|
||||
function preparePayment(address, payment, instructions = {}) {
|
||||
try {
|
||||
validate.preparePayment({ address, payment, instructions });
|
||||
const txJSON = createPaymentTransaction(address, payment);
|
||||
return utils.prepareTransaction(txJSON, this, instructions);
|
||||
}
|
||||
catch (e) {
|
||||
return Promise.reject(e);
|
||||
}
|
||||
}
|
||||
exports.default = preparePayment;
|
||||
//# sourceMappingURL=payment.js.map
|
||||
+1
File diff suppressed because one or more lines are too long
+6
@@ -0,0 +1,6 @@
|
||||
import { Instructions, Prepare } from './types';
|
||||
import { FormattedSettings } from '../common/types/objects';
|
||||
import { RippleAPI } from '..';
|
||||
declare function prepareSettings(this: RippleAPI, address: string, settings: FormattedSettings, instructions?: Instructions): Promise<Prepare>;
|
||||
export default prepareSettings;
|
||||
//# sourceMappingURL=settings.d.ts.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../../src/transaction/settings.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,YAAY,EACZ,OAAO,EAGR,MAAM,SAAS,CAAA;AAChB,OAAO,EAAC,iBAAiB,EAAiB,MAAM,yBAAyB,CAAA;AACzE,OAAO,EAAC,SAAS,EAAC,MAAM,IAAI,CAAA;AAyI5B,iBAAS,eAAe,CACtB,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,iBAAiB,EAC3B,YAAY,GAAE,YAAiB,GAC9B,OAAO,CAAC,OAAO,CAAC,CAQlB;AAED,eAAe,eAAe,CAAA"}
|
||||
+130
@@ -0,0 +1,130 @@
|
||||
"use strict";
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const assert = __importStar(require("assert"));
|
||||
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
||||
const utils = __importStar(require("./utils"));
|
||||
const validate = utils.common.validate;
|
||||
const AccountSetFlags = utils.common.constants.AccountSetFlags;
|
||||
const AccountFields = utils.common.constants.AccountFields;
|
||||
function setTransactionFlags(txJSON, values) {
|
||||
const keys = Object.keys(values).filter((key) => AccountSetFlags[key] != null);
|
||||
assert.ok(keys.length <= 1, 'ERROR: can only set one setting per transaction');
|
||||
const flagName = keys[0];
|
||||
const value = values[flagName];
|
||||
const index = AccountSetFlags[flagName];
|
||||
if (index != null) {
|
||||
if (value) {
|
||||
txJSON.SetFlag = index;
|
||||
}
|
||||
else {
|
||||
txJSON.ClearFlag = index;
|
||||
}
|
||||
}
|
||||
}
|
||||
function setTransactionFields(txJSON, input) {
|
||||
const fieldSchema = AccountFields;
|
||||
for (const fieldName in fieldSchema) {
|
||||
const field = fieldSchema[fieldName];
|
||||
let value = input[field.name];
|
||||
if (value === undefined) {
|
||||
continue;
|
||||
}
|
||||
if (value === null && field.hasOwnProperty('defaults')) {
|
||||
value = field.defaults;
|
||||
}
|
||||
if (field.encoding === 'hex' && !field.length) {
|
||||
value = Buffer.from(value, 'ascii').toString('hex').toUpperCase();
|
||||
}
|
||||
txJSON[fieldName] = value;
|
||||
}
|
||||
}
|
||||
function convertTransferRate(transferRate) {
|
||||
return new bignumber_js_1.default(transferRate).shiftedBy(9).toNumber();
|
||||
}
|
||||
function formatSignerEntry(signer) {
|
||||
return {
|
||||
SignerEntry: {
|
||||
Account: signer.address,
|
||||
SignerWeight: signer.weight
|
||||
}
|
||||
};
|
||||
}
|
||||
function createSettingsTransactionWithoutMemos(account, settings) {
|
||||
if (settings.regularKey !== undefined) {
|
||||
const removeRegularKey = {
|
||||
TransactionType: 'SetRegularKey',
|
||||
Account: account
|
||||
};
|
||||
if (settings.regularKey === null) {
|
||||
return removeRegularKey;
|
||||
}
|
||||
return Object.assign({}, removeRegularKey, {
|
||||
RegularKey: settings.regularKey
|
||||
});
|
||||
}
|
||||
if (settings.signers != null) {
|
||||
const setSignerList = {
|
||||
TransactionType: 'SignerListSet',
|
||||
Account: account,
|
||||
SignerEntries: [],
|
||||
SignerQuorum: settings.signers.threshold
|
||||
};
|
||||
if (settings.signers.weights != null) {
|
||||
setSignerList.SignerEntries = settings.signers.weights.map(formatSignerEntry);
|
||||
}
|
||||
return setSignerList;
|
||||
}
|
||||
const txJSON = {
|
||||
TransactionType: 'AccountSet',
|
||||
Account: account
|
||||
};
|
||||
const settingsWithoutMemos = Object.assign({}, settings);
|
||||
delete settingsWithoutMemos.memos;
|
||||
setTransactionFlags(txJSON, settingsWithoutMemos);
|
||||
setTransactionFields(txJSON, settings);
|
||||
if (txJSON.TransferRate != null) {
|
||||
txJSON.TransferRate = convertTransferRate(txJSON.TransferRate);
|
||||
}
|
||||
return txJSON;
|
||||
}
|
||||
function createSettingsTransaction(account, settings) {
|
||||
const txJSON = createSettingsTransactionWithoutMemos(account, settings);
|
||||
if (settings.memos != null) {
|
||||
txJSON.Memos = settings.memos.map(utils.convertMemo);
|
||||
}
|
||||
return txJSON;
|
||||
}
|
||||
function prepareSettings(address, settings, instructions = {}) {
|
||||
try {
|
||||
validate.prepareSettings({ address, settings, instructions });
|
||||
const txJSON = createSettingsTransaction(address, settings);
|
||||
return utils.prepareTransaction(txJSON, this, instructions);
|
||||
}
|
||||
catch (e) {
|
||||
return Promise.reject(e);
|
||||
}
|
||||
}
|
||||
exports.default = prepareSettings;
|
||||
//# sourceMappingURL=settings.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../../src/transaction/settings.ts"],"names":[],"mappings":"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"}
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
import { SignOptions, KeyPair } from './types';
|
||||
import { RippleAPI } from '..';
|
||||
declare function sign(this: RippleAPI, txJSON: string, secret?: any, options?: SignOptions, keypair?: KeyPair): {
|
||||
signedTransaction: string;
|
||||
id: string;
|
||||
};
|
||||
export default sign;
|
||||
//# sourceMappingURL=sign.d.ts.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"sign.d.ts","sourceRoot":"","sources":["../../../src/transaction/sign.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,WAAW,EAAE,OAAO,EAAkB,MAAM,SAAS,CAAA;AAG7D,OAAO,EAAC,SAAS,EAAC,MAAM,IAAI,CAAA;AA+M5B,iBAAS,IAAI,CACX,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,GAAG,EACZ,OAAO,CAAC,EAAE,WAAW,EACrB,OAAO,CAAC,EAAE,OAAO,GAChB;IAAC,iBAAiB,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAC,CAoBzC;AAED,eAAe,IAAI,CAAA"}
|
||||
+173
@@ -0,0 +1,173 @@
|
||||
"use strict";
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const lodash_1 = __importDefault(require("lodash"));
|
||||
const utils = __importStar(require("./utils"));
|
||||
const ripple_keypairs_1 = __importDefault(require("ripple-keypairs"));
|
||||
const ripple_binary_codec_1 = __importDefault(require("ripple-binary-codec"));
|
||||
const hashes_1 = require("../common/hashes");
|
||||
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
||||
const common_1 = require("../common");
|
||||
const validate = utils.common.validate;
|
||||
function computeSignature(tx, privateKey, signAs) {
|
||||
const signingData = signAs
|
||||
? ripple_binary_codec_1.default.encodeForMultisigning(tx, signAs)
|
||||
: ripple_binary_codec_1.default.encodeForSigning(tx);
|
||||
return ripple_keypairs_1.default.sign(signingData, privateKey);
|
||||
}
|
||||
function signWithKeypair(api, txJSON, keypair, options = {
|
||||
signAs: ''
|
||||
}) {
|
||||
validate.sign({ txJSON, keypair });
|
||||
const tx = JSON.parse(txJSON);
|
||||
if (tx.TxnSignature || tx.Signers) {
|
||||
throw new utils.common.errors.ValidationError('txJSON must not contain "TxnSignature" or "Signers" properties');
|
||||
}
|
||||
checkFee(api, tx.Fee);
|
||||
const txToSignAndEncode = Object.assign({}, tx);
|
||||
txToSignAndEncode.SigningPubKey = options.signAs ? '' : keypair.publicKey;
|
||||
if (options.signAs) {
|
||||
const signer = {
|
||||
Account: options.signAs,
|
||||
SigningPubKey: keypair.publicKey,
|
||||
TxnSignature: computeSignature(txToSignAndEncode, keypair.privateKey, options.signAs)
|
||||
};
|
||||
txToSignAndEncode.Signers = [{ Signer: signer }];
|
||||
}
|
||||
else {
|
||||
txToSignAndEncode.TxnSignature = computeSignature(txToSignAndEncode, keypair.privateKey);
|
||||
}
|
||||
const serialized = ripple_binary_codec_1.default.encode(txToSignAndEncode);
|
||||
checkTxSerialization(serialized, tx);
|
||||
return {
|
||||
signedTransaction: serialized,
|
||||
id: hashes_1.computeBinaryTransactionHash(serialized)
|
||||
};
|
||||
}
|
||||
function objectDiff(a, b) {
|
||||
const diffs = {};
|
||||
const compare = function (i1, i2, k) {
|
||||
const type1 = Object.prototype.toString.call(i1);
|
||||
const type2 = Object.prototype.toString.call(i2);
|
||||
if (type2 === '[object Undefined]') {
|
||||
diffs[k] = null;
|
||||
return;
|
||||
}
|
||||
if (type1 !== type2) {
|
||||
diffs[k] = i2;
|
||||
return;
|
||||
}
|
||||
if (type1 === '[object Object]') {
|
||||
const objDiff = objectDiff(i1, i2);
|
||||
if (Object.keys(objDiff).length > 0) {
|
||||
diffs[k] = objDiff;
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (type1 === '[object Array]') {
|
||||
if (!lodash_1.default.isEqual(i1, i2)) {
|
||||
diffs[k] = i2;
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (type1 === '[object Function]') {
|
||||
if (i1.toString() !== i2.toString()) {
|
||||
diffs[k] = i2;
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (i1 !== i2) {
|
||||
diffs[k] = i2;
|
||||
}
|
||||
};
|
||||
for (const key in a) {
|
||||
if (a.hasOwnProperty(key)) {
|
||||
compare(a[key], b[key], key);
|
||||
}
|
||||
}
|
||||
for (const key in b) {
|
||||
if (b.hasOwnProperty(key)) {
|
||||
if (!a[key] && a[key] !== b[key]) {
|
||||
diffs[key] = b[key];
|
||||
}
|
||||
}
|
||||
}
|
||||
return diffs;
|
||||
}
|
||||
function checkTxSerialization(serialized, tx) {
|
||||
var _a;
|
||||
const decoded = ripple_binary_codec_1.default.decode(serialized);
|
||||
if (!decoded.TxnSignature && !decoded.Signers) {
|
||||
throw new utils.common.errors.ValidationError('Serialized transaction must have a TxnSignature or Signers property');
|
||||
}
|
||||
delete decoded.TxnSignature;
|
||||
delete decoded.Signers;
|
||||
if (!tx.SigningPubKey) {
|
||||
delete decoded.SigningPubKey;
|
||||
}
|
||||
(_a = tx.Memos) === null || _a === void 0 ? void 0 : _a.map(memo => {
|
||||
var _a, _b, _c;
|
||||
if ((_a = memo === null || memo === void 0 ? void 0 : memo.Memo) === null || _a === void 0 ? void 0 : _a.MemoData) {
|
||||
memo.Memo.MemoData = memo.Memo.MemoData.toUpperCase();
|
||||
}
|
||||
if ((_b = memo === null || memo === void 0 ? void 0 : memo.Memo) === null || _b === void 0 ? void 0 : _b.MemoType) {
|
||||
memo.Memo.MemoType = memo.Memo.MemoType.toUpperCase();
|
||||
}
|
||||
if ((_c = memo === null || memo === void 0 ? void 0 : memo.Memo) === null || _c === void 0 ? void 0 : _c.MemoFormat) {
|
||||
memo.Memo.MemoFormat = memo.Memo.MemoFormat.toUpperCase();
|
||||
}
|
||||
return memo;
|
||||
});
|
||||
if (!lodash_1.default.isEqual(decoded, tx)) {
|
||||
const error = new utils.common.errors.ValidationError('Serialized transaction does not match original txJSON. See `error.data`');
|
||||
error.data = {
|
||||
decoded,
|
||||
tx,
|
||||
diff: objectDiff(tx, decoded)
|
||||
};
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
function checkFee(api, txFee) {
|
||||
const fee = new bignumber_js_1.default(txFee);
|
||||
const maxFeeDrops = common_1.xrpToDrops(api._maxFeeXRP);
|
||||
if (fee.isGreaterThan(maxFeeDrops)) {
|
||||
throw new utils.common.errors.ValidationError(`"Fee" should not exceed "${maxFeeDrops}". ` +
|
||||
'To use a higher fee, set `maxFeeXRP` in the RippleAPI constructor.');
|
||||
}
|
||||
}
|
||||
function sign(txJSON, secret, options, keypair) {
|
||||
if (typeof secret === 'string') {
|
||||
validate.sign({ txJSON, secret });
|
||||
return signWithKeypair(this, txJSON, ripple_keypairs_1.default.deriveKeypair(secret), options);
|
||||
}
|
||||
else {
|
||||
if (!keypair && !secret) {
|
||||
throw new utils.common.errors.ValidationError('sign: Missing secret or keypair.');
|
||||
}
|
||||
return signWithKeypair(this, txJSON, keypair ? keypair : secret, options);
|
||||
}
|
||||
}
|
||||
exports.default = sign;
|
||||
//# sourceMappingURL=sign.js.map
|
||||
+1
File diff suppressed because one or more lines are too long
+8
@@ -0,0 +1,8 @@
|
||||
import { RippleAPI } from '..';
|
||||
export interface FormattedSubmitResponse {
|
||||
resultCode: string;
|
||||
resultMessage: string;
|
||||
}
|
||||
declare function submit(this: RippleAPI, signedTransaction: string, failHard?: boolean): Promise<FormattedSubmitResponse>;
|
||||
export default submit;
|
||||
//# sourceMappingURL=submit.d.ts.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"submit.d.ts","sourceRoot":"","sources":["../../../src/transaction/submit.ts"],"names":[],"mappings":"AAQA,OAAO,EAAC,SAAS,EAAC,MAAM,IAAI,CAAA;AAE5B,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;CACtB;AA+BD,iBAAe,MAAM,CACnB,IAAI,EAAE,SAAS,EACf,iBAAiB,EAAE,MAAM,EACzB,QAAQ,CAAC,EAAE,OAAO,GACjB,OAAO,CAAC,uBAAuB,CAAC,CAUlC;AAED,eAAe,MAAM,CAAA"}
|
||||
+59
@@ -0,0 +1,59 @@
|
||||
"use strict";
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const utils = __importStar(require("./utils"));
|
||||
const common_1 = require("../common");
|
||||
function isImmediateRejection(engineResult) {
|
||||
return engineResult.startsWith('tem');
|
||||
}
|
||||
function formatSubmitResponse(response) {
|
||||
const data = {
|
||||
resultCode: response.engine_result,
|
||||
resultMessage: response.engine_result_message,
|
||||
engine_result: response.engine_result,
|
||||
engine_result_code: response.engine_result_code,
|
||||
engine_result_message: response.engine_result_message,
|
||||
tx_blob: response.tx_blob,
|
||||
tx_json: response.tx_json
|
||||
};
|
||||
if (isImmediateRejection(response.engine_result)) {
|
||||
throw new utils.common.errors.RippledError('Submit failed', data);
|
||||
}
|
||||
return data;
|
||||
}
|
||||
function submit(signedTransaction, failHard) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
common_1.validate.submit({ signedTransaction });
|
||||
const response = yield this.request('submit', Object.assign({ tx_blob: signedTransaction }, (failHard ? { fail_hard: failHard } : {})));
|
||||
return formatSubmitResponse(response);
|
||||
});
|
||||
}
|
||||
exports.default = submit;
|
||||
//# sourceMappingURL=submit.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"submit.js","sourceRoot":"","sources":["../../../src/transaction/submit.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,+CAAgC;AAChC,sCAAkC;AAQlC,SAAS,oBAAoB,CAAC,YAAoB;IAOhD,OAAO,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;AACvC,CAAC;AAED,SAAS,oBAAoB,CAAC,QAAQ;IACpC,MAAM,IAAI,GAAG;QAEX,UAAU,EAAE,QAAQ,CAAC,aAAa;QAElC,aAAa,EAAE,QAAQ,CAAC,qBAAqB;QAC7C,aAAa,EAAE,QAAQ,CAAC,aAAa;QACrC,kBAAkB,EAAE,QAAQ,CAAC,kBAAkB;QAC/C,qBAAqB,EAAE,QAAQ,CAAC,qBAAqB;QACrD,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,OAAO,EAAE,QAAQ,CAAC,OAAO;KAC1B,CAAA;IACD,IAAI,oBAAoB,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE;QAChD,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,eAAe,EAAE,IAAI,CAAC,CAAA;KAClE;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAGD,SAAe,MAAM,CAEnB,iBAAyB,EACzB,QAAkB;;QAGlB,iBAAQ,CAAC,MAAM,CAAC,EAAC,iBAAiB,EAAC,CAAC,CAAA;QAEpC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,kBAC1C,OAAO,EAAE,iBAAiB,IACvB,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAC,SAAS,EAAE,QAAQ,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAC1C,CAAA;QAEF,OAAO,oBAAoB,CAAC,QAAQ,CAAC,CAAA;IACvC,CAAC;CAAA;AAED,kBAAe,MAAM,CAAA"}
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
import { Prepare, Instructions } from './types';
|
||||
import { RippleAPI } from '..';
|
||||
export interface Ticket {
|
||||
account: string;
|
||||
sequence: number;
|
||||
}
|
||||
declare function prepareTicketCreate(this: RippleAPI, address: string, ticketCount: number, instructions?: Instructions): Promise<Prepare>;
|
||||
export default prepareTicketCreate;
|
||||
//# sourceMappingURL=ticket.d.ts.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"ticket.d.ts","sourceRoot":"","sources":["../../../src/transaction/ticket.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,OAAO,EAAmB,YAAY,EAAC,MAAM,SAAS,CAAA;AAC9D,OAAO,EAAC,SAAS,EAAC,MAAM,IAAI,CAAA;AAK5B,MAAM,WAAW,MAAM;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;CACjB;AAkBD,iBAAS,mBAAmB,CAC1B,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,YAAY,GAAE,YAAiB,GAC9B,OAAO,CAAC,OAAO,CAAC,CAQlB;AAED,eAAe,mBAAmB,CAAA"}
|
||||
+46
@@ -0,0 +1,46 @@
|
||||
"use strict";
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const utils = __importStar(require("./utils"));
|
||||
const validate = utils.common.validate;
|
||||
const ValidationError = utils.common.errors.ValidationError;
|
||||
function createTicketTransaction(account, ticketCount) {
|
||||
if (!ticketCount || ticketCount === 0)
|
||||
throw new ValidationError('Ticket count must be greater than 0.');
|
||||
const txJSON = {
|
||||
TransactionType: 'TicketCreate',
|
||||
Account: account,
|
||||
TicketCount: ticketCount
|
||||
};
|
||||
return txJSON;
|
||||
}
|
||||
function prepareTicketCreate(address, ticketCount, instructions = {}) {
|
||||
try {
|
||||
validate.prepareTicketCreate({ address, ticketCount, instructions });
|
||||
const txJSON = createTicketTransaction(address, ticketCount);
|
||||
return utils.prepareTransaction(txJSON, this, instructions);
|
||||
}
|
||||
catch (e) {
|
||||
return Promise.reject(e);
|
||||
}
|
||||
}
|
||||
exports.default = prepareTicketCreate;
|
||||
//# sourceMappingURL=ticket.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"ticket.js","sourceRoot":"","sources":["../../../src/transaction/ticket.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AACA,+CAAgC;AAIhC,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAA;AACtC,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,CAAA;AAO3D,SAAS,uBAAuB,CAC9B,OAAe,EACf,WAAmB;IAEnB,IAAI,CAAC,WAAW,IAAI,WAAW,KAAK,CAAC;QACnC,MAAM,IAAI,eAAe,CAAC,sCAAsC,CAAC,CAAA;IAEnE,MAAM,MAAM,GAAQ;QAClB,eAAe,EAAE,cAAc;QAC/B,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE,WAAW;KACzB,CAAA;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,mBAAmB,CAE1B,OAAe,EACf,WAAmB,EACnB,eAA6B,EAAE;IAE/B,IAAI;QACF,QAAQ,CAAC,mBAAmB,CAAC,EAAC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAC,CAAC,CAAA;QAClE,MAAM,MAAM,GAAG,uBAAuB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;QAC5D,OAAO,KAAK,CAAC,kBAAkB,CAAC,MAAM,EAAE,IAAI,EAAE,YAAY,CAAC,CAAA;KAC5D;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;KACzB;AACH,CAAC;AAED,kBAAe,mBAAmB,CAAA"}
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
import { Instructions, Prepare } from './types';
|
||||
import { FormattedTrustlineSpecification } from '../common/types/objects/trustlines';
|
||||
import { RippleAPI } from '..';
|
||||
declare function prepareTrustline(this: RippleAPI, address: string, trustline: FormattedTrustlineSpecification, instructions?: Instructions): Promise<Prepare>;
|
||||
export default prepareTrustline;
|
||||
//# sourceMappingURL=trustline.d.ts.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"trustline.d.ts","sourceRoot":"","sources":["../../../src/transaction/trustline.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,YAAY,EAAE,OAAO,EAAkB,MAAM,SAAS,CAAA;AAC9D,OAAO,EAAC,+BAA+B,EAAC,MAAM,oCAAoC,CAAA;AAClF,OAAO,EAAC,SAAS,EAAC,MAAM,IAAI,CAAA;AAkD5B,iBAAS,gBAAgB,CACvB,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,+BAA+B,EAC1C,YAAY,GAAE,YAAiB,GAC9B,OAAO,CAAC,OAAO,CAAC,CAQlB;AAED,eAAe,gBAAgB,CAAA"}
|
||||
+82
@@ -0,0 +1,82 @@
|
||||
"use strict";
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
||||
const utils = __importStar(require("./utils"));
|
||||
const validate = utils.common.validate;
|
||||
const trustlineFlags = utils.common.txFlags.TrustSet;
|
||||
function convertQuality(quality) {
|
||||
return new bignumber_js_1.default(quality)
|
||||
.shiftedBy(9)
|
||||
.integerValue(bignumber_js_1.default.ROUND_DOWN)
|
||||
.toNumber();
|
||||
}
|
||||
function createTrustlineTransaction(account, trustline) {
|
||||
const limit = {
|
||||
currency: trustline.currency,
|
||||
issuer: trustline.counterparty,
|
||||
value: trustline.limit
|
||||
};
|
||||
const txJSON = {
|
||||
TransactionType: 'TrustSet',
|
||||
Account: account,
|
||||
LimitAmount: limit,
|
||||
Flags: 0
|
||||
};
|
||||
if (trustline.qualityIn != null) {
|
||||
txJSON.QualityIn = convertQuality(trustline.qualityIn);
|
||||
}
|
||||
if (trustline.qualityOut != null) {
|
||||
txJSON.QualityOut = convertQuality(trustline.qualityOut);
|
||||
}
|
||||
if (trustline.authorized === true) {
|
||||
txJSON.Flags |= trustlineFlags.SetAuth;
|
||||
}
|
||||
if (trustline.ripplingDisabled != null) {
|
||||
txJSON.Flags |= trustline.ripplingDisabled
|
||||
? trustlineFlags.NoRipple
|
||||
: trustlineFlags.ClearNoRipple;
|
||||
}
|
||||
if (trustline.frozen != null) {
|
||||
txJSON.Flags |= trustline.frozen
|
||||
? trustlineFlags.SetFreeze
|
||||
: trustlineFlags.ClearFreeze;
|
||||
}
|
||||
if (trustline.memos != null) {
|
||||
txJSON.Memos = trustline.memos.map(utils.convertMemo);
|
||||
}
|
||||
return txJSON;
|
||||
}
|
||||
function prepareTrustline(address, trustline, instructions = {}) {
|
||||
try {
|
||||
validate.prepareTrustline({ address, trustline, instructions });
|
||||
const txJSON = createTrustlineTransaction(address, trustline);
|
||||
return utils.prepareTransaction(txJSON, this, instructions);
|
||||
}
|
||||
catch (e) {
|
||||
return Promise.reject(e);
|
||||
}
|
||||
}
|
||||
exports.default = prepareTrustline;
|
||||
//# sourceMappingURL=trustline.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"trustline.js","sourceRoot":"","sources":["../../../src/transaction/trustline.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,gEAAoC;AACpC,+CAAgC;AAChC,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAA;AACtC,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAA;AAKpD,SAAS,cAAc,CAAC,OAAO;IAC7B,OAAO,IAAI,sBAAS,CAAC,OAAO,CAAC;SAC1B,SAAS,CAAC,CAAC,CAAC;SACZ,YAAY,CAAC,sBAAS,CAAC,UAAU,CAAC;SAClC,QAAQ,EAAE,CAAA;AACf,CAAC;AAED,SAAS,0BAA0B,CACjC,OAAe,EACf,SAA0C;IAE1C,MAAM,KAAK,GAAG;QACZ,QAAQ,EAAE,SAAS,CAAC,QAAQ;QAC5B,MAAM,EAAE,SAAS,CAAC,YAAY;QAC9B,KAAK,EAAE,SAAS,CAAC,KAAK;KACvB,CAAA;IAED,MAAM,MAAM,GAAQ;QAClB,eAAe,EAAE,UAAU;QAC3B,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE,KAAK;QAClB,KAAK,EAAE,CAAC;KACT,CAAA;IACD,IAAI,SAAS,CAAC,SAAS,IAAI,IAAI,EAAE;QAC/B,MAAM,CAAC,SAAS,GAAG,cAAc,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;KACvD;IACD,IAAI,SAAS,CAAC,UAAU,IAAI,IAAI,EAAE;QAChC,MAAM,CAAC,UAAU,GAAG,cAAc,CAAC,SAAS,CAAC,UAAU,CAAC,CAAA;KACzD;IACD,IAAI,SAAS,CAAC,UAAU,KAAK,IAAI,EAAE;QACjC,MAAM,CAAC,KAAK,IAAI,cAAc,CAAC,OAAO,CAAA;KACvC;IACD,IAAI,SAAS,CAAC,gBAAgB,IAAI,IAAI,EAAE;QACtC,MAAM,CAAC,KAAK,IAAI,SAAS,CAAC,gBAAgB;YACxC,CAAC,CAAC,cAAc,CAAC,QAAQ;YACzB,CAAC,CAAC,cAAc,CAAC,aAAa,CAAA;KACjC;IACD,IAAI,SAAS,CAAC,MAAM,IAAI,IAAI,EAAE;QAC5B,MAAM,CAAC,KAAK,IAAI,SAAS,CAAC,MAAM;YAC9B,CAAC,CAAC,cAAc,CAAC,SAAS;YAC1B,CAAC,CAAC,cAAc,CAAC,WAAW,CAAA;KAC/B;IACD,IAAI,SAAS,CAAC,KAAK,IAAI,IAAI,EAAE;QAC3B,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;KACtD;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,gBAAgB,CAEvB,OAAe,EACf,SAA0C,EAC1C,eAA6B,EAAE;IAE/B,IAAI;QACF,QAAQ,CAAC,gBAAgB,CAAC,EAAC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAC,CAAC,CAAA;QAC7D,MAAM,MAAM,GAAG,0BAA0B,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;QAC7D,OAAO,KAAK,CAAC,kBAAkB,CAAC,MAAM,EAAE,IAAI,EAAE,YAAY,CAAC,CAAA;KAC5D;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;KACzB;AACH,CAAC;AAED,kBAAe,gBAAgB,CAAA"}
|
||||
+138
@@ -0,0 +1,138 @@
|
||||
import { FormattedOrderSpecification, FormattedTrustlineSpecification, Adjustment, RippledAmount, Memo, FormattedSettings } from '../common/types/objects';
|
||||
import { ApiMemo } from './utils';
|
||||
export declare type TransactionJSON = {
|
||||
Account: string;
|
||||
TransactionType: string;
|
||||
Memos?: {
|
||||
Memo: ApiMemo;
|
||||
}[];
|
||||
Flags?: number;
|
||||
Fulfillment?: string;
|
||||
[Field: string]: string | number | Array<any> | RippledAmount | undefined;
|
||||
};
|
||||
export declare type Instructions = {
|
||||
sequence?: number;
|
||||
ticketSequence?: number;
|
||||
fee?: string;
|
||||
maxFee?: string;
|
||||
maxLedgerVersion?: number;
|
||||
maxLedgerVersionOffset?: number;
|
||||
signersCount?: number;
|
||||
};
|
||||
export declare type Prepare = {
|
||||
txJSON: string;
|
||||
instructions: {
|
||||
fee: string;
|
||||
sequence?: number;
|
||||
ticketSequence?: number;
|
||||
maxLedgerVersion?: number;
|
||||
};
|
||||
};
|
||||
export declare type Submit = {
|
||||
success: boolean;
|
||||
engineResult: string;
|
||||
engineResultCode: number;
|
||||
engineResultMessage?: string;
|
||||
txBlob?: string;
|
||||
txJson?: object;
|
||||
};
|
||||
export interface OfferCreateTransaction extends TransactionJSON {
|
||||
TransactionType: 'OfferCreate';
|
||||
Account: string;
|
||||
Fee: string;
|
||||
Flags: number;
|
||||
LastLedgerSequence: number;
|
||||
Sequence: number;
|
||||
TakerGets: RippledAmount;
|
||||
TakerPays: RippledAmount;
|
||||
Expiration?: number;
|
||||
OfferSequence?: number;
|
||||
Memos?: {
|
||||
Memo: ApiMemo;
|
||||
}[];
|
||||
}
|
||||
export interface SettingsTransaction extends TransactionJSON {
|
||||
TransferRate?: number;
|
||||
}
|
||||
export declare type KeyPair = {
|
||||
publicKey: string;
|
||||
privateKey: string;
|
||||
};
|
||||
export declare type SignOptions = {
|
||||
signAs: string;
|
||||
};
|
||||
export declare type Outcome = {
|
||||
result: string;
|
||||
ledgerVersion: number;
|
||||
indexInLedger: number;
|
||||
fee: string;
|
||||
balanceChanges: {
|
||||
[key: string]: {
|
||||
currency: string;
|
||||
counterparty?: string;
|
||||
value: string;
|
||||
}[];
|
||||
};
|
||||
orderbookChanges: object;
|
||||
deliveredAmount?: {
|
||||
currency: string;
|
||||
counterparty?: string;
|
||||
value: string;
|
||||
};
|
||||
timestamp?: string;
|
||||
};
|
||||
export declare type FormattedOrderCancellation = {
|
||||
orderSequence: number;
|
||||
};
|
||||
export declare type FormattedPayment = {
|
||||
source: Adjustment;
|
||||
destination: Adjustment;
|
||||
paths?: string;
|
||||
memos?: Array<Memo>;
|
||||
invoiceID?: string;
|
||||
allowPartialPayment?: boolean;
|
||||
noDirectRipple?: boolean;
|
||||
limitQuality?: boolean;
|
||||
};
|
||||
export declare type FormattedPaymentTransaction = {
|
||||
type: string;
|
||||
specification: FormattedPayment;
|
||||
outcome: Outcome;
|
||||
id: string;
|
||||
address: string;
|
||||
sequence: number;
|
||||
};
|
||||
export declare type FormattedOrderTransaction = {
|
||||
type: string;
|
||||
specification: FormattedOrderSpecification;
|
||||
outcome: Outcome;
|
||||
id: string;
|
||||
address: string;
|
||||
sequence: number;
|
||||
};
|
||||
export declare type FormattedOrderCancellationTransaction = {
|
||||
type: string;
|
||||
specification: FormattedOrderCancellation;
|
||||
outcome: Outcome;
|
||||
id: string;
|
||||
address: string;
|
||||
sequence: number;
|
||||
};
|
||||
export declare type FormattedTrustlineTransaction = {
|
||||
type: string;
|
||||
specification: FormattedTrustlineSpecification;
|
||||
outcome: Outcome;
|
||||
id: string;
|
||||
address: string;
|
||||
sequence: number;
|
||||
};
|
||||
export declare type FormattedSettingsTransaction = {
|
||||
type: string;
|
||||
specification: FormattedSettings;
|
||||
outcome: Outcome;
|
||||
id: string;
|
||||
address: string;
|
||||
sequence: number;
|
||||
};
|
||||
export declare type FormattedTransactionType = FormattedPaymentTransaction | FormattedOrderTransaction | FormattedOrderCancellationTransaction | FormattedTrustlineTransaction | FormattedSettingsTransaction;
|
||||
//# sourceMappingURL=types.d.ts.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/transaction/types.ts"],"names":[],"mappings":"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"}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
//# sourceMappingURL=types.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/transaction/types.ts"],"names":[],"mappings":""}
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
import * as common from '../common';
|
||||
import { Memo } from '../common/types/objects';
|
||||
import { Instructions, Prepare, TransactionJSON } from './types';
|
||||
import { RippleAPI } from '..';
|
||||
export declare type ApiMemo = {
|
||||
MemoData?: string;
|
||||
MemoType?: string;
|
||||
MemoFormat?: string;
|
||||
};
|
||||
declare function setCanonicalFlag(txJSON: TransactionJSON): void;
|
||||
export interface ClassicAccountAndTag {
|
||||
classicAccount: string;
|
||||
tag: number | false | undefined;
|
||||
}
|
||||
declare function getClassicAccountAndTag(Account: string, expectedTag?: number): ClassicAccountAndTag;
|
||||
declare function prepareTransaction(txJSON: TransactionJSON, api: RippleAPI, instructions: Instructions): Promise<Prepare>;
|
||||
declare function convertStringToHex(string: string): string;
|
||||
declare function convertMemo(memo: Memo): {
|
||||
Memo: ApiMemo;
|
||||
};
|
||||
export { convertStringToHex, convertMemo, prepareTransaction, common, setCanonicalFlag, getClassicAccountAndTag };
|
||||
//# sourceMappingURL=utils.d.ts.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/transaction/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,WAAW,CAAA;AACnC,OAAO,EAAC,IAAI,EAAC,MAAM,yBAAyB,CAAA;AAC5C,OAAO,EAAC,YAAY,EAAE,OAAO,EAAE,eAAe,EAAC,MAAM,SAAS,CAAA;AAE9D,OAAO,EAAC,SAAS,EAAC,MAAM,IAAI,CAAA;AAY5B,oBAAY,OAAO,GAAG;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AA6BD,iBAAS,gBAAgB,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI,CAMvD;AAaD,MAAM,WAAW,oBAAoB;IACnC,cAAc,EAAE,MAAM,CAAA;IACtB,GAAG,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAAA;CAChC;AAeD,iBAAS,uBAAuB,CAC9B,OAAO,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,MAAM,GACnB,oBAAoB,CAkBtB;AAED,iBAAS,kBAAkB,CACzB,MAAM,EAAE,eAAe,EACvB,GAAG,EAAE,SAAS,EACd,YAAY,EAAE,YAAY,GACzB,OAAO,CAAC,OAAO,CAAC,CAkRlB;AAED,iBAAS,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,iBAAS,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG;IAAC,IAAI,EAAE,OAAO,CAAA;CAAC,CAQhD;AAED,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,kBAAkB,EAClB,MAAM,EACN,gBAAgB,EAChB,uBAAuB,EACxB,CAAA"}
|
||||
+285
@@ -0,0 +1,285 @@
|
||||
"use strict";
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.getClassicAccountAndTag = exports.setCanonicalFlag = exports.common = exports.prepareTransaction = exports.convertMemo = exports.convertStringToHex = void 0;
|
||||
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
||||
const common = __importStar(require("../common"));
|
||||
exports.common = common;
|
||||
const common_1 = require("../common");
|
||||
const errors_1 = require("../common/errors");
|
||||
const ripple_address_codec_1 = require("ripple-address-codec");
|
||||
const txFlags = common.txFlags;
|
||||
const TRANSACTION_TYPES_WITH_DESTINATION_TAG_FIELD = [
|
||||
'Payment',
|
||||
'CheckCreate',
|
||||
'EscrowCreate',
|
||||
'PaymentChannelCreate'
|
||||
];
|
||||
function formatPrepareResponse(txJSON) {
|
||||
const instructions = {
|
||||
fee: common.dropsToXrp(txJSON.Fee),
|
||||
maxLedgerVersion: txJSON.LastLedgerSequence == null ? null : txJSON.LastLedgerSequence
|
||||
};
|
||||
if (txJSON.TicketSequence != null) {
|
||||
instructions['ticketSequence'] = txJSON.TicketSequence;
|
||||
}
|
||||
else {
|
||||
instructions['sequence'] = txJSON.Sequence;
|
||||
}
|
||||
return {
|
||||
txJSON: JSON.stringify(txJSON),
|
||||
instructions
|
||||
};
|
||||
}
|
||||
function setCanonicalFlag(txJSON) {
|
||||
txJSON.Flags |= txFlags.Universal.FullyCanonicalSig;
|
||||
txJSON.Flags = txJSON.Flags >>> 0;
|
||||
}
|
||||
exports.setCanonicalFlag = setCanonicalFlag;
|
||||
function scaleValue(value, multiplier, extra = 0) {
|
||||
return new bignumber_js_1.default(value).times(multiplier).plus(extra).toString();
|
||||
}
|
||||
function getClassicAccountAndTag(Account, expectedTag) {
|
||||
if (ripple_address_codec_1.isValidXAddress(Account)) {
|
||||
const classic = ripple_address_codec_1.xAddressToClassicAddress(Account);
|
||||
if (expectedTag != null && classic.tag !== expectedTag) {
|
||||
throw new errors_1.ValidationError('address includes a tag that does not match the tag specified in the transaction');
|
||||
}
|
||||
return {
|
||||
classicAccount: classic.classicAddress,
|
||||
tag: classic.tag
|
||||
};
|
||||
}
|
||||
else {
|
||||
return {
|
||||
classicAccount: Account,
|
||||
tag: expectedTag
|
||||
};
|
||||
}
|
||||
}
|
||||
exports.getClassicAccountAndTag = getClassicAccountAndTag;
|
||||
function prepareTransaction(txJSON, api, instructions) {
|
||||
common.validate.instructions(instructions);
|
||||
common.validate.tx_json(txJSON);
|
||||
if (instructions.sequence != null && instructions.sequence === 0) {
|
||||
return Promise.reject(new errors_1.ValidationError('`sequence` cannot be 0'));
|
||||
}
|
||||
const disallowedFieldsInTxJSON = [
|
||||
'maxLedgerVersion',
|
||||
'maxLedgerVersionOffset',
|
||||
'fee',
|
||||
'sequence',
|
||||
'ticketSequence'
|
||||
];
|
||||
const badFields = disallowedFieldsInTxJSON.filter((field) => txJSON[field]);
|
||||
if (badFields.length) {
|
||||
return Promise.reject(new errors_1.ValidationError('txJSON additionalProperty "' +
|
||||
badFields[0] +
|
||||
'" exists in instance when not allowed'));
|
||||
}
|
||||
const newTxJSON = Object.assign({}, txJSON);
|
||||
if (txJSON['SignerQuorum'] === 0) {
|
||||
delete newTxJSON.SignerEntries;
|
||||
}
|
||||
const { classicAccount, tag: sourceTag } = getClassicAccountAndTag(txJSON.Account);
|
||||
newTxJSON.Account = classicAccount;
|
||||
if (sourceTag != null) {
|
||||
if (txJSON.SourceTag && txJSON.SourceTag !== sourceTag) {
|
||||
return Promise.reject(new errors_1.ValidationError('The `SourceTag`, if present, must match the tag of the `Account` X-address'));
|
||||
}
|
||||
if (sourceTag) {
|
||||
newTxJSON.SourceTag = sourceTag;
|
||||
}
|
||||
}
|
||||
if (typeof txJSON.Destination === 'string') {
|
||||
const { classicAccount: destinationAccount, tag: destinationTag } = getClassicAccountAndTag(txJSON.Destination);
|
||||
newTxJSON.Destination = destinationAccount;
|
||||
if (destinationTag != null) {
|
||||
if (TRANSACTION_TYPES_WITH_DESTINATION_TAG_FIELD.includes(txJSON.TransactionType)) {
|
||||
if (txJSON.DestinationTag && txJSON.DestinationTag !== destinationTag) {
|
||||
return Promise.reject(new errors_1.ValidationError('The Payment `DestinationTag`, if present, must match the tag of the `Destination` X-address'));
|
||||
}
|
||||
if (destinationTag) {
|
||||
newTxJSON.DestinationTag = destinationTag;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
function convertToClassicAccountIfPresent(fieldName) {
|
||||
const account = txJSON[fieldName];
|
||||
if (typeof account === 'string') {
|
||||
const { classicAccount: ca } = getClassicAccountAndTag(account);
|
||||
newTxJSON[fieldName] = ca;
|
||||
}
|
||||
}
|
||||
function convertIssuedCurrencyToAccountIfPresent(fieldName) {
|
||||
const amount = txJSON[fieldName];
|
||||
if (typeof amount === 'number'
|
||||
|| amount instanceof Array
|
||||
|| amount == null)
|
||||
return;
|
||||
newTxJSON[fieldName] = common_1.toRippledAmount(amount);
|
||||
}
|
||||
convertToClassicAccountIfPresent('Authorize');
|
||||
convertToClassicAccountIfPresent('Unauthorize');
|
||||
convertToClassicAccountIfPresent('Owner');
|
||||
convertToClassicAccountIfPresent('RegularKey');
|
||||
convertIssuedCurrencyToAccountIfPresent('Amount');
|
||||
convertIssuedCurrencyToAccountIfPresent('SendMax');
|
||||
convertIssuedCurrencyToAccountIfPresent('DeliverMin');
|
||||
convertIssuedCurrencyToAccountIfPresent('TakerPays');
|
||||
convertIssuedCurrencyToAccountIfPresent('TakerGets');
|
||||
convertIssuedCurrencyToAccountIfPresent('LimitAmount');
|
||||
setCanonicalFlag(newTxJSON);
|
||||
function prepareMaxLedgerVersion() {
|
||||
if (newTxJSON.LastLedgerSequence && instructions.maxLedgerVersion) {
|
||||
return Promise.reject(new errors_1.ValidationError('`LastLedgerSequence` in txJSON and `maxLedgerVersion`' +
|
||||
' in `instructions` cannot both be set'));
|
||||
}
|
||||
if (newTxJSON.LastLedgerSequence && instructions.maxLedgerVersionOffset) {
|
||||
return Promise.reject(new errors_1.ValidationError('`LastLedgerSequence` in txJSON and `maxLedgerVersionOffset`' +
|
||||
' in `instructions` cannot both be set'));
|
||||
}
|
||||
if (newTxJSON.LastLedgerSequence) {
|
||||
return Promise.resolve();
|
||||
}
|
||||
if (instructions.maxLedgerVersion !== undefined) {
|
||||
if (instructions.maxLedgerVersion !== null) {
|
||||
newTxJSON.LastLedgerSequence = instructions.maxLedgerVersion;
|
||||
}
|
||||
return Promise.resolve();
|
||||
}
|
||||
const offset = instructions.maxLedgerVersionOffset != null
|
||||
? instructions.maxLedgerVersionOffset
|
||||
: 3;
|
||||
return api.connection.getLedgerVersion().then((ledgerVersion) => {
|
||||
newTxJSON.LastLedgerSequence = ledgerVersion + offset;
|
||||
return;
|
||||
});
|
||||
}
|
||||
function prepareFee() {
|
||||
if (newTxJSON.Fee && instructions.fee) {
|
||||
return Promise.reject(new errors_1.ValidationError('`Fee` in txJSON and `fee` in `instructions` cannot both be set'));
|
||||
}
|
||||
if (newTxJSON.Fee) {
|
||||
return Promise.resolve();
|
||||
}
|
||||
const multiplier = instructions.signersCount == null
|
||||
? 1
|
||||
: instructions.signersCount + 1;
|
||||
if (instructions.fee != null) {
|
||||
const fee = new bignumber_js_1.default(instructions.fee);
|
||||
if (fee.isGreaterThan(api._maxFeeXRP)) {
|
||||
return Promise.reject(new errors_1.ValidationError(`Fee of ${fee.toString(10)} XRP exceeds ` +
|
||||
`max of ${api._maxFeeXRP} XRP. To use this fee, increase ` +
|
||||
'`maxFeeXRP` in the RippleAPI constructor.'));
|
||||
}
|
||||
newTxJSON.Fee = scaleValue(common.xrpToDrops(instructions.fee), multiplier);
|
||||
return Promise.resolve();
|
||||
}
|
||||
const cushion = api._feeCushion;
|
||||
return api.getFee(cushion).then((fee) => {
|
||||
return api.connection.getFeeRef().then((feeRef) => {
|
||||
const extraFee = newTxJSON.TransactionType !== 'EscrowFinish' ||
|
||||
newTxJSON.Fulfillment == null
|
||||
? 0
|
||||
: cushion *
|
||||
feeRef *
|
||||
(32 +
|
||||
Math.floor(Buffer.from(newTxJSON.Fulfillment, 'hex').length / 16));
|
||||
const feeDrops = common.xrpToDrops(fee);
|
||||
const maxFeeXRP = instructions.maxFee
|
||||
? bignumber_js_1.default.min(api._maxFeeXRP, instructions.maxFee)
|
||||
: api._maxFeeXRP;
|
||||
const maxFeeDrops = common.xrpToDrops(maxFeeXRP);
|
||||
const normalFee = scaleValue(feeDrops, multiplier, extraFee);
|
||||
newTxJSON.Fee = bignumber_js_1.default.min(normalFee, maxFeeDrops).toString(10);
|
||||
return;
|
||||
});
|
||||
});
|
||||
}
|
||||
function prepareSequence() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
if (instructions.sequence != null) {
|
||||
if (newTxJSON.Sequence == null ||
|
||||
instructions.sequence === newTxJSON.Sequence) {
|
||||
newTxJSON.Sequence = instructions.sequence;
|
||||
return Promise.resolve();
|
||||
}
|
||||
else {
|
||||
return Promise.reject(new errors_1.ValidationError('`Sequence` in txJSON must match `sequence` in `instructions`'));
|
||||
}
|
||||
}
|
||||
if (newTxJSON.Sequence != null) {
|
||||
return Promise.resolve();
|
||||
}
|
||||
if (instructions.ticketSequence != null) {
|
||||
newTxJSON.Sequence = 0;
|
||||
newTxJSON.TicketSequence = instructions.ticketSequence;
|
||||
return Promise.resolve();
|
||||
}
|
||||
try {
|
||||
const response = yield api.request('account_info', {
|
||||
account: classicAccount,
|
||||
ledger_index: 'current'
|
||||
});
|
||||
newTxJSON.Sequence = response.account_data.Sequence;
|
||||
return Promise.resolve();
|
||||
}
|
||||
catch (e) {
|
||||
return Promise.reject(e);
|
||||
}
|
||||
});
|
||||
}
|
||||
return Promise.all([
|
||||
prepareMaxLedgerVersion(),
|
||||
prepareFee(),
|
||||
prepareSequence()
|
||||
]).then(() => formatPrepareResponse(newTxJSON));
|
||||
}
|
||||
exports.prepareTransaction = prepareTransaction;
|
||||
function convertStringToHex(string) {
|
||||
return Buffer.from(string, 'utf8').toString('hex').toUpperCase();
|
||||
}
|
||||
exports.convertStringToHex = convertStringToHex;
|
||||
function convertMemo(memo) {
|
||||
return {
|
||||
Memo: common.removeUndefined({
|
||||
MemoData: memo.data ? convertStringToHex(memo.data) : undefined,
|
||||
MemoType: memo.type ? convertStringToHex(memo.type) : undefined,
|
||||
MemoFormat: memo.format ? convertStringToHex(memo.format) : undefined
|
||||
})
|
||||
};
|
||||
}
|
||||
exports.convertMemo = convertMemo;
|
||||
//# sourceMappingURL=utils.js.map
|
||||
+1
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user