This commit is contained in:
nitowa
2023-08-15 22:28:03 +02:00
commit 1dae68b1c7
5529 changed files with 1659171 additions and 0 deletions
+8
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -0,0 +1,3 @@
declare function combine(signedTransactions: Array<string>): object;
export default combine;
//# sourceMappingURL=combine.d.ts.map
+1
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
@@ -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
View File
@@ -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
@@ -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
View File
@@ -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
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
@@ -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
View File
@@ -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
@@ -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"}
@@ -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
@@ -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
View File
@@ -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
@@ -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"}
@@ -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
@@ -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
View File
@@ -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
@@ -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
View File
@@ -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
@@ -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
View File
@@ -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
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
File diff suppressed because one or more lines are too long
+6
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -0,0 +1 @@
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../../src/transaction/settings.ts"],"names":[],"mappings":"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"}
+8
View File
@@ -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
View File
@@ -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
View File
@@ -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
File diff suppressed because one or more lines are too long
+8
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -0,0 +1 @@
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/transaction/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,EAC3B,+BAA+B,EAC/B,UAAU,EACV,aAAa,EACb,IAAI,EACJ,iBAAiB,EAClB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAC,OAAO,EAAC,MAAM,SAAS,CAAA;AAE/B,oBAAY,eAAe,GAAG;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,eAAe,EAAE,MAAM,CAAA;IACvB,KAAK,CAAC,EAAE;QAAC,IAAI,EAAE,OAAO,CAAA;KAAC,EAAE,CAAA;IACzB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,aAAa,GAAG,SAAS,CAAA;CAC1E,CAAA;AAED,oBAAY,YAAY,GAAG;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,GAAG,CAAC,EAAE,MAAM,CAAA;IAEZ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,CAAA;AAED,oBAAY,OAAO,GAAG;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,EAAE;QACZ,GAAG,EAAE,MAAM,CAAA;QACX,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,cAAc,CAAC,EAAE,MAAM,CAAA;QACvB,gBAAgB,CAAC,EAAE,MAAM,CAAA;KAC1B,CAAA;CACF,CAAA;AAED,oBAAY,MAAM,GAAG;IACnB,OAAO,EAAE,OAAO,CAAA;IAChB,YAAY,EAAE,MAAM,CAAA;IACpB,gBAAgB,EAAE,MAAM,CAAA;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,WAAW,sBAAuB,SAAQ,eAAe;IAC7D,eAAe,EAAE,aAAa,CAAA;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,kBAAkB,EAAE,MAAM,CAAA;IAC1B,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,aAAa,CAAA;IACxB,SAAS,EAAE,aAAa,CAAA;IACxB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,KAAK,CAAC,EAAE;QAAC,IAAI,EAAE,OAAO,CAAA;KAAC,EAAE,CAAA;CAC1B;AAED,MAAM,WAAW,mBAAoB,SAAQ,eAAe;IAC1D,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,oBAAY,OAAO,GAAG;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,oBAAY,WAAW,GAAG;IACxB,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED,oBAAY,OAAO,GAAG;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,aAAa,EAAE,MAAM,CAAA;IACrB,aAAa,EAAE,MAAM,CAAA;IACrB,GAAG,EAAE,MAAM,CAAA;IACX,cAAc,EAAE;QACd,CAAC,GAAG,EAAE,MAAM,GAAG;YACb,QAAQ,EAAE,MAAM,CAAA;YAChB,YAAY,CAAC,EAAE,MAAM,CAAA;YACrB,KAAK,EAAE,MAAM,CAAA;SACd,EAAE,CAAA;KACJ,CAAA;IACD,gBAAgB,EAAE,MAAM,CAAA;IACxB,eAAe,CAAC,EAAE;QAChB,QAAQ,EAAE,MAAM,CAAA;QAChB,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,KAAK,EAAE,MAAM,CAAA;KACd,CAAA;IACD,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,oBAAY,0BAA0B,GAAG;IACvC,aAAa,EAAE,MAAM,CAAA;CACtB,CAAA;AAED,oBAAY,gBAAgB,GAAG;IAC7B,MAAM,EAAE,UAAU,CAAA;IAClB,WAAW,EAAE,UAAU,CAAA;IACvB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB,CAAA;AAED,oBAAY,2BAA2B,GAAG;IACxC,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,EAAE,gBAAgB,CAAA;IAC/B,OAAO,EAAE,OAAO,CAAA;IAChB,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,oBAAY,yBAAyB,GAAG;IACtC,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,EAAE,2BAA2B,CAAA;IAC1C,OAAO,EAAE,OAAO,CAAA;IAChB,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,oBAAY,qCAAqC,GAAG;IAClD,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,EAAE,0BAA0B,CAAA;IACzC,OAAO,EAAE,OAAO,CAAA;IAChB,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,oBAAY,6BAA6B,GAAG;IAC1C,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,EAAE,+BAA+B,CAAA;IAC9C,OAAO,EAAE,OAAO,CAAA;IAChB,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,oBAAY,4BAA4B,GAAG;IACzC,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,EAAE,iBAAiB,CAAA;IAChC,OAAO,EAAE,OAAO,CAAA;IAChB,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,oBAAY,wBAAwB,GAChC,2BAA2B,GAC3B,yBAAyB,GACzB,qCAAqC,GACrC,6BAA6B,GAC7B,4BAA4B,CAAA"}
+3
View File
@@ -0,0 +1,3 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=types.js.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/transaction/types.ts"],"names":[],"mappings":""}
+22
View File
@@ -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
View File
@@ -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
View File
@@ -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
File diff suppressed because one or more lines are too long