diff --git a/.changeset/tender-bags-sin.md b/.changeset/tender-bags-sin.md new file mode 100644 index 0000000000..2dd6b45a7c --- /dev/null +++ b/.changeset/tender-bags-sin.md @@ -0,0 +1,6 @@ +--- +"@fuel-ts/abi-coder": patch +"forc-bin": patch +--- + +Adapted to forc v0.28.0+ with respect to vectors now using an untyped raw ptr instead of a u64 for the vec ptr. diff --git a/packages/abi-coder/src/abi-coder.test.ts b/packages/abi-coder/src/abi-coder.test.ts index 0f44e9cb43..1c011f540a 100644 --- a/packages/abi-coder/src/abi-coder.test.ts +++ b/packages/abi-coder/src/abi-coder.test.ts @@ -178,7 +178,7 @@ describe('AbiCoder', () => { components: [ { name: 'ptr', - type: 'u64', + type: 'raw untyped ptr', isParamType: true, }, { @@ -238,7 +238,7 @@ describe('AbiCoder', () => { components: [ { name: 'ptr', - type: 'u64', + type: 'raw untyped ptr', isParamType: true, }, { @@ -300,7 +300,7 @@ describe('AbiCoder', () => { components: [ { name: 'ptr', - type: 'u64', + type: 'raw untyped ptr', isParamType: true, }, { diff --git a/packages/abi-coder/src/abi-coder.ts b/packages/abi-coder/src/abi-coder.ts index 36bdb3767f..8b886e3be9 100644 --- a/packages/abi-coder/src/abi-coder.ts +++ b/packages/abi-coder/src/abi-coder.ts @@ -43,6 +43,7 @@ export default class AbiCoder { case 'u32': return new NumberCoder(param.type); case 'u64': + case 'raw untyped ptr': return new U64Coder(); case 'bool': return new BooleanCoder(); diff --git a/packages/abi-coder/src/fragments/param-type.ts b/packages/abi-coder/src/fragments/param-type.ts index daf2dc894c..7ee6777635 100644 --- a/packages/abi-coder/src/fragments/param-type.ts +++ b/packages/abi-coder/src/fragments/param-type.ts @@ -70,6 +70,10 @@ export class ParamType implements ParamTypeProps { getSignatureContent(): string { const type = this.type || ''; + if (type === 'raw untyped ptr') { + return 'rawptr'; + } + const arrayMatch = arrayRegEx.exec(type)?.groups; if (arrayMatch) { return `[${this.components ? this.components[0].getSighash() : arrayMatch.item};${ diff --git a/packages/forc-bin/package.json b/packages/forc-bin/package.json index 1be80cca26..c00ac0db82 100644 --- a/packages/forc-bin/package.json +++ b/packages/forc-bin/package.json @@ -28,7 +28,7 @@ "forc": "./forc.js" }, "config": { - "forcVersion": "0.26.0" + "forcVersion": "0.28.1" }, "dependencies": { "node-fetch": "^2.6.7", diff --git a/packages/fuel-gauge/test-projects/coverage-contract/src/main.sw b/packages/fuel-gauge/test-projects/coverage-contract/src/main.sw index 8fe31c9350..68255fd128 100644 --- a/packages/fuel-gauge/test-projects/coverage-contract/src/main.sw +++ b/packages/fuel-gauge/test-projects/coverage-contract/src/main.sw @@ -8,7 +8,6 @@ use std::vec::Vec; use std::option::Option; use std::assert::assert; use std::logging::log; -use std::mem::addr_of; pub struct U8Struct { i: u8, @@ -154,7 +153,7 @@ impl CoverageContract for Contract { log("vector.len"); log(vector.len); log("addr_of vector"); - log(addr_of(vector)); + log(__addr_of(vector)); true }, }