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.
Files changed (110) hide show
  1. package/dist/cjs/cli/bin.js +20 -0
  2. package/dist/cjs/cli/bin.js.map +1 -1
  3. package/dist/cjs/cli/commands/stylus/builder.js +179 -0
  4. package/dist/cjs/cli/commands/stylus/builder.js.map +1 -0
  5. package/dist/cjs/cli/commands/stylus/create.js +49 -0
  6. package/dist/cjs/cli/commands/stylus/create.js.map +1 -0
  7. package/dist/cjs/contract/deployment/deploy-deterministic.js +1 -1
  8. package/dist/cjs/contract/deployment/deploy-deterministic.js.map +1 -1
  9. package/dist/cjs/contract/deployment/deploy-with-abi.js +34 -11
  10. package/dist/cjs/contract/deployment/deploy-with-abi.js.map +1 -1
  11. package/dist/cjs/contract/deployment/utils/bootstrap.js +19 -0
  12. package/dist/cjs/contract/deployment/utils/bootstrap.js.map +1 -1
  13. package/dist/cjs/contract/deployment/utils/infra.js +1 -1
  14. package/dist/cjs/contract/deployment/utils/infra.js.map +1 -1
  15. package/dist/cjs/exports/extensions/stylus.js +9 -0
  16. package/dist/cjs/exports/extensions/stylus.js.map +1 -0
  17. package/dist/cjs/extensions/prebuilts/deploy-published.js +10 -0
  18. package/dist/cjs/extensions/prebuilts/deploy-published.js.map +1 -1
  19. package/dist/cjs/extensions/stylus/__generated__/IArbWasm/write/activateProgram.js +124 -0
  20. package/dist/cjs/extensions/stylus/__generated__/IArbWasm/write/activateProgram.js.map +1 -0
  21. package/dist/cjs/extensions/stylus/write/activateStylusContract.js +71 -0
  22. package/dist/cjs/extensions/stylus/write/activateStylusContract.js.map +1 -0
  23. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js +12 -1
  24. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js.map +1 -1
  25. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/OnRampScreen.js +1 -1
  26. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/OnRampScreen.js.map +1 -1
  27. package/dist/cjs/utils/any-evm/compute-deployment-address.js +3 -1
  28. package/dist/cjs/utils/any-evm/compute-deployment-address.js.map +1 -1
  29. package/dist/cjs/utils/any-evm/compute-published-contract-deploy-info.js +14 -2
  30. package/dist/cjs/utils/any-evm/compute-published-contract-deploy-info.js.map +1 -1
  31. package/dist/cjs/utils/any-evm/encode-extra-data-with-uri.js +13 -0
  32. package/dist/cjs/utils/any-evm/encode-extra-data-with-uri.js.map +1 -0
  33. package/dist/cjs/version.js +1 -1
  34. package/dist/esm/cli/bin.js +20 -0
  35. package/dist/esm/cli/bin.js.map +1 -1
  36. package/dist/esm/cli/commands/stylus/builder.js +175 -0
  37. package/dist/esm/cli/commands/stylus/builder.js.map +1 -0
  38. package/dist/esm/cli/commands/stylus/create.js +46 -0
  39. package/dist/esm/cli/commands/stylus/create.js.map +1 -0
  40. package/dist/esm/contract/deployment/deploy-deterministic.js +1 -1
  41. package/dist/esm/contract/deployment/deploy-deterministic.js.map +1 -1
  42. package/dist/esm/contract/deployment/deploy-with-abi.js +34 -11
  43. package/dist/esm/contract/deployment/deploy-with-abi.js.map +1 -1
  44. package/dist/esm/contract/deployment/utils/bootstrap.js +19 -0
  45. package/dist/esm/contract/deployment/utils/bootstrap.js.map +1 -1
  46. package/dist/esm/contract/deployment/utils/infra.js +1 -1
  47. package/dist/esm/contract/deployment/utils/infra.js.map +1 -1
  48. package/dist/esm/exports/extensions/stylus.js +5 -0
  49. package/dist/esm/exports/extensions/stylus.js.map +1 -0
  50. package/dist/esm/extensions/prebuilts/deploy-published.js +10 -0
  51. package/dist/esm/extensions/prebuilts/deploy-published.js.map +1 -1
  52. package/dist/esm/extensions/stylus/__generated__/IArbWasm/write/activateProgram.js +117 -0
  53. package/dist/esm/extensions/stylus/__generated__/IArbWasm/write/activateProgram.js.map +1 -0
  54. package/dist/esm/extensions/stylus/write/activateStylusContract.js +68 -0
  55. package/dist/esm/extensions/stylus/write/activateStylusContract.js.map +1 -0
  56. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js +12 -1
  57. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js.map +1 -1
  58. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/OnRampScreen.js +1 -1
  59. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/OnRampScreen.js.map +1 -1
  60. package/dist/esm/utils/any-evm/compute-deployment-address.js +3 -1
  61. package/dist/esm/utils/any-evm/compute-deployment-address.js.map +1 -1
  62. package/dist/esm/utils/any-evm/compute-published-contract-deploy-info.js +14 -2
  63. package/dist/esm/utils/any-evm/compute-published-contract-deploy-info.js.map +1 -1
  64. package/dist/esm/utils/any-evm/encode-extra-data-with-uri.js +10 -0
  65. package/dist/esm/utils/any-evm/encode-extra-data-with-uri.js.map +1 -0
  66. package/dist/esm/version.js +1 -1
  67. package/dist/types/cli/commands/stylus/builder.d.ts +3 -0
  68. package/dist/types/cli/commands/stylus/builder.d.ts.map +1 -0
  69. package/dist/types/cli/commands/stylus/create.d.ts +2 -0
  70. package/dist/types/cli/commands/stylus/create.d.ts.map +1 -0
  71. package/dist/types/contract/deployment/deploy-with-abi.d.ts +3 -0
  72. package/dist/types/contract/deployment/deploy-with-abi.d.ts.map +1 -1
  73. package/dist/types/contract/deployment/utils/bootstrap.d.ts.map +1 -1
  74. package/dist/types/exports/extensions/stylus.d.ts +5 -0
  75. package/dist/types/exports/extensions/stylus.d.ts.map +1 -0
  76. package/dist/types/extensions/prebuilts/deploy-published.d.ts.map +1 -1
  77. package/dist/types/extensions/stylus/__generated__/IArbWasm/write/activateProgram.d.ts +79 -0
  78. package/dist/types/extensions/stylus/__generated__/IArbWasm/write/activateProgram.d.ts.map +1 -0
  79. package/dist/types/extensions/stylus/write/activateStylusContract.d.ts +25 -0
  80. package/dist/types/extensions/stylus/write/activateStylusContract.d.ts.map +1 -0
  81. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.d.ts.map +1 -1
  82. package/dist/types/react/web/ui/MediaRenderer/MediaRenderer.d.ts +1 -1
  83. package/dist/types/utils/any-evm/compute-deployment-address.d.ts +1 -0
  84. package/dist/types/utils/any-evm/compute-deployment-address.d.ts.map +1 -1
  85. package/dist/types/utils/any-evm/compute-published-contract-deploy-info.d.ts +7 -3
  86. package/dist/types/utils/any-evm/compute-published-contract-deploy-info.d.ts.map +1 -1
  87. package/dist/types/utils/any-evm/deploy-metadata.d.ts +1 -1
  88. package/dist/types/utils/any-evm/deploy-metadata.d.ts.map +1 -1
  89. package/dist/types/utils/any-evm/encode-extra-data-with-uri.d.ts +4 -0
  90. package/dist/types/utils/any-evm/encode-extra-data-with-uri.d.ts.map +1 -0
  91. package/dist/types/version.d.ts +1 -1
  92. package/package.json +6 -1
  93. package/src/cli/bin.ts +25 -0
  94. package/src/cli/commands/stylus/builder.ts +201 -0
  95. package/src/cli/commands/stylus/create.ts +51 -0
  96. package/src/contract/deployment/deploy-deterministic.ts +1 -1
  97. package/src/contract/deployment/deploy-with-abi.ts +39 -13
  98. package/src/contract/deployment/utils/bootstrap.ts +21 -0
  99. package/src/contract/deployment/utils/infra.ts +1 -1
  100. package/src/exports/extensions/stylus.ts +7 -0
  101. package/src/extensions/prebuilts/deploy-published.ts +12 -0
  102. package/src/extensions/stylus/__generated__/IArbWasm/write/activateProgram.ts +144 -0
  103. package/src/extensions/stylus/write/activateStylusContract.ts +95 -0
  104. package/src/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.tsx +13 -1
  105. package/src/react/web/ui/ConnectWallet/screens/Buy/fiat/OnRampScreen.tsx +1 -1
  106. package/src/utils/any-evm/compute-deployment-address.ts +7 -4
  107. package/src/utils/any-evm/compute-published-contract-deploy-info.ts +16 -2
  108. package/src/utils/any-evm/deploy-metadata.ts +1 -1
  109. package/src/utils/any-evm/encode-extra-data-with-uri.ts +13 -0
  110. 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":"AAGA,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,8CAqCtD"}
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" | "alt" | "style" | "className"> & React.RefAttributes<HTMLAnchorElement>>;
50
+ export declare const LinkPlayer: React.ForwardRefExoticComponent<Pick<MediaRendererProps, "src" | "style" | "alt" | "className"> & React.RefAttributes<HTMLAnchorElement>>;
51
51
  /**
52
52
  * @internal
53
53
  */
