@coti-io/coti-contracts 1.0.3 → 1.0.4

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.
@@ -0,0 +1,15 @@
1
+ // SPDX-License-Identifier: MIT
2
+
3
+ pragma solidity ^0.8.19;
4
+
5
+ import "../../../utils/mpc/MpcCore.sol";
6
+
7
+ /**
8
+ * @dev ERC-721 token with storage based token URI management.
9
+ */
10
+ interface IPrivateERC721URIStorage {
11
+ /**
12
+ * @dev Returns the encrypted Uniform Resource Identifier (URI) for `tokenId` token.
13
+ */
14
+ function tokenURI(uint256 tokenId) external view returns (ctString memory);
15
+ }
@@ -47,6 +47,32 @@ abstract contract PrivateERC721URIStorage is IERC4906, PrivateERC721 {
47
47
  _setTokenURI(to, tokenId, gtTokenURI, true);
48
48
  }
49
49
 
50
+ /**
51
+ * @dev Sets `_tokenURI` as the tokenURI of `tokenId`.
52
+ *
53
+ */
54
+ function _setTokenURI(
55
+ address to,
56
+ uint256 tokenId,
57
+ ctString memory ctTokenURI
58
+ ) internal virtual {
59
+ gtString memory gtTokenURI = MpcCore.onBoard(ctTokenURI);
60
+
61
+ _setTokenURI(to, tokenId, gtTokenURI, true);
62
+ }
63
+
64
+ /**
65
+ * @dev Sets `_tokenURI` as the tokenURI of `tokenId`.
66
+ *
67
+ */
68
+ function _setTokenURI(
69
+ address to,
70
+ uint256 tokenId,
71
+ gtString memory gtTokenURI
72
+ ) internal virtual {
73
+ _setTokenURI(to, tokenId, gtTokenURI, true);
74
+ }
75
+
50
76
  /**
51
77
  * @dev Sets `_tokenURI` as the tokenURI of `tokenId`.
52
78
  *
@@ -61,7 +87,7 @@ abstract contract PrivateERC721URIStorage is IERC4906, PrivateERC721 {
61
87
  revert ERC721URIStorageNonMintedToken(tokenId);
62
88
  }
63
89
 
64
- utString memory utTokenURI = MpcCore.offBoardCombined(gtTokenURI, to);
90
+ utString memory utTokenURI = MpcCore.offBoardCombined(gtTokenURI, to);
65
91
 
66
92
  if (updateCiphertext) {
67
93
  _tokenURIs[tokenId] = utTokenURI;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coti-io/coti-contracts",
3
- "version": "1.0.3",
3
+ "version": "1.0.4",
4
4
  "description": "A library for smart contract development on the COTI network.",
5
5
  "author": "COTI Development",
6
6
  "repository": {
@@ -0,0 +1,100 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ import type {
5
+ BaseContract,
6
+ BigNumberish,
7
+ BytesLike,
8
+ FunctionFragment,
9
+ Result,
10
+ Interface,
11
+ ContractRunner,
12
+ ContractMethod,
13
+ Listener,
14
+ } from "ethers";
15
+ import type {
16
+ TypedContractEvent,
17
+ TypedDeferredTopicFilter,
18
+ TypedEventLog,
19
+ TypedListener,
20
+ TypedContractMethod,
21
+ } from "../../../../common";
22
+
23
+ export type CtStringStruct = { value: BigNumberish[] };
24
+
25
+ export type CtStringStructOutput = [value: bigint[]] & { value: bigint[] };
26
+
27
+ export interface IPrivateERC721URIStorageInterface extends Interface {
28
+ getFunction(nameOrSignature: "tokenURI"): FunctionFragment;
29
+
30
+ encodeFunctionData(
31
+ functionFragment: "tokenURI",
32
+ values: [BigNumberish]
33
+ ): string;
34
+
35
+ decodeFunctionResult(functionFragment: "tokenURI", data: BytesLike): Result;
36
+ }
37
+
38
+ export interface IPrivateERC721URIStorage extends BaseContract {
39
+ connect(runner?: ContractRunner | null): IPrivateERC721URIStorage;
40
+ waitForDeployment(): Promise<this>;
41
+
42
+ interface: IPrivateERC721URIStorageInterface;
43
+
44
+ queryFilter<TCEvent extends TypedContractEvent>(
45
+ event: TCEvent,
46
+ fromBlockOrBlockhash?: string | number | undefined,
47
+ toBlock?: string | number | undefined
48
+ ): Promise<Array<TypedEventLog<TCEvent>>>;
49
+ queryFilter<TCEvent extends TypedContractEvent>(
50
+ filter: TypedDeferredTopicFilter<TCEvent>,
51
+ fromBlockOrBlockhash?: string | number | undefined,
52
+ toBlock?: string | number | undefined
53
+ ): Promise<Array<TypedEventLog<TCEvent>>>;
54
+
55
+ on<TCEvent extends TypedContractEvent>(
56
+ event: TCEvent,
57
+ listener: TypedListener<TCEvent>
58
+ ): Promise<this>;
59
+ on<TCEvent extends TypedContractEvent>(
60
+ filter: TypedDeferredTopicFilter<TCEvent>,
61
+ listener: TypedListener<TCEvent>
62
+ ): Promise<this>;
63
+
64
+ once<TCEvent extends TypedContractEvent>(
65
+ event: TCEvent,
66
+ listener: TypedListener<TCEvent>
67
+ ): Promise<this>;
68
+ once<TCEvent extends TypedContractEvent>(
69
+ filter: TypedDeferredTopicFilter<TCEvent>,
70
+ listener: TypedListener<TCEvent>
71
+ ): Promise<this>;
72
+
73
+ listeners<TCEvent extends TypedContractEvent>(
74
+ event: TCEvent
75
+ ): Promise<Array<TypedListener<TCEvent>>>;
76
+ listeners(eventName?: string): Promise<Array<Listener>>;
77
+ removeAllListeners<TCEvent extends TypedContractEvent>(
78
+ event?: TCEvent
79
+ ): Promise<this>;
80
+
81
+ tokenURI: TypedContractMethod<
82
+ [tokenId: BigNumberish],
83
+ [CtStringStructOutput],
84
+ "view"
85
+ >;
86
+
87
+ getFunction<T extends ContractMethod = ContractMethod>(
88
+ key: string | FunctionFragment
89
+ ): T;
90
+
91
+ getFunction(
92
+ nameOrSignature: "tokenURI"
93
+ ): TypedContractMethod<
94
+ [tokenId: BigNumberish],
95
+ [CtStringStructOutput],
96
+ "view"
97
+ >;
98
+
99
+ filters: {};
100
+ }
@@ -1,4 +1,5 @@
1
1
  /* Autogenerated file. Do not edit manually. */
