Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move Solidity and Cairo packages into subfolders #438

Merged
merged 6 commits into from
Feb 5, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ jobs:
strategy:
matrix:
package:
- core
- core-cairo
- solidity
- cairo

runs-on: ubuntu-latest
steps:
Expand All @@ -21,16 +21,16 @@ jobs:
node-version: 18.x
cache: 'yarn'
- name: Install Foundry
if: matrix.package == 'core'
if: matrix.package == 'solidity'
uses: foundry-rs/foundry-toolchain@v1
- name: Install dependencies
run: yarn install --network-concurrency 1
- name: Compile TypeScript
run: yarn tsc
working-directory: packages/${{matrix.package}}
working-directory: packages/core/${{matrix.package}}
- name: Check Svelte
run: yarn svelte-check
working-directory: packages/ui
- name: Run tests
run: yarn test
working-directory: packages/${{matrix.package}}
working-directory: packages/core/${{matrix.package}}
8 changes: 3 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,7 @@ Contracts Wizard is a web application to interactively build a contract out of c

Install dependencies with `yarn install`.

`packages/core` contains the code generation logic for Solidity.

`packages/core-cairo` contains the code generation logic for Cairo.
`packages/core` contains the code generation logic for Solidity and Cairo under separately named subfolders.

`packages/ui` is the interface built in Svelte. `yarn dev` spins up a local server to develop the UI.

