@aeternity/aepp-sdk
Version:
SDK for the æternity blockchain
513 lines (499 loc) • 12.1 kB
JavaScript
import * as coreClient from "@azure/core-client";
import * as Parameters from "./models/parameters.js";
import * as Mappers from "./models/mappers.js";
export class Compiler extends coreClient.ServiceClient {
/**
* Initializes a new instance of the Compiler class.
* @param $host server parameter
* @param options The parameter options
*/
constructor($host, options) {
var _ref, _options$endpoint;
if ($host === undefined) {
throw new Error("'$host' cannot be null");
}
// Initializing default values for options
if (!options) {
options = {};
}
const defaults = {
requestContentType: "application/json; charset=utf-8"
};
const packageDetails = `azsdk-js-compiler/1.0.0-beta.1`;
const userAgentPrefix = options.userAgentOptions && options.userAgentOptions.userAgentPrefix ? `${options.userAgentOptions.userAgentPrefix} ${packageDetails}` : `${packageDetails}`;
const optionsWithDefaults = {
...defaults,
...options,
userAgentOptions: {
userAgentPrefix
},
endpoint: (_ref = (_options$endpoint = options.endpoint) !== null && _options$endpoint !== void 0 ? _options$endpoint : options.baseUri) !== null && _ref !== void 0 ? _ref : "{$host}"
};
super(optionsWithDefaults);
// Parameter assignments
this.$host = $host;
}
/**
* Generate an Aeternity Contract Interface (ACI) for contract
* @param body contract code
* @param options The options parameters.
*/
generateACI(body, options) {
return this.sendOperationRequest({
body,
options
}, generateACIOperationSpec);
}
/**
* Compile a sophia contract from source and return byte code and ACI
* @param body contract code
* @param options The options parameters.
*/
compileContract(body, options) {
return this.sendOperationRequest({
body,
options
}, compileContractOperationSpec);
}
/**
* Decode the result of contract call
* @param body Binary data in Sophia ABI format
* @param options The options parameters.
*/
decodeCallResult(body, options) {
return this.sendOperationRequest({
body,
options
}, decodeCallResultOperationSpec);
}
/**
* Decode the result of contract call from Bytecode
* @param body Call result + compiled contract
* @param options The options parameters.
*/
decodeCallResultBytecode(body, options) {
return this.sendOperationRequest({
body,
options
}, decodeCallResultBytecodeOperationSpec);
}
/**
* Encode Sophia function call according to sophia ABI.
* @param body Sophia function call - contract code + function name + arguments
* @param options The options parameters.
*/
encodeCalldata(body, options) {
return this.sendOperationRequest({
body,
options
}, encodeCalldataOperationSpec);
}
/**
* Identify function name and arguments in Calldata for a compiled contract
* @param body Calldata + compiled contract
* @param options The options parameters.
*/
decodeCalldataBytecode(body, options) {
return this.sendOperationRequest({
body,
options
}, decodeCalldataBytecodeOperationSpec);
}
/**
* Identify function name and arguments in Calldata for a (partial) contract
* @param body Calldata + contract (stub) code
* @param options The options parameters.
*/
decodeCalldataSource(body, options) {
return this.sendOperationRequest({
body,
options
}, decodeCalldataSourceOperationSpec);
}
/**
* Get FATE assembler code from bytecode
* @param body contract byte array
* @param options The options parameters.
*/
getFateAssemblerCode(body, options) {
return this.sendOperationRequest({
body,
options
}, getFateAssemblerCodeOperationSpec);
}
/**
* Verify that an encoded byte array is the result of compiling a given contract
* @param body contract byte array and source code
* @param options The options parameters.
*/
validateByteCode(body, options) {
return this.sendOperationRequest({
body,
options
}, validateByteCodeOperationSpec);
}
/**
* Extract compiler version from bytecode
* @param body contract byte array
* @param options The options parameters.
*/
getCompilerVersion(body, options) {
return this.sendOperationRequest({
body,
options
}, getCompilerVersionOperationSpec);
}
/**
* Get the version of the underlying Sophia compiler version
* @param options The options parameters.
*/
version(options) {
return this.sendOperationRequest({
options
}, versionOperationSpec);
}
/**
* Get the version of the API
* @param options The options parameters.
*/
apiVersion(options) {
return this.sendOperationRequest({
options
}, apiVersionOperationSpec);
}
/**
* Get the Api description
* @param options The options parameters.
*/
api(options) {
return this.sendOperationRequest({
options
}, apiOperationSpec);
}
}
// Operation Specifications
const serializer = coreClient.createSerializer(Mappers, /* isXml */false);
const generateACIOperationSpec = {
path: "/aci",
httpMethod: "POST",
responses: {
200: {
bodyMapper: {
type: {
name: "Sequence",
element: {
type: {
name: "Dictionary",
value: {
type: {
name: "any"
}
}
}
}
}
}
},
400: {
bodyMapper: {
type: {
name: "Sequence",
element: {
type: {
name: "Composite",
className: "CompilerError"
}
}
}
},
isError: true
}
},
requestBody: Parameters.body,
urlParameters: [Parameters.$host],
headerParameters: [Parameters.contentType, Parameters.accept],
mediaType: "json",
serializer
};
const compileContractOperationSpec = {
path: "/compile",
httpMethod: "POST",
responses: {
200: {
bodyMapper: Mappers.CompileResult
},
400: {
bodyMapper: {
type: {
name: "Sequence",
element: {
type: {
name: "Composite",
className: "CompilerError"
}
}
}
},
isError: true
}
},
requestBody: Parameters.body,
urlParameters: [Parameters.$host],
headerParameters: [Parameters.contentType, Parameters.accept],
mediaType: "json",
serializer
};
const decodeCallResultOperationSpec = {
path: "/decode-call-result",
httpMethod: "POST",
responses: {
200: {
bodyMapper: {
type: {
name: "any"
}
}
},
400: {
bodyMapper: {
type: {
name: "Sequence",
element: {
type: {
name: "Composite",
className: "CompilerError"
}
}
}
},
isError: true
}
},
requestBody: Parameters.body1,
urlParameters: [Parameters.$host],
headerParameters: [Parameters.contentType, Parameters.accept],
mediaType: "json",
serializer
};
const decodeCallResultBytecodeOperationSpec = {
path: "/decode-call-result/bytecode",
httpMethod: "POST",
responses: {
200: {
bodyMapper: Mappers.DecodedCallresult
},
400: {
bodyMapper: {
type: {
name: "Sequence",
element: {
type: {
name: "Composite",
className: "CompilerError"
}
}
}
},
isError: true
}
},
requestBody: Parameters.body2,
urlParameters: [Parameters.$host],
headerParameters: [Parameters.contentType, Parameters.accept],
mediaType: "json",
serializer
};
const encodeCalldataOperationSpec = {
path: "/encode-calldata",
httpMethod: "POST",
responses: {
200: {
bodyMapper: Mappers.Calldata
},
400: {
bodyMapper: {
type: {
name: "Sequence",
element: {
type: {
name: "Composite",
className: "CompilerError"
}
}
}
},
isError: true
}
},
requestBody: Parameters.body3,
urlParameters: [Parameters.$host],
headerParameters: [Parameters.contentType, Parameters.accept],
mediaType: "json",
serializer
};
const decodeCalldataBytecodeOperationSpec = {
path: "/decode-calldata/bytecode",
httpMethod: "POST",
responses: {
200: {
bodyMapper: Mappers.DecodedCalldata
},
400: {
bodyMapper: Mappers.ErrorModel,
isError: true
}
},
requestBody: Parameters.body4,
urlParameters: [Parameters.$host],
headerParameters: [Parameters.contentType, Parameters.accept],
mediaType: "json",
serializer
};
const decodeCalldataSourceOperationSpec = {
path: "/decode-calldata/source",
httpMethod: "POST",
responses: {
200: {
bodyMapper: Mappers.DecodedCalldata
},
400: {
bodyMapper: {
type: {
name: "Sequence",
element: {
type: {
name: "Composite",
className: "CompilerError"
}
}
}
},
isError: true
}
},
requestBody: Parameters.body5,
urlParameters: [Parameters.$host],
headerParameters: [Parameters.contentType, Parameters.accept],
mediaType: "json",
serializer
};
const getFateAssemblerCodeOperationSpec = {
path: "/fate-assembler",
httpMethod: "POST",
responses: {
200: {
bodyMapper: Mappers.FateAssembler
},
400: {
bodyMapper: Mappers.ErrorModel,
isError: true
}
},
requestBody: Parameters.body6,
urlParameters: [Parameters.$host],
headerParameters: [Parameters.contentType, Parameters.accept],
mediaType: "json",
serializer
};
const validateByteCodeOperationSpec = {
path: "/validate-byte-code",
httpMethod: "POST",
responses: {
200: {},
400: {
bodyMapper: {
type: {
name: "Sequence",
element: {
type: {
name: "Composite",
className: "CompilerError"
}
}
}
},
isError: true
}
},
requestBody: Parameters.body7,
urlParameters: [Parameters.$host],
headerParameters: [Parameters.contentType, Parameters.accept],
mediaType: "json",
serializer
};
const getCompilerVersionOperationSpec = {
path: "/compiler-version",
httpMethod: "POST",
responses: {
200: {
bodyMapper: Mappers.CompilerVersion
},
400: {
bodyMapper: Mappers.ErrorModel,
isError: true
}
},
requestBody: Parameters.body6,
urlParameters: [Parameters.$host],
headerParameters: [Parameters.contentType, Parameters.accept],
mediaType: "json",
serializer
};
const versionOperationSpec = {
path: "/version",
httpMethod: "GET",
responses: {
200: {
bodyMapper: Mappers.CompilerVersion
},
500: {
bodyMapper: Mappers.ErrorModel,
isError: true
}
},
urlParameters: [Parameters.$host],
headerParameters: [Parameters.accept],
serializer
};
const apiVersionOperationSpec = {
path: "/api-version",
httpMethod: "GET",
responses: {
200: {
bodyMapper: Mappers.ApiVersion
},
500: {
bodyMapper: Mappers.ErrorModel,
isError: true
}
},
urlParameters: [Parameters.$host],
headerParameters: [Parameters.accept],
serializer
};
const apiOperationSpec = {
path: "/api",
httpMethod: "GET",
responses: {
200: {
bodyMapper: {
type: {
name: "Dictionary",
value: {
type: {
name: "any"
}
}
}
}
},
400: {
bodyMapper: Mappers.ErrorModel,
isError: true
}
},
urlParameters: [Parameters.$host],
headerParameters: [Parameters.accept],
serializer
};
//# sourceMappingURL=compiler.js.map