UNPKG

test-triam-base-contract

Version:

Low level triam smart cotnract support library

124 lines (114 loc) 2.89 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.State = State; exports.OutputFormat = OutputFormat; exports.ErrorHandle = ErrorHandle; exports.ReturnData = ReturnData; exports.Encode = Encode; exports.Decode = Decode; function State() { var ledSeq = process.argv[6]; var sender = process.argv[5]; var currentState = process.argv[4]; var param = process.argv[3]; var functionName = process.argv[2]; var argvFileName = process.argv[1].split('/'); var contractKey = argvFileName[argvFileName.length - 1].replace('.js', ''); var input = void 0; if (functionName == "fallback") { var tmp = param.split('*'); var assetcode = new Buffer(tmp[2], 'hex'); input = { assetCode: assetcode.toString('utf8'), assetIssuer: tmp[3], amount: tmp[1], sender: tmp[0] }; } else { var buf = Buffer.from(param, 'hex'); var ab = toArrayBuffer(buf); var params = ab2str(ab); input = JSON.parse(params); } return { currentState: currentState, sender: sender, ledSeq: ledSeq, param: input, functionName: functionName, contractKey: contractKey }; } /* "error": 0, "newState": testbalance, "ContrOps": "", "contract": "" */ function OutputFormat(_error, _newState, _ContrOps, _contract, _message) { return { "error": _error, "newState": _newState, "ContrOps": _ContrOps, "contract": _contract, "message": _message }; } function ErrorHandle(_error, _message, _contract) { throw new Error(); } function ReturnData(_data) { var data = JSON.stringify(_data); console.log(data); } /** * @return {string} */ function Encode(_data) { try { var ab = str2ab(_data); var buf = toBuffer(ab); return buf.toString('hex'); } catch (e) { throw new Error("Encode error: " + e.message); } } function Decode(_data) { try { var _buf = Buffer.from(_data, 'hex'); var _ab = toArrayBuffer(_buf); var _state = ab2str(_ab); return JSON.parse(_state); } catch (e) { throw new Error("Decode error: " + e.message); } } var ab2str = function ab2str(buf) { return String.fromCharCode.apply(null, new Uint16Array(buf)); }; var str2ab = function str2ab(str) { var buf = new ArrayBuffer(str.length * 2); // 2 bytes for each char var bufView = new Uint16Array(buf); for (var i = 0, strLen = str.length; i < strLen; i++) { bufView[i] = str.charCodeAt(i); } return buf; }; var toArrayBuffer = function toArrayBuffer(buf) { var ab = new ArrayBuffer(buf.length); var view = new Uint8Array(ab); for (var i = 0; i < buf.length; ++i) { view[i] = buf[i]; } return ab; }; var toBuffer = function toBuffer(ab) { var buf = new Buffer(ab.byteLength); var view = new Uint8Array(ab); for (var i = 0; i < buf.length; ++i) { buf[i] = view[i]; } return buf; };