thirdweb 5.93.6 → 5.93.7-nightly-12bcfc596ae789cbeb8918896f18033258cee15f-20250329000332
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/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/cjs/version.js.map +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/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/esm/version.js.map +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/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/dist/types/version.d.ts.map +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/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,124 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.FN_SELECTOR = void 0;
|
4
|
+
exports.isActivateProgramSupported = isActivateProgramSupported;
|
5
|
+
exports.encodeActivateProgramParams = encodeActivateProgramParams;
|
6
|
+
exports.encodeActivateProgram = encodeActivateProgram;
|
7
|
+
exports.activateProgram = activateProgram;
|
8
|
+
const prepare_contract_call_js_1 = require("../../../../../transaction/prepare-contract-call.js");
|
9
|
+
const encodeAbiParameters_js_1 = require("../../../../../utils/abi/encodeAbiParameters.js");
|
10
|
+
const once_js_1 = require("../../../../../utils/promise/once.js");
|
11
|
+
const detectExtension_js_1 = require("../../../../../utils/bytecode/detectExtension.js");
|
12
|
+
exports.FN_SELECTOR = "0x58c780c2";
|
13
|
+
const FN_INPUTS = [
|
14
|
+
{
|
15
|
+
type: "address",
|
16
|
+
name: "program",
|
17
|
+
},
|
18
|
+
];
|
19
|
+
const FN_OUTPUTS = [
|
20
|
+
{
|
21
|
+
type: "uint16",
|
22
|
+
},
|
23
|
+
{
|
24
|
+
type: "uint256",
|
25
|
+
},
|
26
|
+
];
|
27
|
+
/**
|
28
|
+
* Checks if the `activateProgram` method is supported by the given contract.
|
29
|
+
* @param availableSelectors An array of 4byte function selectors of the contract. You can get this in various ways, such as using "whatsabi" or if you have the ABI of the contract available you can use it to generate the selectors.
|
30
|
+
* @returns A boolean indicating if the `activateProgram` method is supported.
|
31
|
+
* @extension STYLUS
|
32
|
+
* @example
|
33
|
+
* ```ts
|
34
|
+
* import { isActivateProgramSupported } from "thirdweb/extensions/stylus";
|
35
|
+
*
|
36
|
+
* const supported = isActivateProgramSupported(["0x..."]);
|
37
|
+
* ```
|
38
|
+
*/
|
39
|
+
function isActivateProgramSupported(availableSelectors) {
|
40
|
+
return (0, detectExtension_js_1.detectMethod)({
|
41
|
+
availableSelectors,
|
42
|
+
method: [exports.FN_SELECTOR, FN_INPUTS, FN_OUTPUTS],
|
43
|
+
});
|
44
|
+
}
|
45
|
+
/**
|
46
|
+
* Encodes the parameters for the "activateProgram" function.
|
47
|
+
* @param options - The options for the activateProgram function.
|
48
|
+
* @returns The encoded ABI parameters.
|
49
|
+
* @extension STYLUS
|
50
|
+
* @example
|
51
|
+
* ```ts
|
52
|
+
* import { encodeActivateProgramParams } from "thirdweb/extensions/stylus";
|
53
|
+
* const result = encodeActivateProgramParams({
|
54
|
+
* program: ...,
|
55
|
+
* });
|
56
|
+
* ```
|
57
|
+
*/
|
58
|
+
function encodeActivateProgramParams(options) {
|
59
|
+
return (0, encodeAbiParameters_js_1.encodeAbiParameters)(FN_INPUTS, [options.program]);
|
60
|
+
}
|
61
|
+
/**
|
62
|
+
* Encodes the "activateProgram" function into a Hex string with its parameters.
|
63
|
+
* @param options - The options for the activateProgram function.
|
64
|
+
* @returns The encoded hexadecimal string.
|
65
|
+
* @extension STYLUS
|
66
|
+
* @example
|
67
|
+
* ```ts
|
68
|
+
* import { encodeActivateProgram } from "thirdweb/extensions/stylus";
|
69
|
+
* const result = encodeActivateProgram({
|
70
|
+
* program: ...,
|
71
|
+
* });
|
72
|
+
* ```
|
73
|
+
*/
|
74
|
+
function encodeActivateProgram(options) {
|
75
|
+
// we do a "manual" concat here to avoid the overhead of the "concatHex" function
|
76
|
+
// we can do this because we know the specific formats of the values
|
77
|
+
return (exports.FN_SELECTOR +
|
78
|
+
encodeActivateProgramParams(options).slice(2));
|
79
|
+
}
|
80
|
+
/**
|
81
|
+
* Prepares a transaction to call the "activateProgram" function on the contract.
|
82
|
+
* @param options - The options for the "activateProgram" function.
|
83
|
+
* @returns A prepared transaction object.
|
84
|
+
* @extension STYLUS
|
85
|
+
* @example
|
86
|
+
* ```ts
|
87
|
+
* import { sendTransaction } from "thirdweb";
|
88
|
+
* import { activateProgram } from "thirdweb/extensions/stylus";
|
89
|
+
*
|
90
|
+
* const transaction = activateProgram({
|
91
|
+
* contract,
|
92
|
+
* program: ...,
|
93
|
+
* overrides: {
|
94
|
+
* ...
|
95
|
+
* }
|
96
|
+
* });
|
97
|
+
*
|
98
|
+
* // Send the transaction
|
99
|
+
* await sendTransaction({ transaction, account });
|
100
|
+
* ```
|
101
|
+
*/
|
102
|
+
function activateProgram(options) {
|
103
|
+
const asyncOptions = (0, once_js_1.once)(async () => {
|
104
|
+
return "asyncParams" in options ? await options.asyncParams() : options;
|
105
|
+
});
|
106
|
+
return (0, prepare_contract_call_js_1.prepareContractCall)({
|
107
|
+
contract: options.contract,
|
108
|
+
method: [exports.FN_SELECTOR, FN_INPUTS, FN_OUTPUTS],
|
109
|
+
params: async () => {
|
110
|
+
const resolvedOptions = await asyncOptions();
|
111
|
+
return [resolvedOptions.program];
|
112
|
+
},
|
113
|
+
value: async () => (await asyncOptions()).overrides?.value,
|
114
|
+
accessList: async () => (await asyncOptions()).overrides?.accessList,
|
115
|
+
gas: async () => (await asyncOptions()).overrides?.gas,
|
116
|
+
gasPrice: async () => (await asyncOptions()).overrides?.gasPrice,
|
117
|
+
maxFeePerGas: async () => (await asyncOptions()).overrides?.maxFeePerGas,
|
118
|
+
maxPriorityFeePerGas: async () => (await asyncOptions()).overrides?.maxPriorityFeePerGas,
|
119
|
+
nonce: async () => (await asyncOptions()).overrides?.nonce,
|
120
|
+
extraGas: async () => (await asyncOptions()).overrides?.extraGas,
|
121
|
+
erc20Value: async () => (await asyncOptions()).overrides?.erc20Value,
|
122
|
+
});
|
123
|
+
}
|
124
|
+
//# sourceMappingURL=activateProgram.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"activateProgram.js","sourceRoot":"","sources":["../../../../../../../src/extensions/stylus/__generated__/IArbWasm/write/activateProgram.ts"],"names":[],"mappings":";;;AA6CA,gEAKC;AAeD,kEAEC;AAeD,sDAOC;AAwBD,0CA8BC;AA1ID,kGAA0F;AAC1F,4FAAsF;AACtF,kEAA4D;AAC5D,yFAAgF;AASnE,QAAA,WAAW,GAAG,YAAqB,CAAC;AACjD,MAAM,SAAS,GAAG;IAChB;QACE,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,SAAS;KAChB;CACO,CAAC;AACX,MAAM,UAAU,GAAG;IACjB;QACE,IAAI,EAAE,QAAQ;KACf;IACD;QACE,IAAI,EAAE,SAAS;KAChB;CACO,CAAC;AAEX;;;;;;;;;;;GAWG;AACH,SAAgB,0BAA0B,CAAC,kBAA4B;IACrE,OAAO,IAAA,iCAAY,EAAC;QAClB,kBAAkB;QAClB,MAAM,EAAE,CAAC,mBAAW,EAAE,SAAS,EAAE,UAAU,CAAU;KACtD,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAgB,2BAA2B,CAAC,OAA8B;IACxE,OAAO,IAAA,4CAAmB,EAAC,SAAS,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAgB,qBAAqB,CAAC,OAA8B;IAClE,iFAAiF;IACjF,oEAAoE;IACpE,OAAO,CAAC,mBAAW;QACjB,2BAA2B,CAAC,OAAO,CAAC,CAAC,KAAK,CACxC,CAAC,CACF,CAAqC,CAAC;AAC3C,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,SAAgB,eAAe,CAC7B,OAKC;IAED,MAAM,YAAY,GAAG,IAAA,cAAI,EAAC,KAAK,IAAI,EAAE;QACnC,OAAO,aAAa,IAAI,OAAO,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;IAC1E,CAAC,CAAC,CAAC;IAEH,OAAO,IAAA,8CAAmB,EAAC;QACzB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,MAAM,EAAE,CAAC,mBAAW,EAAE,SAAS,EAAE,UAAU,CAAU;QACrD,MAAM,EAAE,KAAK,IAAI,EAAE;YACjB,MAAM,eAAe,GAAG,MAAM,YAAY,EAAE,CAAC;YAC7C,OAAO,CAAC,eAAe,CAAC,OAAO,CAAU,CAAC;QAC5C,CAAC;QACD,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,YAAY,EAAE,CAAC,CAAC,SAAS,EAAE,KAAK;QAC1D,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,YAAY,EAAE,CAAC,CAAC,SAAS,EAAE,UAAU;QACpE,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,YAAY,EAAE,CAAC,CAAC,SAAS,EAAE,GAAG;QACtD,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,YAAY,EAAE,CAAC,CAAC,SAAS,EAAE,QAAQ;QAChE,YAAY,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,YAAY,EAAE,CAAC,CAAC,SAAS,EAAE,YAAY;QACxE,oBAAoB,EAAE,KAAK,IAAI,EAAE,CAC/B,CAAC,MAAM,YAAY,EAAE,CAAC,CAAC,SAAS,EAAE,oBAAoB;QACxD,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,YAAY,EAAE,CAAC,CAAC,SAAS,EAAE,KAAK;QAC1D,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,YAAY,EAAE,CAAC,CAAC,SAAS,EAAE,QAAQ;QAChE,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,YAAY,EAAE,CAAC,CAAC,SAAS,EAAE,UAAU;KACrE,CAAC,CAAC;AACL,CAAC"}
|
@@ -0,0 +1,71 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.activateStylusContract = activateStylusContract;
|
4
|
+
const viem_1 = require("viem");
|
5
|
+
const contract_js_1 = require("../../../contract/contract.js");
|
6
|
+
const eth_call_js_1 = require("../../../rpc/actions/eth_call.js");
|
7
|
+
const rpc_js_1 = require("../../../rpc/rpc.js");
|
8
|
+
const encode_js_1 = require("../../../transaction/actions/encode.js");
|
9
|
+
const activateProgram_js_1 = require("../__generated__/IArbWasm/write/activateProgram.js");
|
10
|
+
const ARB_WASM_ADDRESS = "0x0000000000000000000000000000000000000071";
|
11
|
+
/**
|
12
|
+
* Activate a stylus contract by calling ArbWasm Precompile
|
13
|
+
* @param options - The options for activating the contract
|
14
|
+
* @returns A prepared transaction to send
|
15
|
+
* @example
|
16
|
+
* ```ts
|
17
|
+
* import { activateStylusContract } from "thirdweb/stylus";
|
18
|
+
* const transaction = activateStylusContract({
|
19
|
+
* client,
|
20
|
+
* chain,
|
21
|
+
* contractAddress,
|
22
|
+
* });
|
23
|
+
* await sendTransaction({ transaction, account });
|
24
|
+
* ```
|
25
|
+
*/
|
26
|
+
async function activateStylusContract(options) {
|
27
|
+
const { chain, client, contractAddress } = options;
|
28
|
+
const arbWasmPrecompile = (0, contract_js_1.getContract)({
|
29
|
+
client,
|
30
|
+
chain,
|
31
|
+
address: ARB_WASM_ADDRESS,
|
32
|
+
});
|
33
|
+
const dataFee = await estimateDataFee({
|
34
|
+
transaction: (0, activateProgram_js_1.activateProgram)({
|
35
|
+
program: contractAddress,
|
36
|
+
contract: arbWasmPrecompile,
|
37
|
+
}),
|
38
|
+
});
|
39
|
+
return (0, activateProgram_js_1.activateProgram)({
|
40
|
+
program: contractAddress,
|
41
|
+
contract: arbWasmPrecompile,
|
42
|
+
overrides: {
|
43
|
+
value: dataFee,
|
44
|
+
},
|
45
|
+
});
|
46
|
+
}
|
47
|
+
async function estimateDataFee(options) {
|
48
|
+
const data = await (0, encode_js_1.encode)(options.transaction);
|
49
|
+
const serializedTx = (0, viem_1.formatTransactionRequest)({
|
50
|
+
data,
|
51
|
+
to: ARB_WASM_ADDRESS,
|
52
|
+
value: (0, viem_1.parseEther)("1"), // only for simulation. it will be replaced with estimated data fee.
|
53
|
+
});
|
54
|
+
const rpcRequest = (0, rpc_js_1.getRpcClient)(options.transaction);
|
55
|
+
try {
|
56
|
+
const result = await (0, eth_call_js_1.eth_call)(rpcRequest, serializedTx);
|
57
|
+
const [, dataFee] = (0, viem_1.decodeAbiParameters)([
|
58
|
+
{
|
59
|
+
type: "uint16",
|
60
|
+
},
|
61
|
+
{
|
62
|
+
type: "uint256",
|
63
|
+
},
|
64
|
+
], result);
|
65
|
+
return (dataFee * BigInt(100 + 10)) / BigInt(100); // bump 10%
|
66
|
+
}
|
67
|
+
catch {
|
68
|
+
return 0n;
|
69
|
+
}
|
70
|
+
}
|
71
|
+
//# sourceMappingURL=activateStylusContract.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"activateStylusContract.js","sourceRoot":"","sources":["../../../../../src/extensions/stylus/write/activateStylusContract.ts"],"names":[],"mappings":";;AAqCA,wDAwBC;AA7DD,+BAIc;AAGd,+DAA4D;AAC5D,kEAA4D;AAC5D,gDAAmD;AACnD,sEAAgE;AAEhE,2FAAqF;AAErF,MAAM,gBAAgB,GAAG,4CAA4C,CAAC;AAQtE;;;;;;;;;;;;;;GAcG;AACI,KAAK,UAAU,sBAAsB,CAC1C,OAAsC;IAEtC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC;IACnD,MAAM,iBAAiB,GAAG,IAAA,yBAAW,EAAC;QACpC,MAAM;QACN,KAAK;QACL,OAAO,EAAE,gBAAgB;KAC1B,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC;QACpC,WAAW,EAAE,IAAA,oCAAe,EAAC;YAC3B,OAAO,EAAE,eAAe;YACxB,QAAQ,EAAE,iBAAiB;SAC5B,CAAC;KACH,CAAC,CAAC;IAEH,OAAO,IAAA,oCAAe,EAAC;QACrB,OAAO,EAAE,eAAe;QACxB,QAAQ,EAAE,iBAAiB;QAC3B,SAAS,EAAE;YACT,KAAK,EAAE,OAAO;SACf;KACF,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,OAG9B;IACC,MAAM,IAAI,GAAG,MAAM,IAAA,kBAAM,EAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAE/C,MAAM,YAAY,GAAG,IAAA,+BAAwB,EAAC;QAC5C,IAAI;QACJ,EAAE,EAAE,gBAAgB;QACpB,KAAK,EAAE,IAAA,iBAAU,EAAC,GAAG,CAAC,EAAE,oEAAoE;KAC7F,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,IAAA,qBAAY,EAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACrD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,IAAA,sBAAQ,EAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QACxD,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG,IAAA,0BAAmB,EACrC;YACE;gBACE,IAAI,EAAE,QAAQ;aACf;YACD;gBACE,IAAI,EAAE,SAAS;aAChB;SACF,EACD,MAAM,CACP,CAAC;QAEF,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW;IAChE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC"}
|
@@ -32,7 +32,9 @@ function computeDeploymentAddress(options) {
|
|
32
32
|
: (0, keccak_id_js_1.keccakId)(options.salt)
|
33
33
|
: (0, get_salt_hash_js_1.getSaltHash)(bytecode);
|
34
34
|
// 1. create init bytecode hash with contract's bytecode and encoded args
|
35
|
-
const initBytecode =
|
35
|
+
const initBytecode = options.extraDataWithUri
|
36
|
+
? (0, viem_1.encodePacked)(["bytes", "bytes", "bytes"], [bytecode, options.encodedArgs, options.extraDataWithUri])
|
37
|
+
: (0, viem_1.encodePacked)(["bytes", "bytes"], [bytecode, options.encodedArgs]);
|
36
38
|
// 2. abi-encode pack the deployer address, salt, and bytecode hash
|
37
39
|
const deployInfoPacked = (0, viem_1.encodePacked)(["bytes1", "address", "bytes32", "bytes32"], [
|
38
40
|
"0xff",
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"compute-deployment-address.js","sourceRoot":"","sources":["../../../../src/utils/any-evm/compute-deployment-address.ts"],"names":[],"mappings":";;
|
1
|
+
{"version":3,"file":"compute-deployment-address.js","sourceRoot":"","sources":["../../../../src/utils/any-evm/compute-deployment-address.ts"],"names":[],"mappings":";;AAgCA,4DAoCC;AApED,+BAA8C;AAC9C,8CAA2C;AAC3C,qDAA6D;AAC7D,+CAA2C;AAC3C,0DAAoD;AACpD,yDAAiD;AACjD,iDAA0C;AAU1C;;;;;;;;;;;;;;;GAeG;AACH,SAAgB,wBAAwB,CACtC,OAAwC;IAExC,MAAM,QAAQ,GAAG,IAAA,gCAAoB,EAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI;QAC3B,CAAC,CAAC,IAAA,cAAK,EAAC,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,EAAE;YACjD,CAAC,CAAC,OAAO,CAAC,IAAI;YACd,CAAC,CAAC,IAAA,uBAAQ,EAAC,OAAO,CAAC,IAAI,CAAC;QAC1B,CAAC,CAAC,IAAA,8BAAW,EAAC,QAAQ,CAAC,CAAC;IAE1B,yEAAyE;IACzE,MAAM,YAAY,GAAG,OAAO,CAAC,gBAAgB;QAC3C,CAAC,CAAC,IAAA,mBAAY,EACV,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAC3B,CAAC,QAAQ,EAAE,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAC1D;QACH,CAAC,CAAC,IAAA,mBAAY,EAAC,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;IAEtE,mEAAmE;IACnE,MAAM,gBAAgB,GAAG,IAAA,mBAAY,EACnC,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,EAC3C;QACE,MAAM;QACN,IAAA,uBAAU,EAAC,OAAO,CAAC,qBAAqB,CAAC;QACzC,QAAQ;QACR,IAAA,wBAAS,EAAC,IAAA,mBAAY,EAAC,CAAC,OAAO,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;KACnD,CACF,CAAC;IAEF,iCAAiC;IACjC,MAAM,gBAAgB,GAAG,IAAA,wBAAS,EAChC,IAAA,mBAAY,EAAC,CAAC,OAAO,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAC5C,CAAC;IAEF,uFAAuF;IACvF,OAAO,KAAK,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;AAC3C,CAAC"}
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.computeDeploymentInfoFromContractId = computeDeploymentInfoFromContractId;
|
4
4
|
exports.computeDeploymentInfoFromMetadata = computeDeploymentInfoFromMetadata;
|
5
5
|
exports.computeDeploymentInfoFromBytecode = computeDeploymentInfoFromBytecode;
|
6
|
+
const viem_1 = require("viem");
|
6
7
|
const publisher_js_1 = require("../../contract/deployment/publisher.js");
|
7
8
|
const create_2_factory_js_1 = require("../../contract/deployment/utils/create-2-factory.js");
|
8
9
|
const compute_ref_deployments_js_1 = require("../../extensions/prebuilts/compute-ref-deployments.js");
|
@@ -10,6 +11,7 @@ const encodeAbiParameters_js_1 = require("../abi/encodeAbiParameters.js");
|
|
10
11
|
const normalizeFunctionParams_js_1 = require("../abi/normalizeFunctionParams.js");
|
11
12
|
const prefix_js_1 = require("../bytecode/prefix.js");
|
12
13
|
const deploy_metadata_js_1 = require("./deploy-metadata.js");
|
14
|
+
const encode_extra_data_with_uri_js_1 = require("./encode-extra-data-with-uri.js");
|
13
15
|
const get_init_bytecode_with_salt_js_1 = require("./get-init-bytecode-with-salt.js");
|
14
16
|
/**
|
15
17
|
* @internal
|
@@ -47,6 +49,7 @@ async function computeDeploymentInfoFromMetadata(args) {
|
|
47
49
|
});
|
48
50
|
}
|
49
51
|
}
|
52
|
+
const isStylus = contractMetadata.metadata.language === "rust";
|
50
53
|
return computeDeploymentInfoFromBytecode({
|
51
54
|
client: args.client,
|
52
55
|
chain: args.chain,
|
@@ -58,10 +61,15 @@ async function computeDeploymentInfoFromMetadata(args) {
|
|
58
61
|
}),
|
59
62
|
constructorParams: processedConstructorParams,
|
60
63
|
salt: args.salt,
|
64
|
+
extraDataWithUri: isStylus
|
65
|
+
? (0, encode_extra_data_with_uri_js_1.encodeExtraDataWithUri)({
|
66
|
+
metadataUri: contractMetadata.metadataUri,
|
67
|
+
})
|
68
|
+
: undefined,
|
61
69
|
});
|
62
70
|
}
|
63
71
|
async function computeDeploymentInfoFromBytecode(args) {
|
64
|
-
const { client, chain, constructorParams, salt } = args;
|
72
|
+
const { client, chain, constructorParams, salt, extraDataWithUri } = args;
|
65
73
|
const create2FactoryAddress = await (0, create_2_factory_js_1.computeCreate2FactoryAddress)({
|
66
74
|
client,
|
67
75
|
chain,
|
@@ -74,12 +82,16 @@ async function computeDeploymentInfoFromBytecode(args) {
|
|
74
82
|
encodedArgs,
|
75
83
|
salt,
|
76
84
|
});
|
85
|
+
const initCalldata = extraDataWithUri
|
86
|
+
? (0, viem_1.encodePacked)(["bytes", "bytes"], [initBytecodeWithsalt, extraDataWithUri])
|
87
|
+
: initBytecodeWithsalt;
|
77
88
|
return {
|
78
89
|
bytecode,
|
79
|
-
|
90
|
+
initCalldata,
|
80
91
|
encodedArgs,
|
81
92
|
create2FactoryAddress,
|
82
93
|
salt,
|
94
|
+
extraDataWithUri,
|
83
95
|
};
|
84
96
|
}
|
85
97
|
//# sourceMappingURL=compute-published-contract-deploy-info.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"compute-published-contract-deploy-info.js","sourceRoot":"","sources":["../../../../src/utils/any-evm/compute-published-contract-deploy-info.ts"],"names":[],"mappings":";;
|
1
|
+
{"version":3,"file":"compute-published-contract-deploy-info.js","sourceRoot":"","sources":["../../../../src/utils/any-evm/compute-published-contract-deploy-info.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,13 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.encodeExtraDataWithUri = encodeExtraDataWithUri;
|
4
|
+
const AbiParameters_1 = require("ox/AbiParameters");
|
5
|
+
const hex_js_1 = require("../encoding/hex.js");
|
6
|
+
function encodeExtraDataWithUri(options) {
|
7
|
+
const uriHex = (0, hex_js_1.stringToHex)(options.metadataUri);
|
8
|
+
const lengthHex = (0, hex_js_1.numberToHex)(uriHex.replace("0x", "").length / 2, {
|
9
|
+
size: 1,
|
10
|
+
});
|
11
|
+
return (0, AbiParameters_1.encodePacked)(["bytes", "bytes"], [uriHex, lengthHex]);
|
12
|
+
}
|
13
|
+
//# sourceMappingURL=encode-extra-data-with-uri.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"encode-extra-data-with-uri.js","sourceRoot":"","sources":["../../../../src/utils/any-evm/encode-extra-data-with-uri.ts"],"names":[],"mappings":";;AAGA,wDASC;AAZD,oDAAgD;AAChD,+CAA8D;AAE9D,SAAgB,sBAAsB,CAAC,OAEtC;IACC,MAAM,MAAM,GAAG,IAAA,oBAAW,EAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,IAAA,oBAAW,EAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;QACjE,IAAI,EAAE,CAAC;KACR,CAAC,CAAC;IAEH,OAAO,IAAA,4BAAY,EAAC,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;AAC/D,CAAC"}
|
package/dist/cjs/version.js
CHANGED
package/dist/cjs/version.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":";;;AAAa,QAAA,OAAO,GAAG,
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":";;;AAAa,QAAA,OAAO,GAAG,wEAAwE,CAAC"}
|
package/dist/esm/cli/bin.js
CHANGED
@@ -1,8 +1,16 @@
|
|
1
1
|
#!/usr/bin/env node
|
2
2
|
import { spawn } from "cross-spawn";
|
3
3
|
import { generate, isValidChainIdAndContractAddress, } from "./commands/generate/generate.js";
|
4
|
+
import { deployStylus, publishStylus } from "./commands/stylus/builder.js";
|
5
|
+
import { createStylusProject } from "./commands/stylus/create.js";
|
4
6
|
// skip the first two args?
|
5
7
|
const [, , command = "", ...rest] = process.argv;
|
8
|
+
let secretKey;
|
9
|
+
const keyIndex = rest.indexOf("-k");
|
10
|
+
if (keyIndex !== -1 && rest.length > keyIndex + 1) {
|
11
|
+
secretKey = rest[keyIndex + 1];
|
12
|
+
rest.splice(keyIndex, 2);
|
13
|
+
}
|
6
14
|
async function main() {
|
7
15
|
switch (command) {
|
8
16
|
case "generate": {
|
@@ -16,6 +24,18 @@ async function main() {
|
|
16
24
|
}
|
17
25
|
break;
|
18
26
|
}
|
27
|
+
case "publish-stylus": {
|
28
|
+
await publishStylus(secretKey);
|
29
|
+
break;
|
30
|
+
}
|
31
|
+
case "deploy-stylus": {
|
32
|
+
await deployStylus(secretKey);
|
33
|
+
break;
|
34
|
+
}
|
35
|
+
case "create-stylus": {
|
36
|
+
await createStylusProject();
|
37
|
+
break;
|
38
|
+
}
|
19
39
|
case "login": {
|
20
40
|
// Not implemented yet
|
21
41
|
console.info("Please instead pass a secret key to the command directly, learn more: https://support.thirdweb.com/troubleshooting-errors/7Y1BqKNvtLdBv5fZkRZZB3/issue-linking-device-on-the-authorization-page-via-thirdweb-cli/cn9LRA3ax7XCP6uxwRYdvx");
|
package/dist/esm/cli/bin.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../../../src/cli/bin.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EACL,QAAQ,EACR,gCAAgC,GACjC,MAAM,iCAAiC,CAAC;AACzC,2BAA2B;AAC3B,MAAM,CAAC,EAAE,AAAD,EAAG,OAAO,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;AAEjD,KAAK,UAAU,IAAI;IACjB,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,MAAM,CAAC,mBAAmB,CAAC,GAAG,IAAI,CAAC;YACnC,IAAI,CAAC,gCAAgC,CAAC,mBAAmB,CAAC,EAAE,CAAC;gBAC3D,OAAO,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC;gBACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACN,MAAM,QAAQ,CAAC,mBAAmB,CAAC,CAAC;YACtC,CAAC;YACD,MAAM;QACR,CAAC;QAED,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,sBAAsB;YACtB,OAAO,CAAC,IAAI,CACV,yOAAyO,CAC1O,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChB,MAAM;QACR,CAAC;QAED,OAAO,CAAC,CAAC,CAAC;YACR,6CAA6C;YAC7C,MAAM,QAAQ,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;YAC7D,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvD,OAAO,CAAC,IAAI,CACV,gOAAgO,CACjO,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAChB,OAAO;YACT,CAAC;YAED,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAEhD,IAAI,MAAM,GAAG,KAAK,CAAC;YAEnB,QAAQ,IAAI,EAAE,CAAC;gBACb,KAAK,SAAS;oBACZ,MAAM,GAAG,SAAS,CAAC;oBACnB,MAAM;YACV,CAAC;YAED,MAAM,IAAI,GAAG,OAAO;gBAClB,CAAC,CAAC,CAAC,OAAO,EAAE,0BAA0B,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;gBACzD,CAAC,CAAC,CAAC,OAAO,EAAE,0BAA0B,EAAE,GAAG,IAAI,CAAC,CAAC;YAEnD,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE;gBAClB,KAAK,EAAE,SAAS;aACjB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC"}
|
1
|
+
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../../../src/cli/bin.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,175 @@
|
|
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, {} from "ora";
|
6
|
+
import { parse } from "toml";
|
7
|
+
import { createThirdwebClient } from "../../../client/client.js";
|
8
|
+
import { upload } from "../../../storage/upload.js";
|
9
|
+
const THIRDWEB_URL = "https://thirdweb.com";
|
10
|
+
export async function publishStylus(secretKey) {
|
11
|
+
const spinner = ora("Checking if this is a Stylus project...").start();
|
12
|
+
const uri = await buildStylus(spinner, secretKey);
|
13
|
+
const url = getUrl(uri, "publish").toString();
|
14
|
+
spinner.succeed(`Upload complete, navigate to ${url}`);
|
15
|
+
await open(url);
|
16
|
+
}
|
17
|
+
export async function deployStylus(secretKey) {
|
18
|
+
const spinner = ora("Checking if this is a Stylus project...").start();
|
19
|
+
const uri = await buildStylus(spinner, secretKey);
|
20
|
+
const url = getUrl(uri, "deploy").toString();
|
21
|
+
spinner.succeed(`Upload complete, navigate to ${url}`);
|
22
|
+
await open(url);
|
23
|
+
}
|
24
|
+
async function buildStylus(spinner, secretKey) {
|
25
|
+
if (!secretKey) {
|
26
|
+
spinner.fail("Error: Secret key is required.");
|
27
|
+
process.exit(1);
|
28
|
+
}
|
29
|
+
try {
|
30
|
+
// Step 1: Validate stylus project
|
31
|
+
const root = process.cwd();
|
32
|
+
if (!root) {
|
33
|
+
spinner.fail("Error: No package directory found.");
|
34
|
+
process.exit(1);
|
35
|
+
}
|
36
|
+
const cargoTomlPath = join(root, "Cargo.toml");
|
37
|
+
if (!existsSync(cargoTomlPath)) {
|
38
|
+
spinner.fail("Error: No Cargo.toml found. Not a Stylus/Rust project.");
|
39
|
+
process.exit(1);
|
40
|
+
}
|
41
|
+
const cargoToml = readFileSync(cargoTomlPath, "utf8");
|
42
|
+
const parsedCargoToml = parse(cargoToml);
|
43
|
+
if (!parsedCargoToml.dependencies?.["stylus-sdk"]) {
|
44
|
+
spinner.fail("Error: Not a Stylus project. Missing stylus-sdk dependency.");
|
45
|
+
process.exit(1);
|
46
|
+
}
|
47
|
+
spinner.succeed("Stylus project detected.");
|
48
|
+
// Step 2: Run stylus command to generate initcode
|
49
|
+
spinner.start("Generating initcode...");
|
50
|
+
const initcodeResult = spawnSync("cargo", ["stylus", "get-initcode"], {
|
51
|
+
encoding: "utf-8",
|
52
|
+
});
|
53
|
+
if (initcodeResult.status !== 0) {
|
54
|
+
spinner.fail("Failed to generate initcode.");
|
55
|
+
process.exit(1);
|
56
|
+
}
|
57
|
+
const initcode = extractBytecode(initcodeResult.stdout);
|
58
|
+
if (!initcode) {
|
59
|
+
spinner.fail("Failed to generate initcode.");
|
60
|
+
process.exit(1);
|
61
|
+
}
|
62
|
+
spinner.succeed("Initcode generated.");
|
63
|
+
// Step 3: Run stylus command to generate abi
|
64
|
+
spinner.start("Generating ABI...");
|
65
|
+
const abiResult = spawnSync("cargo", ["stylus", "export-abi", "--json"], {
|
66
|
+
encoding: "utf-8",
|
67
|
+
});
|
68
|
+
if (abiResult.status !== 0) {
|
69
|
+
spinner.fail("Failed to generate ABI.");
|
70
|
+
process.exit(1);
|
71
|
+
}
|
72
|
+
const abiContent = abiResult.stdout.trim();
|
73
|
+
if (!abiContent) {
|
74
|
+
spinner.fail("Failed to generate ABI.");
|
75
|
+
process.exit(1);
|
76
|
+
}
|
77
|
+
spinner.succeed("ABI generated.");
|
78
|
+
// Step 4: Process the output
|
79
|
+
const contractName = extractContractNameFromExportAbi(abiContent);
|
80
|
+
if (!contractName) {
|
81
|
+
spinner.fail("Error: Could not determine contract name from ABI output.");
|
82
|
+
process.exit(1);
|
83
|
+
}
|
84
|
+
let cleanedAbi = "";
|
85
|
+
try {
|
86
|
+
const jsonMatch = abiContent.match(/\[.*\]/s);
|
87
|
+
if (jsonMatch) {
|
88
|
+
cleanedAbi = jsonMatch[0];
|
89
|
+
}
|
90
|
+
else {
|
91
|
+
throw new Error("No valid JSON ABI found in the file.");
|
92
|
+
}
|
93
|
+
}
|
94
|
+
catch (error) {
|
95
|
+
spinner.fail("Error: ABI file contains invalid format.");
|
96
|
+
console.error(error);
|
97
|
+
process.exit(1);
|
98
|
+
}
|
99
|
+
const metadata = {
|
100
|
+
compiler: {},
|
101
|
+
language: "rust",
|
102
|
+
output: {
|
103
|
+
abi: JSON.parse(cleanedAbi),
|
104
|
+
devdoc: {},
|
105
|
+
userdoc: {},
|
106
|
+
},
|
107
|
+
settings: {
|
108
|
+
compilationTarget: {
|
109
|
+
"src/main.rs": contractName,
|
110
|
+
},
|
111
|
+
},
|
112
|
+
sources: {},
|
113
|
+
};
|
114
|
+
spinner.succeed("Stylus contract exported successfully.");
|
115
|
+
// Step 5: Upload to IPFS
|
116
|
+
spinner.start("Uploading to IPFS...");
|
117
|
+
const client = createThirdwebClient({
|
118
|
+
secretKey,
|
119
|
+
});
|
120
|
+
const metadataUri = await upload({
|
121
|
+
client,
|
122
|
+
files: [metadata],
|
123
|
+
});
|
124
|
+
const bytecodeUri = await upload({
|
125
|
+
client,
|
126
|
+
files: [initcode],
|
127
|
+
});
|
128
|
+
const uri = await upload({
|
129
|
+
client,
|
130
|
+
files: [
|
131
|
+
{
|
132
|
+
name: contractName,
|
133
|
+
metadataUri,
|
134
|
+
bytecodeUri,
|
135
|
+
analytics: {
|
136
|
+
command: "publish-stylus",
|
137
|
+
contract_name: contractName,
|
138
|
+
cli_version: "",
|
139
|
+
project_type: "stylus",
|
140
|
+
},
|
141
|
+
compilers: {
|
142
|
+
stylus: [
|
143
|
+
{ compilerVersion: "", evmVersion: "", metadataUri, bytecodeUri },
|
144
|
+
],
|
145
|
+
},
|
146
|
+
},
|
147
|
+
],
|
148
|
+
});
|
149
|
+
spinner.succeed("Upload complete");
|
150
|
+
return uri;
|
151
|
+
}
|
152
|
+
catch (error) {
|
153
|
+
spinner.fail(`Error: ${error}`);
|
154
|
+
process.exit(1);
|
155
|
+
}
|
156
|
+
}
|
157
|
+
function extractContractNameFromExportAbi(abiRawOutput) {
|
158
|
+
const match = abiRawOutput.match(/<stdin>:(I[A-Za-z0-9_]+)/);
|
159
|
+
if (match?.[1]) {
|
160
|
+
return match[1].replace(/^I/, "");
|
161
|
+
}
|
162
|
+
return null;
|
163
|
+
}
|
164
|
+
function getUrl(hash, command) {
|
165
|
+
const url = new URL(`${THIRDWEB_URL}/contracts/${command}/${encodeURIComponent(hash.replace("ipfs://", ""))}`);
|
166
|
+
return url;
|
167
|
+
}
|
168
|
+
function extractBytecode(rawOutput) {
|
169
|
+
const hexStart = rawOutput.indexOf("7f000000");
|
170
|
+
if (hexStart === -1) {
|
171
|
+
throw new Error("Could not find start of bytecode");
|
172
|
+
}
|
173
|
+
return rawOutput.slice(hexStart).trim();
|
174
|
+
}
|
175
|
+
//# sourceMappingURL=builder.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../../../../src/cli/commands/stylus/builder.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,46 @@
|
|
1
|
+
import { spawnSync } from "node:child_process";
|
2
|
+
import ora from "ora";
|
3
|
+
import prompts from "prompts";
|
4
|
+
export async function createStylusProject() {
|
5
|
+
const spinner = ora();
|
6
|
+
// Step 1: Ensure cargo is installed
|
7
|
+
const cargoCheck = spawnSync("cargo", ["--version"]);
|
8
|
+
if (cargoCheck.status !== 0) {
|
9
|
+
console.error("Error: `cargo` is not installed");
|
10
|
+
process.exit(1);
|
11
|
+
}
|
12
|
+
// Step 2: Install stylus etc.
|
13
|
+
spinner.start("Installing Stylus...");
|
14
|
+
const install = spawnSync("cargo", ["install", "--force", "cargo-stylus"], {
|
15
|
+
stdio: "inherit",
|
16
|
+
});
|
17
|
+
if (install.status !== 0) {
|
18
|
+
spinner.fail("Failed to install Stylus.");
|
19
|
+
process.exit(1);
|
20
|
+
}
|
21
|
+
spinner.succeed("Stylus installed.");
|
22
|
+
spawnSync("rustup", ["default", "1.83"], {
|
23
|
+
stdio: "inherit",
|
24
|
+
});
|
25
|
+
spawnSync("rustup", ["target", "add", "wasm32-unknown-unknown"], {
|
26
|
+
stdio: "inherit",
|
27
|
+
});
|
28
|
+
// Step 3: Create the project
|
29
|
+
const { projectName } = await prompts({
|
30
|
+
type: "text",
|
31
|
+
name: "projectName",
|
32
|
+
message: "Project name:",
|
33
|
+
initial: "my-stylus-project",
|
34
|
+
});
|
35
|
+
spinner.start(`Creating new Stylus project: ${projectName}...`);
|
36
|
+
const newProject = spawnSync("cargo", ["stylus", "new", projectName], {
|
37
|
+
stdio: "inherit",
|
38
|
+
});
|
39
|
+
if (newProject.status !== 0) {
|
40
|
+
spinner.fail("Failed to create Stylus project.");
|
41
|
+
process.exit(1);
|
42
|
+
}
|
43
|
+
spinner.succeed("Project created successfully.");
|
44
|
+
console.log(`\n✅ Done! cd into your project: ${projectName}`);
|
45
|
+
}
|
46
|
+
//# sourceMappingURL=create.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../../src/cli/commands/stylus/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC;IAEtB,oCAAoC;IACpC,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IACrD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,8BAA8B;IAC9B,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;IACtC,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,cAAc,CAAC,EAAE;QACzE,KAAK,EAAE,SAAS;KACjB,CAAC,CAAC;IACH,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAErC,SAAS,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE;QACvC,KAAK,EAAE,SAAS;KACjB,CAAC,CAAC;IACH,SAAS,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,wBAAwB,CAAC,EAAE;QAC/D,KAAK,EAAE,SAAS;KACjB,CAAC,CAAC;IAEH,6BAA6B;IAC7B,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,OAAO,CAAC;QACpC,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,eAAe;QACxB,OAAO,EAAE,mBAAmB;KAC7B,CAAC,CAAC;IACH,OAAO,CAAC,KAAK,CAAC,gCAAgC,WAAW,KAAK,CAAC,CAAC;IAChE,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,WAAW,CAAC,EAAE;QACpE,KAAK,EAAE,SAAS;KACjB,CAAC,CAAC;IACH,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;IAEjD,OAAO,CAAC,GAAG,CAAC,mCAAmC,WAAW,EAAE,CAAC,CAAC;AAChE,CAAC"}
|
@@ -32,7 +32,7 @@ export function prepareDeterministicDeployTransaction(options) {
|
|
32
32
|
}),
|
33
33
|
data: async () => {
|
34
34
|
const infraContractInfo = await computeDeploymentInfoFromContractId(options);
|
35
|
-
return infraContractInfo.
|
35
|
+
return infraContractInfo.initCalldata;
|
36
36
|
},
|
37
37
|
});
|
38
38
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"deploy-deterministic.js","sourceRoot":"","sources":["../../../../src/contract/deployment/deploy-deterministic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAC9E,OAAO,EAAE,mCAAmC,EAAE,MAAM,+DAA+D,CAAC;AAGpH,OAAO,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AAe3E;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,qCAAqC,CACnD,OAAgC;IAEhC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IAClC,OAAO,kBAAkB,CAAC;QACxB,MAAM;QACN,KAAK;QACL,EAAE,EAAE,GAAG,EAAE,CACP,4BAA4B,CAAC;YAC3B,MAAM;YACN,KAAK;SACN,CAAC;QACJ,IAAI,EAAE,KAAK,IAAI,EAAE;YACf,MAAM,iBAAiB,GACrB,MAAM,mCAAmC,CAAC,OAAO,CAAC,CAAC;YACrD,OAAO,iBAAiB,CAAC,
|
1
|
+
{"version":3,"file":"deploy-deterministic.js","sourceRoot":"","sources":["../../../../src/contract/deployment/deploy-deterministic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAC9E,OAAO,EAAE,mCAAmC,EAAE,MAAM,+DAA+D,CAAC;AAGpH,OAAO,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AAe3E;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,qCAAqC,CACnD,OAAgC;IAEhC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IAClC,OAAO,kBAAkB,CAAC;QACxB,MAAM;QACN,KAAK;QACL,EAAE,EAAE,GAAG,EAAE,CACP,4BAA4B,CAAC;YAC3B,MAAM;YACN,KAAK;SACN,CAAC;QACJ,IAAI,EAAE,KAAK,IAAI,EAAE;YACf,MAAM,iBAAiB,GACrB,MAAM,mCAAmC,CAAC,OAAO,CAAC,CAAC;YACrD,OAAO,iBAAiB,CAAC,YAAY,CAAC;QACxC,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|