Skip to content

Commit 8c125bd

Browse files
authored
feat: upgrade Taquito SDK from v20 to v24.2 (#947)
- Bump all @taquito/* packages to ^24.2.0 - Remove @airgap/beacon-sdk and @airgap/beacon-types (replaced by @ecadlabs/beacon-types) - Migrate contract.methods to contract.methodsObject (removed in v23+) - Convert propose() calls from positional args to named object params - Rename bytes2Char to bytesToString (@taquito/utils) - Alias MichelsonV1Expression for MichelineMichelsonV1Expression rename - Remove unused encodePubKey import - Add process/browser polyfill and vm:false webpack fallback - Fix ESM fullySpecified resolution for process module
1 parent 9098f70 commit 8c125bd

13 files changed

Lines changed: 303 additions & 305 deletions

File tree

craco.config.js

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,26 @@ module.exports = {
1717
stream: require.resolve("stream-browserify/"),
1818
url: require.resolve("url/"),
1919
util: require.resolve("util/"),
20+
vm: false,
2021
fs: false,
2122
};
2223

24+
// Fix ESM modules that import "process/browser" without .js extension
25+
config.resolve.alias = {
26+
...(config.resolve.alias || {}),
27+
"process/browser": require.resolve("process/browser"),
28+
};
29+
30+
// Handle fully-specified ESM imports for process
31+
config.module = config.module || {};
32+
config.module.rules = config.module.rules || [];
33+
config.module.rules.push({
34+
test: /\.m?js$/,
35+
resolve: {
36+
fullySpecified: false,
37+
},
38+
});
39+
2340
// persistent cache for faster rebuilds
2441
config.cache = {
2542
type: "filesystem",
@@ -28,6 +45,11 @@ module.exports = {
2845

2946
return config;
3047
},
31-
plugins: [new ProvidePlugin({ Buffer: ["buffer", "Buffer"] })],
48+
plugins: [
49+
new ProvidePlugin({
50+
Buffer: ["buffer", "Buffer"],
51+
process: "process/browser",
52+
}),
53+
],
3254
},
3355
};

package.json

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,6 @@
1919
"prepare": "husky install"
2020
},
2121
"dependencies": {
22-
"@airgap/beacon-sdk": "4.7.0",
23-
"@airgap/beacon-types": "4.7.0",
2422
"@craco/craco": "^7.1.0",
2523
"@emotion/react": "^11.11.1",
2624
"@emotion/styled": "^11.11.0",
@@ -34,12 +32,12 @@
3432
"@mui/icons-material": "^5.14.14",
3533
"@mui/material": "^5.14.14",
3634
"@tanstack/react-query": "^5.59.13",
37-
"@taquito/beacon-wallet": "^20.0.0",
38-
"@taquito/signer": "^20.0.0",
39-
"@taquito/taquito": "^20.0.0",
40-
"@taquito/tzip12": "^20.0.0",
41-
"@taquito/tzip16": "^20.0.0",
42-
"@taquito/utils": "^20.0.0",
35+
"@taquito/beacon-wallet": "^24.2.0",
36+
"@taquito/signer": "^24.2.0",
37+
"@taquito/taquito": "^24.2.0",
38+
"@taquito/tzip12": "^24.2.0",
39+
"@taquito/tzip16": "^24.2.0",
40+
"@taquito/utils": "^24.2.0",
4341
"@types/dompurify": "^3.2.0",
4442
"@types/prismjs": "^1.26.0",
4543
"@types/react-paginate": "^7.1.2",

src/modules/explorer/components/ArbitraryContractInteractionForm.tsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -496,11 +496,11 @@ const ContractInteractionForm = ({
496496
daoDetails?.data?.token?.decimals as number
497497
)
498498

499-
const contractMethod = contract.methods.propose(
500-
await tezos.wallet.pkh(),
501-
frozenToken,
502-
finalPackedDataBytes
503-
)
499+
const contractMethod = contract.methodsObject.propose({
500+
from: await tezos.wallet.pkh(),
501+
frozen_token: frozenToken,
502+
proposal_metadata: finalPackedDataBytes
503+
})
504504

505505
const result = await contractMethod.send()
506506

src/modules/lite/explorer/components/DownloadCsvFile.tsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { Choice } from "models/Choice"
55
import { mkConfig, generateCsv, download } from "export-to-csv"
66
import { useNotification } from "modules/lite/components/hooks/useNotification"
77
import BigNumber from "bignumber.js"
8-
import { bytes2Char } from "@taquito/utils"
8+
import { bytesToString } from "@taquito/utils"
99
import dayjs from "dayjs"
1010

1111
interface GroupedVotes {
@@ -45,7 +45,9 @@ export const DownloadCsvFile: React.FC<DownloadCsvFileProps> = ({ data, pollId,
4545
signature: item.options[0].signature,
4646
ipfsStorage: item.options[0].cidLink,
4747
timestamp:
48-
item.options[0] && item.options[0].payloadBytes ? bytes2Char(item.options[0].payloadBytes).split(" ")[4] : ""
48+
item.options[0] && item.options[0].payloadBytes
49+
? bytesToString(item.options[0].payloadBytes).split(" ")[4]
50+
: ""
4951
}
5052
return arr.push(formattedVote)
5153
})

src/services/aci/endpoint.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
import { TezosToolkit } from "@taquito/taquito"
2-
import { validateAddress, encodePubKey, encodeKey, encodeKeyHash } from "@taquito/utils"
2+
import { validateAddress, encodeKey, encodeKeyHash } from "@taquito/utils"
33
import { TokenSchema, Schema } from "@taquito/michelson-encoder"
44
import { rpcNodes } from "services/beacon"
55
import { assertNever } from "assert-never"
66
import type { token, tokenValueType } from "."
7-
import type { MichelineMichelsonV1Expression } from "@airgap/beacon-sdk"
7+
import type { MichelsonV1Expression as MichelineMichelsonV1Expression } from "@taquito/rpc"
88

99
function getFieldName(id: any): string {
1010
return `input-${id.toString()}`

src/services/aci/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { assertNever } from "assert-never"
66
import { BigNumber } from "bignumber.js"
77

88
import { Schema } from "@taquito/michelson-encoder"
9-
import type { MichelineMichelsonV1Expression } from "@airgap/beacon-sdk"
9+
import type { MichelsonV1Expression as MichelineMichelsonV1Expression } from "@taquito/rpc"
1010
import type { TokenSchema } from "@taquito/michelson-encoder"
1111

1212
type version = "1.0.0" | "unknown version"

src/services/beacon/utils.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { NetworkType } from "@airgap/beacon-types"
1+
import { NetworkType } from "@ecadlabs/beacon-types"
22
import { capitalize } from "@material-ui/core"
33
import { BeaconWallet } from "@taquito/beacon-wallet"
44
import { MichelCodecPacker, TezosToolkit } from "@taquito/taquito"

src/services/contracts/baseDAO/class.ts

Lines changed: 26 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ export abstract class BaseDAO {
122122
public static transfer_ownership = async (newOwner: string, address: string, tezos: TezosToolkit) => {
123123
const contract = await getContract(tezos, address)
124124

125-
return await contract.methods.transfer_ownership(newOwner).send()
125+
return await contract.methodsObject.transfer_ownership(newOwner).send()
126126
}
127127

128128
protected constructor(public data: BaseDAOData) {}
@@ -132,26 +132,26 @@ export abstract class BaseDAO {
132132
const initialBatch = await tezos.wallet.batch()
133133

134134
const batch = expiredProposalIds.reduce((prev, current) => {
135-
return prev.withContractCall(daoContract.methods.drop_proposal(current))
135+
return prev.withContractCall(daoContract.methodsObject.drop_proposal(current))
136136
}, initialBatch)
137137

138-
batch.withContractCall(daoContract.methods.flush(numerOfProposalsToFlush))
138+
batch.withContractCall(daoContract.methodsObject.flush(numerOfProposalsToFlush))
139139

140140
return await batch.send()
141141
}
142142

143143
public dropProposal = async (proposalId: string, tezos: TezosToolkit) => {
144144
const contract = await getContract(tezos, this.data.address)
145145

146-
return await contract.methods.drop_proposal(proposalId).send()
146+
return await contract.methodsObject.drop_proposal(proposalId).send()
147147
}
148148

149149
public dropAllExpired = async (expiredProposalIds: string[], tezos: TezosToolkit) => {
150150
const daoContract = await getContract(tezos, this.data.address)
151151
const initialBatch = await tezos.wallet.batch()
152152

153153
const batch = expiredProposalIds.reduce((prev, current) => {
154-
return prev.withContractCall(daoContract.methods.drop_proposal(current))
154+
return prev.withContractCall(daoContract.methodsObject.drop_proposal(current))
155155
}, initialBatch)
156156

157157
return await batch.send()
@@ -162,7 +162,7 @@ export abstract class BaseDAO {
162162
const initialBatch = await tezos.wallet.batch()
163163

164164
const batch = proposals.reduce((prev, current) => {
165-
return prev.withContractCall(daoContract.methods.unstake_vote([current]))
165+
return prev.withContractCall(daoContract.methodsObject.unstake_vote([current]))
166166
}, initialBatch)
167167

168168
return await batch.send()
@@ -171,10 +171,15 @@ export abstract class BaseDAO {
171171
public sendXtz = async (xtzAmount: BigNumber, tezos: TezosToolkit) => {
172172
const contract = await getContract(tezos, this.data.address)
173173

174-
return await contract.methods.callCustom("receive_xtz", "").send({
175-
amount: xtzToMutez(xtzAmount).toNumber(),
176-
mutez: true
177-
})
174+
return await contract.methodsObject
175+
.callCustom({
176+
0: "receive_xtz",
177+
1: ""
178+
})
179+
.send({
180+
amount: xtzToMutez(xtzAmount).toNumber(),
181+
mutez: true
182+
})
178183
}
179184

180185
public vote = async ({
@@ -189,7 +194,7 @@ export abstract class BaseDAO {
189194
tezos: TezosToolkit
190195
}) => {
191196
const contract = await getContract(tezos, this.data.address)
192-
return await contract.methods
197+
return await contract.methodsObject
193198
.vote([
194199
{
195200
argument: {
@@ -210,7 +215,7 @@ export abstract class BaseDAO {
210215
const batch = await tezos.wallet
211216
.batch()
212217
.withContractCall(
213-
govTokenContract.methods.update_operators([
218+
govTokenContract.methodsObject.update_operators([
214219
{
215220
add_operator: {
216221
owner: await tezos.wallet.pkh(),
@@ -220,9 +225,9 @@ export abstract class BaseDAO {
220225
}
221226
])
222227
)
223-
.withContractCall(daoContract.methods.freeze(formatUnits(amount, tokenMetadata.decimals).toString()))
228+
.withContractCall(daoContract.methodsObject.freeze(formatUnits(amount, tokenMetadata.decimals).toString()))
224229
.withContractCall(
225-
govTokenContract.methods.update_operators([
230+
govTokenContract.methodsObject.update_operators([
226231
{
227232
remove_operator: {
228233
owner: await tezos.wallet.pkh(),
@@ -239,13 +244,13 @@ export abstract class BaseDAO {
239244
public unfreeze = async (amount: BigNumber, tezos: TezosToolkit) => {
240245
const contract = await getContract(tezos, this.data.address)
241246

242-
return await contract.methods.unfreeze(formatUnits(amount, this.data.token.decimals).toString()).send()
247+
return await contract.methodsObject.unfreeze(formatUnits(amount, this.data.token.decimals).toString()).send()
243248
}
244249

245250
public unstakeVotes = async (proposalId: string, tezos: TezosToolkit) => {
246251
const contract = await getContract(tezos, this.data.address)
247252

248-
return await contract.methods.unstake_vote([proposalId]).send()
253+
return await contract.methodsObject.unstake_vote([proposalId]).send()
249254
}
250255

251256
static async encodeProposalMetadata(dataToEncode: any, michelsonSchemaString: string, tezos: TezosToolkit) {
@@ -330,11 +335,11 @@ export abstract class BaseDAO {
330335
proposal_meta_michelson_type
331336
)
332337

333-
const contractMethod = contract.methods.propose(
334-
await tezos.wallet.pkh(),
335-
formatUnits(new BigNumber(this.data.extra.frozen_extra_value), this.data.token.decimals),
336-
proposalMetadata.bytes
337-
)
338+
const contractMethod = contract.methodsObject.propose({
339+
from: await tezos.wallet.pkh(),
340+
frozen_token: formatUnits(new BigNumber(this.data.extra.frozen_extra_value), this.data.token.decimals),
341+
proposal_metadata: proposalMetadata.bytes
342+
})
338343

339344
return await contractMethod.send()
340345
}

src/services/contracts/baseDAO/lambdaDAO/index.ts

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -131,11 +131,11 @@ export class LambdaDAO extends BaseDAO {
131131
proposal_meta_michelson_type
132132
)
133133

134-
const contractMethod = contract.methods.propose(
135-
await tezos.wallet.pkh(),
136-
formatUnits(new BigNumber(this.data.extra.frozen_extra_value), this.data.token.decimals),
137-
proposalMetadata.bytes
138-
)
134+
const contractMethod = contract.methodsObject.propose({
135+
from: await tezos.wallet.pkh(),
136+
frozen_token: formatUnits(new BigNumber(this.data.extra.frozen_extra_value), this.data.token.decimals),
137+
proposal_metadata: proposalMetadata.bytes
138+
})
139139

140140
return await contractMethod.send()
141141
}
@@ -162,11 +162,11 @@ export class LambdaDAO extends BaseDAO {
162162
proposal_meta_michelson_type
163163
)
164164

165-
const contractMethod = contract.methods.propose(
166-
await tezos.wallet.pkh(),
167-
formatUnits(new BigNumber(this.data.extra.frozen_extra_value), this.data.token.decimals),
168-
proposalMetadata.bytes
169-
)
165+
const contractMethod = contract.methodsObject.propose({
166+
from: await tezos.wallet.pkh(),
167+
frozen_token: formatUnits(new BigNumber(this.data.extra.frozen_extra_value), this.data.token.decimals),
168+
proposal_metadata: proposalMetadata.bytes
169+
})
170170

171171
return await contractMethod.send()
172172
}
@@ -201,11 +201,11 @@ export class LambdaDAO extends BaseDAO {
201201
proposal_meta_michelson_type
202202
)
203203

204-
const contractMethod = contract.methods.propose(
205-
await tezos.wallet.pkh(),
206-
formatUnits(new BigNumber(this.data.extra.frozen_extra_value), this.data.token.decimals),
207-
proposalMetadata.bytes
208-
)
204+
const contractMethod = contract.methodsObject.propose({
205+
from: await tezos.wallet.pkh(),
206+
frozen_token: formatUnits(new BigNumber(this.data.extra.frozen_extra_value), this.data.token.decimals),
207+
proposal_metadata: proposalMetadata.bytes
208+
})
209209

210210
return await contractMethod.send()
211211
}
@@ -244,11 +244,11 @@ export class LambdaDAO extends BaseDAO {
244244
proposal_meta_michelson_type
245245
)
246246

247-
const contractMethod = contract.methods.propose(
248-
await tezos.wallet.pkh(),
249-
formatUnits(new BigNumber(this.data.extra.frozen_extra_value), this.data.token.decimals),
250-
proposalMetadata.bytes
251-
)
247+
const contractMethod = contract.methodsObject.propose({
248+
from: await tezos.wallet.pkh(),
249+
frozen_token: formatUnits(new BigNumber(this.data.extra.frozen_extra_value), this.data.token.decimals),
250+
proposal_metadata: proposalMetadata.bytes
251+
})
252252

253253
return await contractMethod.send()
254254
}
@@ -258,11 +258,11 @@ export class LambdaDAO extends BaseDAO {
258258

259259
const proposalMetadata = await BaseDAO.encodeLambdaAddMetadata(data, proposelambda, tezos)
260260

261-
const contractMethod = contract.methods.propose(
262-
await tezos.wallet.pkh(),
263-
formatUnits(new BigNumber(this.data.extra.frozen_extra_value), this.data.token.decimals),
264-
proposalMetadata.bytes
265-
)
261+
const contractMethod = contract.methodsObject.propose({
262+
from: await tezos.wallet.pkh(),
263+
frozen_token: formatUnits(new BigNumber(this.data.extra.frozen_extra_value), this.data.token.decimals),
264+
proposal_metadata: proposalMetadata.bytes
265+
})
266266

267267
return await contractMethod.send()
268268
}
@@ -284,12 +284,12 @@ export class LambdaDAO extends BaseDAO {
284284
type: michelsonType as Expr
285285
})
286286

287-
const contractMethod = contract.methods.propose(
288-
await tezos.wallet.pkh(),
287+
const contractMethod = contract.methodsObject.propose({
288+
from: await tezos.wallet.pkh(),
289289
// frozen_extra_value is 0 for lambda remove
290-
formatUnits(new BigNumber(this.data.extra.frozen_extra_value), this.data.token.decimals),
291-
proposalMetadata
292-
)
290+
frozen_token: formatUnits(new BigNumber(this.data.extra.frozen_extra_value), this.data.token.decimals),
291+
proposal_metadata: proposalMetadata
292+
})
293293

294294
return await contractMethod.send()
295295
}

src/services/contracts/token/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ export const setDelegate = async ({
107107
}) => {
108108
try {
109109
const contract = await getContract(tezos, tokenAddress)
110-
return contract.methods.set_delegate(delegateAddress).send()
110+
return contract.methodsObject.set_delegate(delegateAddress).send()
111111
} catch (e) {
112112
console.error(e)
113113
return e

0 commit comments

Comments
 (0)