diff --git a/src/smartcontracts/codeMetadata.spec.ts b/src/smartcontracts/codeMetadata.spec.ts index 17187a59..6bb0bdf3 100644 --- a/src/smartcontracts/codeMetadata.spec.ts +++ b/src/smartcontracts/codeMetadata.spec.ts @@ -1,5 +1,5 @@ import { assert } from "chai"; -import { CodeMetadata, ByteZero, ByteOne } from "./codeMetadata"; +import { CodeMetadata } from "./codeMetadata"; describe("CodeMetadata Class Tests", function() { it("should create a default CodeMetadata instance", function() { @@ -28,12 +28,15 @@ describe("CodeMetadata Class Tests", function() { const buffer = metadata.toBuffer(); assert.equal(buffer.length, 2); - assert.equal(buffer[0], ByteZero.Upgradeable | ByteZero.Readable); - assert.equal(buffer[1], ByteOne.Payable | ByteOne.PayableBySc); + assert.equal(buffer[0], CodeMetadata.ByteZero.Upgradeable | CodeMetadata.ByteZero.Readable); + assert.equal(buffer[1], CodeMetadata.ByteOne.Payable | CodeMetadata.ByteOne.PayableBySc); }); it("should create from buffer correctly when all flags are set", function() { - const buffer = Buffer.from([ByteZero.Upgradeable | ByteZero.Readable, ByteOne.Payable | ByteOne.PayableBySc]); + const buffer = Buffer.from([ + CodeMetadata.ByteZero.Upgradeable | CodeMetadata.ByteZero.Readable, + CodeMetadata.ByteOne.Payable | CodeMetadata.ByteOne.PayableBySc, + ]); const metadata = CodeMetadata.fromBuffer(buffer); assert.isTrue(metadata.upgradeable); @@ -43,7 +46,7 @@ describe("CodeMetadata Class Tests", function() { }); it.only("should create from buffer correctly when some flags are set", function() { - const buffer = Buffer.from([ByteZero.Upgradeable, ByteOne.PayableBySc]); + const buffer = Buffer.from([CodeMetadata.ByteZero.Upgradeable, CodeMetadata.ByteOne.PayableBySc]); const metadata = CodeMetadata.fromBuffer(buffer); assert.isTrue(metadata.upgradeable); @@ -53,7 +56,7 @@ describe("CodeMetadata Class Tests", function() { }); it("should handle buffer too short error", function() { - const buffer = Buffer.from([ByteZero.Upgradeable]); + const buffer = Buffer.from([CodeMetadata.ByteZero.Upgradeable]); assert.throws(() => { CodeMetadata.fromBuffer(buffer); diff --git a/src/smartcontracts/codeMetadata.ts b/src/smartcontracts/codeMetadata.ts index ecf4e135..03a54992 100644 --- a/src/smartcontracts/codeMetadata.ts +++ b/src/smartcontracts/codeMetadata.ts @@ -7,6 +7,18 @@ export class CodeMetadata { public payable: boolean; public payableBySc: boolean; + static ByteZero = { + Upgradeable: 1, + Reserved2: 2, + Readable: 4 + }; + + static ByteOne = { + Reserved1: 1, + Payable: 2, + PayableBySc: 4 + }; + /** * Creates a metadata object. By default, set the `upgradeable` attribute, and uset all others. * @@ -33,10 +45,10 @@ export class CodeMetadata { const byteZero = buffer[0]; const byteOne = buffer[1]; - const upgradeable = (byteZero & ByteZero.Upgradeable) !== 0; - const readable = (byteZero & ByteZero.Readable) !== 0; - const payable = (byteOne & ByteOne.Payable) !== 0; - const payableBySc = (byteOne & ByteOne.PayableBySc) !== 0; + const upgradeable = (byteZero & CodeMetadata.ByteZero.Upgradeable) !== 0; + const readable = (byteZero & CodeMetadata.ByteZero.Readable) !== 0; + const payable = (byteOne & CodeMetadata.ByteOne.Payable) !== 0; + const payableBySc = (byteOne & CodeMetadata.ByteOne.PayableBySc) !== 0; return new CodeMetadata(upgradeable, readable, payable, payableBySc); } @@ -77,16 +89,16 @@ export class CodeMetadata { let byteOne = 0; if (this.upgradeable) { - byteZero |= ByteZero.Upgradeable; + byteZero |= CodeMetadata.ByteZero.Upgradeable; } if (this.readable) { - byteZero |= ByteZero.Readable; + byteZero |= CodeMetadata.ByteZero.Readable; } if (this.payable) { - byteOne |= ByteOne.Payable; + byteOne |= CodeMetadata.ByteOne.Payable; } if (this.payableBySc) { - byteOne |= ByteOne.PayableBySc; + byteOne |= CodeMetadata.ByteOne.PayableBySc; } return Buffer.from([byteZero, byteOne]); @@ -118,15 +130,3 @@ export class CodeMetadata { this.payableBySc == other.payableBySc; } } - -export enum ByteZero { - Upgradeable = 1, - Reserved2 = 2, - Readable = 4 -} - -export enum ByteOne { - Reserved1 = 1, - Payable = 2, - PayableBySc = 4 -}