/* Autogenerated file, do not edit! */ /* eslint-disable */ import { loadContractArtifact, loadContractArtifactForPublic } from '@aztec/aztec.js/abi';
import { Contract, ContractBase, DeployMethod } from '@aztec/aztec.js/contracts';
import { Fr } from '@aztec/aztec.js/fields';
import PrivateInitTestContractArtifactJson from '../artifacts/private_init_test_contract-PrivateInitTest.json' with {
    type: 'json'
};
export const PrivateInitTestContractArtifact = loadContractArtifact(PrivateInitTestContractArtifactJson);
/**
 * Type-safe interface for contract PrivateInitTest;
 */ export class PrivateInitTestContract extends ContractBase {
    constructor(address, wallet){
        super(address, PrivateInitTestContractArtifact, wallet);
    }
    /**
   * Creates a contract instance.
   * @param address - The deployed contract's address.
   * @param wallet - The wallet to use when interacting with the contract.
   * @returns A new Contract instance.
   */ static at(address, wallet) {
        return Contract.at(address, PrivateInitTestContract.artifact, wallet);
    }
    /**
   * Creates a tx to deploy a new instance of this contract.
   * @param instantiation - Optional address-affecting parameters (salt, deployer / universalDeploy, publicKeys).
   *                       Salt defaults to a random value; the deployer is locked lazily from the first send-time `from`.
   */ static deploy(wallet, initial_value, instantiation) {
        return DeployMethod.create(wallet, {
            artifact: PrivateInitTestContractArtifact,
            postDeployCtor: (instance, wallet)=>PrivateInitTestContract.at(instance.address, wallet),
            args: [
                initial_value
            ]
        }, instantiation);
    }
    /**
   * Creates a tx to deploy a new instance of this contract using the specified constructor method.
   */ static deployWithOpts(opts, ...args) {
        return DeployMethod.create(opts.wallet, {
            artifact: PrivateInitTestContractArtifact,
            postDeployCtor: (instance, wallet)=>PrivateInitTestContract.at(instance.address, wallet),
            args,
            constructorNameOrArtifact: opts.method ?? 'constructor'
        }, opts.instantiation);
    }
    /**
   * Returns this contract's artifact.
   */ static get artifact() {
        return PrivateInitTestContractArtifact;
    }
    /**
   * Returns this contract's artifact with public bytecode.
   */ static get artifactForPublic() {
        return loadContractArtifactForPublic(PrivateInitTestContractArtifactJson);
    }
    static get storage() {
        return {
            value: {
                slot: new Fr(1n)
            }
        };
    }
}
