@ylide/everscale
Version:
Ylide Protocol SDK implementation for EverScale blockchain
72 lines • 3.46 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.decodeAddressToPublicKeyMessageBody_old = exports.decodeNewAddressToPublicKeyMessageBody = exports.decodeContentMessageBody = exports.decodePushMessageBody = exports.decodeBroadcastMessageBody = void 0;
const sdk_1 = require("@ylide/sdk");
const smart_buffer_1 = __importDefault(require("@ylide/smart-buffer"));
const core_1 = __importDefault(require("everscale-standalone-client/core"));
const MailerContract_1 = require("./MailerContract");
const RegistryContract_1 = require("./RegistryContract");
function decodeBroadcastMessageBody(body) {
const data = core_1.default.nekoton.decodeEvent(body, JSON.stringify(MailerContract_1.MAILER_ABI), 'MailBroadcast');
if (!data) {
throw new Error('PushMessage format is not supported');
}
return {
msgId: (0, sdk_1.bigIntToUint256)(data.data.msgId),
};
}
exports.decodeBroadcastMessageBody = decodeBroadcastMessageBody;
function decodePushMessageBody(body) {
const data = core_1.default.nekoton.decodeEvent(body, JSON.stringify(MailerContract_1.MAILER_ABI), 'MailPush');
if (!data) {
throw new Error('PushMessage format is not supported');
}
return {
sender: data.data.sender.startsWith(':') ? `0${data.data.sender}` : data.data.sender,
msgId: (0, sdk_1.bigIntToUint256)(data.data.msgId),
key: smart_buffer_1.default.ofBase64String(data.data.key).bytes,
};
}
exports.decodePushMessageBody = decodePushMessageBody;
function decodeContentMessageBody(body) {
const data = core_1.default.nekoton.decodeEvent(body, JSON.stringify(MailerContract_1.MAILER_ABI), 'MailContent');
if (!data) {
throw new Error('ContentMessage format is not supported');
}
return {
sender: data.data.sender,
msgId: (0, sdk_1.bigIntToUint256)(data.data.msgId),
parts: Number(data.data.parts),
partIdx: Number(data.data.partIdx),
content: smart_buffer_1.default.ofBase64String(data.data.content).bytes,
};
}
exports.decodeContentMessageBody = decodeContentMessageBody;
function decodeNewAddressToPublicKeyMessageBody(body) {
const data = core_1.default.nekoton.decodeEvent(body, JSON.stringify(RegistryContract_1.REGISTRY_ABI), 'AddressToPublicKey');
if (!data) {
throw new Error('AddressToPublicKeyMessage format is not supported');
}
return {
publicKey: smart_buffer_1.default.ofHexString(BigInt(data.data.publicKey)
.toString(16)
.padStart(64, '0')).bytes,
keyVersion: Number(data.data.keyVersion),
registrar: Number(data.data.registrar),
};
}
exports.decodeNewAddressToPublicKeyMessageBody = decodeNewAddressToPublicKeyMessageBody;
function decodeAddressToPublicKeyMessageBody_old(body) {
const data = core_1.default.nekoton.decodeEvent(body, JSON.stringify(RegistryContract_1.REGISTRY_ABI), 'AddressToPublicKey');
if (!data) {
throw new Error('AddressToPublicKeyMessage format is not supported');
}
return smart_buffer_1.default.ofHexString(BigInt(data.data.publicKey)
.toString(16)
.padStart(64, '0')).bytes;
}
exports.decodeAddressToPublicKeyMessageBody_old = decodeAddressToPublicKeyMessageBody_old;
//# sourceMappingURL=contractUtils.js.map