@drift-labs/sdk
Version:
SDK for Drift Protocol
40 lines (39 loc) • 1.93 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.decodeSignedMsgOrderParamsMessage = exports.encodeSignedMsgOrderParamsMessage = void 0;
const sha256_1 = require("@noble/hashes/sha256");
function encodeSignedMsgOrderParamsMessage(args) {
const { coderTypes, delegateSigner } = args;
const orderParamsMessage = { ...args.orderParamsMessage };
if (orderParamsMessage.maxMarginRatio === undefined) {
orderParamsMessage.maxMarginRatio = null;
}
if (orderParamsMessage.isolatedPositionDeposit === undefined) {
orderParamsMessage.isolatedPositionDeposit = null;
}
const anchorIxName = delegateSigner
? 'global' + ':' + 'SignedMsgOrderParamsDelegateMessage'
: 'global' + ':' + 'SignedMsgOrderParamsMessage';
const prefix = Buffer.from((0, sha256_1.sha256)(anchorIxName).slice(0, 8));
const withBuilderDefaults = {
...orderParamsMessage,
builderIdx: orderParamsMessage.builderIdx !== undefined
? orderParamsMessage.builderIdx
: null,
builderFeeTenthBps: orderParamsMessage.builderFeeTenthBps !== undefined
? orderParamsMessage.builderFeeTenthBps
: null,
};
const body = delegateSigner
? coderTypes.encode('signedMsgOrderParamsDelegateMessage', withBuilderDefaults)
: coderTypes.encode('signedMsgOrderParamsMessage', withBuilderDefaults);
return Buffer.concat([prefix, body]);
}
exports.encodeSignedMsgOrderParamsMessage = encodeSignedMsgOrderParamsMessage;
function decodeSignedMsgOrderParamsMessage(args) {
const decodeStr = args.delegateSigner
? 'signedMsgOrderParamsDelegateMessage'
: 'signedMsgOrderParamsMessage';
return args.coderTypes.decode(decodeStr, Buffer.concat([args.encodedMessage.slice(8), Buffer.alloc(128)]));
}
exports.decodeSignedMsgOrderParamsMessage = decodeSignedMsgOrderParamsMessage;