@wuwei-labs/srsly 4.2.0 → 4.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/accounts/rental.js +6 -2
- package/dist/cjs/accounts/rental.js.map +1 -1
- package/dist/cjs/instructions/acceptRental.js +17 -4
- package/dist/cjs/instructions/acceptRental.js.map +1 -1
- package/dist/cjs/instructions/closeRental.js +5 -0
- package/dist/cjs/instructions/closeRental.js.map +1 -1
- package/dist/cjs/kit/index.js +1 -2
- package/dist/cjs/kit/index.js.map +1 -1
- package/dist/cjs/legacy/index.js +1 -4
- package/dist/cjs/legacy/index.js.map +1 -1
- package/dist/cjs/utils/discountAuth.js +53 -71
- package/dist/cjs/utils/discountAuth.js.map +1 -1
- package/dist/cjs/utils/index.js +5 -1
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/esm/accounts/rental.js +6 -2
- package/dist/esm/accounts/rental.js.map +1 -1
- package/dist/esm/instructions/acceptRental.js +17 -4
- package/dist/esm/instructions/acceptRental.js.map +1 -1
- package/dist/esm/instructions/closeRental.js +5 -0
- package/dist/esm/instructions/closeRental.js.map +1 -1
- package/dist/esm/kit/index.js +1 -1
- package/dist/esm/kit/index.js.map +1 -1
- package/dist/esm/legacy/index.js +0 -2
- package/dist/esm/legacy/index.js.map +1 -1
- package/dist/esm/utils/discountAuth.js +51 -71
- package/dist/esm/utils/discountAuth.js.map +1 -1
- package/dist/esm/utils/index.js +2 -0
- package/dist/esm/utils/index.js.map +1 -1
- package/dist/types/accounts/rental.d.ts.map +1 -1
- package/dist/types/instructions/acceptRental.d.ts +6 -0
- package/dist/types/instructions/acceptRental.d.ts.map +1 -1
- package/dist/types/instructions/closeRental.d.ts.map +1 -1
- package/dist/types/kit/index.d.ts +1 -1
- package/dist/types/kit/index.d.ts.map +1 -1
- package/dist/types/legacy/index.d.ts +1 -1
- package/dist/types/legacy/index.d.ts.map +1 -1
- package/dist/types/utils/discountAuth.d.ts +35 -36
- package/dist/types/utils/discountAuth.d.ts.map +1 -1
- package/dist/types/utils/index.d.ts +1 -0
- package/dist/types/utils/index.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -84,13 +84,17 @@ async function fetchAllRentals(rpcUrl) {
|
|
|
84
84
|
const accounts = Array.isArray(response) ? response : response.value;
|
|
85
85
|
const results = [];
|
|
86
86
|
for (const account of accounts) {
|
|
87
|
+
const bytes = base64Encoder.encode(account.account.data[0]);
|
|
87
88
|
try {
|
|
88
|
-
const bytes = base64Encoder.encode(account.account.data[0]);
|
|
89
89
|
const decoded = decoder.decode(bytes);
|
|
90
90
|
results.push({ data: decoded, address: account.pubkey });
|
|
91
91
|
}
|
|
92
92
|
catch {
|
|
93
|
-
//
|
|
93
|
+
// Old schema — return address with minimal data so wipe can still delete
|
|
94
|
+
results.push({
|
|
95
|
+
data: { borrower: '11111111111111111111111111111111' },
|
|
96
|
+
address: account.pubkey,
|
|
97
|
+
});
|
|
94
98
|
}
|
|
95
99
|
}
|
|
96
100
|
return results;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rental.js","sourceRoot":"","sources":["../../../src/accounts/rental.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AA8BH,kCAkBC;AAiBD,
|
|
1
|
+
{"version":3,"file":"rental.js","sourceRoot":"","sources":["../../../src/accounts/rental.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AA8BH,kCAkBC;AAiBD,0CAiDC;AAhHD,qCAA6D;AAC7D,2DAAqI;AACrI,8DAA2E;AAC3E,4CAA4C;AAC5C,sCAAyC;AAEzC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACI,KAAK,UAAU,WAAW,CAC/B,aAA+B,EAC/B,MAAe;IAEf,IAAI,CAAC;QACH,0CAA0C;QAC1C,MAAM,cAAc,GAAG,MAAM,IAAI,IAAA,kBAAS,GAAE,CAAC;QAC7C,MAAM,GAAG,GAAG,IAAA,eAAS,EAAC,cAAc,CAAC,CAAC;QAEtC,sCAAsC;QACtC,MAAM,OAAO,GAAG,MAAM,IAAA,2BAAgB,EAAC,GAAG,EAAE,aAAwB,CAAC,CAAC;QAEtE,OAAO,OAAO,CAAC;IACjB,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACb,mCAAmC,aAAa,KAAK,KAAK,CAAC,OAAO,EAAE,CACrE,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACI,KAAK,UAAU,eAAe,CACnC,MAAe;IAEf,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,MAAM,IAAI,IAAA,kBAAS,GAAE,CAAC;QAC7C,MAAM,GAAG,GAAG,IAAA,eAAS,EAAC,cAAc,CAAC,CAAC;QAEtC,MAAM,mBAAmB,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,qCAA0B,CAAC,CAAC,CAAC;QAErF,MAAM,QAAQ,GAAG,MAAO,GAAW,CAAC,kBAAkB,CACpD,6BAAqB,EACrB;YACE,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE;gBACP;oBACE,MAAM,EAAE;wBACN,MAAM,EAAE,EAAE;wBACV,KAAK,EAAE,mBAAmB;wBAC1B,QAAQ,EAAE,QAAQ;qBACnB;iBACF;aACF;SACF,CACF,CAAC,IAAI,EAAE,CAAC;QAET,MAAM,aAAa,GAAG,IAAA,sBAAgB,GAAE,CAAC;QACzC,MAAM,OAAO,GAAG,IAAA,gCAAqB,GAAE,CAAC;QAExC,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;QACrE,MAAM,OAAO,GAAmD,EAAE,CAAC;QACnE,KAAK,MAAM,OAAO,IAAI,QAAiB,EAAE,CAAC;YACxC,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACtC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,MAAiB,EAAE,CAAC,CAAC;YACtE,CAAC;YAAC,MAAM,CAAC;gBACP,yEAAyE;gBACzE,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,EAAE,QAAQ,EAAE,kCAAkC,EAA4B;oBAChF,OAAO,EAAE,OAAO,CAAC,MAAiB;iBACnC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACb,sCAAsC,KAAK,CAAC,OAAO,EAAE,CACtD,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -23,6 +23,7 @@ const token_1 = require("../pda/token");
|
|
|
23
23
|
const thread_1 = require("../pda/thread");
|
|
24
24
|
const instructions_2 = require("../utils/instructions");
|
|
25
25
|
const types_1 = require("../generated/codama/types");
|
|
26
|
+
const discountAuth_1 = require("../utils/discountAuth");
|
|
26
27
|
/**
|
|
27
28
|
* Accept a rental contract
|
|
28
29
|
*
|
|
@@ -153,10 +154,22 @@ async function acceptRental(params, config) {
|
|
|
153
154
|
referrer,
|
|
154
155
|
sageProgram,
|
|
155
156
|
duration: BigInt(durationSeconds),
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
157
|
+
...(params.discountAuth
|
|
158
|
+
? (() => {
|
|
159
|
+
const d = (0, discountAuth_1.deserializeDiscountAuth)(params.discountAuth);
|
|
160
|
+
return {
|
|
161
|
+
discountSignature: d.discountSignature,
|
|
162
|
+
discountMemberNonce: d.discountMemberNonce,
|
|
163
|
+
discountBps: d.discountBps,
|
|
164
|
+
discountExpiresAt: d.discountExpiresAt,
|
|
165
|
+
};
|
|
166
|
+
})()
|
|
167
|
+
: {
|
|
168
|
+
discountSignature: null,
|
|
169
|
+
discountMemberNonce: null,
|
|
170
|
+
discountBps: null,
|
|
171
|
+
discountExpiresAt: null,
|
|
172
|
+
}),
|
|
160
173
|
}, { programAddress });
|
|
161
174
|
// Append SAGE pass-through accounts as remaining accounts
|
|
162
175
|
const sageRemainingAccounts = [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acceptRental.js","sourceRoot":"","sources":["../../../src/instructions/acceptRental.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;
|
|
1
|
+
{"version":3,"file":"acceptRental.js","sourceRoot":"","sources":["../../../src/instructions/acceptRental.ts"],"names":[],"mappings":"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"}
|
|
@@ -105,6 +105,11 @@ async function closeRental(params, config) {
|
|
|
105
105
|
vaultTokenAccount,
|
|
106
106
|
referrer,
|
|
107
107
|
borrowerTokenAccount,
|
|
108
|
+
// Don't pass queued accounts — codama auto-derives from seeds which triggers is_queued() constraint
|
|
109
|
+
// Pass program ID to signal None (Anchor optional account convention)
|
|
110
|
+
queuedRental: programAddress,
|
|
111
|
+
queuedBorrowerProfile: programAddress,
|
|
112
|
+
queuedBorrowerProfileFaction: programAddress,
|
|
108
113
|
sageProgram,
|
|
109
114
|
}, { programAddress });
|
|
110
115
|
return (0, instructions_2.prepareInstructions)(kitInstruction, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"closeRental.js","sourceRoot":"","sources":["../../../src/instructions/closeRental.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAqEH,
|
|
1
|
+
{"version":3,"file":"closeRental.js","sourceRoot":"","sources":["../../../src/instructions/closeRental.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/kit/index.js
CHANGED
|
@@ -52,7 +52,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
52
52
|
};
|
|
53
53
|
})();
|
|
54
54
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
55
|
-
exports.codama = exports.claim = exports.
|
|
55
|
+
exports.codama = exports.claim = exports.VERSION = void 0;
|
|
56
56
|
var version_1 = require("../version");
|
|
57
57
|
Object.defineProperty(exports, "VERSION", { enumerable: true, get: function () { return version_1.VERSION; } });
|
|
58
58
|
__exportStar(require("../utils"), exports);
|
|
@@ -62,7 +62,6 @@ __exportStar(require("../params"), exports);
|
|
|
62
62
|
__exportStar(require("../pda"), exports);
|
|
63
63
|
// External re-exports
|
|
64
64
|
var slyvault_1 = require("@wuwei-labs/slyvault");
|
|
65
|
-
Object.defineProperty(exports, "deriveDiscountPda", { enumerable: true, get: function () { return slyvault_1.deriveDiscountPda; } });
|
|
66
65
|
Object.defineProperty(exports, "claim", { enumerable: true, get: function () { return slyvault_1.claim; } });
|
|
67
66
|
exports.codama = __importStar(require("../generated/codama"));
|
|
68
67
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/kit/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,sCAAqC;AAA5B,kGAAA,OAAO,OAAA;AAChB,2CAAyB;AACzB,kDAAgC;AAChC,8CAA4B;AAC5B,4CAA0B;AAC1B,yCAAuB;AAEvB,sBAAsB;AACtB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/kit/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,sCAAqC;AAA5B,kGAAA,OAAO,OAAA;AAChB,2CAAyB;AACzB,kDAAgC;AAChC,8CAA4B;AAC5B,4CAA0B;AAC1B,yCAAuB;AAEvB,sBAAsB;AACtB,iDAG8B;AAF5B,iGAAA,KAAK,OAAA;AAIP,8DAA8C"}
|
package/dist/cjs/legacy/index.js
CHANGED
|
@@ -59,7 +59,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
59
59
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
60
60
|
};
|
|
61
61
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
62
|
-
exports.claim = exports.updateAffiliate = exports.removeAffiliate = exports.approveAffiliate = exports.createAffiliate = exports.deleteConfig = exports.updateConfig = exports.createConfig = exports.updateContractThread = exports.closeContractThread = exports.createContractThread = exports.claimContract = exports.deleteBorrower = exports.createBorrower = exports.closeBorrower = exports.claimBorrower = exports.deleteRental = exports.reserveRental = exports.invalidateRental = exports.releaseRental = exports.closeRental = exports.cancelRental = exports.acceptRental = exports.setDelegate = exports.deleteContract = exports.closeContract = exports.updateContract = exports.createContract = exports.
|
|
62
|
+
exports.claim = exports.updateAffiliate = exports.removeAffiliate = exports.approveAffiliate = exports.createAffiliate = exports.deleteConfig = exports.updateConfig = exports.createConfig = exports.updateContractThread = exports.closeContractThread = exports.createContractThread = exports.claimContract = exports.deleteBorrower = exports.createBorrower = exports.closeBorrower = exports.claimBorrower = exports.deleteRental = exports.reserveRental = exports.invalidateRental = exports.releaseRental = exports.closeRental = exports.cancelRental = exports.acceptRental = exports.setDelegate = exports.deleteContract = exports.closeContract = exports.updateContract = exports.createContract = exports.codama = exports.VERSION = void 0;
|
|
63
63
|
const utils_1 = require("../utils");
|
|
64
64
|
const kit = __importStar(require("../instructions"));
|
|
65
65
|
const slyvault_1 = require("@wuwei-labs/slyvault");
|
|
@@ -71,9 +71,6 @@ __exportStar(require("../pda"), exports);
|
|
|
71
71
|
var version_1 = require("../version");
|
|
72
72
|
Object.defineProperty(exports, "VERSION", { enumerable: true, get: function () { return version_1.VERSION; } });
|
|
73
73
|
exports.codama = __importStar(require("../generated/codama"));
|
|
74
|
-
// External re-exports
|
|
75
|
-
var slyvault_2 = require("@wuwei-labs/slyvault");
|
|
76
|
-
Object.defineProperty(exports, "deriveDiscountPda", { enumerable: true, get: function () { return slyvault_2.deriveDiscountPda; } });
|
|
77
74
|
/**
|
|
78
75
|
* Wrapper that checks for PublicKey and provides helpful error
|
|
79
76
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/legacy/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,oCAAwF;AACxF,qDAAuC;AACvC,mDAA8D;AAE9D,oDAAoD;AACpD,2CAAyB;AACzB,8CAA4B;AAC5B,4CAA0B;AAC1B,yCAAuB;AACvB,sCAAqC;AAA5B,kGAAA,OAAO,OAAA;AAChB,8DAA8C;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/legacy/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,oCAAwF;AACxF,qDAAuC;AACvC,mDAA8D;AAE9D,oDAAoD;AACpD,2CAAyB;AACzB,8CAA4B;AAC5B,4CAA0B;AAC1B,yCAAuB;AACvB,sCAAqC;AAA5B,kGAAA,OAAO,OAAA;AAChB,8DAA8C;AAQ9C;;GAEG;AACH,SAAS,UAAU,CACjB,EAAkD;IAElD,OAAO,KAAK,EAAE,GAAG,IAAW,EAAgC,EAAE;QAC5D,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;QACjC,MAAM,EAAE,GAAG,IAAA,oBAAY,GAAE,CAAC,SAAS,CAAC;QACpC,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,MAAM,IAAI,KAAK,CACb,8DAA8D;gBAC5D,iCAAiC;gBACjC,kDAAkD;gBAClD,8DAA8D;gBAC9D,gCAAgC,CACnC,CAAC;QACJ,CAAC;QACD,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,GAAG,UAAU,CAAC;AAErB,+DAA+D;AAClD,QAAA,cAAc,GAAG,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AACvC,QAAA,cAAc,GAAG,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AACvC,QAAA,aAAa,GAAG,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AACrC,QAAA,cAAc,GAAG,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AACvC,QAAA,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AACjC,QAAA,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AACnC,QAAA,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AACnC,QAAA,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AACjC,QAAA,aAAa,GAAG,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AACrC,QAAA,gBAAgB,GAAG,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AAC3C,QAAA,aAAa,GAAG,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AACrC,QAAA,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AACnC,QAAA,aAAa,GAAG,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AACrC,QAAA,aAAa,GAAG,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AACrC,QAAA,cAAc,GAAG,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AACvC,QAAA,cAAc,GAAG,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AACvC,QAAA,aAAa,GAAG,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AACrC,QAAA,oBAAoB,GAAG,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;AACnD,QAAA,mBAAmB,GAAG,CAAC,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;AACjD,QAAA,oBAAoB,GAAG,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;AACnD,QAAA,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AACnC,QAAA,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AACnC,QAAA,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AACnC,QAAA,eAAe,GAAG,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AACzC,QAAA,gBAAgB,GAAG,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AAC3C,QAAA,eAAe,GAAG,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AACzC,QAAA,eAAe,GAAG,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AACzC,QAAA,KAAK,GAAG,CAAC,CAAC,gBAAa,CAAC,CAAC"}
|
|
@@ -1,100 +1,82 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
* @purpose Discount
|
|
3
|
+
* @purpose Discount authorization helper for server-side signing
|
|
4
4
|
* @module utils/discountAuth
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* then returns the PDA address to the user for inclusion in rental transactions.
|
|
6
|
+
* Convenience wrapper that fetches member nonce + vault automatically,
|
|
7
|
+
* then delegates to slyvault's createDiscountAuth for signing.
|
|
9
8
|
*/
|
|
10
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
-
exports.
|
|
10
|
+
exports.deserializeDiscountAuth = void 0;
|
|
11
|
+
exports.createDiscount = createDiscount;
|
|
12
12
|
const kit_1 = require("@solana/kit");
|
|
13
13
|
const slyvault_1 = require("@wuwei-labs/slyvault");
|
|
14
14
|
const config_1 = require("./config");
|
|
15
|
-
const rpc_1 = require("./rpc");
|
|
16
15
|
/**
|
|
17
|
-
*
|
|
18
|
-
*/
|
|
19
|
-
async function parseKeypairString(keypairString) {
|
|
20
|
-
try {
|
|
21
|
-
const bytes = JSON.parse(keypairString);
|
|
22
|
-
if (!Array.isArray(bytes) || bytes.length !== 64) {
|
|
23
|
-
throw new Error('Invalid keypair: expected array of 64 bytes');
|
|
24
|
-
}
|
|
25
|
-
return await (0, kit_1.createKeyPairSignerFromBytes)(new Uint8Array(bytes));
|
|
26
|
-
}
|
|
27
|
-
catch (e) {
|
|
28
|
-
throw new Error(`Failed to parse keypair string: ${e.message}`);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Create a Discount PDA for a rental via slyvault's discount_create instruction.
|
|
16
|
+
* Create a signed discount authorization with auto-fetched member data
|
|
33
17
|
*
|
|
34
18
|
* Server-side helper that:
|
|
35
19
|
* 1. Fetches the member to get nonce + vault
|
|
36
|
-
* 2.
|
|
37
|
-
* 3.
|
|
38
|
-
* 4. Returns
|
|
39
|
-
*
|
|
40
|
-
* The caller is responsible for building and sending the transaction with the
|
|
41
|
-
* codama-generated `discountCreate` instruction using the returned params.
|
|
20
|
+
* 2. Computes expires_at from current time + expirySeconds
|
|
21
|
+
* 3. Signs the discount message
|
|
22
|
+
* 4. Returns JSON-safe SerializedDiscountAuth for API transport
|
|
42
23
|
*
|
|
43
24
|
* @param params - Discount parameters
|
|
44
25
|
* @param config - Optional SDK configuration overrides
|
|
45
|
-
* @returns
|
|
26
|
+
* @returns SerializedDiscountAuth ready for JSON API response
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```typescript
|
|
30
|
+
* // Server-side: create discount for a borrower
|
|
31
|
+
* const auth = await createDiscount({
|
|
32
|
+
* memberAddress: 'AFFILIATE_MEMBER_PDA',
|
|
33
|
+
* contextKey: borrowerWallet,
|
|
34
|
+
* discountBps: 500, // 5%
|
|
35
|
+
* expirySeconds: 300, // 5 minutes
|
|
36
|
+
* discountAuthority: process.env.DISCOUNT_KEY, // JSON keypair string
|
|
37
|
+
* });
|
|
38
|
+
*
|
|
39
|
+
* // Return via API — all fields are JSON-safe strings/numbers
|
|
40
|
+
* res.json(auth);
|
|
41
|
+
* ```
|
|
46
42
|
*/
|
|
47
|
-
async function
|
|
43
|
+
async function createDiscount(params, config) {
|
|
48
44
|
const finalConfig = (0, config_1.mergeConfig)(config);
|
|
49
45
|
const rpcUrl = (0, config_1.getRpcUrl)(finalConfig);
|
|
50
46
|
// Fetch member to get nonce + vault
|
|
51
47
|
const memberAddr = (0, kit_1.address)(params.memberAddress);
|
|
52
48
|
const member = await (0, slyvault_1.fetchMember)(memberAddr, rpcUrl);
|
|
53
|
-
//
|
|
54
|
-
const
|
|
55
|
-
|
|
56
|
-
// Estimate current unix time (slot time is ~400ms on Solana)
|
|
49
|
+
// Resolve discount authority signer
|
|
50
|
+
const discountAuthority = await resolveAuthority(params.discountAuthority);
|
|
51
|
+
// Compute expiry as unix timestamp
|
|
57
52
|
const now = Math.floor(Date.now() / 1000);
|
|
58
53
|
const expiresAt = BigInt(now + params.expirySeconds);
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
54
|
+
return (0, slyvault_1.createDiscountAuth)({
|
|
55
|
+
contextKey: (0, kit_1.address)(params.contextKey),
|
|
56
|
+
memberNonce: member.data.nonce,
|
|
57
|
+
discountBps: params.discountBps,
|
|
58
|
+
expiresAt,
|
|
59
|
+
vault: member.data.vault,
|
|
60
|
+
discountAuthority,
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
async function resolveAuthority(authority) {
|
|
64
|
+
if (typeof authority === 'string') {
|
|
65
|
+
const bytes = JSON.parse(authority);
|
|
66
|
+
if (!Array.isArray(bytes) || bytes.length !== 64) {
|
|
67
|
+
throw new Error('Invalid keypair: expected JSON array of 64 bytes');
|
|
68
|
+
}
|
|
69
|
+
return (0, kit_1.createKeyPairSignerFromBytes)(new Uint8Array(bytes));
|
|
73
70
|
}
|
|
74
|
-
|
|
75
|
-
|
|
71
|
+
if (authority instanceof Uint8Array) {
|
|
72
|
+
return (0, kit_1.createKeyPairSignerFromBytes)(authority);
|
|
76
73
|
}
|
|
77
|
-
|
|
78
|
-
|
|
74
|
+
if (Array.isArray(authority)) {
|
|
75
|
+
return (0, kit_1.createKeyPairSignerFromBytes)(new Uint8Array(authority));
|
|
79
76
|
}
|
|
80
|
-
|
|
81
|
-
const discountPda = await (0, slyvault_1.deriveDiscountPda)(context, nonce);
|
|
82
|
-
// Convert discount percentage to bps
|
|
83
|
-
const discountBps = Math.round(params.discount * 100);
|
|
84
|
-
const createParams = {
|
|
85
|
-
authority: discountAuthority,
|
|
86
|
-
memberState: memberAddr,
|
|
87
|
-
vault: member.data.vault,
|
|
88
|
-
context,
|
|
89
|
-
nonce,
|
|
90
|
-
memberNonce: member.data.nonce,
|
|
91
|
-
discount: params.discount,
|
|
92
|
-
expiresAt,
|
|
93
|
-
};
|
|
94
|
-
return {
|
|
95
|
-
discountPda,
|
|
96
|
-
rentPayer: memberAddr,
|
|
97
|
-
createParams,
|
|
98
|
-
};
|
|
77
|
+
return authority;
|
|
99
78
|
}
|
|
79
|
+
// Re-export for convenience
|
|
80
|
+
var slyvault_2 = require("@wuwei-labs/slyvault");
|
|
81
|
+
Object.defineProperty(exports, "deserializeDiscountAuth", { enumerable: true, get: function () { return slyvault_2.deserializeDiscountAuth; } });
|
|
100
82
|
//# sourceMappingURL=discountAuth.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discountAuth.js","sourceRoot":"","sources":["../../../src/utils/discountAuth.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"discountAuth.js","sourceRoot":"","sources":["../../../src/utils/discountAuth.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AA4DH,wCA0BC;AApFD,qCAAkF;AAClF,mDAM8B;AAC9B,qCAAkE;AAsBlE;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACI,KAAK,UAAU,cAAc,CAClC,MAA4B,EAC5B,MAA2B;IAE3B,MAAM,WAAW,GAAG,IAAA,oBAAW,EAAC,MAAM,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,IAAA,kBAAS,EAAC,WAAW,CAAC,CAAC;IAEtC,oCAAoC;IACpC,MAAM,UAAU,GAAG,IAAA,aAAO,EAAC,MAAM,CAAC,aAAwB,CAAC,CAAC;IAC5D,MAAM,MAAM,GAAG,MAAM,IAAA,sBAAW,EAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAErD,oCAAoC;IACpC,MAAM,iBAAiB,GAAG,MAAM,gBAAgB,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAE3E,mCAAmC;IACnC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;IAErD,OAAO,IAAA,6BAA0B,EAAC;QAChC,UAAU,EAAE,IAAA,aAAO,EAAC,MAAM,CAAC,UAAqB,CAAC;QACjD,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK;QAC9B,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,SAAS;QACT,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK;QACxB,iBAAiB;KAClB,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC7B,SAAyD;IAEzD,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACtE,CAAC;QACD,OAAO,IAAA,kCAA4B,EAAC,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7D,CAAC;IACD,IAAI,SAAS,YAAY,UAAU,EAAE,CAAC;QACpC,OAAO,IAAA,kCAA4B,EAAC,SAAS,CAAC,CAAC;IACjD,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,OAAO,IAAA,kCAA4B,EAAC,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,4BAA4B;AAC5B,iDAA+D;AAAtD,mHAAA,uBAAuB,OAAA"}
|
package/dist/cjs/utils/index.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* @module utils
|
|
5
5
|
*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.hasQueuedRental = exports.hasActiveRental = exports.getLookupTableAddress = exports.fetchLookupTable = exports.isRpcDebugEnabled = exports.setRpcDebug = exports.createRpc = exports.InstructionResult = exports.prepareInstructions = exports.toAddress = exports.toWeb3Instruction = exports.isAddressString = exports.isKitSigner = exports.isWeb3jsSigner = exports.validateAddress = exports.toTransactionSigner = exports.ATLASNET_ADDRESSES = exports.MAINNET_ADDRESSES = exports.ATLASNET_GENESIS = exports.DEVNET_GENESIS = exports.MAINNET_GENESIS = exports.resolveGenesisHash = exports.isValidNetwork = exports.isValidProgramSet = exports.getNetworkAddresses = exports.getProgramAddresses = exports.detectProgramSet = exports.getRpcUrl = exports.getAffiliateConfig = exports.getAddresses = exports.mergeConfig = exports.clearSdkConfig = exports.getSdkConfig = exports.setSdkConfig = void 0;
|
|
7
|
+
exports.deserializeDiscountAuth = exports.createDiscount = exports.hasQueuedRental = exports.hasActiveRental = exports.getLookupTableAddress = exports.fetchLookupTable = exports.isRpcDebugEnabled = exports.setRpcDebug = exports.createRpc = exports.InstructionResult = exports.prepareInstructions = exports.toAddress = exports.toWeb3Instruction = exports.isAddressString = exports.isKitSigner = exports.isWeb3jsSigner = exports.validateAddress = exports.toTransactionSigner = exports.ATLASNET_ADDRESSES = exports.MAINNET_ADDRESSES = exports.ATLASNET_GENESIS = exports.DEVNET_GENESIS = exports.MAINNET_GENESIS = exports.resolveGenesisHash = exports.isValidNetwork = exports.isValidProgramSet = exports.getNetworkAddresses = exports.getProgramAddresses = exports.detectProgramSet = exports.getRpcUrl = exports.getAffiliateConfig = exports.getAddresses = exports.mergeConfig = exports.clearSdkConfig = exports.getSdkConfig = exports.setSdkConfig = void 0;
|
|
8
8
|
// Configuration
|
|
9
9
|
var config_1 = require("./config");
|
|
10
10
|
Object.defineProperty(exports, "setSdkConfig", { enumerable: true, get: function () { return config_1.setSdkConfig; } });
|
|
@@ -57,4 +57,8 @@ Object.defineProperty(exports, "getLookupTableAddress", { enumerable: true, get:
|
|
|
57
57
|
var rental_1 = require("./rental");
|
|
58
58
|
Object.defineProperty(exports, "hasActiveRental", { enumerable: true, get: function () { return rental_1.hasActiveRental; } });
|
|
59
59
|
Object.defineProperty(exports, "hasQueuedRental", { enumerable: true, get: function () { return rental_1.hasQueuedRental; } });
|
|
60
|
+
// Discount Authorization
|
|
61
|
+
var discountAuth_1 = require("./discountAuth");
|
|
62
|
+
Object.defineProperty(exports, "createDiscount", { enumerable: true, get: function () { return discountAuth_1.createDiscount; } });
|
|
63
|
+
Object.defineProperty(exports, "deserializeDiscountAuth", { enumerable: true, get: function () { return discountAuth_1.deserializeDiscountAuth; } });
|
|
60
64
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,gBAAgB;AAChB,mCAYkB;AAXhB,sGAAA,YAAY,OAAA;AACZ,sGAAA,YAAY,OAAA;AACZ,wGAAA,cAAc,OAAA;AACd,qGAAA,WAAW,OAAA;AACX,sGAAA,YAAY,OAAA;AACZ,4GAAA,kBAAkB,OAAA;AAClB,mGAAA,SAAS,OAAA;AACT,0GAAA,gBAAgB,OAAA;AAMlB,oBAAoB;AACpB,yCAeqB;AAdnB,gHAAA,mBAAmB,OAAA;AACnB,gHAAA,mBAAmB,OAAA;AACnB,8GAAA,iBAAiB,OAAA;AACjB,2GAAA,cAAc,OAAA;AACd,+GAAA,kBAAkB,OAAA;AAClB,4GAAA,eAAe,OAAA;AACf,2GAAA,cAAc,OAAA;AACd,6GAAA,gBAAgB,OAAA;AAChB,8GAAA,iBAAiB,OAAA;AACjB,+GAAA,kBAAkB,OAAA;AAOpB,mBAAmB;AACnB,mCAOkB;AANhB,6GAAA,mBAAmB,OAAA;AACnB,yGAAA,eAAe,OAAA;AACf,wGAAA,cAAc,OAAA;AACd,qGAAA,WAAW,OAAA;AACX,yGAAA,eAAe,OAAA;AAIjB,wBAAwB;AACxB,mCAMkB;AALhB,2GAAA,iBAAiB,OAAA;AACjB,mGAAA,SAAS,OAAA;AAMX,wBAAwB;AACxB,+CAGwB;AAFtB,mHAAA,mBAAmB,OAAA;AAIrB,qBAAqB;AACrB,yDAG6B;AAF3B,sHAAA,iBAAiB,OAAA;AAInB,gBAAgB;AAChB,6BAAkE;AAAzD,gGAAA,SAAS,OAAA;AAAE,kGAAA,WAAW,OAAA;AAAE,wGAAA,iBAAiB,OAAA;AAElD,iCAAiC;AACjC,6CAIuB;AAHrB,+GAAA,gBAAgB,OAAA;AAChB,oHAAA,qBAAqB,OAAA;AAIvB,mBAAmB;AACnB,mCAGkB;AAFhB,yGAAA,eAAe,OAAA;AACf,yGAAA,eAAe,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,gBAAgB;AAChB,mCAYkB;AAXhB,sGAAA,YAAY,OAAA;AACZ,sGAAA,YAAY,OAAA;AACZ,wGAAA,cAAc,OAAA;AACd,qGAAA,WAAW,OAAA;AACX,sGAAA,YAAY,OAAA;AACZ,4GAAA,kBAAkB,OAAA;AAClB,mGAAA,SAAS,OAAA;AACT,0GAAA,gBAAgB,OAAA;AAMlB,oBAAoB;AACpB,yCAeqB;AAdnB,gHAAA,mBAAmB,OAAA;AACnB,gHAAA,mBAAmB,OAAA;AACnB,8GAAA,iBAAiB,OAAA;AACjB,2GAAA,cAAc,OAAA;AACd,+GAAA,kBAAkB,OAAA;AAClB,4GAAA,eAAe,OAAA;AACf,2GAAA,cAAc,OAAA;AACd,6GAAA,gBAAgB,OAAA;AAChB,8GAAA,iBAAiB,OAAA;AACjB,+GAAA,kBAAkB,OAAA;AAOpB,mBAAmB;AACnB,mCAOkB;AANhB,6GAAA,mBAAmB,OAAA;AACnB,yGAAA,eAAe,OAAA;AACf,wGAAA,cAAc,OAAA;AACd,qGAAA,WAAW,OAAA;AACX,yGAAA,eAAe,OAAA;AAIjB,wBAAwB;AACxB,mCAMkB;AALhB,2GAAA,iBAAiB,OAAA;AACjB,mGAAA,SAAS,OAAA;AAMX,wBAAwB;AACxB,+CAGwB;AAFtB,mHAAA,mBAAmB,OAAA;AAIrB,qBAAqB;AACrB,yDAG6B;AAF3B,sHAAA,iBAAiB,OAAA;AAInB,gBAAgB;AAChB,6BAAkE;AAAzD,gGAAA,SAAS,OAAA;AAAE,kGAAA,WAAW,OAAA;AAAE,wGAAA,iBAAiB,OAAA;AAElD,iCAAiC;AACjC,6CAIuB;AAHrB,+GAAA,gBAAgB,OAAA;AAChB,oHAAA,qBAAqB,OAAA;AAIvB,mBAAmB;AACnB,mCAGkB;AAFhB,yGAAA,eAAe,OAAA;AACf,yGAAA,eAAe,OAAA;AAGjB,yBAAyB;AACzB,+CAMwB;AALtB,8GAAA,cAAc,OAAA;AACd,uHAAA,uBAAuB,OAAA"}
|
|
@@ -80,13 +80,17 @@ export async function fetchAllRentals(rpcUrl) {
|
|
|
80
80
|
const accounts = Array.isArray(response) ? response : response.value;
|
|
81
81
|
const results = [];
|
|
82
82
|
for (const account of accounts) {
|
|
83
|
+
const bytes = base64Encoder.encode(account.account.data[0]);
|
|
83
84
|
try {
|
|
84
|
-
const bytes = base64Encoder.encode(account.account.data[0]);
|
|
85
85
|
const decoded = decoder.decode(bytes);
|
|
86
86
|
results.push({ data: decoded, address: account.pubkey });
|
|
87
87
|
}
|
|
88
88
|
catch {
|
|
89
|
-
//
|
|
89
|
+
// Old schema — return address with minimal data so wipe can still delete
|
|
90
|
+
results.push({
|
|
91
|
+
data: { borrower: '11111111111111111111111111111111' },
|
|
92
|
+
address: account.pubkey,
|
|
93
|
+
});
|
|
90
94
|
}
|
|
91
95
|
}
|
|
92
96
|
return results;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rental.js","sourceRoot":"","sources":["../../../src/accounts/rental.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAgB,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAoB,0BAA0B,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrI,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,aAA+B,EAC/B,MAAe;IAEf,IAAI,CAAC;QACH,0CAA0C;QAC1C,MAAM,cAAc,GAAG,MAAM,IAAI,SAAS,EAAE,CAAC;QAC7C,MAAM,GAAG,GAAG,SAAS,CAAC,cAAc,CAAC,CAAC;QAEtC,sCAAsC;QACtC,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,aAAwB,CAAC,CAAC;QAEtE,OAAO,OAAO,CAAC;IACjB,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACb,mCAAmC,aAAa,KAAK,KAAK,CAAC,OAAO,EAAE,CACrE,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAe;IAEf,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,MAAM,IAAI,SAAS,EAAE,CAAC;QAC7C,MAAM,GAAG,GAAG,SAAS,CAAC,cAAc,CAAC,CAAC;QAEtC,MAAM,mBAAmB,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,0BAA0B,CAAC,CAAC,CAAC;QAErF,MAAM,QAAQ,GAAG,MAAO,GAAW,CAAC,kBAAkB,CACpD,qBAAqB,EACrB;YACE,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE;gBACP;oBACE,MAAM,EAAE;wBACN,MAAM,EAAE,EAAE;wBACV,KAAK,EAAE,mBAAmB;wBAC1B,QAAQ,EAAE,QAAQ;qBACnB;iBACF;aACF;SACF,CACF,CAAC,IAAI,EAAE,CAAC;QAET,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,qBAAqB,EAAE,CAAC;QAExC,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;QACrE,MAAM,OAAO,GAAmD,EAAE,CAAC;QACnE,KAAK,MAAM,OAAO,IAAI,QAAiB,EAAE,CAAC;YACxC,
|
|
1
|
+
{"version":3,"file":"rental.js","sourceRoot":"","sources":["../../../src/accounts/rental.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,6 +20,7 @@ import { deriveAssociatedTokenAccount } from '../pda/token';
|
|
|
20
20
|
import { deriveContractThread, deriveFiber } from '../pda/thread';
|
|
21
21
|
import { prepareInstructions } from '../utils/instructions';
|
|
22
22
|
import { RentalStatus } from '../generated/codama/types';
|
|
23
|
+
import { deserializeDiscountAuth } from '../utils/discountAuth';
|
|
23
24
|
/**
|
|
24
25
|
* Accept a rental contract
|
|
25
26
|
*
|
|
@@ -150,10 +151,22 @@ export async function acceptRental(params, config) {
|
|
|
150
151
|
referrer,
|
|
151
152
|
sageProgram,
|
|
152
153
|
duration: BigInt(durationSeconds),
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
154
|
+
...(params.discountAuth
|
|
155
|
+
? (() => {
|
|
156
|
+
const d = deserializeDiscountAuth(params.discountAuth);
|
|
157
|
+
return {
|
|
158
|
+
discountSignature: d.discountSignature,
|
|
159
|
+
discountMemberNonce: d.discountMemberNonce,
|
|
160
|
+
discountBps: d.discountBps,
|
|
161
|
+
discountExpiresAt: d.discountExpiresAt,
|
|
162
|
+
};
|
|
163
|
+
})()
|
|
164
|
+
: {
|
|
165
|
+
discountSignature: null,
|
|
166
|
+
discountMemberNonce: null,
|
|
167
|
+
discountBps: null,
|
|
168
|
+
discountExpiresAt: null,
|
|
169
|
+
}),
|
|
157
170
|
}, { programAddress });
|
|
158
171
|
// Append SAGE pass-through accounts as remaining accounts
|
|
159
172
|
const sageRemainingAccounts = [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acceptRental.js","sourceRoot":"","sources":["../../../src/instructions/acceptRental.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAE,OAAO,EAAgB,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,+BAA+B,EAAE,MAAM,kCAAkC,CAAC;AACnF,OAAO,EAAE,WAAW,EAAE,YAAY,EAAkB,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAwB,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAoB,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAE,eAAe,EAAsB,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAC9F,OAAO,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"acceptRental.js","sourceRoot":"","sources":["../../../src/instructions/acceptRental.ts"],"names":[],"mappings":"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"}
|
|
@@ -102,6 +102,11 @@ export async function closeRental(params, config) {
|
|
|
102
102
|
vaultTokenAccount,
|
|
103
103
|
referrer,
|
|
104
104
|
borrowerTokenAccount,
|
|
105
|
+
// Don't pass queued accounts — codama auto-derives from seeds which triggers is_queued() constraint
|
|
106
|
+
// Pass program ID to signal None (Anchor optional account convention)
|
|
107
|
+
queuedRental: programAddress,
|
|
108
|
+
queuedBorrowerProfile: programAddress,
|
|
109
|
+
queuedBorrowerProfileFaction: programAddress,
|
|
105
110
|
sageProgram,
|
|
106
111
|
}, { programAddress });
|
|
107
112
|
return prepareInstructions(kitInstruction, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"closeRental.js","sourceRoot":"","sources":["../../../src/instructions/closeRental.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"closeRental.js","sourceRoot":"","sources":["../../../src/instructions/closeRental.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/kit/index.js
CHANGED
|
@@ -21,6 +21,6 @@ export * from '../accounts';
|
|
|
21
21
|
export * from '../params';
|
|
22
22
|
export * from '../pda';
|
|
23
23
|
// External re-exports
|
|
24
|
-
export {
|
|
24
|
+
export { claim } from '@wuwei-labs/slyvault';
|
|
25
25
|
export * as codama from '../generated/codama';
|
|
26
26
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/kit/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AAEvB,sBAAsB;AACtB,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/kit/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AAEvB,sBAAsB;AACtB,OAAO,EACL,KAAK,EAEN,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAC"}
|
package/dist/esm/legacy/index.js
CHANGED
|
@@ -31,8 +31,6 @@ export * from '../params';
|
|
|
31
31
|
export * from '../pda';
|
|
32
32
|
export { VERSION } from '../version';
|
|
33
33
|
export * as codama from '../generated/codama';
|
|
34
|
-
// External re-exports
|
|
35
|
-
export { deriveDiscountPda } from '@wuwei-labs/slyvault';
|
|
36
34
|
/**
|
|
37
35
|
* Wrapper that checks for PublicKey and provides helpful error
|
|
38
36
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/legacy/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,YAAY,EAAkD,MAAM,UAAU,CAAC;AACxF,OAAO,KAAK,GAAG,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,KAAK,IAAI,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE9D,oDAAoD;AACpD,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/legacy/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,YAAY,EAAkD,MAAM,UAAU,CAAC;AACxF,OAAO,KAAK,GAAG,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,KAAK,IAAI,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE9D,oDAAoD;AACpD,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAC;AAQ9C;;GAEG;AACH,SAAS,UAAU,CACjB,EAAkD;IAElD,OAAO,KAAK,EAAE,GAAG,IAAW,EAAgC,EAAE;QAC5D,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;QACjC,MAAM,EAAE,GAAG,YAAY,EAAE,CAAC,SAAS,CAAC;QACpC,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,MAAM,IAAI,KAAK,CACb,8DAA8D;gBAC5D,iCAAiC;gBACjC,kDAAkD;gBAClD,8DAA8D;gBAC9D,gCAAgC,CACnC,CAAC;QACJ,CAAC;QACD,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,GAAG,UAAU,CAAC;AAErB,+DAA+D;AAC/D,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AACpD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AACpD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AAClD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AACpD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAC9C,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AAChD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AAChD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAC9C,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AAClD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AACxD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AAClD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AAChD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AAClD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AAClD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AACpD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AACpD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AAClD,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;AAChE,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;AAC9D,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;AAChE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AAChD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AAChD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AAChD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AACtD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AACxD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AACtD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AACtD,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC"}
|
|
@@ -1,97 +1,77 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @purpose Discount
|
|
2
|
+
* @purpose Discount authorization helper for server-side signing
|
|
3
3
|
* @module utils/discountAuth
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* then returns the PDA address to the user for inclusion in rental transactions.
|
|
5
|
+
* Convenience wrapper that fetches member nonce + vault automatically,
|
|
6
|
+
* then delegates to slyvault's createDiscountAuth for signing.
|
|
8
7
|
*/
|
|
9
8
|
import { address, createKeyPairSignerFromBytes } from '@solana/kit';
|
|
10
|
-
import {
|
|
9
|
+
import { createDiscountAuth as slyvaultCreateDiscountAuth, fetchMember, } from '@wuwei-labs/slyvault';
|
|
11
10
|
import { getRpcUrl, mergeConfig } from './config';
|
|
12
|
-
import { createRpc } from './rpc';
|
|
13
11
|
/**
|
|
14
|
-
*
|
|
15
|
-
*/
|
|
16
|
-
async function parseKeypairString(keypairString) {
|
|
17
|
-
try {
|
|
18
|
-
const bytes = JSON.parse(keypairString);
|
|
19
|
-
if (!Array.isArray(bytes) || bytes.length !== 64) {
|
|
20
|
-
throw new Error('Invalid keypair: expected array of 64 bytes');
|
|
21
|
-
}
|
|
22
|
-
return await createKeyPairSignerFromBytes(new Uint8Array(bytes));
|
|
23
|
-
}
|
|
24
|
-
catch (e) {
|
|
25
|
-
throw new Error(`Failed to parse keypair string: ${e.message}`);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Create a Discount PDA for a rental via slyvault's discount_create instruction.
|
|
12
|
+
* Create a signed discount authorization with auto-fetched member data
|
|
30
13
|
*
|
|
31
14
|
* Server-side helper that:
|
|
32
15
|
* 1. Fetches the member to get nonce + vault
|
|
33
|
-
* 2.
|
|
34
|
-
* 3.
|
|
35
|
-
* 4. Returns
|
|
36
|
-
*
|
|
37
|
-
* The caller is responsible for building and sending the transaction with the
|
|
38
|
-
* codama-generated `discountCreate` instruction using the returned params.
|
|
16
|
+
* 2. Computes expires_at from current time + expirySeconds
|
|
17
|
+
* 3. Signs the discount message
|
|
18
|
+
* 4. Returns JSON-safe SerializedDiscountAuth for API transport
|
|
39
19
|
*
|
|
40
20
|
* @param params - Discount parameters
|
|
41
21
|
* @param config - Optional SDK configuration overrides
|
|
42
|
-
* @returns
|
|
22
|
+
* @returns SerializedDiscountAuth ready for JSON API response
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```typescript
|
|
26
|
+
* // Server-side: create discount for a borrower
|
|
27
|
+
* const auth = await createDiscount({
|
|
28
|
+
* memberAddress: 'AFFILIATE_MEMBER_PDA',
|
|
29
|
+
* contextKey: borrowerWallet,
|
|
30
|
+
* discountBps: 500, // 5%
|
|
31
|
+
* expirySeconds: 300, // 5 minutes
|
|
32
|
+
* discountAuthority: process.env.DISCOUNT_KEY, // JSON keypair string
|
|
33
|
+
* });
|
|
34
|
+
*
|
|
35
|
+
* // Return via API — all fields are JSON-safe strings/numbers
|
|
36
|
+
* res.json(auth);
|
|
37
|
+
* ```
|
|
43
38
|
*/
|
|
44
|
-
export async function
|
|
39
|
+
export async function createDiscount(params, config) {
|
|
45
40
|
const finalConfig = mergeConfig(config);
|
|
46
41
|
const rpcUrl = getRpcUrl(finalConfig);
|
|
47
42
|
// Fetch member to get nonce + vault
|
|
48
43
|
const memberAddr = address(params.memberAddress);
|
|
49
44
|
const member = await fetchMember(memberAddr, rpcUrl);
|
|
50
|
-
//
|
|
51
|
-
const
|
|
52
|
-
|
|
53
|
-
// Estimate current unix time (slot time is ~400ms on Solana)
|
|
45
|
+
// Resolve discount authority signer
|
|
46
|
+
const discountAuthority = await resolveAuthority(params.discountAuthority);
|
|
47
|
+
// Compute expiry as unix timestamp
|
|
54
48
|
const now = Math.floor(Date.now() / 1000);
|
|
55
49
|
const expiresAt = BigInt(now + params.expirySeconds);
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
50
|
+
return slyvaultCreateDiscountAuth({
|
|
51
|
+
contextKey: address(params.contextKey),
|
|
52
|
+
memberNonce: member.data.nonce,
|
|
53
|
+
discountBps: params.discountBps,
|
|
54
|
+
expiresAt,
|
|
55
|
+
vault: member.data.vault,
|
|
56
|
+
discountAuthority,
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
async function resolveAuthority(authority) {
|
|
60
|
+
if (typeof authority === 'string') {
|
|
61
|
+
const bytes = JSON.parse(authority);
|
|
62
|
+
if (!Array.isArray(bytes) || bytes.length !== 64) {
|
|
63
|
+
throw new Error('Invalid keypair: expected JSON array of 64 bytes');
|
|
64
|
+
}
|
|
65
|
+
return createKeyPairSignerFromBytes(new Uint8Array(bytes));
|
|
70
66
|
}
|
|
71
|
-
|
|
72
|
-
|
|
67
|
+
if (authority instanceof Uint8Array) {
|
|
68
|
+
return createKeyPairSignerFromBytes(authority);
|
|
73
69
|
}
|
|
74
|
-
|
|
75
|
-
|
|
70
|
+
if (Array.isArray(authority)) {
|
|
71
|
+
return createKeyPairSignerFromBytes(new Uint8Array(authority));
|
|
76
72
|
}
|
|
77
|
-
|
|
78
|
-
const discountPda = await deriveDiscountPda(context, nonce);
|
|
79
|
-
// Convert discount percentage to bps
|
|
80
|
-
const discountBps = Math.round(params.discount * 100);
|
|
81
|
-
const createParams = {
|
|
82
|
-
authority: discountAuthority,
|
|
83
|
-
memberState: memberAddr,
|
|
84
|
-
vault: member.data.vault,
|
|
85
|
-
context,
|
|
86
|
-
nonce,
|
|
87
|
-
memberNonce: member.data.nonce,
|
|
88
|
-
discount: params.discount,
|
|
89
|
-
expiresAt,
|
|
90
|
-
};
|
|
91
|
-
return {
|
|
92
|
-
discountPda,
|
|
93
|
-
rentPayer: memberAddr,
|
|
94
|
-
createParams,
|
|
95
|
-
};
|
|
73
|
+
return authority;
|
|
96
74
|
}
|
|
75
|
+
// Re-export for convenience
|
|
76
|
+
export { deserializeDiscountAuth } from '@wuwei-labs/slyvault';
|
|
97
77
|
//# sourceMappingURL=discountAuth.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discountAuth.js","sourceRoot":"","sources":["../../../src/utils/discountAuth.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"discountAuth.js","sourceRoot":"","sources":["../../../src/utils/discountAuth.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAgB,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAClF,OAAO,EACL,kBAAkB,IAAI,0BAA0B,EAEhD,WAAW,GAGZ,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,SAAS,EAAE,WAAW,EAAkB,MAAM,UAAU,CAAC;AAsBlE;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAA4B,EAC5B,MAA2B;IAE3B,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;IAEtC,oCAAoC;IACpC,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,aAAwB,CAAC,CAAC;IAC5D,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAErD,oCAAoC;IACpC,MAAM,iBAAiB,GAAG,MAAM,gBAAgB,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAE3E,mCAAmC;IACnC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;IAErD,OAAO,0BAA0B,CAAC;QAChC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,UAAqB,CAAC;QACjD,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK;QAC9B,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,SAAS;QACT,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK;QACxB,iBAAiB;KAClB,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC7B,SAAyD;IAEzD,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACtE,CAAC;QACD,OAAO,4BAA4B,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7D,CAAC;IACD,IAAI,SAAS,YAAY,UAAU,EAAE,CAAC;QACpC,OAAO,4BAA4B,CAAC,SAAS,CAAC,CAAC;IACjD,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,OAAO,4BAA4B,CAAC,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,4BAA4B;AAC5B,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC"}
|
package/dist/esm/utils/index.js
CHANGED
|
@@ -20,4 +20,6 @@ export { createRpc, setRpcDebug, isRpcDebugEnabled } from './rpc';
|
|
|
20
20
|
export { fetchLookupTable, getLookupTableAddress } from './lookupTable';
|
|
21
21
|
// Rental Utilities
|
|
22
22
|
export { hasActiveRental, hasQueuedRental, } from './rental';
|
|
23
|
+
// Discount Authorization
|
|
24
|
+
export { createDiscount, deserializeDiscountAuth, } from './discountAuth';
|
|
23
25
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,gBAAgB;AAChB,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,WAAW,EACX,YAAY,EACZ,kBAAkB,EAClB,SAAS,EACT,gBAAgB,EAIjB,MAAM,UAAU,CAAC;AAElB,oBAAoB;AACpB,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAKnB,MAAM,aAAa,CAAC;AAErB,mBAAmB;AACnB,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,WAAW,EACX,eAAe,EAEhB,MAAM,UAAU,CAAC;AAElB,wBAAwB;AACxB,OAAO,EACL,iBAAiB,EACjB,SAAS,EAIV,MAAM,UAAU,CAAC;AAElB,wBAAwB;AACxB,OAAO,EACL,mBAAmB,EAEpB,MAAM,gBAAgB,CAAC;AAExB,qBAAqB;AACrB,OAAO,EACL,iBAAiB,EAElB,MAAM,qBAAqB,CAAC;AAE7B,gBAAgB;AAChB,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAElE,iCAAiC;AACjC,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EAEtB,MAAM,eAAe,CAAC;AAEvB,mBAAmB;AACnB,OAAO,EACL,eAAe,EACf,eAAe,GAChB,MAAM,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,gBAAgB;AAChB,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,WAAW,EACX,YAAY,EACZ,kBAAkB,EAClB,SAAS,EACT,gBAAgB,EAIjB,MAAM,UAAU,CAAC;AAElB,oBAAoB;AACpB,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAKnB,MAAM,aAAa,CAAC;AAErB,mBAAmB;AACnB,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,WAAW,EACX,eAAe,EAEhB,MAAM,UAAU,CAAC;AAElB,wBAAwB;AACxB,OAAO,EACL,iBAAiB,EACjB,SAAS,EAIV,MAAM,UAAU,CAAC;AAElB,wBAAwB;AACxB,OAAO,EACL,mBAAmB,EAEpB,MAAM,gBAAgB,CAAC;AAExB,qBAAqB;AACrB,OAAO,EACL,iBAAiB,EAElB,MAAM,qBAAqB,CAAC;AAE7B,gBAAgB;AAChB,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAElE,iCAAiC;AACjC,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EAEtB,MAAM,eAAe,CAAC;AAEvB,mBAAmB;AACnB,OAAO,EACL,eAAe,EACf,eAAe,GAChB,MAAM,UAAU,CAAC;AAElB,yBAAyB;AACzB,OAAO,EACL,cAAc,EACd,uBAAuB,GAIxB,MAAM,gBAAgB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rental.d.ts","sourceRoot":"","sources":["../../../src/accounts/rental.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,OAAO,EAAoB,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAoB,KAAK,WAAW,EAAqD,MAAM,8BAA8B,CAAC;AAKrI;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,WAAW,CAC/B,aAAa,EAAE,OAAO,GAAG,MAAM,EAC/B,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAelD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,eAAe,CACnC,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,KAAK,CAAC;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"rental.d.ts","sourceRoot":"","sources":["../../../src/accounts/rental.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,OAAO,EAAoB,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAoB,KAAK,WAAW,EAAqD,MAAM,8BAA8B,CAAC;AAKrI;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,WAAW,CAC/B,aAAa,EAAE,OAAO,GAAG,MAAM,EAC/B,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAelD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,eAAe,CACnC,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,KAAK,CAAC;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC,CA+CzD"}
|
|
@@ -10,6 +10,7 @@ import { type UniversalSigner } from '../utils/signer';
|
|
|
10
10
|
import { type AmountParam } from '../params/amount';
|
|
11
11
|
import { type DurationParam } from '../params/duration';
|
|
12
12
|
import { prepareInstructions } from '../utils/instructions';
|
|
13
|
+
import { type SerializedDiscountAuth } from '../utils/discountAuth';
|
|
13
14
|
/**
|
|
14
15
|
* Parameters for accepting a rental contract
|
|
15
16
|
*/
|
|
@@ -47,6 +48,11 @@ export interface AcceptRentalParams {
|
|
|
47
48
|
* @example 400000
|
|
48
49
|
*/
|
|
49
50
|
computeUnits?: number;
|
|
51
|
+
/**
|
|
52
|
+
* Discount authorization from createDiscount() — pass directly from API response.
|
|
53
|
+
* No deserialization needed.
|
|
54
|
+
*/
|
|
55
|
+
discountAuth?: SerializedDiscountAuth;
|
|
50
56
|
/**
|
|
51
57
|
* Expected rental rate (optional client-side safety check)
|
|
52
58
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acceptRental.d.ts","sourceRoot":"","sources":["../../../src/instructions/acceptRental.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAwB,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAEjE,OAAO,EAA6B,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAuB,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAiB,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AASzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"acceptRental.d.ts","sourceRoot":"","sources":["../../../src/instructions/acceptRental.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAwB,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAEjE,OAAO,EAA6B,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAuB,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAiB,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AASzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,KAAK,sBAAsB,EAA2B,MAAM,uBAAuB,CAAC;AAE7F;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,QAAQ,EAAE,eAAe,CAAC;IAE1B;;;OAGG;IACH,eAAe,EAAE,OAAO,GAAG,MAAM,CAAC;IAElC;;OAEG;IACH,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAC;IAE3B;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAE5B;;;;;;OAMG;IACH,QAAQ,EAAE,aAAa,CAAC;IAExB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,YAAY,CAAC,EAAE,sBAAsB,CAAC;IAEtC;;;;;;;;;;OAUG;IACH,IAAI,CAAC,EAAE,WAAW,CAAC;IAEnB;;;;;;OAMG;IACH,oBAAoB,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CACzC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,kBAAkB,EAC1B,MAAM,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,GAC1B,OAAO,CAAC,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAmKjD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"closeRental.d.ts","sourceRoot":"","sources":["../../../src/instructions/closeRental.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAW,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAGpD,OAAO,EAA6B,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAuB,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAQ5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,KAAK,EAAE,eAAe,CAAC;IAEvB;;OAEG;IACH,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAC;IAE3B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAE5B;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,iBAAiB,EACzB,MAAM,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,GAC1B,OAAO,CAAC,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"closeRental.d.ts","sourceRoot":"","sources":["../../../src/instructions/closeRental.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAW,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAGpD,OAAO,EAA6B,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAuB,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAQ5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,KAAK,EAAE,eAAe,CAAC;IAEvB;;OAEG;IACH,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAC;IAE3B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAE5B;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,iBAAiB,EACzB,MAAM,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,GAC1B,OAAO,CAAC,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,CA4FjD"}
|
|
@@ -20,6 +20,6 @@ export * from '../instructions';
|
|
|
20
20
|
export * from '../accounts';
|
|
21
21
|
export * from '../params';
|
|
22
22
|
export * from '../pda';
|
|
23
|
-
export {
|
|
23
|
+
export { claim, type ClaimParams } from '@wuwei-labs/slyvault';
|
|
24
24
|
export * as codama from '../generated/codama';
|
|
25
25
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/kit/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AAGvB,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/kit/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AAGvB,OAAO,EACL,KAAK,EACL,KAAK,WAAW,EACjB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAC"}
|
|
@@ -30,7 +30,7 @@ export * from '../pda';
|
|
|
30
30
|
export { VERSION } from '../version';
|
|
31
31
|
export * as codama from '../generated/codama';
|
|
32
32
|
export type * from '../instructions';
|
|
33
|
-
export {
|
|
33
|
+
export { type ClaimParams } from '@wuwei-labs/slyvault';
|
|
34
34
|
export declare const createContract: (params: kit.CreateContractParams, config?: Partial<import("../utils").SdkConfig> | undefined) => Promise<LegacyInstruction[]>;
|
|
35
35
|
export declare const updateContract: (params: kit.UpdateContractParams, config?: Partial<import("../utils").SdkConfig> | undefined) => Promise<LegacyInstruction[]>;
|
|
36
36
|
export declare const closeContract: (params: kit.CloseContractParams, config?: Partial<import("../utils").SdkConfig> | undefined) => Promise<LegacyInstruction[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/legacy/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAgB,KAAK,iBAAiB,EAA0B,MAAM,UAAU,CAAC;AACxF,OAAO,KAAK,GAAG,MAAM,iBAAiB,CAAC;AAIvC,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAC;AAC9C,mBAAmB,iBAAiB,CAAC;AAGrC,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/legacy/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,62 +1,61 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @purpose Discount
|
|
2
|
+
* @purpose Discount authorization helper for server-side signing
|
|
3
3
|
* @module utils/discountAuth
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* then returns the PDA address to the user for inclusion in rental transactions.
|
|
5
|
+
* Convenience wrapper that fetches member nonce + vault automatically,
|
|
6
|
+
* then delegates to slyvault's createDiscountAuth for signing.
|
|
8
7
|
*/
|
|
9
|
-
import { type Address
|
|
10
|
-
import { type
|
|
8
|
+
import { type Address } from '@solana/kit';
|
|
9
|
+
import { type MessageSigner, type SerializedDiscountAuth } from '@wuwei-labs/slyvault';
|
|
11
10
|
import { type SdkConfig } from './config';
|
|
12
|
-
|
|
13
|
-
* A signer that can sign transactions
|
|
14
|
-
*/
|
|
15
|
-
export type DiscountAuthoritySigner = TransactionSigner;
|
|
16
|
-
export interface CreateDiscountForRentalParams {
|
|
11
|
+
export interface CreateDiscountParams {
|
|
17
12
|
/** Affiliate member state PDA address */
|
|
18
13
|
memberAddress: Address | string;
|
|
19
|
-
/**
|
|
20
|
-
|
|
21
|
-
/** Discount
|
|
22
|
-
|
|
14
|
+
/** Borrower wallet address (discount is bound to this address) */
|
|
15
|
+
contextKey: Address | string;
|
|
16
|
+
/** Discount basis points (10000 = 100%) */
|
|
17
|
+
discountBps: number;
|
|
23
18
|
/** Seconds from now until discount expires */
|
|
24
19
|
expirySeconds: number;
|
|
25
20
|
/**
|
|
26
21
|
* The discount authority signer
|
|
27
22
|
*
|
|
28
23
|
* Accepts:
|
|
29
|
-
* - A
|
|
30
|
-
* - A web3.js Keypair (with secretKey)
|
|
24
|
+
* - A KeyPairSigner from @solana/kit
|
|
31
25
|
* - A Uint8Array or number[] of 64 bytes (secret key)
|
|
32
26
|
* - A JSON stringified keypair: "[1,2,3,...64 bytes]"
|
|
33
27
|
*/
|
|
34
|
-
discountAuthority:
|
|
35
|
-
secretKey: Uint8Array;
|
|
36
|
-
} | Uint8Array | number[] | string;
|
|
28
|
+
discountAuthority: MessageSigner | Uint8Array | number[] | string;
|
|
37
29
|
}
|
|
38
30
|
/**
|
|
39
|
-
* Create a
|
|
31
|
+
* Create a signed discount authorization with auto-fetched member data
|
|
40
32
|
*
|
|
41
33
|
* Server-side helper that:
|
|
42
34
|
* 1. Fetches the member to get nonce + vault
|
|
43
|
-
* 2.
|
|
44
|
-
* 3.
|
|
45
|
-
* 4. Returns
|
|
46
|
-
*
|
|
47
|
-
* The caller is responsible for building and sending the transaction with the
|
|
48
|
-
* codama-generated `discountCreate` instruction using the returned params.
|
|
35
|
+
* 2. Computes expires_at from current time + expirySeconds
|
|
36
|
+
* 3. Signs the discount message
|
|
37
|
+
* 4. Returns JSON-safe SerializedDiscountAuth for API transport
|
|
49
38
|
*
|
|
50
39
|
* @param params - Discount parameters
|
|
51
40
|
* @param config - Optional SDK configuration overrides
|
|
52
|
-
* @returns
|
|
41
|
+
* @returns SerializedDiscountAuth ready for JSON API response
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```typescript
|
|
45
|
+
* // Server-side: create discount for a borrower
|
|
46
|
+
* const auth = await createDiscount({
|
|
47
|
+
* memberAddress: 'AFFILIATE_MEMBER_PDA',
|
|
48
|
+
* contextKey: borrowerWallet,
|
|
49
|
+
* discountBps: 500, // 5%
|
|
50
|
+
* expirySeconds: 300, // 5 minutes
|
|
51
|
+
* discountAuthority: process.env.DISCOUNT_KEY, // JSON keypair string
|
|
52
|
+
* });
|
|
53
|
+
*
|
|
54
|
+
* // Return via API — all fields are JSON-safe strings/numbers
|
|
55
|
+
* res.json(auth);
|
|
56
|
+
* ```
|
|
53
57
|
*/
|
|
54
|
-
export declare function
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
/** The rent payer (member_state PDA) */
|
|
58
|
-
rentPayer: Address;
|
|
59
|
-
/** Parameters for building the discount_create instruction */
|
|
60
|
-
createParams: CreateDiscountParams;
|
|
61
|
-
}>;
|
|
58
|
+
export declare function createDiscount(params: CreateDiscountParams, config?: Partial<SdkConfig>): Promise<SerializedDiscountAuth>;
|
|
59
|
+
export { deserializeDiscountAuth } from '@wuwei-labs/slyvault';
|
|
60
|
+
export type { SerializedDiscountAuth, MessageSigner } from '@wuwei-labs/slyvault';
|
|
62
61
|
//# sourceMappingURL=discountAuth.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discountAuth.d.ts","sourceRoot":"","sources":["../../../src/utils/discountAuth.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"discountAuth.d.ts","sourceRoot":"","sources":["../../../src/utils/discountAuth.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAW,KAAK,OAAO,EAAgC,MAAM,aAAa,CAAC;AAClF,OAAO,EAIL,KAAK,aAAa,EAClB,KAAK,sBAAsB,EAC5B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAA0B,KAAK,SAAS,EAAE,MAAM,UAAU,CAAC;AAElE,MAAM,WAAW,oBAAoB;IACnC,yCAAyC;IACzC,aAAa,EAAE,OAAO,GAAG,MAAM,CAAC;IAChC,kEAAkE;IAClE,UAAU,EAAE,OAAO,GAAG,MAAM,CAAC;IAC7B,2CAA2C;IAC3C,WAAW,EAAE,MAAM,CAAC;IACpB,8CAA8C;IAC9C,aAAa,EAAE,MAAM,CAAC;IACtB;;;;;;;OAOG;IACH,iBAAiB,EAAE,aAAa,GAAG,UAAU,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC;CACnE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,oBAAoB,EAC5B,MAAM,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,GAC1B,OAAO,CAAC,sBAAsB,CAAC,CAuBjC;AAsBD,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,YAAY,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -11,4 +11,5 @@ export { InstructionResult, type LegacyInstruction } from './instructionResult';
|
|
|
11
11
|
export { createRpc, setRpcDebug, isRpcDebugEnabled } from './rpc';
|
|
12
12
|
export { fetchLookupTable, getLookupTableAddress, type AddressLookupTableData } from './lookupTable';
|
|
13
13
|
export { hasActiveRental, hasQueuedRental, } from './rental';
|
|
14
|
+
export { createDiscount, deserializeDiscountAuth, type CreateDiscountParams, type SerializedDiscountAuth, type MessageSigner, } from './discountAuth';
|
|
14
15
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,WAAW,EACX,YAAY,EACZ,kBAAkB,EAClB,SAAS,EACT,gBAAgB,EAChB,KAAK,SAAS,EACd,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACrB,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACtB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,WAAW,EACX,eAAe,EACf,KAAK,eAAe,EACrB,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,iBAAiB,EACjB,SAAS,EACT,KAAK,cAAc,EACnB,KAAK,4BAA4B,EACjC,KAAK,+BAA+B,EACrC,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,mBAAmB,EACnB,KAAK,0BAA0B,EAChC,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,iBAAiB,EACjB,KAAK,iBAAiB,EACvB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAGlE,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,KAAK,sBAAsB,EAC5B,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,eAAe,EACf,eAAe,GAChB,MAAM,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,WAAW,EACX,YAAY,EACZ,kBAAkB,EAClB,SAAS,EACT,gBAAgB,EAChB,KAAK,SAAS,EACd,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACrB,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACtB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,WAAW,EACX,eAAe,EACf,KAAK,eAAe,EACrB,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,iBAAiB,EACjB,SAAS,EACT,KAAK,cAAc,EACnB,KAAK,4BAA4B,EACjC,KAAK,+BAA+B,EACrC,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,mBAAmB,EACnB,KAAK,0BAA0B,EAChC,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,iBAAiB,EACjB,KAAK,iBAAiB,EACvB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAGlE,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,KAAK,sBAAsB,EAC5B,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,eAAe,EACf,eAAe,GAChB,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,cAAc,EACd,uBAAuB,EACvB,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,aAAa,GACnB,MAAM,gBAAgB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wuwei-labs/srsly",
|
|
3
|
-
"version": "4.2.
|
|
3
|
+
"version": "4.2.2",
|
|
4
4
|
"description": "TypeScript SDK for SRSLY",
|
|
5
5
|
"main": "./dist/cjs/index.js",
|
|
6
6
|
"module": "./dist/esm/index.js",
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
"@codama/nodes-from-anchor": "^1.2.9",
|
|
60
60
|
"@codama/renderers-js": "^1.4.2",
|
|
61
61
|
"@solana/kit": "^2.1.1",
|
|
62
|
-
"@wuwei-labs/slyvault": "1.2.
|
|
62
|
+
"@wuwei-labs/slyvault": "1.2.1"
|
|
63
63
|
},
|
|
64
64
|
"devDependencies": {
|
|
65
65
|
"@types/node": "^24.0.3",
|