Skip to content

Commit 41423e5

Browse files
committed
add owner in the args
1 parent 7093677 commit 41423e5

File tree

2 files changed

+16
-15
lines changed

2 files changed

+16
-15
lines changed

src/deviceNFT/DeviceNFTFactory.sol

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@ contract DeviceNFTFactory {
1313
IMPLEMENTATION = _implementation;
1414
}
1515

16-
function createDeviceNFT(string memory name, string memory symbol, address operator) external returns (address) {
16+
function createDeviceNFT(string memory name, string memory symbol, address owner, address operator) external returns (address) {
1717
address clone = Clones.clone(IMPLEMENTATION);
1818

19-
DeviceNFTTemplate(clone).initialize(name, symbol, msg.sender, operator);
19+
DeviceNFTTemplate(clone).initialize(name, symbol, owner, operator);
2020

2121
emit DeviceNFTContractCreated(clone);
2222

test/DeviceNFTFactory.t.sol

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ contract DeviceNFTFactoryTest is Test {
4141

4242
function test_CreateDeviceNFT() public {
4343
vm.prank(user1);
44-
address cloneAddress = factory.createDeviceNFT(NAME1, SYMBOL1, operator1);
44+
address cloneAddress = factory.createDeviceNFT(NAME1, SYMBOL1, user1, operator1);
4545

4646
// Verify clone was created
4747
assertTrue(cloneAddress != address(0));
@@ -58,11 +58,11 @@ contract DeviceNFTFactoryTest is Test {
5858
function test_CreateMultipleDeviceNFTs() public {
5959
// Create first device NFT
6060
vm.prank(user1);
61-
address clone1 = factory.createDeviceNFT(NAME1, SYMBOL1, operator1);
61+
address clone1 = factory.createDeviceNFT(NAME1, SYMBOL1, user1, operator1);
6262

6363
// Create second device NFT
6464
vm.prank(user2);
65-
address clone2 = factory.createDeviceNFT(NAME2, SYMBOL2, operator2);
65+
address clone2 = factory.createDeviceNFT(NAME2, SYMBOL2, user2, operator2);
6666

6767
// Verify both clones are different
6868
assertTrue(clone1 != clone2);
@@ -87,11 +87,11 @@ contract DeviceNFTFactoryTest is Test {
8787
function test_CreateDeviceNFTWithSameParameters() public {
8888
// Create first device NFT
8989
vm.prank(user1);
90-
address clone1 = factory.createDeviceNFT(NAME1, SYMBOL1, operator1);
90+
address clone1 = factory.createDeviceNFT(NAME1, SYMBOL1, user1, operator1);
9191

9292
// Create second device NFT with same parameters but different sender
9393
vm.prank(user2);
94-
address clone2 = factory.createDeviceNFT(NAME1, SYMBOL1, operator1);
94+
address clone2 = factory.createDeviceNFT(NAME1, SYMBOL1, user2, operator1);
9595

9696
// Clones should be different addresses
9797
assertTrue(clone1 != clone2);
@@ -110,7 +110,7 @@ contract DeviceNFTFactoryTest is Test {
110110

111111
function test_CreateDeviceNFTWithEmptyStrings() public {
112112
vm.prank(user1);
113-
address clone = factory.createDeviceNFT("", "", operator1);
113+
address clone = factory.createDeviceNFT("", "", user1, operator1);
114114

115115
DeviceNFTTemplate deviceNFT = DeviceNFTTemplate(clone);
116116
assertEq(deviceNFT.name(), "");
@@ -121,7 +121,7 @@ contract DeviceNFTFactoryTest is Test {
121121

122122
function test_CreateDeviceNFTWithZeroOperator() public {
123123
vm.prank(user1);
124-
address clone = factory.createDeviceNFT(NAME1, SYMBOL1, address(0));
124+
address clone = factory.createDeviceNFT(NAME1, SYMBOL1, user1, address(0));
125125

126126
DeviceNFTTemplate deviceNFT = DeviceNFTTemplate(clone);
127127
assertEq(deviceNFT.operator(), address(0));
@@ -131,10 +131,10 @@ contract DeviceNFTFactoryTest is Test {
131131
function test_CloneIndependence() public {
132132
// Create two clones
133133
vm.prank(user1);
134-
address clone1 = factory.createDeviceNFT(NAME1, SYMBOL1, operator1);
134+
address clone1 = factory.createDeviceNFT(NAME1, SYMBOL1, user1, operator1);
135135

136136
vm.prank(user2);
137-
address clone2 = factory.createDeviceNFT(NAME2, SYMBOL2, operator2);
137+
address clone2 = factory.createDeviceNFT(NAME2, SYMBOL2, user2, operator2);
138138

139139
DeviceNFTTemplate deviceNFT1 = DeviceNFTTemplate(clone1);
140140
DeviceNFTTemplate deviceNFT2 = DeviceNFTTemplate(clone2);
@@ -158,7 +158,7 @@ contract DeviceNFTFactoryTest is Test {
158158

159159
function test_CloneFunctionality() public {
160160
vm.prank(user1);
161-
address cloneAddress = factory.createDeviceNFT(NAME1, SYMBOL1, operator1);
161+
address cloneAddress = factory.createDeviceNFT(NAME1, SYMBOL1, user1, operator1);
162162

163163
DeviceNFTTemplate clone = DeviceNFTTemplate(cloneAddress);
164164

@@ -204,7 +204,7 @@ contract DeviceNFTFactoryTest is Test {
204204

205205
function test_CloneCannotBeReinitializedDirectly() public {
206206
vm.prank(user1);
207-
address cloneAddress = factory.createDeviceNFT(NAME1, SYMBOL1, operator1);
207+
address cloneAddress = factory.createDeviceNFT(NAME1, SYMBOL1, user1, operator1);
208208

209209
DeviceNFTTemplate clone = DeviceNFTTemplate(cloneAddress);
210210

@@ -223,6 +223,7 @@ contract DeviceNFTFactoryTest is Test {
223223
clones[i] = factory.createDeviceNFT(
224224
string(abi.encodePacked("Device", vm.toString(i))),
225225
string(abi.encodePacked("DEV", vm.toString(i))),
226+
user1,
226227
operator1
227228
);
228229
}
@@ -254,10 +255,10 @@ contract DeviceNFTFactoryTest is Test {
254255

255256
// Create clones from both factories
256257
vm.prank(user1);
257-
address clone1 = factory.createDeviceNFT(NAME1, SYMBOL1, operator1);
258+
address clone1 = factory.createDeviceNFT(NAME1, SYMBOL1, user1, operator1);
258259

259260
vm.prank(user1);
260-
address clone2 = factory2.createDeviceNFT(NAME1, SYMBOL1, operator1);
261+
address clone2 = factory2.createDeviceNFT(NAME1, SYMBOL1, user1, operator1);
261262

262263
// Clones should be different
263264
assertTrue(clone1 != clone2);

0 commit comments

Comments
 (0)