eslint-plugin-o1js
Version:
o1js rules for ESLint
234 lines • 6.37 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const rule_tester_1 = require("../rule-tester");
const no_greater_storage_limit_in_circuit_1 = __importDefault(require("../../src/rules/no-greater-storage-limit-in-circuit"));
const messageId = 'noGreaterStorageLimitInCircuit';
rule_tester_1.ruleTester.run('no-greater-storage-limit-in-circuit', no_greater_storage_limit_in_circuit_1.default, {
valid: [
{
code: `
class A extends SmartContract {
state1 = State<Field>();
}`,
},
{
code: `
class A extends SmartContract {
state1 = State<Field>();
state2 = State<Field>();
state3 = State<Field>();
state4 = State<Field>();
state5 = State<Field>();
state6 = State<Field>();
state7 = State<Field>();
state8 = State<Field>();
}`,
},
{
code: `
class A extends CircuitValue {
prop1: Field;
}
class B extends SmartContract {
state1 = State<A>();
}`,
},
{
code: `
class A extends CircuitValue {
prop1: Field;
prop2: Field;
prop3: Field;
prop4: Field;
prop5: Field;
prop7: Field;
prop7: Field;
prop8: Field;
}
class B extends SmartContract {
state1 = State<A>();
}`,
},
{
code: `
class A extends CircuitValue {
a: Field;
a: Field[];
}
class B extends SmartContract {
state1 = State<A>();
value1 = State<Field>();
}`,
},
{
code: `
class A extends CircuitValue {
prop1: Field;
prop2: Field[];
}
class B extends CircuitValue {
a: A;
}`,
},
{
code: `
class A extends CircuitValue {
arrayProp1 = State<PublicKey[]>();
}
class B extends SmartContract {
state1 = State<A>();
}`,
},
{
code: `
class A extends CircuitValue {
arrayProp1: PublicKey[];
}
class B extends SmartContract {
state1 = State<A>();
state1 = Field();
}`,
},
{
code: `
class C extends CircuitValue {
prop1: Field;
}
class B extends CircuitValue {
prop1: C[];
}
class A extends SmartContract {
state1 = State<B>();
}`,
},
],
invalid: [
{
code: `
class C extends CircuitValue {
prop1: Field;
prop2: Field;
}
class B extends CircuitValue {
values: C[];
}
class A extends SmartContract {
state = State<B>();
}`,
errors: [{ messageId }],
},
{
code: `
class C extends CircuitValue {
prop1: Field;
prop2: Field;
}
class B extends CircuitValue {
values: C[];
prop2: Field;
}
class A extends SmartContract{
state = State<B>();
}`,
errors: [{ messageId }],
},
{
code: `
class E extends CircuitValue {
prop1: Field;
}
class D extends CircuitValue {
values: D[];
prop2: Field;
}
class C extends CircuitValue {
values: C[];
prop2: Field;
}
class B extends CircuitValue {
values: B[];
prop2: Field;
}
class A extends SmartContract{
state = State<B>();
}`,
errors: [{ messageId }],
},
{
code: `
class A extends SmartContract{
state = State<B>();
}
class B extends CircuitValue {
values: B[];
prop2: Field;
}
class C extends CircuitValue {
values: C[];
prop2: Field;
}
class E extends CircuitValue {
prop1: Field;
}
class D extends CircuitValue {
values: D[];
prop2: Field;
}`,
errors: [{ messageId }],
},
{
code: `
class A extends CircuitValue {
prop1: Field;
prop2: Field;
prop3: Field;
prop4: Field;
prop5: Field;
prop6: Field;
prop7: Field;
prop8: Field;
prop9: Field;
}
class B extends SmartContract {
state1 = State<A>();
}`,
errors: [{ messageId }],
},
{
code: `
class A extends CircuitValue {
prop1: Field;
arrayProp1: Field[];
}
class B extends SmartContract {
state1 = State<A>();
}`,
errors: [{ messageId }],
},
{
code: `
class B extends CircuitValue {
arrayProp1: Field[];
}
class A extends SmartContract {
state1 = State<B>();
value1 = State<Field>();
}`,
errors: [{ messageId }],
},
{
code: `
class A extends CircuitValue {
arrayProp1: PublicKey[];
}
class B extends SmartContract {
state1 = State<A>();
}`,
errors: [{ messageId }],
},
],
});
//# sourceMappingURL=no-greater-storage-limit-in-circuit.test.js.map