thirdweb 5.93.6 → 5.93.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/cli/bin.js +20 -0
- package/dist/cjs/cli/bin.js.map +1 -1
- package/dist/cjs/cli/commands/stylus/builder.js +179 -0
- package/dist/cjs/cli/commands/stylus/builder.js.map +1 -0
- package/dist/cjs/cli/commands/stylus/create.js +49 -0
- package/dist/cjs/cli/commands/stylus/create.js.map +1 -0
- package/dist/cjs/contract/deployment/deploy-deterministic.js +1 -1
- package/dist/cjs/contract/deployment/deploy-deterministic.js.map +1 -1
- package/dist/cjs/contract/deployment/deploy-with-abi.js +34 -11
- package/dist/cjs/contract/deployment/deploy-with-abi.js.map +1 -1
- package/dist/cjs/contract/deployment/utils/bootstrap.js +19 -0
- package/dist/cjs/contract/deployment/utils/bootstrap.js.map +1 -1
- package/dist/cjs/contract/deployment/utils/infra.js +1 -1
- package/dist/cjs/contract/deployment/utils/infra.js.map +1 -1
- package/dist/cjs/exports/extensions/stylus.js +9 -0
- package/dist/cjs/exports/extensions/stylus.js.map +1 -0
- package/dist/cjs/extensions/prebuilts/deploy-published.js +10 -0
- package/dist/cjs/extensions/prebuilts/deploy-published.js.map +1 -1
- package/dist/cjs/extensions/stylus/__generated__/IArbWasm/write/activateProgram.js +124 -0
- package/dist/cjs/extensions/stylus/__generated__/IArbWasm/write/activateProgram.js.map +1 -0
- package/dist/cjs/extensions/stylus/write/activateStylusContract.js +71 -0
- package/dist/cjs/extensions/stylus/write/activateStylusContract.js.map +1 -0
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js +12 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/OnRampScreen.js +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/OnRampScreen.js.map +1 -1
- package/dist/cjs/utils/any-evm/compute-deployment-address.js +3 -1
- package/dist/cjs/utils/any-evm/compute-deployment-address.js.map +1 -1
- package/dist/cjs/utils/any-evm/compute-published-contract-deploy-info.js +14 -2
- package/dist/cjs/utils/any-evm/compute-published-contract-deploy-info.js.map +1 -1
- package/dist/cjs/utils/any-evm/encode-extra-data-with-uri.js +13 -0
- package/dist/cjs/utils/any-evm/encode-extra-data-with-uri.js.map +1 -0
- package/dist/cjs/version.js +1 -1
- package/dist/esm/cli/bin.js +20 -0
- package/dist/esm/cli/bin.js.map +1 -1
- package/dist/esm/cli/commands/stylus/builder.js +175 -0
- package/dist/esm/cli/commands/stylus/builder.js.map +1 -0
- package/dist/esm/cli/commands/stylus/create.js +46 -0
- package/dist/esm/cli/commands/stylus/create.js.map +1 -0
- package/dist/esm/contract/deployment/deploy-deterministic.js +1 -1
- package/dist/esm/contract/deployment/deploy-deterministic.js.map +1 -1
- package/dist/esm/contract/deployment/deploy-with-abi.js +34 -11
- package/dist/esm/contract/deployment/deploy-with-abi.js.map +1 -1
- package/dist/esm/contract/deployment/utils/bootstrap.js +19 -0
- package/dist/esm/contract/deployment/utils/bootstrap.js.map +1 -1
- package/dist/esm/contract/deployment/utils/infra.js +1 -1
- package/dist/esm/contract/deployment/utils/infra.js.map +1 -1
- package/dist/esm/exports/extensions/stylus.js +5 -0
- package/dist/esm/exports/extensions/stylus.js.map +1 -0
- package/dist/esm/extensions/prebuilts/deploy-published.js +10 -0
- package/dist/esm/extensions/prebuilts/deploy-published.js.map +1 -1
- package/dist/esm/extensions/stylus/__generated__/IArbWasm/write/activateProgram.js +117 -0
- package/dist/esm/extensions/stylus/__generated__/IArbWasm/write/activateProgram.js.map +1 -0
- package/dist/esm/extensions/stylus/write/activateStylusContract.js +68 -0
- package/dist/esm/extensions/stylus/write/activateStylusContract.js.map +1 -0
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js +12 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/OnRampScreen.js +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/OnRampScreen.js.map +1 -1
- package/dist/esm/utils/any-evm/compute-deployment-address.js +3 -1
- package/dist/esm/utils/any-evm/compute-deployment-address.js.map +1 -1
- package/dist/esm/utils/any-evm/compute-published-contract-deploy-info.js +14 -2
- package/dist/esm/utils/any-evm/compute-published-contract-deploy-info.js.map +1 -1
- package/dist/esm/utils/any-evm/encode-extra-data-with-uri.js +10 -0
- package/dist/esm/utils/any-evm/encode-extra-data-with-uri.js.map +1 -0
- package/dist/esm/version.js +1 -1
- package/dist/types/cli/commands/stylus/builder.d.ts +3 -0
- package/dist/types/cli/commands/stylus/builder.d.ts.map +1 -0
- package/dist/types/cli/commands/stylus/create.d.ts +2 -0
- package/dist/types/cli/commands/stylus/create.d.ts.map +1 -0
- package/dist/types/contract/deployment/deploy-with-abi.d.ts +3 -0
- package/dist/types/contract/deployment/deploy-with-abi.d.ts.map +1 -1
- package/dist/types/contract/deployment/utils/bootstrap.d.ts.map +1 -1
- package/dist/types/exports/extensions/stylus.d.ts +5 -0
- package/dist/types/exports/extensions/stylus.d.ts.map +1 -0
- package/dist/types/extensions/prebuilts/deploy-published.d.ts.map +1 -1
- package/dist/types/extensions/stylus/__generated__/IArbWasm/write/activateProgram.d.ts +79 -0
- package/dist/types/extensions/stylus/__generated__/IArbWasm/write/activateProgram.d.ts.map +1 -0
- package/dist/types/extensions/stylus/write/activateStylusContract.d.ts +25 -0
- package/dist/types/extensions/stylus/write/activateStylusContract.d.ts.map +1 -0
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.d.ts.map +1 -1
- package/dist/types/react/web/ui/MediaRenderer/MediaRenderer.d.ts +1 -1
- package/dist/types/utils/any-evm/compute-deployment-address.d.ts +1 -0
- package/dist/types/utils/any-evm/compute-deployment-address.d.ts.map +1 -1
- package/dist/types/utils/any-evm/compute-published-contract-deploy-info.d.ts +7 -3
- package/dist/types/utils/any-evm/compute-published-contract-deploy-info.d.ts.map +1 -1
- package/dist/types/utils/any-evm/deploy-metadata.d.ts +1 -1
- package/dist/types/utils/any-evm/deploy-metadata.d.ts.map +1 -1
- package/dist/types/utils/any-evm/encode-extra-data-with-uri.d.ts +4 -0
- package/dist/types/utils/any-evm/encode-extra-data-with-uri.d.ts.map +1 -0
- package/dist/types/version.d.ts +1 -1
- package/package.json +6 -1
- package/src/cli/bin.ts +25 -0
- package/src/cli/commands/stylus/builder.ts +201 -0
- package/src/cli/commands/stylus/create.ts +51 -0
- package/src/contract/deployment/deploy-deterministic.ts +1 -1
- package/src/contract/deployment/deploy-with-abi.ts +39 -13
- package/src/contract/deployment/utils/bootstrap.ts +21 -0
- package/src/contract/deployment/utils/infra.ts +1 -1
- package/src/exports/extensions/stylus.ts +7 -0
- package/src/extensions/prebuilts/deploy-published.ts +12 -0
- package/src/extensions/stylus/__generated__/IArbWasm/write/activateProgram.ts +144 -0
- package/src/extensions/stylus/write/activateStylusContract.ts +95 -0
- package/src/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.tsx +13 -1
- package/src/react/web/ui/ConnectWallet/screens/Buy/fiat/OnRampScreen.tsx +1 -1
- package/src/utils/any-evm/compute-deployment-address.ts +7 -4
- package/src/utils/any-evm/compute-published-contract-deploy-info.ts +16 -2
- package/src/utils/any-evm/deploy-metadata.ts +1 -1
- package/src/utils/any-evm/encode-extra-data-with-uri.ts +13 -0
- package/src/version.ts +1 -1
@@ -0,0 +1,25 @@
|
|
1
|
+
import type { Chain } from "../../../chains/types.js";
|
2
|
+
import type { ThirdwebClient } from "../../../client/client.js";
|
3
|
+
import type { PreparedTransaction } from "../../../transaction/prepare-transaction.js";
|
4
|
+
export type ActivateStylusContractOptions = {
|
5
|
+
chain: Chain;
|
6
|
+
client: ThirdwebClient;
|
7
|
+
contractAddress: string;
|
8
|
+
};
|
9
|
+
/**
|
10
|
+
* Activate a stylus contract by calling ArbWasm Precompile
|
11
|
+
* @param options - The options for activating the contract
|
12
|
+
* @returns A prepared transaction to send
|
13
|
+
* @example
|
14
|
+
* ```ts
|
15
|
+
* import { activateStylusContract } from "thirdweb/stylus";
|
16
|
+
* const transaction = activateStylusContract({
|
17
|
+
* client,
|
18
|
+
* chain,
|
19
|
+
* contractAddress,
|
20
|
+
* });
|
21
|
+
* await sendTransaction({ transaction, account });
|
22
|
+
* ```
|
23
|
+
*/
|
24
|
+
export declare function activateStylusContract(options: ActivateStylusContractOptions): Promise<PreparedTransaction<any, import("viem").AbiFunction, import("../../../transaction/prepare-transaction.js").PrepareTransactionOptions>>;
|
25
|
+
//# sourceMappingURL=activateStylusContract.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"activateStylusContract.d.ts","sourceRoot":"","sources":["../../../../../src/extensions/stylus/write/activateStylusContract.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAKhE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAKvF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,EAAE,cAAc,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,6BAA6B,kJAuBvC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"BuyScreen.d.ts","sourceRoot":"","sources":["../../../../../../../../src/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.tsx"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"BuyScreen.d.ts","sourceRoot":"","sources":["../../../../../../../../src/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAMzE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2CAA2C,CAAC;AAC1E,OAAO,EACL,KAAK,KAAK,EAGX,MAAM,4CAA4C,CAAC;AACpD,OAAO,KAAK,EAEV,YAAY,EACb,MAAM,4DAA4D,CAAC;AAGpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AAGlF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AASnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAiC3D,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IACjC,eAAe,EAAE,eAAe,GAAG,SAAS,CAAC;IAC7C,MAAM,EAAE,cAAc,CAAC;IACvB,aAAa,EAAE,aAAa,CAAC;IAC7B,UAAU,EAAE,YAAY,CAAC;IACzB,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;IAChC,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,cAAc,EAAE,sBAAsB,GAAG,SAAS,CAAC;IACnD,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,KAAK,EAAE,cAAc,8CAgDtD"}
|
@@ -47,7 +47,7 @@ export declare const IframePlayer: React.ForwardRefExoticComponent<Omit<MediaRen
|
|
47
47
|
/**
|
48
48
|
* @internal Exported for tests
|
49
49
|
*/
|
50
|
-
export declare const LinkPlayer: React.ForwardRefExoticComponent<Pick<MediaRendererProps, "src" | "
|
50
|
+
export declare const LinkPlayer: React.ForwardRefExoticComponent<Pick<MediaRendererProps, "src" | "style" | "alt" | "className"> & React.RefAttributes<HTMLAnchorElement>>;
|
51
51
|
/**
|
52
52
|
* @internal
|
53
53
|
*/
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"compute-deployment-address.d.ts","sourceRoot":"","sources":["../../../../src/utils/any-evm/compute-deployment-address.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,GAAG,EAAgB,MAAM,MAAM,CAAC;AAQ9C,KAAK,+BAA+B,GAAG;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,GAAG,CAAC;IACjB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;
|
1
|
+
{"version":3,"file":"compute-deployment-address.d.ts","sourceRoot":"","sources":["../../../../src/utils/any-evm/compute-deployment-address.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,GAAG,EAAgB,MAAM,MAAM,CAAC;AAQ9C,KAAK,+BAA+B,GAAG;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,GAAG,CAAC;IACjB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,GAAG,CAAC;CACxB,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,+BAA+B,UAmCzC"}
|
@@ -16,10 +16,11 @@ export declare function computeDeploymentInfoFromContractId(args: {
|
|
16
16
|
salt?: string;
|
17
17
|
}): Promise<{
|
18
18
|
bytecode: `0x${string}`;
|
19
|
-
|
19
|
+
initCalldata: `0x${string}`;
|
20
20
|
encodedArgs: `0x${string}`;
|
21
21
|
create2FactoryAddress: string;
|
22
22
|
salt: string | undefined;
|
23
|
+
extraDataWithUri: `0x${string}` | undefined;
|
23
24
|
}>;
|
24
25
|
/**
|
25
26
|
* @internal
|
@@ -32,10 +33,11 @@ export declare function computeDeploymentInfoFromMetadata(args: {
|
|
32
33
|
salt?: string;
|
33
34
|
}): Promise<{
|
34
35
|
bytecode: `0x${string}`;
|
35
|
-
|
36
|
+
initCalldata: `0x${string}`;
|
36
37
|
encodedArgs: `0x${string}`;
|
37
38
|
create2FactoryAddress: string;
|
38
39
|
salt: string | undefined;
|
40
|
+
extraDataWithUri: `0x${string}` | undefined;
|
39
41
|
}>;
|
40
42
|
export declare function computeDeploymentInfoFromBytecode(args: {
|
41
43
|
client: ThirdwebClient;
|
@@ -44,11 +46,13 @@ export declare function computeDeploymentInfoFromBytecode(args: {
|
|
44
46
|
bytecode: Hex;
|
45
47
|
constructorParams?: Record<string, unknown>;
|
46
48
|
salt?: string;
|
49
|
+
extraDataWithUri?: Hex;
|
47
50
|
}): Promise<{
|
48
51
|
bytecode: `0x${string}`;
|
49
|
-
|
52
|
+
initCalldata: `0x${string}`;
|
50
53
|
encodedArgs: `0x${string}`;
|
51
54
|
create2FactoryAddress: string;
|
52
55
|
salt: string | undefined;
|
56
|
+
extraDataWithUri: `0x${string}` | undefined;
|
53
57
|
}>;
|
54
58
|
//# sourceMappingURL=compute-published-contract-deploy-info.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"compute-published-contract-deploy-info.d.ts","sourceRoot":"","sources":["../../../../src/utils/any-evm/compute-published-contract-deploy-info.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAkB,MAAM,SAAS,CAAC;
|
1
|
+
{"version":3,"file":"compute-published-contract-deploy-info.d.ts","sourceRoot":"","sources":["../../../../src/utils/any-evm/compute-published-contract-deploy-info.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAkB,MAAM,SAAS,CAAC;AAEnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAQ7D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EACL,KAAK,yBAAyB,EAE/B,MAAM,sBAAsB,CAAC;AAI9B;;GAEG;AACH,wBAAsB,mCAAmC,CAAC,IAAI,EAAE;IAC9D,MAAM,EAAE,cAAc,CAAC;IACvB,KAAK,EAAE,KAAK,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;;;;;;;GAeA;AAED;;GAEG;AACH,wBAAsB,iCAAiC,CAAC,IAAI,EAAE;IAC5D,MAAM,EAAE,cAAc,CAAC;IACvB,KAAK,EAAE,KAAK,CAAC;IACb,gBAAgB,EAAE,yBAAyB,CAAC;IAC5C,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;;;;;;;GAoCA;AAED,wBAAsB,iCAAiC,CAAC,IAAI,EAAE;IAC5D,MAAM,EAAE,cAAc,CAAC;IACvB,KAAK,EAAE,KAAK,CAAC;IACb,GAAG,EAAE,GAAG,CAAC;IACT,QAAQ,EAAE,GAAG,CAAC;IACd,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,GAAG,CAAC;CACxB;;;;;;;GA+BA"}
|
@@ -141,7 +141,7 @@ export type ExtendedMetadata = {
|
|
141
141
|
dynamicValue?: DynamicParams;
|
142
142
|
}>;
|
143
143
|
compositeAbi?: Abi;
|
144
|
-
compilers?: Record<"solc" | "zksolc", {
|
144
|
+
compilers?: Record<"solc" | "zksolc" | "stylus", {
|
145
145
|
evmVersion: string;
|
146
146
|
compilerVersion: string;
|
147
147
|
metadataUri: string;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"deploy-metadata.d.ts","sourceRoot":"","sources":["../../../../src/utils/any-evm/deploy-metadata.ts"],"names":[],"mappings":"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
|
1
|
+
{"version":3,"file":"deploy-metadata.d.ts","sourceRoot":"","sources":["../../../../src/utils/any-evm/deploy-metadata.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"encode-extra-data-with-uri.d.ts","sourceRoot":"","sources":["../../../../src/utils/any-evm/encode-extra-data-with-uri.ts"],"names":[],"mappings":"AAGA,wBAAgB,sBAAsB,CAAC,OAAO,EAAE;IAC9C,WAAW,EAAE,MAAM,CAAC;CACrB,iBAOA"}
|
package/dist/types/version.d.ts
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
export declare const version = "5.93.
|
1
|
+
export declare const version = "5.93.7";
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "thirdweb",
|
3
|
-
"version": "5.93.
|
3
|
+
"version": "5.93.7",
|
4
4
|
"repository": {
|
5
5
|
"type": "git",
|
6
6
|
"url": "git+https://github.com/thirdweb-dev/js.git#main"
|
@@ -233,7 +233,11 @@
|
|
233
233
|
"fuse.js": "7.1.0",
|
234
234
|
"input-otp": "^1.4.1",
|
235
235
|
"mipd": "0.0.7",
|
236
|
+
"open": "10.1.0",
|
237
|
+
"ora": "8.2.0",
|
236
238
|
"ox": "0.6.10",
|
239
|
+
"prompts": "2.4.2",
|
240
|
+
"toml": "3.0.0",
|
237
241
|
"uqr": "0.1.2",
|
238
242
|
"viem": "2.23.10"
|
239
243
|
},
|
@@ -329,6 +333,7 @@
|
|
329
333
|
"@testing-library/react": "^16.2.0",
|
330
334
|
"@testing-library/user-event": "^14.6.1",
|
331
335
|
"@types/cross-spawn": "^6.0.6",
|
336
|
+
"@types/prompts": "2.4.9",
|
332
337
|
"@types/react": "19.0.10",
|
333
338
|
"@viem/anvil": "0.0.10",
|
334
339
|
"@vitejs/plugin-react": "^4.3.4",
|
package/src/cli/bin.ts
CHANGED
@@ -4,9 +4,19 @@ import {
|
|
4
4
|
generate,
|
5
5
|
isValidChainIdAndContractAddress,
|
6
6
|
} from "./commands/generate/generate.js";
|
7
|
+
import { deployStylus, publishStylus } from "./commands/stylus/builder.js";
|
8
|
+
import { createStylusProject } from "./commands/stylus/create.js";
|
9
|
+
|
7
10
|
// skip the first two args?
|
8
11
|
const [, , command = "", ...rest] = process.argv;
|
9
12
|
|
13
|
+
let secretKey: string | undefined;
|
14
|
+
const keyIndex = rest.indexOf("-k");
|
15
|
+
if (keyIndex !== -1 && rest.length > keyIndex + 1) {
|
16
|
+
secretKey = rest[keyIndex + 1];
|
17
|
+
rest.splice(keyIndex, 2);
|
18
|
+
}
|
19
|
+
|
10
20
|
async function main() {
|
11
21
|
switch (command) {
|
12
22
|
case "generate": {
|
@@ -20,6 +30,21 @@ async function main() {
|
|
20
30
|
break;
|
21
31
|
}
|
22
32
|
|
33
|
+
case "publish-stylus": {
|
34
|
+
await publishStylus(secretKey);
|
35
|
+
break;
|
36
|
+
}
|
37
|
+
|
38
|
+
case "deploy-stylus": {
|
39
|
+
await deployStylus(secretKey);
|
40
|
+
break;
|
41
|
+
}
|
42
|
+
|
43
|
+
case "create-stylus": {
|
44
|
+
await createStylusProject();
|
45
|
+
break;
|
46
|
+
}
|
47
|
+
|
23
48
|
case "login": {
|
24
49
|
// Not implemented yet
|
25
50
|
console.info(
|
@@ -0,0 +1,201 @@
|
|
1
|
+
import { spawnSync } from "node:child_process";
|
2
|
+
import { existsSync, readFileSync } from "node:fs";
|
3
|
+
import { join } from "node:path";
|
4
|
+
import open from "open";
|
5
|
+
import ora, { type Ora } from "ora";
|
6
|
+
import { parse } from "toml";
|
7
|
+
import { createThirdwebClient } from "../../../client/client.js";
|
8
|
+
import { upload } from "../../../storage/upload.js";
|
9
|
+
|
10
|
+
const THIRDWEB_URL = "https://thirdweb.com";
|
11
|
+
|
12
|
+
export async function publishStylus(secretKey?: string) {
|
13
|
+
const spinner = ora("Checking if this is a Stylus project...").start();
|
14
|
+
const uri = await buildStylus(spinner, secretKey);
|
15
|
+
|
16
|
+
const url = getUrl(uri, "publish").toString();
|
17
|
+
spinner.succeed(`Upload complete, navigate to ${url}`);
|
18
|
+
await open(url);
|
19
|
+
}
|
20
|
+
|
21
|
+
export async function deployStylus(secretKey?: string) {
|
22
|
+
const spinner = ora("Checking if this is a Stylus project...").start();
|
23
|
+
const uri = await buildStylus(spinner, secretKey);
|
24
|
+
|
25
|
+
const url = getUrl(uri, "deploy").toString();
|
26
|
+
spinner.succeed(`Upload complete, navigate to ${url}`);
|
27
|
+
await open(url);
|
28
|
+
}
|
29
|
+
|
30
|
+
async function buildStylus(spinner: Ora, secretKey?: string) {
|
31
|
+
if (!secretKey) {
|
32
|
+
spinner.fail("Error: Secret key is required.");
|
33
|
+
process.exit(1);
|
34
|
+
}
|
35
|
+
|
36
|
+
try {
|
37
|
+
// Step 1: Validate stylus project
|
38
|
+
const root = process.cwd();
|
39
|
+
if (!root) {
|
40
|
+
spinner.fail("Error: No package directory found.");
|
41
|
+
process.exit(1);
|
42
|
+
}
|
43
|
+
|
44
|
+
const cargoTomlPath = join(root, "Cargo.toml");
|
45
|
+
if (!existsSync(cargoTomlPath)) {
|
46
|
+
spinner.fail("Error: No Cargo.toml found. Not a Stylus/Rust project.");
|
47
|
+
process.exit(1);
|
48
|
+
}
|
49
|
+
|
50
|
+
const cargoToml = readFileSync(cargoTomlPath, "utf8");
|
51
|
+
const parsedCargoToml = parse(cargoToml);
|
52
|
+
if (!parsedCargoToml.dependencies?.["stylus-sdk"]) {
|
53
|
+
spinner.fail(
|
54
|
+
"Error: Not a Stylus project. Missing stylus-sdk dependency.",
|
55
|
+
);
|
56
|
+
process.exit(1);
|
57
|
+
}
|
58
|
+
|
59
|
+
spinner.succeed("Stylus project detected.");
|
60
|
+
|
61
|
+
// Step 2: Run stylus command to generate initcode
|
62
|
+
spinner.start("Generating initcode...");
|
63
|
+
const initcodeResult = spawnSync("cargo", ["stylus", "get-initcode"], {
|
64
|
+
encoding: "utf-8",
|
65
|
+
});
|
66
|
+
if (initcodeResult.status !== 0) {
|
67
|
+
spinner.fail("Failed to generate initcode.");
|
68
|
+
process.exit(1);
|
69
|
+
}
|
70
|
+
|
71
|
+
const initcode = extractBytecode(initcodeResult.stdout);
|
72
|
+
if (!initcode) {
|
73
|
+
spinner.fail("Failed to generate initcode.");
|
74
|
+
process.exit(1);
|
75
|
+
}
|
76
|
+
spinner.succeed("Initcode generated.");
|
77
|
+
|
78
|
+
// Step 3: Run stylus command to generate abi
|
79
|
+
spinner.start("Generating ABI...");
|
80
|
+
const abiResult = spawnSync("cargo", ["stylus", "export-abi", "--json"], {
|
81
|
+
encoding: "utf-8",
|
82
|
+
});
|
83
|
+
if (abiResult.status !== 0) {
|
84
|
+
spinner.fail("Failed to generate ABI.");
|
85
|
+
process.exit(1);
|
86
|
+
}
|
87
|
+
|
88
|
+
const abiContent = abiResult.stdout.trim();
|
89
|
+
if (!abiContent) {
|
90
|
+
spinner.fail("Failed to generate ABI.");
|
91
|
+
process.exit(1);
|
92
|
+
}
|
93
|
+
spinner.succeed("ABI generated.");
|
94
|
+
|
95
|
+
// Step 4: Process the output
|
96
|
+
const contractName = extractContractNameFromExportAbi(abiContent);
|
97
|
+
if (!contractName) {
|
98
|
+
spinner.fail("Error: Could not determine contract name from ABI output.");
|
99
|
+
process.exit(1);
|
100
|
+
}
|
101
|
+
|
102
|
+
let cleanedAbi = "";
|
103
|
+
try {
|
104
|
+
const jsonMatch = abiContent.match(/\[.*\]/s);
|
105
|
+
if (jsonMatch) {
|
106
|
+
cleanedAbi = jsonMatch[0];
|
107
|
+
} else {
|
108
|
+
throw new Error("No valid JSON ABI found in the file.");
|
109
|
+
}
|
110
|
+
} catch (error) {
|
111
|
+
spinner.fail("Error: ABI file contains invalid format.");
|
112
|
+
console.error(error);
|
113
|
+
process.exit(1);
|
114
|
+
}
|
115
|
+
|
116
|
+
const metadata = {
|
117
|
+
compiler: {},
|
118
|
+
language: "rust",
|
119
|
+
output: {
|
120
|
+
abi: JSON.parse(cleanedAbi),
|
121
|
+
devdoc: {},
|
122
|
+
userdoc: {},
|
123
|
+
},
|
124
|
+
settings: {
|
125
|
+
compilationTarget: {
|
126
|
+
"src/main.rs": contractName,
|
127
|
+
},
|
128
|
+
},
|
129
|
+
sources: {},
|
130
|
+
};
|
131
|
+
spinner.succeed("Stylus contract exported successfully.");
|
132
|
+
|
133
|
+
// Step 5: Upload to IPFS
|
134
|
+
spinner.start("Uploading to IPFS...");
|
135
|
+
const client = createThirdwebClient({
|
136
|
+
secretKey,
|
137
|
+
});
|
138
|
+
|
139
|
+
const metadataUri = await upload({
|
140
|
+
client,
|
141
|
+
files: [metadata],
|
142
|
+
});
|
143
|
+
|
144
|
+
const bytecodeUri = await upload({
|
145
|
+
client,
|
146
|
+
files: [initcode],
|
147
|
+
});
|
148
|
+
|
149
|
+
const uri = await upload({
|
150
|
+
client,
|
151
|
+
files: [
|
152
|
+
{
|
153
|
+
name: contractName,
|
154
|
+
metadataUri,
|
155
|
+
bytecodeUri,
|
156
|
+
analytics: {
|
157
|
+
command: "publish-stylus",
|
158
|
+
contract_name: contractName,
|
159
|
+
cli_version: "",
|
160
|
+
project_type: "stylus",
|
161
|
+
},
|
162
|
+
compilers: {
|
163
|
+
stylus: [
|
164
|
+
{ compilerVersion: "", evmVersion: "", metadataUri, bytecodeUri },
|
165
|
+
],
|
166
|
+
},
|
167
|
+
},
|
168
|
+
],
|
169
|
+
});
|
170
|
+
spinner.succeed("Upload complete");
|
171
|
+
|
172
|
+
return uri;
|
173
|
+
} catch (error) {
|
174
|
+
spinner.fail(`Error: ${error}`);
|
175
|
+
process.exit(1);
|
176
|
+
}
|
177
|
+
}
|
178
|
+
|
179
|
+
function extractContractNameFromExportAbi(abiRawOutput: string): string | null {
|
180
|
+
const match = abiRawOutput.match(/<stdin>:(I[A-Za-z0-9_]+)/);
|
181
|
+
if (match?.[1]) {
|
182
|
+
return match[1].replace(/^I/, "");
|
183
|
+
}
|
184
|
+
return null;
|
185
|
+
}
|
186
|
+
|
187
|
+
function getUrl(hash: string, command: string) {
|
188
|
+
const url = new URL(
|
189
|
+
`${THIRDWEB_URL}/contracts/${command}/${encodeURIComponent(hash.replace("ipfs://", ""))}`,
|
190
|
+
);
|
191
|
+
|
192
|
+
return url;
|
193
|
+
}
|
194
|
+
|
195
|
+
function extractBytecode(rawOutput: string): string {
|
196
|
+
const hexStart = rawOutput.indexOf("7f000000");
|
197
|
+
if (hexStart === -1) {
|
198
|
+
throw new Error("Could not find start of bytecode");
|
199
|
+
}
|
200
|
+
return rawOutput.slice(hexStart).trim();
|
201
|
+
}
|
@@ -0,0 +1,51 @@
|
|
1
|
+
import { spawnSync } from "node:child_process";
|
2
|
+
import ora from "ora";
|
3
|
+
import prompts from "prompts";
|
4
|
+
|
5
|
+
export async function createStylusProject() {
|
6
|
+
const spinner = ora();
|
7
|
+
|
8
|
+
// Step 1: Ensure cargo is installed
|
9
|
+
const cargoCheck = spawnSync("cargo", ["--version"]);
|
10
|
+
if (cargoCheck.status !== 0) {
|
11
|
+
console.error("Error: `cargo` is not installed");
|
12
|
+
process.exit(1);
|
13
|
+
}
|
14
|
+
|
15
|
+
// Step 2: Install stylus etc.
|
16
|
+
spinner.start("Installing Stylus...");
|
17
|
+
const install = spawnSync("cargo", ["install", "--force", "cargo-stylus"], {
|
18
|
+
stdio: "inherit",
|
19
|
+
});
|
20
|
+
if (install.status !== 0) {
|
21
|
+
spinner.fail("Failed to install Stylus.");
|
22
|
+
process.exit(1);
|
23
|
+
}
|
24
|
+
spinner.succeed("Stylus installed.");
|
25
|
+
|
26
|
+
spawnSync("rustup", ["default", "1.83"], {
|
27
|
+
stdio: "inherit",
|
28
|
+
});
|
29
|
+
spawnSync("rustup", ["target", "add", "wasm32-unknown-unknown"], {
|
30
|
+
stdio: "inherit",
|
31
|
+
});
|
32
|
+
|
33
|
+
// Step 3: Create the project
|
34
|
+
const { projectName } = await prompts({
|
35
|
+
type: "text",
|
36
|
+
name: "projectName",
|
37
|
+
message: "Project name:",
|
38
|
+
initial: "my-stylus-project",
|
39
|
+
});
|
40
|
+
spinner.start(`Creating new Stylus project: ${projectName}...`);
|
41
|
+
const newProject = spawnSync("cargo", ["stylus", "new", projectName], {
|
42
|
+
stdio: "inherit",
|
43
|
+
});
|
44
|
+
if (newProject.status !== 0) {
|
45
|
+
spinner.fail("Failed to create Stylus project.");
|
46
|
+
process.exit(1);
|
47
|
+
}
|
48
|
+
spinner.succeed("Project created successfully.");
|
49
|
+
|
50
|
+
console.log(`\n✅ Done! cd into your project: ${projectName}`);
|
51
|
+
}
|
@@ -52,7 +52,7 @@ export function prepareDeterministicDeployTransaction(
|
|
52
52
|
data: async () => {
|
53
53
|
const infraContractInfo =
|
54
54
|
await computeDeploymentInfoFromContractId(options);
|
55
|
-
return infraContractInfo.
|
55
|
+
return infraContractInfo.initCalldata;
|
56
56
|
},
|
57
57
|
});
|
58
58
|
}
|
@@ -1,5 +1,7 @@
|
|
1
1
|
import type { Abi, AbiConstructor } from "abitype";
|
2
|
+
import { activateStylusContract } from "../../extensions/stylus/write/activateStylusContract.js";
|
2
3
|
import { sendAndConfirmTransaction } from "../../transaction/actions/send-and-confirm-transaction.js";
|
4
|
+
import { sendTransaction } from "../../transaction/actions/send-transaction.js";
|
3
5
|
import { prepareTransaction } from "../../transaction/prepare-transaction.js";
|
4
6
|
import { encodeAbiParameters } from "../../utils/abi/encodeAbiParameters.js";
|
5
7
|
import { normalizeFunctionParams } from "../../utils/abi/normalizeFunctionParams.js";
|
@@ -24,6 +26,7 @@ export type PrepareDirectDeployTransactionOptions = Prettify<
|
|
24
26
|
abi: Abi;
|
25
27
|
bytecode: Hex;
|
26
28
|
constructorParams?: Record<string, unknown>;
|
29
|
+
extraDataWithUri?: string;
|
27
30
|
}
|
28
31
|
>;
|
29
32
|
|
@@ -70,6 +73,7 @@ export function prepareDirectDeployTransaction(
|
|
70
73
|
constructorAbi?.inputs || [], // Leave an empty array if there's no constructor
|
71
74
|
normalizeFunctionParams(constructorAbi, options.constructorParams),
|
72
75
|
),
|
76
|
+
(options.extraDataWithUri as `0x${string}`) || "0x",
|
73
77
|
]),
|
74
78
|
});
|
75
79
|
}
|
@@ -121,6 +125,8 @@ export async function deployContract(
|
|
121
125
|
options: PrepareDirectDeployTransactionOptions & {
|
122
126
|
account: Account;
|
123
127
|
salt?: string;
|
128
|
+
extraDataWithUri?: Hex;
|
129
|
+
isStylus?: boolean;
|
124
130
|
},
|
125
131
|
) {
|
126
132
|
if (await isZkSyncChain(options.chain)) {
|
@@ -135,14 +141,16 @@ export async function deployContract(
|
|
135
141
|
});
|
136
142
|
}
|
137
143
|
|
144
|
+
let address: string | null | undefined;
|
138
145
|
if (options.salt !== undefined) {
|
139
146
|
// Deploy with CREATE2 if salt is provided
|
140
147
|
const info = await computeDeploymentInfoFromBytecode(options);
|
141
|
-
|
148
|
+
address = computeDeploymentAddress({
|
142
149
|
bytecode: options.bytecode,
|
143
150
|
encodedArgs: info.encodedArgs,
|
144
151
|
create2FactoryAddress: info.create2FactoryAddress,
|
145
152
|
salt: options.salt,
|
153
|
+
extraDataWithUri: options.extraDataWithUri,
|
146
154
|
});
|
147
155
|
const isDeployed = await isContractDeployed(
|
148
156
|
getContract({
|
@@ -160,21 +168,39 @@ export async function deployContract(
|
|
160
168
|
chain: options.chain,
|
161
169
|
client: options.client,
|
162
170
|
to: info.create2FactoryAddress,
|
163
|
-
data: info.
|
171
|
+
data: info.initCalldata,
|
164
172
|
}),
|
165
173
|
});
|
166
|
-
|
174
|
+
} else {
|
175
|
+
const deployTx = prepareDirectDeployTransaction(options);
|
176
|
+
const receipt = await sendAndConfirmTransaction({
|
177
|
+
account: options.account,
|
178
|
+
transaction: deployTx,
|
179
|
+
});
|
180
|
+
address = receipt.contractAddress;
|
181
|
+
if (!address) {
|
182
|
+
throw new Error(
|
183
|
+
`Could not find deployed contract address in transaction: ${receipt.transactionHash}`,
|
184
|
+
);
|
185
|
+
}
|
167
186
|
}
|
168
187
|
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
188
|
+
if (options.isStylus) {
|
189
|
+
try {
|
190
|
+
const activationTransaction = await activateStylusContract({
|
191
|
+
chain: options.chain,
|
192
|
+
client: options.client,
|
193
|
+
contractAddress: address,
|
194
|
+
});
|
195
|
+
|
196
|
+
await sendTransaction({
|
197
|
+
transaction: activationTransaction,
|
198
|
+
account: options.account,
|
199
|
+
});
|
200
|
+
} catch {
|
201
|
+
console.error("Error: Contract could not be activated.");
|
202
|
+
}
|
178
203
|
}
|
179
|
-
|
204
|
+
|
205
|
+
return address;
|
180
206
|
}
|
@@ -1,4 +1,6 @@
|
|
1
|
+
import { activateStylusContract } from "../../../extensions/stylus/write/activateStylusContract.js";
|
1
2
|
import { sendAndConfirmTransaction } from "../../../transaction/actions/send-and-confirm-transaction.js";
|
3
|
+
import { sendTransaction } from "../../../transaction/actions/send-transaction.js";
|
2
4
|
import {
|
3
5
|
type FetchDeployMetadataResult,
|
4
6
|
fetchBytecodeFromCompilerMetadata,
|
@@ -255,5 +257,24 @@ export async function getOrDeployInfraContractFromMetadata(
|
|
255
257
|
if (!deployedInfraContract) {
|
256
258
|
throw new Error(`Failed to deploy ${options.contractMetadata.name}`);
|
257
259
|
}
|
260
|
+
|
261
|
+
const isStylus = options.contractMetadata.metadata.language === "rust";
|
262
|
+
if (isStylus) {
|
263
|
+
try {
|
264
|
+
const activationTransaction = await activateStylusContract({
|
265
|
+
chain: options.chain,
|
266
|
+
client: options.client,
|
267
|
+
contractAddress: deployedInfraContract.address,
|
268
|
+
});
|
269
|
+
|
270
|
+
await sendTransaction({
|
271
|
+
transaction: activationTransaction,
|
272
|
+
account: options.account,
|
273
|
+
});
|
274
|
+
} catch {
|
275
|
+
console.error("Error: Contract could not be activated.");
|
276
|
+
}
|
277
|
+
}
|
278
|
+
|
258
279
|
return deployedInfraContract;
|
259
280
|
}
|
@@ -100,7 +100,7 @@ export function prepareInfraContractDeployTransactionFromMetadata(options: {
|
|
100
100
|
data: async () => {
|
101
101
|
const infraContractInfo =
|
102
102
|
await computeDeploymentInfoFromMetadata(options);
|
103
|
-
return infraContractInfo.
|
103
|
+
return infraContractInfo.initCalldata;
|
104
104
|
},
|
105
105
|
});
|
106
106
|
}
|