@wuwei-labs/srsly 4.1.4 → 4.2.0
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/demos.js +13 -26
- package/dist/cjs/demos.js.map +1 -1
- package/dist/cjs/generated/codama/accounts/configState.js +3 -1
- package/dist/cjs/generated/codama/accounts/configState.js.map +1 -1
- package/dist/cjs/generated/codama/accounts/contractState.js +2 -0
- package/dist/cjs/generated/codama/accounts/contractState.js.map +1 -1
- package/dist/cjs/generated/codama/accounts/rentalState.js +4 -2
- package/dist/cjs/generated/codama/accounts/rentalState.js.map +1 -1
- package/dist/cjs/generated/codama/errors/srsly.js +7 -4
- package/dist/cjs/generated/codama/errors/srsly.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/acceptRental.js +39 -11
- package/dist/cjs/generated/codama/instructions/acceptRental.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/activateRental.js +1 -70
- package/dist/cjs/generated/codama/instructions/activateRental.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/closeRental.js +170 -25
- package/dist/cjs/generated/codama/instructions/closeRental.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/createConfig.js +0 -8
- package/dist/cjs/generated/codama/instructions/createConfig.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/deleteBorrower.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/deleteContract.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/deleteContractThread.js +175 -0
- package/dist/cjs/generated/codama/instructions/deleteContractThread.js.map +1 -0
- package/dist/cjs/generated/codama/instructions/deleteRental.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/index.js +1 -1
- package/dist/cjs/generated/codama/instructions/index.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/reserveRental.js +7 -10
- package/dist/cjs/generated/codama/instructions/reserveRental.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/updateConfig.js +2 -0
- package/dist/cjs/generated/codama/instructions/updateConfig.js.map +1 -1
- package/dist/cjs/generated/codama/programs/srsly.js +18 -18
- package/dist/cjs/generated/codama/programs/srsly.js.map +1 -1
- package/dist/cjs/generated/codama/types/fleet.js +14 -0
- package/dist/cjs/generated/codama/types/fleet.js.map +1 -1
- package/dist/cjs/generated/codama/types/index.js +1 -1
- package/dist/cjs/generated/codama/types/index.js.map +1 -1
- package/dist/cjs/generated/codama/types/rentalClosed.js +2 -0
- package/dist/cjs/generated/codama/types/rentalClosed.js.map +1 -1
- package/dist/cjs/generated/codama/types/reservationCreated.js +2 -0
- package/dist/cjs/generated/codama/types/reservationCreated.js.map +1 -1
- package/dist/cjs/generated/codama/types/shipStats.js +2 -0
- package/dist/cjs/generated/codama/types/shipStats.js.map +1 -1
- package/dist/cjs/instructions/acceptRental.js +15 -23
- package/dist/cjs/instructions/acceptRental.js.map +1 -1
- package/dist/cjs/instructions/activateRental.js +0 -8
- package/dist/cjs/instructions/activateRental.js.map +1 -1
- package/dist/cjs/instructions/closeContract.js +79 -27
- package/dist/cjs/instructions/closeContract.js.map +1 -1
- package/dist/cjs/instructions/closeRental.js +25 -20
- package/dist/cjs/instructions/closeRental.js.map +1 -1
- package/dist/cjs/instructions/createConfig.js +1 -4
- package/dist/cjs/instructions/createConfig.js.map +1 -1
- package/dist/cjs/instructions/deleteContractThread.js +65 -0
- package/dist/cjs/instructions/deleteContractThread.js.map +1 -0
- package/dist/cjs/instructions/index.js +1 -1
- package/dist/cjs/instructions/index.js.map +1 -1
- package/dist/cjs/instructions/invalidateRental.js +10 -7
- package/dist/cjs/instructions/invalidateRental.js.map +1 -1
- package/dist/cjs/instructions/releaseRental.js +10 -7
- package/dist/cjs/instructions/releaseRental.js.map +1 -1
- package/dist/cjs/instructions/reserveRental.js +3 -10
- package/dist/cjs/instructions/reserveRental.js.map +1 -1
- package/dist/cjs/instructions/updateConfig.js +1 -0
- package/dist/cjs/instructions/updateConfig.js.map +1 -1
- package/dist/cjs/kit/index.js +2 -2
- package/dist/cjs/kit/index.js.map +1 -1
- package/dist/cjs/legacy/index.js +2 -3
- package/dist/cjs/legacy/index.js.map +1 -1
- package/dist/cjs/package.json +1 -1
- package/dist/cjs/utils/config.js.map +1 -1
- package/dist/cjs/utils/discountAuth.js +45 -106
- package/dist/cjs/utils/discountAuth.js.map +1 -1
- package/dist/cjs/utils/index.js +1 -7
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/esm/demos.js +12 -25
- package/dist/esm/demos.js.map +1 -1
- package/dist/esm/generated/codama/accounts/configState.js +3 -1
- package/dist/esm/generated/codama/accounts/configState.js.map +1 -1
- package/dist/esm/generated/codama/accounts/contractState.js +2 -0
- package/dist/esm/generated/codama/accounts/contractState.js.map +1 -1
- package/dist/esm/generated/codama/accounts/rentalState.js +6 -4
- package/dist/esm/generated/codama/accounts/rentalState.js.map +1 -1
- package/dist/esm/generated/codama/errors/srsly.js +6 -3
- package/dist/esm/generated/codama/errors/srsly.js.map +1 -1
- package/dist/esm/generated/codama/instructions/acceptRental.js +40 -12
- package/dist/esm/generated/codama/instructions/acceptRental.js.map +1 -1
- package/dist/esm/generated/codama/instructions/activateRental.js +1 -70
- package/dist/esm/generated/codama/instructions/activateRental.js.map +1 -1
- package/dist/esm/generated/codama/instructions/closeRental.js +170 -25
- package/dist/esm/generated/codama/instructions/closeRental.js.map +1 -1
- package/dist/esm/generated/codama/instructions/createConfig.js +0 -8
- package/dist/esm/generated/codama/instructions/createConfig.js.map +1 -1
- package/dist/esm/generated/codama/instructions/deleteBorrower.js.map +1 -1
- package/dist/esm/generated/codama/instructions/deleteContract.js.map +1 -1
- package/dist/esm/generated/codama/instructions/deleteContractThread.js +165 -0
- package/dist/esm/generated/codama/instructions/deleteContractThread.js.map +1 -0
- package/dist/esm/generated/codama/instructions/deleteRental.js.map +1 -1
- package/dist/esm/generated/codama/instructions/index.js +1 -1
- package/dist/esm/generated/codama/instructions/index.js.map +1 -1
- package/dist/esm/generated/codama/instructions/reserveRental.js +8 -11
- package/dist/esm/generated/codama/instructions/reserveRental.js.map +1 -1
- package/dist/esm/generated/codama/instructions/updateConfig.js +2 -0
- package/dist/esm/generated/codama/instructions/updateConfig.js.map +1 -1
- package/dist/esm/generated/codama/programs/srsly.js +18 -18
- package/dist/esm/generated/codama/programs/srsly.js.map +1 -1
- package/dist/esm/generated/codama/types/fleet.js +15 -1
- package/dist/esm/generated/codama/types/fleet.js.map +1 -1
- package/dist/esm/generated/codama/types/index.js +1 -1
- package/dist/esm/generated/codama/types/index.js.map +1 -1
- package/dist/esm/generated/codama/types/rentalClosed.js +3 -1
- package/dist/esm/generated/codama/types/rentalClosed.js.map +1 -1
- package/dist/esm/generated/codama/types/reservationCreated.js +3 -1
- package/dist/esm/generated/codama/types/reservationCreated.js.map +1 -1
- package/dist/esm/generated/codama/types/shipStats.js +3 -1
- package/dist/esm/generated/codama/types/shipStats.js.map +1 -1
- package/dist/esm/instructions/acceptRental.js +15 -23
- package/dist/esm/instructions/acceptRental.js.map +1 -1
- package/dist/esm/instructions/activateRental.js +0 -8
- package/dist/esm/instructions/activateRental.js.map +1 -1
- package/dist/esm/instructions/closeContract.js +79 -27
- package/dist/esm/instructions/closeContract.js.map +1 -1
- package/dist/esm/instructions/closeRental.js +25 -20
- package/dist/esm/instructions/closeRental.js.map +1 -1
- package/dist/esm/instructions/createConfig.js +1 -4
- package/dist/esm/instructions/createConfig.js.map +1 -1
- package/dist/esm/instructions/deleteContractThread.js +62 -0
- package/dist/esm/instructions/deleteContractThread.js.map +1 -0
- package/dist/esm/instructions/index.js +1 -1
- package/dist/esm/instructions/index.js.map +1 -1
- package/dist/esm/instructions/invalidateRental.js +10 -7
- package/dist/esm/instructions/invalidateRental.js.map +1 -1
- package/dist/esm/instructions/releaseRental.js +10 -7
- package/dist/esm/instructions/releaseRental.js.map +1 -1
- package/dist/esm/instructions/reserveRental.js +3 -10
- package/dist/esm/instructions/reserveRental.js.map +1 -1
- package/dist/esm/instructions/updateConfig.js +1 -0
- package/dist/esm/instructions/updateConfig.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 +1 -2
- package/dist/esm/legacy/index.js.map +1 -1
- package/dist/esm/package.json +1 -1
- package/dist/esm/utils/config.js.map +1 -1
- package/dist/esm/utils/discountAuth.js +45 -103
- package/dist/esm/utils/discountAuth.js.map +1 -1
- package/dist/esm/utils/index.js +0 -2
- package/dist/esm/utils/index.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/idl/srsly.json +411 -352
- package/dist/types/demos.d.ts +0 -2
- package/dist/types/demos.d.ts.map +1 -1
- package/dist/types/generated/codama/accounts/configState.d.ts +4 -0
- package/dist/types/generated/codama/accounts/configState.d.ts.map +1 -1
- package/dist/types/generated/codama/accounts/contractState.d.ts +4 -0
- package/dist/types/generated/codama/accounts/contractState.d.ts.map +1 -1
- package/dist/types/generated/codama/accounts/rentalState.d.ts +13 -9
- package/dist/types/generated/codama/accounts/rentalState.d.ts.map +1 -1
- package/dist/types/generated/codama/errors/srsly.d.ts +5 -3
- package/dist/types/generated/codama/errors/srsly.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/acceptRental.d.ts +53 -32
- package/dist/types/generated/codama/instructions/acceptRental.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/activateRental.d.ts +18 -49
- package/dist/types/generated/codama/instructions/activateRental.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/closeRental.d.ts +83 -28
- package/dist/types/generated/codama/instructions/closeRental.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/createConfig.d.ts +3 -3
- package/dist/types/generated/codama/instructions/createConfig.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/deleteBorrower.d.ts +3 -0
- package/dist/types/generated/codama/instructions/deleteBorrower.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/deleteContract.d.ts +3 -0
- package/dist/types/generated/codama/instructions/deleteContract.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/deleteContractThread.d.ts +70 -0
- package/dist/types/generated/codama/instructions/deleteContractThread.d.ts.map +1 -0
- package/dist/types/generated/codama/instructions/deleteRental.d.ts +3 -0
- package/dist/types/generated/codama/instructions/deleteRental.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/index.d.ts +1 -1
- package/dist/types/generated/codama/instructions/index.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/reserveRental.d.ts +18 -23
- package/dist/types/generated/codama/instructions/reserveRental.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/updateConfig.d.ts +6 -0
- package/dist/types/generated/codama/instructions/updateConfig.d.ts.map +1 -1
- package/dist/types/generated/codama/programs/srsly.d.ts +18 -18
- package/dist/types/generated/codama/programs/srsly.d.ts.map +1 -1
- package/dist/types/generated/codama/types/fleet.d.ts +14 -0
- package/dist/types/generated/codama/types/fleet.d.ts.map +1 -1
- package/dist/types/generated/codama/types/index.d.ts +1 -1
- package/dist/types/generated/codama/types/index.d.ts.map +1 -1
- package/dist/types/generated/codama/types/rentalClosed.d.ts +8 -1
- package/dist/types/generated/codama/types/rentalClosed.d.ts.map +1 -1
- package/dist/types/generated/codama/types/reservationCreated.d.ts +2 -0
- package/dist/types/generated/codama/types/reservationCreated.d.ts.map +1 -1
- package/dist/types/generated/codama/types/shipStats.d.ts +3 -1
- package/dist/types/generated/codama/types/shipStats.d.ts.map +1 -1
- package/dist/types/instructions/acceptRental.d.ts +3 -12
- package/dist/types/instructions/acceptRental.d.ts.map +1 -1
- package/dist/types/instructions/activateRental.d.ts.map +1 -1
- package/dist/types/instructions/closeContract.d.ts +5 -0
- package/dist/types/instructions/closeContract.d.ts.map +1 -1
- package/dist/types/instructions/closeRental.d.ts.map +1 -1
- package/dist/types/instructions/createConfig.d.ts +4 -4
- package/dist/types/instructions/createConfig.d.ts.map +1 -1
- package/dist/types/instructions/deleteContractThread.d.ts +42 -0
- package/dist/types/instructions/deleteContractThread.d.ts.map +1 -0
- package/dist/types/instructions/index.d.ts +1 -1
- package/dist/types/instructions/index.d.ts.map +1 -1
- package/dist/types/instructions/invalidateRental.d.ts +4 -3
- package/dist/types/instructions/invalidateRental.d.ts.map +1 -1
- package/dist/types/instructions/releaseRental.d.ts +4 -3
- package/dist/types/instructions/releaseRental.d.ts.map +1 -1
- package/dist/types/instructions/reserveRental.d.ts +0 -7
- package/dist/types/instructions/reserveRental.d.ts.map +1 -1
- package/dist/types/instructions/updateConfig.d.ts +4 -4
- package/dist/types/instructions/updateConfig.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 -2
- package/dist/types/legacy/index.d.ts.map +1 -1
- package/dist/types/utils/config.d.ts +3 -3
- package/dist/types/utils/config.d.ts.map +1 -1
- package/dist/types/utils/discountAuth.d.ts +38 -70
- package/dist/types/utils/discountAuth.d.ts.map +1 -1
- package/dist/types/utils/index.d.ts +0 -1
- package/dist/types/utils/index.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/generated/codama/types/index.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;AAEH,iDAA+B;AAC/B,wDAAsC;AACtC,+CAA6B;AAC7B,mDAAiC;AACjC,oDAAkC;AAClC,wDAAsC;AACtC,yDAAuC;AACvC,sDAAoC;AACpC,yDAAuC;AACvC,0DAAwC;AACxC,0DAAwC;AACxC,oDAAkC;AAClC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/generated/codama/types/index.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;AAEH,iDAA+B;AAC/B,wDAAsC;AACtC,+CAA6B;AAC7B,gDAA8B;AAC9B,mDAAiC;AACjC,oDAAkC;AAClC,wDAAsC;AACtC,yDAAuC;AACvC,sDAAoC;AACpC,yDAAuC;AACvC,0DAAwC;AACxC,0DAAwC;AACxC,oDAAkC;AAClC,gDAA8B;AAC9B,0CAAwB;AACxB,8CAA4B;AAC5B,kDAAgC;AAChC,4DAA0C;AAC1C,yDAAuC;AACvC,mDAAiC;AACjC,oDAAkC;AAClC,oDAAkC;AAClC,iDAA+B;AAC/B,kDAAgC;AAChC,iDAA+B;AAC/B,uDAAqC;AACrC,wDAAsC;AACtC,6CAA2B;AAC3B,+CAA6B;AAC7B,8CAA4B;AAC5B,2CAAyB;AACzB,2CAAyB;AACzB,4CAA0B"}
|
|
@@ -17,6 +17,7 @@ function getRentalClosedEncoder() {
|
|
|
17
17
|
["contract", (0, kit_1.getAddressEncoder)()],
|
|
18
18
|
["borrower", (0, kit_1.getAddressEncoder)()],
|
|
19
19
|
["pointsAwarded", (0, kit_1.getU32Encoder)()],
|
|
20
|
+
["feeFlushed", (0, kit_1.getU64Encoder)()],
|
|
20
21
|
]);
|
|
21
22
|
}
|
|
22
23
|
function getRentalClosedDecoder() {
|
|
@@ -25,6 +26,7 @@ function getRentalClosedDecoder() {
|
|
|
25
26
|
["contract", (0, kit_1.getAddressDecoder)()],
|
|
26
27
|
["borrower", (0, kit_1.getAddressDecoder)()],
|
|
27
28
|
["pointsAwarded", (0, kit_1.getU32Decoder)()],
|
|
29
|
+
["feeFlushed", (0, kit_1.getU64Decoder)()],
|
|
28
30
|
]);
|
|
29
31
|
}
|
|
30
32
|
function getRentalClosedCodec() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rentalClosed.js","sourceRoot":"","sources":["../../../../../src/generated/codama/types/rentalClosed.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;
|
|
1
|
+
{"version":3,"file":"rentalClosed.js","sourceRoot":"","sources":["../../../../../src/generated/codama/types/rentalClosed.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AAkCH,wDAQC;AAED,wDAQC;AAED,oDAKC;AAzDD,qCAcqB;AAkBrB,SAAgB,sBAAsB;IACpC,OAAO,IAAA,sBAAgB,EAAC;QACtB,CAAC,aAAa,EAAE,IAAA,uBAAiB,GAAE,CAAC;QACpC,CAAC,UAAU,EAAE,IAAA,uBAAiB,GAAE,CAAC;QACjC,CAAC,UAAU,EAAE,IAAA,uBAAiB,GAAE,CAAC;QACjC,CAAC,eAAe,EAAE,IAAA,mBAAa,GAAE,CAAC;QAClC,CAAC,YAAY,EAAE,IAAA,mBAAa,GAAE,CAAC;KAChC,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,sBAAsB;IACpC,OAAO,IAAA,sBAAgB,EAAC;QACtB,CAAC,aAAa,EAAE,IAAA,uBAAiB,GAAE,CAAC;QACpC,CAAC,UAAU,EAAE,IAAA,uBAAiB,GAAE,CAAC;QACjC,CAAC,UAAU,EAAE,IAAA,uBAAiB,GAAE,CAAC;QACjC,CAAC,eAAe,EAAE,IAAA,mBAAa,GAAE,CAAC;QAClC,CAAC,YAAY,EAAE,IAAA,mBAAa,GAAE,CAAC;KAChC,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,oBAAoB;IAIlC,OAAO,IAAA,kBAAY,EAAC,sBAAsB,EAAE,EAAE,sBAAsB,EAAE,CAAC,CAAC;AAC1E,CAAC"}
|
|
@@ -19,6 +19,7 @@ function getReservationCreatedEncoder() {
|
|
|
19
19
|
["bidAtlas", (0, kit_1.getU64Encoder)()],
|
|
20
20
|
["escrowAmount", (0, kit_1.getU64Encoder)()],
|
|
21
21
|
["serviceFee", (0, kit_1.getU64Encoder)()],
|
|
22
|
+
["feeBps", (0, kit_1.getU16Encoder)()],
|
|
22
23
|
["durationSeconds", (0, kit_1.getI64Encoder)()],
|
|
23
24
|
]);
|
|
24
25
|
}
|
|
@@ -30,6 +31,7 @@ function getReservationCreatedDecoder() {
|
|
|
30
31
|
["bidAtlas", (0, kit_1.getU64Decoder)()],
|
|
31
32
|
["escrowAmount", (0, kit_1.getU64Decoder)()],
|
|
32
33
|
["serviceFee", (0, kit_1.getU64Decoder)()],
|
|
34
|
+
["feeBps", (0, kit_1.getU16Decoder)()],
|
|
33
35
|
["durationSeconds", (0, kit_1.getI64Decoder)()],
|
|
34
36
|
]);
|
|
35
37
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reservationCreated.js","sourceRoot":"","sources":["../../../../../src/generated/codama/types/reservationCreated.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;
|
|
1
|
+
{"version":3,"file":"reservationCreated.js","sourceRoot":"","sources":["../../../../../src/generated/codama/types/reservationCreated.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AA4CH,oEAWC;AAED,oEAWC;AAED,gEAQC;AA5ED,qCAkBqB;AAwBrB,SAAgB,4BAA4B;IAC1C,OAAO,IAAA,sBAAgB,EAAC;QACtB,CAAC,UAAU,EAAE,IAAA,uBAAiB,GAAE,CAAC;QACjC,CAAC,YAAY,EAAE,IAAA,uBAAiB,GAAE,CAAC;QACnC,CAAC,WAAW,EAAE,IAAA,mBAAa,GAAE,CAAC;QAC9B,CAAC,UAAU,EAAE,IAAA,mBAAa,GAAE,CAAC;QAC7B,CAAC,cAAc,EAAE,IAAA,mBAAa,GAAE,CAAC;QACjC,CAAC,YAAY,EAAE,IAAA,mBAAa,GAAE,CAAC;QAC/B,CAAC,QAAQ,EAAE,IAAA,mBAAa,GAAE,CAAC;QAC3B,CAAC,iBAAiB,EAAE,IAAA,mBAAa,GAAE,CAAC;KACrC,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,4BAA4B;IAC1C,OAAO,IAAA,sBAAgB,EAAC;QACtB,CAAC,UAAU,EAAE,IAAA,uBAAiB,GAAE,CAAC;QACjC,CAAC,YAAY,EAAE,IAAA,uBAAiB,GAAE,CAAC;QACnC,CAAC,WAAW,EAAE,IAAA,mBAAa,GAAE,CAAC;QAC9B,CAAC,UAAU,EAAE,IAAA,mBAAa,GAAE,CAAC;QAC7B,CAAC,cAAc,EAAE,IAAA,mBAAa,GAAE,CAAC;QACjC,CAAC,YAAY,EAAE,IAAA,mBAAa,GAAE,CAAC;QAC/B,CAAC,QAAQ,EAAE,IAAA,mBAAa,GAAE,CAAC;QAC3B,CAAC,iBAAiB,EAAE,IAAA,mBAAa,GAAE,CAAC;KACrC,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,0BAA0B;IAIxC,OAAO,IAAA,kBAAY,EACjB,4BAA4B,EAAE,EAC9B,4BAA4B,EAAE,CAC/B,CAAC;AACJ,CAAC"}
|
|
@@ -16,6 +16,7 @@ function getShipStatsEncoder() {
|
|
|
16
16
|
return (0, kit_1.getStructEncoder)([
|
|
17
17
|
["movementStats", (0, _1.getMovementStatsEncoder)()],
|
|
18
18
|
["cargoStats", (0, _1.getCargoStatsEncoder)()],
|
|
19
|
+
["combatStats", (0, _1.getCombatStatsEncoder)()],
|
|
19
20
|
["miscStats", (0, _1.getMiscStatsEncoder)()],
|
|
20
21
|
]);
|
|
21
22
|
}
|
|
@@ -23,6 +24,7 @@ function getShipStatsDecoder() {
|
|
|
23
24
|
return (0, kit_1.getStructDecoder)([
|
|
24
25
|
["movementStats", (0, _1.getMovementStatsDecoder)()],
|
|
25
26
|
["cargoStats", (0, _1.getCargoStatsDecoder)()],
|
|
27
|
+
["combatStats", (0, _1.getCombatStatsDecoder)()],
|
|
26
28
|
["miscStats", (0, _1.getMiscStatsDecoder)()],
|
|
27
29
|
]);
|
|
28
30
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shipStats.js","sourceRoot":"","sources":["../../../../../src/generated/codama/types/shipStats.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;
|
|
1
|
+
{"version":3,"file":"shipStats.js","sourceRoot":"","sources":["../../../../../src/generated/codama/types/shipStats.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AA4CH,kDAOC;AAED,kDAOC;AAED,8CAEC;AA9DD,qCAOqB;AACrB,wBAiBW;AAiBX,SAAgB,mBAAmB;IACjC,OAAO,IAAA,sBAAgB,EAAC;QACtB,CAAC,eAAe,EAAE,IAAA,0BAAuB,GAAE,CAAC;QAC5C,CAAC,YAAY,EAAE,IAAA,uBAAoB,GAAE,CAAC;QACtC,CAAC,aAAa,EAAE,IAAA,wBAAqB,GAAE,CAAC;QACxC,CAAC,WAAW,EAAE,IAAA,sBAAmB,GAAE,CAAC;KACrC,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,mBAAmB;IACjC,OAAO,IAAA,sBAAgB,EAAC;QACtB,CAAC,eAAe,EAAE,IAAA,0BAAuB,GAAE,CAAC;QAC5C,CAAC,YAAY,EAAE,IAAA,uBAAoB,GAAE,CAAC;QACtC,CAAC,aAAa,EAAE,IAAA,wBAAqB,GAAE,CAAC;QACxC,CAAC,WAAW,EAAE,IAAA,sBAAmB,GAAE,CAAC;KACrC,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,iBAAiB;IAC/B,OAAO,IAAA,kBAAY,EAAC,mBAAmB,EAAE,EAAE,mBAAmB,EAAE,CAAC,CAAC;AACpE,CAAC"}
|
|
@@ -22,7 +22,6 @@ const srsly_1 = require("../pda/srsly");
|
|
|
22
22
|
const token_1 = require("../pda/token");
|
|
23
23
|
const thread_1 = require("../pda/thread");
|
|
24
24
|
const instructions_2 = require("../utils/instructions");
|
|
25
|
-
const discountAuth_1 = require("../utils/discountAuth");
|
|
26
25
|
const types_1 = require("../generated/codama/types");
|
|
27
26
|
/**
|
|
28
27
|
* Accept a rental contract
|
|
@@ -41,9 +40,9 @@ const types_1 = require("../generated/codama/types");
|
|
|
41
40
|
*
|
|
42
41
|
* @example
|
|
43
42
|
* ```typescript
|
|
44
|
-
* // Accept a 7-day rental (borrowerProfile auto-fetched)
|
|
45
43
|
* const ixs = await acceptRental({
|
|
46
44
|
* borrower: wallet,
|
|
45
|
+
* borrowerProfile: "BORROWER_PROFILE_ADDRESS",
|
|
47
46
|
* contract: "CONTRACT_ADDRESS",
|
|
48
47
|
* duration: { days: 7 },
|
|
49
48
|
* computeUnits: 400_000
|
|
@@ -63,11 +62,13 @@ async function acceptRental(params, config) {
|
|
|
63
62
|
if (!params.duration) {
|
|
64
63
|
throw new Error('duration is required');
|
|
65
64
|
}
|
|
65
|
+
if (!params.borrowerProfile) {
|
|
66
|
+
throw new Error('borrowerProfile is required');
|
|
67
|
+
}
|
|
66
68
|
// Convert borrower to transaction signer
|
|
67
69
|
const borrowerSigner = (0, signer_1.toTransactionSigner)(params.borrower);
|
|
68
|
-
// Fetch config
|
|
70
|
+
// Fetch config
|
|
69
71
|
const configAccount = await (0, config_2.fetchConfig)(finalConfig.rpcUrl);
|
|
70
|
-
const vault = configAccount.data.slyvault;
|
|
71
72
|
// Fetch contract to get fleet, gameId
|
|
72
73
|
const contractAccount = await (0, contract_1.fetchContract)(params.contract, finalConfig.rpcUrl);
|
|
73
74
|
const fleet = contractAccount.data.fleet;
|
|
@@ -83,14 +84,7 @@ async function acceptRental(params, config) {
|
|
|
83
84
|
// Fetch fleet data for faction (needed to derive SAGE accounts)
|
|
84
85
|
const fleetState = await (0, fleet_1.fetchFleet)(fleet, finalConfig.rpcUrl);
|
|
85
86
|
const faction = fleetState.faction;
|
|
86
|
-
|
|
87
|
-
let borrowerProfile;
|
|
88
|
-
if (params.borrowerProfile) {
|
|
89
|
-
borrowerProfile = (0, kit_1.address)(params.borrowerProfile);
|
|
90
|
-
}
|
|
91
|
-
else {
|
|
92
|
-
borrowerProfile = fleetState.subProfile.key;
|
|
93
|
-
}
|
|
87
|
+
const borrowerProfile = (0, kit_1.address)(params.borrowerProfile);
|
|
94
88
|
// Derive all SAGE game accounts (profile faction, starbase, starbase player)
|
|
95
89
|
const gameAccounts = await (0, sage_1.deriveGameAccounts)(borrowerProfile, faction, gameId);
|
|
96
90
|
// Derive active rental PDA (no more slot logic)
|
|
@@ -135,17 +129,13 @@ async function acceptRental(params, config) {
|
|
|
135
129
|
const addresses = (0, config_1.getAddresses)(config);
|
|
136
130
|
const sageProgram = (0, kit_1.address)(addresses.sage);
|
|
137
131
|
const programAddress = (0, kit_1.address)(addresses.srsly);
|
|
138
|
-
// Deserialize discount auth if provided
|
|
139
|
-
let discountAuth = null;
|
|
140
|
-
if (params.discountAuth) {
|
|
141
|
-
discountAuth = (0, discountAuth_1.deserializeDiscountAuth)(params.discountAuth);
|
|
142
|
-
}
|
|
143
132
|
const referrer = params.referrer ? (0, kit_1.address)(params.referrer) : undefined;
|
|
144
|
-
// Derive vault token account (ATA)
|
|
145
|
-
const vaultTokenAccount = await (0, token_1.deriveAssociatedTokenAccount)(vault, atlasMint);
|
|
146
133
|
// Derive contract token account (ATA of contract PDA)
|
|
147
134
|
const contractAddress = (0, kit_1.address)(params.contract);
|
|
148
135
|
const contractTokenAccount = await (0, token_1.deriveAssociatedTokenAccount)(contractAddress, atlasMint);
|
|
136
|
+
// Derive vault accounts for fee flush
|
|
137
|
+
const vaultAddress = (0, kit_1.address)(configAccount.data.slyvault);
|
|
138
|
+
const vaultTokenAccount = await (0, token_1.deriveAssociatedTokenAccount)(vaultAddress, atlasMint);
|
|
149
139
|
// Derive borrower token account (ATA)
|
|
150
140
|
const borrowerTokenAccount = await (0, token_1.deriveAssociatedTokenAccount)(borrowerSigner.address, atlasMint);
|
|
151
141
|
// Call Codama-generated acceptRental instruction
|
|
@@ -155,16 +145,18 @@ async function acceptRental(params, config) {
|
|
|
155
145
|
fleet: (0, kit_1.address)(fleet),
|
|
156
146
|
expiredBorrowerState,
|
|
157
147
|
contract: contractAddress,
|
|
158
|
-
rentalState,
|
|
159
|
-
vault: (0, kit_1.address)(vault),
|
|
160
|
-
vaultTokenAccount,
|
|
161
148
|
contractTokenAccount,
|
|
149
|
+
vault: vaultAddress,
|
|
150
|
+
vaultTokenAccount,
|
|
162
151
|
...(contractThread && { contractThread }),
|
|
163
152
|
...(closeRentalFiber && { closeRentalFiber }),
|
|
164
153
|
referrer,
|
|
165
154
|
sageProgram,
|
|
166
155
|
duration: BigInt(durationSeconds),
|
|
167
|
-
|
|
156
|
+
discountSignature: null,
|
|
157
|
+
discountMemberNonce: null,
|
|
158
|
+
discountBps: null,
|
|
159
|
+
discountExpiresAt: null,
|
|
168
160
|
}, { programAddress });
|
|
169
161
|
// Append SAGE pass-through accounts as remaining accounts
|
|
170
162
|
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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"}
|
|
@@ -19,7 +19,6 @@ const rental_1 = require("../accounts/rental");
|
|
|
19
19
|
const sage_1 = require("../pda/sage");
|
|
20
20
|
const srsly_1 = require("../pda/srsly");
|
|
21
21
|
const thread_1 = require("../pda/thread");
|
|
22
|
-
const token_1 = require("../pda/token");
|
|
23
22
|
/**
|
|
24
23
|
* Manually activate a queued rental
|
|
25
24
|
*
|
|
@@ -66,22 +65,15 @@ async function activateRental(params, config) {
|
|
|
66
65
|
const borrowerProfileAddr = (0, kit_1.address)(params.borrowerProfile);
|
|
67
66
|
const fleetState = await (0, fleet_1.fetchFleet)(contractAccount.data.fleet, finalConfig.rpcUrl);
|
|
68
67
|
const gameAccounts = await (0, sage_1.deriveGameAccounts)(borrowerProfileAddr, fleetState.faction, contractAccount.data.gameId);
|
|
69
|
-
// Get vault from config and derive vault token account
|
|
70
|
-
const vault = configAccount.data.slyvault;
|
|
71
|
-
const vaultTokenAccount = await (0, token_1.deriveAssociatedTokenAccount)(vault, atlasMint);
|
|
72
68
|
const kitInstruction = await (0, instructions_1.getActivateRentalInstructionAsync)({
|
|
73
69
|
payer: payerSigner,
|
|
74
70
|
contract: contractAddress,
|
|
75
|
-
contractTokenAccount: contractAccount.data.managedTokenAccount,
|
|
76
|
-
mint: atlasMint,
|
|
77
71
|
borrowerProfile: borrowerProfileAddr,
|
|
78
72
|
borrowerProfileFaction: gameAccounts.profileFaction,
|
|
79
73
|
fleet: contractAccount.data.fleet,
|
|
80
74
|
gameId: contractAccount.data.gameId,
|
|
81
75
|
...(contractThread && { contractThread }),
|
|
82
76
|
...(closeRentalFiber && { closeRentalFiber }),
|
|
83
|
-
vault,
|
|
84
|
-
vaultTokenAccount,
|
|
85
77
|
sageProgram: (0, kit_1.address)(addresses.sage),
|
|
86
78
|
}, { programAddress });
|
|
87
79
|
// Append starbase + starbasePlayer as remaining accounts (for fiber 1 building)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activateRental.js","sourceRoot":"","sources":["../../../src/instructions/activateRental.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAsDH,
|
|
1
|
+
{"version":3,"file":"activateRental.js","sourceRoot":"","sources":["../../../src/instructions/activateRental.ts"],"names":[],"mappings":"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"}
|
|
@@ -46,6 +46,7 @@ const config_1 = require("../utils/config");
|
|
|
46
46
|
const signer_1 = require("../utils/signer");
|
|
47
47
|
const contract_1 = require("../accounts/contract");
|
|
48
48
|
const config_2 = require("../accounts/config");
|
|
49
|
+
const rental_1 = require("../accounts/rental");
|
|
49
50
|
const thread_1 = require("../accounts/thread");
|
|
50
51
|
const token_1 = require("../pda/token");
|
|
51
52
|
const srsly_1 = require("../pda/srsly");
|
|
@@ -141,51 +142,102 @@ async function closeContract(params, config) {
|
|
|
141
142
|
: (0, kit_1.address)(addresses.sage);
|
|
142
143
|
// Derive contract token account (ATA of contract PDA for ATLAS)
|
|
143
144
|
const contractTokenAccount = await (0, token_1.deriveAssociatedTokenAccount)(contractAddress, atlasMint);
|
|
144
|
-
// Check
|
|
145
|
+
// Check contract state
|
|
145
146
|
const SYSTEM_PROGRAM_ID = '11111111111111111111111111111111';
|
|
146
147
|
const hasThread = contractAccount.data.thread !== SYSTEM_PROGRAM_ID;
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
//
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
const
|
|
153
|
-
const activeRental = await fetchRental(contractAccount.data.activeRental, finalConfig.rpcUrl);
|
|
148
|
+
const hasActiveSlot = contractAccount.data.activeRental !== SYSTEM_PROGRAM_ID;
|
|
149
|
+
const hasQueuedSlot = contractAccount.data.queuedRental !== SYSTEM_PROGRAM_ID;
|
|
150
|
+
// Check if active rental is expired
|
|
151
|
+
let activeExpired = false;
|
|
152
|
+
if (hasActiveSlot) {
|
|
153
|
+
const activeRental = await (0, rental_1.fetchRental)(contractAccount.data.activeRental, finalConfig.rpcUrl);
|
|
154
154
|
const now = Math.floor(Date.now() / 1000);
|
|
155
155
|
if (activeRental.data.endTime <= BigInt(now)) {
|
|
156
|
-
|
|
156
|
+
activeExpired = true;
|
|
157
157
|
}
|
|
158
158
|
}
|
|
159
|
-
|
|
160
|
-
|
|
159
|
+
// Resolve queued borrower accounts when a queued rental exists
|
|
160
|
+
let queuedBorrowerState;
|
|
161
|
+
let queuedBorrowerTokenAccount;
|
|
162
|
+
if (hasQueuedSlot) {
|
|
163
|
+
let queuedBorrower;
|
|
164
|
+
if (params.queuedBorrower) {
|
|
165
|
+
queuedBorrower = (0, kit_1.address)(params.queuedBorrower);
|
|
166
|
+
}
|
|
167
|
+
else {
|
|
168
|
+
const queuedRental = await (0, rental_1.fetchRental)(contractAccount.data.queuedRental, finalConfig.rpcUrl);
|
|
169
|
+
queuedBorrower = queuedRental.data.borrower;
|
|
170
|
+
}
|
|
171
|
+
queuedBorrowerState = await (0, srsly_1.deriveBorrowerState)(queuedBorrower);
|
|
172
|
+
queuedBorrowerTokenAccount = await (0, token_1.deriveAssociatedTokenAccount)(queuedBorrower, atlasMint);
|
|
173
|
+
}
|
|
174
|
+
// Helper: build a closeContractThread instruction
|
|
175
|
+
const buildThreadCloseIx = async () => {
|
|
161
176
|
const rentalAuthority = await (0, srsly_1.deriveRentalAuthority)();
|
|
162
177
|
const contractThread = await (0, thread_2.deriveContractThread)(contractAddress, rentalAuthority);
|
|
163
|
-
// Fetch thread to get fiber IDs for remaining accounts
|
|
164
178
|
const threadAccount = await (0, thread_1.fetchThread)(contractThread, finalConfig.rpcUrl);
|
|
165
179
|
const fiberIds = Array.from(threadAccount.data.fiberIds);
|
|
166
|
-
// Derive fiber PDAs
|
|
167
180
|
const fiberAccounts = await Promise.all(fiberIds.map(async (id) => ({
|
|
168
181
|
address: await (0, thread_2.deriveFiber)(contractThread, id),
|
|
169
182
|
role: kit_1.AccountRole.WRITABLE,
|
|
170
183
|
})));
|
|
171
|
-
|
|
184
|
+
const ix = await (0, instructions_1.getCloseContractThreadInstructionAsync)({ owner: ownerSigner, contract: contractAddress, thread: contractThread }, { programAddress });
|
|
185
|
+
ix.accounts.push(...fiberAccounts);
|
|
186
|
+
return ix;
|
|
187
|
+
};
|
|
188
|
+
// Helper: build a closeContract instruction with optional queued borrower accounts
|
|
189
|
+
const buildCloseContractIx = async (includeQueued) => {
|
|
190
|
+
return (0, instructions_1.getCloseContractInstructionAsync)({
|
|
172
191
|
owner: ownerSigner,
|
|
173
192
|
contract: contractAddress,
|
|
174
|
-
|
|
193
|
+
mint: atlasMint,
|
|
194
|
+
fleet: fleetAddress,
|
|
195
|
+
contractTokenAccount: contractTokenAccount,
|
|
196
|
+
sageProgram,
|
|
197
|
+
...(includeQueued && queuedBorrowerState && queuedBorrowerTokenAccount
|
|
198
|
+
? { queuedBorrowerState, queuedBorrowerTokenAccount }
|
|
199
|
+
: {}),
|
|
175
200
|
}, { programAddress });
|
|
176
|
-
|
|
201
|
+
};
|
|
202
|
+
// Compose instructions based on scenario
|
|
203
|
+
const ixs = [];
|
|
204
|
+
if (activeExpired && hasQueuedSlot) {
|
|
205
|
+
// Expired active + queued: multi-instruction composition
|
|
206
|
+
// 1. closeRental — settles expired active
|
|
207
|
+
const { closeRental } = await Promise.resolve().then(() => __importStar(require('./closeRental')));
|
|
208
|
+
const closeRentalResult = await closeRental({ payer: params.owner, contract: contractAddress }, config);
|
|
209
|
+
ixs.push(...closeRentalResult.instructions);
|
|
210
|
+
// 2. closeContractThread (if thread exists)
|
|
211
|
+
if (hasThread) {
|
|
212
|
+
ixs.push(await buildThreadCloseIx());
|
|
213
|
+
}
|
|
214
|
+
// 3. closeContract — force-closes queued, sets to_close
|
|
215
|
+
ixs.push(await buildCloseContractIx(true));
|
|
216
|
+
// 4. closeContract — final close (no active, no queued, no thread)
|
|
217
|
+
ixs.push(await buildCloseContractIx(false));
|
|
218
|
+
}
|
|
219
|
+
else if (activeExpired && !hasQueuedSlot) {
|
|
220
|
+
// Expired active only, no queued — settle then close
|
|
221
|
+
const { closeRental } = await Promise.resolve().then(() => __importStar(require('./closeRental')));
|
|
222
|
+
const closeRentalResult = await closeRental({ payer: params.owner, contract: contractAddress }, config);
|
|
223
|
+
ixs.push(...closeRentalResult.instructions);
|
|
224
|
+
if (hasThread) {
|
|
225
|
+
ixs.push(await buildThreadCloseIx());
|
|
226
|
+
}
|
|
227
|
+
ixs.push(await buildCloseContractIx(false));
|
|
228
|
+
}
|
|
229
|
+
else if (!activeExpired && hasQueuedSlot) {
|
|
230
|
+
// Non-expired active + queued — deferred close with queued borrower accounts
|
|
231
|
+
ixs.push(await buildCloseContractIx(true));
|
|
232
|
+
}
|
|
233
|
+
else {
|
|
234
|
+
// No active rental (or no rental at all) — simple close
|
|
235
|
+
if (hasThread) {
|
|
236
|
+
ixs.push(await buildThreadCloseIx());
|
|
237
|
+
}
|
|
238
|
+
ixs.push(await buildCloseContractIx(false));
|
|
177
239
|
}
|
|
178
|
-
|
|
179
|
-
const kitInstruction = await (0, instructions_1.getCloseContractInstructionAsync)({
|
|
180
|
-
owner: ownerSigner,
|
|
181
|
-
contract: contractAddress,
|
|
182
|
-
mint: atlasMint,
|
|
183
|
-
fleet: fleetAddress,
|
|
184
|
-
contractTokenAccount: contractTokenAccount,
|
|
185
|
-
sageProgram,
|
|
186
|
-
}, { programAddress });
|
|
187
|
-
const instructions = threadCloseIx ? [threadCloseIx, kitInstruction] : kitInstruction;
|
|
188
|
-
return (0, instructions_2.prepareInstructions)(instructions, {
|
|
240
|
+
return (0, instructions_2.prepareInstructions)(ixs, {
|
|
189
241
|
computeUnits: params.computeUnits,
|
|
190
242
|
PublicKey: finalConfig.PublicKey
|
|
191
243
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"closeContract.js","sourceRoot":"","sources":["../../../src/instructions/closeContract.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"closeContract.js","sourceRoot":"","sources":["../../../src/instructions/closeContract.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,15 +8,17 @@
|
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
9
|
exports.closeRental = closeRental;
|
|
10
10
|
const kit_1 = require("@solana/kit");
|
|
11
|
+
const kit_2 = require("@solana/kit");
|
|
11
12
|
const instructions_1 = require("../generated/codama/instructions");
|
|
12
13
|
const config_1 = require("../utils/config");
|
|
13
14
|
const signer_1 = require("../utils/signer");
|
|
14
|
-
const contract_1 = require("../accounts/contract");
|
|
15
15
|
const config_2 = require("../accounts/config");
|
|
16
|
+
const contract_1 = require("../accounts/contract");
|
|
16
17
|
const fleet_1 = require("../accounts/fleet");
|
|
17
18
|
const rental_1 = require("../accounts/rental");
|
|
18
19
|
const sage_1 = require("../pda/sage");
|
|
19
20
|
const srsly_1 = require("../pda/srsly");
|
|
21
|
+
const token_1 = require("../pda/token");
|
|
20
22
|
const instructions_2 = require("../utils/instructions");
|
|
21
23
|
/**
|
|
22
24
|
* Close a rental
|
|
@@ -52,7 +54,9 @@ async function closeRental(params, config) {
|
|
|
52
54
|
if (!params.contract) {
|
|
53
55
|
throw new Error('contract is required');
|
|
54
56
|
}
|
|
55
|
-
// Fetch
|
|
57
|
+
// Fetch config and contract
|
|
58
|
+
const configAccount = await (0, config_2.fetchConfig)(finalConfig.rpcUrl);
|
|
59
|
+
const atlasMint = configAccount.data.atlasMint;
|
|
56
60
|
const contractAccount = await (0, contract_1.fetchContract)(params.contract, finalConfig.rpcUrl);
|
|
57
61
|
const fleet = contractAccount.data.fleet;
|
|
58
62
|
const gameId = contractAccount.data.gameId;
|
|
@@ -60,21 +64,12 @@ async function closeRental(params, config) {
|
|
|
60
64
|
const payerSigner = (0, signer_1.toTransactionSigner)(params.payer);
|
|
61
65
|
// Derive active rental PDA (no more slot logic)
|
|
62
66
|
const rentalState = await (0, srsly_1.deriveActiveRental)(params.contract);
|
|
63
|
-
//
|
|
67
|
+
// Fetch rental state for borrower, referrer
|
|
64
68
|
let borrower;
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
try {
|
|
70
|
-
const rental = await (0, rental_1.fetchRental)(rentalState, finalConfig.rpcUrl);
|
|
71
|
-
borrower = rental.data.borrower;
|
|
72
|
-
}
|
|
73
|
-
catch {
|
|
74
|
-
// Rental state doesn't exist, fall back to payer
|
|
75
|
-
borrower = payerSigner.address;
|
|
76
|
-
}
|
|
77
|
-
}
|
|
69
|
+
let referrer;
|
|
70
|
+
const rental = await (0, rental_1.fetchRental)(rentalState, finalConfig.rpcUrl);
|
|
71
|
+
borrower = params.borrower ? (0, kit_1.address)(params.borrower) : rental.data.borrower;
|
|
72
|
+
referrer = (0, kit_2.isOption)(rental.data.referrer) ? (0, kit_2.unwrapOption)(rental.data.referrer) ?? undefined : undefined;
|
|
78
73
|
// Derive borrower state PDA
|
|
79
74
|
const borrowerState = await (0, srsly_1.deriveBorrowerState)(borrower);
|
|
80
75
|
// Fetch fleet to get faction and derive SAGE accounts
|
|
@@ -84,22 +79,32 @@ async function closeRental(params, config) {
|
|
|
84
79
|
const faction = fleetState.faction;
|
|
85
80
|
// Derive SAGE game accounts using borrower's profile
|
|
86
81
|
const gameAccounts = await (0, sage_1.deriveGameAccounts)(borrowerProfile, faction, gameId);
|
|
87
|
-
// Get
|
|
88
|
-
const configAccount = await (0, config_2.fetchConfig)(finalConfig.rpcUrl);
|
|
82
|
+
// Get addresses
|
|
89
83
|
const addresses = (0, config_1.getAddresses)(config);
|
|
90
84
|
const sageProgram = (0, kit_1.address)(addresses.sage);
|
|
91
85
|
const programAddress = (0, kit_1.address)(addresses.srsly);
|
|
86
|
+
const contractAddress = (0, kit_1.address)(params.contract);
|
|
87
|
+
// Derive fee flush accounts
|
|
88
|
+
const vaultAddress = (0, kit_1.address)(configAccount.data.slyvault);
|
|
89
|
+
const vaultTokenAccount = await (0, token_1.deriveAssociatedTokenAccount)(vaultAddress, atlasMint);
|
|
90
|
+
const contractTokenAccount = await (0, token_1.deriveAssociatedTokenAccount)(contractAddress, atlasMint);
|
|
91
|
+
// Borrower's managed ATA for discount refund
|
|
92
|
+
const borrowerTokenAccount = await (0, token_1.deriveAssociatedTokenAccount)(borrowerState, atlasMint);
|
|
92
93
|
// Call Codama-generated instruction
|
|
93
94
|
const kitInstruction = await (0, instructions_1.getCloseRentalInstructionAsync)({
|
|
94
95
|
payer: payerSigner,
|
|
95
|
-
borrower,
|
|
96
96
|
borrowerState,
|
|
97
|
-
contract:
|
|
97
|
+
contract: contractAddress,
|
|
98
98
|
rentalState,
|
|
99
99
|
fleet: (0, kit_1.address)(fleet),
|
|
100
100
|
gameId: (0, kit_1.address)(gameId),
|
|
101
101
|
starbase: gameAccounts.starbase,
|
|
102
102
|
starbasePlayer: gameAccounts.starbasePlayer,
|
|
103
|
+
contractTokenAccount,
|
|
104
|
+
vault: vaultAddress,
|
|
105
|
+
vaultTokenAccount,
|
|
106
|
+
referrer,
|
|
107
|
+
borrowerTokenAccount,
|
|
103
108
|
sageProgram,
|
|
104
109
|
}, { programAddress });
|
|
105
110
|
return (0, instructions_2.prepareInstructions)(kitInstruction, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"closeRental.js","sourceRoot":"","sources":["../../../src/instructions/closeRental.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;
|
|
1
|
+
{"version":3,"file":"closeRental.js","sourceRoot":"","sources":["../../../src/instructions/closeRental.ts"],"names":[],"mappings":"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"}
|
|
@@ -61,10 +61,7 @@ async function createConfig(params, config) {
|
|
|
61
61
|
const sageProgram = (0, kit_1.address)(addresses.sage);
|
|
62
62
|
const antegenProgram = (0, kit_1.address)(addresses.antegen);
|
|
63
63
|
// Convert authority to TransactionSigner
|
|
64
|
-
|
|
65
|
-
const authoritySigner = params.authority
|
|
66
|
-
? (0, signer_1.toTransactionSigner)(params.authority)
|
|
67
|
-
: undefined;
|
|
64
|
+
const authoritySigner = (0, signer_1.toTransactionSigner)(params.authority);
|
|
68
65
|
// Call Codama-generated instruction
|
|
69
66
|
// srslyProgram is passed automatically as programAddress for vault derivation
|
|
70
67
|
const kitInstruction = await (0, instructions_1.getCreateConfigInstructionAsync)({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createConfig.js","sourceRoot":"","sources":["../../../src/instructions/createConfig.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AA2EH,
|
|
1
|
+
{"version":3,"file":"createConfig.js","sourceRoot":"","sources":["../../../src/instructions/createConfig.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AA2EH,oCAoDC;AA7HD,qCAAoD;AACpD,mEAAmF;AACnF,4CAA4E;AAC5E,4CAA4E;AAE5E,wDAA4D;AA0C5D;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACI,KAAK,UAAU,YAAY,CAChC,MAA0B,EAC1B,MAA2B;IAE3B,eAAe;IACf,MAAM,WAAW,GAAG,IAAA,oBAAW,EAAC,MAAM,CAAC,CAAC;IAExC,2BAA2B;IAC3B,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACvC,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnD,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,IAAI,MAAM,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;QAClE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;IAED,iCAAiC;IACjC,MAAM,SAAS,GAAG,IAAA,qBAAY,EAAC,MAAM,CAAC,CAAC;IACvC,MAAM,SAAS,GAAG,IAAA,aAAO,EAAC,SAAS,CAAC,SAAoB,CAAC,CAAC;IAC1D,MAAM,cAAc,GAAG,IAAA,aAAO,EAAC,SAAS,CAAC,KAAgB,CAAC,CAAC;IAC3D,MAAM,WAAW,GAAG,IAAA,aAAO,EAAC,SAAS,CAAC,IAAe,CAAC,CAAC;IACvD,MAAM,cAAc,GAAG,IAAA,aAAO,EAAC,SAAS,CAAC,OAAkB,CAAC,CAAC;IAE7D,yCAAyC;IACzC,MAAM,eAAe,GAAG,IAAA,4BAAmB,EAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAE9D,oCAAoC;IACpC,8EAA8E;IAC9E,MAAM,cAAc,GAAG,MAAM,IAAA,8CAA+B,EAC1D;QACE,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,IAAA,aAAO,EAAC,MAAM,CAAC,KAAgB,CAAC;QACvC,iBAAiB,EAAE,IAAA,aAAO,EAAC,MAAM,CAAC,iBAA4B,CAAC;QAC/D,WAAW,EAAE,IAAA,aAAO,EAAC,MAAM,CAAC,WAAsB,CAAC;QACnD,WAAW;QACX,cAAc;QACd,YAAY,EAAE,cAAc;QAC5B,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;KACtC,EACD,EAAE,cAAc,EAAE,CACnB,CAAC;IAEF,OAAO,IAAA,kCAAmB,EAAC,cAAc,EAAE;QACzC,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,SAAS,EAAE,WAAW,CAAC,SAAS;KACjC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @purpose Simplified deleteContractThread instruction wrapper
|
|
4
|
+
*
|
|
5
|
+
* Thin convenience wrapper around Codama-generated deleteContractThread instruction.
|
|
6
|
+
* Admin-only instruction to delete a contract's thread for schema migrations.
|
|
7
|
+
* Unlike closeContractThread, does not require the contract account.
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.deleteContractThread = deleteContractThread;
|
|
11
|
+
const kit_1 = require("@solana/kit");
|
|
12
|
+
const instructions_1 = require("../generated/codama/instructions");
|
|
13
|
+
const config_1 = require("../utils/config");
|
|
14
|
+
const signer_1 = require("../utils/signer");
|
|
15
|
+
const instructions_2 = require("../utils/instructions");
|
|
16
|
+
const thread_1 = require("../accounts/thread");
|
|
17
|
+
const thread_2 = require("../pda/thread");
|
|
18
|
+
const srsly_1 = require("../pda/srsly");
|
|
19
|
+
/**
|
|
20
|
+
* Admin-delete a per-contract automation thread
|
|
21
|
+
*
|
|
22
|
+
* Like closeContractThread but uses admin auth and does not require the
|
|
23
|
+
* contract account on-chain (for when contracts are already deleted or
|
|
24
|
+
* undeserializable). Fetches the thread account to read `fiberIds`, then
|
|
25
|
+
* derives and passes fiber PDAs as remaining accounts.
|
|
26
|
+
*
|
|
27
|
+
* @param params - Thread deletion parameters
|
|
28
|
+
* @param config - Optional SDK configuration overrides
|
|
29
|
+
* @returns Kit instruction (or web3.js if PublicKey in config)
|
|
30
|
+
*/
|
|
31
|
+
async function deleteContractThread(params, config) {
|
|
32
|
+
const finalConfig = (0, config_1.mergeConfig)(config);
|
|
33
|
+
if (!params.admin) {
|
|
34
|
+
throw new Error('admin is required');
|
|
35
|
+
}
|
|
36
|
+
if (!params.contract) {
|
|
37
|
+
throw new Error('contract is required');
|
|
38
|
+
}
|
|
39
|
+
const adminSigner = (0, signer_1.toTransactionSigner)(params.admin);
|
|
40
|
+
const addresses = (0, config_1.getAddresses)(config);
|
|
41
|
+
const programAddress = (0, kit_1.address)(addresses.srsly);
|
|
42
|
+
const contractAddress = (0, kit_1.address)(params.contract);
|
|
43
|
+
// Derive thread PDA
|
|
44
|
+
const rentalAuthority = await (0, srsly_1.deriveRentalAuthority)();
|
|
45
|
+
const contractThread = await (0, thread_2.deriveContractThread)(contractAddress, rentalAuthority);
|
|
46
|
+
// Fetch thread account to read actual fiber_ids
|
|
47
|
+
const threadAccount = await (0, thread_1.fetchThread)(contractThread, finalConfig.rpcUrl);
|
|
48
|
+
const fiberIds = Array.from(threadAccount.data.fiberIds);
|
|
49
|
+
// Derive fiber PDAs only for fibers that actually exist on the thread
|
|
50
|
+
const fiberAccounts = await Promise.all(fiberIds.map(async (id) => ({
|
|
51
|
+
address: await (0, thread_2.deriveFiber)(contractThread, id),
|
|
52
|
+
role: kit_1.AccountRole.WRITABLE,
|
|
53
|
+
})));
|
|
54
|
+
const kitInstruction = await (0, instructions_1.getDeleteContractThreadInstructionAsync)({
|
|
55
|
+
admin: adminSigner,
|
|
56
|
+
thread: contractThread,
|
|
57
|
+
}, { programAddress });
|
|
58
|
+
// Add fiber PDAs as remaining accounts (writable, non-signer)
|
|
59
|
+
kitInstruction.accounts.push(...fiberAccounts);
|
|
60
|
+
return (0, instructions_2.prepareInstructions)(kitInstruction, {
|
|
61
|
+
computeUnits: params.computeUnits,
|
|
62
|
+
PublicKey: finalConfig.PublicKey
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=deleteContractThread.js.map
|