2
2
  /* tslint:disable */
3
3
  /* eslint-disable */
4
+ export type { IPrivateERC721URIStorage } from "./IPrivateERC721URIStorage";
4
5
  export type { PrivateERC721URIStorage } from "./PrivateERC721URIStorage";
@@ -575,7 +575,7 @@ const _abi = [
575
575
  ] as const;
576
576
 
577
577
  const _bytecode =
578
- "0x60806040523480156200001157600080fd5b50604051806040016040528060078152602001664578616d706c6560c81b8152506040518060400160405280600381526020016211561360ea1b81525081600090816200005f91906200011c565b5060016200006e82826200011c565b505050620001e8565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620000a257607f821691505b602082108103620000c357634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200011757600081815260208120601f850160051c81016020861015620000f25750805b601f850160051c820191505b818110156200011357828155600101620000fe565b5050505b505050565b81516001600160401b0381111562000138576200013862000077565b62000150816200014984546200008d565b84620000c9565b602080601f8311600181146200018857600084156200016f5750858301515b600019600386901b1c1916600185901b17855562000113565b600085815260208120601f198616915b82811015620001b95788860151825594840194600190910190840162000198565b5085821015620001d85787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b611fee80620001f86000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c80636352211e11610097578063a22cb46511610066578063a22cb465146101fd578063b88d4fde14610210578063c87b56dd14610223578063e985e9c51461024357600080fd5b80636352211e146101bc57806368862e1b146101cf57806370a08231146101e257806395d89b41146101f557600080fd5b8063095ea7b3116100d3578063095ea7b31461016f57806318160ddd1461018457806323b872dd1461019657806342842e0e146101a957600080fd5b806301ffc9a7146100fa57806306fdde0314610122578063081812fc14610137575b600080fd5b61010d610108366004611843565b61028c565b60405190151581526020015b60405180910390f35b61012a6102c7565b60405161011991906118c4565b61014a6101453660046118d7565b610359565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610119565b61018261017d366004611919565b61038f565b005b6007545b604051908152602001610119565b6101826101a4366004611943565b61039e565b6101826101b7366004611943565b610494565b61014a6101ca3660046118d7565b6104b4565b6101826101dd36600461197f565b6104bf565b6101886101f03660046119d4565b610537565b61012a6105b2565b61018261020b3660046119ef565b6105c1565b61018261021e366004611b78565b6105cc565b6102366102313660046118d7565b6105e3565b6040516101199190611be0565b61010d610251366004611c30565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260056020908152604080832093909416825291909152205460ff1690565b60007fffffffff00000000000000000000000000000000000000000000000000000000821615806102c157506102c182610660565b92915050565b6060600080546102d690611c63565b80601f016020809104026020016040519081016040528092919081815260200182805461030290611c63565b801561034f5780601f106103245761010080835404028352916020019161034f565b820191906000526020600020905b81548152906001019060200180831161033257829003601f168201915b5050505050905090565b6000610364826106f7565b5060008281526004602052604090205473ffffffffffffffffffffffffffffffffffffffff166102c1565b61039a828233610756565b5050565b73ffffffffffffffffffffffffffffffffffffffff82166103f3576040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600060048201526024015b60405180910390fd5b6000610400838333610763565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461048e576040517f64283d7b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff808616600483015260248201849052821660448201526064016103ea565b50505050565b6104af838383604051806020016040528060008152506105cc565b505050565b60006102c1826106f7565b6007546104cc83826107f9565b6104d73382846108aa565b6001600760008282546104ea9190611ce5565b9091555050604051819073ffffffffffffffffffffffffffffffffffffffff8516907f30385c845b448a36257a6a1716e6ad2e1bc2cbe333cde1e69fe849ad6511adfe90600090a3505050565b600073ffffffffffffffffffffffffffffffffffffffff8216610589576040517f89c62b64000000000000000000000000000000000000000000000000000000008152600060048201526024016103ea565b5073ffffffffffffffffffffffffffffffffffffffff1660009081526003602052604090205490565b6060600180546102d690611c63565b61039a3383836108cc565b6105d784848461039e565b61048e848484846109c9565b604080516020808201835260608252600084815260068252839020835160019091018054808402830186018652928201838152939491939092849284919084018282801561065057602002820191906000526020600020905b81548152602001906001019080831161063c575b5050505050815250509050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd0000000000000000000000000000000000000000000000000000000014806102c157507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316146102c1565b60008181526002602052604081205473ffffffffffffffffffffffffffffffffffffffff16806102c1576040517f7e273289000000000000000000000000000000000000000000000000000000008152600481018490526024016103ea565b6104af8383836001610bc0565b60008281526006602090815260408083208151815480850282018401845293810184815285946107d29492939284929184918401828280156107c457602002820191906000526020600020905b8154815260200190600101908083116107b0575b505050505081525050610d8b565b905060006107e1868686610e5b565b90506107f08686846000610fd8565b95945050505050565b73ffffffffffffffffffffffffffffffffffffffff8216610849576040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600060048201526024016103ea565b600061085783836000610763565b905073ffffffffffffffffffffffffffffffffffffffff8116156104af576040517f73c6ac6e000000000000000000000000000000000000000000000000000000008152600060048201526024016103ea565b60006108bd6108b883611da1565b6110d4565b905061048e8484836001610fd8565b73ffffffffffffffffffffffffffffffffffffffff8216610931576040517f5b08ba1800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff831660048201526024016103ea565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526005602090815260408083209487168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff83163b1561048e576040517f150b7a0200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84169063150b7a0290610a3e903390889087908790600401611e91565b6020604051808303816000875af1925050508015610a97575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252610a9491810190611eda565b60015b610b26573d808015610ac5576040519150601f19603f3d011682016040523d82523d6000602084013e610aca565b606091505b508051600003610b1e576040517f64a0ae9200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851660048201526024016103ea565b805181602001fd5b7fffffffff0000000000000000000000000000000000000000000000000000000081167f150b7a020000000000000000000000000000000000000000000000000000000014610bb9576040517f64a0ae9200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851660048201526024016103ea565b5050505050565b8080610be1575073ffffffffffffffffffffffffffffffffffffffff821615155b15610d36576000610bf1846106f7565b905073ffffffffffffffffffffffffffffffffffffffff831615801590610c4457508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015610c83575073ffffffffffffffffffffffffffffffffffffffff80821660009081526005602090815260408083209387168352929052205460ff16155b15610cd2576040517fa9fbf51f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024016103ea565b8115610d3457838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260046020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6040805160208101909152606081528151516040805160208101909152600090808367ffffffffffffffff811115610dc557610dc5611a20565b604051908082528060200260200182016040528015610dee578160200160208202803683370190505b509052905060005b82811015610e5357610e2485600001518281518110610e1757610e17611ef7565b6020026020010151611254565b8251805183908110610e3857610e38611ef7565b6020908102919091010152610e4c81611f26565b9050610df6565b509392505050565b60008281526002602052604081205473ffffffffffffffffffffffffffffffffffffffff90811690831615610e9557610e958184866112f1565b73ffffffffffffffffffffffffffffffffffffffff811615610f0b57610ebf600085600080610bc0565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260036020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190555b73ffffffffffffffffffffffffffffffffffffffff851615610f545773ffffffffffffffffffffffffffffffffffffffff85166000908152600360205260409020805460010190555b60008481526002602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff89811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6000610fe3846104b4565b73ffffffffffffffffffffffffffffffffffffffff1603611033576040517f86843913000000000000000000000000000000000000000000000000000000008152600481018490526024016103ea565b600061103f83866113a1565b9050811561109e5760008481526006602090815260409091208251805180518594849261107292849291909101906117b2565b505050602082810151805180519192600185019261109392849201906117b2565b505050905050610bb9565b602080820151600086815260068352604090208151805192936001909201926110ca92849201906117b2565b5050505050505050565b604080516020810190915260608152602082015151825151518114611155576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4d50435f434f52453a20494e56414c49445f494e5055545f544558540000000060448201526064016103ea565b600060405180602001604052808367ffffffffffffffff81111561117b5761117b611a20565b6040519080825280602002602001820160405280156111a4578160200160208202803683370190505b50905260408051808201909152600081526060602082015290915060005b8381101561124a578551518051829081106111df576111df611ef7565b602090810291909101810151835286015180518290811061120257611202611ef7565b6020026020010151826020018190525061121b826113ec565b835180518390811061122f5761122f611ef7565b602090810291909101015261124381611f26565b90506111c2565b5090949350505050565b6000606463d2c135e560045b60f81b846040518363ffffffff1660e01b81526004016112ae9291907fff00000000000000000000000000000000000000000000000000000000000000929092168252602082015260400190565b6020604051808303816000875af11580156112cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102c19190611f5e565b6112fc838383611455565b6104af5773ffffffffffffffffffffffffffffffffffffffff8316611350576040517f7e273289000000000000000000000000000000000000000000000000000000008152600481018290526024016103ea565b6040517f177e802f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83166004820152602481018290526044016103ea565b6113cc6040805160608082018352818301818152825282516020818101909452908152909182015290565b6113d58361151c565b81526113e183836115e4565b602082015292915050565b805160208201516040517fe4f36e1000000000000000000000000000000000000000000000000000000000815260009260649263e4f36e10926112ae927f0400000000000000000000000000000000000000000000000000000000000000929091600401611f77565b600073ffffffffffffffffffffffffffffffffffffffff83161580159061151457508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806114e3575073ffffffffffffffffffffffffffffffffffffffff80851660009081526005602090815260408083209387168352929052205460ff165b80611514575060008281526004602052604090205473ffffffffffffffffffffffffffffffffffffffff8481169116145b949350505050565b6040805160208101909152606081528151516040805160208101909152600090808367ffffffffffffffff81111561155657611556611a20565b60405190808252806020026020018201604052801561157f578160200160208202803683370190505b509052905060005b82811015610e53576115b5856000015182815181106115a8576115a8611ef7565b60200260200101516116b6565b82518051839081106115c9576115c9611ef7565b60209081029190910101526115dd81611f26565b9050611587565b6040805160208101909152606081528251516040805160208101909152600090808367ffffffffffffffff81111561161e5761161e611a20565b604051908082528060200260200182016040528015611647578160200160208202803683370190505b509052905060005b828110156116ad5761167e8660000151828151811061167057611670611ef7565b6020026020010151866116c6565b825180518390811061169257611692611ef7565b60209081029190910101526116a681611f26565b905061164f565b50949350505050565b6000606463c50c9c026004611260565b60408051606083901b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660208201528151601481830301815260348201928390527f3c6f0e6800000000000000000000000000000000000000000000000000000000909252600091606491633c6f0e6891611768917f0400000000000000000000000000000000000000000000000000000000000000918891603801611f77565b6020604051808303816000875af1158015611787573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ab9190611f5e565b9392505050565b8280548282559060005260206000209081019282156117ed579160200282015b828111156117ed5782518255916020019190600101906117d2565b506117f99291506117fd565b5090565b5b808211156117f957600081556001016117fe565b7fffffffff000000000000000000000000000000000000000000000000000000008116811461184057600080fd5b50565b60006020828403121561185557600080fd5b81356117ab81611812565b6000815180845260005b818110156118865760208185018101518683018201520161186a565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b6020815260006117ab6020830184611860565b6000602082840312156118e957600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461191457600080fd5b919050565b6000806040838503121561192c57600080fd5b611935836118f0565b946020939093013593505050565b60008060006060848603121561195857600080fd5b611961846118f0565b925061196f602085016118f0565b9150604084013590509250925092565b6000806040838503121561199257600080fd5b61199b836118f0565b9150602083013567ffffffffffffffff8111156119b757600080fd5b8301604081860312156119c957600080fd5b809150509250929050565b6000602082840312156119e657600080fd5b6117ab826118f0565b60008060408385031215611a0257600080fd5b611a0b836118f0565b9150602083013580151581146119c957600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715611a7257611a72611a20565b60405290565b6040516020810167ffffffffffffffff81118282101715611a7257611a72611a20565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715611ae257611ae2611a20565b604052919050565b600082601f830112611afb57600080fd5b813567ffffffffffffffff811115611b1557611b15611a20565b611b4660207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601611a9b565b818152846020838601011115611b5b57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215611b8e57600080fd5b611b97856118f0565b9350611ba5602086016118f0565b925060408501359150606085013567ffffffffffffffff811115611bc857600080fd5b611bd487828801611aea565b91505092959194509250565b6020808252825182820182905280516040840181905260009291820190839060608601905b80831015611c255783518252928401926001929092019190840190611c05565b509695505050505050565b60008060408385031215611c4357600080fd5b611c4c836118f0565b9150611c5a602084016118f0565b90509250929050565b600181811c90821680611c7757607f821691505b602082108103611cb0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808201808211156102c1576102c1611cb6565b600067ffffffffffffffff821115611d1257611d12611a20565b5060051b60200190565b600082601f830112611d2d57600080fd5b81356020611d42611d3d83611cf8565b611a9b565b82815260059290921b84018101918181019086841115611d6157600080fd5b8286015b84811015611c2557803567ffffffffffffffff811115611d855760008081fd5b611d938986838b0101611aea565b845250918301918301611d65565b600060408236031215611db357600080fd5b611dbb611a4f565b823567ffffffffffffffff80821115611dd357600080fd5b81850191506020808336031215611de957600080fd5b611df1611a78565b833583811115611e0057600080fd5b939093019236601f850112611e1457600080fd5b8335611e22611d3d82611cf8565b81815260059190911b85018301908381019036831115611e4157600080fd5b958401955b82871015611e5f57863582529584019590840190611e46565b83525050845285810135925081831115611e7857600080fd5b611e8436848801611d1c565b9084015250909392505050565b600073ffffffffffffffffffffffffffffffffffffffff808716835280861660208401525083604083015260806060830152611ed06080830184611860565b9695505050505050565b600060208284031215611eec57600080fd5b81516117ab81611812565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611f5757611f57611cb6565b5060010190565b600060208284031215611f7057600080fd5b5051919050565b7fff00000000000000000000000000000000000000000000000000000000000000841681528260208201526060604082015260006107f0606083018461186056fea264697066735822122051d021c490641d3965c29600295664b975a012f27aec1d9e9e3095bbf428190f64736f6c63430008130033";
578
+ "0x60806040523480156200001157600080fd5b50604051806040016040528060078152602001664578616d706c6560c81b8152506040518060400160405280600381526020016211561360ea1b81525081600090816200005f91906200011c565b5060016200006e82826200011c565b505050620001e8565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620000a257607f821691505b602082108103620000c357634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200011757600081815260208120601f850160051c81016020861015620000f25750805b601f850160051c820191505b818110156200011357828155600101620000fe565b5050505b505050565b81516001600160401b0381111562000138576200013862000077565b62000150816200014984546200008d565b84620000c9565b602080601f8311600181146200018857600084156200016f5750858301515b600019600386901b1c1916600185901b17855562000113565b600085815260208120601f198616915b82811015620001b95788860151825594840194600190910190840162000198565b5085821015620001d85787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b611fee80620001f86000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c80636352211e11610097578063a22cb46511610066578063a22cb465146101fd578063b88d4fde14610210578063c87b56dd14610223578063e985e9c51461024357600080fd5b80636352211e146101bc57806368862e1b146101cf57806370a08231146101e257806395d89b41146101f557600080fd5b8063095ea7b3116100d3578063095ea7b31461016f57806318160ddd1461018457806323b872dd1461019657806342842e0e146101a957600080fd5b806301ffc9a7146100fa57806306fdde0314610122578063081812fc14610137575b600080fd5b61010d610108366004611843565b61028c565b60405190151581526020015b60405180910390f35b61012a6102c7565b60405161011991906118c4565b61014a6101453660046118d7565b610359565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610119565b61018261017d366004611919565b61038f565b005b6007545b604051908152602001610119565b6101826101a4366004611943565b61039e565b6101826101b7366004611943565b610494565b61014a6101ca3660046118d7565b6104b4565b6101826101dd36600461197f565b6104bf565b6101886101f03660046119d4565b610537565b61012a6105b2565b61018261020b3660046119ef565b6105c1565b61018261021e366004611b78565b6105cc565b6102366102313660046118d7565b6105e3565b6040516101199190611be0565b61010d610251366004611c30565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260056020908152604080832093909416825291909152205460ff1690565b60007fffffffff00000000000000000000000000000000000000000000000000000000821615806102c157506102c182610660565b92915050565b6060600080546102d690611c63565b80601f016020809104026020016040519081016040528092919081815260200182805461030290611c63565b801561034f5780601f106103245761010080835404028352916020019161034f565b820191906000526020600020905b81548152906001019060200180831161033257829003601f168201915b5050505050905090565b6000610364826106f7565b5060008281526004602052604090205473ffffffffffffffffffffffffffffffffffffffff166102c1565b61039a828233610756565b5050565b73ffffffffffffffffffffffffffffffffffffffff82166103f3576040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600060048201526024015b60405180910390fd5b6000610400838333610763565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461048e576040517f64283d7b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff808616600483015260248201849052821660448201526064016103ea565b50505050565b6104af838383604051806020016040528060008152506105cc565b505050565b60006102c1826106f7565b6007546104cc83826107f9565b6104d73382846108aa565b6001600760008282546104ea9190611ce5565b9091555050604051819073ffffffffffffffffffffffffffffffffffffffff8516907f30385c845b448a36257a6a1716e6ad2e1bc2cbe333cde1e69fe849ad6511adfe90600090a3505050565b600073ffffffffffffffffffffffffffffffffffffffff8216610589576040517f89c62b64000000000000000000000000000000000000000000000000000000008152600060048201526024016103ea565b5073ffffffffffffffffffffffffffffffffffffffff1660009081526003602052604090205490565b6060600180546102d690611c63565b61039a3383836108cc565b6105d784848461039e565b61048e848484846109c9565b604080516020808201835260608252600084815260068252839020835160019091018054808402830186018652928201838152939491939092849284919084018282801561065057602002820191906000526020600020905b81548152602001906001019080831161063c575b5050505050815250509050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd0000000000000000000000000000000000000000000000000000000014806102c157507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316146102c1565b60008181526002602052604081205473ffffffffffffffffffffffffffffffffffffffff16806102c1576040517f7e273289000000000000000000000000000000000000000000000000000000008152600481018490526024016103ea565b6104af8383836001610bc0565b60008281526006602090815260408083208151815480850282018401845293810184815285946107d29492939284929184918401828280156107c457602002820191906000526020600020905b8154815260200190600101908083116107b0575b505050505081525050610d8b565b905060006107e1868686610e5b565b90506107f08686846000610fd8565b95945050505050565b73ffffffffffffffffffffffffffffffffffffffff8216610849576040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600060048201526024016103ea565b600061085783836000610763565b905073ffffffffffffffffffffffffffffffffffffffff8116156104af576040517f73c6ac6e000000000000000000000000000000000000000000000000000000008152600060048201526024016103ea565b60006108bd6108b883611da1565b6110d4565b905061048e8484836001610fd8565b73ffffffffffffffffffffffffffffffffffffffff8216610931576040517f5b08ba1800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff831660048201526024016103ea565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526005602090815260408083209487168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff83163b1561048e576040517f150b7a0200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84169063150b7a0290610a3e903390889087908790600401611e91565b6020604051808303816000875af1925050508015610a97575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252610a9491810190611eda565b60015b610b26573d808015610ac5576040519150601f19603f3d011682016040523d82523d6000602084013e610aca565b606091505b508051600003610b1e576040517f64a0ae9200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851660048201526024016103ea565b805181602001fd5b7fffffffff0000000000000000000000000000000000000000000000000000000081167f150b7a020000000000000000000000000000000000000000000000000000000014610bb9576040517f64a0ae9200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851660048201526024016103ea565b5050505050565b8080610be1575073ffffffffffffffffffffffffffffffffffffffff821615155b15610d36576000610bf1846106f7565b905073ffffffffffffffffffffffffffffffffffffffff831615801590610c4457508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015610c83575073ffffffffffffffffffffffffffffffffffffffff80821660009081526005602090815260408083209387168352929052205460ff16155b15610cd2576040517fa9fbf51f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024016103ea565b8115610d3457838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260046020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6040805160208101909152606081528151516040805160208101909152600090808367ffffffffffffffff811115610dc557610dc5611a20565b604051908082528060200260200182016040528015610dee578160200160208202803683370190505b509052905060005b82811015610e5357610e2485600001518281518110610e1757610e17611ef7565b6020026020010151611254565b8251805183908110610e3857610e38611ef7565b6020908102919091010152610e4c81611f26565b9050610df6565b509392505050565b60008281526002602052604081205473ffffffffffffffffffffffffffffffffffffffff90811690831615610e9557610e958184866112f1565b73ffffffffffffffffffffffffffffffffffffffff811615610f0b57610ebf600085600080610bc0565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260036020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190555b73ffffffffffffffffffffffffffffffffffffffff851615610f545773ffffffffffffffffffffffffffffffffffffffff85166000908152600360205260409020805460010190555b60008481526002602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff89811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6000610fe3846104b4565b73ffffffffffffffffffffffffffffffffffffffff1603611033576040517f86843913000000000000000000000000000000000000000000000000000000008152600481018490526024016103ea565b600061103f83866113a1565b9050811561109e5760008481526006602090815260409091208251805180518594849261107292849291909101906117b2565b505050602082810151805180519192600185019261109392849201906117b2565b505050905050610bb9565b602080820151600086815260068352604090208151805192936001909201926110ca92849201906117b2565b5050505050505050565b604080516020810190915260608152602082015151825151518114611155576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4d50435f434f52453a20494e56414c49445f494e5055545f544558540000000060448201526064016103ea565b600060405180602001604052808367ffffffffffffffff81111561117b5761117b611a20565b6040519080825280602002602001820160405280156111a4578160200160208202803683370190505b50905260408051808201909152600081526060602082015290915060005b8381101561124a578551518051829081106111df576111df611ef7565b602090810291909101810151835286015180518290811061120257611202611ef7565b6020026020010151826020018190525061121b826113ec565b835180518390811061122f5761122f611ef7565b602090810291909101015261124381611f26565b90506111c2565b5090949350505050565b6000606463d2c135e560045b60f81b846040518363ffffffff1660e01b81526004016112ae9291907fff00000000000000000000000000000000000000000000000000000000000000929092168252602082015260400190565b6020604051808303816000875af11580156112cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102c19190611f5e565b6112fc838383611455565b6104af5773ffffffffffffffffffffffffffffffffffffffff8316611350576040517f7e273289000000000000000000000000000000000000000000000000000000008152600481018290526024016103ea565b6040517f177e802f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83166004820152602481018290526044016103ea565b6113cc6040805160608082018352818301818152825282516020818101909452908152909182015290565b6113d58361151c565b81526113e183836115e4565b602082015292915050565b805160208201516040517fe4f36e1000000000000000000000000000000000000000000000000000000000815260009260649263e4f36e10926112ae927f0400000000000000000000000000000000000000000000000000000000000000929091600401611f77565b600073ffffffffffffffffffffffffffffffffffffffff83161580159061151457508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806114e3575073ffffffffffffffffffffffffffffffffffffffff80851660009081526005602090815260408083209387168352929052205460ff165b80611514575060008281526004602052604090205473ffffffffffffffffffffffffffffffffffffffff8481169116145b949350505050565b6040805160208101909152606081528151516040805160208101909152600090808367ffffffffffffffff81111561155657611556611a20565b60405190808252806020026020018201604052801561157f578160200160208202803683370190505b509052905060005b82811015610e53576115b5856000015182815181106115a8576115a8611ef7565b60200260200101516116b6565b82518051839081106115c9576115c9611ef7565b60209081029190910101526115dd81611f26565b9050611587565b6040805160208101909152606081528251516040805160208101909152600090808367ffffffffffffffff81111561161e5761161e611a20565b604051908082528060200260200182016040528015611647578160200160208202803683370190505b509052905060005b828110156116ad5761167e8660000151828151811061167057611670611ef7565b6020026020010151866116c6565b825180518390811061169257611692611ef7565b60209081029190910101526116a681611f26565b905061164f565b50949350505050565b6000606463c50c9c026004611260565b60408051606083901b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660208201528151601481830301815260348201928390527f3c6f0e6800000000000000000000000000000000000000000000000000000000909252600091606491633c6f0e6891611768917f0400000000000000000000000000000000000000000000000000000000000000918891603801611f77565b6020604051808303816000875af1158015611787573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ab9190611f5e565b9392505050565b8280548282559060005260206000209081019282156117ed579160200282015b828111156117ed5782518255916020019190600101906117d2565b506117f99291506117fd565b5090565b5b808211156117f957600081556001016117fe565b7fffffffff000000000000000000000000000000000000000000000000000000008116811461184057600080fd5b50565b60006020828403121561185557600080fd5b81356117ab81611812565b6000815180845260005b818110156118865760208185018101518683018201520161186a565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b6020815260006117ab6020830184611860565b6000602082840312156118e957600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461191457600080fd5b919050565b6000806040838503121561192c57600080fd5b611935836118f0565b946020939093013593505050565b60008060006060848603121561195857600080fd5b611961846118f0565b925061196f602085016118f0565b9150604084013590509250925092565b6000806040838503121561199257600080fd5b61199b836118f0565b9150602083013567ffffffffffffffff8111156119b757600080fd5b8301604081860312156119c957600080fd5b809150509250929050565b6000602082840312156119e657600080fd5b6117ab826118f0565b60008060408385031215611a0257600080fd5b611a0b836118f0565b9150602083013580151581146119c957600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715611a7257611a72611a20565b60405290565b6040516020810167ffffffffffffffff81118282101715611a7257611a72611a20565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715611ae257611ae2611a20565b604052919050565b600082601f830112611afb57600080fd5b813567ffffffffffffffff811115611b1557611b15611a20565b611b4660207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601611a9b565b818152846020838601011115611b5b57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215611b8e57600080fd5b611b97856118f0565b9350611ba5602086016118f0565b925060408501359150606085013567ffffffffffffffff811115611bc857600080fd5b611bd487828801611aea565b91505092959194509250565b6020808252825182820182905280516040840181905260009291820190839060608601905b80831015611c255783518252928401926001929092019190840190611c05565b509695505050505050565b60008060408385031215611c4357600080fd5b611c4c836118f0565b9150611c5a602084016118f0565b90509250929050565b600181811c90821680611c7757607f821691505b602082108103611cb0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808201808211156102c1576102c1611cb6565b600067ffffffffffffffff821115611d1257611d12611a20565b5060051b60200190565b600082601f830112611d2d57600080fd5b81356020611d42611d3d83611cf8565b611a9b565b82815260059290921b84018101918181019086841115611d6157600080fd5b8286015b84811015611c2557803567ffffffffffffffff811115611d855760008081fd5b611d938986838b0101611aea565b845250918301918301611d65565b600060408236031215611db357600080fd5b611dbb611a4f565b823567ffffffffffffffff80821115611dd357600080fd5b81850191506020808336031215611de957600080fd5b611df1611a78565b833583811115611e0057600080fd5b939093019236601f850112611e1457600080fd5b8335611e22611d3d82611cf8565b81815260059190911b85018301908381019036831115611e4157600080fd5b958401955b82871015611e5f57863582529584019590840190611e46565b83525050845285810135925081831115611e7857600080fd5b611e8436848801611d1c565b9084015250909392505050565b600073ffffffffffffffffffffffffffffffffffffffff808716835280861660208401525083604083015260806060830152611ed06080830184611860565b9695505050505050565b600060208284031215611eec57600080fd5b81516117ab81611812565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611f5757611f57611cb6565b5060010190565b600060208284031215611f7057600080fd5b5051919050565b7fff00000000000000000000000000000000000000000000000000000000000000841681528260208201526060604082015260006107f0606083018461186056fea2646970667358221220e803596ce64b6f31248c30cb538817715774a7ac8a8d2f634af9209b5ce4b7c464736f6c63430008130033";
579
579
 