Expand All @@ -38,5 +36,5 @@ For Cairo, use the `data-lang` attribute: `<oz-wizard data-lang="cairo"></oz-wiz

The following describes how to use the Contracts Wizard programmatic API in your own applications.

- [Contracts Wizard API for Solidity](packages/core/README.md)
- [Contracts Wizard API for Cairo](packages/core-cairo/README.md)
- [Contracts Wizard API for Solidity](packages/core/solidity/README.md)
- [Contracts Wizard API for Cairo](packages/core/cairo/README.md)
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@
},
"workspaces": {
"packages": [
"packages/*"
"packages/core/*",
"packages/ui"
],
"nohoist": [
"**/@types/*",
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
"prepublish": "rimraf dist *.tsbuildinfo",
"test": "ava",
"test:watch": "ava --watch",
"version": "node ../../scripts/bump-changelog.js"
"version": "node ../../../scripts/bump-changelog.js"
},
"devDependencies": {
"@types/node": "^18.0.0",
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"extends": "../../tsconfig.base.json",
"extends": "../../../tsconfig.base.json",
"compilerOptions": {
"incremental": true,
"module": "commonjs",
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
"prepublish": "rimraf dist *.tsbuildinfo && hardhat clean",
"test": "ava",
"test:watch": "ava --watch",
"version": "node ../../scripts/bump-changelog.js",
"version": "node ../../../scripts/bump-changelog.js",
"update-env": "rm ./src/environments/hardhat/package-lock.json && npm install --package-lock-only --prefix ./src/environments/hardhat && rm ./src/environments/hardhat/upgradeable/package-lock.json && npm install --package-lock-only --prefix ./src/environments/hardhat/upgradeable"
},
"devDependencies": {
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"extends": "../../tsconfig.base.json",
"extends": "../../../tsconfig.base.json",
"compilerOptions": {
"incremental": true,
"module": "commonjs",
Expand Down
2 changes: 1 addition & 1 deletion packages/ui/api/ai.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import OpenAI from 'https://esm.sh/[email protected]'
import { OpenAIStream, StreamingTextResponse } from 'https://esm.sh/[email protected]'
import { erc20Function, erc721Function, erc1155Function, stablecoinFunction, realWorldAssetFunction, governorFunction, customFunction } from '../src/wiz-functions.ts'
import { erc20Function, erc721Function, erc1155Function, stablecoinFunction, realWorldAssetFunction, governorFunction, customFunction } from '../src/solidity/wiz-functions.ts'
import { Redis } from 'https://esm.sh/@upstash/[email protected]'

export default async (req: Request) => {
Expand Down
4 changes: 2 additions & 2 deletions packages/ui/rollup.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ export default [
},
plugins: [
// Generate openzeppelin-contracts.js data file
onStartRun(...'yarn --cwd ../core prepare'.split(' ')),
onStartRun(...'yarn --cwd ../core/solidity prepare'.split(' ')),

svelte(await import('./svelte.config.js')),

Expand Down Expand Up @@ -132,7 +132,7 @@ export default [
commonjs(),

typescript({
include: ['src/**/*.ts', '../core/src/**/*.ts', '../core-cairo/src/**/*.ts'],
include: ['src/**/*.ts', '../core/solidity/src/**/*.ts', '../core/cairo/src/**/*.ts'],
sourceMap: true,
inlineSources: true,
}),
Expand Down
4 changes: 2 additions & 2 deletions packages/ui/src/cairo/AccessControlSection.svelte
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
<script lang="ts">
import type { Access } from '@openzeppelin/wizard-cairo';

import ToggleRadio from '../inputs/ToggleRadio.svelte';
import HelpTooltip from '../HelpTooltip.svelte';
import ToggleRadio from '../common/inputs/ToggleRadio.svelte';
import HelpTooltip from '../common/HelpTooltip.svelte';

export let access: Access;
export let required: boolean;
Expand Down
4 changes: 2 additions & 2 deletions packages/ui/src/cairo/AccountControls.svelte
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
<script lang="ts">
import HelpTooltip from '../HelpTooltip.svelte';
import HelpTooltip from '../common/HelpTooltip.svelte';
import type { KindedOptions, OptionsErrorMessages } from '@openzeppelin/wizard-cairo';
import { account, Account, infoDefaults } from '@openzeppelin/wizard-cairo';
import UpgradeabilityField from './UpgradeabilityField.svelte';
import InfoSection from './InfoSection.svelte';
import { error } from '../error-tooltip';
import { error } from '../common/error-tooltip';

export const opts: Required<KindedOptions['Account']> = {
kind: 'Account',
Expand Down
16 changes: 8 additions & 8 deletions packages/ui/src/cairo/App.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -9,20 +9,20 @@
import CustomControls from './CustomControls.svelte';
import AccountControls from './AccountControls.svelte';
import GovernorControls from './GovernorControls.svelte';
import CopyIcon from '../icons/CopyIcon.svelte';
import CheckIcon from '../icons/CheckIcon.svelte';
import DownloadIcon from '../icons/DownloadIcon.svelte';
import Dropdown from '../Dropdown.svelte';
import OverflowMenu from '../OverflowMenu.svelte';
import FileIcon from '../icons/FileIcon.svelte';
import CopyIcon from '../common/icons/CopyIcon.svelte';
import CheckIcon from '../common/icons/CheckIcon.svelte';
import DownloadIcon from '../common/icons/DownloadIcon.svelte';
import Dropdown from '../common/Dropdown.svelte';
import OverflowMenu from '../common/OverflowMenu.svelte';
import FileIcon from '../common/icons/FileIcon.svelte';

import type { KindedOptions, Kind, Contract, OptionsErrorMessages } from '@openzeppelin/wizard-cairo';
import { ContractBuilder, buildGeneric, printContract, sanitizeKind, OptionsError } from '@openzeppelin/wizard-cairo';
import { postConfig } from '../post-config';
import { postConfig } from '../common/post-config';

import { saveAs } from 'file-saver';
import { injectHyperlinks } from './inject-hyperlinks';
import { InitialOptions } from '../initial-options';
import { InitialOptions } from '../common/initial-options';
import VestingControls from './VestingControls.svelte';

const dispatch = createEventDispatcher();
Expand Down
4 changes: 2 additions & 2 deletions packages/ui/src/cairo/CustomControls.svelte
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
<script lang="ts">
import HelpTooltip from '../HelpTooltip.svelte';
import HelpTooltip from '../common/HelpTooltip.svelte';

import type { KindedOptions, OptionsErrorMessages } from '@openzeppelin/wizard-cairo';
import { custom, infoDefaults } from '@openzeppelin/wizard-cairo';

import AccessControlSection from './AccessControlSection.svelte';
import UpgradeabilityField from './UpgradeabilityField.svelte';
import InfoSection from './InfoSection.svelte';
import { error } from '../error-tooltip';
import { error } from '../common/error-tooltip';

export const opts: Required<KindedOptions['Custom']> = {
kind: 'Custom',
Expand Down
2 changes: 1 addition & 1 deletion packages/ui/src/cairo/ERC1155Controls.svelte
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<script lang="ts">
import HelpTooltip from '../HelpTooltip.svelte';
import HelpTooltip from '../common/HelpTooltip.svelte';

import type { KindedOptions, OptionsErrorMessages } from '@openzeppelin/wizard-cairo';
import { erc1155, infoDefaults } from '@openzeppelin/wizard-cairo';
Expand Down
4 changes: 2 additions & 2 deletions packages/ui/src/cairo/ERC20Controls.svelte
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
<script lang="ts">
import HelpTooltip from '../HelpTooltip.svelte';
import HelpTooltip from '../common/HelpTooltip.svelte';

import type { KindedOptions, OptionsErrorMessages } from '@openzeppelin/wizard-cairo';
import { premintPattern, erc20, infoDefaults } from '@openzeppelin/wizard-cairo';

import AccessControlSection from './AccessControlSection.svelte';
import UpgradeabilityField from './UpgradeabilityField.svelte';
import InfoSection from './InfoSection.svelte';
import { error } from '../error-tooltip';
import { error } from '../common/error-tooltip';

export const opts: Required<KindedOptions['ERC20']> = {
kind: 'ERC20',
Expand Down
4 changes: 2 additions & 2 deletions packages/ui/src/cairo/ERC721Controls.svelte
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<script lang="ts">
import HelpTooltip from '../HelpTooltip.svelte';
import HelpTooltip from '../common/HelpTooltip.svelte';

import type { KindedOptions, OptionsErrorMessages } from '@openzeppelin/wizard-cairo';
import { erc721, infoDefaults } from '@openzeppelin/wizard-cairo';
Expand All @@ -8,7 +8,7 @@
import UpgradeabilityField from './UpgradeabilityField.svelte';
import RoyaltyInfoSection from './RoyaltyInfoSection.svelte';
import InfoSection from './InfoSection.svelte';
import { error } from '../error-tooltip';
import { error } from '../common/error-tooltip';

export const opts: Required<KindedOptions['ERC721']> = {
kind: 'ERC721',
Expand Down
8 changes: 4 additions & 4 deletions packages/ui/src/cairo/GovernorControls.svelte
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
<script lang="ts">
import HelpTooltip from '../HelpTooltip.svelte';
import HelpTooltip from '../common/HelpTooltip.svelte';

import type { KindedOptions, OptionsErrorMessages } from '@openzeppelin/wizard-cairo';
import { governor, infoDefaults } from '@openzeppelin/wizard-cairo';

import ToggleRadio from '../inputs/ToggleRadio.svelte';
import ToggleRadio from '../common/inputs/ToggleRadio.svelte';
import UpgradeabilityField from './UpgradeabilityField.svelte';
import InfoSection from './InfoSection.svelte';

import { error } from '../error-tooltip';
import { resizeToFit } from '../resize-to-fit';
import { error } from '../common/error-tooltip';
import { resizeToFit } from '../common/resize-to-fit';

const defaults = governor.defaults;

Expand Down
4 changes: 2 additions & 2 deletions packages/ui/src/cairo/RoyaltyInfoSection.svelte
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
<script lang="ts">
import type { OptionsErrorMessages } from '@openzeppelin/wizard-cairo';
import type { RoyaltyInfoOptions } from '@openzeppelin/wizard-cairo/src';
import HelpTooltip from '../HelpTooltip.svelte';
import HelpTooltip from '../common/HelpTooltip.svelte';
import { royaltyInfoDefaults } from '@openzeppelin/wizard-cairo';
import { error } from '../error-tooltip';
import { error } from '../common/error-tooltip';

export let opts: RoyaltyInfoOptions = royaltyInfoDefaults;
export let errors: undefined | OptionsErrorMessages;
Expand Down
2 changes: 1 addition & 1 deletion packages/ui/src/cairo/UpgradeabilityField.svelte
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<script lang="ts">
import type { Upgradeable } from '@openzeppelin/wizard-cairo';

import HelpTooltip from '../HelpTooltip.svelte';
import HelpTooltip from '../common/HelpTooltip.svelte';

export let upgradeable: Upgradeable;
</script>
Expand Down
4 changes: 2 additions & 2 deletions packages/ui/src/cairo/VestingControls.svelte
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
<script lang="ts">
import HelpTooltip from '../HelpTooltip.svelte';
import HelpTooltip from '../common/HelpTooltip.svelte';

import type { KindedOptions, OptionsErrorMessages } from '@openzeppelin/wizard-cairo';
import { vesting, infoDefaults } from '@openzeppelin/wizard-cairo';

import InfoSection from './InfoSection.svelte';
import { error } from '../error-tooltip';
import { error } from '../common/error-tooltip';

export const opts: Required<KindedOptions['Vesting']> = {
kind: 'Vesting',
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
2 changes: 1 addition & 1 deletion packages/ui/src/embed.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { Message } from './post-message';
import type { Message } from './common/post-message';

if (!document.currentScript || !('src' in document.currentScript)) {
throw new Error('Unknown script URL');
Expand Down
10 changes: 5 additions & 5 deletions packages/ui/src/main.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
import './styles/global.css';
import './common/styles/global.css';

import type {} from 'svelte';
import App from './App.svelte';
import App from './solidity/App.svelte';
import CairoApp from './cairo/App.svelte';
import { postMessage } from './post-message';
import UnsupportedVersion from './UnsupportedVersion.svelte';
import { postMessage } from './common/post-message';
import UnsupportedVersion from './common/UnsupportedVersion.svelte';
import semver from 'semver';
import { compatibleContractsSemver as compatibleSolidityContractsSemver } from '@openzeppelin/wizard';
import { compatibleContractsSemver as compatibleCairoContractsSemver } from '@openzeppelin/wizard-cairo';
import type { InitialOptions } from './initial-options';
import type { InitialOptions } from './common/initial-options.ts';

function postResize() {
const { height } = document.documentElement.getBoundingClientRect();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
<script lang="ts">
import type { Access } from '@openzeppelin/wizard';

import ToggleRadio from './inputs/ToggleRadio.svelte';
import HelpTooltip from './HelpTooltip.svelte';
import ToggleRadio from '../common/inputs/ToggleRadio.svelte';
import HelpTooltip from '../common/HelpTooltip.svelte';

export let access: Access;
export let required: boolean;
Expand Down
30 changes: 15 additions & 15 deletions packages/ui/src/App.svelte → packages/ui/src/solidity/App.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -10,30 +10,30 @@
import RealWorldAssetControls from './RealWorldAssetControls.svelte';
import GovernorControls from './GovernorControls.svelte';
import CustomControls from './CustomControls.svelte';
import CopyIcon from './icons/CopyIcon.svelte';
import CheckIcon from './icons/CheckIcon.svelte';
import RemixIcon from './icons/RemixIcon.svelte';
import DownloadIcon from './icons/DownloadIcon.svelte';
import ZipIcon from './icons/ZipIcon.svelte';
import FileIcon from './icons/FileIcon.svelte';
import ArrowsLeft from './icons/ArrowsLeft.svelte';
import ArrowsRight from './icons/ArrowsRight.svelte';
import Dropdown from './Dropdown.svelte';
import OverflowMenu from './OverflowMenu.svelte';
import Tooltip from './Tooltip.svelte';
import CopyIcon from '../common/icons/CopyIcon.svelte';
import CheckIcon from '../common/icons/CheckIcon.svelte';
import RemixIcon from '../common/icons/RemixIcon.svelte';
import DownloadIcon from '../common/icons/DownloadIcon.svelte';
import ZipIcon from '../common/icons/ZipIcon.svelte';
import FileIcon from '../common/icons/FileIcon.svelte';
import ArrowsLeft from '../common/icons/ArrowsLeft.svelte';
import ArrowsRight from '../common/icons/ArrowsRight.svelte';
import Dropdown from '../common/Dropdown.svelte';
import OverflowMenu from '../common/OverflowMenu.svelte';
import Tooltip from '../common/Tooltip.svelte';
import Wiz from './Wiz.svelte';
import DefenderDeployModal from './DefenderDeployModal.svelte';

import type { KindedOptions, Kind, Contract, OptionsErrorMessages } from '@openzeppelin/wizard';
import { ContractBuilder, buildGeneric, printContract, sanitizeKind, OptionsError } from '@openzeppelin/wizard';
import { getImports } from '@openzeppelin/wizard/get-imports';
import { postConfig } from './post-config';
import { postConfig } from '../common/post-config';
import { remixURL } from './remix';

import { saveAs } from 'file-saver';
import { injectHyperlinks } from './utils/inject-hyperlinks';
import { InitialOptions } from './initial-options';
import { postMessageToIframe } from './post-message';
import { injectHyperlinks } from './inject-hyperlinks';
import { InitialOptions } from '../common/initial-options';
import { postMessageToIframe } from '../common/post-message';

const dispatch = createEventDispatcher();

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<script lang="ts">
import HelpTooltip from './HelpTooltip.svelte';
import HelpTooltip from '../common/HelpTooltip.svelte';

import type { KindedOptions } from '@openzeppelin/wizard';
import { custom, infoDefaults } from '@openzeppelin/wizard';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<script lang="ts">
import HelpTooltip from './HelpTooltip.svelte';
import HelpTooltip from '../common/HelpTooltip.svelte';

import type { KindedOptions } from '@openzeppelin/wizard';
import { erc1155, infoDefaults } from '@openzeppelin/wizard';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
<script lang="ts">
import HelpTooltip from './HelpTooltip.svelte';
import HelpTooltip from '../common/HelpTooltip.svelte';

import type { KindedOptions } from '@openzeppelin/wizard';
import { erc20, premintPattern, infoDefaults } from '@openzeppelin/wizard';

import AccessControlSection from './AccessControlSection.svelte';
import UpgradeabilitySection from './UpgradeabilitySection.svelte';
import InfoSection from './InfoSection.svelte';
import ToggleRadio from './inputs/ToggleRadio.svelte';
import ToggleRadio from '../common/inputs/ToggleRadio.svelte';

export let opts: Required<KindedOptions['ERC20']> = {
kind: 'ERC20',
Expand Down
Loading