@@ -4,6 +4,7 @@ type ComputeDeploymentAddressOptions = {
4
4
  encodedArgs: Hex;
5
5
  create2FactoryAddress: string;
6
6
  salt?: string;
7
+ extraDataWithUri?: Hex;
7
8
  };
8
9
  /**
9
10
  * Computes the deployment address for a contract based on the given options.
@@ -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;CACf,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,+BAA+B,UAiCzC"}
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
- initBytecodeWithsalt: `0x${string}`;
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
- initBytecodeWithsalt: `0x${string}`;
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
- initBytecodeWithsalt: `0x${string}`;
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;AACnD,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;AAG9B;;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;;;;;;GA8BA;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;CACf;;;;;;GA0BA"}
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,4 @@
1
+ export declare function encodeExtraDataWithUri(options: {
2
+ metadataUri: string;
3
+ }): `0x${string}`;
4
+ //# sourceMappingURL=encode-extra-data-with-uri.d.ts.map
@@ -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"}
@@ -1,2 +1,2 @@
1
- export declare const version = "5.93.6";
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.6",
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.initBytecodeWithsalt;
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
- const address = computeDeploymentAddress({
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.initBytecodeWithsalt,
171
+ data: info.initCalldata,
164
172
  }),
165
173
  });
166
- return address;
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
- const deployTx = prepareDirectDeployTransaction(options);
170
- const receipt = await sendAndConfirmTransaction({
171
- account: options.account,
172
- transaction: deployTx,
173
- });
174
- if (!receipt.contractAddress) {
175
- throw new Error(
176
- `Could not find deployed contract address in transaction: ${receipt.transactionHash}`,
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
- return receipt.contractAddress;
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.initBytecodeWithsalt;
103
+ return infraContractInfo.initCalldata;
104
104
  },
105
105
  });
106
106
  }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Write
3
+ */
4
+ export {
5
+ activateStylusContract,
6
+ type ActivateStylusContractOptions,
7
+ } from "../../extensions/stylus/write/activateStylusContract.js";