580
580
  type PrivateERC721URIStorageMockConstructorParams =
581
581
  | [signer?: Signer]
@@ -0,0 +1,55 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+
5
+ import { Contract, Interface, type ContractRunner } from "ethers";
6
+ import type {
7
+ IPrivateERC721URIStorage,
8
+ IPrivateERC721URIStorageInterface,
9
+ } from "../../../../../contracts/token/PrivateERC721/extensions/IPrivateERC721URIStorage";
10
+
11
+ const _abi = [
12
+ {
13
+ inputs: [
14
+ {
15
+ internalType: "uint256",
16
+ name: "tokenId",
17
+ type: "uint256",
18
+ },
19
+ ],
20
+ name: "tokenURI",
21
+ outputs: [
22
+ {
23
+ components: [
24
+ {
25
+ internalType: "ctUint64[]",
26
+ name: "value",
27
+ type: "uint256[]",
28
+ },
29
+ ],
30
+ internalType: "struct ctString",
31
+ name: "",
32
+ type: "tuple",
33
+ },
34
+ ],
35
+ stateMutability: "view",
36
+ type: "function",
37
+ },
38
+ ] as const;
39
+
40
+ export class IPrivateERC721URIStorage__factory {
41
+ static readonly abi = _abi;
42
+ static createInterface(): IPrivateERC721URIStorageInterface {
43
+ return new Interface(_abi) as IPrivateERC721URIStorageInterface;
44
+ }
45
+ static connect(
46
+ address: string,
47
+ runner?: ContractRunner | null
48
+ ): IPrivateERC721URIStorage {
49
+ return new Contract(
50
+ address,
51
+ _abi,
52
+ runner
53
+ ) as unknown as IPrivateERC721URIStorage;
54
+ }
55
+ }
@@ -1,4 +1,5 @@
1
1
  /* Autogenerated file. Do not edit manually. */
