Skip to content

Commit a586d15

Browse files
committed
fix asset units
1 parent 60d9e64 commit a586d15

File tree

4 files changed

+27
-4
lines changed

4 files changed

+27
-4
lines changed

packages/thirdweb/src/assets/create-token-by-impl-config.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import { getContract } from "src/contract/contract.js";
21
import type { Hex } from "viem";
32
import { NATIVE_TOKEN_ADDRESS, ZERO_ADDRESS } from "../constants/addresses.js";
3+
import { getContract } from "../contract/contract.js";
44
import { parseEventLogs } from "../event/actions/parse-logs.js";
55
import { assetCreatedEvent } from "../extensions/assets/__generated__/AssetEntrypointERC20/events/AssetCreated.js";
66
import { createAssetByImplementationConfig } from "../extensions/assets/__generated__/AssetEntrypointERC20/write/createAssetByImplementationConfig.js";
@@ -10,6 +10,7 @@ import { getRpcClient } from "../rpc/rpc.js";
1010
import { sendAndConfirmTransaction } from "../transaction/actions/send-and-confirm-transaction.js";
1111
import { keccakId } from "../utils/any-evm/keccak-id.js";
1212
import { toHex } from "../utils/encoding/hex.js";
13+
import { toUnits } from "../utils/units.js";
1314
import {
1415
CreateHook,
1516
DEFAULT_MAX_SUPPLY_ERC20,
@@ -96,7 +97,10 @@ export async function createTokenByImplConfig(options: CreateTokenOptions) {
9697
createHookData: hookData,
9798
},
9899
params: {
99-
amount: params.maxSupply || DEFAULT_MAX_SUPPLY_ERC20,
100+
amount: toUnits(
101+
params.maxSupply.toString() || DEFAULT_MAX_SUPPLY_ERC20.toString(),
102+
18,
103+
),
100104
referrer: ZERO_ADDRESS,
101105
salt,
102106
data: encodedInitData,

packages/thirdweb/src/assets/create-token.test.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { TEST_CLIENT } from "../../test/src/test-clients.js";
44
import { TEST_ACCOUNT_A } from "../../test/src/test-wallets.js";
55
import { getContract } from "../contract/contract.js";
66
import { name } from "../extensions/common/read/name.js";
7+
import { totalSupply } from "../extensions/erc20/__generated__/IERC20/read/totalSupply.js";
78
import { createTokenByImplConfig } from "./create-token-by-impl-config.js";
89

910
describe.runIf(process.env.TW_SECRET_KEY)("create token by impl config", () => {
@@ -29,5 +30,15 @@ describe.runIf(process.env.TW_SECRET_KEY)("create token by impl config", () => {
2930
}),
3031
});
3132
expect(tokenName).to.eq("Test");
33+
34+
const supply = await totalSupply({
35+
contract: getContract({
36+
client: TEST_CLIENT,
37+
chain: ANVIL_CHAIN,
38+
address: token,
39+
}),
40+
});
41+
42+
console.log("supply: ", supply);
3243
});
3344
});

packages/thirdweb/src/assets/create-token.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { toUnits } from "src/utils/units.js";
12
import type { Hex } from "viem";
23
import { NATIVE_TOKEN_ADDRESS, ZERO_ADDRESS } from "../constants/addresses.js";
34
import { getContract } from "../contract/contract.js";
@@ -76,7 +77,10 @@ export async function createToken(options: CreateTokenOptions) {
7677
contract: entrypoint,
7778
creator,
7879
createParams: {
79-
amount: params.maxSupply || DEFAULT_MAX_SUPPLY_ERC20,
80+
amount: toUnits(
81+
params.maxSupply.toString() || DEFAULT_MAX_SUPPLY_ERC20.toString(),
82+
18,
83+
),
8084
referrer: ZERO_ADDRESS,
8185
salt,
8286
data: encodedInitData,

packages/thirdweb/src/assets/token-utils.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { NATIVE_TOKEN_ADDRESS, ZERO_ADDRESS } from "../constants/addresses.js";
44
import { encodeInitialize } from "../extensions/assets/__generated__/ERC20Asset/write/initialize.js";
55
import { upload } from "../storage/upload.js";
66
import { encodeAbiParameters } from "../utils/abi/encodeAbiParameters.js";
7+
import { toUnits } from "../utils/units.js";
78
import {
89
DEFAULT_MAX_SUPPLY_ERC20,
910
DEFAULT_POOL_FEE,
@@ -39,7 +40,10 @@ export async function encodeInitParams(options: {
3940
name: params.name,
4041
symbol: params.symbol || params.name,
4142
contractURI,
42-
maxSupply: params.maxSupply || DEFAULT_MAX_SUPPLY_ERC20,
43+
maxSupply: toUnits(
44+
params.maxSupply.toString() || DEFAULT_MAX_SUPPLY_ERC20.toString(),
45+
18,
46+
),
4347
owner: creator,
4448
});
4549
}

0 commit comments

Comments
 (0)