2
2
  /* tslint:disable */
3
3
  /* eslint-disable */
4
+ export { IPrivateERC721URIStorage__factory } from "./IPrivateERC721URIStorage__factory";
4
5
  export { PrivateERC721URIStorage__factory } from "./PrivateERC721URIStorage__factory";
@@ -141,6 +141,10 @@ declare module "hardhat/types/runtime" {
141
141
  name: "PrivateERC20",
142
142
  signerOrOptions?: ethers.Signer | FactoryOptions
143
143
  ): Promise<Contracts.PrivateERC20__factory>;
144
+ getContractFactory(
145
+ name: "IPrivateERC721URIStorage",
146
+ signerOrOptions?: ethers.Signer | FactoryOptions
147
+ ): Promise<Contracts.IPrivateERC721URIStorage__factory>;
144
148
  getContractFactory(
145
149
  name: "PrivateERC721URIStorage",
146
150
  signerOrOptions?: ethers.Signer | FactoryOptions
@@ -322,6 +326,11 @@ declare module "hardhat/types/runtime" {
322
326
  address: string | ethers.Addressable,
323
327
  signer?: ethers.Signer
324
328
  ): Promise<Contracts.PrivateERC20>;
329
+ getContractAt(
330
+ name: "IPrivateERC721URIStorage",
331
+ address: string | ethers.Addressable,
332
+ signer?: ethers.Signer
333
+ ): Promise<Contracts.IPrivateERC721URIStorage>;
325
334
  getContractAt(
326
335
  name: "PrivateERC721URIStorage",
327
336
  address: string | ethers.Addressable,
@@ -476,6 +485,10 @@ declare module "hardhat/types/runtime" {
476
485
  name: "PrivateERC20",
477
486
  signerOrOptions?: ethers.Signer | DeployContractOptions
478
487
  ): Promise<Contracts.PrivateERC20>;
488
+ deployContract(
489
+ name: "IPrivateERC721URIStorage",
490
+ signerOrOptions?: ethers.Signer | DeployContractOptions
491
+ ): Promise<Contracts.IPrivateERC721URIStorage>;
479
492
  deployContract(
480
493
  name: "PrivateERC721URIStorage",
481
494
  signerOrOptions?: ethers.Signer | DeployContractOptions
@@ -657,6 +670,11 @@ declare module "hardhat/types/runtime" {
657
670
  args: any[],
658
671
  signerOrOptions?: ethers.Signer | DeployContractOptions
659
672
  ): Promise<Contracts.PrivateERC20>;
673
+ deployContract(
674
+ name: "IPrivateERC721URIStorage",
675
+ args: any[],
676
+ signerOrOptions?: ethers.Signer | DeployContractOptions
677
+ ): Promise<Contracts.IPrivateERC721URIStorage>;
660
678
  deployContract(
661
679
  name: "PrivateERC721URIStorage",
662
680
  args: any[],
@@ -70,6 +70,8 @@ export type { IPrivateERC20 } from "./contracts/token/PrivateERC20/IPrivateERC20
70
70
  export { IPrivateERC20__factory } from "./factories/contracts/token/PrivateERC20/IPrivateERC20__factory";
71
71
  export type { PrivateERC20 } from "./contracts/token/PrivateERC20/PrivateERC20";
72
72
  export { PrivateERC20__factory } from "./factories/contracts/token/PrivateERC20/PrivateERC20__factory";
73
+ export type { IPrivateERC721URIStorage } from "./contracts/token/PrivateERC721/extensions/IPrivateERC721URIStorage";
74
+ export { IPrivateERC721URIStorage__factory } from "./factories/contracts/token/PrivateERC721/extensions/IPrivateERC721URIStorage__factory";
73
75
  export type { PrivateERC721URIStorage } from "./contracts/token/PrivateERC721/extensions/PrivateERC721URIStorage";
74
76
  export { PrivateERC721URIStorage__factory } from "./factories/contracts/token/PrivateERC721/extensions/PrivateERC721URIStorage__factory";
75
77
  export type { IERC721Errors } from "./contracts/token/PrivateERC721/IERC721Errors";